summaryrefslogtreecommitdiff
path: root/web/yacco2/compiler
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /web/yacco2/compiler
Initial commit
Diffstat (limited to 'web/yacco2/compiler')
-rw-r--r--web/yacco2/compiler/grammars/Err.w1799
-rw-r--r--web/yacco2/compiler/grammars/Lrk.w331
-rw-r--r--web/yacco2/compiler/grammars/T.w4116
-rw-r--r--web/yacco2/compiler/grammars/T_enum_phrase.cpp109
-rw-r--r--web/yacco2/compiler/grammars/T_enum_phrase.fsc22
-rw-r--r--web/yacco2/compiler/grammars/T_enum_phrase.h69
-rw-r--r--web/yacco2/compiler/grammars/T_enum_phrase.lex90
-rw-r--r--web/yacco2/compiler/grammars/T_enum_phrase_th.cpp423
-rw-r--r--web/yacco2/compiler/grammars/T_enum_phrase_th.fsc25
-rw-r--r--web/yacco2/compiler/grammars/T_enum_phrase_th.h220
-rw-r--r--web/yacco2/compiler/grammars/T_enum_phrase_th.lex264
-rw-r--r--web/yacco2/compiler/grammars/T_enum_phrase_thsym.cpp500
-rw-r--r--web/yacco2/compiler/grammars/T_enum_phrase_thtbl.cpp1249
-rw-r--r--web/yacco2/compiler/grammars/T_enum_phrasesym.cpp86
-rw-r--r--web/yacco2/compiler/grammars/T_enum_phrasetbl.cpp129
-rw-r--r--web/yacco2/compiler/grammars/angled_string.cpp145
-rw-r--r--web/yacco2/compiler/grammars/angled_string.fsc20
-rw-r--r--web/yacco2/compiler/grammars/angled_string.h74
-rw-r--r--web/yacco2/compiler/grammars/angled_string.lex172
-rw-r--r--web/yacco2/compiler/grammars/angled_stringsym.cpp78
-rw-r--r--web/yacco2/compiler/grammars/angled_stringtbl.cpp87
-rw-r--r--web/yacco2/compiler/grammars/bad_char_set.cpp284
-rw-r--r--web/yacco2/compiler/grammars/bad_char_set.fsc175
-rw-r--r--web/yacco2/compiler/grammars/bad_char_set.h290
-rw-r--r--web/yacco2/compiler/grammars/bad_char_set.lex122
-rw-r--r--web/yacco2/compiler/grammars/bad_char_setsym.cpp2382
-rw-r--r--web/yacco2/compiler/grammars/bad_char_settbl.cpp2689
-rw-r--r--web/yacco2/compiler/grammars/c_comments.cpp163
-rw-r--r--web/yacco2/compiler/grammars/c_comments.fsc20
-rw-r--r--web/yacco2/compiler/grammars/c_comments.h81
-rw-r--r--web/yacco2/compiler/grammars/c_comments.lex156
-rw-r--r--web/yacco2/compiler/grammars/c_commentssym.cpp108
-rw-r--r--web/yacco2/compiler/grammars/c_commentstbl.cpp151
-rw-r--r--web/yacco2/compiler/grammars/c_literal.cpp150
-rw-r--r--web/yacco2/compiler/grammars/c_literal.fsc20
-rw-r--r--web/yacco2/compiler/grammars/c_literal.h74
-rw-r--r--web/yacco2/compiler/grammars/c_literal.lex167
-rw-r--r--web/yacco2/compiler/grammars/c_literalsym.cpp78
-rw-r--r--web/yacco2/compiler/grammars/c_literaltbl.cpp87
-rw-r--r--web/yacco2/compiler/grammars/c_string.cpp151
-rw-r--r--web/yacco2/compiler/grammars/c_string.fsc20
-rw-r--r--web/yacco2/compiler/grammars/c_string.h74
-rw-r--r--web/yacco2/compiler/grammars/c_string.lex173
-rw-r--r--web/yacco2/compiler/grammars/c_stringsym.cpp78
-rw-r--r--web/yacco2/compiler/grammars/c_stringtbl.cpp87
-rw-r--r--web/yacco2/compiler/grammars/cweave_T_sdc.cpp223
-rw-r--r--web/yacco2/compiler/grammars/cweave_T_sdc.fsc24
-rw-r--r--web/yacco2/compiler/grammars/cweave_T_sdc.h89
-rw-r--r--web/yacco2/compiler/grammars/cweave_T_sdc.lex173
-rw-r--r--web/yacco2/compiler/grammars/cweave_T_sdcsym.cpp144
-rw-r--r--web/yacco2/compiler/grammars/cweave_T_sdctbl.cpp193
-rw-r--r--web/yacco2/compiler/grammars/cweave_fsm_sdc.cpp303
-rw-r--r--web/yacco2/compiler/grammars/cweave_fsm_sdc.fsc29
-rw-r--r--web/yacco2/compiler/grammars/cweave_fsm_sdc.h99
-rw-r--r--web/yacco2/compiler/grammars/cweave_fsm_sdc.lex206
-rw-r--r--web/yacco2/compiler/grammars/cweave_fsm_sdcsym.cpp219
-rw-r--r--web/yacco2/compiler/grammars/cweave_fsm_sdctbl.cpp283
-rw-r--r--web/yacco2/compiler/grammars/cweave_lhs_sdc.cpp240
-rw-r--r--web/yacco2/compiler/grammars/cweave_lhs_sdc.fsc25
-rw-r--r--web/yacco2/compiler/grammars/cweave_lhs_sdc.h90
-rw-r--r--web/yacco2/compiler/grammars/cweave_lhs_sdc.lex176
-rw-r--r--web/yacco2/compiler/grammars/cweave_lhs_sdcsym.cpp159
-rw-r--r--web/yacco2/compiler/grammars/cweave_lhs_sdctbl.cpp212
-rw-r--r--web/yacco2/compiler/grammars/cweave_sdc.cpp306
-rw-r--r--web/yacco2/compiler/grammars/cweave_sdc.fsc29
-rw-r--r--web/yacco2/compiler/grammars/cweave_sdc.h102
-rw-r--r--web/yacco2/compiler/grammars/cweave_sdc.lex212
-rw-r--r--web/yacco2/compiler/grammars/cweave_sdcsym.cpp219
-rw-r--r--web/yacco2/compiler/grammars/cweave_sdctbl.cpp284
-rw-r--r--web/yacco2/compiler/grammars/cweb_or_c_k.cpp238
-rw-r--r--web/yacco2/compiler/grammars/cweb_or_c_k.fsc20
-rw-r--r--web/yacco2/compiler/grammars/cweb_or_c_k.h93
-rw-r--r--web/yacco2/compiler/grammars/cweb_or_c_k.lex233
-rw-r--r--web/yacco2/compiler/grammars/cweb_or_c_ksym.cpp138
-rw-r--r--web/yacco2/compiler/grammars/cweb_or_c_ktbl.cpp200
-rw-r--r--web/yacco2/compiler/grammars/cweb_put_k_into_ph.cpp186
-rw-r--r--web/yacco2/compiler/grammars/cweb_put_k_into_ph.fsc27
-rw-r--r--web/yacco2/compiler/grammars/cweb_put_k_into_ph.h70
-rw-r--r--web/yacco2/compiler/grammars/cweb_put_k_into_ph.lex97
-rw-r--r--web/yacco2/compiler/grammars/cweb_put_k_into_phsym.cpp147
-rw-r--r--web/yacco2/compiler/grammars/cweb_put_k_into_phtbl.cpp161
-rw-r--r--web/yacco2/compiler/grammars/dbl_colon.cpp65
-rw-r--r--web/yacco2/compiler/grammars/dbl_colon.fsc20
-rw-r--r--web/yacco2/compiler/grammars/dbl_colon.h60
-rw-r--r--web/yacco2/compiler/grammars/dbl_colon.lex62
-rw-r--r--web/yacco2/compiler/grammars/dbl_colonsym.cpp64
-rw-r--r--web/yacco2/compiler/grammars/dbl_colontbl.cpp695
-rw-r--r--web/yacco2/compiler/grammars/enumerate_T_alphabet.cpp241
-rw-r--r--web/yacco2/compiler/grammars/enumerate_T_alphabet.fsc19
-rw-r--r--web/yacco2/compiler/grammars/enumerate_T_alphabet.h93
-rw-r--r--web/yacco2/compiler/grammars/enumerate_T_alphabet.lex263
-rw-r--r--web/yacco2/compiler/grammars/enumerate_T_alphabetsym.cpp102
-rw-r--r--web/yacco2/compiler/grammars/enumerate_T_alphabettbl.cpp138
-rw-r--r--web/yacco2/compiler/grammars/enumerate_grammar.cpp255
-rw-r--r--web/yacco2/compiler/grammars/enumerate_grammar.fsc20
-rw-r--r--web/yacco2/compiler/grammars/enumerate_grammar.h137
-rw-r--r--web/yacco2/compiler/grammars/enumerate_grammar.lex164
-rw-r--r--web/yacco2/compiler/grammars/enumerate_grammarsym.cpp258
-rw-r--r--web/yacco2/compiler/grammars/enumerate_grammartbl.cpp408
-rw-r--r--web/yacco2/compiler/grammars/eol.cpp68
-rw-r--r--web/yacco2/compiler/grammars/eol.fsc21
-rw-r--r--web/yacco2/compiler/grammars/eol.h65
-rw-r--r--web/yacco2/compiler/grammars/eol.lex98
-rw-r--r--web/yacco2/compiler/grammars/eolsym.cpp105
-rw-r--r--web/yacco2/compiler/grammars/eoltbl.cpp114
-rw-r--r--web/yacco2/compiler/grammars/epsilon_rules.cpp283
-rw-r--r--web/yacco2/compiler/grammars/epsilon_rules.fsc20
-rw-r--r--web/yacco2/compiler/grammars/epsilon_rules.h146
-rw-r--r--web/yacco2/compiler/grammars/epsilon_rules.lex414
-rw-r--r--web/yacco2/compiler/grammars/epsilon_rulessym.cpp156
-rw-r--r--web/yacco2/compiler/grammars/epsilon_rulestbl.cpp241
-rw-r--r--web/yacco2/compiler/grammars/err_symbols_ph.cpp109
-rw-r--r--web/yacco2/compiler/grammars/err_symbols_ph.fsc22
-rw-r--r--web/yacco2/compiler/grammars/err_symbols_ph.h70
-rw-r--r--web/yacco2/compiler/grammars/err_symbols_ph.lex78
-rw-r--r--web/yacco2/compiler/grammars/err_symbols_ph_th.cpp624
-rw-r--r--web/yacco2/compiler/grammars/err_symbols_ph_th.fsc25
-rw-r--r--web/yacco2/compiler/grammars/err_symbols_ph_th.h247
-rw-r--r--web/yacco2/compiler/grammars/err_symbols_ph_th.lex380
-rw-r--r--web/yacco2/compiler/grammars/err_symbols_ph_thsym.cpp649
-rw-r--r--web/yacco2/compiler/grammars/err_symbols_ph_thtbl.cpp1429
-rw-r--r--web/yacco2/compiler/grammars/err_symbols_phsym.cpp86
-rw-r--r--web/yacco2/compiler/grammars/err_symbols_phtbl.cpp129
-rw-r--r--web/yacco2/compiler/grammars/esc_seq.cpp432
-rw-r--r--web/yacco2/compiler/grammars/esc_seq.fsc20
-rw-r--r--web/yacco2/compiler/grammars/esc_seq.h263
-rw-r--r--web/yacco2/compiler/grammars/esc_seq.lex361
-rw-r--r--web/yacco2/compiler/grammars/esc_seqsym.cpp999
-rw-r--r--web/yacco2/compiler/grammars/esc_seqtbl.cpp2034
-rw-r--r--web/yacco2/compiler/grammars/eval_phrases.cpp365
-rw-r--r--web/yacco2/compiler/grammars/eval_phrases.fsc22
-rw-r--r--web/yacco2/compiler/grammars/eval_phrases.h144
-rw-r--r--web/yacco2/compiler/grammars/eval_phrases.lex214
-rw-r--r--web/yacco2/compiler/grammars/eval_phrasessym.cpp295
-rw-r--r--web/yacco2/compiler/grammars/eval_phrasestbl.cpp505
-rw-r--r--web/yacco2/compiler/grammars/first_set_rules.cpp96
-rw-r--r--web/yacco2/compiler/grammars/first_set_rules.fsc20
-rw-r--r--web/yacco2/compiler/grammars/first_set_rules.h83
-rw-r--r--web/yacco2/compiler/grammars/first_set_rules.lex158
-rw-r--r--web/yacco2/compiler/grammars/first_set_rulessym.cpp99
-rw-r--r--web/yacco2/compiler/grammars/first_set_rulestbl.cpp137
-rw-r--r--web/yacco2/compiler/grammars/fsc_file.cpp1227
-rw-r--r--web/yacco2/compiler/grammars/fsc_file.fsc21
-rw-r--r--web/yacco2/compiler/grammars/fsc_file.h507
-rw-r--r--web/yacco2/compiler/grammars/fsc_file.lex782
-rw-r--r--web/yacco2/compiler/grammars/fsc_filesym.cpp1160
-rw-r--r--web/yacco2/compiler/grammars/fsc_filetbl.cpp1921
-rw-r--r--web/yacco2/compiler/grammars/fsm_class_phrase_th.cpp992
-rw-r--r--web/yacco2/compiler/grammars/fsm_class_phrase_th.fsc25
-rw-r--r--web/yacco2/compiler/grammars/fsm_class_phrase_th.h270
-rw-r--r--web/yacco2/compiler/grammars/fsm_class_phrase_th.lex509
-rw-r--r--web/yacco2/compiler/grammars/fsm_class_phrase_thsym.cpp785
-rw-r--r--web/yacco2/compiler/grammars/fsm_class_phrase_thtbl.cpp1417
-rw-r--r--web/yacco2/compiler/grammars/fsm_phrase.cpp104
-rw-r--r--web/yacco2/compiler/grammars/fsm_phrase.fsc22
-rw-r--r--web/yacco2/compiler/grammars/fsm_phrase.h69
-rw-r--r--web/yacco2/compiler/grammars/fsm_phrase.lex69
-rw-r--r--web/yacco2/compiler/grammars/fsm_phrase_th.cpp1011
-rw-r--r--web/yacco2/compiler/grammars/fsm_phrase_th.fsc26
-rw-r--r--web/yacco2/compiler/grammars/fsm_phrase_th.h388
-rw-r--r--web/yacco2/compiler/grammars/fsm_phrase_th.lex580
-rw-r--r--web/yacco2/compiler/grammars/fsm_phrase_thsym.cpp1105
-rw-r--r--web/yacco2/compiler/grammars/fsm_phrase_thtbl.cpp2869
-rw-r--r--web/yacco2/compiler/grammars/fsm_phrasesym.cpp86
-rw-r--r--web/yacco2/compiler/grammars/fsm_phrasetbl.cpp129
-rwxr-xr-xweb/yacco2/compiler/grammars/gen1grammar.sh140
-rw-r--r--web/yacco2/compiler/grammars/identifier.cpp374
-rw-r--r--web/yacco2/compiler/grammars/identifier.fsc71
-rw-r--r--web/yacco2/compiler/grammars/identifier.h189
-rw-r--r--web/yacco2/compiler/grammars/identifier.lex345
-rw-r--r--web/yacco2/compiler/grammars/identifiersym.cpp1079
-rw-r--r--web/yacco2/compiler/grammars/identifiertbl.cpp989
-rw-r--r--web/yacco2/compiler/grammars/int_no.cpp108
-rw-r--r--web/yacco2/compiler/grammars/int_no.fsc29
-rw-r--r--web/yacco2/compiler/grammars/int_no.h92
-rw-r--r--web/yacco2/compiler/grammars/int_no.lex92
-rw-r--r--web/yacco2/compiler/grammars/int_nosym.cpp241
-rw-r--r--web/yacco2/compiler/grammars/int_notbl.cpp285
-rw-r--r--web/yacco2/compiler/grammars/la_expr.cpp447
-rw-r--r--web/yacco2/compiler/grammars/la_expr.fsc22
-rw-r--r--web/yacco2/compiler/grammars/la_expr.h138
-rw-r--r--web/yacco2/compiler/grammars/la_expr.lex443
-rw-r--r--web/yacco2/compiler/grammars/la_expr_lexical.cpp187
-rw-r--r--web/yacco2/compiler/grammars/la_expr_lexical.fsc25
-rw-r--r--web/yacco2/compiler/grammars/la_expr_lexical.h81
-rw-r--r--web/yacco2/compiler/grammars/la_expr_lexical.lex124
-rw-r--r--web/yacco2/compiler/grammars/la_expr_lexicalsym.cpp160
-rw-r--r--web/yacco2/compiler/grammars/la_expr_lexicaltbl.cpp215
-rw-r--r--web/yacco2/compiler/grammars/la_expr_src.cpp303
-rw-r--r--web/yacco2/compiler/grammars/la_expr_src.fsc35
-rw-r--r--web/yacco2/compiler/grammars/la_expr_src.h125
-rw-r--r--web/yacco2/compiler/grammars/la_expr_src.lex184
-rw-r--r--web/yacco2/compiler/grammars/la_expr_srcsym.cpp325
-rw-r--r--web/yacco2/compiler/grammars/la_expr_srctbl.cpp376
-rw-r--r--web/yacco2/compiler/grammars/la_exprsym.cpp198
-rw-r--r--web/yacco2/compiler/grammars/la_exprtbl.cpp285
-rw-r--r--web/yacco2/compiler/grammars/la_lrk_T.cpp185
-rw-r--r--web/yacco2/compiler/grammars/la_lrk_T.fsc22
-rw-r--r--web/yacco2/compiler/grammars/la_lrk_T.h83
-rw-r--r--web/yacco2/compiler/grammars/la_lrk_T.lex147
-rw-r--r--web/yacco2/compiler/grammars/la_lrk_Tsym.cpp273
-rw-r--r--web/yacco2/compiler/grammars/la_lrk_Ttbl.cpp723
-rw-r--r--web/yacco2/compiler/grammars/lib/Debug/info.txt14
-rw-r--r--web/yacco2/compiler/grammars/lib/Release/libo2grammars.abin0 -> 7090416 bytes
-rw-r--r--web/yacco2/compiler/grammars/link_cleanser.cpp315
-rw-r--r--web/yacco2/compiler/grammars/link_cleanser.fsc35
-rw-r--r--web/yacco2/compiler/grammars/link_cleanser.h104
-rw-r--r--web/yacco2/compiler/grammars/link_cleanser.lex140
-rw-r--r--web/yacco2/compiler/grammars/link_cleansersym.cpp308
-rw-r--r--web/yacco2/compiler/grammars/link_cleansertbl.cpp402
-rw-r--r--web/yacco2/compiler/grammars/linker_id.cpp359
-rw-r--r--web/yacco2/compiler/grammars/linker_id.fsc71
-rw-r--r--web/yacco2/compiler/grammars/linker_id.h226
-rw-r--r--web/yacco2/compiler/grammars/linker_id.lex255
-rw-r--r--web/yacco2/compiler/grammars/linker_idsym.cpp1320
-rw-r--r--web/yacco2/compiler/grammars/linker_idtbl.cpp2071
-rw-r--r--web/yacco2/compiler/grammars/linker_pass3.cpp648
-rw-r--r--web/yacco2/compiler/grammars/linker_pass3.fsc27
-rw-r--r--web/yacco2/compiler/grammars/linker_pass3.h195
-rw-r--r--web/yacco2/compiler/grammars/linker_pass3.lex357
-rw-r--r--web/yacco2/compiler/grammars/linker_pass3sym.cpp545
-rw-r--r--web/yacco2/compiler/grammars/linker_pass3tbl.cpp1247
-rw-r--r--web/yacco2/compiler/grammars/linker_preamble_code.cpp293
-rw-r--r--web/yacco2/compiler/grammars/linker_preamble_code.fsc28
-rw-r--r--web/yacco2/compiler/grammars/linker_preamble_code.h98
-rw-r--r--web/yacco2/compiler/grammars/linker_preamble_code.lex222
-rw-r--r--web/yacco2/compiler/grammars/linker_preamble_codesym.cpp203
-rw-r--r--web/yacco2/compiler/grammars/linker_preamble_codetbl.cpp243
-rw-r--r--web/yacco2/compiler/grammars/lint_balls.cpp119
-rw-r--r--web/yacco2/compiler/grammars/lint_balls.fsc25
-rw-r--r--web/yacco2/compiler/grammars/lint_balls.h90
-rw-r--r--web/yacco2/compiler/grammars/lint_balls.lex94
-rw-r--r--web/yacco2/compiler/grammars/lint_ballssym.cpp163
-rw-r--r--web/yacco2/compiler/grammars/lint_ballstbl.cpp218
-rw-r--r--web/yacco2/compiler/grammars/lr1_k_phrase.cpp109
-rw-r--r--web/yacco2/compiler/grammars/lr1_k_phrase.fsc22
-rw-r--r--web/yacco2/compiler/grammars/lr1_k_phrase.h69
-rw-r--r--web/yacco2/compiler/grammars/lr1_k_phrase.lex86
-rw-r--r--web/yacco2/compiler/grammars/lr1_k_phrase_th.cpp775
-rw-r--r--web/yacco2/compiler/grammars/lr1_k_phrase_th.fsc27
-rw-r--r--web/yacco2/compiler/grammars/lr1_k_phrase_th.h305
-rw-r--r--web/yacco2/compiler/grammars/lr1_k_phrase_th.lex467
-rw-r--r--web/yacco2/compiler/grammars/lr1_k_phrase_thsym.cpp782
-rw-r--r--web/yacco2/compiler/grammars/lr1_k_phrase_thtbl.cpp1868
-rw-r--r--web/yacco2/compiler/grammars/lr1_k_phrasesym.cpp86
-rw-r--r--web/yacco2/compiler/grammars/lr1_k_phrasetbl.cpp129
-rw-r--r--web/yacco2/compiler/grammars/makefile_APPLE86
-rw-r--r--web/yacco2/compiler/grammars/makefile_GNU101
-rw-r--r--web/yacco2/compiler/grammars/makefile_SOLARIS561
-rw-r--r--web/yacco2/compiler/grammars/mpost_output.cpp881
-rw-r--r--web/yacco2/compiler/grammars/mpost_output.fsc20
-rw-r--r--web/yacco2/compiler/grammars/mpost_output.h307
-rw-r--r--web/yacco2/compiler/grammars/mpost_output.lex856
-rw-r--r--web/yacco2/compiler/grammars/mpost_outputsym.cpp490
-rw-r--r--web/yacco2/compiler/grammars/mpost_outputtbl.cpp1266
-rw-r--r--web/yacco2/compiler/grammars/o2_code_end.cpp59
-rw-r--r--web/yacco2/compiler/grammars/o2_code_end.fsc20
-rw-r--r--web/yacco2/compiler/grammars/o2_code_end.h55
-rw-r--r--web/yacco2/compiler/grammars/o2_code_end.lex46
-rw-r--r--web/yacco2/compiler/grammars/o2_code_endsym.cpp63
-rw-r--r--web/yacco2/compiler/grammars/o2_code_endtbl.cpp710
-rw-r--r--web/yacco2/compiler/grammars/o2_err_hdlr.cpp384
-rw-r--r--web/yacco2/compiler/grammars/o2_err_hdlr.fsc35
-rw-r--r--web/yacco2/compiler/grammars/o2_err_hdlr.h155
-rw-r--r--web/yacco2/compiler/grammars/o2_err_hdlr.lex233
-rw-r--r--web/yacco2/compiler/grammars/o2_err_hdlrsym.cpp353
-rw-r--r--web/yacco2/compiler/grammars/o2_err_hdlrtbl.cpp458
-rw-r--r--web/yacco2/compiler/grammars/o2_lcl_opt.cpp151
-rw-r--r--web/yacco2/compiler/grammars/o2_lcl_opt.fsc20
-rw-r--r--web/yacco2/compiler/grammars/o2_lcl_opt.h97
-rw-r--r--web/yacco2/compiler/grammars/o2_lcl_opt.lex196
-rw-r--r--web/yacco2/compiler/grammars/o2_lcl_opts.cpp372
-rw-r--r--web/yacco2/compiler/grammars/o2_lcl_opts.fsc32
-rw-r--r--web/yacco2/compiler/grammars/o2_lcl_opts.h159
-rw-r--r--web/yacco2/compiler/grammars/o2_lcl_opts.lex241
-rw-r--r--web/yacco2/compiler/grammars/o2_lcl_optssym.cpp362
-rw-r--r--web/yacco2/compiler/grammars/o2_lcl_optstbl.cpp696
-rw-r--r--web/yacco2/compiler/grammars/o2_lcl_optsym.cpp210
-rw-r--r--web/yacco2/compiler/grammars/o2_lcl_opttbl.cpp340
-rw-r--r--web/yacco2/compiler/grammars/o2_linker_opts.cpp239
-rw-r--r--web/yacco2/compiler/grammars/o2_linker_opts.fsc30
-rw-r--r--web/yacco2/compiler/grammars/o2_linker_opts.h136
-rw-r--r--web/yacco2/compiler/grammars/o2_linker_opts.lex166
-rw-r--r--web/yacco2/compiler/grammars/o2_linker_optssym.cpp246
-rw-r--r--web/yacco2/compiler/grammars/o2_linker_optstbl.cpp420
-rw-r--r--web/yacco2/compiler/grammars/o2_sdc.cpp310
-rw-r--r--web/yacco2/compiler/grammars/o2_sdc.fsc28
-rw-r--r--web/yacco2/compiler/grammars/o2_sdc.h100
-rw-r--r--web/yacco2/compiler/grammars/o2_sdc.lex257
-rw-r--r--web/yacco2/compiler/grammars/o2_sdcsym.cpp203
-rw-r--r--web/yacco2/compiler/grammars/o2_sdctbl.cpp1514
-rwxr-xr-xweb/yacco2/compiler/grammars/o2grammars.sh115
-rw-r--r--web/yacco2/compiler/grammars/o2grammars_Edit_cweb7
-rw-r--r--web/yacco2/compiler/grammars/parallel_monitor_ph.cpp389
-rw-r--r--web/yacco2/compiler/grammars/parallel_monitor_ph.fsc24
-rw-r--r--web/yacco2/compiler/grammars/parallel_monitor_ph.h157
-rw-r--r--web/yacco2/compiler/grammars/parallel_monitor_ph.lex258
-rw-r--r--web/yacco2/compiler/grammars/parallel_monitor_phsym.cpp304
-rw-r--r--web/yacco2/compiler/grammars/parallel_monitor_phtbl.cpp682
-rw-r--r--web/yacco2/compiler/grammars/parallel_oper.cpp86
-rw-r--r--web/yacco2/compiler/grammars/parallel_oper.fsc21
-rw-r--r--web/yacco2/compiler/grammars/parallel_oper.h66
-rw-r--r--web/yacco2/compiler/grammars/parallel_oper.lex71
-rw-r--r--web/yacco2/compiler/grammars/parallel_opersym.cpp112
-rw-r--r--web/yacco2/compiler/grammars/parallel_opertbl.cpp863
-rw-r--r--web/yacco2/compiler/grammars/parallel_parser_ph_th.cpp482
-rw-r--r--web/yacco2/compiler/grammars/parallel_parser_ph_th.fsc26
-rw-r--r--web/yacco2/compiler/grammars/parallel_parser_ph_th.h197
-rw-r--r--web/yacco2/compiler/grammars/parallel_parser_ph_th.lex283
-rw-r--r--web/yacco2/compiler/grammars/parallel_parser_ph_thsym.cpp402
-rw-r--r--web/yacco2/compiler/grammars/parallel_parser_ph_thtbl.cpp924
-rw-r--r--web/yacco2/compiler/grammars/parallel_parser_phrase.cpp109
-rw-r--r--web/yacco2/compiler/grammars/parallel_parser_phrase.fsc22
-rw-r--r--web/yacco2/compiler/grammars/parallel_parser_phrase.h70
-rw-r--r--web/yacco2/compiler/grammars/parallel_parser_phrase.lex77
-rw-r--r--web/yacco2/compiler/grammars/parallel_parser_phrasesym.cpp86
-rw-r--r--web/yacco2/compiler/grammars/parallel_parser_phrasetbl.cpp129
-rw-r--r--web/yacco2/compiler/grammars/pass3.cpp410
-rw-r--r--web/yacco2/compiler/grammars/pass3.fsc32
-rw-r--r--web/yacco2/compiler/grammars/pass3.h120
-rw-r--r--web/yacco2/compiler/grammars/pass3.lex345
-rw-r--r--web/yacco2/compiler/grammars/pass3sym.cpp339
-rw-r--r--web/yacco2/compiler/grammars/pass3tbl.cpp470
-rw-r--r--web/yacco2/compiler/grammars/prefile_inc.cpp183
-rw-r--r--web/yacco2/compiler/grammars/prefile_inc.fsc23
-rw-r--r--web/yacco2/compiler/grammars/prefile_inc.h101
-rw-r--r--web/yacco2/compiler/grammars/prefile_inc.lex133
-rw-r--r--web/yacco2/compiler/grammars/prefile_include.cpp185
-rw-r--r--web/yacco2/compiler/grammars/prefile_include.fsc23
-rw-r--r--web/yacco2/compiler/grammars/prefile_include.h101
-rw-r--r--web/yacco2/compiler/grammars/prefile_include.lex135
-rw-r--r--web/yacco2/compiler/grammars/prefile_includesym.cpp194
-rw-r--r--web/yacco2/compiler/grammars/prefile_includetbl.cpp342
-rw-r--r--web/yacco2/compiler/grammars/prefile_incsym.cpp194
-rw-r--r--web/yacco2/compiler/grammars/prefile_inctbl.cpp337
-rw-r--r--web/yacco2/compiler/grammars/prt_fs_of_rules.cpp80
-rw-r--r--web/yacco2/compiler/grammars/prt_fs_of_rules.fsc20
-rw-r--r--web/yacco2/compiler/grammars/prt_fs_of_rules.h70
-rw-r--r--web/yacco2/compiler/grammars/prt_fs_of_rules.lex57
-rw-r--r--web/yacco2/compiler/grammars/prt_fs_of_rulessym.cpp84
-rw-r--r--web/yacco2/compiler/grammars/prt_fs_of_rulestbl.cpp120
-rw-r--r--web/yacco2/compiler/grammars/prt_sr_elements.cpp251
-rw-r--r--web/yacco2/compiler/grammars/prt_sr_elements.fsc20
-rw-r--r--web/yacco2/compiler/grammars/prt_sr_elements.h104
-rw-r--r--web/yacco2/compiler/grammars/prt_sr_elements.lex157
-rw-r--r--web/yacco2/compiler/grammars/prt_sr_elementssym.cpp188
-rw-r--r--web/yacco2/compiler/grammars/prt_sr_elementstbl.cpp309
-rw-r--r--web/yacco2/compiler/grammars/prt_xrefs_docs.cpp812
-rw-r--r--web/yacco2/compiler/grammars/prt_xrefs_docs.fsc20
-rw-r--r--web/yacco2/compiler/grammars/prt_xrefs_docs.h175
-rw-r--r--web/yacco2/compiler/grammars/prt_xrefs_docs.lex745
-rw-r--r--web/yacco2/compiler/grammars/prt_xrefs_docssym.cpp274
-rw-r--r--web/yacco2/compiler/grammars/prt_xrefs_docstbl.cpp452
-rw-r--r--web/yacco2/compiler/grammars/rc_phrase.cpp109
-rw-r--r--web/yacco2/compiler/grammars/rc_phrase.fsc22
-rw-r--r--web/yacco2/compiler/grammars/rc_phrase.h70
-rw-r--r--web/yacco2/compiler/grammars/rc_phrase.lex77
-rw-r--r--web/yacco2/compiler/grammars/rc_phrase_th.cpp580
-rw-r--r--web/yacco2/compiler/grammars/rc_phrase_th.fsc25
-rw-r--r--web/yacco2/compiler/grammars/rc_phrase_th.h239
-rw-r--r--web/yacco2/compiler/grammars/rc_phrase_th.lex349
-rw-r--r--web/yacco2/compiler/grammars/rc_phrase_thsym.cpp619
-rw-r--r--web/yacco2/compiler/grammars/rc_phrase_thtbl.cpp1393
-rw-r--r--web/yacco2/compiler/grammars/rc_phrasesym.cpp86
-rw-r--r--web/yacco2/compiler/grammars/rc_phrasetbl.cpp129
-rw-r--r--web/yacco2/compiler/grammars/rhs_bnd.cpp72
-rw-r--r--web/yacco2/compiler/grammars/rhs_bnd.fsc23
-rw-r--r--web/yacco2/compiler/grammars/rhs_bnd.h59
-rw-r--r--web/yacco2/compiler/grammars/rhs_bnd.lex82
-rw-r--r--web/yacco2/compiler/grammars/rhs_bndsym.cpp109
-rw-r--r--web/yacco2/compiler/grammars/rhs_bndtbl.cpp112
-rw-r--r--web/yacco2/compiler/grammars/rhs_component.cpp341
-rw-r--r--web/yacco2/compiler/grammars/rhs_component.fsc27
-rw-r--r--web/yacco2/compiler/grammars/rhs_component.h82
-rw-r--r--web/yacco2/compiler/grammars/rhs_component.lex289
-rw-r--r--web/yacco2/compiler/grammars/rhs_componentsym.cpp168
-rw-r--r--web/yacco2/compiler/grammars/rhs_componenttbl.cpp194
-rw-r--r--web/yacco2/compiler/grammars/rtn_component.cpp223
-rw-r--r--web/yacco2/compiler/grammars/rtn_component.fsc25
-rw-r--r--web/yacco2/compiler/grammars/rtn_component.h79
-rw-r--r--web/yacco2/compiler/grammars/rtn_component.lex173
-rw-r--r--web/yacco2/compiler/grammars/rtn_componentsym.cpp153
-rw-r--r--web/yacco2/compiler/grammars/rtn_componenttbl.cpp177
-rw-r--r--web/yacco2/compiler/grammars/rule_def_phrase.cpp604
-rw-r--r--web/yacco2/compiler/grammars/rule_def_phrase.fsc26
-rw-r--r--web/yacco2/compiler/grammars/rule_def_phrase.h231
-rw-r--r--web/yacco2/compiler/grammars/rule_def_phrase.lex340
-rw-r--r--web/yacco2/compiler/grammars/rule_def_phrasesym.cpp587
-rw-r--r--web/yacco2/compiler/grammars/rule_def_phrasetbl.cpp1361
-rw-r--r--web/yacco2/compiler/grammars/rule_lhs_phrase.cpp779
-rw-r--r--web/yacco2/compiler/grammars/rule_lhs_phrase.fsc24
-rw-r--r--web/yacco2/compiler/grammars/rule_lhs_phrase.h261
-rw-r--r--web/yacco2/compiler/grammars/rule_lhs_phrase.lex424
-rw-r--r--web/yacco2/compiler/grammars/rule_lhs_phrasesym.cpp628
-rw-r--r--web/yacco2/compiler/grammars/rule_lhs_phrasetbl.cpp1176
-rw-r--r--web/yacco2/compiler/grammars/rules_phrase.cpp109
-rw-r--r--web/yacco2/compiler/grammars/rules_phrase.fsc22
-rw-r--r--web/yacco2/compiler/grammars/rules_phrase.h69
-rw-r--r--web/yacco2/compiler/grammars/rules_phrase.lex72
-rw-r--r--web/yacco2/compiler/grammars/rules_phrase_th.cpp354
-rw-r--r--web/yacco2/compiler/grammars/rules_phrase_th.fsc28
-rw-r--r--web/yacco2/compiler/grammars/rules_phrase_th.h174
-rw-r--r--web/yacco2/compiler/grammars/rules_phrase_th.lex236
-rw-r--r--web/yacco2/compiler/grammars/rules_phrase_thsym.cpp410
-rw-r--r--web/yacco2/compiler/grammars/rules_phrase_thtbl.cpp782
-rw-r--r--web/yacco2/compiler/grammars/rules_phrasesym.cpp86
-rw-r--r--web/yacco2/compiler/grammars/rules_phrasetbl.cpp129
-rw-r--r--web/yacco2/compiler/grammars/rules_use_cnt.cpp262
-rw-r--r--web/yacco2/compiler/grammars/rules_use_cnt.fsc20
-rw-r--r--web/yacco2/compiler/grammars/rules_use_cnt.h135
-rw-r--r--web/yacco2/compiler/grammars/rules_use_cnt.lex295
-rw-r--r--web/yacco2/compiler/grammars/rules_use_cntsym.cpp213
-rw-r--r--web/yacco2/compiler/grammars/rules_use_cnttbl.cpp363
-rw-r--r--web/yacco2/compiler/grammars/sp_2.cpp75
-rw-r--r--web/yacco2/compiler/grammars/sp_2.fsc21
-rw-r--r--web/yacco2/compiler/grammars/sp_2.h76
-rw-r--r--web/yacco2/compiler/grammars/sp_2sym.cpp125
-rw-r--r--web/yacco2/compiler/grammars/sp_2tbl.cpp267
-rw-r--r--web/yacco2/compiler/grammars/subrule_def.cpp1486
-rw-r--r--web/yacco2/compiler/grammars/subrule_def.fsc30
-rw-r--r--web/yacco2/compiler/grammars/subrule_def.h476
-rw-r--r--web/yacco2/compiler/grammars/subrule_def.lex849
-rw-r--r--web/yacco2/compiler/grammars/subrule_defsym.cpp1192
-rw-r--r--web/yacco2/compiler/grammars/subrule_deftbl.cpp4291
-rw-r--r--web/yacco2/compiler/grammars/subrule_vector.cpp64
-rw-r--r--web/yacco2/compiler/grammars/subrule_vector.fsc20
-rw-r--r--web/yacco2/compiler/grammars/subrule_vector.h60
-rw-r--r--web/yacco2/compiler/grammars/subrule_vector.lex52
-rw-r--r--web/yacco2/compiler/grammars/subrule_vectorsym.cpp64
-rw-r--r--web/yacco2/compiler/grammars/subrule_vectortbl.cpp64
-rw-r--r--web/yacco2/compiler/grammars/subrules_phrase.cpp189
-rw-r--r--web/yacco2/compiler/grammars/subrules_phrase.fsc23
-rw-r--r--web/yacco2/compiler/grammars/subrules_phrase.h110
-rw-r--r--web/yacco2/compiler/grammars/subrules_phrase.lex127
-rw-r--r--web/yacco2/compiler/grammars/subrules_phrasesym.cpp194
-rw-r--r--web/yacco2/compiler/grammars/subrules_phrasetbl.cpp1601
-rw-r--r--web/yacco2/compiler/grammars/t_alphabet.cpp210
-rw-r--r--web/yacco2/compiler/grammars/t_alphabet.fsc21
-rw-r--r--web/yacco2/compiler/grammars/t_alphabet.h110
-rw-r--r--web/yacco2/compiler/grammars/t_alphabet.lex154
-rw-r--r--web/yacco2/compiler/grammars/t_alphabetsym.cpp173
-rw-r--r--web/yacco2/compiler/grammars/t_alphabettbl.cpp266
-rw-r--r--web/yacco2/compiler/grammars/t_def_delabort_tags.cpp177
-rw-r--r--web/yacco2/compiler/grammars/t_def_delabort_tags.fsc20
-rw-r--r--web/yacco2/compiler/grammars/t_def_delabort_tags.h173
-rw-r--r--web/yacco2/compiler/grammars/t_def_delabort_tags.lex91
-rw-r--r--web/yacco2/compiler/grammars/t_def_delabort_tagssym.cpp1046
-rw-r--r--web/yacco2/compiler/grammars/t_def_delabort_tagstbl.cpp643
-rw-r--r--web/yacco2/compiler/grammars/term_def_ph.cpp787
-rw-r--r--web/yacco2/compiler/grammars/term_def_ph.fsc28
-rw-r--r--web/yacco2/compiler/grammars/term_def_ph.h253
-rw-r--r--web/yacco2/compiler/grammars/term_def_ph.lex455
-rw-r--r--web/yacco2/compiler/grammars/term_def_phsym.cpp671
-rw-r--r--web/yacco2/compiler/grammars/term_def_phtbl.cpp1636
-rw-r--r--web/yacco2/compiler/grammars/terminal_def_symclass.cpp170
-rw-r--r--web/yacco2/compiler/grammars/terminal_def_symclass.fsc20
-rw-r--r--web/yacco2/compiler/grammars/terminal_def_symclass.h171
-rw-r--r--web/yacco2/compiler/grammars/terminal_def_symclass.lex86
-rw-r--r--web/yacco2/compiler/grammars/terminal_def_symclasssym.cpp1030
-rw-r--r--web/yacco2/compiler/grammars/terminal_def_symclasstbl.cpp732
-rw-r--r--web/yacco2/compiler/grammars/terminals_phrase.cpp109
-rw-r--r--web/yacco2/compiler/grammars/terminals_phrase.fsc22
-rw-r--r--web/yacco2/compiler/grammars/terminals_phrase.h69
-rw-r--r--web/yacco2/compiler/grammars/terminals_phrase.lex111
-rw-r--r--web/yacco2/compiler/grammars/terminals_phrase_th.cpp967
-rw-r--r--web/yacco2/compiler/grammars/terminals_phrase_th.fsc27
-rw-r--r--web/yacco2/compiler/grammars/terminals_phrase_th.h361
-rw-r--r--web/yacco2/compiler/grammars/terminals_phrase_th.lex588
-rw-r--r--web/yacco2/compiler/grammars/terminals_phrase_thsym.cpp944
-rw-r--r--web/yacco2/compiler/grammars/terminals_phrase_thtbl.cpp2202
-rw-r--r--web/yacco2/compiler/grammars/terminals_phrasesym.cpp86
-rw-r--r--web/yacco2/compiler/grammars/terminals_phrasetbl.cpp129
-rw-r--r--web/yacco2/compiler/grammars/test_components.cpp1216
-rw-r--r--web/yacco2/compiler/grammars/test_components.fsc47
-rw-r--r--web/yacco2/compiler/grammars/test_components.h244
-rw-r--r--web/yacco2/compiler/grammars/test_components.lex436
-rw-r--r--web/yacco2/compiler/grammars/test_componentssym.cpp1040
-rw-r--r--web/yacco2/compiler/grammars/test_componentstbl.cpp1197
-rw-r--r--web/yacco2/compiler/grammars/unq_str.cpp98
-rw-r--r--web/yacco2/compiler/grammars/unq_str.fsc20
-rw-r--r--web/yacco2/compiler/grammars/unq_str.h98
-rw-r--r--web/yacco2/compiler/grammars/unq_str.lex111
-rw-r--r--web/yacco2/compiler/grammars/unq_strsym.cpp106
-rw-r--r--web/yacco2/compiler/grammars/unq_strtbl.cpp112
-rw-r--r--web/yacco2/compiler/grammars/ws.cpp95
-rw-r--r--web/yacco2/compiler/grammars/ws.fsc23
-rw-r--r--web/yacco2/compiler/grammars/ws.h71
-rw-r--r--web/yacco2/compiler/grammars/ws.lex105
-rw-r--r--web/yacco2/compiler/grammars/wssym.cpp123
-rw-r--r--web/yacco2/compiler/grammars/wstbl.cpp135
-rw-r--r--web/yacco2/compiler/grammars/xc_str.cpp126
-rw-r--r--web/yacco2/compiler/grammars/xc_str.fsc20
-rw-r--r--web/yacco2/compiler/grammars/xc_str.h71
-rw-r--r--web/yacco2/compiler/grammars/xc_str.lex130
-rw-r--r--web/yacco2/compiler/grammars/xc_strsym.cpp78
-rw-r--r--web/yacco2/compiler/grammars/xc_strtbl.cpp87
-rw-r--r--web/yacco2/compiler/grammars/yacco2.fsc91
-rw-r--r--web/yacco2/compiler/grammars/yacco2_T_enumeration.T39
-rw-r--r--web/yacco2/compiler/grammars/yacco2_T_enumeration.fsc575
-rw-r--r--web/yacco2/compiler/grammars/yacco2_T_enumeration.h592
-rw-r--r--web/yacco2/compiler/grammars/yacco2_T_includes.T15
-rw-r--r--web/yacco2/compiler/grammars/yacco2_err_symbols.T704
-rw-r--r--web/yacco2/compiler/grammars/yacco2_err_symbols.cpp665
-rw-r--r--web/yacco2/compiler/grammars/yacco2_err_symbols.h679
-rw-r--r--web/yacco2/compiler/grammars/yacco2_fsc.cpp9776
-rw-r--r--web/yacco2/compiler/grammars/yacco2_stbl.cpp391
-rw-r--r--web/yacco2/compiler/grammars/yacco2_stbl.h36
-rw-r--r--web/yacco2/compiler/grammars/yacco2_terminals.T3381
-rw-r--r--web/yacco2/compiler/grammars/yacco2_terminals.cpp1946
-rw-r--r--web/yacco2/compiler/grammars/yacco2_terminals.h1217
-rw-r--r--web/yacco2/compiler/grammars/yacco2_test.fsc94
-rw-r--r--web/yacco2/compiler/o2/Makefile_Edit_cweb31
-rw-r--r--web/yacco2/compiler/o2/bugs.w426
-rw-r--r--web/yacco2/compiler/o2/common_externs.cpp379
-rw-r--r--web/yacco2/compiler/o2/common_externs.h28
-rw-r--r--web/yacco2/compiler/o2/globals.h26
-rw-r--r--web/yacco2/compiler/o2/includes.w50
-rw-r--r--web/yacco2/compiler/o2/intro.w417
-rw-r--r--web/yacco2/compiler/o2/makefile_APPLE115
-rw-r--r--web/yacco2/compiler/o2/makefile_GNU89
-rw-r--r--web/yacco2/compiler/o2/makefile_SOLARIS123
-rw-r--r--web/yacco2/compiler/o2/o2.cpp849
-rw-r--r--web/yacco2/compiler/o2/o2.h46
-rw-r--r--web/yacco2/compiler/o2/o2.w17
-rw-r--r--web/yacco2/compiler/o2/o2_defs.cpp1671
-rw-r--r--web/yacco2/compiler/o2/o2_defs.w2217
-rw-r--r--web/yacco2/compiler/o2/o2_externs.cpp7278
-rw-r--r--web/yacco2/compiler/o2/o2_externs.h96
-rw-r--r--web/yacco2/compiler/o2/o2_types.h537
-rw-r--r--web/yacco2/compiler/o2/o2_types.w789
-rw-r--r--web/yacco2/compiler/o2/o2externs.w8194
-rw-r--r--web/yacco2/compiler/o2/prog.w651
-rw-r--r--web/yacco2/compiler/stbl/yacco2_stbl.w860
533 files changed, 199291 insertions, 0 deletions
diff --git a/web/yacco2/compiler/grammars/Err.w b/web/yacco2/compiler/grammars/Err.w
new file mode 100644
index 0000000000..d411ac23d3
--- /dev/null
+++ b/web/yacco2/compiler/grammars/Err.w
@@ -0,0 +1,1799 @@
+\input "supp-pdf"
+\input "/usr/local/yacco2/diagrams/o2mac.tex"
+\DOCtitle{Error Vocabulary}{yacco2\_err\_symbols}
+{NS\_yacco2\_err\_symbols}{191}
+
+@i "/usr/local/yacco2/copyright.w"
+@** Error symbols vocabulary.\fbreak
+Error symbols for the telling.\fbreak
+Due to my verbosity and |cweb|'s (\TeX) black slug output
+some of my symbol keys are
+more cryptic in description as i wanted to title them with
+their enumeration symbol.
+Now, the enumeration symbol is removed from the index so there is
+no blob of ...
+If the truth be told, these descriptions should
+be indirect key values that allow for
+multilingual translation.
+One step at a time...
+
+Upon experimentation with error keys
+having a suffixed Exxx indicator in the key itself
+whereby
+the xxx is a number: 001 and
+associating a translation file with the error construct, i nixed the ideas.
+It is simply a post error evaluation on the given
+error keys to translate them using some form of associated map.
+The error enumeration key with a language indicator would suffice.
+A simple database could be used.
+For example T\_Enum::T\_LR1\_err\_nested\_files\_exceeded\_ with
+ a country code of ``DE'' for
+German would translate ``nested files exceeded''.
+Not finding a translation should default to the error token's
+literal key.
+See grammar ``o2\_err\_hdr.lex'' for a context sensitive approach to error reporting.
+
+
+Ahh... grandeur. Now what about unicode?
+
+@*2 {\bf \NOsign T in list not eq}.\fbreak
+Enum: T\_Err\_no\_of\_native\_Ts\_in\_list\_not\_equal\_
+\fbreak
+\line{Class: Err\_no\_of\_native\_Ts\_in\_list\_not\_equal \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 \NOsign T in list not eq user-declaration directive.
+@<\NOsign T in list not eq user-declaration directive@>=
+
+ public:
+ Err_no_of_native_Ts_in_list_not_equal(unsigned long Value);
+ unsigned long no()const;
+ private:unsigned long no_;
+
+@*3 \NOsign T in list not eq user-implementation directive.
+@<\NOsign T in list not eq user-implementation directive@>=
+
+ Err_no_of_native_Ts_in_list_not_equal::
+ Err_no_of_native_Ts_in_list_not_equal(unsigned long No)
+T_CTOR("no terminals in list not equal, chk items in list",T_Enum::T_Err_no_of_native_Ts_in_list_not_equal_,0,false,false)
+ { no_ = No;}
+ unsigned long
+ Err_no_of_native_Ts_in_list_not_equal::no()const{return no_;}
+
+@*2 {\bf \NOsign threads in list not eq}.\fbreak
+Enum: T\_Err\_no\_of\_threads\_in\_list\_not\_equal\_
+\fbreak
+\line{Class: Err\_no\_of\_threads\_in\_list\_not\_equal \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 \NOsign threads in list not eq user-declaration directive.
+@<\NOsign threads in list not eq user-declaration directive@>=
+
+ public:
+ Err_no_of_threads_in_list_not_equal(unsigned long No);
+ unsigned long no()const;
+ private:unsigned long no_;
+
+@*3 \NOsign threads in list not eq user-implementation directive.
+@<\NOsign threads in list not eq user-implementation directive@>=
+
+ Err_no_of_threads_in_list_not_equal::
+ Err_no_of_threads_in_list_not_equal(unsigned long No)
+T_CTOR("no threads in list not equal, chk list",T_Enum::T_Err_no_of_threads_in_list_not_equal_,0,false,false)
+ { no_ = No;}
+ unsigned long
+ Err_no_of_threads_in_list_not_equal::no()const{return no_;}
+
+@*2 {\bf ? ended subrule expr}.\fbreak
+Enum: T\_Err\_not\_T\_or\_R\_or\_eos\_in\_subrule\_expr\_
+\fbreak
+\line{Class: Err\_not\_T\_or\_R\_or\_eos\_in\_subrule\_expr \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf Empty file no grammar constructs present}.\fbreak
+Enum: T\_Err\_empty\_file\_
+\fbreak
+\line{Class: Err\_empty\_file \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf O2 epsilon badly gened: 0 items in fsc lists}.\fbreak
+Enum: T\_Err\_epsilon\_pass\_thru\_
+\fbreak
+\line{Class: Err\_epsilon\_pass\_thru \hfil AB: N \hfil AD: N}
+
+
+\O2 states that a thread has epsilon pass thru of thread calling.
+Example the called thread start state has an epsilon subrule.
+Sanity check or paranoia on my work.
+
+\fbreak
+\hrule
+@*2 {\bf O2 epsilon: T present, but no T list}.\fbreak
+Enum: T\_Err\_epsilon\_pass\_thru\_no\_Ts\_
+\fbreak
+\line{Class: Err\_epsilon\_pass\_thru\_no\_Ts \hfil AB: N \hfil AD: N}
+
+
+\O2 states that a thread has epsilon pass thru of thread calling.
+Example the called thread start state has an epsilon subrule.
+Sanity check or paranoia on my work.
+
+\fbreak
+\hrule
+@*2 {\bf T in list not defined in T-alphabet}.\fbreak
+Enum: T\_Err\_bad\_T\_in\_list\_
+\fbreak
+\line{Class: Err\_bad\_T\_in\_list \hfil AB: N \hfil AD: N}
+
+
+\Olinker message. It indicates that the terminal
+is not defined in ``T-alphabet'' construct.
+This is the T vocabulary.
+If the terminal is not defined, it means that the
+grammar writer has not generated the vocabulary.
+So turn on the /t option and re-compile a grammar thus
+creating the updated list.
+
+\fbreak
+\hrule
+@*2 {\bf T not found in stbl}.\fbreak
+Enum: T\_Err\_T\_not\_in\_stbl\_
+\fbreak
+\line{Class: Err\_T\_not\_in\_stbl \hfil AB: N \hfil AD: N}
+
+
+Either the grammmar writer forgot to add a new T definition or
+its a mistype.
+
+\fbreak
+\hrule
+@*2 {\bf T not returned from a thread}.\fbreak
+Enum: T\_Err\_not\_T\_for\_rtned\_token\_from\_th\_
+\fbreak
+\line{Class: Err\_not\_T\_for\_rtned\_token\_from\_th \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf T-alphabet file does not exist}.\fbreak
+Enum: T\_Err\_T\_alphabet\_file\_does\_not\_exist\_
+\fbreak
+\line{Class: Err\_T\_alphabet\_file\_does\_not\_exist \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf T-alphabet file not present}.\fbreak
+Enum: T\_Err\_T\_alphabet\_file\_not\_present\_
+\fbreak
+\line{Class: Err\_T\_alphabet\_file\_not\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf T-alphabet kw not present}.\fbreak
+Enum: T\_Err\_T\_alphabet\_kw\_not\_present\_
+\fbreak
+\line{Class: Err\_T\_alphabet\_kw\_not\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf already defined AB tag}.\fbreak
+Enum: T\_Err\_already\_defined\_AB\_
+\fbreak
+\line{Class: Err\_already\_defined\_AB \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf already defined AD tag}.\fbreak
+Enum: T\_Err\_already\_defined\_AD\_
+\fbreak
+\line{Class: Err\_already\_defined\_AD \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf bad char}.\fbreak
+Enum: T\_Err\_bad\_char\_
+\fbreak
+\line{Class: Err\_bad\_char \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 bad char destructor directive.
+@<bad char destructor directive@>=
+
+ if(R->bad_char_!=0)
+ delete R->bad_char();
+
+@*3 bad char user-declaration directive.
+@<bad char user-declaration directive@>=
+
+ public:
+ Err_bad_char(CAbs_lr1_sym* Err_char);
+ yacco2::CAbs_lr1_sym* bad_char()const;
+ void zero_out_bad_char();
+ private:
+ yacco2::CAbs_lr1_sym* bad_char_;
+
+@*3 bad char user-implementation directive.
+@<bad char user-implementation directive@>=
+
+ Err_bad_char::
+ Err_bad_char(CAbs_lr1_sym* Bad_char)
+T_CTOR("bad char",T_Enum::T_Err_bad_char_,&dtor_Err_bad_char,false,false)
+ {bad_char_ = Bad_char;}
+ yacco2::CAbs_lr1_sym* Err_bad_char::bad_char()const{return bad_char_;}
+ void Err_bad_char::zero_out_bad_char(){bad_char_ = 0;}
+
+@*2 {\bf bad cmd-opt}.\fbreak
+Enum: T\_Err\_bad\_cmd\_lne\_opt\_
+\fbreak
+\line{Class: Err\_bad\_cmd\_lne\_opt \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf bad directive}.\fbreak
+Enum: T\_Err\_bad\_directive\_
+\fbreak
+\line{Class: Err\_bad\_directive \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf bad eos}.\fbreak
+Enum: T\_Err\_bad\_eos\_
+\fbreak
+\line{Class: Err\_bad\_eos \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf bad esc}.\fbreak
+Enum: T\_Err\_bad\_esc\_
+\fbreak
+\line{Class: Err\_bad\_esc \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf bad filename}.\fbreak
+Enum: T\_Err\_bad\_filename\_
+\fbreak
+\line{Class: Err\_bad\_filename \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 bad filename user-declaration directive.
+@<bad filename user-declaration directive@>=
+
+ public:
+ Err_bad_filename(std::string& File_name);
+ Err_bad_filename(const char* File_name);
+ std::string* file_name();
+ private:
+ std::string file_name_;
+
+@*3 bad filename user-implementation directive.
+@<bad filename user-implementation directive@>=
+
+ Err_bad_filename::
+ Err_bad_filename(std::string& File_name)
+ T_CTOR("bad filename",T_Enum::T_Err_bad_filename_,0,false,false)
+ {file_name_ += File_name.c_str();}
+ Err_bad_filename::
+ Err_bad_filename(const char* File_name)
+ T_CTOR("bad filename",T_Enum::T_Err_bad_filename_,0,false,false)
+ {file_name_ += File_name;}
+ std::string* Err_bad_filename::file_name(){return &file_name_;}
+
+@*2 {\bf bad filename for Errors vocabulary header}.\fbreak
+Enum: T\_Err\_bad\_errors\_hdrfilename\_
+\fbreak
+\line{Class: Err\_bad\_errors\_hdrfilename \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 bad filename for Errors vocabulary header user-declaration directive.
+@<bad filename for Errors vocabulary header user-declaration directive@>=
+
+ public:
+ Err_bad_errors_hdrfilename(std::string& File_name);
+ Err_bad_errors_hdrfilename(const char* File_name);
+ std::string* file_name();
+ private:
+ std::string file_name_;
+
+@*3 bad filename for Errors vocabulary header user-implementation directive.
+@<bad filename for Errors vocabulary header user-implementation directive@>=
+
+ Err_bad_errors_hdrfilename::
+ Err_bad_errors_hdrfilename(std::string& File_name)
+T_CTOR("bad filename for Errors vocabulary header",T_Enum::T_Err_bad_errors_hdrfilename_,0,false,false)
+ {file_name_ += File_name.c_str();}
+ Err_bad_errors_hdrfilename::
+ Err_bad_errors_hdrfilename(const char* File_name)
+T_CTOR("bad filename for Errors vocabulary header",T_Enum::T_Err_bad_errors_hdrfilename_,0,false,false)
+ {file_name_ += File_name;}
+ std::string* Err_bad_errors_hdrfilename::file_name(){return &file_name_;}
+
+@*2 {\bf bad filename for Errors vocabulary implementation}.\fbreak
+Enum: T\_Err\_bad\_errors\_impfilename\_
+\fbreak
+\line{Class: Err\_bad\_errors\_impfilename \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 bad filename for Errors vocabulary implementation user-declaration directive.
+@<bad filename for Errors vocabulary implementation user-declaration directive@>=
+
+ public:
+ Err_bad_errors_impfilename(std::string& File_name);
+ Err_bad_errors_impfilename(const char* File_name);
+ std::string* file_name();
+ private:
+ std::string file_name_;
+
+@*3 bad filename for Errors vocabulary implementation user-implementation directive.
+@<bad filename for Errors vocabulary implementation user-implementation directive@>=
+
+ Err_bad_errors_impfilename::
+ Err_bad_errors_impfilename(std::string& File_name)
+T_CTOR("bad filename for Errors vocabulary implementation",T_Enum::T_Err_bad_errors_impfilename_,0,false,false)
+ {file_name_ += File_name.c_str();}
+ Err_bad_errors_impfilename::
+ Err_bad_errors_impfilename(const char* File_name)
+T_CTOR("bad filename for Errors vocabulary implementation",T_Enum::T_Err_bad_errors_impfilename_,0,false,false)
+ {file_name_ += File_name;}
+ std::string* Err_bad_errors_impfilename::file_name(){return &file_name_;}
+
+@*2 {\bf bad filename to output cpp}.\fbreak
+Enum: T\_Err\_bad\_fsmcpp\_filename\_
+\fbreak
+\line{Class: Err\_bad\_fsmcpp\_filename \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 bad filename to output cpp user-declaration directive.
+@<bad filename to output cpp user-declaration directive@>=
+
+ public:
+ Err_bad_fsmcpp_filename(std::string& File_name);
+ Err_bad_fsmcpp_filename(const char* File_name);
+ std::string* file_name();
+ private:
+ std::string file_name_;
+
+@*3 bad filename to output cpp user-implementation directive.
+@<bad filename to output cpp user-implementation directive@>=
+
+ Err_bad_fsmcpp_filename::
+ Err_bad_fsmcpp_filename(std::string& File_name)
+T_CTOR("bad filename to output cpp",T_Enum::T_Err_bad_fsmcpp_filename_,0,false,false)
+ {file_name_ += File_name.c_str();}
+ Err_bad_fsmcpp_filename::
+ Err_bad_fsmcpp_filename(const char* File_name)
+T_CTOR("bad filename to output cpp",T_Enum::T_Err_bad_fsmcpp_filename_,0,false,false)
+ {file_name_ += File_name;}
+ std::string* Err_bad_fsmcpp_filename::file_name(){return &file_name_;}
+
+@*2 {\bf bad filename to output enumeration header}.\fbreak
+Enum: T\_Err\_bad\_enum\_filename\_
+\fbreak
+\line{Class: Err\_bad\_enum\_filename \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 bad filename to output enumeration header user-declaration directive.
+@<bad filename to output enumeration header user-declaration directive@>=
+
+ public:
+ Err_bad_enum_filename(std::string& File_name);
+ Err_bad_enum_filename(const char* File_name);
+ std::string* file_name();
+ private:
+ std::string file_name_;
+
+@*3 bad filename to output enumeration header user-implementation directive.
+@<bad filename to output enumeration header user-implementation directive@>=
+
+ Err_bad_enum_filename::
+ Err_bad_enum_filename(std::string& File_name)
+T_CTOR("bad filename to output enumeration header",T_Enum::T_Err_bad_enum_filename_,0,false,false)
+ {file_name_ += File_name.c_str();}
+ Err_bad_enum_filename::
+ Err_bad_enum_filename(const char* File_name)
+T_CTOR("bad filename to output enumeration header",T_Enum::T_Err_bad_enum_filename_,0,false,false)
+ {file_name_ += File_name;}
+ std::string* Err_bad_enum_filename::file_name(){return &file_name_;}
+
+@*2 {\bf bad filename to output grammar header}.\fbreak
+Enum: T\_Err\_bad\_fsmheader\_filename\_
+\fbreak
+\line{Class: Err\_bad\_fsmheader\_filename \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 bad filename to output grammar header user-declaration directive.
+@<bad filename to output grammar header user-declaration directive@>=
+
+ public:
+ Err_bad_fsmheader_filename(std::string& File_name);
+ Err_bad_fsmheader_filename(const char* File_name);
+ std::string* file_name();
+ private:
+ std::string file_name_;
+
+@*3 bad filename to output grammar header user-implementation directive.
+@<bad filename to output grammar header user-implementation directive@>=
+
+ Err_bad_fsmheader_filename::
+ Err_bad_fsmheader_filename(std::string& File_name)
+T_CTOR("bad filename to output grammar header",T_Enum::T_Err_bad_fsmheader_filename_,0,false,false)
+ {file_name_ += File_name.c_str();}
+ Err_bad_fsmheader_filename::
+ Err_bad_fsmheader_filename(const char* File_name)
+T_CTOR("bad filename to output grammar header",T_Enum::T_Err_bad_fsmheader_filename_,0,false,false)
+ {file_name_ += File_name;}
+ std::string* Err_bad_fsmheader_filename::file_name(){return &file_name_;}
+
+@*2 {\bf bad filename to output sym}.\fbreak
+Enum: T\_Err\_bad\_fsmsym\_filename\_
+\fbreak
+\line{Class: Err\_bad\_fsmsym\_filename \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 bad filename to output sym user-declaration directive.
+@<bad filename to output sym user-declaration directive@>=
+
+ public:
+ Err_bad_fsmsym_filename(std::string& File_name);
+ Err_bad_fsmsym_filename(const char* File_name);
+ std::string* file_name();
+ private:
+ std::string file_name_;
+
+@*3 bad filename to output sym user-implementation directive.
+@<bad filename to output sym user-implementation directive@>=
+
+ Err_bad_fsmsym_filename::
+ Err_bad_fsmsym_filename(std::string& File_name)
+T_CTOR("bad filename to output sym",T_Enum::T_Err_bad_fsmsym_filename_,0,false,false)
+ {file_name_ += File_name.c_str();}
+ Err_bad_fsmsym_filename::
+ Err_bad_fsmsym_filename(const char* File_name)
+T_CTOR("bad filename to output sym",T_Enum::T_Err_bad_fsmsym_filename_,0,false,false)
+ {file_name_ += File_name;}
+ std::string* Err_bad_fsmsym_filename::file_name(){return &file_name_;}
+
+@*2 {\bf bad filename to output tbl}.\fbreak
+Enum: T\_Err\_bad\_fsmtbl\_filename\_
+\fbreak
+\line{Class: Err\_bad\_fsmtbl\_filename \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 bad filename to output tbl user-declaration directive.
+@<bad filename to output tbl user-declaration directive@>=
+
+ public:
+ Err_bad_fsmtbl_filename(std::string& File_name);
+ Err_bad_fsmtbl_filename(const char* File_name);
+ std::string* file_name();
+ private:
+ std::string file_name_;
+
+@*3 bad filename to output tbl user-implementation directive.
+@<bad filename to output tbl user-implementation directive@>=
+
+ Err_bad_fsmtbl_filename::
+ Err_bad_fsmtbl_filename(std::string& File_name)
+T_CTOR("bad filename to output tbl",T_Enum::T_Err_bad_fsmtbl_filename_,0,false,false)
+ {file_name_ += File_name.c_str();}
+ Err_bad_fsmtbl_filename::
+ Err_bad_fsmtbl_filename(const char* File_name)
+T_CTOR("bad filename to output tbl",T_Enum::T_Err_bad_fsmtbl_filename_,0,false,false)
+ {file_name_ += File_name;}
+ std::string* Err_bad_fsmtbl_filename::file_name(){return &file_name_;}
+
+@*2 {\bf bad int-no}.\fbreak
+Enum: T\_Err\_bad\_int\_no\_
+\fbreak
+\line{Class: Err\_bad\_int\_no \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf bad int-no range}.\fbreak
+Enum: T\_Err\_bad\_int\_no\_range\_
+\fbreak
+\line{Class: Err\_bad\_int\_no\_range \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf bad operator la expr: not a + or -}.\fbreak
+Enum: T\_Err\_bad\_operator\_in\_la\_expr\_
+\fbreak
+\line{Class: Err\_bad\_operator\_in\_la\_expr \hfil AB: N \hfil AD: N}
+
+
+Thread's lookahead expression malformed.
+
+\fbreak
+\hrule
+@*2 {\bf bad pos of t def}.\fbreak
+Enum: T\_Err\_cannot\_define\_term\_after\_sufx\_dir\_
+\fbreak
+\line{Class: Err\_cannot\_define\_term\_after\_sufx\_dir \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf bad pos of terminals-refs}.\fbreak
+Enum: T\_Err\_terminals\_refs\_def\_after\_terminals\_
+\fbreak
+\line{Class: Err\_terminals\_refs\_def\_after\_terminals \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf bad term in la expr}.\fbreak
+Enum: T\_Err\_bad\_term\_in\_la\_expr\_
+\fbreak
+\line{Class: Err\_bad\_term\_in\_la\_expr \hfil AB: N \hfil AD: N}
+
+
+Must be a Rule or a T term within the subrule expression.
+
+\fbreak
+\hrule
+@*2 {\bf bad term in subrule expr}.\fbreak
+Enum: T\_Err\_not\_T\_or\_R\_in\_subrule\_expr\_
+\fbreak
+\line{Class: Err\_not\_T\_or\_R\_in\_subrule\_expr \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf bad thread expr}.\fbreak
+Enum: T\_Err\_bad\_th\_qualifier\_
+\fbreak
+\line{Class: Err\_bad\_th\_qualifier \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf bad univ-seq}.\fbreak
+Enum: T\_Err\_bad\_univ\_seq\_
+\fbreak
+\line{Class: Err\_bad\_univ\_seq \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 bad univ-seq user-declaration directive.
+@<bad univ-seq user-declaration directive@>=
+
+ public:
+ Err_bad_univ_seq(unsigned long Value);
+ unsigned long bad_univ_seq()const;
+ private:unsigned long bad_univ_seq_;
+
+@*3 bad univ-seq user-implementation directive.
+@<bad univ-seq user-implementation directive@>=
+
+ Err_bad_univ_seq::
+ Err_bad_univ_seq(unsigned long Bad_univ_seq)
+ T_CTOR("bad univ seq",T_Enum::T_Err_bad_univ_seq_,0,false,false)
+ {bad_univ_seq_ = Bad_univ_seq;
+ }
+ unsigned long
+ Err_bad_univ_seq::bad_univ_seq()const{return bad_univ_seq_;}
+
+@*2 {\bf command line chaffe}.\fbreak
+Enum: T\_Err\_cmd\_line\_chaffe\_
+\fbreak
+\line{Class: Err\_cmd\_line\_chaffe \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf comment-overrun}.\fbreak
+Enum: T\_Err\_comment\_overrun\_
+\fbreak
+\line{Class: Err\_comment\_overrun \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf dup ? sufx directive}.\fbreak
+Enum: T\_Err\_dup\_sufx\_directive\_
+\fbreak
+\line{Class: Err\_dup\_sufx\_directive \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf dup-entry in sym-table}.\fbreak
+Enum: T\_Err\_dup\_entry\_in\_sym\_table\_
+\fbreak
+\line{Class: Err\_dup\_entry\_in\_sym\_table \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf duplicate T\_enum phrase}.\fbreak
+Enum: T\_Err\_already\_processed\_T\_enum\_phase\_
+\fbreak
+\line{Class: Err\_already\_processed\_T\_enum\_phase \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf duplicate directive}.\fbreak
+Enum: T\_Err\_duplicate\_directive\_
+\fbreak
+\line{Class: Err\_duplicate\_directive \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf duplicate error phrase}.\fbreak
+Enum: T\_Err\_already\_processed\_error\_phase\_
+\fbreak
+\line{Class: Err\_already\_processed\_error\_phase \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf duplicate fsm phrase}.\fbreak
+Enum: T\_Err\_already\_processed\_fsm\_phase\_
+\fbreak
+\line{Class: Err\_already\_processed\_fsm\_phase \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf duplicate logical name}.\fbreak
+Enum: T\_Err\_duplicate\_logical\_name\_
+\fbreak
+\line{Class: Err\_duplicate\_logical\_name \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf duplicate lrk phrase}.\fbreak
+Enum: T\_Err\_already\_processed\_lrk\_phase\_
+\fbreak
+\line{Class: Err\_already\_processed\_lrk\_phase \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf duplicate parallel-parse phrase}.\fbreak
+Enum: T\_Err\_already\_processed\_pp\_phase\_
+\fbreak
+\line{Class: Err\_already\_processed\_pp\_phase \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf duplicate raw character phrase}.\fbreak
+Enum: T\_Err\_already\_processed\_rc\_phase\_
+\fbreak
+\line{Class: Err\_already\_processed\_rc\_phase \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf duplicate rule phrase}.\fbreak
+Enum: T\_Err\_already\_processed\_rule\_phase\_
+\fbreak
+\line{Class: Err\_already\_processed\_rule\_phase \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf duplicate terminal phrase}.\fbreak
+Enum: T\_Err\_already\_processed\_T\_phase\_
+\fbreak
+\line{Class: Err\_already\_processed\_T\_phase \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf duplicate-entry in alphabet}.\fbreak
+Enum: T\_Err\_dup\_entry\_in\_alphabet\_
+\fbreak
+\line{Class: Err\_dup\_entry\_in\_alphabet \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf emitfile file does not exist}.\fbreak
+Enum: T\_Err\_emitfile\_file\_does\_not\_exist\_
+\fbreak
+\line{Class: Err\_emitfile\_file\_does\_not\_exist \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf emitfile file not present}.\fbreak
+Enum: T\_Err\_emitfile\_file\_not\_present\_
+\fbreak
+\line{Class: Err\_emitfile\_file\_not\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf emitfile kw not present}.\fbreak
+Enum: T\_Err\_emitfile\_kw\_not\_present\_
+\fbreak
+\line{Class: Err\_emitfile\_kw\_not\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf file of T-alphabet not present}.\fbreak
+Enum: T\_Err\_file\_of\_T\_alphabet\_not\_present\_
+\fbreak
+\line{Class: Err\_file\_of\_T\_alphabet\_not\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf file-name file does not exist}.\fbreak
+Enum: T\_Err\_filename\_file\_does\_not\_exist\_
+\fbreak
+\line{Class: Err\_filename\_file\_does\_not\_exist \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf fsc file does not exist}.\fbreak
+Enum: T\_Err\_fsc\_file\_does\_not\_exist\_
+\fbreak
+\line{Class: Err\_fsc\_file\_does\_not\_exist \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf fsc file not present}.\fbreak
+Enum: T\_Err\_fsc\_cntl\_file\_not\_present\_
+\fbreak
+\line{Class: Err\_fsc\_cntl\_file\_not\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf improper closing of rules construct}.\fbreak
+Enum: T\_Err\_improper\_closing\_of\_rules\_
+\fbreak
+\line{Class: Err\_improper\_closing\_of\_rules \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf improper directive}.\fbreak
+Enum: T\_Err\_improper\_directive\_
+\fbreak
+\line{Class: Err\_improper\_directive \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf invalid fsm-debug value}.\fbreak
+Enum: T\_Err\_fsm\_debug\_string\_not\_true\_or\_false\_
+\fbreak
+\line{Class: Err\_fsm\_debug\_string\_not\_true\_or\_false \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf invalid logical name}.\fbreak
+Enum: T\_Err\_invalid\_logical\_name\_
+\fbreak
+\line{Class: Err\_invalid\_logical\_name \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf invalid logical value}.\fbreak
+Enum: T\_Err\_invalid\_logical\_value\_
+\fbreak
+\line{Class: Err\_invalid\_logical\_value \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf la expression calculates an empty set}.\fbreak
+Enum: T\_Err\_la\_expr\_calc\_empty\_set\_
+\fbreak
+\line{Class: Err\_la\_expr\_calc\_empty\_set \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf linker's monolithic value not n or y}.\fbreak
+Enum: T\_Err\_monolithic\_value\_bad\_
+\fbreak
+\line{Class: Err\_monolithic\_value\_bad \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf linker's transitive value not n or y}.\fbreak
+Enum: T\_Err\_transitive\_value\_bad\_
+\fbreak
+\line{Class: Err\_transitive\_value\_bad \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf misplaced or missing T enumeration phrase}.\fbreak
+Enum: T\_ERR\_no\_T\_enum\_phrase\_
+\fbreak
+\line{Class: ERR\_no\_T\_enum\_phrase \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf misplaced or missing errors phrase}.\fbreak
+Enum: T\_ERR\_no\_errors\_phrase\_
+\fbreak
+\line{Class: ERR\_no\_errors\_phrase \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf misplaced or missing fsm phrase}.\fbreak
+Enum: T\_ERR\_no\_fsm\_phrase\_
+\fbreak
+\line{Class: ERR\_no\_fsm\_phrase \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf misplaced or missing lrk phrase}.\fbreak
+Enum: T\_ERR\_no\_lrk\_phrase\_
+\fbreak
+\line{Class: ERR\_no\_lrk\_phrase \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf misplaced or missing rc phrase}.\fbreak
+Enum: T\_ERR\_no\_rc\_phrase\_
+\fbreak
+\line{Class: ERR\_no\_rc\_phrase \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf misplaced or missing rules phrase}.\fbreak
+Enum: T\_ERR\_no\_rules\_phrase\_
+\fbreak
+\line{Class: ERR\_no\_rules\_phrase \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf misplaced or missing terminals phrase}.\fbreak
+Enum: T\_ERR\_no\_terminals\_phrase\_
+\fbreak
+\line{Class: ERR\_no\_terminals\_phrase \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf misplaced or misspelt Rule or T outside of Rules defs}.\fbreak
+Enum: T\_Err\_misplaced\_or\_misspelt\_Rule\_or\_T\_
+\fbreak
+\line{Class: Err\_misplaced\_or\_misspelt\_Rule\_or\_T \hfil AB: N \hfil AD: N}
+
+
+Thrown by |pass3.lex| grammar.
+It is outside of a proper grammar's construct and
+does not have a symbol table entry.
+So it could be a misspelt T or an orphanned rule outside of its
+defining Rules construct.
+
+\fbreak
+\hrule
+@*2 {\bf missing lrk-sufx kw}.\fbreak
+Enum: T\_Err\_missing\_lrk\_sufx\_kw\_
+\fbreak
+\line{Class: Err\_missing\_lrk\_sufx\_kw \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf missing terminals-refs kw}.\fbreak
+Enum: T\_Err\_missing\_terminals\_refs\_kw\_
+\fbreak
+\line{Class: Err\_missing\_terminals\_refs\_kw \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf missing terminals-sufx kw}.\fbreak
+Enum: T\_Err\_missing\_terminals\_sufx\_kw\_
+\fbreak
+\line{Class: Err\_missing\_terminals\_sufx\_kw \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf nested files exceeded}.\fbreak
+Enum: T\_Err\_nested\_files\_exceeded\_
+\fbreak
+\line{Class: Err\_nested\_files\_exceeded \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 nested files exceeded user-declaration directive.
+@<nested files exceeded user-declaration directive@>=
+
+ public:
+ Err_nested_files_exceeded(yacco2::INT Nested_file_cnt,std::string& File_name);
+ yacco2::INT nested_cnt(){return nested_cnt_;};
+ std::string* file_exceeded(){return &file_exceeded_;};
+ private:
+ yacco2::INT nested_cnt_;
+ std::string file_exceeded_;
+
+@*3 nested files exceeded user-implementation directive.
+@<nested files exceeded user-implementation directive@>=
+
+ Err_nested_files_exceeded::
+ Err_nested_files_exceeded(yacco2::INT Nested_cnt,std::string& File_name)
+ T_CTOR("nested files exceeded",T_Enum::T_Err_nested_files_exceeded_,0,false,false)
+ {nested_cnt_ = Nested_cnt;file_exceeded_ += File_name.c_str();}
+
+@*2 {\bf no \ASTERICsign{}\ASTERICsign{}\ASTERICsign{}}.\fbreak
+Enum: T\_Err\_no\_syntax\_code\_end\_present\_
+\fbreak
+\line{Class: Err\_no\_syntax\_code\_end\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no T in T-alphabet list}.\fbreak
+Enum: T\_Err\_no\_terminals\_in\_T\_alphabet\_list\_
+\fbreak
+\line{Class: Err\_no\_terminals\_in\_T\_alphabet\_list \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no Ts in T-alphabet}.\fbreak
+Enum: T\_Err\_no\_terminals\_present\_in\_T\_alphabet\_
+\fbreak
+\line{Class: Err\_no\_terminals\_present\_in\_T\_alphabet \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no close-brace}.\fbreak
+Enum: T\_Err\_no\_close\_brace\_
+\fbreak
+\line{Class: Err\_no\_close\_brace \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no close-parenthesis}.\fbreak
+Enum: T\_Err\_no\_close\_parenthesis\_
+\fbreak
+\line{Class: Err\_no\_close\_parenthesis \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no closing brace ending rules defs}.\fbreak
+Enum: T\_Err\_no\_close\_brace\_ending\_rules\_defs\_
+\fbreak
+\line{Class: Err\_no\_close\_brace\_ending\_rules\_defs \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no cmd-lne-data}.\fbreak
+Enum: T\_Err\_no\_cmd\_lne\_data\_
+\fbreak
+\line{Class: Err\_no\_cmd\_lne\_data \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no comma present}.\fbreak
+Enum: T\_Err\_no\_comma\_present\_
+\fbreak
+\line{Class: Err\_no\_comma\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no constant-defs keyword present}.\fbreak
+Enum: T\_Err\_no\_kdefs\_kw\_present\_
+\fbreak
+\line{Class: Err\_no\_kdefs\_kw\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no constant-defs-code present}.\fbreak
+Enum: T\_Err\_no\_kdefs\_code\_present\_
+\fbreak
+\line{Class: Err\_no\_kdefs\_code\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no constant-defs-directive present}.\fbreak
+Enum: T\_Err\_no\_constant\_defs\_present\_
+\fbreak
+\line{Class: Err\_no\_constant\_defs\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no directive present}.\fbreak
+Enum: T\_Err\_no\_directive\_present\_
+\fbreak
+\line{Class: Err\_no\_directive\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no end-T-alphabet present}.\fbreak
+Enum: T\_Err\_end\_T\_alphabet\_kw\_not\_present\_
+\fbreak
+\line{Class: Err\_end\_T\_alphabet\_kw\_not\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no end-list-of-native...}.\fbreak
+Enum: T\_Err\_end\_list\_native\_T\_kw\_not\_present\_
+\fbreak
+\line{Class: Err\_end\_list\_native\_T\_kw\_not\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no end-list-of-trans...}.\fbreak
+Enum: T\_Err\_end\_list\_of\_transitive\_threads\_kw\_not\_present\_
+\fbreak
+\line{Class: Err\_end\_list\_of\_transitive\_threads\_kw\_not\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no end-of-code}.\fbreak
+Enum: T\_Err\_no\_end\_of\_code\_
+\fbreak
+\line{Class: Err\_no\_end\_of\_code \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no end-preamble present}.\fbreak
+Enum: T\_Err\_end\_preamble\_kw\_not\_present\_
+\fbreak
+\line{Class: Err\_end\_preamble\_kw\_not\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no file-name kw present}.\fbreak
+Enum: T\_Err\_filename\_kw\_not\_present\_
+\fbreak
+\line{Class: Err\_filename\_kw\_not\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no file-name present}.\fbreak
+Enum: T\_Err\_no\_filename\_present\_
+\fbreak
+\line{Class: Err\_no\_filename\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no file-name value}.\fbreak
+Enum: T\_Err\_filename\_value\_not\_present\_
+\fbreak
+\line{Class: Err\_filename\_value\_not\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no file-name-id present}.\fbreak
+Enum: T\_Err\_no\_filename\_id\_present\_
+\fbreak
+\line{Class: Err\_no\_filename\_id\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no file-of-T-alphabet}.\fbreak
+Enum: T\_Err\_file\_of\_T\_alphabet\_kw\_not\_present\_
+\fbreak
+\line{Class: Err\_file\_of\_T\_alphabet\_kw\_not\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no filename}.\fbreak
+Enum: T\_Err\_no\_filename\_
+\fbreak
+\line{Class: Err\_no\_filename \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no fsm-class present}.\fbreak
+Enum: T\_Err\_no\_fsm\_class\_present\_
+\fbreak
+\line{Class: Err\_no\_fsm\_class\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no fsm-comments present}.\fbreak
+Enum: T\_Err\_no\_fsm\_comments\_present\_
+\fbreak
+\line{Class: Err\_no\_fsm\_comments\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no fsm-comments string present}.\fbreak
+Enum: T\_Err\_no\_fsm\_comments\_string\_
+\fbreak
+\line{Class: Err\_no\_fsm\_comments\_string \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no fsm-date present}.\fbreak
+Enum: T\_Err\_no\_fsm\_date\_present\_
+\fbreak
+\line{Class: Err\_no\_fsm\_date\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no fsm-date string present}.\fbreak
+Enum: T\_Err\_no\_fsm\_date\_string\_
+\fbreak
+\line{Class: Err\_no\_fsm\_date\_string \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no fsm-debug present}.\fbreak
+Enum: T\_Err\_no\_fsm\_debug\_present\_
+\fbreak
+\line{Class: Err\_no\_fsm\_debug\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no fsm-debug string present}.\fbreak
+Enum: T\_Err\_no\_fsm\_debug\_string\_
+\fbreak
+\line{Class: Err\_no\_fsm\_debug\_string \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no fsm-filename id present}.\fbreak
+Enum: T\_Err\_no\_fsm\_filename\_id\_present\_
+\fbreak
+\line{Class: Err\_no\_fsm\_filename\_id\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no fsm-filename present}.\fbreak
+Enum: T\_Err\_no\_fsm\_filename\_present\_
+\fbreak
+\line{Class: Err\_no\_fsm\_filename\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no fsm-id-present}.\fbreak
+Enum: T\_Err\_no\_fsm\_id\_present\_
+\fbreak
+\line{Class: Err\_no\_fsm\_id\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no fsm-id-string present}.\fbreak
+Enum: T\_Err\_no\_fsm\_id\_string\_
+\fbreak
+\line{Class: Err\_no\_fsm\_id\_string \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no fsm-namespace id present}.\fbreak
+Enum: T\_Err\_no\_fsm\_namespace\_id\_present\_
+\fbreak
+\line{Class: Err\_no\_fsm\_namespace\_id\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no fsm-namespace present}.\fbreak
+Enum: T\_Err\_no\_fsm\_namespace\_present\_
+\fbreak
+\line{Class: Err\_no\_fsm\_namespace\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no fsm-version present}.\fbreak
+Enum: T\_Err\_no\_fsm\_version\_present\_
+\fbreak
+\line{Class: Err\_no\_fsm\_version\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no fsm-version string present}.\fbreak
+Enum: T\_Err\_no\_fsm\_version\_string\_
+\fbreak
+\line{Class: Err\_no\_fsm\_version\_string \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no grammar-name present}.\fbreak
+Enum: T\_Err\_grammar\_name\_kw\_not\_present\_
+\fbreak
+\line{Class: Err\_grammar\_name\_kw\_not\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no grammar-name value}.\fbreak
+Enum: T\_Err\_grammar\_name\_value\_not\_present\_
+\fbreak
+\line{Class: Err\_grammar\_name\_value\_not\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no identifier present}.\fbreak
+Enum: T\_Err\_no\_identifier\_present\_
+\fbreak
+\line{Class: Err\_no\_identifier\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no int present}.\fbreak
+Enum: T\_Err\_no\_int\_present\_
+\fbreak
+\line{Class: Err\_no\_int\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no key-value present in definition}.\fbreak
+Enum: T\_Err\_no\_terminal\_key\_present\_
+\fbreak
+\line{Class: Err\_no\_terminal\_key\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no list-of-native-terminals}.\fbreak
+Enum: T\_Err\_list\_of\_terminals\_kw\_not\_present\_
+\fbreak
+\line{Class: Err\_list\_of\_terminals\_kw\_not\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no list-of-transit...}.\fbreak
+Enum: T\_Err\_no\_list\_of\_trans\_threads\_kw\_
+\fbreak
+\line{Class: Err\_no\_list\_of\_trans\_threads\_kw \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no monolithic present}.\fbreak
+Enum: T\_Err\_monolithic\_kw\_not\_present\_
+\fbreak
+\line{Class: Err\_monolithic\_kw\_not\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no name-space}.\fbreak
+Enum: T\_Err\_namespace\_kw\_not\_present\_
+\fbreak
+\line{Class: Err\_namespace\_kw\_not\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no name-space present}.\fbreak
+Enum: T\_Err\_no\_namespace\_present\_
+\fbreak
+\line{Class: Err\_no\_namespace\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no name-space value}.\fbreak
+Enum: T\_Err\_namespace\_value\_not\_present\_
+\fbreak
+\line{Class: Err\_namespace\_value\_not\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no name-space-id present}.\fbreak
+Enum: T\_Err\_no\_namespace\_id\_present\_
+\fbreak
+\line{Class: Err\_no\_namespace\_id\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no no-of-T present}.\fbreak
+Enum: T\_Err\_no\_of\_T\_kw\_not\_present\_
+\fbreak
+\line{Class: Err\_no\_of\_T\_kw\_not\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no open-brace}.\fbreak
+Enum: T\_Err\_no\_open\_brace\_
+\fbreak
+\line{Class: Err\_no\_open\_brace \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no open-parenthesis}.\fbreak
+Enum: T\_Err\_no\_open\_parenthesis\_
+\fbreak
+\line{Class: Err\_no\_open\_parenthesis \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no parallel thread function}.\fbreak
+Enum: T\_Err\_no\_pp\_fnct\_id\_present\_
+\fbreak
+\line{Class: Err\_no\_pp\_fnct\_id\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no parallel-code}.\fbreak
+Enum: T\_Err\_no\_pp\_code\_present\_
+\fbreak
+\line{Class: Err\_no\_pp\_code\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no parallel-code-syntax-code}.\fbreak
+Enum: T\_Err\_no\_pp\_code\_stc\_present\_
+\fbreak
+\line{Class: Err\_no\_pp\_code\_stc\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no parallel-control-monitor}.\fbreak
+Enum: T\_Err\_no\_pp\_ctrl\_mntor\_kw\_present\_
+\fbreak
+\line{Class: Err\_no\_pp\_ctrl\_mntor\_kw\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no parallel-la-bndary expr}.\fbreak
+Enum: T\_Err\_pp\_la\_boundary\_attribute\_not\_fnd\_
+\fbreak
+\line{Class: Err\_pp\_la\_boundary\_attribute\_not\_fnd \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no parallel-la-boundary}.\fbreak
+Enum: T\_Err\_no\_pp\_bndry\_present\_
+\fbreak
+\line{Class: Err\_no\_pp\_bndry\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no parallel-la-boundary-expr}.\fbreak
+Enum: T\_Err\_no\_pp\_la\_bndary\_expr\_present\_
+\fbreak
+\line{Class: Err\_no\_pp\_la\_bndary\_expr\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no parallel-thread-function}.\fbreak
+Enum: T\_Err\_no\_pp\_thread\_function\_present\_
+\fbreak
+\line{Class: Err\_no\_pp\_thread\_function\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no preamble source code}.\fbreak
+Enum: T\_Err\_preamble\_srce\_code\_not\_present\_
+\fbreak
+\line{Class: Err\_preamble\_srce\_code\_not\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no rule name present}.\fbreak
+Enum: T\_Err\_no\_rule\_name\_present\_
+\fbreak
+\line{Class: Err\_no\_rule\_name\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no sub rule present}.\fbreak
+Enum: T\_Err\_no\_sub\_rule\_present\_
+\fbreak
+\line{Class: Err\_no\_sub\_rule\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no sym-class id present}.\fbreak
+Enum: T\_Err\_no\_sym\_class\_id\_present\_
+\fbreak
+\line{Class: Err\_no\_sym\_class\_id\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no sym-class present}.\fbreak
+Enum: T\_Err\_no\_sym\_class\_present\_
+\fbreak
+\line{Class: Err\_no\_sym\_class\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no symbol definition present}.\fbreak
+Enum: T\_Err\_no\_sym\_defs\_present\_
+\fbreak
+\line{Class: Err\_no\_sym\_defs\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no syntax-code present}.\fbreak
+Enum: T\_Err\_no\_syntax\_code\_present\_
+\fbreak
+\line{Class: Err\_no\_syntax\_code\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no terminal-def-code present}.\fbreak
+Enum: T\_Err\_no\_tdef\_code\_present\_
+\fbreak
+\line{Class: Err\_no\_tdef\_code\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no thread-name present}.\fbreak
+Enum: T\_Err\_threadname\_kw\_not\_present\_
+\fbreak
+\line{Class: Err\_threadname\_kw\_not\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no thread-name value}.\fbreak
+Enum: T\_Err\_threadname\_value\_not\_present\_
+\fbreak
+\line{Class: Err\_threadname\_value\_not\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no transitive present}.\fbreak
+Enum: T\_Err\_transitive\_kw\_not\_present\_
+\fbreak
+\line{Class: Err\_transitive\_kw\_not\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no\NOsign in list-of-native-term...}.\fbreak
+Enum: T\_Err\_no\_of\_terminals\_not\_present\_
+\fbreak
+\line{Class: Err\_no\_of\_terminals\_not\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no\NOsign in list-of-trans...}.\fbreak
+Enum: T\_Err\_no\_of\_threads\_not\_present\_
+\fbreak
+\line{Class: Err\_no\_of\_threads\_not\_present \hfil AB: N \hfil AD: N}
+
+
+Cross check against the \O2 linker ``fsc'' info.
+The ``list-of-transitive-threads'' construct also
+states the number of entries in its list.
+Some how they don't jive.
+i think thar's something rotten in the fingers and
+diletants playing with the file?
+
+\fbreak
+\hrule
+@*2 {\bf no-of-T value not present}.\fbreak
+Enum: T\_Err\_no\_of\_T\_value\_not\_present\_
+\fbreak
+\line{Class: Err\_no\_of\_T\_value\_not\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf not :: in thread expr}.\fbreak
+Enum: T\_Err\_not\_dbl\_colon\_in\_th\_stmt\_
+\fbreak
+\line{Class: Err\_not\_dbl\_colon\_in\_th\_stmt \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf not a Rule in chained dispatcher expr}.\fbreak
+Enum: T\_Err\_not\_a\_Rule\_
+\fbreak
+\line{Class: Err\_not\_a\_Rule \hfil AB: N \hfil AD: N}
+
+
+Thrown by |subrule_def.lex| grammar supporting the
+new back-to-back thread call construct whereby the following procedure call is chained to
+the pushed ``return T'' of the 1st thread call.
+The term following the 1st thread call expression must be a rule whose
+contents use the \\TRAshift operator.
+
+\fbreak
+\hrule
+@*2 {\bf not a kw to start the top/down parse construct}.\fbreak
+Enum: T\_Err\_not\_kw\_defining\_grammar\_construct\_
+\fbreak
+\line{Class: Err\_not\_kw\_defining\_grammar\_construct \hfil AB: N \hfil AD: N}
+
+
+Thrown by |pass3.lex| grammar.
+Caused by an identifier that has been misplaced.
+Could be a typo
+where the item should be within the
+defining Rules Vocabulary or
+a premature ending of the Rules construct by an extra close brace
+whereby it is trying to define a rule.
+
+\fbreak
+\hrule
+@*2 {\bf not a lhs kw}.\fbreak
+Enum: T\_Err\_not\_a\_lhs\_kw\_
+\fbreak
+\line{Class: Err\_not\_a\_lhs\_kw \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf not a namespace id in thread expr}.\fbreak
+Enum: T\_Err\_not\_id\_for\_ns\_in\_th\_stmt\_
+\fbreak
+\line{Class: Err\_not\_id\_for\_ns\_in\_th\_stmt \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf not a terminal definition}.\fbreak
+Enum: T\_Err\_not\_a\_terminal\_definition\_
+\fbreak
+\line{Class: Err\_not\_a\_terminal\_definition \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf not a thread name id in expr}.\fbreak
+Enum: T\_Err\_not\_id\_for\_th\_name\_in\_th\_stmt\_
+\fbreak
+\line{Class: Err\_not\_id\_for\_th\_name\_in\_th\_stmt \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf not an arbitration-code keyword}.\fbreak
+Enum: T\_Err\_not\_arbitration\_code\_kw\_
+\fbreak
+\line{Class: Err\_not\_arbitration\_code\_kw \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf not an eosr in subrule expr}.\fbreak
+Enum: T\_Err\_not\_eos\_in\_subrule\_expr\_
+\fbreak
+\line{Class: Err\_not\_eos\_in\_subrule\_expr \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf preamble kw not present}.\fbreak
+Enum: T\_Err\_preamble\_kw\_not\_present\_
+\fbreak
+\line{Class: Err\_preamble\_kw\_not\_present \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf re-compile grammar: bad T-alphabet}.\fbreak
+Enum: T\_Err\_bad\_T\_alphabet\_
+\fbreak
+\line{Class: Err\_bad\_T\_alphabet \hfil AB: N \hfil AD: N}
+
+
+Mismatch with the contents of the ``T-alphabet'' construct and the
+number of terminals stated in each individual grammar ``fsc'' file.
+Usually means that terminals of some ilk have changed the
+population and requires a recompilation per grammar
+to match the vocabulary numbers.
+That is regen grammars with the ``-t'' and ``-err'' switches.
+This gens the eumeration file that ``o2linker'' depends on.
+
+\fbreak
+\hrule
+@*2 {\bf removal of term against empty set in la expr}.\fbreak
+Enum: T\_Err\_empty\_set\_removal\_in\_la\_expr\_
+\fbreak
+\line{Class: Err\_empty\_set\_removal\_in\_la\_expr \hfil AB: N \hfil AD: N}
+
+
+Bad expression where a removal expression is against an empty set.
+For example, a - eolr - b is invalid. The eolr empties the set.
+a - eolr + b is a round about way of having just b in the set.
+
+\fbreak
+\hrule
+@*2 {\bf report-card-ptr-0}.\fbreak
+Enum: T\_Err\_report\_card\_ptr\_0\_
+\fbreak
+\line{Class: Err\_report\_card\_ptr\_0 \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf rotten chr in T-alphabet}.\fbreak
+Enum: T\_Err\_rotten\_chr\_in\_T\_alphabet\_
+\fbreak
+\line{Class: Err\_rotten\_chr\_in\_T\_alphabet \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf rule already defined}.\fbreak
+Enum: T\_Err\_rule\_already\_defined\_
+\fbreak
+\line{Class: Err\_rule\_already\_defined \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf rule does not gen T strings - sick grammar}.\fbreak
+Enum: T\_ERR\_sick\_grammar\_
+\fbreak
+\line{Class: ERR\_sick\_grammar \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf rule not found in stbl}.\fbreak
+Enum: T\_Err\_rule\_not\_in\_stbl\_
+\fbreak
+\line{Class: Err\_rule\_not\_in\_stbl \hfil AB: N \hfil AD: N}
+
+
+Post process the grammar's vocabulary.
+A rule can be referenced before
+its definition.
+Just help the grammar writer of misselling or forgetfulness.
+
+\fbreak
+\hrule
+@*2 {\bf rule used but undefined}.\fbreak
+Enum: T\_Err\_used\_rule\_but\_undefined\_
+\fbreak
+\line{Class: Err\_used\_rule\_but\_undefined \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf stbl char-pool full}.\fbreak
+Enum: T\_Err\_sym\_tbl\_char\_pool\_full\_
+\fbreak
+\line{Class: Err\_sym\_tbl\_char\_pool\_full \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf stbl context-buf-overflow}.\fbreak
+Enum: T\_Err\_sym\_tbl\_context\_buf\_overflow\_
+\fbreak
+\line{Class: Err\_sym\_tbl\_context\_buf\_overflow \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf stbl full}.\fbreak
+Enum: T\_Err\_sym\_tbl\_full\_
+\fbreak
+\line{Class: Err\_sym\_tbl\_full \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf stbl has entry but not a rule}.\fbreak
+Enum: T\_Err\_stble\_has\_entry\_but\_not\_a\_rule\_
+\fbreak
+\line{Class: Err\_stble\_has\_entry\_but\_not\_a\_rule \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf stbl scope-stk overflow}.\fbreak
+Enum: T\_Err\_sym\_tbl\_nested\_scope\_stk\_overflow\_
+\fbreak
+\line{Class: Err\_sym\_tbl\_nested\_scope\_stk\_overflow \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf stbl scope-stk underflow}.\fbreak
+Enum: T\_Err\_sym\_tbl\_nested\_scope\_stk\_underflow\_
+\fbreak
+\line{Class: Err\_sym\_tbl\_nested\_scope\_stk\_underflow \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf subrule overrun}.\fbreak
+Enum: T\_Err\_subrule\_overrun\_
+\fbreak
+\line{Class: Err\_subrule\_overrun \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf subscript out-of-range}.\fbreak
+Enum: T\_Err\_subscript\_out\_of\_range\_
+\fbreak
+\line{Class: Err\_subscript\_out\_of\_range \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf term not a lhs or parallel-control-monitor kw}.\fbreak
+Enum: T\_Err\_not\_lhs\_pcnrl\_mntr\_
+\fbreak
+\line{Class: Err\_not\_lhs\_pcnrl\_mntr \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf terminals-refs duplicate}.\fbreak
+Enum: T\_Err\_terminals\_refs\_dup\_def\_
+\fbreak
+\line{Class: Err\_terminals\_refs\_dup\_def \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf thread defined by another fsc file}.\fbreak
+Enum: T\_Err\_already\_defined\_in\_fsc\_file\_
+\fbreak
+\line{Class: Err\_already\_defined\_in\_fsc\_file \hfil AB: N \hfil AD: N}
+
+
+Each individual thread's fsc file contains its bio.
+This error indicates that the grammar writer probably
+cloned off a grammar but did not
+edit properly the vital statistics.
+So go edit the erroneous grammar and correct
+its thread name, namespace etc.
+
+\fbreak
+\hrule
+@*2 {\bf thread in stbl but subscript badly set}.\fbreak
+Enum: T\_Err\_bad\_thread\_subscript\_
+\fbreak
+\line{Class: Err\_bad\_thread\_subscript \hfil AB: N \hfil AD: N}
+
+
+More of a sanity check in the symbol table.
+If this occurs i'm really in trouble.
+
+\fbreak
+\hrule
+@*2 {\bf thread xrefed, but not defed}.\fbreak
+Enum: T\_Err\_thread\_refed\_but\_not\_defined\_
+\fbreak
+\line{Class: Err\_thread\_refed\_but\_not\_defined \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 thread xrefed, but not defed user-declaration directive.
+@<thread xrefed, but not defed user-declaration directive@>=
+
+ public:
+ Err_thread_refed_but_not_defined(CAbs_lr1_sym* Th_id);
+ CAbs_lr1_sym* th_id();
+ private:CAbs_lr1_sym* th_id_;
+
+@*3 thread xrefed, but not defed user-implementation directive.
+@<thread xrefed, but not defed user-implementation directive@>=
+
+ Err_thread_refed_but_not_defined::
+ Err_thread_refed_but_not_defined(CAbs_lr1_sym* Th_id)
+T_CTOR("thread xrefed, but not defed",T_Enum::T_Err_thread_refed_but_not_defined_,0,false,false)
+ { th_id_ = Th_id;}
+yacco2::CAbs_lr1_sym* Err_thread_refed_but_not_defined::th_id(){return th_id_;};
+
+@*2 {\bf token found in stbl but not a kw}.\fbreak
+Enum: T\_Err\_not\_a\_keyword\_
+\fbreak
+\line{Class: Err\_not\_a\_keyword \hfil AB: N \hfil AD: N}
+
+
+The symbol is not a keyword. Could be an initialization
+problem with my \O2 setup.
+
+\fbreak
+\hrule
+@*2 {\bf transitive list thread not defined by fsc files}.\fbreak
+Enum: T\_Err\_bad\_th\_in\_list\_
+\fbreak
+\line{Class: Err\_bad\_th\_in\_list \hfil AB: N \hfil AD: N}
+
+
+The hand coded ``???.fsc'' control file provides
+all the threads' ``fsc'' files has thread entries missing.
+Typically the grammar writer created a new thread but forgot the
+include it in the global ``fsc'' file.
+So go add the missing thread entries in the global ``fsc'' file.
+
+\fbreak
+\hrule
+@*2 {\bf undefined terminal in subrule}.\fbreak
+Enum: T\_Err\_subrule\_use\_undefined\_T\_
+\fbreak
+\line{Class: Err\_subrule\_use\_undefined\_T \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf unknown symbol type in stbl}.\fbreak
+Enum: T\_Err\_stbl\_entry\_unknown\_
+\fbreak
+\line{Class: Err\_stbl\_entry\_unknown \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf use of Non-terminal (rule) outside Rules's construct}.\fbreak
+Enum: T\_Err\_use\_of\_N\_outside\_Rules\_construct\_
+\fbreak
+\line{Class: Err\_use\_of\_N\_outside\_Rules\_construct \hfil AB: N \hfil AD: N}
+
+
+Thrown by |pass3.lex| grammar.
+The rule reference has already been
+seen by the parsed Rules construct and
+stored in the symbol table.
+The symbol table returns the found item as a rule.
+Cause is a reference to the rule outside of the Rules construct.
+Probably a typo by the grammar writer caused by the premature
+parsing of the Rules Vocabulary.
+
+\fbreak
+\hrule
+@*2 {\bf use of T outside Rules's construct}.\fbreak
+Enum: T\_Err\_use\_of\_T\_outside\_Rules\_construct\_
+\fbreak
+\line{Class: Err\_use\_of\_T\_outside\_Rules\_construct \hfil AB: N \hfil AD: N}
+
+
+Thrown by |pass3.lex| grammar.
+The terminal definitions have already been parsed and
+stored in the symbol table.
+The symbol table returns the found item as a terminal rather than
+the unfound identifier.
+Cause is reference of a terminal outside of the Rules construct.
+Probably a typo by the grammar writer.
+
+\fbreak
+\hrule
+@*2 {\bf zero len symbol}.\fbreak
+Enum: T\_Err\_zero\_len\_sym\_
+\fbreak
+\line{Class: Err\_zero\_len\_sym \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@** Index.
diff --git a/web/yacco2/compiler/grammars/Lrk.w b/web/yacco2/compiler/grammars/Lrk.w
new file mode 100644
index 0000000000..11018e6b95
--- /dev/null
+++ b/web/yacco2/compiler/grammars/Lrk.w
@@ -0,0 +1,331 @@
+\input "supp-pdf"
+\input "/usr/local/yacco2/diagrams/o2mac.tex"
+\DOCtitle{Lr K Vocabulary}{yacco2\_k\_symbols}
+{NS\_yacco2\_k\_symbols}{8}
+
+@i "/usr/local/yacco2/copyright.w"
+@** K symbols vocabulary.\fbreak
+Ahh the ``Constant grammar'' symbols used throughout all grammars.
+Depending on the command line options \O2 can generate the grammar
+and possibly the various flavours of the Terminal vocabulary.
+Under normal development, the grammar writer
+compiles and emits just the grammar.
+Flavours of the terminal vocabulary are not usually generated unless
+there have been changes
+to either {\bf error} or
+{\bf terminal} with accompaning command line option.
+At the
+initial ``big bang'' of bootstrapping \O2's library and compiler / compiler,
+both {\bf raw characters} and {\bf lr k} terminals were generated
+using their command line options
+{/rc} and {/lrk}. The command line option
+now uses an Unix style {-t, -err} and
+these 2 terminal types ``lrk'' and ``raw characters''
+are now cast in cement: u cannot regen them
+ from their ``*.T'' file definitions but
+u can change their ``big bang'' generated ``c++'' modules.
+These terminals are now read-only:
+they will never be changed by a user of \O2 and who'd want to anyway?.
+
+The hardwired ``k'' terminals are used by \O2's library
+ for internal parsing situations.
+Apart from {\bf eog} who represents
+the end-of-grammar and end-of-file conditions,
+all other definitions are not part of the token source
+ stream being parsed.
+I call them meta terminals
+as they are never in the token stream but
+represent internal parsing conditions within the emitted
+finite-state table that triggers the \O2's library routines.
+For example, the presence of \paralleloperator within
+a parse state
+indicates the potential ``to run'' threads.
+If u look carefully, their file definitions and
+implementations reside in \O2's ``../yacco2/library/grammars'' folder.
+Their definition files are ``yacco2\_k\_symbols.T'' and
+``yacco2\_characters.T'' with
+their ``c++'' variants having the ``.h'' and ''.cpp'' extensions.
+
+@*2 {\bf eog}.\fbreak
+Enum: T\_LR1\_eog\_
+\fbreak
+\line{Class: LR1\_eog \hfil AB: N \hfil AD: N}
+
+
+ Used to indicate an end-of-grammar or an end-of-file condition.
+ When the token container is reached, calls for another terminal
+ will always return the |eog|.
+ It's your door bouncer before hell.
+
+\fbreak
+\hrule
+@*3 eog user-declaration directive.
+@<eog user-declaration directive@>=
+
+ LR1_eog();
+
+@*3 eog user-implementation directive.
+@<eog user-implementation directive@>=
+
+ LR1_eog::LR1_eog()
+ T_CTOR("eog",T_LR1_eog_,0,false,false)
+ {}
+ LR1_eog LR1_eog__;
+ yacco2::CAbs_lr1_sym* yacco2::PTR_LR1_eog__ = &LR1_eog__;
+
+@*2 {\bf eolr}.\fbreak
+Enum: T\_LR1\_eolr\_
+\fbreak
+\line{Class: LR1\_eolr \hfil AB: N \hfil AD: N}
+
+
+ Used to indicate all-terminals of the
+ terminal vocabulary including itself.
+ It saves finger blisters by not having
+ to be explicit in the thread's lookahead expression.
+ Dieting hasn't been this effective to code bloat.
+
+\fbreak
+\hrule
+@*3 eolr user-declaration directive.
+@<eolr user-declaration directive@>=
+
+ LR1_eolr();
+
+@*3 eolr user-implementation directive.
+@<eolr user-implementation directive@>=
+
+ LR1_eolr::LR1_eolr()
+ T_CTOR("eolr",T_LR1_eolr_,0,false,false)
+ {}
+ LR1_eolr LR1_eolr__;
+ yacco2::CAbs_lr1_sym* NS_yacco2_k_symbols::PTR_LR1_eolr__ = &LR1_eolr__;
+
+@*2 {\bf \ALLshift{}}.\fbreak
+Enum: T\_LR1\_all\_shift\_operator\_
+\fbreak
+\line{Class: LR1\_all\_shift\_operator \hfil AB: N \hfil AD: N}
+
+
+ Represents the wild token situation.
+ Lowers the specific shifts of the finite-state-table and
+ allows the grammar writer to field the unexpected from returned
+ threads. Good stuff.
+
+Caveat: One should use the \QUEshift to field unknow return Tes if
+they are to be interpreted as errors.
+
+\fbreak
+\hrule
+@*3 \ALLshift\BRACEOPEN{}\BRACECLOSE{} user-declaration directive.
+@<\ALLshift\BRACEOPEN{}\BRACECLOSE{} user-declaration directive@>=
+
+ LR1_all_shift_operator();
+
+@*3 \ALLshift\BRACEOPEN{}\BRACECLOSE{} user-implementation directive.
+@<\ALLshift\BRACEOPEN{}\BRACECLOSE{} user-implementation directive@>=
+
+ LR1_all_shift_operator::LR1_all_shift_operator()
+ T_CTOR("|+|",T_LR1_all_shift_operator_,0,false,false)
+ {}
+ LR1_all_shift_operator LR1_all_shift_operator__;
+ yacco2::CAbs_lr1_sym* NS_yacco2_k_symbols::PTR_LR1_all_shift_operator__
+= &LR1_all_shift_operator__;
+
+@*2 {\bf \INVshift{}}.\fbreak
+Enum: T\_LR1\_invisible\_shift\_operator\_
+\fbreak
+\line{Class: LR1\_invisible\_shift\_operator \hfil AB: N \hfil AD: N}
+
+
+ It's a nice way to program
+ out of an ambiguous grammar.
+ It can also lower the code bloat
+ of a thread's first set.
+
+\fbreak
+\hrule
+@*3 \INVshift\BRACEOPEN{}\BRACECLOSE{} user-declaration directive.
+@<\INVshift\BRACEOPEN{}\BRACECLOSE{} user-declaration directive@>=
+
+ LR1_invisible_shift_operator();
+
+@*3 \INVshift\BRACEOPEN{}\BRACECLOSE{} user-implementation directive.
+@<\INVshift\BRACEOPEN{}\BRACECLOSE{} user-implementation directive@>=
+
+ LR1_invisible_shift_operator::LR1_invisible_shift_operator()
+ T_CTOR("|.|",T_LR1_invisible_shift_operator_,0,false,false)
+ {}
+ LR1_invisible_shift_operator LR1_invisible_shift_operator__;
+ yacco2::CAbs_lr1_sym* NS_yacco2_k_symbols::PTR_LR1_invisible_shift_operator__
+ = &LR1_invisible_shift_operator__;
+
+@*2 {\bf \QUEshift{}}.\fbreak
+Enum: T\_LR1\_questionable\_shift\_operator\_
+\fbreak
+\line{Class: LR1\_questionable\_shift\_operator \hfil AB: N \hfil AD: N}
+
+
+ Represents a questionable grammar situation.
+It pinpoints programmed error points within the grammar.
+The subrule using this symbol has a lr(0) reduction as
+the lookahead is not kosher and so would probably not reduce
+in the lr(1) context.
+It can be used both in the following grammar expressions:\fbreak
+\INDENT{1.5cm}{1) \subrule \QUEshift}
+\INDENT{1.5cm}{2) \subrule \PARshift \quad \QUEshift \quad NULL}
+Point 1 covers the state where the current token being parsed
+is improper. Point 2 is more interesting as it captures
+a returned terminal that the thread passes back as an error.
+
+The \QUEshift was not one of the original
+``k'' terminals. It replaced the ``eof'' terminal
+which was marginal in intent.
+I felt the \QUEshift symbol drew the reader's eye of the grammar where
+``faulty'' points where captured and to force lr(0) context processing
+to reduce its subrule.
+Why lr(0) context? Glad u asked, the lookahead terminal --- the current
+terminal being parsed, is in error and
+so ``how is the subrule with the \QUEshift to reduce after its shifted T?''.
+It must be divorced of any lookahead and just acted upon.
+
+Now another question arises: ``how is this condition detected in
+a parsing state of
+mixed conditions --- threading, shifting, reducing''?
+There is a pecking order on the conditions tried by the parser:\fbreak
+\INDENT{1.5cm}{$\circ$ threading}
+\INDENT{2.5cm}{if tried and unsuccessful the balance of conditions are attempted}
+\INDENT{1.5cm}{$\circ$ shifts pecking order by their presence in current parse state:}
+\INDENT{2.5cm}{can the current token be shifted?}
+\INDENT{2.5cm}{\QUEshift --- error condition}
+\INDENT{2.5cm}{\INVshift --- explicit \emptyrule}
+\INDENT{2.5cm}{\ALLshift --- any terminial}
+\INDENT{1.5cm}{$\circ$ reduce}
+\INDENT{2.5cm}{note shifting is favoured over reducing}
+
+\fbreak
+\hrule
+@*3 \QUEshift\BRACEOPEN{}\BRACECLOSE{} user-declaration directive.
+@<\QUEshift\BRACEOPEN{}\BRACECLOSE{} user-declaration directive@>=
+
+ LR1_questionable_shift_operator();
+
+@*3 \QUEshift\BRACEOPEN{}\BRACECLOSE{} user-implementation directive.
+@<\QUEshift\BRACEOPEN{}\BRACECLOSE{} user-implementation directive@>=
+
+ LR1_questionable_shift_operator::LR1_questionable_shift_operator()
+ T_CTOR("|?|",T_LR1_all_shift_operator_,0,false,false)
+ {}
+ LR1_questionable_shift_operator LR1_questionable_shift_operator__;
+ yacco2::CAbs_lr1_sym* NS_yacco2_k_symbols::PTR_LR1_questionable_shift_operator__
+= &LR1_questionable_shift_operator__;
+
+@*2 {\bf \REDshift{}}.\fbreak
+Enum: T\_LR1\_reduce\_operator\_
+\fbreak
+\line{Class: LR1\_reduce\_operator \hfil AB: Y \hfil AD: Y}
+
+
+ Its presence within the individual state of
+ the ``fsm'' table is to force a reduce operation.
+ Why? it's a back-to-back
+ situation within the state table whereby a thread should reduce
+ while its reducing lookahead is the \paralleloperator indicating to run a thread.
+
+\fbreak
+\hrule
+@*2 {\bf \TRAshift{}}.\fbreak
+Enum: T\_LR1\_fset\_transience\_operator\_
+\fbreak
+\line{Class: LR1\_fset\_transience\_operator \hfil AB: Y \hfil AD: Y}
+
+
+ \TRAshift has dual purposes: used in \O2linker to process the transient
+ first sets generated by threads, and used within a grammar's
+``chained call procedure'' expression to lower thread overhead by
+calling a procedure with explicit intent on double use of its
+``first set'' token.
+I'll give an example of a ``chained procedure call'' expression drawn from
+the ``pass3.lex'' grammar handling the grammar's file include expression:\fbreak
+\fbreak
+\INDENT{1cm}{\subrule "\ATsign" Rprefile\_inc\_dispatcher}
+\fbreak
+The ``Rprefile\_inc\_dispatcher'' grammar rule has the following subrule:\fbreak
+\fbreak
+\INDENT{1cm}{\subrule \TRAshift "file-inclusion" NS\_prefile\_include::PROC\_TH\_prefile\_include}
+\fbreak
+The ``chained'' part is in the duplicating of ``\ATsign'';
+that is, the parsing mechanism does not get a new terminal when shifted but
+passes this T onto the called procedure.
+The called PROC\_TH\_prefile\_include procedure / thread has its
+start rule as:\fbreak
+\fbreak
+\INDENT{1cm}{\subrule "\ATsign" Rpossible\_ws Rfile\_string Reof}
+\fbreak
+The repeated use of ``\ATsign'' was to reenforce the idea
+that the procedure called cuz of ``\ATsign'': there's that ``first set'' again.
+Well time will pass its comments on this thought process.
+
+\fbreak
+\hrule
+@*3 \TRAshift\BRACEOPEN{}\BRACECLOSE{} user-declaration directive.
+@<\TRAshift\BRACEOPEN{}\BRACECLOSE{} user-declaration directive@>=
+
+ LR1_fset_transience_operator();
+
+@*3 \TRAshift\BRACEOPEN{}\BRACECLOSE{} user-implementation directive.
+@<\TRAshift\BRACEOPEN{}\BRACECLOSE{} user-implementation directive@>=
+
+ LR1_fset_transience_operator::LR1_fset_transience_operator()
+ T_CTOR("|t|",T_LR1_fset_transience_operator_,0,false,false)
+ {}
+ LR1_fset_transience_operator LR1_fset_transience_operator__;
+ yacco2::CAbs_lr1_sym* NS_yacco2_k_symbols::PTR_LR1_fset_transience_operator__
+ = &LR1_fset_transience_operator__;
+
+@*2 {\bf \PARshift{}}.\fbreak
+Enum: T\_LR1\_parallel\_operator\_
+\fbreak
+\line{Class: LR1\_parallel\_operator \hfil AB: N \hfil AD: N}
+
+
+ Its presence within the individual state of
+ the ``fsm'' table dictates potential threads to run.
+ You see it sprinkled throughout my grammars
+ to call threads.
+ This is part of \O2's raison d'{\^e}tre.
+
+\fbreak
+\hrule
+@*3 \PARshift\BRACEOPEN{}\BRACECLOSE{} user-declaration directive.
+@<\PARshift\BRACEOPEN{}\BRACECLOSE{} user-declaration directive@>=
+
+ LR1_parallel_operator();
+
+@*3 \PARshift\BRACEOPEN{}\BRACECLOSE{} user-implementation directive.
+@<\PARshift\BRACEOPEN{}\BRACECLOSE{} user-implementation directive@>=
+
+ LR1_parallel_operator::LR1_parallel_operator()
+ T_CTOR("|||",T_LR1_parallel_operator_,0,false,false)
+ {}
+ LR1_parallel_operator LR1_parallel_operator__;
+ yacco2::CAbs_lr1_sym* NS_yacco2_k_symbols::PTR_LR1_parallel_operator__
+= &LR1_parallel_operator__;
+
+@*1 {\bf lrk-sufx} directive.\fbreak
+
+As they are constants, they are defined globally
+to save space / overhead in the typical new create / delete
+cycle of terminals. Thar's recycling going on in this green space.
+
+@<lrk-sufx directive@>=
+
+ extern yacco2::CAbs_lr1_sym* PTR_LR1_parallel_operator__;
+ extern yacco2::CAbs_lr1_sym* PTR_LR1_fset_transience_operator__;
+ extern yacco2::CAbs_lr1_sym* PTR_LR1_invisible_shift_operator__;
+ extern yacco2::CAbs_lr1_sym* PTR_LR1_questionable_shift_operator__;
+ extern yacco2::CAbs_lr1_sym* PTR_LR1_all_shift_operator__;
+ extern yacco2::CAbs_lr1_sym* PTR_LR1_eolr__;
+
+
+@** Index.
diff --git a/web/yacco2/compiler/grammars/T.w b/web/yacco2/compiler/grammars/T.w
new file mode 100644
index 0000000000..2b3b411cc2
--- /dev/null
+++ b/web/yacco2/compiler/grammars/T.w
@@ -0,0 +1,4116 @@
+\input "supp-pdf"
+\input "/usr/local/yacco2/diagrams/o2mac.tex"
+\DOCtitle{Terminal Vocabulary}{yacco2\_terminals}
+{NS\_yacco2\_terminals}{114}
+
+@i "/yacco2/copyright.w"
+@** Terminal vocabulary.\fbreak
+There are some terminals that spoof the grammar's keywords like
+``\#fsm''. The keyword recognizer recognizes the character string
+of ``fsm'' but how do u define it and reference it within the
+grammars defining \O2's very own language: the
+conundrum of the grammar defining itself?
+Ahh to recurse or not to curse, that is the?
+Well this is my take.
+The logical keys are just proxy material.
+
+@*2 {\bf Terminals-refs} directive.\fbreak
+
+Makesure c++ forward references compile.
+
+@<terminals-refs directive@>=
+
+using namespace std;
+using namespace NS_yacco2_err_symbols;
+using namespace yacco2;
+struct T_called_thread_eosubrule;
+struct T_c_literal;
+struct T_identifier;
+struct T_syntax_code;
+struct T_fsm_class_phrase;
+struct T_fsm_class;
+struct T_fsm_phrase;
+struct T_parallel_parser_phrase;
+struct T_enum_phrase;
+struct T_error_symbols_phrase;
+struct T_rc_phrase;
+struct T_lr1_k_phrase;
+struct T_terminals_phrase;
+struct T_rules_phrase;
+struct T_subrules_phrase;
+struct T_rhs_bnd;
+struct refered_rule;
+struct rule_def;
+struct refered_T;
+struct T_in_stbl;
+struct rule_in_stbl;
+extern yacco2::CAbs_lr1_sym* PTR_lint__;
+extern yacco2::CAbs_lr1_sym* PTR_ws__;
+extern yacco2::CAbs_lr1_sym* PTR_eol__;
+
+
+@*2 {\bf \NOsign \ASTERICsign{}\ASTERICsign{}\ASTERICsign{}}.\fbreak
+Enum: T\_T\_eocode\_
+\fbreak
+\line{Class: T\_eocode \hfil AB: N \hfil AD: N}
+
+
+\O2's keyword ending syntax directed code block.
+
+\fbreak
+\hrule
+@*2 {\bf \NOsign AB}.\fbreak
+Enum: T\_T\_AB\_
+\fbreak
+\line{Class: T\_AB \hfil AB: N \hfil AD: N}
+
+
+``AB'' means auto-abort.
+This attribute when present with any grammar's vocabulary definition ---
+rules or terminals,
+allows proper cleanup when a grammar aborts parsing.
+Rules always have this attribute turned on to
+house clean their parse tracings in any situation.
+Terminal definitions left on the aborted parse stack
+are also deleted if their ``AB'' attribute is on.
+This forced cleanup of the parse stack brings the grammar
+back to normalcy.
+
+\fbreak
+\hrule
+@*2 {\bf \NOsign AD}.\fbreak
+Enum: T\_T\_AD\_
+\fbreak
+\line{Class: T\_AD \hfil AB: N \hfil AD: N}
+
+
+``AD'' means auto-delete.
+This attribute when present with any grammar's vocabulary definition ---
+rules or terminals,
+indicates
+that the symbol is deleted when popped from
+the parse stack.
+Rules always have this attribute turned on.
+
+\fbreak
+\hrule
+@*2 {\bf \NOsign NULL}.\fbreak
+Enum: T\_T\_NULL\_
+\fbreak
+\line{Class: T\_NULL \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf \NOsign T-enumeration}.\fbreak
+Enum: T\_T\_enumeration\_
+\fbreak
+\line{Class: T\_enumeration \hfil AB: Y \hfil AD: N}
+
+
+Introduces the enumeration construct of the grammar.
+The 1 + 2 + 3 scheme counting of the symbols.
+
+\fbreak
+\hrule
+@*3 \NOsign T-enumeration destructor directive.
+@<\NOsign T-enumeration destructor directive@>=
+
+ if(R->enum_phrase_ != 0)
+ delete R->enum_phrase_;
+
+@*3 \NOsign T-enumeration user-declaration directive.
+@<\NOsign T-enumeration user-declaration directive@>=
+
+ public:
+ T_enumeration();
+ void enum_phrase(T_enum_phrase* Phrase);
+ T_enum_phrase* enum_phrase();
+ private:T_enum_phrase* enum_phrase_;
+
+@*3 \NOsign T-enumeration user-implementation directive.
+@<\NOsign T-enumeration user-implementation directive@>=
+
+ T_enumeration::T_enumeration()
+ T_CTOR("#T-enumeration",T_Enum::T_T_enumeration_,&dtor_T_enumeration,false,true)
+ {enum_phrase_ = 0;}
+ T_enum_phrase* T_enumeration::enum_phrase(){return enum_phrase_;}
+ void T_enumeration::enum_phrase(T_enum_phrase* Phrase){enum_phrase_ = Phrase;}
+
+@*2 {\bf \NOsign arbitrator-code}.\fbreak
+Enum: T\_T\_arbitrator\_code\_
+\fbreak
+\line{Class: T\_arbitrator\_code \hfil AB: N \hfil AD: N}
+
+
+\O2's keyword introducing c++ arbitration code within the grammar's rule.
+
+\fbreak
+\hrule
+@*3 \NOsign arbitrator-code user-declaration directive.
+@<\NOsign arbitrator-code user-declaration directive@>=
+
+ public:
+ T_arbitrator_code();
+ void syntax_code(T_syntax_code* Stc);
+ T_syntax_code* syntax_code();
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ private:T_syntax_code* syntax_code_;
+ AST* cweb_marker_;
+
+@*3 \NOsign arbitrator-code user-implementation directive.
+@<\NOsign arbitrator-code user-implementation directive@>=
+
+ T_arbitrator_code::T_arbitrator_code()
+ T_CTOR("#arbitrator-code",T_Enum::T_T_arbitrator_code_,0,false,false)
+ {syntax_code_ = 0;cweb_marker_=0;}
+ T_syntax_code* T_arbitrator_code::syntax_code(){return syntax_code_;}
+ void T_arbitrator_code::syntax_code(T_syntax_code* Stc){syntax_code_ = Stc;}
+ void T_arbitrator_code::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+ AST* T_arbitrator_code::cweb_marker(){
+ return cweb_marker_;
+ }
+
+@*2 {\bf \NOsign constant-defs}.\fbreak
+Enum: T\_T\_constant\_defs\_
+\fbreak
+\line{Class: T\_constant\_defs \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf \NOsign constructor}.\fbreak
+Enum: T\_T\_constructor\_
+\fbreak
+\line{Class: T\_constructor \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 \NOsign constructor user-declaration directive.
+@<\NOsign constructor user-declaration directive@>=
+
+ public:
+ T_constructor();
+ void syntax_code(T_syntax_code* Stc);
+ T_syntax_code* syntax_code();
+ private:T_syntax_code* syntax_code_;
+
+@*3 \NOsign constructor user-implementation directive.
+@<\NOsign constructor user-implementation directive@>=
+
+ T_constructor::T_constructor()
+ T_CTOR("#constructor",T_Enum::T_T_constructor_,0,false,false)
+ {syntax_code_ = 0;}
+ T_syntax_code* T_constructor::syntax_code(){return syntax_code_;}
+ void T_constructor::syntax_code(T_syntax_code* Stc){syntax_code_ = Stc;}
+
+@*2 {\bf \NOsign destructor}.\fbreak
+Enum: T\_T\_destructor\_
+\fbreak
+\line{Class: T\_destructor \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 \NOsign destructor user-declaration directive.
+@<\NOsign destructor user-declaration directive@>=
+
+ public:
+ T_destructor();
+ void syntax_code(T_syntax_code* Stc);
+ T_syntax_code* syntax_code();
+ private:T_syntax_code* syntax_code_;
+
+@*3 \NOsign destructor user-implementation directive.
+@<\NOsign destructor user-implementation directive@>=
+
+ T_destructor::T_destructor()
+ T_CTOR("#destructor",T_Enum::T_T_destructor_,0,false,false)
+ {syntax_code_ = 0;}
+ T_syntax_code* T_destructor::syntax_code(){return syntax_code_;}
+ void T_destructor::syntax_code(T_syntax_code* Stc){syntax_code_ = Stc;}
+
+@*2 {\bf \NOsign error-symbols}.\fbreak
+Enum: T\_T\_error\_symbols\_
+\fbreak
+\line{Class: T\_error\_symbols \hfil AB: N \hfil AD: N}
+
+
+\O2's keyword introducing the Errors vocabulary.
+
+\fbreak
+\hrule
+@*3 \NOsign error-symbols destructor directive.
+@<\NOsign error-symbols destructor directive@>=
+
+ if(R->error_symbols_phrase_ != 0)
+ delete R->error_symbols_phrase_;
+
+@*3 \NOsign error-symbols user-declaration directive.
+@<\NOsign error-symbols user-declaration directive@>=
+
+ public:
+ T_error_symbols();
+ void error_symbols_phrase(T_error_symbols_phrase* Phrase);
+ T_error_symbols_phrase* error_symbols_phrase();
+ private:T_error_symbols_phrase* error_symbols_phrase_;
+
+@*3 \NOsign error-symbols user-implementation directive.
+@<\NOsign error-symbols user-implementation directive@>=
+
+ T_error_symbols::T_error_symbols()
+T_CTOR("#error-symbols",T_Enum::T_T_error_symbols_,&dtor_T_error_symbols,false,false)
+ {error_symbols_phrase_ = 0;}
+ T_error_symbols_phrase*
+ T_error_symbols::error_symbols_phrase(){return error_symbols_phrase_;}
+ void T_error_symbols::
+ error_symbols_phrase(T_error_symbols_phrase* Phrase){error_symbols_phrase_ = Phrase;}
+
+@*2 {\bf \NOsign failed}.\fbreak
+Enum: T\_T\_failed\_
+\fbreak
+\line{Class: T\_failed \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 \NOsign failed user-declaration directive.
+@<\NOsign failed user-declaration directive@>=
+
+ public:
+ T_failed();
+ void syntax_code(T_syntax_code* Stc);
+ T_syntax_code* syntax_code();
+ private:T_syntax_code* syntax_code_;
+
+@*3 \NOsign failed user-implementation directive.
+@<\NOsign failed user-implementation directive@>=
+
+ T_failed::T_failed()
+ T_CTOR("#failed",T_Enum::T_T_failed_,0,false,false)
+ {syntax_code_ = 0;}
+ T_syntax_code* T_failed::syntax_code(){return syntax_code_;}
+ void T_failed::syntax_code(T_syntax_code* Stc){syntax_code_ = Stc;}
+
+@*2 {\bf \NOsign file-name}.\fbreak
+Enum: T\_T\_file\_name\_
+\fbreak
+\line{Class: T\_file\_name \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf \NOsign fsm}.\fbreak
+Enum: T\_T\_fsm\_
+\fbreak
+\line{Class: T\_fsm \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 \NOsign fsm destructor directive.
+@<\NOsign fsm destructor directive@>=
+
+ if(R->fsm_phrase_ != 0)
+ delete R->fsm_phrase_;
+
+@*3 \NOsign fsm user-declaration directive.
+@<\NOsign fsm user-declaration directive@>=
+
+ public:
+ T_fsm();
+ void fsm_phrase(T_fsm_phrase* Phrase);
+ T_fsm_phrase* fsm_phrase();
+ private:T_fsm_phrase* fsm_phrase_;
+
+@*3 \NOsign fsm user-implementation directive.
+@<\NOsign fsm user-implementation directive@>=
+
+ T_fsm::T_fsm()
+ T_CTOR("#fsm",T_Enum::T_T_fsm_,&dtor_T_fsm,false,false)
+ {fsm_phrase_ = 0;}
+ T_fsm_phrase* T_fsm::fsm_phrase(){return fsm_phrase_;}
+ void T_fsm::fsm_phrase(T_fsm_phrase* Phrase){fsm_phrase_ = Phrase;}
+
+@*2 {\bf \NOsign fsm-class}.\fbreak
+Enum: T\_T\_fsm\_class\_
+\fbreak
+\line{Class: T\_fsm\_class \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf \NOsign fsm-comments}.\fbreak
+Enum: T\_T\_fsm\_comments\_
+\fbreak
+\line{Class: T\_fsm\_comments \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf \NOsign fsm-date}.\fbreak
+Enum: T\_T\_fsm\_date\_
+\fbreak
+\line{Class: T\_fsm\_date \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf \NOsign fsm-debug}.\fbreak
+Enum: T\_T\_fsm\_debug\_
+\fbreak
+\line{Class: T\_fsm\_debug \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf \NOsign fsm-filename}.\fbreak
+Enum: T\_T\_fsm\_filename\_
+\fbreak
+\line{Class: T\_fsm\_filename \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf \NOsign fsm-id}.\fbreak
+Enum: T\_T\_fsm\_id\_
+\fbreak
+\line{Class: T\_fsm\_id \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf \NOsign fsm-namespace}.\fbreak
+Enum: T\_T\_fsm\_namespace\_
+\fbreak
+\line{Class: T\_fsm\_namespace \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf \NOsign fsm-version}.\fbreak
+Enum: T\_T\_fsm\_version\_
+\fbreak
+\line{Class: T\_fsm\_version \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf \NOsign lhs}.\fbreak
+Enum: T\_T\_lhs\_
+\fbreak
+\line{Class: T\_lhs \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf \NOsign lr1-constant-symbols}.\fbreak
+Enum: T\_T\_lr1\_constant\_symbols\_
+\fbreak
+\line{Class: T\_lr1\_constant\_symbols \hfil AB: N \hfil AD: N}
+
+
+\O2's keyword introducing the lr constants vocabulary.
+
+\fbreak
+\hrule
+@*3 \NOsign lr1-constant-symbols destructor directive.
+@<\NOsign lr1-constant-symbols destructor directive@>=
+
+ if(R->lr1_k_phrase_ != 0)
+ delete R->lr1_k_phrase_;
+
+@*3 \NOsign lr1-constant-symbols user-declaration directive.
+@<\NOsign lr1-constant-symbols user-declaration directive@>=
+
+ public:
+ T_lr1_constant_symbols();
+ void lr1_k_phrase(T_lr1_k_phrase* Phrase);
+ T_lr1_k_phrase* lr1_k_phrase();
+ private:T_lr1_k_phrase* lr1_k_phrase_;
+
+@*3 \NOsign lr1-constant-symbols user-implementation directive.
+@<\NOsign lr1-constant-symbols user-implementation directive@>=
+
+ T_lr1_constant_symbols::T_lr1_constant_symbols()
+T_CTOR("#lr1-constant-symbols",T_Enum::T_T_lr1_constant_symbols_,&dtor_T_lr1_constant_symbols,false,false)
+ {lr1_k_phrase_ = 0;}
+ T_lr1_k_phrase* T_lr1_constant_symbols::lr1_k_phrase(){return lr1_k_phrase_;}
+ void T_lr1_constant_symbols::lr1_k_phrase(T_lr1_k_phrase* Phrase){lr1_k_phrase_ = Phrase;}
+
+@*2 {\bf \NOsign lrk-sufx}.\fbreak
+Enum: T\_T\_lrk\_sufx\_
+\fbreak
+\line{Class: T\_lrk\_sufx \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf \NOsign name-space}.\fbreak
+Enum: T\_T\_name\_space\_
+\fbreak
+\line{Class: T\_name\_space \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf \NOsign op}.\fbreak
+Enum: T\_T\_op\_
+\fbreak
+\line{Class: T\_op \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 \NOsign op user-declaration directive.
+@<\NOsign op user-declaration directive@>=
+
+ public:
+ T_op();
+ void syntax_code(T_syntax_code* Stc);
+ T_syntax_code* syntax_code();
+ private:T_syntax_code* syntax_code_;
+
+@*3 \NOsign op user-implementation directive.
+@<\NOsign op user-implementation directive@>=
+
+ T_op::T_op()
+ T_CTOR("#op",T_Enum::T_T_op_,0,false,false)
+ {syntax_code_ = 0;}
+ T_syntax_code* T_op::syntax_code(){return syntax_code_;}
+ void T_op::syntax_code(T_syntax_code* Stc){syntax_code_ = Stc;}
+
+@*2 {\bf \NOsign parallel-control-monitor}.\fbreak
+Enum: T\_T\_parallel\_control\_monitor\_
+\fbreak
+\line{Class: T\_parallel\_control\_monitor \hfil AB: N \hfil AD: N}
+
+
+Introduction of the rule's arbitration.
+For the moment, all rules using a thread call need this
+grammar construct that introduces
+the arbitration logic.
+Most rules do not need to arbitrate.
+It is determinist in the returned terminal from
+threads.
+So why must it be present?
+Only cuz of my frontend hacking of ideas.
+It will be corrected to simplifiy the grammar code.
+
+\fbreak
+\hrule
+@*2 {\bf \NOsign parallel-la-boundary}.\fbreak
+Enum: T\_T\_parallel\_la\_boundary\_
+\fbreak
+\line{Class: T\_parallel\_la\_boundary \hfil AB: N \hfil AD: N}
+
+
+Thread lookahead first set.
+
+\fbreak
+\hrule
+@*3 \NOsign parallel-la-boundary user-declaration directive.
+@<\NOsign parallel-la-boundary user-declaration directive@>=
+
+ public:
+ T_parallel_la_boundary();
+ void la_first_set(std::set<T_in_stbl*>& Supplier);
+ std::set<T_in_stbl*>* la_first_set();
+ void la_supplier(yacco2::TOKEN_GAGGLE* Supplier);
+ yacco2::TOKEN_GAGGLE* la_supplier();
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ void cweb_la_srce_expr(const char* Srce_expr);
+ std::string* cweb_la_srce_expr();
+ private:
+ std::set<T_in_stbl*> la_first_set_;
+ std::string cweb_la_srce_expr_;
+ AST* cweb_marker_;
+ yacco2::TOKEN_GAGGLE* la_supplier_;
+
+@*3 \NOsign parallel-la-boundary user-implementation directive.
+@<\NOsign parallel-la-boundary user-implementation directive@>=
+
+ T_parallel_la_boundary::T_parallel_la_boundary()
+ T_CTOR("#parallel-la-boundary",T_Enum::T_T_parallel_la_boundary_,0,false,false)
+ {la_supplier_ = 0;
+ cweb_marker_=0;
+ }
+ void T_parallel_la_boundary::cweb_la_srce_expr(const char* Srce_expr){
+ cweb_la_srce_expr_.append(Srce_expr);
+ }
+ std::string* T_parallel_la_boundary::cweb_la_srce_expr(){
+ return &cweb_la_srce_expr_;
+ }
+
+ yacco2::TOKEN_GAGGLE* T_parallel_la_boundary::la_supplier(){return la_supplier_;}
+ void T_parallel_la_boundary::la_supplier(yacco2::TOKEN_GAGGLE* Supplier)
+ {la_supplier_ = Supplier;}
+
+ void T_parallel_la_boundary::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+
+ AST* T_parallel_la_boundary::cweb_marker(){
+ return cweb_marker_;
+ }
+
+ std::set<T_in_stbl*>* T_parallel_la_boundary::la_first_set()
+ {return &la_first_set_;}
+ void T_parallel_la_boundary::la_first_set(std::set<T_in_stbl*>& Supplier)
+ {
+ la_first_set_.insert(Supplier.begin(),Supplier.end());
+ }
+
+@*2 {\bf \NOsign parallel-parser}.\fbreak
+Enum: T\_T\_parallel\_parser\_
+\fbreak
+\line{Class: T\_parallel\_parser \hfil AB: N \hfil AD: N}
+
+
+\O2's keyword introducing the grammar as a thread:
+all the debutant's coming out like its thread name
+and look ahead expression.
+
+\fbreak
+\hrule
+@*3 \NOsign parallel-parser destructor directive.
+@<\NOsign parallel-parser destructor directive@>=
+
+ if(R->parallel_parser_phrase_ != 0)
+ delete R->parallel_parser_phrase_;
+
+@*3 \NOsign parallel-parser user-declaration directive.
+@<\NOsign parallel-parser user-declaration directive@>=
+
+ public:
+ T_parallel_parser();
+ void parallel_parser_phrase(T_parallel_parser_phrase* Phrase);
+ T_parallel_parser_phrase* parallel_parser_phrase();
+ private:T_parallel_parser_phrase* parallel_parser_phrase_;
+
+@*3 \NOsign parallel-parser user-implementation directive.
+@<\NOsign parallel-parser user-implementation directive@>=
+
+ T_parallel_parser::T_parallel_parser()
+ T_CTOR("#parallel-parser",T_Enum::T_T_parallel_parser_,&dtor_T_parallel_parser,false,false)
+ {parallel_parser_phrase_ = 0;}
+ T_parallel_parser_phrase*
+ T_parallel_parser::parallel_parser_phrase(){return parallel_parser_phrase_;}
+ void T_parallel_parser::parallel_parser_phrase
+ (T_parallel_parser_phrase* Phrase){parallel_parser_phrase_ = Phrase;}
+
+@*2 {\bf \NOsign parallel-thread-function}.\fbreak
+Enum: T\_T\_parallel\_thread\_function\_
+\fbreak
+\line{Class: T\_parallel\_thread\_function \hfil AB: N \hfil AD: N}
+
+
+The grammar thread's name construct.
+
+\fbreak
+\hrule
+@*3 \NOsign parallel-thread-function user-declaration directive.
+@<\NOsign parallel-thread-function user-declaration directive@>=
+
+ public:
+ T_parallel_thread_function();
+ void identifier(T_identifier* Id);
+ T_identifier* identifier();
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ private:T_identifier* id_;
+ AST* cweb_marker_;
+
+@*3 \NOsign parallel-thread-function user-implementation directive.
+@<\NOsign parallel-thread-function user-implementation directive@>=
+
+ T_parallel_thread_function::T_parallel_thread_function()
+ T_CTOR("#parallel-thread-function",T_Enum::T_T_parallel_thread_function_,0,false,false)
+ {id_ = 0;cweb_marker_=0;}
+ T_identifier* T_parallel_thread_function::identifier(){return id_;}
+ void T_parallel_thread_function::identifier(T_identifier* Id){id_ = Id;}
+ void T_parallel_thread_function::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+ AST* T_parallel_thread_function::cweb_marker(){
+ return cweb_marker_;
+ }
+
+@*2 {\bf \NOsign raw-characters}.\fbreak
+Enum: T\_T\_raw\_characters\_
+\fbreak
+\line{Class: T\_raw\_characters \hfil AB: N \hfil AD: N}
+
+
+\O2's keyword introducing the raw characters vocabulary.
+
+\fbreak
+\hrule
+@*3 \NOsign raw-characters destructor directive.
+@<\NOsign raw-characters destructor directive@>=
+
+ if(R->rc_phrase_!=0)
+ delete R->rc_phrase_;
+
+@*3 \NOsign raw-characters user-declaration directive.
+@<\NOsign raw-characters user-declaration directive@>=
+
+ public:
+ T_raw_characters();
+ void rc_phrase(T_rc_phrase* Phrase);
+ T_rc_phrase* rc_phrase();
+ private:T_rc_phrase* rc_phrase_;
+
+@*3 \NOsign raw-characters user-implementation directive.
+@<\NOsign raw-characters user-implementation directive@>=
+
+ T_raw_characters::T_raw_characters()
+ T_CTOR("#raw-characters",T_Enum::T_T_raw_characters_,&dtor_T_raw_characters,false,false)
+ {rc_phrase_ = 0;}
+ T_rc_phrase* T_raw_characters::rc_phrase(){return rc_phrase_;}
+ void T_raw_characters::rc_phrase(T_rc_phrase* Phrase){rc_phrase_ = Phrase;}
+
+@*2 {\bf \NOsign rules}.\fbreak
+Enum: T\_T\_rules\_
+\fbreak
+\line{Class: T\_rules \hfil AB: Y \hfil AD: N}
+
+
+Introduces the rules construct of the grammar.
+
+\fbreak
+\hrule
+@*3 \NOsign rules destructor directive.
+@<\NOsign rules destructor directive@>=
+
+ if(R->rules_phrase_ != 0)
+ delete R->rules_phrase_;
+
+@*3 \NOsign rules user-declaration directive.
+@<\NOsign rules user-declaration directive@>=
+
+ public:
+ T_rules();
+ void rules_phrase(T_rules_phrase* Phrase);
+ T_rules_phrase* rules_phrase();
+ private:T_rules_phrase* rules_phrase_;
+
+@*3 \NOsign rules user-implementation directive.
+@<\NOsign rules user-implementation directive@>=
+
+ T_rules::T_rules()
+ T_CTOR("#rules",T_Enum::T_T_rules_,&dtor_T_rules,false,true)
+ {rules_phrase_ = 0;}
+ T_rules_phrase* T_rules::rules_phrase(){return rules_phrase_;}
+ void T_rules::rules_phrase(T_rules_phrase* Phrase){rules_phrase_ = Phrase;}
+
+@*2 {\bf \NOsign sym-class}.\fbreak
+Enum: T\_T\_sym\_class\_
+\fbreak
+\line{Class: T\_sym\_class \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf \NOsign terminals}.\fbreak
+Enum: T\_T\_terminals\_
+\fbreak
+\line{Class: T\_terminals \hfil AB: Y \hfil AD: N}
+
+
+Introduces the Terminal vocabulary phrase of the grammar.
+Note the ``auto abort'' indicator that should match with the |CTOR| macro.
+Which vice is it?
+
+\fbreak
+\hrule
+@*3 \NOsign terminals destructor directive.
+@<\NOsign terminals destructor directive@>=
+
+ if(R->terminals_phrase_ != 0)
+ delete R->terminals_phrase_;
+
+@*3 \NOsign terminals user-declaration directive.
+@<\NOsign terminals user-declaration directive@>=
+
+ public:
+ T_terminals();
+ void terminals_phrase(T_terminals_phrase* Phrase);
+ T_terminals_phrase* terminals_phrase();
+ private:T_terminals_phrase* terminals_phrase_;
+
+@*3 \NOsign terminals user-implementation directive.
+@<\NOsign terminals user-implementation directive@>=
+
+ T_terminals::T_terminals()
+ T_CTOR("#terminals",T_Enum::T_T_terminals_,&dtor_T_terminals,false,true)
+ {terminals_phrase_ = 0;}
+ T_terminals_phrase* T_terminals::terminals_phrase(){return terminals_phrase_;}
+ void T_terminals::terminals_phrase(T_terminals_phrase* Phrase)
+ {terminals_phrase_ = Phrase;}
+
+@*2 {\bf \NOsign terminals-refs}.\fbreak
+Enum: T\_T\_terminals\_refs\_
+\fbreak
+\line{Class: T\_terminals\_refs \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf \NOsign terminals-sufx}.\fbreak
+Enum: T\_T\_terminals\_sufx\_
+\fbreak
+\line{Class: T\_terminals\_sufx \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf \NOsign user-declaration}.\fbreak
+Enum: T\_T\_user\_declaration\_
+\fbreak
+\line{Class: T\_user\_declaration \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 \NOsign user-declaration user-declaration directive.
+@<\NOsign user-declaration user-declaration directive@>=
+
+ public:
+ T_user_declaration();
+ void syntax_code(T_syntax_code* Stc);
+ T_syntax_code* syntax_code();
+ private:T_syntax_code* syntax_code_;
+
+@*3 \NOsign user-declaration user-implementation directive.
+@<\NOsign user-declaration user-implementation directive@>=
+
+ T_user_declaration::T_user_declaration()
+ T_CTOR("#user-declaration",T_Enum::T_T_user_declaration_,0,false,false)
+ {syntax_code_ = 0;}
+ T_syntax_code* T_user_declaration::syntax_code(){return syntax_code_;}
+ void T_user_declaration::syntax_code(T_syntax_code* Stc){syntax_code_ = Stc;}
+
+@*2 {\bf \NOsign user-imp-sym}.\fbreak
+Enum: T\_T\_user\_imp\_sym\_
+\fbreak
+\line{Class: T\_user\_imp\_sym \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 \NOsign user-imp-sym user-declaration directive.
+@<\NOsign user-imp-sym user-declaration directive@>=
+
+ public:
+ T_user_imp_sym();
+ void syntax_code(T_syntax_code* Stc);
+ T_syntax_code* syntax_code();
+ private:T_syntax_code* syntax_code_;
+
+@*3 \NOsign user-imp-sym user-implementation directive.
+@<\NOsign user-imp-sym user-implementation directive@>=
+
+ T_user_imp_sym::T_user_imp_sym()
+ T_CTOR("#user-imp-sym",T_Enum::T_T_user_imp_sym_,0,false,false)
+ {syntax_code_ = 0;}
+ T_syntax_code* T_user_imp_sym::syntax_code(){return syntax_code_;}
+ void T_user_imp_sym::syntax_code(T_syntax_code* Stc){syntax_code_ = Stc;}
+
+@*2 {\bf \NOsign user-imp-tbl}.\fbreak
+Enum: T\_T\_user\_imp\_tbl\_
+\fbreak
+\line{Class: T\_user\_imp\_tbl \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 \NOsign user-imp-tbl user-declaration directive.
+@<\NOsign user-imp-tbl user-declaration directive@>=
+
+ public:
+ T_user_imp_tbl();
+ void syntax_code(T_syntax_code* Stc);
+ T_syntax_code* syntax_code();
+ private:T_syntax_code* syntax_code_;
+
+@*3 \NOsign user-imp-tbl user-implementation directive.
+@<\NOsign user-imp-tbl user-implementation directive@>=
+
+ T_user_imp_tbl::T_user_imp_tbl()
+ T_CTOR("#user-imp-tbl",T_Enum::T_T_user_imp_tbl_,0,false,false)
+ {syntax_code_ = 0;}
+ T_syntax_code* T_user_imp_tbl::syntax_code(){return syntax_code_;}
+ void T_user_imp_tbl::syntax_code(T_syntax_code* Stc){syntax_code_ = Stc;}
+
+@*2 {\bf \NOsign user-implementation}.\fbreak
+Enum: T\_T\_user\_implementation\_
+\fbreak
+\line{Class: T\_user\_implementation \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 \NOsign user-implementation user-declaration directive.
+@<\NOsign user-implementation user-declaration directive@>=
+
+ public:
+ T_user_implementation();
+ void syntax_code(T_syntax_code* Stc);
+ T_syntax_code* syntax_code();
+ private:T_syntax_code* syntax_code_;
+
+@*3 \NOsign user-implementation user-implementation directive.
+@<\NOsign user-implementation user-implementation directive@>=
+
+ T_user_implementation::T_user_implementation()
+ T_CTOR("#user-implementation",T_Enum::T_T_user_implementation_,0,false,false)
+ {syntax_code_ = 0;}
+ T_syntax_code* T_user_implementation::syntax_code(){return syntax_code_;}
+ void T_user_implementation::syntax_code(T_syntax_code* Stc){syntax_code_ = Stc;}
+
+@*2 {\bf \NOsign user-prefix-declaration}.\fbreak
+Enum: T\_T\_user\_prefix\_declaration\_
+\fbreak
+\line{Class: T\_user\_prefix\_declaration \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 \NOsign user-prefix-declaration user-declaration directive.
+@<\NOsign user-prefix-declaration user-declaration directive@>=
+
+ public:
+ T_user_prefix_declaration();
+ void syntax_code(T_syntax_code* Stc);
+ T_syntax_code* syntax_code();
+ private:T_syntax_code* syntax_code_;
+
+@*3 \NOsign user-prefix-declaration user-implementation directive.
+@<\NOsign user-prefix-declaration user-implementation directive@>=
+
+ T_user_prefix_declaration::T_user_prefix_declaration()
+ T_CTOR("#user-prefix-declaration",T_Enum::T_T_user_prefix_declaration_,0,false,false)
+ {syntax_code_ = 0;}
+ T_syntax_code* T_user_prefix_declaration::syntax_code(){return syntax_code_;}
+ void T_user_prefix_declaration::syntax_code(T_syntax_code* Stc){syntax_code_ = Stc;}
+
+@*2 {\bf \NOsign user-suffix-declaration}.\fbreak
+Enum: T\_T\_user\_suffix\_declaration\_
+\fbreak
+\line{Class: T\_user\_suffix\_declaration \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 \NOsign user-suffix-declaration user-declaration directive.
+@<\NOsign user-suffix-declaration user-declaration directive@>=
+
+ public:
+ T_user_suffix_declaration();
+ void syntax_code(T_syntax_code* Stc);
+ T_syntax_code* syntax_code();
+ private:T_syntax_code* syntax_code_;
+
+@*3 \NOsign user-suffix-declaration user-implementation directive.
+@<\NOsign user-suffix-declaration user-implementation directive@>=
+
+ T_user_suffix_declaration::T_user_suffix_declaration()
+ T_CTOR("#user-suffix-declaration",T_Enum::T_T_user_suffix_declaration_,0,false,false)
+ {syntax_code_ = 0;}
+ T_syntax_code* T_user_suffix_declaration::syntax_code(){return syntax_code_;}
+ void T_user_suffix_declaration::syntax_code(T_syntax_code* Stc){syntax_code_ = Stc;}
+
+@*2 {\bf -\GTsign{}}.\fbreak
+Enum: T\_T\_selector\_
+\fbreak
+\line{Class: T\_selector \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf ::}.\fbreak
+Enum: T\_T\_2colon\_
+\fbreak
+\line{Class: T\_2colon \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf T-alphabet}.\fbreak
+Enum: T\_T\_T\_alphabet\_
+\fbreak
+\line{Class: T\_T\_alphabet \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf T-attributes}.\fbreak
+Enum: T\_T\_attributes\_
+\fbreak
+\line{Class: T\_attributes \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 T-attributes user-declaration directive.
+@<T-attributes user-declaration directive@>=
+
+ public:
+T_attributes(const char* Fully_qualified_T_name,int Enum);
+std::string fully_qualified_T_name_;
+ int T_enum_;
+
+@*3 T-attributes user-implementation directive.
+@<T-attributes user-implementation directive@>=
+
+ T_attributes::T_attributes(const char* Fully_qualified_T_name,int Enum)
+ T_CTOR("T-attributes",T_Enum::T_T_attributes_,0,false,false)
+ {fully_qualified_T_name_ += Fully_qualified_T_name;
+ T_enum_ = Enum;
+ }
+
+@*2 {\bf T-enum-phrase}.\fbreak
+Enum: T\_T\_enum\_phrase\_
+\fbreak
+\line{Class: T\_enum\_phrase \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 T-enum-phrase destructor directive.
+@<T-enum-phrase destructor directive@>=
+
+ delete R->filename_id_;
+ delete R->namespace_id_;
+ delete R->kdefs_;
+
+@*3 T-enum-phrase user-declaration directive.
+@<T-enum-phrase user-declaration directive@>=
+
+ public:
+ T_enum_phrase();
+ T_identifier* filename_id();
+ void filename_id(T_identifier* Id);
+ T_identifier* namespace_id();
+ void namespace_id(T_identifier* Id);
+ T_syntax_code* kdefs();
+ void kdefs(T_syntax_code* Kdefs);
+ void start_lrk_enumerate(int Enum);
+ void stop_lrk_enumerate(int Enum);
+ int start_lrk_enumerate();
+ int stop_lrk_enumerate();
+ void start_err_enumerate(int Enum);
+ void stop_err_enumerate(int Enum);
+ int start_err_enumerate();
+ int stop_err_enumerate();
+ void start_rc_enumerate(int Enum);
+ void stop_rc_enumerate(int Enum);
+ int start_rc_enumerate();
+ int stop_rc_enumerate();
+ void start_T_enumerate(int Enum);
+ void stop_T_enumerate(int Enum);
+ int start_T_enumerate();
+ int stop_T_enumerate();
+
+ int total_T_enumerate();
+ void total_T_enumerate(int Enum);
+ int total_rc_enumerate();
+ void total_rc_enumerate(int Enum);
+ int total_err_enumerate();
+ void total_err_enumerate(int Enum);
+ int total_lrk_enumerate();
+ void total_lrk_enumerate(int Enum);
+ void total_enumerate(int Enum);
+ int total_enumerate();
+ void phrase_tree(AST* Tree);
+ AST* phrase_tree();
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ int total_no_subrules();
+ void total_no_subrules(int Total_subrules);
+ private:
+ T_syntax_code* kdefs_;
+ T_identifier* filename_id_;
+ T_identifier* namespace_id_;
+ int start_lrk_enumerate_;
+ int stop_lrk_enumerate_;
+ int start_err_enumerate_;
+ int stop_err_enumerate_;
+ int start_rc_enumerate_;
+ int stop_rc_enumerate_;
+ int start_T_enumerate_;
+ int stop_T_enumerate_;
+ int total_enumerate_;
+ int total_T_enumerate_;
+ int total_rc_enumerate_;
+ int total_err_enumerate_;
+ int total_lrk_enumerate_;
+ int total_no_subrules_;
+ AST* phrase_tree_;
+ AST* cweb_marker_;
+
+@*3 T-enum-phrase user-implementation directive.
+@<T-enum-phrase user-implementation directive@>=
+
+ T_enum_phrase::T_enum_phrase()
+ T_CTOR("T-enum-phrase",T_Enum::T_T_enum_phrase_,&dtor_T_enum_phrase,false,false)
+ {kdefs_ = 0;phrase_tree_=0;cweb_marker_=0;}
+
+ void T_enum_phrase::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+
+ AST* T_enum_phrase::cweb_marker(){
+ return cweb_marker_;
+ }
+
+ void T_enum_phrase::phrase_tree(AST* Tree){phrase_tree_=Tree;}
+ AST* T_enum_phrase::phrase_tree(){return phrase_tree_;}
+
+ T_identifier* T_enum_phrase::filename_id(){return filename_id_;}
+ void T_enum_phrase::filename_id(T_identifier* Id){filename_id_ = Id;}
+ T_identifier* T_enum_phrase::namespace_id(){return namespace_id_;}
+ void T_enum_phrase::namespace_id(T_identifier* Id){namespace_id_ = Id;}
+
+ T_syntax_code*
+ T_enum_phrase::kdefs(){return kdefs_;}
+
+ void T_enum_phrase::kdefs(T_syntax_code* Kdefs){
+ kdefs_ = Kdefs;
+ }
+ void T_enum_phrase::start_lrk_enumerate(int Enum){start_lrk_enumerate_ = Enum;}
+ void T_enum_phrase::stop_lrk_enumerate(int Enum){stop_lrk_enumerate_ = Enum;}
+ int T_enum_phrase::start_lrk_enumerate(){return start_lrk_enumerate_;}
+ int T_enum_phrase::stop_lrk_enumerate(){return stop_lrk_enumerate_;}
+ void T_enum_phrase::start_err_enumerate(int Enum){start_err_enumerate_ = Enum;}
+ void T_enum_phrase::stop_err_enumerate(int Enum){stop_err_enumerate_ = Enum;}
+ int T_enum_phrase::start_err_enumerate(){return start_err_enumerate_;}
+ int T_enum_phrase::stop_err_enumerate(){return stop_err_enumerate_;}
+ void T_enum_phrase::start_rc_enumerate(int Enum){start_rc_enumerate_ = Enum;}
+ void T_enum_phrase::stop_rc_enumerate(int Enum){stop_rc_enumerate_ = Enum;}
+ int T_enum_phrase::start_rc_enumerate(){return start_rc_enumerate_;}
+ int T_enum_phrase::stop_rc_enumerate(){return stop_rc_enumerate_;}
+ void T_enum_phrase::start_T_enumerate(int Enum){start_T_enumerate_ = Enum;}
+ void T_enum_phrase::stop_T_enumerate(int Enum){stop_T_enumerate_ = Enum;}
+ int T_enum_phrase::start_T_enumerate(){return start_T_enumerate_;}
+ int T_enum_phrase::stop_T_enumerate(){return stop_T_enumerate_;}
+ void T_enum_phrase::total_enumerate(int Enum){total_enumerate_ = Enum;}
+ int T_enum_phrase::total_enumerate(){return total_enumerate_;}
+
+ void T_enum_phrase::total_T_enumerate(int Enum){total_T_enumerate_ = Enum;}
+ int T_enum_phrase::total_T_enumerate(){return total_T_enumerate_;}
+ void T_enum_phrase::total_rc_enumerate(int Enum){total_rc_enumerate_ = Enum;}
+ int T_enum_phrase::total_rc_enumerate(){return total_rc_enumerate_;}
+ void T_enum_phrase::total_err_enumerate(int Enum){total_err_enumerate_ = Enum;}
+ int T_enum_phrase::total_err_enumerate(){return total_err_enumerate_;}
+ void T_enum_phrase::total_lrk_enumerate(int Enum){total_lrk_enumerate_ = Enum;}
+ int T_enum_phrase::total_lrk_enumerate(){return total_lrk_enumerate_;}
+ int T_enum_phrase::total_no_subrules(){return total_no_subrules_;}
+ void T_enum_phrase::total_no_subrules(int Total_subrules){
+ total_no_subrules_ = Total_subrules;
+ }
+
+@*2 {\bf T-in-stbl}.\fbreak
+Enum: T\_T\_in\_stbl\_
+\fbreak
+\line{Class: T\_in\_stbl \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 T-in-stbl user-declaration directive.
+@<T-in-stbl user-declaration directive@>=
+
+ public:
+ T_in_stbl(T_terminal_def* Fnd_T_in_stbl,CAbs_lr1_sym* Rc,yacco2::Parser* P);
+ T_terminal_def* t_def();
+ std::list<refered_T*>* xref_t();
+ void add_T_into_xref(refered_T& T);
+ void stbl_idx(yacco2::UINT Idx);
+ int stbl_idx();
+ private:
+ T_terminal_def* t_def_;
+ std::list<refered_T*> xref_t_;
+ int stbl_idx_;
+
+@*3 T-in-stbl user-implementation directive.
+@<T-in-stbl user-implementation directive@>=
+
+T_in_stbl::T_in_stbl(T_terminal_def* Fnd_T_in_stbl,CAbs_lr1_sym* Rc,yacco2::Parser* P)
+ T_CTOR("T-in-stbl",T_Enum::T_T_in_stbl_,0,false,false)
+ {t_def_ = Fnd_T_in_stbl;
+ set_rc(*Rc,__FILE__,__LINE__);// set its source co-ordinates
+ stbl_idx_ = -1;
+ }
+ T_terminal_def* T_in_stbl::t_def(){
+ return t_def_;
+ }
+ std::list<refered_T*>* T_in_stbl::xref_t(){
+ return &xref_t_;;
+ }
+ void T_in_stbl::add_T_into_xref(refered_T& T){
+ xref_t_.push_back(&T);
+ }
+ void T_in_stbl::stbl_idx(yacco2::UINT Idx){stbl_idx_ = Idx;}
+ int T_in_stbl::stbl_idx(){return stbl_idx_;}
+
+@*2 {\bf angled-string}.\fbreak
+Enum: T\_T\_angled\_string\_
+\fbreak
+\line{Class: T\_angled\_string \hfil AB: N \hfil AD: N}
+
+
+Returned from |angled_string| grammar whereby the
+|angled_string_| contains its content without the angle bars.
+Escape sequences are verified and not converted but
+just concatenated to its content.
+
+\fbreak
+\hrule
+@*3 angled-string user-declaration directive.
+@<angled-string user-declaration directive@>=
+
+ public:
+ T_angled_string(const std::string& Angled_string);
+ std::string* angled_string();
+ private:std::string angled_string_;
+
+@*3 angled-string user-implementation directive.
+@<angled-string user-implementation directive@>=
+
+ T_angled_string::T_angled_string(const string& Angled_string)
+ T_CTOR("angled-string",T_Enum::T_T_angled_string_,0,false,false)
+ {angled_string_ = Angled_string;}
+ std::string* T_angled_string::angled_string(){return &angled_string_;}
+
+@*2 {\bf basic-char}.\fbreak
+Enum: T\_T\_basic\_char\_
+\fbreak
+\line{Class: T\_basic\_char \hfil AB: N \hfil AD: N}
+
+
+Basic source character set indicator.
+It can be used to assess the good, the bad, and the ulgy
+character traits.
+For example, prescan the characters against the
+|bad_char_set| thread and return one of the 2 terminals.
+It is left here but not used.
+
+\fbreak
+\hrule
+@*3 basic-char destructor directive.
+@<basic-char destructor directive@>=
+
+ if(R->basic_char_!=0)
+ delete R->basic_char();
+
+@*3 basic-char user-declaration directive.
+@<basic-char user-declaration directive@>=
+
+ public:
+ T_basic_char(CAbs_lr1_sym* Basic_char);
+ CAbs_lr1_sym* basic_char()const;
+ void zero_out_basic_char();
+ private:CAbs_lr1_sym* basic_char_;
+
+@*3 basic-char user-implementation directive.
+@<basic-char user-implementation directive@>=
+
+ T_basic_char::
+ T_basic_char(CAbs_lr1_sym* Basic_char)
+ T_CTOR("basic-char",T_Enum::T_T_basic_char_,&dtor_T_basic_char,false,false)
+ {basic_char_ = Basic_char;}
+ void T_basic_char::zero_out_basic_char(){basic_char_ = 0;}
+ CAbs_lr1_sym* T_basic_char::basic_char()const{return basic_char_;}
+
+@*2 {\bf block}.\fbreak
+Enum: T\_T\_block\_
+\fbreak
+\line{Class: T\_block \hfil AB: Y \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 block destructor directive.
+@<block destructor directive@>=
+
+ if(ABORT_STATUS == true){
+ yacco2::AST::zero_content(*R->ast());// break dbl delete of self
+ yacco2::AST::ast_delete(*R->ast(),ABORT_STATUS);
+ }
+
+@*3 block user-declaration directive.
+@<block user-declaration directive@>=
+
+ public:
+ T_block(yacco2::AST* Ast);
+ yacco2::AST* ast();
+ private: yacco2::AST* ast_;
+
+@*3 block user-implementation directive.
+@<block user-implementation directive@>=
+
+ T_block::
+ T_block(yacco2::AST* Ast)
+ T_CTOR("block",T_Enum::T_T_block_,&dtor_T_block,false,true)
+ {ast_ = Ast;}
+ yacco2::AST* T_block::ast(){return ast_;}
+
+@*2 {\bf c-literal}.\fbreak
+Enum: T\_T\_c\_literal\_
+\fbreak
+\line{Class: T\_c\_literal \hfil AB: N \hfil AD: N}
+
+
+Returned from |c_literal| grammar
+ recognizing a c++ literal.
+|c_literal_| contains its content without the single quotes.
+'hi there' is an example.
+Escape sequences are verified and not converted but
+ concatenated to its content.
+
+\fbreak
+\hrule
+@*3 c-literal user-declaration directive.
+@<c-literal user-declaration directive@>=
+
+ public:
+ T_c_literal(const std::string& C_literal);
+ std::string* c_literal();
+ private:std::string c_literal_;
+
+@*3 c-literal user-implementation directive.
+@<c-literal user-implementation directive@>=
+
+ T_c_literal::T_c_literal(const string& C_literal)
+ T_CTOR("c-literal",T_Enum::T_T_c_literal_,0,false,false)
+ {c_literal_ = C_literal;}
+ std::string* T_c_literal::c_literal(){return &c_literal_;}
+
+@*2 {\bf c-string}.\fbreak
+Enum: T\_T\_c\_string\_
+\fbreak
+\line{Class: T\_c\_string \hfil AB: N \hfil AD: N}
+
+
+Returned from |c_string| grammar recognizing a c++ string.
+|c_string_| contains its content without the double quotes.
+
+\fbreak
+\hrule
+@*3 c-string user-declaration directive.
+@<c-string user-declaration directive@>=
+
+ public:
+ T_c_string(const std::string& C_string);
+ std::string* c_string();
+ private:std::string c_string_;
+
+@*3 c-string user-implementation directive.
+@<c-string user-implementation directive@>=
+
+ T_c_string::T_c_string(const std::string& C_string)
+ T_CTOR("c-string",T_Enum::T_T_c_string_,0,false,false)
+ {c_string_ = C_string;}
+ std::string* T_c_string::c_string(){return &c_string_;}
+
+@*2 {\bf called thread eosubrule}.\fbreak
+Enum: T\_T\_called\_thread\_eosubrule\_
+\fbreak
+\line{Class: T\_called\_thread\_eosubrule \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 called thread eosubrule user-declaration directive.
+@<called thread eosubrule user-declaration directive@>=
+
+ public:
+ T_called_thread_eosubrule(T_identifier* Ns,T_identifier* Thread_name);
+ T_subrule_def* its_subrule_def();
+ void its_subrule_def(T_subrule_def* Its_subrule);
+ std::string* grammar_s_enumerate();
+ void grammar_s_enumerate(const char* Enumerate);
+ AST* tree_node();
+ void tree_node(AST* Tree_node);
+ rule_def* its_rule_def();
+ T_identifier* ns();
+ T_identifier* called_thread_name();
+ int element_pos();
+ void element_pos(int Pos);
+ private:
+ T_subrule_def* its_subrule_def_;
+ std::string grammar_s_enumerate_;
+ AST* tree_node_;
+ T_identifier* ns_;
+ T_identifier* called_thread_name_;
+ int element_pos_;
+
+@*3 called thread eosubrule user-implementation directive.
+@<called thread eosubrule user-implementation directive@>=
+
+T_called_thread_eosubrule::T_called_thread_eosubrule
+ (T_identifier* Ns,T_identifier* Thd_name)
+T_CTOR("called thread eosubrule",T_Enum::T_T_called_thread_eosubrule_,0,false,false){
+ its_subrule_def_ = 0;
+ tree_node_ = 0;
+ ns_ = Ns;
+ called_thread_name_ = Thd_name;
+ element_pos_ = 0;
+ }
+ int T_called_thread_eosubrule::element_pos(){return element_pos_;}
+ void T_called_thread_eosubrule::element_pos(int Pos){element_pos_ = Pos;}
+ T_identifier* T_called_thread_eosubrule::ns(){
+ return ns_;
+ }
+ T_identifier* T_called_thread_eosubrule::called_thread_name(){
+ return called_thread_name_;
+ }
+ rule_def* T_called_thread_eosubrule::its_rule_def(){
+ return its_subrule_def_->its_rule_def();
+ }
+ AST* T_called_thread_eosubrule::tree_node(){
+ return tree_node_;
+ }
+ void T_called_thread_eosubrule::tree_node(AST* Tree_node){
+ tree_node_ = Tree_node;
+ }
+
+ std::string* T_called_thread_eosubrule::grammar_s_enumerate(){
+ return &grammar_s_enumerate_;
+ }
+ void T_called_thread_eosubrule::grammar_s_enumerate(const char* Enumerate){
+ grammar_s_enumerate_+=Enumerate;
+ }
+ T_subrule_def* T_called_thread_eosubrule::its_subrule_def(){
+ return its_subrule_def_;
+ }
+
+ void T_called_thread_eosubrule::its_subrule_def(T_subrule_def* Its_subrule){
+ its_subrule_def_ = Its_subrule;
+ }
+
+@*2 {\bf comment}.\fbreak
+Enum: T\_T\_comment\_
+\fbreak
+\line{Class: T\_comment \hfil AB: N \hfil AD: N}
+
+
+Basic c++ comment in its 2 forms:\fbreak
+/* ...*/ and single line //.
+The |c_comment| grammar returns it.
+
+\fbreak
+\hrule
+@*3 comment user-declaration directive.
+@<comment user-declaration directive@>=
+
+ public:
+ T_comment(const std::string& Comment_data);
+ std::string* comment_data();
+ private:std::string comment_data_;
+
+@*3 comment user-implementation directive.
+@<comment user-implementation directive@>=
+
+ T_comment::
+ T_comment(const std::string& Comment_data)
+ T_CTOR("comment",T_Enum::T_T_comment_,0,false,false)
+ {comment_data_ = Comment_data;}
+ std::string* T_comment::comment_data(){return &comment_data_;}
+
+@*2 {\bf cweb-comment}.\fbreak
+Enum: T\_T\_cweb\_comment\_
+\fbreak
+\line{Class: T\_cweb\_comment \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 cweb-comment user-declaration directive.
+@<cweb-comment user-declaration directive@>=
+
+ public:
+ T_cweb_comment(const std::string& Comment_data);
+ std::string* comment_data();
+ private:std::string comment_data_;
+
+@*3 cweb-comment user-implementation directive.
+@<cweb-comment user-implementation directive@>=
+
+ T_cweb_comment::
+ T_cweb_comment(const std::string& Comment_data)
+ T_CTOR("cweb-comment",T_Enum::T_T_cweb_comment_,0,false,false)
+ {comment_data_ = Comment_data;}
+ std::string* T_cweb_comment::comment_data(){return &comment_data_;}
+
+@*2 {\bf cweb-marker}.\fbreak
+Enum: T\_T\_cweb\_marker\_
+\fbreak
+\line{Class: T\_cweb\_marker \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 cweb-marker user-declaration directive.
+@<cweb-marker user-declaration directive@>=
+
+ public:
+ T_cweb_marker(AST* Node);
+ T_cweb_marker();
+ AST* ast();
+ private:AST* ast_;
+
+@*3 cweb-marker user-implementation directive.
+@<cweb-marker user-implementation directive@>=
+
+ T_cweb_marker::
+ T_cweb_marker(AST* Node)
+ T_CTOR("cweb-marker",T_Enum::T_T_cweb_marker_,0,false,false)
+ {ast_ = Node;}
+ T_cweb_marker::
+ T_cweb_marker()
+ T_CTOR("cweb-marker",T_Enum::T_T_cweb_marker_,0,false,false)
+ {ast_ = 0;}
+ AST* T_cweb_marker::ast(){return ast_;}
+
+@*2 {\bf emitfile}.\fbreak
+Enum: T\_T\_emitfile\_
+\fbreak
+\line{Class: T\_emitfile \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf end-T-alphabet}.\fbreak
+Enum: T\_T\_end\_T\_alphabet\_
+\fbreak
+\line{Class: T\_end\_T\_alphabet \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf end-list-of-native-first-set-terminals}.\fbreak
+Enum: T\_T\_end\_list\_of\_native\_first\_set\_terminals\_
+\fbreak
+\line{Class: T\_end\_list\_of\_native\_first\_set\_terminals \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf end-list-of-transitive-threads}.\fbreak
+Enum: T\_T\_end\_list\_of\_transitive\_threads\_
+\fbreak
+\line{Class: T\_end\_list\_of\_transitive\_threads \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf end-list-of-used-threads}.\fbreak
+Enum: T\_T\_end\_list\_of\_used\_threads\_
+\fbreak
+\line{Class: T\_end\_list\_of\_used\_threads \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf end-preamble}.\fbreak
+Enum: T\_T\_end\_preamble\_
+\fbreak
+\line{Class: T\_end\_preamble \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf eol}.\fbreak
+Enum: T\_T\_eol\_
+\fbreak
+\line{Class: T\_eol \hfil AB: N \hfil AD: N}
+
+
+This is the end-of-line indicator returned from the |eol| thread.
+
+\fbreak
+\hrule
+@*3 eol user-declaration directive.
+@<eol user-declaration directive@>=
+
+ public:
+ T_eol();
+
+@*3 eol user-implementation directive.
+@<eol user-implementation directive@>=
+
+ T_eol::
+ T_eol()
+ T_CTOR("eol",T_Enum::T_T_eol_,0,false,false)
+ {}
+ T_eol eol__;
+ yacco2::CAbs_lr1_sym* NS_yacco2_terminals::PTR_eol__ = &eol__;
+
+@*2 {\bf eosubrule}.\fbreak
+Enum: T\_T\_eosubrule\_
+\fbreak
+\line{Class: T\_eosubrule \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 eosubrule user-declaration directive.
+@<eosubrule user-declaration directive@>=
+
+ public:
+ T_eosubrule();
+ T_subrule_def* its_subrule_def();
+ void its_subrule_def(T_subrule_def* Its_subrule);
+ std::string* grammar_s_enumerate();
+ void grammar_s_enumerate(const char* Enumerate);
+ AST* tree_node();
+ void tree_node(AST* Tree_node);
+ rule_def* its_rule_def();
+ int element_pos();
+ void element_pos(int Pos);
+
+ private:
+ T_subrule_def* its_subrule_def_;
+ std::string grammar_s_enumerate_;
+ AST* tree_node_;
+ int element_pos_;
+
+@*3 eosubrule user-implementation directive.
+@<eosubrule user-implementation directive@>=
+
+ T_eosubrule::T_eosubrule()
+ T_CTOR("eosubrule",T_Enum::T_T_eosubrule_,0,false,false){
+ its_subrule_def_ = 0;
+ tree_node_ = 0;
+ element_pos_ = 0;
+ }
+ int T_eosubrule::element_pos(){return element_pos_;}
+ void T_eosubrule::element_pos(int Pos){element_pos_ = Pos;}
+
+ rule_def* T_eosubrule::its_rule_def(){
+ return its_subrule_def_->its_rule_def();
+ }
+ AST* T_eosubrule::tree_node(){
+ return tree_node_;
+ }
+ void T_eosubrule::tree_node(AST* Tree_node){
+ tree_node_ = Tree_node;
+ }
+
+ std::string* T_eosubrule::grammar_s_enumerate(){
+ return &grammar_s_enumerate_;
+ }
+ void T_eosubrule::grammar_s_enumerate(const char* Enumerate){
+ grammar_s_enumerate_+=Enumerate;
+ }
+ T_subrule_def* T_eosubrule::its_subrule_def(){
+ return its_subrule_def_;
+ }
+
+ void T_eosubrule::its_subrule_def(T_subrule_def* Its_subrule){
+ its_subrule_def_ = Its_subrule;
+ }
+
+@*2 {\bf error-symbols-phrase}.\fbreak
+Enum: T\_T\_error\_symbols\_phrase\_
+\fbreak
+\line{Class: T\_error\_symbols\_phrase \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 error-symbols-phrase destructor directive.
+@<error-symbols-phrase destructor directive@>=
+
+ R->destroy_alphabet();
+ delete R->filename_id_;
+ delete R->namespace_id_;
+
+@*3 error-symbols-phrase user-declaration directive.
+@<error-symbols-phrase user-declaration directive@>=
+
+ public:
+ T_error_symbols_phrase();
+ T_identifier* filename_id();
+ void filename_id(T_identifier* Id);
+ T_identifier* namespace_id();
+ void namespace_id(T_identifier* Id);
+ void destroy_alphabet();
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*>* alphabet();
+ CAbs_lr1_sym* add_t_to_alphabet(T_terminal_def* T,yacco2::Parser* P);
+ std::vector<T_terminal_def*>* crt_order();
+ void phrase_tree(AST* Tree);
+ AST* phrase_tree();
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ private:
+ T_identifier* filename_id_;
+ T_identifier* namespace_id_;
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*> alphabet_;
+ std::vector<T_terminal_def*> crt_order_;
+ AST* phrase_tree_;
+ AST* cweb_marker_;
+
+@*3 error-symbols-phrase user-implementation directive.
+@<error-symbols-phrase user-implementation directive@>=
+
+ T_error_symbols_phrase::T_error_symbols_phrase()
+T_CTOR("error-symbols-phrase",T_Enum::T_T_error_symbols_phrase_,&dtor_T_error_symbols_phrase,false,false)
+ {phrase_tree_=0;cweb_marker_=0;}
+
+ void T_error_symbols_phrase::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+
+ AST* T_error_symbols_phrase::cweb_marker(){
+ return cweb_marker_;
+ }
+
+ void T_error_symbols_phrase::phrase_tree(AST* Tree){phrase_tree_=Tree;}
+ AST* T_error_symbols_phrase::phrase_tree(){return phrase_tree_;}
+
+ T_identifier* T_error_symbols_phrase::filename_id(){return filename_id_;}
+ void T_error_symbols_phrase::filename_id(T_identifier* Id){filename_id_ = Id;}
+ T_identifier* T_error_symbols_phrase::namespace_id(){return namespace_id_;}
+ void T_error_symbols_phrase::namespace_id(T_identifier* Id){namespace_id_ = Id;}
+
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*>*
+ T_error_symbols_phrase::alphabet(){
+ return &alphabet_;
+ }
+
+ std::vector<T_terminal_def*>*
+ T_error_symbols_phrase::
+ crt_order(){return &crt_order_;}
+
+ void T_error_symbols_phrase::destroy_alphabet(){
+ std::vector<T_terminal_def*>::iterator i = crt_order_.begin();
+ std::vector<T_terminal_def*>::iterator ie = crt_order_.end();
+ for(;i != ie;++i){
+ CAbs_lr1_sym* sym = *i;
+ delete sym;
+ }
+ alphabet_.clear();
+ }
+
+ CAbs_lr1_sym*
+ T_error_symbols_phrase::
+ add_t_to_alphabet(T_terminal_def* T,yacco2::Parser* P){
+ std::string key(T->t_name()->c_str());
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*>::iterator i = alphabet_.find(key);
+ if(i != alphabet_.end()){
+ CAbs_lr1_sym* sym = new Err_dup_entry_in_alphabet;
+ sym->set_rc(*T,__FILE__,__LINE__);
+ return sym;
+ }
+ alphabet_[key] = T;
+ crt_order_.push_back(T);
+ return 0;
+ }
+
+@*2 {\bf esc-seq}.\fbreak
+Enum: T\_T\_esc\_seq\_
+\fbreak
+\line{Class: T\_esc\_seq \hfil AB: N \hfil AD: Y}
+
+
+Returned T from the |esc_seq| thread.
+Note within the |ctor| macro
+that the ``auto delete'' indicator is
+explicitly turned on and matches the ``AD'' switch.
+As i do not parse the c++ code, {\bf watch your self}.
+This is a dangerous bend in \TeX parlance.
+
+\fbreak
+\hrule
+@*3 esc-seq user-declaration directive.
+@<esc-seq user-declaration directive@>=
+
+ public:
+ T_esc_seq(const char* Esc_data);
+ std::string* esc_data();
+ private:std::string esc_data_;
+
+@*3 esc-seq user-implementation directive.
+@<esc-seq user-implementation directive@>=
+
+ T_esc_seq::
+ T_esc_seq(const char* Esc_data)
+ T_CTOR("esc-seq",T_Enum::T_T_esc_seq_,0,true,false)
+ {
+ esc_data_ += Esc_data;
+ }
+ std::string* T_esc_seq::esc_data(){return &esc_data_;};
+
+@*2 {\bf file-inclusion}.\fbreak
+Enum: T\_T\_file\_inclusion\_
+\fbreak
+\line{Class: T\_file\_inclusion \hfil AB: N \hfil AD: N}
+
+
+Used in processing file inclusion: hence the name.
+Why the |error_sym_| variable?
+Normally i use this terminal by calling a file processing procedure.
+Deposited in this variable are conditions found to not allow
+the reading of the file.
+See |pass3| thread of how it applies.
+
+\fbreak
+\hrule
+@*3 file-inclusion user-declaration directive.
+@<file-inclusion user-declaration directive@>=
+
+ public:
+ T_file_inclusion(T_c_string* File_name_,CAbs_lr1_sym* Error);
+ ~T_file_inclusion();
+ T_c_string* file_name();
+ CAbs_lr1_sym* error_sym();
+ void error_sym(CAbs_lr1_sym* Error);
+ private:T_c_string* file_name_;
+ CAbs_lr1_sym* error_sym_;
+
+@*3 file-inclusion user-implementation directive.
+@<file-inclusion user-implementation directive@>=
+
+ T_file_inclusion::T_file_inclusion
+ (T_c_string* File_name,CAbs_lr1_sym* Error)
+ T_CTOR("file-inclusion",T_Enum::T_T_file_inclusion_,0,false,false)
+ {file_name_ = File_name;
+ error_sym_ = Error;}
+ CAbs_lr1_sym* T_file_inclusion::error_sym(){
+ return error_sym_;
+ }
+ void T_file_inclusion::error_sym(CAbs_lr1_sym* Error){
+ error_sym_ = Error;
+ }
+ T_c_string* T_file_inclusion::file_name(){return file_name_;}
+ T_file_inclusion::~T_file_inclusion(){delete file_name_;delete error_sym_;}
+
+@*2 {\bf file-of-T-alphabet}.\fbreak
+Enum: T\_T\_file\_of\_T\_alphabet\_
+\fbreak
+\line{Class: T\_file\_of\_T\_alphabet \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf fsm-class-phrase}.\fbreak
+Enum: T\_T\_fsm\_class\_phrase\_
+\fbreak
+\line{Class: T\_fsm\_class\_phrase \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 fsm-class-phrase destructor directive.
+@<fsm-class-phrase destructor directive@>=
+
+ if(R->identifier_ != 0)
+ delete R->identifier_;
+ R->remove_directives_from_map();
+
+@*3 fsm-class-phrase user-declaration directive.
+@<fsm-class-phrase user-declaration directive@>=
+
+ public:
+ T_fsm_class_phrase();
+ T_identifier* identifier();
+ void identifier(T_identifier* Id);
+ void remove_directives_from_map();
+ std::map<std::string,CAbs_lr1_sym*>* directives_map();
+ CAbs_lr1_sym* // 0 - ok, or error
+ add_directive_to_map(CAbs_lr1_sym* Directive,yacco2::Parser* P);
+ void phrase_tree(AST* Tree);
+ AST* phrase_tree();
+ private:
+ T_identifier* identifier_;
+ std::map<std::string,CAbs_lr1_sym*> directives_map_;
+ AST* phrase_tree_;
+
+@*3 fsm-class-phrase user-implementation directive.
+@<fsm-class-phrase user-implementation directive@>=
+
+ T_fsm_class_phrase::T_fsm_class_phrase()
+T_CTOR("fsm-class-phrase",T_Enum::T_T_fsm_class_phrase_,&dtor_T_fsm_class_phrase,false,false)
+ {identifier_ = 0;phrase_tree_=0;}
+
+ void T_fsm_class_phrase::phrase_tree(AST* Tree){phrase_tree_=Tree;}
+ AST* T_fsm_class_phrase::phrase_tree(){return phrase_tree_;}
+
+ T_identifier* T_fsm_class_phrase::identifier(){return identifier_;}
+ void T_fsm_class_phrase::identifier(T_identifier* Id){identifier_ = Id;}
+
+ std::map<string,CAbs_lr1_sym*>*
+ T_fsm_class_phrase::directives_map(){
+ return &directives_map_;
+ }
+
+ void T_fsm_class_phrase::remove_directives_from_map(){
+ std::map<std::string,CAbs_lr1_sym*>::iterator i = directives_map_.begin();
+ std::map<std::string,CAbs_lr1_sym*>::iterator ie = directives_map_.end();
+ for(;i != ie;++i){
+ CAbs_lr1_sym* sym = i->second;
+ delete sym;
+ }
+ }
+
+ CAbs_lr1_sym* // 0 - ok, or error
+ T_fsm_class_phrase::
+ add_directive_to_map(CAbs_lr1_sym* Directive,yacco2::Parser* P){
+ std::map<std::string,CAbs_lr1_sym*>::iterator i;
+ string key(Directive->id__);
+ i = directives_map_.find(key);
+ if(i == directives_map_.end()){
+ directives_map_[key] = Directive;
+ return 0;
+ }
+ CAbs_lr1_sym* sym = new Err_duplicate_directive;
+ sym->set_rc(*Directive,__FILE__,__LINE__);
+ remove_directives_from_map();
+ return sym;
+ }
+
+@*2 {\bf fsm-phrase}.\fbreak
+Enum: T\_T\_fsm\_phrase\_
+\fbreak
+\line{Class: T\_fsm\_phrase \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 fsm-phrase destructor directive.
+@<fsm-phrase destructor directive@>=
+
+ delete R->fsm_id_;
+ delete R->filename_id_;
+ delete R->namespace_id_;
+ delete R->fsm_class_phrase_;
+ delete R->version_;
+ delete R->date_;
+ delete R->debug_;
+ delete R->comment_;
+
+@*3 fsm-phrase user-declaration directive.
+@<fsm-phrase user-declaration directive@>=
+
+ public:
+ T_fsm_phrase();
+ T_c_string* fsm_id();
+ void fsm_id(T_c_string* Id);
+ T_identifier* filename_id();
+ void filename_id(T_identifier* Id);
+ T_identifier* namespace_id();
+ void namespace_id(T_identifier* Id);
+ T_fsm_class_phrase* fsm_class_phrase();
+ void fsm_class_phrase(T_fsm_class_phrase* Id);
+ T_c_string* version();
+ void version(T_c_string* Id);
+ T_c_string* date();
+ void date(T_c_string* Id);
+ T_c_string* debug();
+ void debug(T_c_string* Id);
+ T_c_string* comment();
+ void comment(T_c_string* Id);
+ void phrase_tree(AST* Tree);
+ AST* phrase_tree();
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ private:
+ T_c_string* fsm_id_;
+ T_identifier* filename_id_;
+ string filename_no_ext_;
+ T_identifier* namespace_id_;
+ T_fsm_class_phrase* fsm_class_phrase_;
+ T_c_string* version_;
+ T_c_string* date_;
+ T_c_string* debug_;
+ T_c_string* comment_;
+ AST* phrase_tree_;
+ AST* cweb_marker_;
+
+@*3 fsm-phrase user-implementation directive.
+@<fsm-phrase user-implementation directive@>=
+
+ T_fsm_phrase::T_fsm_phrase()
+ T_CTOR("fsm-phrase",T_Enum::T_T_fsm_phrase_,&dtor_T_fsm_phrase,false,false)
+ {fsm_id_ = 0;
+ filename_id_ = 0;
+ namespace_id_ = 0;
+ fsm_class_phrase_ = 0;
+ version_ = 0;
+ date_ = 0;
+ debug_ = 0;
+ comment_ = 0;
+ phrase_tree_=0;
+ cweb_marker_=0;
+ }
+
+ void T_fsm_phrase::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+ AST* T_fsm_phrase::cweb_marker(){
+ return cweb_marker_;
+ }
+
+ void T_fsm_phrase::phrase_tree(AST* Tree){phrase_tree_=Tree;}
+ AST* T_fsm_phrase::phrase_tree(){return phrase_tree_;}
+
+ T_c_string* T_fsm_phrase::fsm_id(){return fsm_id_;}
+ void T_fsm_phrase::fsm_id(T_c_string* Id){fsm_id_ = Id;}
+ T_identifier* T_fsm_phrase::filename_id(){return filename_id_;}
+ void T_fsm_phrase::filename_id(T_identifier* Id){filename_id_ = Id;}
+ T_identifier* T_fsm_phrase::namespace_id(){return namespace_id_;}
+ void T_fsm_phrase::namespace_id(T_identifier* Id){namespace_id_ = Id;}
+
+ T_fsm_class_phrase* T_fsm_phrase::fsm_class_phrase(){return fsm_class_phrase_;}
+ void T_fsm_phrase::fsm_class_phrase(T_fsm_class_phrase* Id)
+ {fsm_class_phrase_ = Id;}
+
+
+ T_c_string* T_fsm_phrase::version(){return version_;}
+ void T_fsm_phrase::version(T_c_string* Id){version_ = Id;}
+ T_c_string* T_fsm_phrase::date(){return date_;}
+ void T_fsm_phrase::date(T_c_string* Id){date_ = Id;}
+ T_c_string* T_fsm_phrase::debug(){return debug_;}
+ void T_fsm_phrase::debug(T_c_string* Id){debug_ = Id;}
+ T_c_string* T_fsm_phrase::comment(){return comment_;}
+ void T_fsm_phrase::comment(T_c_string* Id){comment_ = Id;}
+
+@*2 {\bf grammar-name}.\fbreak
+Enum: T\_T\_grammar\_name\_
+\fbreak
+\line{Class: T\_grammar\_name \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf grammar-phrase}.\fbreak
+Enum: T\_T\_grammar\_phrase\_
+\fbreak
+\line{Class: T\_grammar\_phrase \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf identifier}.\fbreak
+Enum: T\_T\_identifier\_
+\fbreak
+\line{Class: T\_identifier \hfil AB: N \hfil AD: N}
+
+
+Returned terminal from the |identifier| thread.
+Just your basic word classifier.
+
+\fbreak
+\hrule
+@*3 identifier user-declaration directive.
+@<identifier user-declaration directive@>=
+
+ public:
+ T_identifier(yacco2::KCHARP Identifier);
+ std::string* identifier();
+ private:std::string identifier_;
+
+@*3 identifier user-implementation directive.
+@<identifier user-implementation directive@>=
+
+ T_identifier::T_identifier(yacco2::KCHARP Identifier)
+ T_CTOR("identifier",T_Enum::T_T_identifier_,0,false,false)
+ {identifier_ = Identifier;}
+ std::string* T_identifier::identifier(){return &identifier_;}
+
+@*2 {\bf int-no}.\fbreak
+Enum: T\_T\_int\_no\_
+\fbreak
+\line{Class: T\_int\_no \hfil AB: N \hfil AD: N}
+
+
+Carrier returned from |integer_no| thread.
+Within |integer_no| the number is converted into its binary
+format.
+
+\fbreak
+\hrule
+@*3 int-no user-declaration directive.
+@<int-no user-declaration directive@>=
+
+ public:
+ T_int_no(long S_no);
+ long no();
+ private:
+ long no_;
+
+@*3 int-no user-implementation directive.
+@<int-no user-implementation directive@>=
+
+ T_int_no::
+ T_int_no(long S_no)
+ T_CTOR("int-no",T_Enum::T_T_int_no_,0,false,false)
+ {no_ = S_no;}
+ long T_int_no::no(){return no_;};
+
+@*2 {\bf kw-in-stbl}.\fbreak
+Enum: T\_kw\_in\_stbl\_
+\fbreak
+\line{Class: kw\_in\_stbl \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 kw-in-stbl user-declaration directive.
+@<kw-in-stbl user-declaration directive@>=
+
+ public:
+ kw_in_stbl(CAbs_lr1_sym* Fnd_kw_in_stbl);
+ CAbs_lr1_sym* keyword_in_stbl();
+ void stbl_idx(yacco2::UINT Idx);
+ int stbl_idx();
+ private:
+ CAbs_lr1_sym* kw_in_stbl_;
+ int stbl_idx_;
+
+@*3 kw-in-stbl user-implementation directive.
+@<kw-in-stbl user-implementation directive@>=
+
+ kw_in_stbl::kw_in_stbl(CAbs_lr1_sym* Fnd_kw_in_stbl)
+ T_CTOR("kw-in-stbl",T_Enum::T_kw_in_stbl_,0,false,false)
+ {kw_in_stbl_ = Fnd_kw_in_stbl;
+ stbl_idx_ = -1;
+ }
+ CAbs_lr1_sym* kw_in_stbl::keyword_in_stbl(){
+ return kw_in_stbl_;
+ }
+ void kw_in_stbl::stbl_idx(yacco2::UINT Idx){stbl_idx_ = Idx;}
+ int kw_in_stbl::stbl_idx(){return stbl_idx_;}
+
+@*2 {\bf la-express-source}.\fbreak
+Enum: T\_T\_la\_expr\_src\_
+\fbreak
+\line{Class: T\_la\_expr\_src \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 la-express-source user-declaration directive.
+@<la-express-source user-declaration directive@>=
+
+ public:
+ T_la_expr_src();
+ yacco2::TOKEN_GAGGLE* la_tok_can();
+ void zero_la_tok_can();
+ private:
+ yacco2::TOKEN_GAGGLE* la_tok_can_;
+
+@*3 la-express-source user-implementation directive.
+@<la-express-source user-implementation directive@>=
+
+ T_la_expr_src::T_la_expr_src()
+T_CTOR("la-express-source",T_Enum::T_T_la_expr_src_,0,false,false)
+ {la_tok_can_ = new yacco2::TOKEN_GAGGLE;
+ }
+ void T_la_expr_src::zero_la_tok_can(){
+ la_tok_can_ = 0;
+ }
+ yacco2::TOKEN_GAGGLE* T_la_expr_src::la_tok_can(){
+ return la_tok_can_;
+ }
+
+@*2 {\bf lint}.\fbreak
+Enum: T\_T\_lint\_
+\fbreak
+\line{Class: T\_lint \hfil AB: N \hfil AD: N}
+
+
+ Gathers the fluff.
+
+\fbreak
+\hrule
+@*3 lint user-declaration directive.
+@<lint user-declaration directive@>=
+
+ T_lint();
+
+@*3 lint user-implementation directive.
+@<lint user-implementation directive@>=
+
+ T_lint::T_lint()
+ T_CTOR("lint",T_Enum::T_T_lint_,0,false,false)
+ {}
+ T_lint lint__;
+ yacco2::CAbs_lr1_sym* NS_yacco2_terminals::PTR_lint__ = &lint__;
+
+@*2 {\bf list-of-native-first-set-terminals}.\fbreak
+Enum: T\_T\_list\_of\_native\_first\_set\_terminals\_
+\fbreak
+\line{Class: T\_list\_of\_native\_first\_set\_terminals \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf list-of-transitive-threads}.\fbreak
+Enum: T\_T\_list\_of\_transitive\_threads\_
+\fbreak
+\line{Class: T\_list\_of\_transitive\_threads \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf list-of-used-threads}.\fbreak
+Enum: T\_T\_list\_of\_used\_threads\_
+\fbreak
+\line{Class: T\_list\_of\_used\_threads \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf lr1-k-phrase}.\fbreak
+Enum: T\_T\_lr1\_k\_phrase\_
+\fbreak
+\line{Class: T\_lr1\_k\_phrase \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 lr1-k-phrase destructor directive.
+@<lr1-k-phrase destructor directive@>=
+
+ R->destroy_alphabet();
+ delete R->filename_id_;
+ delete R->namespace_id_;
+ delete R->lrk_sufx_code_;
+
+@*3 lr1-k-phrase user-declaration directive.
+@<lr1-k-phrase user-declaration directive@>=
+
+ public:
+ T_lr1_k_phrase();
+ T_identifier* filename_id();
+ void filename_id(T_identifier* Id);
+ T_identifier* namespace_id();
+ void namespace_id(T_identifier* Id);
+ void destroy_alphabet();
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*>* alphabet();
+ CAbs_lr1_sym* add_t_to_alphabet(T_terminal_def* T,yacco2::Parser* P);
+ std::vector<T_terminal_def*>* crt_order();
+ T_syntax_code* lrk_sufx_code();
+ void lrk_sufx_code(T_syntax_code* Code);
+ void phrase_tree(AST* Tree);
+ AST* phrase_tree();
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ private:
+ T_identifier* filename_id_;
+ T_identifier* namespace_id_;
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*> alphabet_;
+ std::vector<T_terminal_def*> crt_order_;
+ T_syntax_code* lrk_sufx_code_;
+ AST* phrase_tree_;
+ AST* cweb_marker_;
+
+@*3 lr1-k-phrase user-implementation directive.
+@<lr1-k-phrase user-implementation directive@>=
+
+ T_lr1_k_phrase::T_lr1_k_phrase()
+ T_CTOR("lr1-k-phrase",T_Enum::T_T_lr1_k_phrase_,&dtor_T_lr1_k_phrase,false,false)
+ {lrk_sufx_code_ = 0;phrase_tree_=0;cweb_marker_=0;}
+
+ void T_lr1_k_phrase::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+
+ AST* T_lr1_k_phrase::cweb_marker(){
+ return cweb_marker_;
+ }
+
+ void T_lr1_k_phrase::phrase_tree(AST* Tree){phrase_tree_=Tree;}
+ AST* T_lr1_k_phrase::phrase_tree(){return phrase_tree_;}
+
+ T_identifier* T_lr1_k_phrase::filename_id(){return filename_id_;}
+ void T_lr1_k_phrase::filename_id(T_identifier* Id){filename_id_ = Id;}
+ T_identifier* T_lr1_k_phrase::namespace_id(){return namespace_id_;}
+ void T_lr1_k_phrase::namespace_id(T_identifier* Id){namespace_id_ = Id;}
+
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*>*
+ T_lr1_k_phrase::alphabet(){
+ return &alphabet_;
+ }
+
+ std::vector<T_terminal_def*>*
+ T_lr1_k_phrase::
+ crt_order(){return &crt_order_;}
+
+ void T_lr1_k_phrase::destroy_alphabet(){
+ std::vector<T_terminal_def*>::iterator i = crt_order_.begin();
+ std::vector<T_terminal_def*>::iterator ie = crt_order_.end();
+ for(;i != ie;++i){
+ CAbs_lr1_sym* sym = *i;
+ delete sym;
+ }
+ alphabet_.clear();
+ }
+
+ CAbs_lr1_sym*
+ T_lr1_k_phrase::
+ add_t_to_alphabet(T_terminal_def* T,yacco2::Parser* P){
+ std::string key(T->t_name()->c_str());
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*>::iterator i = alphabet_.find(key);
+ if(i != alphabet_.end()){
+ CAbs_lr1_sym* sym = new Err_dup_entry_in_alphabet;
+ sym->set_rc(*T,__FILE__,__LINE__);
+ return sym;
+ }
+ alphabet_[key] = T;
+ crt_order_.push_back(T);
+ return 0;
+ }
+ T_syntax_code*
+ T_lr1_k_phrase::
+ lrk_sufx_code(){return lrk_sufx_code_;}
+
+ void
+ T_lr1_k_phrase::
+ lrk_sufx_code(T_syntax_code* Code){
+ lrk_sufx_code_ = Code;
+ }
+
+@*2 {\bf monolithic}.\fbreak
+Enum: T\_T\_monolithic\_
+\fbreak
+\line{Class: T\_monolithic \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf no-of-T}.\fbreak
+Enum: T\_T\_no\_of\_T\_
+\fbreak
+\line{Class: T\_no\_of\_T \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf null call thread eosubrule}.\fbreak
+Enum: T\_T\_null\_call\_thread\_eosubrule\_
+\fbreak
+\line{Class: T\_null\_call\_thread\_eosubrule \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 null call thread eosubrule user-declaration directive.
+@<null call thread eosubrule user-declaration directive@>=
+
+ public:
+ T_null_call_thread_eosubrule();
+ T_subrule_def* its_subrule_def();
+ void its_subrule_def(T_subrule_def* Its_subrule);
+ std::string* grammar_s_enumerate();
+ void grammar_s_enumerate(const char* Enumerate);
+ AST* tree_node();
+ void tree_node(AST* Tree_node);
+ rule_def* its_rule_def();
+ int element_pos();
+ void element_pos(int Pos);
+ private:
+ T_subrule_def* its_subrule_def_;
+ std::string grammar_s_enumerate_;
+ AST* tree_node_;
+ int element_pos_;
+
+@*3 null call thread eosubrule user-implementation directive.
+@<null call thread eosubrule user-implementation directive@>=
+
+ T_null_call_thread_eosubrule::T_null_call_thread_eosubrule()
+T_CTOR("null call thread eosubrule",T_Enum::T_T_null_call_thread_eosubrule_,0,false,false){
+ its_subrule_def_ = 0;
+ tree_node_ = 0;
+ element_pos_ = 0;
+ }
+ int T_null_call_thread_eosubrule::element_pos(){return element_pos_;}
+ void T_null_call_thread_eosubrule::element_pos(int Pos){element_pos_ = Pos;}
+ rule_def* T_null_call_thread_eosubrule::its_rule_def(){
+ return its_subrule_def_->its_rule_def();
+ }
+ AST* T_null_call_thread_eosubrule::tree_node(){
+ return tree_node_;
+ }
+ void T_null_call_thread_eosubrule::tree_node(AST* Tree_node){
+ tree_node_ = Tree_node;
+ }
+
+ std::string* T_null_call_thread_eosubrule::grammar_s_enumerate(){
+ return &grammar_s_enumerate_;
+ }
+ void T_null_call_thread_eosubrule::grammar_s_enumerate(const char* Enumerate){
+ grammar_s_enumerate_+=Enumerate;
+ }
+ T_subrule_def* T_null_call_thread_eosubrule::its_subrule_def(){
+ return its_subrule_def_;
+ }
+
+ void T_null_call_thread_eosubrule::its_subrule_def(T_subrule_def* Its_subrule){
+ its_subrule_def_ = Its_subrule;
+ }
+
+@*2 {\bf option-err}.\fbreak
+Enum: T\_T\_option\_err\_
+\fbreak
+\line{Class: T\_option\_err \hfil AB: N \hfil AD: Y}
+
+
+Command line option for \O2 indicating generate Error vocabulary code.
+Returned from |yacco2_lcl_option| thread.
+
+\fbreak
+\hrule
+@*2 {\bf option-p}.\fbreak
+Enum: T\_T\_option\_p\_
+\fbreak
+\line{Class: T\_option\_p \hfil AB: N \hfil AD: Y}
+
+
+Command line option for \O2 indicating generate
+cweb type documents.
+Returned from |yacco2_lcl_option| thread.
+
+\fbreak
+\hrule
+@*2 {\bf option-t}.\fbreak
+Enum: T\_T\_option\_t\_
+\fbreak
+\line{Class: T\_option\_t \hfil AB: N \hfil AD: Y}
+
+
+Command line option for \O2 indicating generate T vocabulary code.
+Returned from |yacco2_lcl_option| thread.
+
+\fbreak
+\hrule
+@*2 {\bf parallel-monitor-phrase}.\fbreak
+Enum: T\_T\_parallel\_monitor\_phrase\_
+\fbreak
+\line{Class: T\_parallel\_monitor\_phrase \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 parallel-monitor-phrase destructor directive.
+@<parallel-monitor-phrase destructor directive@>=
+
+ R->remove_mntr_directives();
+
+@*3 parallel-monitor-phrase user-declaration directive.
+@<parallel-monitor-phrase user-declaration directive@>=
+
+ public:
+ T_parallel_monitor_phrase();
+ void remove_mntr_directives();
+ std::map<std::string,CAbs_lr1_sym*>* mntr_directives_map();
+ CAbs_lr1_sym* // 0 - ok, or error
+ add_directive_to_mntr(CAbs_lr1_sym* Directive,yacco2::Parser* P);
+ void phrase_tree(AST* Tree);
+ AST* phrase_tree();
+ private:
+ map<std::string,CAbs_lr1_sym*> mntr_directives_map_;
+ AST* phrase_tree_;
+
+@*3 parallel-monitor-phrase user-implementation directive.
+@<parallel-monitor-phrase user-implementation directive@>=
+
+ T_parallel_monitor_phrase::T_parallel_monitor_phrase()
+T_CTOR("parallel-monitor-phrase",T_Enum::T_T_parallel_monitor_phrase_,&dtor_T_parallel_monitor_phrase,false,false)
+ {phrase_tree_=0;}
+
+ void T_parallel_monitor_phrase::phrase_tree(AST* Tree){phrase_tree_=Tree;}
+ AST* T_parallel_monitor_phrase::phrase_tree(){return phrase_tree_;}
+
+ map<string,CAbs_lr1_sym*>*
+ T_parallel_monitor_phrase::mntr_directives_map(){
+ return &mntr_directives_map_;
+ }
+
+ void T_parallel_monitor_phrase::remove_mntr_directives(){
+ std::map<std::string,CAbs_lr1_sym*>::iterator i = mntr_directives_map_.begin();
+ std::map<std::string,CAbs_lr1_sym*>::iterator ie = mntr_directives_map_.end();
+ for(;i != ie;++i){
+ CAbs_lr1_sym* sym = i->second;
+ delete sym;
+ }
+ }
+
+ CAbs_lr1_sym* // 0 - ok, or error
+ T_parallel_monitor_phrase::
+ add_directive_to_mntr(CAbs_lr1_sym* Directive,yacco2::Parser* P){
+ map<std::string,CAbs_lr1_sym*>::iterator i;
+ std::string key(Directive->id__);
+ i = mntr_directives_map_.find(key);
+ if(i == mntr_directives_map_.end()){
+ mntr_directives_map_[key] = Directive;
+ return 0;
+ }
+ CAbs_lr1_sym* sym = new Err_duplicate_directive;
+ sym->set_rc(*Directive,__FILE__,__LINE__);
+ remove_mntr_directives();
+ return sym;
+ }
+
+@*2 {\bf parallel-parser-phrase}.\fbreak
+Enum: T\_T\_parallel\_parser\_phrase\_
+\fbreak
+\line{Class: T\_parallel\_parser\_phrase \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 parallel-parser-phrase destructor directive.
+@<parallel-parser-phrase destructor directive@>=
+
+ delete R->la_bndry_;
+ delete R->pp_funct_;
+
+@*3 parallel-parser-phrase user-declaration directive.
+@<parallel-parser-phrase user-declaration directive@>=
+
+ public:
+ T_parallel_parser_phrase();
+ T_parallel_thread_function* pp_funct();
+ void pp_funct(T_parallel_thread_function* PP_fnct);
+ T_parallel_la_boundary* la_bndry();
+ void la_bndry(T_parallel_la_boundary* La_bndry);
+ void phrase_tree(AST* Tree);
+ AST* phrase_tree();
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ private:
+ T_parallel_thread_function* pp_funct_;
+ T_parallel_la_boundary* la_bndry_;
+ AST* phrase_tree_;
+ AST* cweb_marker_;
+
+@*3 parallel-parser-phrase user-implementation directive.
+@<parallel-parser-phrase user-implementation directive@>=
+
+ T_parallel_parser_phrase::T_parallel_parser_phrase()
+ T_CTOR("parallel-parser-phrase",T_Enum::T_T_parallel_parser_phrase_,&dtor_T_parallel_parser_phrase,false,false)
+ {phrase_tree_=0;cweb_marker_=0;}
+
+ void T_parallel_parser_phrase::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+
+ AST* T_parallel_parser_phrase::cweb_marker(){
+ return cweb_marker_;
+ }
+
+ void T_parallel_parser_phrase::phrase_tree(AST* Tree){phrase_tree_=Tree;}
+ AST* T_parallel_parser_phrase::phrase_tree(){return phrase_tree_;}
+
+ T_parallel_thread_function* T_parallel_parser_phrase::pp_funct(){
+ return pp_funct_;
+ }
+ void T_parallel_parser_phrase::pp_funct(T_parallel_thread_function* PP_fnct){
+ pp_funct_ = PP_fnct;
+ }
+ T_parallel_la_boundary* T_parallel_parser_phrase::la_bndry(){
+ return la_bndry_;
+ }
+ void T_parallel_parser_phrase::la_bndry(T_parallel_la_boundary* La_bndry){
+ la_bndry_ = La_bndry;
+ }
+
+@*2 {\bf preamble}.\fbreak
+Enum: T\_T\_preamble\_
+\fbreak
+\line{Class: T\_preamble \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf raw-char}.\fbreak
+Enum: T\_T\_raw\_char\_
+\fbreak
+\line{Class: T\_raw\_char \hfil AB: N \hfil AD: N}
+
+
+A universal carrier from the raw text character into
+c++ objects.
+Still don't know why there is also a |raw-characters| terminal.
+
+\fbreak
+\hrule
+@*3 raw-char destructor directive.
+@<raw-char destructor directive@>=
+
+ if(R->raw_char_!=0)
+ delete R->raw_char();
+
+@*3 raw-char user-declaration directive.
+@<raw-char user-declaration directive@>=
+
+ public:
+ T_raw_char(CAbs_lr1_sym* Raw_char);
+ CAbs_lr1_sym* raw_char()const;
+ void zero_out_raw_char();
+ private:CAbs_lr1_sym* raw_char_;
+
+@*3 raw-char user-implementation directive.
+@<raw-char user-implementation directive@>=
+
+ T_raw_char::
+ T_raw_char(CAbs_lr1_sym* Raw_char)
+ T_CTOR("raw-char",T_Enum::T_T_raw_char_,0,false,false)
+ {raw_char_ = Raw_char;}
+ void T_raw_char::zero_out_raw_char(){raw_char_ = 0;}
+ CAbs_lr1_sym* T_raw_char::raw_char()const{return raw_char_;}
+
+@*2 {\bf rc-phrase}.\fbreak
+Enum: T\_T\_rc\_phrase\_
+\fbreak
+\line{Class: T\_rc\_phrase \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 rc-phrase destructor directive.
+@<rc-phrase destructor directive@>=
+
+ R->destroy_alphabet();
+ delete R->filename_id_;
+ delete R->namespace_id_;
+
+@*3 rc-phrase user-declaration directive.
+@<rc-phrase user-declaration directive@>=
+
+ public:
+ T_rc_phrase();
+ T_identifier* filename_id();
+ void filename_id(T_identifier* Id);
+ T_identifier* namespace_id();
+ void namespace_id(T_identifier* Id);
+ void destroy_alphabet();
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*>* alphabet();
+ CAbs_lr1_sym* add_t_to_alphabet(T_terminal_def* T,yacco2::Parser* P);
+ std::vector<T_terminal_def*>* crt_order();
+ void phrase_tree(AST* Tree);
+ AST* phrase_tree();
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ private:
+ T_identifier* filename_id_;
+ T_identifier* namespace_id_;
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*> alphabet_;
+ std::vector<T_terminal_def*> crt_order_;
+ AST* phrase_tree_;
+ AST* cweb_marker_;
+
+@*3 rc-phrase user-implementation directive.
+@<rc-phrase user-implementation directive@>=
+
+ T_rc_phrase::T_rc_phrase()
+ T_CTOR("rc-phrase",T_Enum::T_T_rc_phrase_,&dtor_T_rc_phrase,false,false)
+ {phrase_tree_=0;cweb_marker_=0;}
+
+ void T_rc_phrase::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+
+ AST* T_rc_phrase::cweb_marker(){
+ return cweb_marker_;
+ }
+
+ void T_rc_phrase::phrase_tree(AST* Tree){phrase_tree_=Tree;}
+ AST* T_rc_phrase::phrase_tree(){return phrase_tree_;}
+
+ T_identifier* T_rc_phrase::filename_id(){return filename_id_;}
+ void T_rc_phrase::filename_id(T_identifier* Id){filename_id_ = Id;}
+ T_identifier* T_rc_phrase::namespace_id(){return namespace_id_;}
+ void T_rc_phrase::namespace_id(T_identifier* Id){namespace_id_ = Id;}
+
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*>*
+ T_rc_phrase::alphabet(){
+ return &alphabet_;
+ }
+
+ std::vector<T_terminal_def*>*
+ T_rc_phrase::
+ crt_order(){return &crt_order_;}
+
+ void T_rc_phrase::destroy_alphabet(){
+ std::vector<T_terminal_def*>::iterator i = crt_order_.begin();
+ std::vector<T_terminal_def*>::iterator ie = crt_order_.end();
+ for(;i != ie;++i){
+ CAbs_lr1_sym* sym = *i;
+ delete sym;
+ }
+ alphabet_.clear();
+ }
+
+ CAbs_lr1_sym*
+ T_rc_phrase::
+ add_t_to_alphabet(T_terminal_def* T,yacco2::Parser* P){
+ std::string key(T->t_name()->c_str());
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*>::iterator i = alphabet_.find(key);
+ if(i != alphabet_.end()){
+ CAbs_lr1_sym* sym = new Err_dup_entry_in_alphabet;
+ sym->set_rc(*T,__FILE__,__LINE__);
+ return sym;
+ }
+ alphabet_[key] = T;
+ crt_order_.push_back(T);
+ return 0;
+ }
+
+@*2 {\bf refered-T}.\fbreak
+Enum: T\_refered\_T\_
+\fbreak
+\line{Class: refered\_T \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 refered-T user-declaration directive.
+@<refered-T user-declaration directive@>=
+
+ public:
+ refered_T(T_in_stbl& Term_in_stbl);
+ T_in_stbl* t_in_stbl();
+ T_terminal_def* its_t_def();
+ T_subrule_def* its_subrule_def();
+ void its_subrule_def(T_subrule_def* Its_subrule);
+ std::string* grammar_s_enumerate();
+ void grammar_s_enumerate(const char* Enumerate);
+ AST* tree_node();
+ void tree_node(AST* Tree_node);
+ rule_def* its_rule_def();
+ int element_pos();
+ void element_pos(int Pos);
+
+ private:
+ T_in_stbl* t_in_stbl_;
+ T_subrule_def* its_subrule_def_;
+ std::string grammar_s_enumerate_;
+ AST* tree_node_;
+ int element_pos_;
+
+@*3 refered-T user-implementation directive.
+@<refered-T user-implementation directive@>=
+
+ refered_T::refered_T(T_in_stbl& Term_in_stbl)
+ T_CTOR("refered-T",T_Enum::T_refered_T_,0,false,false)
+ {t_in_stbl_ = &Term_in_stbl;
+ its_subrule_def_ = 0;
+ tree_node_ = 0;
+ element_pos_ = 0;
+ }
+ int refered_T::element_pos(){return element_pos_;}
+ void refered_T::element_pos(int Pos){element_pos_ = Pos;}
+
+ T_terminal_def* refered_T::its_t_def(){
+ return t_in_stbl_->t_def();
+ }
+ rule_def* refered_T::its_rule_def(){
+ return its_subrule_def_->its_rule_def();
+ }
+ AST* refered_T::tree_node(){
+ return tree_node_;
+ }
+ void refered_T::tree_node(AST* Tree_node){
+ tree_node_ = Tree_node;
+ }
+ std::string* refered_T::grammar_s_enumerate(){
+ return &grammar_s_enumerate_;
+ }
+ void refered_T::grammar_s_enumerate(const char* Enumerate){
+ grammar_s_enumerate_+=Enumerate;
+ }
+
+ T_in_stbl* refered_T::t_in_stbl(){
+ return t_in_stbl_;
+ }
+
+ T_subrule_def* refered_T::its_subrule_def(){
+ return its_subrule_def_;
+ }
+
+ void refered_T::its_subrule_def(T_subrule_def* Its_subrule){
+ its_subrule_def_ = Its_subrule;
+ }
+
+@*2 {\bf refered-rule}.\fbreak
+Enum: T\_refered\_rule\_
+\fbreak
+\line{Class: refered\_rule \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 refered-rule user-declaration directive.
+@<refered-rule user-declaration directive@>=
+
+ public:
+ refered_rule(rule_in_stbl& Rule_in_stbl);
+ rule_in_stbl* Rule_in_stbl();
+ T_subrule_def* its_subrule_def();
+ void its_subrule_def(T_subrule_def* Its_subrule);
+ std::string* grammar_s_enumerate();
+ void grammar_s_enumerate(const char* Enumerate);
+ AST* tree_node();
+ void tree_node(AST* Tree_node);
+ rule_def* its_rule_def();
+ int element_pos();
+ void element_pos(int Pos);
+ private:
+ rule_in_stbl* rule_in_stbl_;
+ T_subrule_def* its_subrule_def_;
+ std::string grammar_s_enumerate_;
+ AST* tree_node_;
+ int element_pos_;
+
+@*3 refered-rule user-implementation directive.
+@<refered-rule user-implementation directive@>=
+
+ refered_rule::refered_rule(rule_in_stbl& Rule_in_stbl)
+ T_CTOR("refered-rule",T_Enum::T_refered_rule_,0,false,false)
+ {rule_in_stbl_ = &Rule_in_stbl;
+ its_subrule_def_ = 0;
+ tree_node_ = 0;
+ element_pos_ = 0;
+ }
+ int refered_rule::element_pos(){return element_pos_;}
+ void refered_rule::element_pos(int Pos){element_pos_ = Pos;}
+ rule_def* refered_rule::its_rule_def(){
+ return rule_in_stbl_->r_def();
+ }
+ AST* refered_rule::tree_node(){
+ return tree_node_;
+ }
+ void refered_rule::tree_node(AST* Tree_node){
+ tree_node_ = Tree_node;
+ }
+ std::string* refered_rule::grammar_s_enumerate(){
+ return &grammar_s_enumerate_;
+ }
+ void refered_rule::grammar_s_enumerate(const char* Enumerate){
+ grammar_s_enumerate_+=Enumerate;
+ }
+
+ T_subrule_def* refered_rule::its_subrule_def(){
+ return its_subrule_def_;
+ }
+
+ void refered_rule::its_subrule_def(T_subrule_def* Its_subrule){
+ its_subrule_def_ = Its_subrule;
+ }
+
+ rule_in_stbl* refered_rule::Rule_in_stbl(){
+ return rule_in_stbl_;
+ }
+
+@*2 {\bf rule-def}.\fbreak
+Enum: T\_rule\_def\_
+\fbreak
+\line{Class: rule\_def \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 rule-def destructor directive.
+@<rule-def destructor directive@>=
+
+ delete R->parallel_mntr_;
+ delete R->rule_lhs_;
+ delete R->subrules_;
+
+@*3 rule-def user-declaration directive.
+@<rule-def user-declaration directive@>=
+
+ public:
+ rule_def(const char* Key);
+ T_rule_lhs_phrase* rule_lhs();
+ void rule_lhs(T_rule_lhs_phrase* Lhs);
+ int rule_no();
+ void rule_no(int Rule_no);
+ int lhs_use_cnt();
+ void lhs_use_cnt(int Use_cnt);
+ int rhs_use_cnt();
+ void rhs_use_cnt(int Use_cnt);
+ bool recursive();
+ void recursive(bool Recursive);
+
+ void parallel_mntr(T_parallel_monitor_phrase* Mntr);
+ T_parallel_monitor_phrase* parallel_mntr();
+ T_subrules_phrase* subrules();
+ void subrules(T_subrules_phrase* Subrules);
+
+ std::string* rule_name();
+ bool autodelete();
+ void autodelete(bool Ton);
+ bool autoabort();
+ void autoabort(bool Ton);
+ bool epsilon();
+ void epsilon(bool Ton);
+ bool derive_t();
+ void derive_t(bool Ton);
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ void bld_its_tree();
+ AST* rule_s_tree();
+ void enum_id(int Id);
+ int enum_id();
+ std::set<T_in_stbl*>* first_set();
+ void add_to_first_set(T_in_stbl& T);
+ std::set<T_called_thread_eosubrule*>* called_thread_first_set();
+ void add_to_called_thread_first_set(T_called_thread_eosubrule* T);
+ std::string* grammar_s_enumerate();
+ void grammar_s_enumerate(const char* Enumerate);
+ void add_closure_rule_making_up_first_set(rule_in_stbl* Rule);
+ std::set<rule_in_stbl*>* closure_rules_making_up_first_set();
+ void add_rule_adding_T_in_first_set(T_in_stbl* T,std::string* Rule_enumerate);
+ std::map<T_in_stbl*,std::set<std::string*> >* rule_adding_T_in_first_set();
+ AST* rule_use_skeleton();
+ void rule_use_skeleton(AST* Tree);
+ private:
+ std::string rule_name_;
+ T_parallel_monitor_phrase* parallel_mntr_;
+ T_subrules_phrase* subrules_;
+ T_rule_lhs_phrase* rule_lhs_;
+ bool auto_delete_;
+ bool auto_abort_;
+ AST* cweb_marker_;
+ AST* its_tree_;
+ int enum_id_;
+ int rule_no_;
+ int lhs_use_cnt_;// for rule recycling
+ int rhs_use_cnt_;// for rule recycling
+ bool recursive_;
+ bool epsilon_;
+ bool derive_t_;
+ std::string grammar_s_enumerate_;
+ std::set<T_in_stbl*> first_set_;
+ std::set<T_called_thread_eosubrule*> called_thread_first_set_;
+ std::set<rule_in_stbl*> closure_rules_making_up_first_set_;
+ std::map<T_in_stbl*,std::set<std::string*> > rules_adding_T_in_first_set_;
+ AST* rule_use_skeleton_;
+
+@*3 rule-def user-implementation directive.
+@<rule-def user-implementation directive@>=
+
+ rule_def::rule_def(const char* Key)
+ T_CTOR("rule-def",T_Enum::T_rule_def_,&dtor_rule_def,false,false)
+ {auto_delete_ = false;
+ auto_abort_ = false;
+ rule_no_ = 0;//starts cnt at 1
+ recursive_ = NO;
+ lhs_use_cnt_ = 0;
+ rhs_use_cnt_ = 0;
+ rule_use_skeleton_ = 0;
+ parallel_mntr_ = 0;
+ subrules_ = 0;
+ rule_lhs_ = 0;
+ rule_name_ += Key;
+ epsilon_ = false;
+ derive_t_ = false;
+ cweb_marker_ = 0;
+ its_tree_ = 0;
+ enum_id_ = -1;
+ first_set_.clear();
+ }
+ std::set<rule_in_stbl*>* rule_def::closure_rules_making_up_first_set(){
+ return &closure_rules_making_up_first_set_;
+ }
+ AST* rule_def::rule_use_skeleton(){return rule_use_skeleton_;}
+ void rule_def::rule_use_skeleton(AST* Tree){rule_use_skeleton_ = Tree;}
+
+ std::map<T_in_stbl*,std::set<std::string*> >*
+ rule_def::rule_adding_T_in_first_set(){
+ return &rules_adding_T_in_first_set_;
+ }
+ int rule_def::rule_no(){return rule_no_;}
+ void rule_def::rule_no(int Rule_no){rule_no_ = Rule_no;}
+ bool rule_def::recursive(){return recursive_;}
+ void rule_def::recursive(bool Recursive){recursive_ = Recursive;}
+ int rule_def::lhs_use_cnt(){return lhs_use_cnt_;};
+ void rule_def::lhs_use_cnt(int Use_cnt){lhs_use_cnt_ = Use_cnt;}
+ int rule_def::rhs_use_cnt(){return rhs_use_cnt_;}
+ void rule_def::rhs_use_cnt(int Use_cnt){rhs_use_cnt_ = Use_cnt;}
+
+ void rule_def::add_closure_rule_making_up_first_set(rule_in_stbl* Rule){
+ if(closure_rules_making_up_first_set_.find(Rule)
+ !=
+ closure_rules_making_up_first_set_ .end()) return;
+ closure_rules_making_up_first_set_.insert(Rule);
+ }
+ void rule_def::add_rule_adding_T_in_first_set
+ (T_in_stbl* T,std::string* Rule_enumerate){
+ std::map<T_in_stbl*,std::set<std::string*> >::iterator i;
+ std::map<T_in_stbl*,std::set<std::string*> >::iterator ie;
+ ie = rules_adding_T_in_first_set_.end();
+ i = rules_adding_T_in_first_set_.find(T);
+ if(i == ie){
+ rules_adding_T_in_first_set_[T] = std::set<std::string*>();
+ i = rules_adding_T_in_first_set_.find(T);
+ i->second.insert(Rule_enumerate);
+ return;
+ }
+ i->second.insert(Rule_enumerate);
+ }
+
+ std::string* rule_def::grammar_s_enumerate(){
+ return &grammar_s_enumerate_;
+ }
+ void rule_def::grammar_s_enumerate(const char* Enumerate){
+ grammar_s_enumerate_+=Enumerate;
+ }
+
+ std::set<T_in_stbl*>* rule_def::first_set(){
+ return &first_set_;
+ }
+ std::set<T_called_thread_eosubrule*>* rule_def::called_thread_first_set(){
+ return &called_thread_first_set_;
+ }
+
+ void rule_def::add_to_first_set(T_in_stbl& T){
+ T_in_stbl* t = &T;
+ std::set<T_in_stbl*>::iterator i;
+ i = first_set_.find(t);
+ if(i == first_set_.end()){
+ first_set_.insert(t);
+ }
+ }
+ void rule_def::add_to_called_thread_first_set(T_called_thread_eosubrule* T){
+ std::set<T_called_thread_eosubrule*>::iterator i;
+ i = called_thread_first_set_.find(T);
+ if(i == called_thread_first_set_.end()){
+ called_thread_first_set_.insert(T);
+ }
+ }
+
+ void rule_def::enum_id(int Id){enum_id_=Id;}
+ int rule_def::enum_id(){return enum_id_;}
+ void rule_def::bld_its_tree(){
+ its_tree_ = new AST(*this);
+ T_subrules_phrase* subrules_ph = subrules();
+ std::vector<T_subrule_def*>* subrule_list = subrules_ph->subrules();
+ std::vector<T_subrule_def*>::iterator sri = subrule_list->begin();
+ std::vector<T_subrule_def*>::iterator srie = subrule_list->end();
+ AST* subrule_lvl = 0;
+ for(;sri!=srie;++sri){// walk subrules
+ T_subrule_def* srdef = *sri;
+ AST* srt = srdef->subrule_s_tree();
+ if(subrule_lvl == 0){
+ AST::crt_tree_of_1son(*its_tree_,*srt);
+ subrule_lvl = srt;
+ }else{ // subrule brothers
+ AST::join_sts(*subrule_lvl,*srt);
+ subrule_lvl = srt;
+ }
+ }
+ }
+
+ AST* rule_def::rule_s_tree(){
+ return its_tree_;
+ }
+
+ void rule_def::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+
+ AST* rule_def::cweb_marker(){
+ return cweb_marker_;
+ }
+
+ T_rule_lhs_phrase* rule_def::rule_lhs(){
+ return rule_lhs_;
+ }
+
+ void rule_def::rule_lhs(T_rule_lhs_phrase* Lhs){
+ rule_lhs_ = Lhs;
+ }
+
+ void rule_def::parallel_mntr(T_parallel_monitor_phrase* Mntr){
+ parallel_mntr_ = Mntr;
+ }
+
+ T_parallel_monitor_phrase* rule_def::parallel_mntr(){
+ return parallel_mntr_;
+ }
+
+ T_subrules_phrase* rule_def::subrules(){
+ return subrules_;
+ }
+
+ void rule_def::subrules(T_subrules_phrase* Subrules){
+ subrules_ = Subrules;
+ }
+
+ std::string* rule_def::rule_name(){return &rule_name_;}
+
+ bool rule_def::autodelete(){return auto_delete_;}
+ void rule_def::autodelete(bool Ton){auto_delete_ = Ton;}
+
+ bool rule_def::autoabort(){return auto_abort_;}
+ void rule_def::autoabort(bool Ton){auto_abort_ = Ton;}
+
+ bool rule_def::epsilon(){return epsilon_;}
+ void rule_def::epsilon(bool Ton){epsilon_ = Ton;}
+
+ bool rule_def::derive_t(){return derive_t_;}
+ void rule_def::derive_t(bool Ton){derive_t_ = Ton;}
+
+
+@*2 {\bf rule-in-stbl}.\fbreak
+Enum: T\_rule\_in\_stbl\_
+\fbreak
+\line{Class: rule\_in\_stbl \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 rule-in-stbl user-declaration directive.
+@<rule-in-stbl user-declaration directive@>=
+
+ public:
+ rule_in_stbl(rule_def& Rule_def);
+ rule_def* r_def();
+ std::list<refered_rule*>* xref_r();
+ void add_R_into_xref(refered_rule& R);
+ void stbl_idx(yacco2::UINT Idx);
+ int stbl_idx();
+ private:
+ rule_def* r_def_;
+ std::list<refered_rule*> xref_r_;
+ int stbl_idx_;
+
+@*3 rule-in-stbl user-implementation directive.
+@<rule-in-stbl user-implementation directive@>=
+
+ rule_in_stbl::rule_in_stbl(rule_def& Rule_def)
+ T_CTOR("rule-in-stbl",T_Enum::T_rule_in_stbl_,0,false,false)
+ {r_def_ = &Rule_def;
+ stbl_idx_ = -1;
+ }
+ rule_def* rule_in_stbl::r_def(){
+ return r_def_;
+ }
+ std::list<refered_rule*>* rule_in_stbl::xref_r(){
+ return &xref_r_;;
+ }
+ void rule_in_stbl::add_R_into_xref(refered_rule& R){
+ xref_r_.push_back(&R);
+ }
+ void rule_in_stbl::stbl_idx(yacco2::UINT Idx){stbl_idx_ = Idx;}
+ int rule_in_stbl::stbl_idx(){return stbl_idx_;}
+
+@*2 {\bf rule-lhs-phrase}.\fbreak
+Enum: T\_T\_rule\_lhs\_phrase\_
+\fbreak
+\line{Class: T\_rule\_lhs\_phrase \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 rule-lhs-phrase destructor directive.
+@<rule-lhs-phrase destructor directive@>=
+
+ R->remove_lhs_directives();
+
+@*3 rule-lhs-phrase user-declaration directive.
+@<rule-lhs-phrase user-declaration directive@>=
+
+ public:
+ T_rule_lhs_phrase();
+ void remove_lhs_directives();
+ std::map<std::string,CAbs_lr1_sym*>* lhs_directives_map();
+ CAbs_lr1_sym* // 0 - ok, or error
+ add_directive_to_lhs(CAbs_lr1_sym* Directive,yacco2::Parser* P);
+ void phrase_tree(AST* Tree);
+ AST* phrase_tree();
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ private:
+ map<std::string,CAbs_lr1_sym*> lhs_directives_map_;
+ AST* phrase_tree_;
+ AST* cweb_marker_;
+
+@*3 rule-lhs-phrase user-implementation directive.
+@<rule-lhs-phrase user-implementation directive@>=
+
+ T_rule_lhs_phrase::T_rule_lhs_phrase()
+T_CTOR("rule-lhs-phrase",T_Enum::T_T_rule_lhs_phrase_,&dtor_T_rule_lhs_phrase,false,false)
+ {phrase_tree_=0;cweb_marker_=0;}
+
+
+ void T_rule_lhs_phrase::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+
+ AST* T_rule_lhs_phrase::cweb_marker(){
+ return cweb_marker_;
+ }
+
+ void T_rule_lhs_phrase::phrase_tree(AST* Tree){phrase_tree_=Tree;}
+ AST* T_rule_lhs_phrase::phrase_tree(){return phrase_tree_;}
+
+ map<std::string,CAbs_lr1_sym*>*
+ T_rule_lhs_phrase::lhs_directives_map(){
+ return &lhs_directives_map_;
+ }
+
+ void T_rule_lhs_phrase::remove_lhs_directives(){
+ std::map<std::string,CAbs_lr1_sym*>::iterator i = lhs_directives_map_.begin();
+ std::map<std::string,CAbs_lr1_sym*>::iterator ie = lhs_directives_map_.end();
+ for(;i != ie;++i){
+ CAbs_lr1_sym* sym = i->second;
+ delete sym;
+ }
+ }
+
+ CAbs_lr1_sym* // 0 - ok, or error
+ T_rule_lhs_phrase::
+ add_directive_to_lhs(CAbs_lr1_sym* Directive,yacco2::Parser* P){
+ map<std::string,CAbs_lr1_sym*>::iterator i;
+ string key(Directive->id__);
+ i = lhs_directives_map_.find(key);
+ if(i == lhs_directives_map_.end()){
+ lhs_directives_map_[key] = Directive;
+ return 0;
+ }
+ CAbs_lr1_sym* sym = new Err_duplicate_directive;
+ sym->set_rc(*Directive,__FILE__,__LINE__);
+ remove_lhs_directives();
+ return sym;
+ }
+
+@*2 {\bf rules-phrase}.\fbreak
+Enum: T\_T\_rules\_phrase\_
+\fbreak
+\line{Class: T\_rules\_phrase \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 rules-phrase destructor directive.
+@<rules-phrase destructor directive@>=
+
+ R->destroy_rules_alphabet();
+
+@*3 rules-phrase user-declaration directive.
+@<rules-phrase user-declaration directive@>=
+
+ public:
+ T_rules_phrase();
+ void destroy_rules_alphabet();
+ std::map<std::string,rule_def*>* rules_alphabet();
+ CAbs_lr1_sym* add_r_to_alphabet(rule_def* R,yacco2::Parser* P);
+ std::vector<rule_def*>* crt_order();
+ void rules_tree(AST* Tree);
+ void phrase_tree(AST* Tree);
+ AST* phrase_tree();
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ private:
+ std::map<std::string,rule_def*> rules_alphabet_;
+ std::vector<rule_def*> crt_order_;
+ AST* phrase_tree_;
+ AST* cweb_marker_;
+
+@*3 rules-phrase user-implementation directive.
+@<rules-phrase user-implementation directive@>=
+
+ T_rules_phrase::T_rules_phrase()
+T_CTOR("rules-phrase",T_Enum::T_T_rules_phrase_,&dtor_T_rules_phrase,false,false)
+ {phrase_tree_=0;cweb_marker_=0;}
+
+ void T_rules_phrase::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+
+ AST* T_rules_phrase::cweb_marker(){
+ return cweb_marker_;
+ }
+
+
+ void T_rules_phrase::phrase_tree(AST* Tree){phrase_tree_=Tree;}
+ AST* T_rules_phrase::phrase_tree(){return phrase_tree_;}
+
+ std::map<string,rule_def*>*
+ T_rules_phrase::rules_alphabet(){
+ return &rules_alphabet_;
+ }
+
+ void T_rules_phrase::destroy_rules_alphabet(){
+ std::vector<rule_def*>::iterator i = crt_order_.begin();
+ std::vector<rule_def*>::iterator ie = crt_order_.end();
+ for(;i != ie;++i){
+ CAbs_lr1_sym* sym = *i;
+ delete sym;
+ }
+ rules_alphabet_.clear();
+ }
+
+ CAbs_lr1_sym*
+ T_rules_phrase::
+ add_r_to_alphabet(rule_def* R,yacco2::Parser* P){
+ std::string key(R->rule_name()->c_str());
+ std::map<std::string,rule_def*>::iterator i = rules_alphabet_.find(key);
+ if(i != rules_alphabet_.end()){
+ CAbs_lr1_sym* sym = new Err_dup_entry_in_alphabet;
+ sym->set_rc(*R,__FILE__,__LINE__);
+ return sym;
+ }
+ rules_alphabet_[key] = R;
+ crt_order_.push_back(R);
+ return 0;
+ }
+ std::vector<rule_def*>*
+ T_rules_phrase::
+ crt_order(){return &crt_order_;}
+
+@*2 {\bf subrule-def}.\fbreak
+Enum: T\_T\_subrule\_def\_
+\fbreak
+\line{Class: T\_subrule\_def \hfil AB: N \hfil AD: N}
+
+
+The |its_grammar_s_pos_| provides its position within the grammar.
+Not important in gening of the grammar but used in the cross reference document.
+As the address of the |T_subrule_def| object
+does not garantee ascending order, this does.
+
+\fbreak
+\hrule
+@*3 subrule-def destructor directive.
+@<subrule-def destructor directive@>=
+
+ R->remove_subrule_directives();
+ R->remove_subrule_elems_from_vector();
+
+@*3 subrule-def user-declaration directive.
+@<subrule-def user-declaration directive@>=
+
+ public:
+ T_subrule_def();
+ int subrule_no_of_rule();
+ void subrule_no_of_rule(int Subrule_no);
+ void remove_subrule_directives();
+ std::map<std::string,CAbs_lr1_sym*>* subrule_directives();
+ CAbs_lr1_sym* // 0 - ok, or error
+ add_directive_to_subrule(CAbs_lr1_sym* Directive,yacco2::Parser* P);
+ std::vector<CAbs_lr1_sym*>* subrule_elems();
+ void add_elem_to_subrule_vector(CAbs_lr1_sym* Elem);
+ int no_of_elems();
+ void remove_subrule_elems_from_vector();
+ bool epsilon();
+ void epsilon(bool Epsilon);
+ bool derive_t();
+ void derive_t(bool Epsilon);
+ rule_def* its_rule_def();
+ void its_rule_def(rule_def* Its_rule_def);
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ void bld_its_tree();
+ AST* subrule_s_tree();
+ std::string* grammar_s_enumerate();
+ void grammar_s_enumerate(const char* Enumerate);
+ int its_grammar_s_pos();
+ void its_grammar_s_pos(int Pos);
+ private:
+ std::map<std::string,CAbs_lr1_sym*> subrule_directives_;
+ std::vector<CAbs_lr1_sym*> subrule_elems_;
+ int subrule_no_of_rule_;// rel 1
+ int no_of_elems_;
+ bool epsilon_;
+ bool derive_t_;
+ rule_def* its_rule_def_;
+ AST* cweb_marker_;
+ AST* its_tree_;
+ int its_grammar_s_pos_;
+ std::string grammar_s_enumerate_;
+
+@*3 subrule-def user-implementation directive.
+@<subrule-def user-implementation directive@>=
+
+ T_subrule_def::T_subrule_def()
+T_CTOR("subrule-def",T_Enum::T_T_subrule_def_,&dtor_T_subrule_def,false,false)
+ {subrule_no_of_rule_ = 0;
+ no_of_elems_ = 0;
+ epsilon_ = false;
+ derive_t_ = false;
+ its_rule_def_ = 0;
+ cweb_marker_ = 0;
+ its_tree_ = 0;
+ its_grammar_s_pos_ = 0;
+ }
+ int T_subrule_def::its_grammar_s_pos(){return its_grammar_s_pos_;}
+ void T_subrule_def::its_grammar_s_pos(int Pos){its_grammar_s_pos_ = Pos;}
+ int T_subrule_def::subrule_no_of_rule(){
+ return subrule_no_of_rule_;
+ }
+ void T_subrule_def::subrule_no_of_rule(int Subrule_no){
+ subrule_no_of_rule_ = Subrule_no;
+ }
+
+ std::string* T_subrule_def::grammar_s_enumerate(){
+ return &grammar_s_enumerate_;
+ }
+ void T_subrule_def::grammar_s_enumerate(const char* Enumerate){
+ grammar_s_enumerate_+=Enumerate;
+ }
+
+ void T_subrule_def::bld_its_tree(){
+ its_tree_ = new AST(*this);
+ std::vector<CAbs_lr1_sym*>* element_list = subrule_elems();
+ std::vector<CAbs_lr1_sym*>::iterator ei = element_list->begin();
+ std::vector<CAbs_lr1_sym*>::iterator eie = element_list->end();
+ AST* element_lvl = 0;
+ for(;ei!=eie;++ei){// walk elements of subrule
+ CAbs_lr1_sym* elem_def = *ei;
+ AST* elemtt = new AST(*elem_def);
+ int id = elem_def->enumerated_id__;
+ using namespace NS_yacco2_terminals;
+ switch (id){
+ case T_Enum::T_refered_rule_: {
+ refered_rule* rrule = (refered_rule*)elem_def;
+ rrule->tree_node(elemtt);
+ break;
+ }
+ case T_Enum::T_T_eosubrule_: {
+ T_eosubrule* eos = (T_eosubrule*)elem_def;
+ eos->tree_node(elemtt);
+ break;
+ }
+ case T_Enum::T_refered_T_: {
+ refered_T* rt = (refered_T*)elem_def;
+ rt->tree_node(elemtt);
+ break;
+ }
+ }
+ if(element_lvl == 0){
+ AST::crt_tree_of_1son(*its_tree_,*elemtt);
+ element_lvl = elemtt;
+ }else{ // element brothers
+ AST::join_sts(*element_lvl,*elemtt);
+ element_lvl = elemtt;
+ }
+ }
+ }
+
+ AST* T_subrule_def::subrule_s_tree(){
+ return its_tree_;
+ }
+
+ void T_subrule_def::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+
+ AST* T_subrule_def::cweb_marker(){
+ return cweb_marker_;
+ }
+
+ rule_def* T_subrule_def::its_rule_def(){
+ return its_rule_def_;
+ }
+
+ void T_subrule_def::its_rule_def(rule_def* Its_rule_def){
+ its_rule_def_ = Its_rule_def;
+ }
+
+ std::vector<CAbs_lr1_sym*>* T_subrule_def::subrule_elems(){
+ return &subrule_elems_;
+ }
+
+ bool T_subrule_def::epsilon(){
+ return epsilon_;
+ }
+
+ void T_subrule_def::epsilon(bool Epsilon){
+ epsilon_ = Epsilon;
+ }
+
+ bool T_subrule_def::derive_t(){
+ return derive_t_;
+ }
+
+ void T_subrule_def::derive_t(bool Ton){
+ derive_t_ = Ton;
+ }
+
+ void T_subrule_def::
+ add_elem_to_subrule_vector(CAbs_lr1_sym* Elem){
+ ++no_of_elems_;
+ subrule_elems_.push_back(Elem);
+ }
+ int T_subrule_def::no_of_elems(){
+ return no_of_elems_;
+ }
+
+ map<std::string,CAbs_lr1_sym*>*
+ T_subrule_def::subrule_directives(){
+ return &subrule_directives_;
+ }
+
+ void T_subrule_def::remove_subrule_directives(){
+ std::map<std::string,CAbs_lr1_sym*>::iterator i = subrule_directives_.begin();
+ std::map<std::string,CAbs_lr1_sym*>::iterator ie = subrule_directives_.end();
+ for(;i != ie;++i){
+ CAbs_lr1_sym* sym = i->second;
+ delete sym;
+ }
+ }
+
+ CAbs_lr1_sym* // 0 - ok, or error
+ T_subrule_def::
+ add_directive_to_subrule(CAbs_lr1_sym* Directive,yacco2::Parser* P){
+ std::map<std::string,CAbs_lr1_sym*>::iterator i;
+ std::string key(Directive->id__);
+ i = subrule_directives_.find(key);
+ if(i == subrule_directives_.end()){
+ subrule_directives_[key] = Directive;
+ return 0;
+ }
+ CAbs_lr1_sym* sym = new Err_duplicate_directive;
+ sym->set_rc(*Directive,__FILE__,__LINE__);
+ remove_subrule_directives();
+ return sym;
+ }
+ void T_subrule_def::remove_subrule_elems_from_vector(){
+ std::vector<CAbs_lr1_sym*>::iterator i = subrule_elems_.begin();
+ std::vector<CAbs_lr1_sym*>::iterator ie = subrule_elems_.end();
+ for(;i != ie;++i){
+ delete *i;
+ }
+ }
+
+@*2 {\bf subrules-phrase}.\fbreak
+Enum: T\_T\_subrules\_phrase\_
+\fbreak
+\line{Class: T\_subrules\_phrase \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 subrules-phrase destructor directive.
+@<subrules-phrase destructor directive@>=
+
+ R->destroy_subrules();
+
+@*3 subrules-phrase user-declaration directive.
+@<subrules-phrase user-declaration directive@>=
+
+ public:
+ T_subrules_phrase();
+ void destroy_subrules();
+ std::vector<T_subrule_def*>* subrules();
+ void add_sr_to_subrules(T_subrule_def* R);
+ int no_subrules();
+ void phrase_tree(AST* Tree);
+ AST* phrase_tree();
+ private:
+ std::vector<T_subrule_def*> subrules_;
+ int no_subrules_;
+ AST* phrase_tree_;
+
+@*3 subrules-phrase user-implementation directive.
+@<subrules-phrase user-implementation directive@>=
+
+ T_subrules_phrase::T_subrules_phrase()
+T_CTOR("subrules-phrase",T_Enum::T_T_subrules_phrase_,&dtor_T_subrules_phrase,false,false)
+ {no_subrules_ = 0;phrase_tree_=0;}
+ void T_subrules_phrase::phrase_tree(AST* Tree){phrase_tree_=Tree;}
+ AST* T_subrules_phrase::phrase_tree(){return phrase_tree_;}
+
+ int T_subrules_phrase::no_subrules(){
+ return no_subrules_;
+ }
+ std::vector<T_subrule_def*>*
+ T_subrules_phrase::subrules(){
+ return &subrules_;
+ }
+
+ void T_subrules_phrase::destroy_subrules(){
+ std::vector<T_subrule_def*>::iterator i = subrules_.begin();
+ std::vector<T_subrule_def*>::iterator ie = subrules_.end();
+ for(;i != ie;++i){
+ CAbs_lr1_sym* sym = *i;
+ delete sym;
+ }
+ }
+
+ void
+ T_subrules_phrase::
+ add_sr_to_subrules(T_subrule_def* R){
+ ++no_subrules_;
+ subrules_.push_back(R);
+ }
+
+@*2 {\bf sym-tbl-report-card}.\fbreak
+Enum: T\_T\_sym\_tbl\_report\_card\_
+\fbreak
+\line{Class: T\_sym\_tbl\_report\_card \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 sym-tbl-report-card user-declaration directive.
+@<sym-tbl-report-card user-declaration directive@>=
+
+ public:
+ enum status {okay,failure,fatal};
+ enum action {not_fnd,fnd,inserted,aborted,unknown};
+ T_sym_tbl_report_card();
+ T_sym_tbl_report_card::status status_;
+ T_sym_tbl_report_card::action action_;
+ table_entry* tbl_entry_;
+ CAbs_lr1_sym* err_entry_;
+ int pos_;
+ int key_len_;
+
+@*3 sym-tbl-report-card user-implementation directive.
+@<sym-tbl-report-card user-implementation directive@>=
+
+ T_sym_tbl_report_card::
+ T_sym_tbl_report_card()
+ T_CTOR("sym-tbl-report-card",T_Enum::T_T_sym_tbl_report_card_,0,false,false)
+ {status_ = okay;
+ action_ = unknown;
+ tbl_entry_ = 0;
+ pos_ = 0;
+ key_len_ = 0;
+ }
+
+@*2 {\bf syntax-code}.\fbreak
+Enum: T\_T\_syntax\_code\_
+\fbreak
+\line{Class: T\_syntax\_code \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 syntax-code user-declaration directive.
+@<syntax-code user-declaration directive@>=
+
+ public:
+ T_syntax_code(const char* Syntax_code);
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ std::string* syntax_code();
+ private:std::string syntax_code_;
+ AST* cweb_marker_;
+
+@*3 syntax-code user-implementation directive.
+@<syntax-code user-implementation directive@>=
+
+ T_syntax_code::T_syntax_code(const char* Syntax_code)
+ T_CTOR("syntax-code",T_Enum::T_T_syntax_code_,0,false,false)
+ {syntax_code_ += Syntax_code;
+ cweb_marker_=0;}
+ std::string* T_syntax_code::syntax_code(){return &syntax_code_;}
+ void T_syntax_code::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+ AST* T_syntax_code::cweb_marker(){
+ return cweb_marker_;
+ }
+
+@*2 {\bf table-entry}.\fbreak
+Enum: T\_table\_entry\_
+\fbreak
+\line{Class: table\_entry \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 table-entry user-declaration directive.
+@<table-entry user-declaration directive@>=
+
+ public:
+ enum entry_typ {terminal,rule,keyword,unknown,thread};
+ enum defined_or_used_typ {defed,used};
+ table_entry();
+ bool vacant_;
+ bool defined_;
+ bool used_;
+ entry_typ type_;
+ CAbs_lr1_sym* symbol_;
+ const char* key_;
+ int pos_;
+ int key_len_;
+
+@*3 table-entry user-implementation directive.
+@<table-entry user-implementation directive@>=
+
+ table_entry::
+ table_entry()
+ T_CTOR("symbol-table",T_Enum::T_table_entry_,0,false,false)
+ {vacant_ = true;
+ defined_ = false;
+ used_ = false;
+ type_ = table_entry::unknown;
+ symbol_ = 0;
+ key_ = 0;
+ pos_ = -1;
+ key_len_ = 0;
+ }
+
+@*2 {\bf terminal-def}.\fbreak
+Enum: T\_T\_terminal\_def\_
+\fbreak
+\line{Class: T\_terminal\_def \hfil AB: N \hfil AD: N}
+
+
+Watch out.\fbreak
+The individual syntax directed code directives
+are unique whereby each directive terminal contains their source code.
+Depending on their key within the ``directives\_map\_'',
+u recast the abstract symbol
+into the specific directive.\fbreak
+For example:\fbreak
+The ``SDC\_user\_declaration'' key representing the ``user-declaration'' directive
+would cast the mapped symbol to |T_user_declaration|.
+
+\fbreak
+\hrule
+@*3 terminal-def destructor directive.
+@<terminal-def destructor directive@>=
+
+ R->remove_directives_from_map();
+
+@*3 terminal-def user-declaration directive.
+@<terminal-def user-declaration directive@>=
+
+ public:
+ enum classification_typ {not_classed,err,rc,lrk,t};
+ T_terminal_def();
+ void remove_directives_from_map();
+ std::map<std::string,CAbs_lr1_sym*>* directives_map();
+ CAbs_lr1_sym* // 0 - ok, or error
+ add_directive_to_map(CAbs_lr1_sym* Directive,yacco2::Parser* P);
+
+ std::string* t_name();
+ void t_name(const char* Id);
+ std::string* classsym();
+ void classsym(const char* Id);
+ bool autodelete();
+ void autodelete(bool Ton);
+ bool autoabort();
+ void autoabort(bool Ton);
+ classification_typ classification();
+ void classification(classification_typ C);
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ void enum_id(int Id);
+ int enum_id();
+ private:
+ std::string t_name_;
+ std::string class_sym_;
+ bool auto_delete_;
+ bool auto_abort_;
+ map<std::string,CAbs_lr1_sym*> directives_map_;
+ classification_typ classification_;
+ AST* cweb_marker_;
+ int enum_id_;
+
+@*3 terminal-def user-implementation directive.
+@<terminal-def user-implementation directive@>=
+
+ T_terminal_def::T_terminal_def()
+T_CTOR("terminal-def",T_Enum::T_T_terminal_def_,&dtor_T_terminal_def,false,false)
+ {auto_delete_ = false;
+ auto_abort_ = false;
+ classification_ = T_terminal_def::not_classed;
+ cweb_marker_ = 0;
+ enum_id_ = -1;
+ }
+ void T_terminal_def::enum_id(int Id){enum_id_=Id;}
+ int T_terminal_def::enum_id(){return enum_id_;}
+ void T_terminal_def::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+
+ AST* T_terminal_def::cweb_marker(){
+ return cweb_marker_;
+ }
+
+ map<std::string,CAbs_lr1_sym*>*
+ T_terminal_def::directives_map(){
+ return &directives_map_;
+ }
+
+ void T_terminal_def::remove_directives_from_map(){
+ std::map<std::string,CAbs_lr1_sym*>::iterator i = directives_map_.begin();
+ std::map<std::string,CAbs_lr1_sym*>::iterator ie = directives_map_.end();
+ for(;i != ie;++i){
+ CAbs_lr1_sym* sym = i->second;
+ delete sym;
+ }
+ }
+
+ CAbs_lr1_sym* // 0 - ok, or error
+ T_terminal_def::
+ add_directive_to_map(CAbs_lr1_sym* Directive,yacco2::Parser* P){
+ map<std::string,CAbs_lr1_sym*>::iterator i;
+ std::string key(Directive->id__);
+ i = directives_map_.find(key);
+ if(i == directives_map_.end()){
+ directives_map_[key] = Directive;
+ return 0;
+ }
+ CAbs_lr1_sym* sym = new Err_duplicate_directive;
+ sym->set_rc(*Directive,__FILE__,__LINE__);
+ remove_directives_from_map();
+ return sym;
+ }
+
+ std::string* T_terminal_def::t_name(){return &t_name_;}
+ void T_terminal_def::t_name(const char* Id){t_name_ += Id;}
+
+ std::string* T_terminal_def::classsym(){return &class_sym_;}
+ void T_terminal_def::classsym(const char* Id){class_sym_ += Id;}
+
+ bool T_terminal_def::autodelete(){return auto_delete_;}
+ void T_terminal_def::autodelete(bool Ton){auto_delete_ = Ton;}
+
+ bool T_terminal_def::autoabort(){return auto_abort_;}
+ void T_terminal_def::autoabort(bool Ton){auto_abort_ = Ton;}
+
+ T_terminal_def::classification_typ
+ T_terminal_def::classification(){return classification_;}
+ void
+ T_terminal_def::classification(T_terminal_def::classification_typ C)
+ {classification_ = C;}
+
+@*2 {\bf terminals-phrase}.\fbreak
+Enum: T\_T\_terminals\_phrase\_
+\fbreak
+\line{Class: T\_terminals\_phrase \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 terminals-phrase destructor directive.
+@<terminals-phrase destructor directive@>=
+
+ R->destroy_alphabet();
+ delete R->filename_id_;
+ delete R->namespace_id_;
+ delete R->terminals_refs_code_;
+ delete R->terminals_sufx_code_;
+
+@*3 terminals-phrase user-declaration directive.
+@<terminals-phrase user-declaration directive@>=
+
+ public:
+ T_terminals_phrase();
+ T_identifier* filename_id();
+ void filename_id(T_identifier* Id);
+ T_identifier* namespace_id();
+ void namespace_id(T_identifier* Id);
+ void destroy_alphabet();
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*>* alphabet();
+ CAbs_lr1_sym* add_t_to_alphabet(T_terminal_def* T,yacco2::Parser* P);
+ std::vector<T_terminal_def*>* crt_order();
+ T_syntax_code* terminals_refs_code();
+ void terminals_refs_code(T_syntax_code* Code);
+ T_syntax_code* terminals_sufx_code();
+ void terminals_sufx_code(T_syntax_code* Code);
+ void phrase_tree(AST* Tree);
+ AST* phrase_tree();
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ private:
+ T_identifier* filename_id_;
+ T_identifier* namespace_id_;
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*> alphabet_;
+ std::vector<T_terminal_def*> crt_order_;
+ T_syntax_code* terminals_refs_code_;
+ T_syntax_code* terminals_sufx_code_;
+ AST* phrase_tree_;
+ AST* cweb_marker_;
+
+@*3 terminals-phrase user-implementation directive.
+@<terminals-phrase user-implementation directive@>=
+
+ T_terminals_phrase::T_terminals_phrase()
+T_CTOR("terminals-phrase",T_Enum::T_T_terminals_phrase_,&dtor_T_terminals_phrase,false,false)
+ {terminals_refs_code_ = 0;
+ terminals_sufx_code_ = 0;
+ phrase_tree_=0;
+ cweb_marker_=0;
+ }
+
+ void T_terminals_phrase::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+
+ AST* T_terminals_phrase::cweb_marker(){
+ return cweb_marker_;
+ }
+
+ void T_terminals_phrase::phrase_tree(AST* Tree){phrase_tree_=Tree;}
+ AST* T_terminals_phrase::phrase_tree(){return phrase_tree_;}
+
+ T_identifier* T_terminals_phrase::filename_id(){return filename_id_;}
+ void T_terminals_phrase::filename_id(T_identifier* Id){filename_id_ = Id;}
+ T_identifier* T_terminals_phrase::namespace_id(){return namespace_id_;}
+ void T_terminals_phrase::namespace_id(T_identifier* Id){namespace_id_ = Id;}
+
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*>*
+ T_terminals_phrase::alphabet(){
+ return &alphabet_;
+ }
+ std::vector<T_terminal_def*>*
+ T_terminals_phrase::
+ crt_order(){return &crt_order_;}
+
+ void T_terminals_phrase::destroy_alphabet(){
+ std::vector<T_terminal_def*>::iterator i = crt_order_.begin();
+ std::vector<T_terminal_def*>::iterator ie = crt_order_.end();
+ for(;i != ie;++i){
+ CAbs_lr1_sym* sym = *i;
+ delete sym;
+ }
+ alphabet_.clear();
+ }
+
+ CAbs_lr1_sym*
+ T_terminals_phrase::
+ add_t_to_alphabet(T_terminal_def* T,yacco2::Parser* P){
+ string key(T->t_name()->c_str());
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*>::iterator i = alphabet_.find(key);
+ if(i != alphabet_.end()){
+ CAbs_lr1_sym* sym = new Err_dup_entry_in_alphabet;
+ sym->set_rc(*T,__FILE__,__LINE__);
+ return sym;
+ }
+ alphabet_[key] = T;
+ crt_order_.push_back(T);
+ return 0;
+ }
+
+ T_syntax_code*
+ T_terminals_phrase::
+ terminals_refs_code(){return terminals_refs_code_;}
+
+ void
+ T_terminals_phrase::
+ terminals_refs_code(T_syntax_code* Code){
+ terminals_refs_code_ = Code;
+ }
+
+ T_syntax_code*
+ T_terminals_phrase::
+ terminals_sufx_code(){return terminals_sufx_code_;}
+
+ void
+ T_terminals_phrase::
+ terminals_sufx_code(T_syntax_code* Code){
+ terminals_sufx_code_ = Code;
+ }
+
+@*2 {\bf th-in-stbl}.\fbreak
+Enum: T\_th\_in\_stbl\_
+\fbreak
+\line{Class: th\_in\_stbl \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 th-in-stbl user-declaration directive.
+@<th-in-stbl user-declaration directive@>=
+
+ public:
+ th_in_stbl(thread_attributes* Fnd_th_in_stbl);
+ thread_attributes* thread_in_stbl();
+ void stbl_idx(yacco2::UINT Idx);
+ int stbl_idx();
+ private:
+ thread_attributes* th_in_stbl_;
+ int stbl_idx_;
+
+@*3 th-in-stbl user-implementation directive.
+@<th-in-stbl user-implementation directive@>=
+
+ th_in_stbl::th_in_stbl(thread_attributes* Fnd_th_in_stbl)
+ T_CTOR("th-in-stbl",T_Enum::T_th_in_stbl_,0,false,false)
+ {th_in_stbl_ = Fnd_th_in_stbl;
+ stbl_idx_ = -1;
+ }
+ thread_attributes* th_in_stbl::thread_in_stbl(){
+ return th_in_stbl_;
+ }
+ void th_in_stbl::stbl_idx(yacco2::UINT Idx){stbl_idx_ = Idx;}
+ int th_in_stbl::stbl_idx(){return stbl_idx_;}
+
+@*2 {\bf thread-attributes}.\fbreak
+Enum: T\_thread\_attributes\_
+\fbreak
+\line{Class: thread\_attributes \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 thread-attributes user-declaration directive.
+@<thread-attributes user-declaration directive@>=
+
+ public:
+ thread_attributes(const char* Fully_qualified_th_name);
+ thread_attributes
+ (const char* Fully_qualified_th_name
+ ,char Transitive
+ ,T_c_string* Grammar_name
+ ,T_c_string* Name_space_name
+ ,T_c_string* Thread_name
+ ,char Monolithic
+ ,T_c_string* File_name
+ ,std::vector<int>& List_of_Ts
+ ,std::vector<thread_attributes*>& List_of_transitive_thds
+ ,T_c_string* Fsm_comments);
+ std::string fully_qualified_th_name_;
+ char transitive_;
+ T_c_string* grammar_file_name_;
+ T_c_string* name_space_name_;
+ T_c_string* thread_name_;
+ char monolithic_;
+ T_c_string* file_name_;
+ std::vector<int> list_of_Ts_;
+ std::set<int> fs_;
+ std::vector<thread_attributes*> list_of_transitive_threads_;
+ int th_enum_;
+ T_c_string* fsm_comments_;
+ AST* called_thread_graph_;
+
+
+@*3 thread-attributes user-implementation directive.
+@<thread-attributes user-implementation directive@>=
+
+ thread_attributes::thread_attributes(const char* Fully_qualified_th_name)
+T_CTOR("thread-attributes",T_Enum::T_thread_attributes_,0,false,false)
+ {fully_qualified_th_name_ += Fully_qualified_th_name;
+ transitive_ = ' ';
+ grammar_file_name_ = 0;
+ name_space_name_ = 0;
+ thread_name_ = 0;
+ monolithic_ = ' ';
+ file_name_ = 0;
+ th_enum_ = -1;
+ fsm_comments_ = 0;
+ called_thread_graph_ = 0;
+ }
+ thread_attributes::thread_attributes
+ (const char* Fully_qualified_th_name
+ ,char Transitive
+ ,T_c_string* Grammar_name
+ ,T_c_string* Name_space_name
+ ,T_c_string* Thread_name
+ ,char Monolithic
+ ,T_c_string* File_name
+ ,std::vector<int>& List_of_Ts
+ ,std::vector<thread_attributes*>& List_of_transitive_thds
+ ,T_c_string* Fsm_comments)
+ T_CTOR("thread-attributes",T_Enum::T_thread_attributes_,0,false,false)
+ {fully_qualified_th_name_ += Fully_qualified_th_name;
+ transitive_ = Transitive;
+ grammar_file_name_ = Grammar_name;
+ name_space_name_ = Name_space_name;
+ thread_name_ = Thread_name;
+ monolithic_ = Monolithic;
+ file_name_ = File_name;
+ if(!List_of_Ts.empty()){
+ copy(List_of_Ts.begin()
+ ,List_of_Ts.end()
+ ,back_inserter(list_of_Ts_));
+ std::vector<int>::iterator i = List_of_Ts.begin();
+ std::vector<int>::iterator ie = List_of_Ts.end();
+ for(;i!=ie;++i){
+ fs_.insert(*i);
+ }
+ }
+ if(!List_of_transitive_thds.empty())
+ copy(List_of_transitive_thds.begin()
+ ,List_of_transitive_thds.end()
+ ,back_inserter(list_of_transitive_threads_));
+ th_enum_ = -1;
+ fsm_comments_ = Fsm_comments;
+ called_thread_graph_ = 0;
+ }
+
+@*2 {\bf thread-name}.\fbreak
+Enum: T\_T\_thread\_name\_
+\fbreak
+\line{Class: T\_thread\_name \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf transitive}.\fbreak
+Enum: T\_T\_transitive\_
+\fbreak
+\line{Class: T\_transitive \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*2 {\bf tth-in-stbl}.\fbreak
+Enum: T\_tth\_in\_stbl\_
+\fbreak
+\line{Class: tth\_in\_stbl \hfil AB: N \hfil AD: N}
+
+\fbreak
+\hrule
+@*3 tth-in-stbl user-declaration directive.
+@<tth-in-stbl user-declaration directive@>=
+
+ public:
+ tth_in_stbl(T_attributes* Fnd_T_in_stbl,CAbs_lr1_sym* Rc,yacco2::Parser* P);
+ T_attributes* t_in_stbl();
+ void stbl_idx(yacco2::UINT Idx);
+ int stbl_idx();
+ private:
+ T_attributes* t_in_stbl_;
+ int stbl_idx_;
+
+@*3 tth-in-stbl user-implementation directive.
+@<tth-in-stbl user-implementation directive@>=
+
+ tth_in_stbl::tth_in_stbl
+ (T_attributes* Fnd_T_in_stbl,CAbs_lr1_sym* Rc,yacco2::Parser* P)
+ T_CTOR("tth-in-stbl",T_Enum::T_tth_in_stbl_,0,false,false)
+ {t_in_stbl_ = Fnd_T_in_stbl;
+ set_rc(*Rc,__FILE__,__LINE__);// set its source co-ordinates
+ stbl_idx_ = -1;
+ }
+ T_attributes* tth_in_stbl::t_in_stbl(){
+ return t_in_stbl_;
+ }
+ void tth_in_stbl::stbl_idx(yacco2::UINT Idx){stbl_idx_ = Idx;}
+ int tth_in_stbl::stbl_idx(){return stbl_idx_;}
+
+@*2 {\bf unquoted-string}.\fbreak
+Enum: T\_T\_unquoted\_string\_
+\fbreak
+\line{Class: T\_unquoted\_string \hfil AB: N \hfil AD: N}
+
+
+Just as described. Gather all the characters until
+an end-of-line met.
+Used in the command line.
+Watch yourself as this is a gobbler:
+marginal utility.
+
+\fbreak
+\hrule
+@*3 unquoted-string user-declaration directive.
+@<unquoted-string user-declaration directive@>=
+
+ public:
+ T_unquoted_string(const std::string& String);
+ std::string* unquoted_string();
+ private:std::string unquoted_string_;
+
+@*3 unquoted-string user-implementation directive.
+@<unquoted-string user-implementation directive@>=
+
+ T_unquoted_string::T_unquoted_string(const std::string& String)
+ T_CTOR("unquoted-string",T_Enum::T_T_unquoted_string_,0,false,false)
+ {unquoted_string_ = String;}
+ std::string* T_unquoted_string::unquoted_string(){return &unquoted_string_;}
+
+@*2 {\bf ws}.\fbreak
+Enum: T\_T\_ws\_
+\fbreak
+\line{Class: T\_ws \hfil AB: N \hfil AD: N}
+
+
+Just white space of spaces, vertical and horizontal tabs,
+and form feeds. This is a vacuum cleaner of
+inter-word separators.
+
+\fbreak
+\hrule
+@*3 ws user-declaration directive.
+@<ws user-declaration directive@>=
+
+ public:
+ T_ws(const std::string& White_space_data);
+ T_ws();
+ std::string* ws_data();
+ private:std::string ws_data_;
+
+@*3 ws user-implementation directive.
+@<ws user-implementation directive@>=
+
+ T_ws::
+ T_ws(const std::string& Ws_data)
+ T_CTOR("ws",T_Enum::T_T_ws_,0,false,false)
+ {ws_data_+= Ws_data;}
+ T_ws::
+ T_ws()
+ T_CTOR("ws",T_Enum::T_T_ws_,0,false,false)
+ {}
+ std::string* T_ws::ws_data(){return &ws_data_;}
+ T_ws ws__;
+ yacco2::CAbs_lr1_sym* NS_yacco2_terminals::PTR_ws__ = &ws__;
+
+@*2 {\bf xc-str}.\fbreak
+Enum: T\_T\_xc\_str\_
+\fbreak
+\line{Class: T\_xc\_str \hfil AB: N \hfil AD: N}
+
+
+Returned from |xc_str| grammar recognizing a c++ string
+without the escape sequence check. This allows one to input
+at the command level a string containing backslash etc in
+single quantities. Example, "\\nogood\\b".
+This does not end a line nor ring your bell.
+The surrounding double quotes are not added to the content.
+It's just a slight variation on ``c-string'' using
+a different grammar.
+
+\fbreak
+\hrule
+@*3 xc-str user-declaration directive.
+@<xc-str user-declaration directive@>=
+
+ public:
+ T_xc_str(const std::string& C_string);
+ std::string* c_string();
+ private:std::string c_string_;
+
+@*3 xc-str user-implementation directive.
+@<xc-str user-implementation directive@>=
+
+ T_xc_str::T_xc_str(const std::string& C_string)
+ T_CTOR("xc-str",T_Enum::T_T_xc_str_,0,false,false)
+ {c_string_ = C_string;}
+ std::string* T_xc_str::c_string(){return &c_string_;}
+
+@** Index.
diff --git a/web/yacco2/compiler/grammars/T_enum_phrase.cpp b/web/yacco2/compiler/grammars/T_enum_phrase.cpp
new file mode 100644
index 0000000000..91d9296e00
--- /dev/null
+++ b/web/yacco2/compiler/grammars/T_enum_phrase.cpp
@@ -0,0 +1,109 @@
+/*
+ File: T_enum_phrase.cpp
+ Date and Time: Fri Jan 30 18:55:26 2015
+*/
+#include "T_enum_phrase.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_T_enum_phrase;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 2;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+}
+ CT_enum_phrase::
+ CT_enum_phrase()
+ :yacco2::CAbs_fsm
+ ("T_enum_phrase.lex"
+ ,"1.0"
+ ,"18 mar 2004"
+ ,false
+ ,"Dispatcher to parse T-enumeration construct."
+ ,"Fri Jan 30 18:55:26 2015 "
+ ,S1_CT_enum_phrase){
+
+ cweb_marker__ = 0;
+
+ }
+
+CT_enum_phrase::~CT_enum_phrase(){
+
+ for(int x = 0;x < 2;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool CT_enum_phrase::failed(){
+ return false;
+ }
+ void CT_enum_phrase::op(){
+ if(CWEB_MARKER != 0){
+ cweb_marker__ = CWEB_MARKER;
+ CWEB_MARKER=0;
+ }
+
+}
+int CT_enum_phrase::rhs_to_rules_mapping_[5] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,1 // subrule 4 for rule 2
+};
+RT_enum_phrase::RT_enum_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("RT_enum_phrase",0,CT_enum_phrase::R_RT_enum_phrase_,P,false,false){
+}
+
+Rphrase::Rphrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rphrase",0,CT_enum_phrase::R_Rphrase_,P,false,false){
+}
+
+void Rphrase::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_enum_phrase* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rphrase::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+
+}
+
+void Rphrase::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_open_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+
+}
+
diff --git a/web/yacco2/compiler/grammars/T_enum_phrase.fsc b/web/yacco2/compiler/grammars/T_enum_phrase.fsc
new file mode 100644
index 0000000000..fec1fe0d1c
--- /dev/null
+++ b/web/yacco2/compiler/grammars/T_enum_phrase.fsc
@@ -0,0 +1,22 @@
+/*
+ File: T_enum_phrase.fsc
+ Date and Time: Fri Jan 30 18:55:26 2015
+*/
+transitive y
+grammar-name "T_enum_phrase"
+name-space "NS_T_enum_phrase"
+thread-name "CT_enum_phrase"
+monolithic y
+file-name "T_enum_phrase.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ LR1_questionable_shift_operator
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 1
+ NS_T_enum_phrase_th::TH_T_enum_phrase_th
+end-list-of-transitive-threads
+list-of-used-threads 1
+ NS_T_enum_phrase_th::TH_T_enum_phrase_th
+end-list-of-used-threads
+fsm-comments
+"Dispatcher to parse T-enumeration construct."
diff --git a/web/yacco2/compiler/grammars/T_enum_phrase.h b/web/yacco2/compiler/grammars/T_enum_phrase.h
new file mode 100644
index 0000000000..55a7f4aa49
--- /dev/null
+++ b/web/yacco2/compiler/grammars/T_enum_phrase.h
@@ -0,0 +1,69 @@
+/*
+ File: T_enum_phrase.h
+ Date and Time: Fri Jan 30 18:55:26 2015
+*/
+#ifndef __T_enum_phrase_h__
+#define __T_enum_phrase_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "T_enum_phrase_th.h"
+#include "o2_externs.h"
+
+// monolithic grammar: no thread
+extern yacco2::State S1_CT_enum_phrase;
+namespace NS_T_enum_phrase {
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[2];
+};
+class CT_enum_phrase: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_RT_enum_phrase_ = 569//start_of_rule_list + 0
+ ,rhs1_RT_enum_phrase_ = 1
+ ,R_Rphrase_ = 570//start_of_rule_list + 2
+ ,rhs1_Rphrase_ = 2
+ ,rhs2_Rphrase_ = 3
+ ,rhs3_Rphrase_ = 4
+ };
+ //no of la sets = 1
+ //no of states = 6
+ CT_enum_phrase();
+ ~CT_enum_phrase();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[5];
+
+ public: yacco2::AST* cweb_marker__;
+
+ };
+struct RT_enum_phrase;
+struct Rphrase;
+struct RT_enum_phrase:public yacco2::CAbs_lr1_sym {
+ RT_enum_phrase(yacco2::Parser* P);
+ public:
+};
+
+struct Rphrase:public yacco2::CAbs_lr1_sym {
+ Rphrase(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/T_enum_phrase.lex b/web/yacco2/compiler/grammars/T_enum_phrase.lex
new file mode 100644
index 0000000000..204d7048e0
--- /dev/null
+++ b/web/yacco2/compiler/grammars/T_enum_phrase.lex
@@ -0,0 +1,90 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: T_enum_phrase.lex
+Dates: 15 Mar 2004
+Purpose: T-enumeration construct
+ Monolithic grammar that launches its thread.
+ Properly handles threads and errors. Starts
+ from a procedure using another parser's
+ token stream from a specific point.
+Note: Use of ||| |+| phrase to catch other returned terminals
+ or errors. In this case, it is errors.
+ One can be selective within various contexts:
+ 1) within arbitration
+ 2) sub-rule level
+ The symbol's enumerated id is the fodder to filter on.
+Grammar being parsed:
+T-enumeration
+(file-name yacco2_T_enumeration
+,name-space NS_yacco2_T_enum)
+ zero-or-one { constant-defs ...C++ constant declarations ... *** }
+*/
+/@
+@i "/yacco2/copyright.w"
+@** |T_enum_phrase| grammar.\fbreak
+Dispatcher to parse T-enumeration construct.\fbreak
+Note: Use of \PARshift{} \QUEshift{} phrase to catch
+other returned terminals
+or errors from called threads.
+In this case, it is errors so its r\^aison d'\^etre instead of
+\ALLshift{} as a ``catch all''.
+One can be selective within various contexts:\fbreak
+\INDENT{.5in}{1) within arbitration}
+\INDENT{.5in}{2) sub-rule level}
+The symbol's enumerated id is the fodder to filter on.
+ @/
+fsm
+(fsm-id "T_enum_phrase.lex"
+,fsm-filename T_enum_phrase
+,fsm-namespace NS_T_enum_phrase
+,fsm-class CT_enum_phrase{
+ user-prefix-declaration
+#include "T_enum_phrase_th.h"
+#include "o2_externs.h"
+ ***
+ user-declaration
+ public: yacco2::AST* cweb_marker__;
+ ***
+ op
+ if(CWEB_MARKER != 0){
+ cweb_marker__ = CWEB_MARKER;
+ CWEB_MARKER=0;
+ }
+ ***
+ constructor
+ cweb_marker__ = 0;
+ ***
+}
+,fsm-version "1.0",fsm-date "18 mar 2004",fsm-debug "false"
+,fsm-comments "Dispatcher to parse T-enumeration construct.")
+@"/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+RT_enum_phrase (){
+ -> Rphrase
+}
+
+Rphrase (){
+ -> ||| "T-enum-phrase"
+ NS_T_enum_phrase_th::TH_T_enum_phrase_th {
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ ***
+ }
+ -> |?| { // error due to no first set to start thread
+ op
+ CAbs_lr1_sym* sym = new Err_no_open_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/T_enum_phrase_th.cpp b/web/yacco2/compiler/grammars/T_enum_phrase_th.cpp
new file mode 100644
index 0000000000..0cae7712ec
--- /dev/null
+++ b/web/yacco2/compiler/grammars/T_enum_phrase_th.cpp
@@ -0,0 +1,423 @@
+/*
+ File: T_enum_phrase_th.cpp
+ Date and Time: Fri Jan 30 18:55:26 2015
+*/
+#include "T_enum_phrase_th.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_T_enum_phrase_th;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 16;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[4] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[5] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[6] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[7] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[8] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[9] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[10] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[11] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[12] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[13] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[14] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[15] = new Per_rule_s_reuse_table();
+}
+ CT_enum_phrase_th::
+ CT_enum_phrase_th()
+ :yacco2::CAbs_fsm
+ ("T_enum_phrase_th.lex"
+ ,"1.0"
+ ,"22 mar 2004"
+ ,false
+ ,"Parse ``T-enumeration'' construct: Time out smell the tullips."
+ ,"Fri Jan 30 18:55:26 2015 "
+ ,S1_CT_enum_phrase_th){
+
+ enum_phrase_ = 0;
+
+ }
+
+CT_enum_phrase_th::~CT_enum_phrase_th(){
+
+ for(int x = 0;x < 16;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool CT_enum_phrase_th::failed(){
+ return false;
+ }
+ void CT_enum_phrase_th::op(){
+ if(enum_phrase_ != 0){
+ delete enum_phrase_;
+ enum_phrase_ = 0;
+ }
+ enum_phrase_ = new T_enum_phrase;
+ enum_phrase_->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ AST* t = new AST(*enum_phrase_);
+ enum_phrase_->phrase_tree(t);
+
+}
+int CT_enum_phrase_th::rhs_to_rules_mapping_[32] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,2 // subrule 4 for rule 3
+ ,2 // subrule 5 for rule 3
+ ,3 // subrule 6 for rule 4
+ ,4 // subrule 7 for rule 5
+ ,5 // subrule 8 for rule 6
+ ,5 // subrule 9 for rule 6
+ ,5 // subrule 10 for rule 6
+ ,6 // subrule 11 for rule 7
+ ,6 // subrule 12 for rule 7
+ ,7 // subrule 13 for rule 8
+ ,7 // subrule 14 for rule 8
+ ,8 // subrule 15 for rule 9
+ ,8 // subrule 16 for rule 9
+ ,8 // subrule 17 for rule 9
+ ,9 // subrule 18 for rule 10
+ ,9 // subrule 19 for rule 10
+ ,10 // subrule 20 for rule 11
+ ,11 // subrule 21 for rule 12
+ ,11 // subrule 22 for rule 12
+ ,12 // subrule 23 for rule 13
+ ,12 // subrule 24 for rule 13
+ ,13 // subrule 25 for rule 14
+ ,13 // subrule 26 for rule 14
+ ,13 // subrule 27 for rule 14
+ ,14 // subrule 28 for rule 15
+ ,14 // subrule 29 for rule 15
+ ,15 // subrule 30 for rule 16
+ ,15 // subrule 31 for rule 16
+};
+RT_enum_phrase::RT_enum_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("RT_enum_phrase",0,CT_enum_phrase_th::R_RT_enum_phrase_,P,false,false){
+}
+
+void RT_enum_phrase::sr1(){
+
+ CT_enum_phrase_th* fsm = (CT_enum_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ RSVP(fsm->enum_phrase_);
+ fsm->enum_phrase_ = 0;
+
+}
+
+Ropen_par::Ropen_par(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Ropen_par",0,CT_enum_phrase_th::R_Ropen_par_,P,false,false){
+}
+
+void Ropen_par::sr1(){
+
+ CAbs_lr1_sym* sym = new Err_no_open_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rclose_par::Rclose_par(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rclose_par",0,CT_enum_phrase_th::R_Rclose_par_,P,false,false){
+}
+
+void Rclose_par::sr1(){
+
+ CAbs_lr1_sym* sym = new Err_no_close_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rparameters::Rparameters(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rparameters",0,CT_enum_phrase_th::R_Rparameters_,P,false,false){
+}
+
+Rfilename_phrase::Rfilename_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfilename_phrase",0,CT_enum_phrase_th::R_Rfilename_phrase_,P,false,false){
+}
+
+Rfilename::Rfilename(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfilename",0,CT_enum_phrase_th::R_Rfilename_,P,false,false){
+}
+
+void Rfilename::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_filename_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rfilename::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_filename_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rfilename_id::Rfilename_id(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfilename_id",0,CT_enum_phrase_th::R_Rfilename_id_,P,false,false){
+}
+
+void Rfilename_id::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_identifier* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ CT_enum_phrase_th* fsm = (CT_enum_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->enum_phrase_->filename_id(sf->p2__);
+
+}
+
+void Rfilename_id::sr2(){
+
+ CAbs_lr1_sym* sym = new Err_no_filename_id_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rnamespace_phrase::Rnamespace_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rnamespace_phrase",0,CT_enum_phrase_th::R_Rnamespace_phrase_,P,false,false){
+}
+
+void Rnamespace_phrase::sr2(){
+
+ CAbs_lr1_sym* sym = new Err_no_comma_present;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rnamespace::Rnamespace(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rnamespace",0,CT_enum_phrase_th::R_Rnamespace_,P,false,false){
+}
+
+void Rnamespace::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_namespace_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rnamespace::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_namespace_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rnamespace_id::Rnamespace_id(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rnamespace_id",0,CT_enum_phrase_th::R_Rnamespace_id_,P,false,false){
+}
+
+void Rnamespace_id::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_identifier* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ CT_enum_phrase_th* fsm = (CT_enum_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->enum_phrase_->namespace_id(sf->p2__);
+
+}
+
+void Rnamespace_id::sr2(){
+
+ CAbs_lr1_sym* sym = new Err_no_namespace_id_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rk_defs_phrase::Rk_defs_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rk_defs_phrase",0,CT_enum_phrase_th::R_Rk_defs_phrase_,P,false,false){
+}
+
+Rconstant_epi_defs::Rconstant_epi_defs(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rconstant_epi_defs",0,CT_enum_phrase_th::R_Rconstant_epi_defs_,P,false,false){
+}
+
+Rconstant_defs::Rconstant_defs(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rconstant_defs",0,CT_enum_phrase_th::R_Rconstant_defs_,P,false,false){
+}
+
+void Rconstant_defs::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_constant_defs* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+
+}
+
+void Rconstant_defs::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rconstant_defs_code::Rconstant_defs_code(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rconstant_defs_code",0,CT_enum_phrase_th::R_Rconstant_defs_code_,P,false,false){
+}
+
+void Rconstant_defs_code::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_syntax_code* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ CT_enum_phrase_th* fsm = (CT_enum_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->enum_phrase_->kdefs(sf->p2__);
+
+}
+
+void Rconstant_defs_code::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ CAbs_lr1_sym* sym = new Err_no_kdefs_code_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ sf->p2__->set_auto_delete(true);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rconstant_defs_code::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_kdefs_code_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rclose_brace::Rclose_brace(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rclose_brace",0,CT_enum_phrase_th::R_Rclose_brace_,P,false,false){
+}
+
+void Rclose_brace::sr1(){
+
+ CAbs_lr1_sym* sym = new Err_no_close_brace;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rlint::Rlint(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlint",0,CT_enum_phrase_th::R_Rlint_,P,false,false){
+}
+
diff --git a/web/yacco2/compiler/grammars/T_enum_phrase_th.fsc b/web/yacco2/compiler/grammars/T_enum_phrase_th.fsc
new file mode 100644
index 0000000000..f6f9edc8da
--- /dev/null
+++ b/web/yacco2/compiler/grammars/T_enum_phrase_th.fsc
@@ -0,0 +1,25 @@
+/*
+ File: T_enum_phrase_th.fsc
+ Date and Time: Fri Jan 30 18:55:26 2015
+*/
+transitive y
+grammar-name "T_enum_phrase_th"
+name-space "NS_T_enum_phrase_th"
+thread-name "TH_T_enum_phrase_th"
+monolithic n
+file-name "T_enum_phrase_th.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 2
+ LR1_questionable_shift_operator
+ raw_open_bracket
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 1
+ NS_lint_balls::TH_lint_balls
+end-list-of-transitive-threads
+list-of-used-threads 3
+ NS_identifier::TH_identifier
+ NS_lint_balls::TH_lint_balls
+ NS_o2_sdc::TH_o2_sdc
+end-list-of-used-threads
+fsm-comments
+"Parse ``T-enumeration'' construct: Time out smell the tullips."
diff --git a/web/yacco2/compiler/grammars/T_enum_phrase_th.h b/web/yacco2/compiler/grammars/T_enum_phrase_th.h
new file mode 100644
index 0000000000..a9bd520593
--- /dev/null
+++ b/web/yacco2/compiler/grammars/T_enum_phrase_th.h
@@ -0,0 +1,220 @@
+/*
+ File: T_enum_phrase_th.h
+ Date and Time: Fri Jan 30 18:55:26 2015
+*/
+#ifndef __T_enum_phrase_th_h__
+#define __T_enum_phrase_th_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "lint_balls.h"
+#include "eol.h"
+#include "c_comments.h"
+#include "identifier.h"
+#include "c_string.h"
+#include "o2_sdc.h"
+ using namespace NS_yacco2_terminals;
+
+extern yacco2::Thread_entry ITH_T_enum_phrase_th;
+
+extern yacco2::State S1_CT_enum_phrase_th;
+namespace NS_T_enum_phrase_th {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_T_enum_phrase_th(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_T_enum_phrase_th(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[16];
+};
+class CT_enum_phrase_th: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_RT_enum_phrase_ = 569//start_of_rule_list + 0
+ ,rhs1_RT_enum_phrase_ = 1
+ ,R_Ropen_par_ = 570//start_of_rule_list + 2
+ ,rhs1_Ropen_par_ = 2
+ ,rhs2_Ropen_par_ = 3
+ ,R_Rclose_par_ = 571//start_of_rule_list + 4
+ ,rhs1_Rclose_par_ = 4
+ ,rhs2_Rclose_par_ = 5
+ ,R_Rparameters_ = 572//start_of_rule_list + 6
+ ,rhs1_Rparameters_ = 6
+ ,R_Rfilename_phrase_ = 573//start_of_rule_list + 8
+ ,rhs1_Rfilename_phrase_ = 7
+ ,R_Rfilename_ = 574//start_of_rule_list + 10
+ ,rhs1_Rfilename_ = 8
+ ,rhs2_Rfilename_ = 9
+ ,rhs3_Rfilename_ = 10
+ ,R_Rfilename_id_ = 575//start_of_rule_list + 12
+ ,rhs1_Rfilename_id_ = 11
+ ,rhs2_Rfilename_id_ = 12
+ ,R_Rnamespace_phrase_ = 576//start_of_rule_list + 14
+ ,rhs1_Rnamespace_phrase_ = 13
+ ,rhs2_Rnamespace_phrase_ = 14
+ ,R_Rnamespace_ = 577//start_of_rule_list + 16
+ ,rhs1_Rnamespace_ = 15
+ ,rhs2_Rnamespace_ = 16
+ ,rhs3_Rnamespace_ = 17
+ ,R_Rnamespace_id_ = 578//start_of_rule_list + 18
+ ,rhs1_Rnamespace_id_ = 18
+ ,rhs2_Rnamespace_id_ = 19
+ ,R_Rk_defs_phrase_ = 579//start_of_rule_list + 20
+ ,rhs1_Rk_defs_phrase_ = 20
+ ,R_Rconstant_epi_defs_ = 580//start_of_rule_list + 22
+ ,rhs1_Rconstant_epi_defs_ = 21
+ ,rhs2_Rconstant_epi_defs_ = 22
+ ,R_Rconstant_defs_ = 581//start_of_rule_list + 24
+ ,rhs1_Rconstant_defs_ = 23
+ ,rhs2_Rconstant_defs_ = 24
+ ,R_Rconstant_defs_code_ = 582//start_of_rule_list + 26
+ ,rhs1_Rconstant_defs_code_ = 25
+ ,rhs2_Rconstant_defs_code_ = 26
+ ,rhs3_Rconstant_defs_code_ = 27
+ ,R_Rclose_brace_ = 583//start_of_rule_list + 28
+ ,rhs1_Rclose_brace_ = 28
+ ,rhs2_Rclose_brace_ = 29
+ ,R_Rlint_ = 584//start_of_rule_list + 30
+ ,rhs1_Rlint_ = 30
+ ,rhs2_Rlint_ = 31
+ };
+ //no of la sets = 10
+ //no of states = 58
+ CT_enum_phrase_th();
+ ~CT_enum_phrase_th();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[32];
+
+ public:
+ T_enum_phrase* enum_phrase_;
+
+ };
+struct RT_enum_phrase;
+struct Ropen_par;
+struct Rclose_par;
+struct Rparameters;
+struct Rfilename_phrase;
+struct Rfilename;
+struct Rfilename_id;
+struct Rnamespace_phrase;
+struct Rnamespace;
+struct Rnamespace_id;
+struct Rk_defs_phrase;
+struct Rconstant_epi_defs;
+struct Rconstant_defs;
+struct Rconstant_defs_code;
+struct Rclose_brace;
+struct Rlint;
+struct RT_enum_phrase:public yacco2::CAbs_lr1_sym {
+ RT_enum_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Ropen_par:public yacco2::CAbs_lr1_sym {
+ Ropen_par(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rclose_par:public yacco2::CAbs_lr1_sym {
+ Rclose_par(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rparameters:public yacco2::CAbs_lr1_sym {
+ Rparameters(yacco2::Parser* P);
+ public:
+};
+
+struct Rfilename_phrase:public yacco2::CAbs_lr1_sym {
+ Rfilename_phrase(yacco2::Parser* P);
+ public:
+};
+
+struct Rfilename:public yacco2::CAbs_lr1_sym {
+ Rfilename(yacco2::Parser* P);
+ public:
+ void sr2();
+ void sr3();
+};
+
+struct Rfilename_id:public yacco2::CAbs_lr1_sym {
+ Rfilename_id(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rnamespace_phrase:public yacco2::CAbs_lr1_sym {
+ Rnamespace_phrase(yacco2::Parser* P);
+ public:
+ void sr2();
+};
+
+struct Rnamespace:public yacco2::CAbs_lr1_sym {
+ Rnamespace(yacco2::Parser* P);
+ public:
+ void sr2();
+ void sr3();
+};
+
+struct Rnamespace_id:public yacco2::CAbs_lr1_sym {
+ Rnamespace_id(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rk_defs_phrase:public yacco2::CAbs_lr1_sym {
+ Rk_defs_phrase(yacco2::Parser* P);
+ public:
+};
+
+struct Rconstant_epi_defs:public yacco2::CAbs_lr1_sym {
+ Rconstant_epi_defs(yacco2::Parser* P);
+ public:
+};
+
+struct Rconstant_defs:public yacco2::CAbs_lr1_sym {
+ Rconstant_defs(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rconstant_defs_code:public yacco2::CAbs_lr1_sym {
+ Rconstant_defs_code(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Rclose_brace:public yacco2::CAbs_lr1_sym {
+ Rclose_brace(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rlint:public yacco2::CAbs_lr1_sym {
+ Rlint(yacco2::Parser* P);
+ public:
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/T_enum_phrase_th.lex b/web/yacco2/compiler/grammars/T_enum_phrase_th.lex
new file mode 100644
index 0000000000..ffa137a816
--- /dev/null
+++ b/web/yacco2/compiler/grammars/T_enum_phrase_th.lex
@@ -0,0 +1,264 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: T_enum_phrase_th.lex
+Dates: 22 Mar 2004
+Purpose: parse T-enumeration phrase
+Output: T_enum_phrase
+*/
+/@
+@i "/yacco2/copyright.w"
+@** |T_enum_phrase_th| Thread.\fbreak
+parse T-enumeration phrase.
+@/
+fsm
+(fsm-id "T_enum_phrase_th.lex"
+,fsm-filename T_enum_phrase_th
+,fsm-namespace NS_T_enum_phrase_th
+,fsm-class CT_enum_phrase_th{
+ user-prefix-declaration
+#include "lint_balls.h"
+#include "eol.h"
+#include "c_comments.h"
+#include "identifier.h"
+#include "c_string.h"
+#include "o2_sdc.h"
+ using namespace NS_yacco2_terminals;
+ ***
+ user-declaration
+ public:
+ T_enum_phrase* enum_phrase_;
+ ***
+ op
+ if(enum_phrase_ != 0){
+ delete enum_phrase_;
+ enum_phrase_ = 0;
+ }
+ enum_phrase_ = new T_enum_phrase;
+ enum_phrase_->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ AST* t = new AST(*enum_phrase_);
+ enum_phrase_->phrase_tree(t);
+ ***
+ constructor
+ enum_phrase_ = 0;
+ ***
+}
+,fsm-version "1.0",fsm-date "22 mar 2004",fsm-debug "false"
+,fsm-comments "Parse ``T-enumeration'' construct: Time out smell the tullips.")
+parallel-parser
+(
+ parallel-thread-function
+ TH_T_enum_phrase_th
+ ***
+ parallel-la-boundary
+ eolr
+ ***
+)
+@"/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+RT_enum_phrase (){
+ -> Rlint
+ Ropen_par
+ Rparameters
+ Rclose_par
+ Rlint
+ Rk_defs_phrase
+ Rlint {
+ op
+ CT_enum_phrase_th* fsm = (CT_enum_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ RSVP(fsm->enum_phrase_);
+ fsm->enum_phrase_ = 0;
+ ***
+ }
+}
+
+Ropen_par (){
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_open_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> "("
+}
+
+Rclose_par (){
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_close_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ")"
+}
+
+Rparameters (){
+ -> Rlint
+ Rfilename_phrase Rlint
+ Rnamespace_phrase Rlint
+}
+
+Rfilename_phrase (){
+ -> Rfilename Rlint Rfilename_id
+}
+
+Rfilename (){
+ -> ||| "#file-name" NS_identifier::TH_identifier
+ -> ||| |?| NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_filename_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_filename_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rfilename_id (){
+ -> ||| identifier NS_identifier::TH_identifier {
+ op
+ CT_enum_phrase_th* fsm = (CT_enum_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->enum_phrase_->filename_id(sf->p2__);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_filename_id_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rnamespace_phrase (){
+ -> "," Rlint Rnamespace Rlint Rnamespace_id
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_comma_present;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rnamespace (){
+ -> ||| "#name-space" NS_identifier::TH_identifier
+ -> ||| |?| NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_namespace_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_namespace_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rnamespace_id (){
+ -> ||| identifier NS_identifier::TH_identifier {
+ op
+ CT_enum_phrase_th* fsm = (CT_enum_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->enum_phrase_->namespace_id(sf->p2__);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_namespace_id_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rk_defs_phrase (){
+ -> "{" Rlint Rconstant_epi_defs Rlint Rclose_brace
+}
+
+Rconstant_epi_defs (){
+ -> Rconstant_defs Rconstant_defs_code
+ ->
+}
+Rconstant_defs (){
+ -> ||| "#constant-defs" NS_identifier::TH_identifier {
+ op
+ sf->p2__->set_auto_delete(true);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rconstant_defs_code (){
+ -> ||| "syntax-code" NS_o2_sdc::TH_o2_sdc {
+ op
+ CT_enum_phrase_th* fsm = (CT_enum_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->enum_phrase_->kdefs(sf->p2__);
+ ***
+ }
+ -> ||| |?| NULL {// error from syntax code thread
+ op
+ CAbs_lr1_sym* sym = new Err_no_kdefs_code_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ sf->p2__->set_auto_delete(true);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_kdefs_code_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rclose_brace (){
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_close_brace;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> "}"
+}
+
+Rlint (){
+ -> ||| lint NS_lint_balls::TH_lint_balls
+ ->
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/T_enum_phrase_thsym.cpp b/web/yacco2/compiler/grammars/T_enum_phrase_thsym.cpp
new file mode 100644
index 0000000000..a926305fc2
--- /dev/null
+++ b/web/yacco2/compiler/grammars/T_enum_phrase_thsym.cpp
@@ -0,0 +1,500 @@
+/*
+ File: T_enum_phrase_thsym.cpp
+ Date and Time: Fri Jan 30 18:55:26 2015
+*/
+#include "T_enum_phrase_th.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_T_enum_phrase_th;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_T_enum_phrase_th::TH_T_enum_phrase_th(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_T_enum_phrase_th;
+ NS_T_enum_phrase_th::CT_enum_phrase_th CT_enum_phrase_th_;// parallel-parser's parse table
+#define ssPARSE_TABLE CT_enum_phrase_th_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_T_enum_phrase_th::PROC_TH_T_enum_phrase_th(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_T_enum_phrase_th";
+ static bool one_time(false);
+ static NS_T_enum_phrase_th::CT_enum_phrase_th* NS_T_enum_phrase_th_CT_enum_phrase_th_(0);// parallel-parser's fsm table
+ static Parser* NS_T_enum_phrase_th_CT_enum_phrase_th_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_T_enum_phrase_th_CT_enum_phrase_th_ = new NS_T_enum_phrase_th::CT_enum_phrase_th();// parallel-parser's fsm table
+ NS_T_enum_phrase_th_CT_enum_phrase_th_parser = new Parser(*NS_T_enum_phrase_th_CT_enum_phrase_th_,Caller_pp);
+ }
+ proc_parser = NS_T_enum_phrase_th_CT_enum_phrase_th_parser;
+#include "wproc_pp_core.h"
+}
+void
+CT_enum_phrase_th::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_RT_enum_phrase_:{
+ RT_enum_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new RT_enum_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RT_enum_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 7;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Ropen_par_:{
+ Ropen_par* sym;
+ if(re->rule_ == 0){
+ sym = new Ropen_par(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ropen_par*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Ropen_par_:{
+ Ropen_par* sym;
+ if(re->rule_ == 0){
+ sym = new Ropen_par(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ropen_par*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rclose_par_:{
+ Rclose_par* sym;
+ if(re->rule_ == 0){
+ sym = new Rclose_par(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclose_par*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rclose_par_:{
+ Rclose_par* sym;
+ if(re->rule_ == 0){
+ sym = new Rclose_par(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclose_par*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rparameters_:{
+ Rparameters* sym;
+ if(re->rule_ == 0){
+ sym = new Rparameters(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rparameters*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ return;}
+ case rhs1_Rfilename_phrase_:{
+ Rfilename_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rfilename_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfilename_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ return;}
+ case rhs1_Rfilename_:{
+ Rfilename* sym;
+ if(re->rule_ == 0){
+ sym = new Rfilename(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfilename*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rfilename_:{
+ Rfilename* sym;
+ if(re->rule_ == 0){
+ sym = new Rfilename(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfilename*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rfilename_:{
+ Rfilename* sym;
+ if(re->rule_ == 0){
+ sym = new Rfilename(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfilename*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rfilename_id_:{
+ Rfilename_id* sym;
+ if(re->rule_ == 0){
+ sym = new Rfilename_id(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfilename_id*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rfilename_id_:{
+ Rfilename_id* sym;
+ if(re->rule_ == 0){
+ sym = new Rfilename_id(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfilename_id*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rnamespace_phrase_:{
+ Rnamespace_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ return;}
+ case rhs2_Rnamespace_phrase_:{
+ Rnamespace_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rnamespace_:{
+ Rnamespace* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rnamespace_:{
+ Rnamespace* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rnamespace_:{
+ Rnamespace* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rnamespace_id_:{
+ Rnamespace_id* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace_id(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace_id*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rnamespace_id_:{
+ Rnamespace_id* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace_id(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace_id*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rk_defs_phrase_:{
+ Rk_defs_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rk_defs_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rk_defs_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ return;}
+ case rhs1_Rconstant_epi_defs_:{
+ Rconstant_epi_defs* sym;
+ if(re->rule_ == 0){
+ sym = new Rconstant_epi_defs(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rconstant_epi_defs*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rconstant_epi_defs_:{
+ Rconstant_epi_defs* sym;
+ if(re->rule_ == 0){
+ sym = new Rconstant_epi_defs(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rconstant_epi_defs*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs1_Rconstant_defs_:{
+ Rconstant_defs* sym;
+ if(re->rule_ == 0){
+ sym = new Rconstant_defs(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rconstant_defs*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rconstant_defs_:{
+ Rconstant_defs* sym;
+ if(re->rule_ == 0){
+ sym = new Rconstant_defs(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rconstant_defs*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rconstant_defs_code_:{
+ Rconstant_defs_code* sym;
+ if(re->rule_ == 0){
+ sym = new Rconstant_defs_code(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rconstant_defs_code*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rconstant_defs_code_:{
+ Rconstant_defs_code* sym;
+ if(re->rule_ == 0){
+ sym = new Rconstant_defs_code(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rconstant_defs_code*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rconstant_defs_code_:{
+ Rconstant_defs_code* sym;
+ if(re->rule_ == 0){
+ sym = new Rconstant_defs_code(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rconstant_defs_code*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rclose_brace_:{
+ Rclose_brace* sym;
+ if(re->rule_ == 0){
+ sym = new Rclose_brace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclose_brace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rclose_brace_:{
+ Rclose_brace* sym;
+ if(re->rule_ == 0){
+ sym = new Rclose_brace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclose_brace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rlint_:{
+ Rlint* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rlint_:{
+ Rlint* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/T_enum_phrase_thtbl.cpp b/web/yacco2/compiler/grammars/T_enum_phrase_thtbl.cpp
new file mode 100644
index 0000000000..bda9c8bb03
--- /dev/null
+++ b/web/yacco2/compiler/grammars/T_enum_phrase_thtbl.cpp
@@ -0,0 +1,1249 @@
+/*
+ File: T_enum_phrase_thtbl.cpp
+ Date and Time: Fri Jan 30 18:55:26 2015
+*/
+#include "T_enum_phrase_th.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_T_enum_phrase_th;// grammar's ns
+// first set terminals
+// LR1_eolr
+yacco2::UCHAR LA1_CT_enum_phrase_th[] ={
+1
+,0,4
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+yacco2::UCHAR LA2_CT_enum_phrase_th[] ={
+1
+,0,17
+};
+// raw_open_brace
+yacco2::UCHAR LA3_CT_enum_phrase_th[] ={
+1
+,16,8
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+// raw_close_brace
+yacco2::UCHAR LA4_CT_enum_phrase_th[] ={
+2
+,0,17
+,16,32
+};
+// LR1_questionable_shift_operator
+// raw_close_brace
+yacco2::UCHAR LA5_CT_enum_phrase_th[] ={
+2
+,0,1
+,16,32
+};
+// LR1_questionable_shift_operator
+// raw_comma
+yacco2::UCHAR LA6_CT_enum_phrase_th[] ={
+2
+,0,1
+,6,16
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+// raw_close_bracket
+yacco2::UCHAR LA7_CT_enum_phrase_th[] ={
+2
+,0,17
+,6,2
+};
+// LR1_questionable_shift_operator
+// raw_close_bracket
+yacco2::UCHAR LA8_CT_enum_phrase_th[] ={
+2
+,0,1
+,6,2
+};
+// LR1_reduce_operator
+// raw_open_brace
+yacco2::UCHAR LA9_CT_enum_phrase_th[] ={
+2
+,0,16
+,16,8
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+// raw_comma
+yacco2::UCHAR LA10_CT_enum_phrase_th[] ={
+2
+,0,17
+,6,16
+};
+extern yacco2::State S1_CT_enum_phrase_th;
+extern yacco2::State S2_CT_enum_phrase_th;
+struct S2ttd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S2ttd_CT_enum_phrase_th S2tt_CT_enum_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_lint_balls
+};
+extern yacco2::State S3_CT_enum_phrase_th;
+extern yacco2::State S4_CT_enum_phrase_th;
+extern yacco2::State S5_CT_enum_phrase_th;
+extern yacco2::State S6_CT_enum_phrase_th;
+extern yacco2::State S7_CT_enum_phrase_th;
+extern yacco2::State S8_CT_enum_phrase_th;
+extern yacco2::State S9_CT_enum_phrase_th;
+extern yacco2::State S10_CT_enum_phrase_th;
+extern yacco2::State S11_CT_enum_phrase_th;
+extern yacco2::State S12_CT_enum_phrase_th;
+extern yacco2::State S13_CT_enum_phrase_th;
+extern yacco2::State S14_CT_enum_phrase_th;
+extern yacco2::State S15_CT_enum_phrase_th;
+extern yacco2::State S16_CT_enum_phrase_th;
+extern yacco2::State S17_CT_enum_phrase_th;
+extern yacco2::State S18_CT_enum_phrase_th;
+extern yacco2::State S19_CT_enum_phrase_th;
+extern yacco2::State S20_CT_enum_phrase_th;
+extern yacco2::State S21_CT_enum_phrase_th;
+extern yacco2::State S22_CT_enum_phrase_th;
+extern yacco2::State S23_CT_enum_phrase_th;
+extern yacco2::State S24_CT_enum_phrase_th;
+extern yacco2::State S25_CT_enum_phrase_th;
+extern yacco2::State S26_CT_enum_phrase_th;
+extern yacco2::State S27_CT_enum_phrase_th;
+extern yacco2::State S28_CT_enum_phrase_th;
+extern yacco2::State S29_CT_enum_phrase_th;
+struct S29ttd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S29ttd_CT_enum_phrase_th S29tt_CT_enum_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S30_CT_enum_phrase_th;
+extern yacco2::State S31_CT_enum_phrase_th;
+extern yacco2::State S32_CT_enum_phrase_th;
+extern yacco2::State S33_CT_enum_phrase_th;
+extern yacco2::State S34_CT_enum_phrase_th;
+extern yacco2::State S35_CT_enum_phrase_th;
+extern yacco2::State S36_CT_enum_phrase_th;
+struct S36ttd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S36ttd_CT_enum_phrase_th S36tt_CT_enum_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S37_CT_enum_phrase_th;
+extern yacco2::State S38_CT_enum_phrase_th;
+extern yacco2::State S39_CT_enum_phrase_th;
+extern yacco2::State S40_CT_enum_phrase_th;
+extern yacco2::State S41_CT_enum_phrase_th;
+struct S41ttd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S41ttd_CT_enum_phrase_th S41tt_CT_enum_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_o2_sdc
+};
+extern yacco2::State S42_CT_enum_phrase_th;
+extern yacco2::State S43_CT_enum_phrase_th;
+extern yacco2::State S44_CT_enum_phrase_th;
+extern yacco2::State S45_CT_enum_phrase_th;
+extern yacco2::State S46_CT_enum_phrase_th;
+struct S46ttd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S46ttd_CT_enum_phrase_th S46tt_CT_enum_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S47_CT_enum_phrase_th;
+extern yacco2::State S48_CT_enum_phrase_th;
+extern yacco2::State S49_CT_enum_phrase_th;
+extern yacco2::State S50_CT_enum_phrase_th;
+extern yacco2::State S51_CT_enum_phrase_th;
+extern yacco2::State S52_CT_enum_phrase_th;
+struct S52ttd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S52ttd_CT_enum_phrase_th S52tt_CT_enum_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S53_CT_enum_phrase_th;
+extern yacco2::State S54_CT_enum_phrase_th;
+extern yacco2::State S55_CT_enum_phrase_th;
+extern yacco2::State S56_CT_enum_phrase_th;
+struct S56ttd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S56ttd_CT_enum_phrase_th S56tt_CT_enum_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S57_CT_enum_phrase_th;
+extern yacco2::State S58_CT_enum_phrase_th;
+struct S1std_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S1std_CT_enum_phrase_th S1st_CT_enum_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S2_CT_enum_phrase_th} // shift sym: LR1_parallel_operator
+ ,{569,(State*)&S1_CT_enum_phrase_th} // accept sym: RT_enum_phrase
+ ,{584,(State*)&S4_CT_enum_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S1pse_CT_enum_phrase_th = {3,(State*)&S2_CT_enum_phrase_th};
+struct S1rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S1rtd_CT_enum_phrase_th S1rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_CT_enum_phrase_th,CT_enum_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S1_CT_enum_phrase_th = //State's vectored into symbol: " No symbol"
+{1
+,(Shift_entry*)&S1pse_CT_enum_phrase_th,0,0,0,(Shift_tbl*)&S1st_CT_enum_phrase_th,(Reduce_tbl*)&S1rt_CT_enum_phrase_th,(State_s_thread_tbl*)&S2tt_CT_enum_phrase_th,0,0};
+struct S2std_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S2std_CT_enum_phrase_th S2st_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {375,(State*)&S3_CT_enum_phrase_th} // shift sym: T_lint
+ }// end of shift table
+};
+yacco2::State S2_CT_enum_phrase_th = //State's vectored into symbol: "|||"
+{2
+,0,0,0,0,(Shift_tbl*)&S2st_CT_enum_phrase_th,0,0,0,0};
+struct S3rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_CT_enum_phrase_th S3rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_CT_enum_phrase_th,CT_enum_phrase_th::rhs1_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S3_CT_enum_phrase_th = //State's vectored into symbol: "lint"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_CT_enum_phrase_th,0,0,0};
+struct S4std_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S4std_CT_enum_phrase_th S4st_CT_enum_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S18_CT_enum_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{48,(State*)&S19_CT_enum_phrase_th} // shift sym: raw_open_bracket
+ ,{570,(State*)&S5_CT_enum_phrase_th} // shift sym: Ropen_par
+ }// end of shift table
+};
+yacco2::Shift_entry S4qse_CT_enum_phrase_th = {0,(State*)&S18_CT_enum_phrase_th};
+yacco2::State S4_CT_enum_phrase_th = //State's vectored into symbol: "Rlint"
+{4
+,0,0,0,0,(Shift_tbl*)&S4st_CT_enum_phrase_th,0,0,0,(Shift_entry*)&S4qse_CT_enum_phrase_th
+};
+struct S5std_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S5std_CT_enum_phrase_th S5st_CT_enum_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S2_CT_enum_phrase_th} // shift sym: LR1_parallel_operator
+ ,{572,(State*)&S6_CT_enum_phrase_th} // shift sym: Rparameters
+ ,{584,(State*)&S20_CT_enum_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S5pse_CT_enum_phrase_th = {3,(State*)&S2_CT_enum_phrase_th};
+struct S5rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_CT_enum_phrase_th S5rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_CT_enum_phrase_th,CT_enum_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S5_CT_enum_phrase_th = //State's vectored into symbol: "Ropen_par"
+{5
+,(Shift_entry*)&S5pse_CT_enum_phrase_th,0,0,0,(Shift_tbl*)&S5st_CT_enum_phrase_th,(Reduce_tbl*)&S5rt_CT_enum_phrase_th,(State_s_thread_tbl*)&S2tt_CT_enum_phrase_th,0,0};
+struct S6std_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S6std_CT_enum_phrase_th S6st_CT_enum_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S34_CT_enum_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{49,(State*)&S35_CT_enum_phrase_th} // shift sym: raw_close_bracket
+ ,{571,(State*)&S7_CT_enum_phrase_th} // shift sym: Rclose_par
+ }// end of shift table
+};
+yacco2::Shift_entry S6qse_CT_enum_phrase_th = {0,(State*)&S34_CT_enum_phrase_th};
+yacco2::State S6_CT_enum_phrase_th = //State's vectored into symbol: "Rparameters"
+{6
+,0,0,0,0,(Shift_tbl*)&S6st_CT_enum_phrase_th,0,0,0,(Shift_entry*)&S6qse_CT_enum_phrase_th
+};
+struct S7std_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S7std_CT_enum_phrase_th S7st_CT_enum_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_CT_enum_phrase_th} // shift sym: LR1_parallel_operator
+ ,{584,(State*)&S8_CT_enum_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S7pse_CT_enum_phrase_th = {3,(State*)&S2_CT_enum_phrase_th};
+struct S7rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_CT_enum_phrase_th S7rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_CT_enum_phrase_th,CT_enum_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S7_CT_enum_phrase_th = //State's vectored into symbol: "Rclose_par"
+{7
+,(Shift_entry*)&S7pse_CT_enum_phrase_th,0,0,0,(Shift_tbl*)&S7st_CT_enum_phrase_th,(Reduce_tbl*)&S7rt_CT_enum_phrase_th,(State_s_thread_tbl*)&S2tt_CT_enum_phrase_th,0,0};
+struct S8std_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S8std_CT_enum_phrase_th S8st_CT_enum_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {131,(State*)&S9_CT_enum_phrase_th} // shift sym: raw_open_brace
+ ,{579,(State*)&S16_CT_enum_phrase_th} // shift sym: Rk_defs_phrase
+ }// end of shift table
+};
+yacco2::State S8_CT_enum_phrase_th = //State's vectored into symbol: "Rlint"
+{8
+,0,0,0,0,(Shift_tbl*)&S8st_CT_enum_phrase_th,0,0,0,0};
+struct S9std_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S9std_CT_enum_phrase_th S9st_CT_enum_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_CT_enum_phrase_th} // shift sym: LR1_parallel_operator
+ ,{584,(State*)&S10_CT_enum_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S9pse_CT_enum_phrase_th = {3,(State*)&S2_CT_enum_phrase_th};
+struct S9rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_CT_enum_phrase_th S9rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_CT_enum_phrase_th,CT_enum_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S9_CT_enum_phrase_th = //State's vectored into symbol: "{"
+{9
+,(Shift_entry*)&S9pse_CT_enum_phrase_th,0,0,0,(Shift_tbl*)&S9st_CT_enum_phrase_th,(Reduce_tbl*)&S9rt_CT_enum_phrase_th,(State_s_thread_tbl*)&S2tt_CT_enum_phrase_th,0,0};
+struct S10std_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S10std_CT_enum_phrase_th S10st_CT_enum_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S36_CT_enum_phrase_th} // shift sym: LR1_parallel_operator
+ ,{580,(State*)&S11_CT_enum_phrase_th} // shift sym: Rconstant_epi_defs
+ ,{581,(State*)&S39_CT_enum_phrase_th} // shift sym: Rconstant_defs
+ }// end of shift table
+};
+yacco2::Shift_entry S10pse_CT_enum_phrase_th = {3,(State*)&S36_CT_enum_phrase_th};
+struct S10rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S10rtd_CT_enum_phrase_th S10rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_CT_enum_phrase_th,CT_enum_phrase_th::rhs2_Rconstant_epi_defs_}
+ }// end of reduce table
+};
+yacco2::State S10_CT_enum_phrase_th = //State's vectored into symbol: "Rlint"
+{10
+,(Shift_entry*)&S10pse_CT_enum_phrase_th,0,0,0,(Shift_tbl*)&S10st_CT_enum_phrase_th,(Reduce_tbl*)&S10rt_CT_enum_phrase_th,(State_s_thread_tbl*)&S36tt_CT_enum_phrase_th,0,0};
+struct S11std_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S11std_CT_enum_phrase_th S11st_CT_enum_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_CT_enum_phrase_th} // shift sym: LR1_parallel_operator
+ ,{584,(State*)&S12_CT_enum_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S11pse_CT_enum_phrase_th = {3,(State*)&S2_CT_enum_phrase_th};
+struct S11rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_CT_enum_phrase_th S11rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_CT_enum_phrase_th,CT_enum_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S11_CT_enum_phrase_th = //State's vectored into symbol: "Rconstant_epi_defs"
+{11
+,(Shift_entry*)&S11pse_CT_enum_phrase_th,0,0,0,(Shift_tbl*)&S11st_CT_enum_phrase_th,(Reduce_tbl*)&S11rt_CT_enum_phrase_th,(State_s_thread_tbl*)&S2tt_CT_enum_phrase_th,0,0};
+struct S12std_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S12std_CT_enum_phrase_th S12st_CT_enum_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S13_CT_enum_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{133,(State*)&S14_CT_enum_phrase_th} // shift sym: raw_close_brace
+ ,{583,(State*)&S15_CT_enum_phrase_th} // shift sym: Rclose_brace
+ }// end of shift table
+};
+yacco2::Shift_entry S12qse_CT_enum_phrase_th = {0,(State*)&S13_CT_enum_phrase_th};
+yacco2::State S12_CT_enum_phrase_th = //State's vectored into symbol: "Rlint"
+{12
+,0,0,0,0,(Shift_tbl*)&S12st_CT_enum_phrase_th,0,0,0,(Shift_entry*)&S12qse_CT_enum_phrase_th
+};
+struct S13rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S13rtd_CT_enum_phrase_th S13rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_CT_enum_phrase_th,CT_enum_phrase_th::rhs1_Rclose_brace_}
+ }// end of reduce table
+};
+yacco2::State S13_CT_enum_phrase_th = //State's vectored into symbol: "|?|"
+{13
+,0,0,0,0,0,(Reduce_tbl*)&S13rt_CT_enum_phrase_th,0,0,0};
+struct S14rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S14rtd_CT_enum_phrase_th S14rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_CT_enum_phrase_th,CT_enum_phrase_th::rhs2_Rclose_brace_}
+ }// end of reduce table
+};
+yacco2::State S14_CT_enum_phrase_th = //State's vectored into symbol: "}"
+{14
+,0,0,0,0,0,(Reduce_tbl*)&S14rt_CT_enum_phrase_th,0,0,0};
+struct S15rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S15rtd_CT_enum_phrase_th S15rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_CT_enum_phrase_th,CT_enum_phrase_th::rhs1_Rk_defs_phrase_}
+ }// end of reduce table
+};
+yacco2::State S15_CT_enum_phrase_th = //State's vectored into symbol: "Rclose_brace"
+{15
+,0,0,0,0,0,(Reduce_tbl*)&S15rt_CT_enum_phrase_th,0,0,0};
+struct S16std_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S16std_CT_enum_phrase_th S16st_CT_enum_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_CT_enum_phrase_th} // shift sym: LR1_parallel_operator
+ ,{584,(State*)&S17_CT_enum_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S16pse_CT_enum_phrase_th = {3,(State*)&S2_CT_enum_phrase_th};
+struct S16rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S16rtd_CT_enum_phrase_th S16rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_CT_enum_phrase_th,CT_enum_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S16_CT_enum_phrase_th = //State's vectored into symbol: "Rk_defs_phrase"
+{16
+,(Shift_entry*)&S16pse_CT_enum_phrase_th,0,0,0,(Shift_tbl*)&S16st_CT_enum_phrase_th,(Reduce_tbl*)&S16rt_CT_enum_phrase_th,(State_s_thread_tbl*)&S2tt_CT_enum_phrase_th,0,0};
+struct S17rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S17rtd_CT_enum_phrase_th S17rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_CT_enum_phrase_th,CT_enum_phrase_th::rhs1_RT_enum_phrase_}
+ }// end of reduce table
+};
+yacco2::State S17_CT_enum_phrase_th = //State's vectored into symbol: "Rlint"
+{17
+,0,0,0,0,0,(Reduce_tbl*)&S17rt_CT_enum_phrase_th,0,0,0};
+struct S18rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S18rtd_CT_enum_phrase_th S18rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_CT_enum_phrase_th,CT_enum_phrase_th::rhs1_Ropen_par_}
+ }// end of reduce table
+};
+yacco2::State S18_CT_enum_phrase_th = //State's vectored into symbol: "|?|"
+{18
+,0,0,0,0,0,(Reduce_tbl*)&S18rt_CT_enum_phrase_th,0,0,0};
+struct S19rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S19rtd_CT_enum_phrase_th S19rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_CT_enum_phrase_th,CT_enum_phrase_th::rhs2_Ropen_par_}
+ }// end of reduce table
+};
+yacco2::State S19_CT_enum_phrase_th = //State's vectored into symbol: "("
+{19
+,0,0,0,0,0,(Reduce_tbl*)&S19rt_CT_enum_phrase_th,0,0,0};
+struct S20std_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S20std_CT_enum_phrase_th S20st_CT_enum_phrase_th = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S45_CT_enum_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S46_CT_enum_phrase_th} // shift sym: LR1_parallel_operator
+ ,{573,(State*)&S21_CT_enum_phrase_th} // shift sym: Rfilename_phrase
+ ,{574,(State*)&S49_CT_enum_phrase_th} // shift sym: Rfilename
+ }// end of shift table
+};
+yacco2::Shift_entry S20pse_CT_enum_phrase_th = {3,(State*)&S46_CT_enum_phrase_th};
+yacco2::Shift_entry S20qse_CT_enum_phrase_th = {0,(State*)&S45_CT_enum_phrase_th};
+yacco2::State S20_CT_enum_phrase_th = //State's vectored into symbol: "Rlint"
+{20
+,(Shift_entry*)&S20pse_CT_enum_phrase_th,0,0,0,(Shift_tbl*)&S20st_CT_enum_phrase_th,0,(State_s_thread_tbl*)&S46tt_CT_enum_phrase_th,0,(Shift_entry*)&S20qse_CT_enum_phrase_th
+};
+struct S21std_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S21std_CT_enum_phrase_th S21st_CT_enum_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_CT_enum_phrase_th} // shift sym: LR1_parallel_operator
+ ,{584,(State*)&S22_CT_enum_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S21pse_CT_enum_phrase_th = {3,(State*)&S2_CT_enum_phrase_th};
+struct S21rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S21rtd_CT_enum_phrase_th S21rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_CT_enum_phrase_th,CT_enum_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S21_CT_enum_phrase_th = //State's vectored into symbol: "Rfilename_phrase"
+{21
+,(Shift_entry*)&S21pse_CT_enum_phrase_th,0,0,0,(Shift_tbl*)&S21st_CT_enum_phrase_th,(Reduce_tbl*)&S21rt_CT_enum_phrase_th,(State_s_thread_tbl*)&S2tt_CT_enum_phrase_th,0,0};
+struct S22std_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S22std_CT_enum_phrase_th S22st_CT_enum_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S23_CT_enum_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{52,(State*)&S24_CT_enum_phrase_th} // shift sym: raw_comma
+ ,{576,(State*)&S32_CT_enum_phrase_th} // shift sym: Rnamespace_phrase
+ }// end of shift table
+};
+yacco2::Shift_entry S22qse_CT_enum_phrase_th = {0,(State*)&S23_CT_enum_phrase_th};
+yacco2::State S22_CT_enum_phrase_th = //State's vectored into symbol: "Rlint"
+{22
+,0,0,0,0,(Shift_tbl*)&S22st_CT_enum_phrase_th,0,0,0,(Shift_entry*)&S22qse_CT_enum_phrase_th
+};
+struct S23rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S23rtd_CT_enum_phrase_th S23rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_CT_enum_phrase_th,CT_enum_phrase_th::rhs2_Rnamespace_phrase_}
+ }// end of reduce table
+};
+yacco2::State S23_CT_enum_phrase_th = //State's vectored into symbol: "|?|"
+{23
+,0,0,0,0,0,(Reduce_tbl*)&S23rt_CT_enum_phrase_th,0,0,0};
+struct S24std_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S24std_CT_enum_phrase_th S24st_CT_enum_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_CT_enum_phrase_th} // shift sym: LR1_parallel_operator
+ ,{584,(State*)&S25_CT_enum_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S24pse_CT_enum_phrase_th = {3,(State*)&S2_CT_enum_phrase_th};
+struct S24rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S24rtd_CT_enum_phrase_th S24rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_CT_enum_phrase_th,CT_enum_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S24_CT_enum_phrase_th = //State's vectored into symbol: ","
+{24
+,(Shift_entry*)&S24pse_CT_enum_phrase_th,0,0,0,(Shift_tbl*)&S24st_CT_enum_phrase_th,(Reduce_tbl*)&S24rt_CT_enum_phrase_th,(State_s_thread_tbl*)&S2tt_CT_enum_phrase_th,0,0};
+struct S25std_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S25std_CT_enum_phrase_th S25st_CT_enum_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S55_CT_enum_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S56_CT_enum_phrase_th} // shift sym: LR1_parallel_operator
+ ,{577,(State*)&S26_CT_enum_phrase_th} // shift sym: Rnamespace
+ }// end of shift table
+};
+yacco2::Shift_entry S25pse_CT_enum_phrase_th = {3,(State*)&S56_CT_enum_phrase_th};
+yacco2::Shift_entry S25qse_CT_enum_phrase_th = {0,(State*)&S55_CT_enum_phrase_th};
+yacco2::State S25_CT_enum_phrase_th = //State's vectored into symbol: "Rlint"
+{25
+,(Shift_entry*)&S25pse_CT_enum_phrase_th,0,0,0,(Shift_tbl*)&S25st_CT_enum_phrase_th,0,(State_s_thread_tbl*)&S56tt_CT_enum_phrase_th,0,(Shift_entry*)&S25qse_CT_enum_phrase_th
+};
+struct S26std_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S26std_CT_enum_phrase_th S26st_CT_enum_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_CT_enum_phrase_th} // shift sym: LR1_parallel_operator
+ ,{584,(State*)&S27_CT_enum_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S26pse_CT_enum_phrase_th = {3,(State*)&S2_CT_enum_phrase_th};
+struct S26rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S26rtd_CT_enum_phrase_th S26rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_CT_enum_phrase_th,CT_enum_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S26_CT_enum_phrase_th = //State's vectored into symbol: "Rnamespace"
+{26
+,(Shift_entry*)&S26pse_CT_enum_phrase_th,0,0,0,(Shift_tbl*)&S26st_CT_enum_phrase_th,(Reduce_tbl*)&S26rt_CT_enum_phrase_th,(State_s_thread_tbl*)&S2tt_CT_enum_phrase_th,0,0};
+struct S27std_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S27std_CT_enum_phrase_th S27st_CT_enum_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S28_CT_enum_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S29_CT_enum_phrase_th} // shift sym: LR1_parallel_operator
+ ,{578,(State*)&S31_CT_enum_phrase_th} // shift sym: Rnamespace_id
+ }// end of shift table
+};
+yacco2::Shift_entry S27pse_CT_enum_phrase_th = {3,(State*)&S29_CT_enum_phrase_th};
+yacco2::Shift_entry S27qse_CT_enum_phrase_th = {0,(State*)&S28_CT_enum_phrase_th};
+yacco2::State S27_CT_enum_phrase_th = //State's vectored into symbol: "Rlint"
+{27
+,(Shift_entry*)&S27pse_CT_enum_phrase_th,0,0,0,(Shift_tbl*)&S27st_CT_enum_phrase_th,0,(State_s_thread_tbl*)&S29tt_CT_enum_phrase_th,0,(Shift_entry*)&S27qse_CT_enum_phrase_th
+};
+struct S28rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S28rtd_CT_enum_phrase_th S28rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_CT_enum_phrase_th,CT_enum_phrase_th::rhs2_Rnamespace_id_}
+ }// end of reduce table
+};
+yacco2::State S28_CT_enum_phrase_th = //State's vectored into symbol: "|?|"
+{28
+,0,0,0,0,0,(Reduce_tbl*)&S28rt_CT_enum_phrase_th,0,0,0};
+struct S29std_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S29std_CT_enum_phrase_th S29st_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {279,(State*)&S30_CT_enum_phrase_th} // shift sym: T_identifier
+ }// end of shift table
+};
+yacco2::State S29_CT_enum_phrase_th = //State's vectored into symbol: "|||"
+{29
+,0,0,0,0,(Shift_tbl*)&S29st_CT_enum_phrase_th,0,0,0,0};
+struct S30rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S30rtd_CT_enum_phrase_th S30rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_CT_enum_phrase_th,CT_enum_phrase_th::rhs1_Rnamespace_id_}
+ }// end of reduce table
+};
+yacco2::State S30_CT_enum_phrase_th = //State's vectored into symbol: "identifier"
+{30
+,0,0,0,0,0,(Reduce_tbl*)&S30rt_CT_enum_phrase_th,0,0,0};
+struct S31rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S31rtd_CT_enum_phrase_th S31rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_CT_enum_phrase_th,CT_enum_phrase_th::rhs1_Rnamespace_phrase_}
+ }// end of reduce table
+};
+yacco2::State S31_CT_enum_phrase_th = //State's vectored into symbol: "Rnamespace_id"
+{31
+,0,0,0,0,0,(Reduce_tbl*)&S31rt_CT_enum_phrase_th,0,0,0};
+struct S32std_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S32std_CT_enum_phrase_th S32st_CT_enum_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_CT_enum_phrase_th} // shift sym: LR1_parallel_operator
+ ,{584,(State*)&S33_CT_enum_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S32pse_CT_enum_phrase_th = {3,(State*)&S2_CT_enum_phrase_th};
+struct S32rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S32rtd_CT_enum_phrase_th S32rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA8_CT_enum_phrase_th,CT_enum_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S32_CT_enum_phrase_th = //State's vectored into symbol: "Rnamespace_phrase"
+{32
+,(Shift_entry*)&S32pse_CT_enum_phrase_th,0,0,0,(Shift_tbl*)&S32st_CT_enum_phrase_th,(Reduce_tbl*)&S32rt_CT_enum_phrase_th,(State_s_thread_tbl*)&S2tt_CT_enum_phrase_th,0,0};
+struct S33rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S33rtd_CT_enum_phrase_th S33rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA8_CT_enum_phrase_th,CT_enum_phrase_th::rhs1_Rparameters_}
+ }// end of reduce table
+};
+yacco2::State S33_CT_enum_phrase_th = //State's vectored into symbol: "Rlint"
+{33
+,0,0,0,0,0,(Reduce_tbl*)&S33rt_CT_enum_phrase_th,0,0,0};
+struct S34rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S34rtd_CT_enum_phrase_th S34rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA9_CT_enum_phrase_th,CT_enum_phrase_th::rhs1_Rclose_par_}
+ }// end of reduce table
+};
+yacco2::State S34_CT_enum_phrase_th = //State's vectored into symbol: "|?|"
+{34
+,0,0,0,0,0,(Reduce_tbl*)&S34rt_CT_enum_phrase_th,0,0,0};
+struct S35rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S35rtd_CT_enum_phrase_th S35rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA9_CT_enum_phrase_th,CT_enum_phrase_th::rhs2_Rclose_par_}
+ }// end of reduce table
+};
+yacco2::State S35_CT_enum_phrase_th = //State's vectored into symbol: ")"
+{35
+,0,0,0,0,0,(Reduce_tbl*)&S35rt_CT_enum_phrase_th,0,0,0};
+struct S36std_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S36std_CT_enum_phrase_th S36st_CT_enum_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S37_CT_enum_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{318,(State*)&S38_CT_enum_phrase_th} // shift sym: T_constant_defs
+ }// end of shift table
+};
+yacco2::Shift_entry S36qse_CT_enum_phrase_th = {0,(State*)&S37_CT_enum_phrase_th};
+yacco2::State S36_CT_enum_phrase_th = //State's vectored into symbol: "|||"
+{36
+,0,0,0,0,(Shift_tbl*)&S36st_CT_enum_phrase_th,0,0,0,(Shift_entry*)&S36qse_CT_enum_phrase_th
+};
+struct S37rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S37rtd_CT_enum_phrase_th S37rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_CT_enum_phrase_th,CT_enum_phrase_th::rhs2_Rconstant_defs_}
+ }// end of reduce table
+};
+yacco2::State S37_CT_enum_phrase_th = //State's vectored into symbol: "|?|"
+{37
+,0,0,0,0,0,(Reduce_tbl*)&S37rt_CT_enum_phrase_th,0,0,0};
+struct S38rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S38rtd_CT_enum_phrase_th S38rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_CT_enum_phrase_th,CT_enum_phrase_th::rhs1_Rconstant_defs_}
+ }// end of reduce table
+};
+yacco2::State S38_CT_enum_phrase_th = //State's vectored into symbol: "#constant-defs"
+{38
+,0,0,0,0,0,(Reduce_tbl*)&S38rt_CT_enum_phrase_th,0,0,0};
+struct S39std_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S39std_CT_enum_phrase_th S39st_CT_enum_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S40_CT_enum_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S41_CT_enum_phrase_th} // shift sym: LR1_parallel_operator
+ ,{582,(State*)&S44_CT_enum_phrase_th} // shift sym: Rconstant_defs_code
+ }// end of shift table
+};
+yacco2::Shift_entry S39pse_CT_enum_phrase_th = {3,(State*)&S41_CT_enum_phrase_th};
+yacco2::Shift_entry S39qse_CT_enum_phrase_th = {0,(State*)&S40_CT_enum_phrase_th};
+yacco2::State S39_CT_enum_phrase_th = //State's vectored into symbol: "Rconstant_defs"
+{39
+,(Shift_entry*)&S39pse_CT_enum_phrase_th,0,0,0,(Shift_tbl*)&S39st_CT_enum_phrase_th,0,(State_s_thread_tbl*)&S41tt_CT_enum_phrase_th,0,(Shift_entry*)&S39qse_CT_enum_phrase_th
+};
+struct S40rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S40rtd_CT_enum_phrase_th S40rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_CT_enum_phrase_th,CT_enum_phrase_th::rhs3_Rconstant_defs_code_}
+ }// end of reduce table
+};
+yacco2::State S40_CT_enum_phrase_th = //State's vectored into symbol: "|?|"
+{40
+,0,0,0,0,0,(Reduce_tbl*)&S40rt_CT_enum_phrase_th,0,0,0};
+struct S41std_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S41std_CT_enum_phrase_th S41st_CT_enum_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S42_CT_enum_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{326,(State*)&S43_CT_enum_phrase_th} // shift sym: T_syntax_code
+ }// end of shift table
+};
+yacco2::Shift_entry S41qse_CT_enum_phrase_th = {0,(State*)&S42_CT_enum_phrase_th};
+yacco2::State S41_CT_enum_phrase_th = //State's vectored into symbol: "|||"
+{41
+,0,0,0,0,(Shift_tbl*)&S41st_CT_enum_phrase_th,0,0,0,(Shift_entry*)&S41qse_CT_enum_phrase_th
+};
+struct S42rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S42rtd_CT_enum_phrase_th S42rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_CT_enum_phrase_th,CT_enum_phrase_th::rhs2_Rconstant_defs_code_}
+ }// end of reduce table
+};
+yacco2::State S42_CT_enum_phrase_th = //State's vectored into symbol: "|?|"
+{42
+,0,0,0,0,0,(Reduce_tbl*)&S42rt_CT_enum_phrase_th,0,0,0};
+struct S43rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S43rtd_CT_enum_phrase_th S43rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_CT_enum_phrase_th,CT_enum_phrase_th::rhs1_Rconstant_defs_code_}
+ }// end of reduce table
+};
+yacco2::State S43_CT_enum_phrase_th = //State's vectored into symbol: "syntax-code"
+{43
+,0,0,0,0,0,(Reduce_tbl*)&S43rt_CT_enum_phrase_th,0,0,0};
+struct S44rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S44rtd_CT_enum_phrase_th S44rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_CT_enum_phrase_th,CT_enum_phrase_th::rhs1_Rconstant_epi_defs_}
+ }// end of reduce table
+};
+yacco2::State S44_CT_enum_phrase_th = //State's vectored into symbol: "Rconstant_defs_code"
+{44
+,0,0,0,0,0,(Reduce_tbl*)&S44rt_CT_enum_phrase_th,0,0,0};
+struct S45rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S45rtd_CT_enum_phrase_th S45rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_CT_enum_phrase_th,CT_enum_phrase_th::rhs3_Rfilename_}
+ }// end of reduce table
+};
+yacco2::State S45_CT_enum_phrase_th = //State's vectored into symbol: "|?|"
+{45
+,0,0,0,0,0,(Reduce_tbl*)&S45rt_CT_enum_phrase_th,0,0,0};
+struct S46std_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S46std_CT_enum_phrase_th S46st_CT_enum_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S47_CT_enum_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{303,(State*)&S48_CT_enum_phrase_th} // shift sym: T_file_name
+ }// end of shift table
+};
+yacco2::Shift_entry S46qse_CT_enum_phrase_th = {0,(State*)&S47_CT_enum_phrase_th};
+yacco2::State S46_CT_enum_phrase_th = //State's vectored into symbol: "|||"
+{46
+,0,0,0,0,(Shift_tbl*)&S46st_CT_enum_phrase_th,0,0,0,(Shift_entry*)&S46qse_CT_enum_phrase_th
+};
+struct S47rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S47rtd_CT_enum_phrase_th S47rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_CT_enum_phrase_th,CT_enum_phrase_th::rhs2_Rfilename_}
+ }// end of reduce table
+};
+yacco2::State S47_CT_enum_phrase_th = //State's vectored into symbol: "|?|"
+{47
+,0,0,0,0,0,(Reduce_tbl*)&S47rt_CT_enum_phrase_th,0,0,0};
+struct S48rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S48rtd_CT_enum_phrase_th S48rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_CT_enum_phrase_th,CT_enum_phrase_th::rhs1_Rfilename_}
+ }// end of reduce table
+};
+yacco2::State S48_CT_enum_phrase_th = //State's vectored into symbol: "#file-name"
+{48
+,0,0,0,0,0,(Reduce_tbl*)&S48rt_CT_enum_phrase_th,0,0,0};
+struct S49std_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S49std_CT_enum_phrase_th S49st_CT_enum_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_CT_enum_phrase_th} // shift sym: LR1_parallel_operator
+ ,{584,(State*)&S50_CT_enum_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S49pse_CT_enum_phrase_th = {3,(State*)&S2_CT_enum_phrase_th};
+struct S49rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S49rtd_CT_enum_phrase_th S49rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_CT_enum_phrase_th,CT_enum_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S49_CT_enum_phrase_th = //State's vectored into symbol: "Rfilename"
+{49
+,(Shift_entry*)&S49pse_CT_enum_phrase_th,0,0,0,(Shift_tbl*)&S49st_CT_enum_phrase_th,(Reduce_tbl*)&S49rt_CT_enum_phrase_th,(State_s_thread_tbl*)&S2tt_CT_enum_phrase_th,0,0};
+struct S50std_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S50std_CT_enum_phrase_th S50st_CT_enum_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S51_CT_enum_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S52_CT_enum_phrase_th} // shift sym: LR1_parallel_operator
+ ,{575,(State*)&S54_CT_enum_phrase_th} // shift sym: Rfilename_id
+ }// end of shift table
+};
+yacco2::Shift_entry S50pse_CT_enum_phrase_th = {3,(State*)&S52_CT_enum_phrase_th};
+yacco2::Shift_entry S50qse_CT_enum_phrase_th = {0,(State*)&S51_CT_enum_phrase_th};
+yacco2::State S50_CT_enum_phrase_th = //State's vectored into symbol: "Rlint"
+{50
+,(Shift_entry*)&S50pse_CT_enum_phrase_th,0,0,0,(Shift_tbl*)&S50st_CT_enum_phrase_th,0,(State_s_thread_tbl*)&S52tt_CT_enum_phrase_th,0,(Shift_entry*)&S50qse_CT_enum_phrase_th
+};
+struct S51rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S51rtd_CT_enum_phrase_th S51rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA10_CT_enum_phrase_th,CT_enum_phrase_th::rhs2_Rfilename_id_}
+ }// end of reduce table
+};
+yacco2::State S51_CT_enum_phrase_th = //State's vectored into symbol: "|?|"
+{51
+,0,0,0,0,0,(Reduce_tbl*)&S51rt_CT_enum_phrase_th,0,0,0};
+struct S52std_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S52std_CT_enum_phrase_th S52st_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {279,(State*)&S53_CT_enum_phrase_th} // shift sym: T_identifier
+ }// end of shift table
+};
+yacco2::State S52_CT_enum_phrase_th = //State's vectored into symbol: "|||"
+{52
+,0,0,0,0,(Shift_tbl*)&S52st_CT_enum_phrase_th,0,0,0,0};
+struct S53rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S53rtd_CT_enum_phrase_th S53rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA10_CT_enum_phrase_th,CT_enum_phrase_th::rhs1_Rfilename_id_}
+ }// end of reduce table
+};
+yacco2::State S53_CT_enum_phrase_th = //State's vectored into symbol: "identifier"
+{53
+,0,0,0,0,0,(Reduce_tbl*)&S53rt_CT_enum_phrase_th,0,0,0};
+struct S54rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S54rtd_CT_enum_phrase_th S54rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA10_CT_enum_phrase_th,CT_enum_phrase_th::rhs1_Rfilename_phrase_}
+ }// end of reduce table
+};
+yacco2::State S54_CT_enum_phrase_th = //State's vectored into symbol: "Rfilename_id"
+{54
+,0,0,0,0,0,(Reduce_tbl*)&S54rt_CT_enum_phrase_th,0,0,0};
+struct S55rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S55rtd_CT_enum_phrase_th S55rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_CT_enum_phrase_th,CT_enum_phrase_th::rhs3_Rnamespace_}
+ }// end of reduce table
+};
+yacco2::State S55_CT_enum_phrase_th = //State's vectored into symbol: "|?|"
+{55
+,0,0,0,0,0,(Reduce_tbl*)&S55rt_CT_enum_phrase_th,0,0,0};
+struct S56std_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S56std_CT_enum_phrase_th S56st_CT_enum_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S57_CT_enum_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{304,(State*)&S58_CT_enum_phrase_th} // shift sym: T_name_space
+ }// end of shift table
+};
+yacco2::Shift_entry S56qse_CT_enum_phrase_th = {0,(State*)&S57_CT_enum_phrase_th};
+yacco2::State S56_CT_enum_phrase_th = //State's vectored into symbol: "|||"
+{56
+,0,0,0,0,(Shift_tbl*)&S56st_CT_enum_phrase_th,0,0,0,(Shift_entry*)&S56qse_CT_enum_phrase_th
+};
+struct S57rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S57rtd_CT_enum_phrase_th S57rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_CT_enum_phrase_th,CT_enum_phrase_th::rhs2_Rnamespace_}
+ }// end of reduce table
+};
+yacco2::State S57_CT_enum_phrase_th = //State's vectored into symbol: "|?|"
+{57
+,0,0,0,0,0,(Reduce_tbl*)&S57rt_CT_enum_phrase_th,0,0,0};
+struct S58rtd_CT_enum_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S58rtd_CT_enum_phrase_th S58rt_CT_enum_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_CT_enum_phrase_th,CT_enum_phrase_th::rhs1_Rnamespace_}
+ }// end of reduce table
+};
+yacco2::State S58_CT_enum_phrase_th = //State's vectored into symbol: "#name-space"
+{58
+,0,0,0,0,0,(Reduce_tbl*)&S58rt_CT_enum_phrase_th,0,0,0};
diff --git a/web/yacco2/compiler/grammars/T_enum_phrasesym.cpp b/web/yacco2/compiler/grammars/T_enum_phrasesym.cpp
new file mode 100644
index 0000000000..3b0cd738dd
--- /dev/null
+++ b/web/yacco2/compiler/grammars/T_enum_phrasesym.cpp
@@ -0,0 +1,86 @@
+/*
+ File: T_enum_phrasesym.cpp
+ Date and Time: Fri Jan 30 18:55:26 2015
+*/
+#include "T_enum_phrase.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_T_enum_phrase;// grammar's ns
+// first set terminals
+// monolithic grammar --- no thread
+void
+CT_enum_phrase::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_RT_enum_phrase_:{
+ RT_enum_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new RT_enum_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RT_enum_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rphrase_:{
+ Rphrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rphrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rphrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rphrase_:{
+ Rphrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rphrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rphrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rphrase_:{
+ Rphrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rphrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rphrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/T_enum_phrasetbl.cpp b/web/yacco2/compiler/grammars/T_enum_phrasetbl.cpp
new file mode 100644
index 0000000000..7a9faeb0fb
--- /dev/null
+++ b/web/yacco2/compiler/grammars/T_enum_phrasetbl.cpp
@@ -0,0 +1,129 @@
+/*
+ File: T_enum_phrasetbl.cpp
+ Date and Time: Fri Jan 30 18:55:26 2015
+*/
+#include "T_enum_phrase.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_T_enum_phrase;// grammar's ns
+// first set terminals
+// LR1_eolr
+yacco2::UCHAR LA1_CT_enum_phrase[] ={
+1
+,0,4
+};
+extern yacco2::State S1_CT_enum_phrase;
+extern yacco2::State S2_CT_enum_phrase;
+extern yacco2::State S3_CT_enum_phrase;
+struct S3ttd_CT_enum_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S3ttd_CT_enum_phrase S3tt_CT_enum_phrase = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_T_enum_phrase_th
+};
+extern yacco2::State S4_CT_enum_phrase;
+extern yacco2::State S5_CT_enum_phrase;
+extern yacco2::State S6_CT_enum_phrase;
+struct S1std_CT_enum_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S1std_CT_enum_phrase S1st_CT_enum_phrase = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S2_CT_enum_phrase} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S3_CT_enum_phrase} // shift sym: LR1_parallel_operator
+ ,{569,(State*)&S1_CT_enum_phrase} // accept sym: RT_enum_phrase
+ ,{570,(State*)&S6_CT_enum_phrase} // shift sym: Rphrase
+ }// end of shift table
+};
+yacco2::Shift_entry S1pse_CT_enum_phrase = {3,(State*)&S3_CT_enum_phrase};
+yacco2::Shift_entry S1qse_CT_enum_phrase = {0,(State*)&S2_CT_enum_phrase};
+yacco2::State S1_CT_enum_phrase = //State's vectored into symbol: " No symbol"
+{1
+,(Shift_entry*)&S1pse_CT_enum_phrase,0,0,0,(Shift_tbl*)&S1st_CT_enum_phrase,0,(State_s_thread_tbl*)&S3tt_CT_enum_phrase,0,(Shift_entry*)&S1qse_CT_enum_phrase
+};
+struct S2rtd_CT_enum_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_CT_enum_phrase S2rt_CT_enum_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_CT_enum_phrase,CT_enum_phrase::rhs3_Rphrase_}
+ }// end of reduce table
+};
+yacco2::State S2_CT_enum_phrase = //State's vectored into symbol: "|?|"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_CT_enum_phrase,0,0,0};
+struct S3std_CT_enum_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S3std_CT_enum_phrase S3st_CT_enum_phrase = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S4_CT_enum_phrase} // shift sym: LR1_questionable_shift_operator
+ ,{330,(State*)&S5_CT_enum_phrase} // shift sym: T_enum_phrase
+ }// end of shift table
+};
+yacco2::Shift_entry S3qse_CT_enum_phrase = {0,(State*)&S4_CT_enum_phrase};
+yacco2::State S3_CT_enum_phrase = //State's vectored into symbol: "|||"
+{3
+,0,0,0,0,(Shift_tbl*)&S3st_CT_enum_phrase,0,0,0,(Shift_entry*)&S3qse_CT_enum_phrase
+};
+struct S4rtd_CT_enum_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_CT_enum_phrase S4rt_CT_enum_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_CT_enum_phrase,CT_enum_phrase::rhs2_Rphrase_}
+ }// end of reduce table
+};
+yacco2::State S4_CT_enum_phrase = //State's vectored into symbol: "|?|"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_CT_enum_phrase,0,0,0};
+struct S5rtd_CT_enum_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_CT_enum_phrase S5rt_CT_enum_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_CT_enum_phrase,CT_enum_phrase::rhs1_Rphrase_}
+ }// end of reduce table
+};
+yacco2::State S5_CT_enum_phrase = //State's vectored into symbol: "T-enum-phrase"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_CT_enum_phrase,0,0,0};
+struct S6rtd_CT_enum_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_CT_enum_phrase S6rt_CT_enum_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_CT_enum_phrase,CT_enum_phrase::rhs1_RT_enum_phrase_}
+ }// end of reduce table
+};
+yacco2::State S6_CT_enum_phrase = //State's vectored into symbol: "Rphrase"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_CT_enum_phrase,0,0,0};
diff --git a/web/yacco2/compiler/grammars/angled_string.cpp b/web/yacco2/compiler/grammars/angled_string.cpp
new file mode 100644
index 0000000000..05198acc6d
--- /dev/null
+++ b/web/yacco2/compiler/grammars/angled_string.cpp
@@ -0,0 +1,145 @@
+/*
+ File: angled_string.cpp
+ Date and Time: Fri Jan 30 18:55:04 2015
+*/
+#include "angled_string.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_angled_string;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 2;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+}
+ Cangled_string::
+ Cangled_string()
+ :yacco2::CAbs_fsm
+ ("angled_string.lex"
+ ,"1.0"
+ ,"17 Juin 2003"
+ ,false
+ ,"Angled string lexer: < ... > with c type escape sequences."
+ ,"Fri Jan 30 18:55:04 2015 "
+ ,S1_Cangled_string){
+
+ ddd_idx_ = 0;
+ ddd_[ddd_idx_] = 0;
+
+ }
+
+Cangled_string::~Cangled_string(){
+
+ for(int x = 0;x < 2;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cangled_string::failed(){
+ return false;
+ }
+ void Cangled_string::op(){
+ ddd_idx_ = 0;
+ ddd_[ddd_idx_] = 0;
+
+}
+int Cangled_string::rhs_to_rules_mapping_[3] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+};
+
+ void Cangled_string::copy_str_into_buffer(std::string* Str){
+ const char* y = Str->c_str();
+ int x(0);
+ for(;y[x]!=0;++x,++ddd_idx_)ddd_[ddd_idx_] = y[x];
+ ddd_[ddd_idx_] = 0;
+ }
+
+
+ void Cangled_string::copy_kstr_into_buffer(const char* Str){
+ const char* y = Str;
+ int x(0);
+ for(;y[x]!=0;++x,++ddd_idx_)ddd_[ddd_idx_] = y[x];
+ ddd_[ddd_idx_] = 0;
+ }
+
+Rangled_string::Rangled_string(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rangled_string",0,Cangled_string::R_Rangled_string_,P,false,false){
+}
+
+void Rangled_string::sr1(){
+
+ Cangled_string* fsm = (Cangled_string*) rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* sym = new T_angled_string((const char*)&fsm->ddd_);
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+
+}
+
+Ropen_angle::Ropen_angle(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Ropen_angle",0,Cangled_string::R_Ropen_angle_,P,false,false){
+}
+
+void Ropen_angle::sr1(){
+
+ Cangled_string* fsm = (Cangled_string*) rule_info__.parser__->fsm_tbl__;
+loop:
+ switch (rule_info__.parser__->current_token()->enumerated_id__){
+ case T_Enum::T_raw_lf_: goto overrun;
+ case T_Enum::T_raw_cr_: goto overrun;
+ case T_Enum::T_LR1_eog_: goto overrun;
+ case T_Enum::T_raw_gt_than_: goto closestr;
+ case T_Enum::T_raw_back_slash_: goto escseq;
+ default: goto other;
+ }
+ closestr:{ // end of string
+ rule_info__.parser__->get_next_token();
+ return;// end of angled string
+ }
+ overrun:{
+ CAbs_lr1_sym* sym = new Err_bad_eos;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ escseq:{ // what type of escape
+ using namespace NS_esc_seq;
+ Parser::parse_result result =
+ rule_info__.parser__->start_manually_parallel_parsing(ITH_esc_seq.thd_id__);
+ if(result == Parser::erred){
+ // in this case, it will not happen: here for education
+ rule_info__.parser__->set_abort_parse(true);
+ return;
+ }
+ // process returned token
+ Caccept_parse& accept_parm = *rule_info__.parser__->arbitrated_token__;
+ CAbs_lr1_sym* rtn_tok = accept_parm.accept_token__;
+ int id = rtn_tok->enumerated_id__;
+ accept_parm.accept_token__ = 0;
+ if(id != T_Enum::T_T_esc_seq_) {
+ RSVP(rtn_tok);
+ return;
+ }
+ T_esc_seq* finc = (T_esc_seq*)(rtn_tok);
+ fsm->copy_str_into_buffer(finc->esc_data());
+ rule_info__.parser__->override_current_token(*accept_parm.la_token__
+ ,accept_parm.la_token_pos__);
+ delete finc;
+goto loop;
+ };
+ other:{
+ fsm->copy_kstr_into_buffer(rule_info__.parser__->current_token()->id__);
+ rule_info__.parser__->get_next_token();
+goto loop;
+ }
+
+}
+
diff --git a/web/yacco2/compiler/grammars/angled_string.fsc b/web/yacco2/compiler/grammars/angled_string.fsc
new file mode 100644
index 0000000000..e62d66f586
--- /dev/null
+++ b/web/yacco2/compiler/grammars/angled_string.fsc
@@ -0,0 +1,20 @@
+/*
+ File: angled_string.fsc
+ Date and Time: Fri Jan 30 18:55:04 2015
+*/
+transitive n
+grammar-name "angled_string"
+name-space "NS_angled_string"
+thread-name "TH_angled_string"
+monolithic n
+file-name "angled_string.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ raw_less_than
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"Angled string lexer: < ... > with c type escape sequences."
diff --git a/web/yacco2/compiler/grammars/angled_string.h b/web/yacco2/compiler/grammars/angled_string.h
new file mode 100644
index 0000000000..5ded93babf
--- /dev/null
+++ b/web/yacco2/compiler/grammars/angled_string.h
@@ -0,0 +1,74 @@
+/*
+ File: angled_string.h
+ Date and Time: Fri Jan 30 18:55:04 2015
+*/
+#ifndef __angled_string_h__
+#define __angled_string_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "esc_seq.h"
+
+extern yacco2::Thread_entry ITH_angled_string;
+
+extern yacco2::State S1_Cangled_string;
+namespace NS_angled_string {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_angled_string(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_angled_string(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[2];
+};
+class Cangled_string: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rangled_string_ = 569//start_of_rule_list + 0
+ ,rhs1_Rangled_string_ = 1
+ ,R_Ropen_angle_ = 570//start_of_rule_list + 2
+ ,rhs1_Ropen_angle_ = 2
+ };
+ //no of la sets = 2
+ //no of states = 4
+ Cangled_string();
+ ~Cangled_string();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[3];
+
+ public:
+ char ddd_[1024*32];
+ int ddd_idx_;
+ void copy_str_into_buffer(std::string* Str);
+ void copy_kstr_into_buffer(const char* Str);
+
+ };
+struct Rangled_string;
+struct Ropen_angle;
+struct Rangled_string:public yacco2::CAbs_lr1_sym {
+ Rangled_string(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Ropen_angle:public yacco2::CAbs_lr1_sym {
+ Ropen_angle(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/angled_string.lex b/web/yacco2/compiler/grammars/angled_string.lex
new file mode 100644
index 0000000000..23e3929fa3
--- /dev/null
+++ b/web/yacco2/compiler/grammars/angled_string.lex
@@ -0,0 +1,172 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: angled_string.lex
+Dates: 2 mar. 2005
+Purpose: angle bracket filename: Eg <yacco2.h>
+Returned: T_angled_string
+ Err_bad_eos - meta terminal indicating an improper end-of-string
+ this occurs on eof,eog, or an eol terminal ending the string
+ Err_bad_esc - bad escape sequence.
+Note: Stripped of its bounding <> for ease of use
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |angled_string| Thread.\fbreak
+It recognizes
+character sequences of example ${<}$ my disc ${>}$
+typically used in a c++ include statement or in my case files to be
+read either thru my own include statements or from the
+command line.
+|esc_seq| thread evaluates the c++ literal character escape sequences buried
+inside the angled brackets.
+The escape sequences cover the backslash variety ---
+octal, hex, and character, and
+those pesky unicode types.
+Nothing is done with them at present --- only their syntax is
+recognized.
+The |esc_seq| terminal returned contains the
+character string parsed.
+The |angled_string| returned contains the enclosed character string
+without the bounding angle brackets.
+So ${<}$ my disc ${>}$ becomes ``my disc'' without the quotes.
+The {\bf empty string} is tollerated.
+It is left to the calling grammar to deal with it.\fbreak
+\fbreak
+Errors:\fbreak
+Caused by either an invalid character escape sequence or an improper closing of the
+|angled_string| --- an end of line or file etc
+before possibly omitted closing
+``${>}$'' bracket.
+These two conditions are indicated by the 2 error terminals
+ |Err_bad_esc| and |Err_bad_eos|.\fbreak
+\fbreak
+Returned T: |T_angled_string| \fbreak
+@/
+fsm
+(fsm-id "angled_string.lex",fsm-filename angled_string,fsm-namespace NS_angled_string
+,fsm-class Cangled_string {
+ user-prefix-declaration
+#include "esc_seq.h"
+ ***
+ user-declaration
+ public:
+ char ddd_[1024*32];
+ int ddd_idx_;
+ void copy_str_into_buffer(std::string* Str);
+ void copy_kstr_into_buffer(const char* Str);
+ ***
+ user-implementation
+ void Cangled_string::copy_str_into_buffer(std::string* Str){
+ const char* y = Str->c_str();
+ int x(0);
+ for(;y[x]!=0;++x,++ddd_idx_)ddd_[ddd_idx_] = y[x];
+ ddd_[ddd_idx_] = 0;
+ }
+/@
+@*3 |copy_kstr_into_buffer|.
+@/
+
+ void Cangled_string::copy_kstr_into_buffer(const char* Str){
+ const char* y = Str;
+ int x(0);
+ for(;y[x]!=0;++x,++ddd_idx_)ddd_[ddd_idx_] = y[x];
+ ddd_[ddd_idx_] = 0;
+ }
+ ***
+ constructor
+ ddd_idx_ = 0;
+ ddd_[ddd_idx_] = 0;
+ ***
+ op
+ ddd_idx_ = 0;
+ ddd_[ddd_idx_] = 0;
+ ***
+}
+,fsm-version "1.0" ,fsm-date "17 Juin 2003"
+,fsm-debug "false"
+,fsm-comments "Angled string lexer: < ... > with c type escape sequences.")
+parallel-parser
+(
+ parallel-thread-function
+ TH_angled_string
+ ***
+ parallel-la-boundary
+ eolr
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rangled_string ()
+{
+ -> Ropen_angle |.|{
+ op
+ Cangled_string* fsm = (Cangled_string*) rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* sym = new T_angled_string((const char*)&fsm->ddd_);
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ ***
+ }
+}
+
+Ropen_angle (){
+ -> "<" {
+ op
+ Cangled_string* fsm = (Cangled_string*) rule_info__.parser__->fsm_tbl__;
+loop:
+ switch (rule_info__.parser__->current_token()->enumerated_id__){
+ case T_Enum::T_raw_lf_: goto overrun;
+ case T_Enum::T_raw_cr_: goto overrun;
+ case T_Enum::T_LR1_eog_: goto overrun;
+ case T_Enum::T_raw_gt_than_: goto closestr;
+ case T_Enum::T_raw_back_slash_: goto escseq;
+ default: goto other;
+ }
+ closestr:{ // end of string
+ rule_info__.parser__->get_next_token();
+ return;// end of angled string
+ }
+ overrun:{
+ CAbs_lr1_sym* sym = new Err_bad_eos;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ escseq:{ // what type of escape
+ using namespace NS_esc_seq;
+ Parser::parse_result result =
+ rule_info__.parser__->start_manually_parallel_parsing(ITH_esc_seq.thd_id__);
+ if(result == Parser::erred){
+ // in this case, it will not happen: here for education
+ rule_info__.parser__->set_abort_parse(true);
+ return;
+ }
+ // process returned token
+ Caccept_parse& accept_parm = *rule_info__.parser__->arbitrated_token__;
+ CAbs_lr1_sym* rtn_tok = accept_parm.accept_token__;
+ int id = rtn_tok->enumerated_id__;
+ accept_parm.accept_token__ = 0;
+ if(id != T_Enum::T_T_esc_seq_) {
+ RSVP(rtn_tok);
+ return;
+ }
+ T_esc_seq* finc = (T_esc_seq*)(rtn_tok);
+ fsm->copy_str_into_buffer(finc->esc_data());
+ rule_info__.parser__->override_current_token(*accept_parm.la_token__
+ ,accept_parm.la_token_pos__);
+ delete finc;
+goto loop;
+ };
+ other:{
+ fsm->copy_kstr_into_buffer(rule_info__.parser__->current_token()->id__);
+ rule_info__.parser__->get_next_token();
+goto loop;
+ }
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/angled_stringsym.cpp b/web/yacco2/compiler/grammars/angled_stringsym.cpp
new file mode 100644
index 0000000000..4ebce9c214
--- /dev/null
+++ b/web/yacco2/compiler/grammars/angled_stringsym.cpp
@@ -0,0 +1,78 @@
+/*
+ File: angled_stringsym.cpp
+ Date and Time: Fri Jan 30 18:55:04 2015
+*/
+#include "angled_string.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_angled_string;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_angled_string::TH_angled_string(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_angled_string;
+ NS_angled_string::Cangled_string Cangled_string_;// parallel-parser's parse table
+#define ssPARSE_TABLE Cangled_string_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_angled_string::PROC_TH_angled_string(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_angled_string";
+ static bool one_time(false);
+ static NS_angled_string::Cangled_string* NS_angled_string_Cangled_string_(0);// parallel-parser's fsm table
+ static Parser* NS_angled_string_Cangled_string_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_angled_string_Cangled_string_ = new NS_angled_string::Cangled_string();// parallel-parser's fsm table
+ NS_angled_string_Cangled_string_parser = new Parser(*NS_angled_string_Cangled_string_,Caller_pp);
+ }
+ proc_parser = NS_angled_string_Cangled_string_parser;
+#include "wproc_pp_core.h"
+}
+void
+Cangled_string::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rangled_string_:{
+ Rangled_string* sym;
+ if(re->rule_ == 0){
+ sym = new Rangled_string(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rangled_string*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Ropen_angle_:{
+ Ropen_angle* sym;
+ if(re->rule_ == 0){
+ sym = new Ropen_angle(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ropen_angle*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/angled_stringtbl.cpp b/web/yacco2/compiler/grammars/angled_stringtbl.cpp
new file mode 100644
index 0000000000..5f32bea7cc
--- /dev/null
+++ b/web/yacco2/compiler/grammars/angled_stringtbl.cpp
@@ -0,0 +1,87 @@
+/*
+ File: angled_stringtbl.cpp
+ Date and Time: Fri Jan 30 18:55:04 2015
+*/
+#include "angled_string.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_angled_string;// grammar's ns
+// first set terminals
+// LR1_invisible_shift_operator
+yacco2::UCHAR LA1_Cangled_string[] ={
+1
+,0,32
+};
+// LR1_eolr
+yacco2::UCHAR LA2_Cangled_string[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Cangled_string;
+extern yacco2::State S2_Cangled_string;
+extern yacco2::State S3_Cangled_string;
+extern yacco2::State S4_Cangled_string;
+struct S1std_Cangled_string{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S1std_Cangled_string S1st_Cangled_string = {
+ 3
+ ,
+ {// start of table
+ {68,(State*)&S2_Cangled_string} // shift sym: raw_less_than
+ ,{569,(State*)&S1_Cangled_string} // accept sym: Rangled_string
+ ,{570,(State*)&S3_Cangled_string} // shift sym: Ropen_angle
+ }// end of shift table
+};
+yacco2::State S1_Cangled_string = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Cangled_string,0,0,0,0};
+struct S2rtd_Cangled_string{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Cangled_string S2rt_Cangled_string = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cangled_string,Cangled_string::rhs1_Ropen_angle_}
+ }// end of reduce table
+};
+yacco2::State S2_Cangled_string = //State's vectored into symbol: "<"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Cangled_string,0,0,0};
+struct S3std_Cangled_string{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S3std_Cangled_string S3st_Cangled_string = {
+ 1
+ ,
+ {// start of table
+ {5,(State*)&S4_Cangled_string} // shift sym: LR1_invisible_shift_operator
+ }// end of shift table
+};
+yacco2::Shift_entry S3ise_Cangled_string = {5,(State*)&S4_Cangled_string};
+yacco2::State S3_Cangled_string = //State's vectored into symbol: "Ropen_angle"
+{3
+,0,0,(Shift_entry*)&S3ise_Cangled_string
+,0,(Shift_tbl*)&S3st_Cangled_string,0,0,0,0};
+struct S4rtd_Cangled_string{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Cangled_string S4rt_Cangled_string = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cangled_string,Cangled_string::rhs1_Rangled_string_}
+ }// end of reduce table
+};
+yacco2::State S4_Cangled_string = //State's vectored into symbol: "|.|"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Cangled_string,0,0,0};
diff --git a/web/yacco2/compiler/grammars/bad_char_set.cpp b/web/yacco2/compiler/grammars/bad_char_set.cpp
new file mode 100644
index 0000000000..d852ef8c3a
--- /dev/null
+++ b/web/yacco2/compiler/grammars/bad_char_set.cpp
@@ -0,0 +1,284 @@
+/*
+ File: bad_char_set.cpp
+ Date and Time: Fri Jan 30 18:55:05 2015
+*/
+#include "bad_char_set.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_bad_char_set;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 11;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[4] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[5] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[6] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[7] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[8] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[9] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[10] = new Per_rule_s_reuse_table();
+}
+ Cbad_char_set::
+ Cbad_char_set()
+ :yacco2::CAbs_fsm
+ ("bad_char_set.lex"
+ ,"1.0"
+ ,"16 Juin 2003"
+ ,false
+ ,"Bad source character set recognizer."
+ ,"Fri Jan 30 18:55:05 2015 "
+ ,S1_Cbad_char_set){
+
+ }
+
+Cbad_char_set::~Cbad_char_set(){
+
+ for(int x = 0;x < 11;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cbad_char_set::failed(){
+ return false;
+ }
+ void Cbad_char_set::op(){
+}
+int Cbad_char_set::rhs_to_rules_mapping_[167] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,0 // subrule 2 for rule 1
+ ,0 // subrule 3 for rule 1
+ ,0 // subrule 4 for rule 1
+ ,0 // subrule 5 for rule 1
+ ,0 // subrule 6 for rule 1
+ ,0 // subrule 7 for rule 1
+ ,0 // subrule 8 for rule 1
+ ,0 // subrule 9 for rule 1
+ ,0 // subrule 10 for rule 1
+ ,1 // subrule 11 for rule 2
+ ,1 // subrule 12 for rule 2
+ ,1 // subrule 13 for rule 2
+ ,1 // subrule 14 for rule 2
+ ,1 // subrule 15 for rule 2
+ ,1 // subrule 16 for rule 2
+ ,1 // subrule 17 for rule 2
+ ,1 // subrule 18 for rule 2
+ ,1 // subrule 19 for rule 2
+ ,1 // subrule 20 for rule 2
+ ,1 // subrule 21 for rule 2
+ ,2 // subrule 22 for rule 3
+ ,2 // subrule 23 for rule 3
+ ,2 // subrule 24 for rule 3
+ ,2 // subrule 25 for rule 3
+ ,2 // subrule 26 for rule 3
+ ,2 // subrule 27 for rule 3
+ ,2 // subrule 28 for rule 3
+ ,2 // subrule 29 for rule 3
+ ,2 // subrule 30 for rule 3
+ ,2 // subrule 31 for rule 3
+ ,2 // subrule 32 for rule 3
+ ,2 // subrule 33 for rule 3
+ ,2 // subrule 34 for rule 3
+ ,2 // subrule 35 for rule 3
+ ,2 // subrule 36 for rule 3
+ ,2 // subrule 37 for rule 3
+ ,2 // subrule 38 for rule 3
+ ,3 // subrule 39 for rule 4
+ ,3 // subrule 40 for rule 4
+ ,3 // subrule 41 for rule 4
+ ,3 // subrule 42 for rule 4
+ ,3 // subrule 43 for rule 4
+ ,3 // subrule 44 for rule 4
+ ,3 // subrule 45 for rule 4
+ ,3 // subrule 46 for rule 4
+ ,3 // subrule 47 for rule 4
+ ,3 // subrule 48 for rule 4
+ ,3 // subrule 49 for rule 4
+ ,3 // subrule 50 for rule 4
+ ,3 // subrule 51 for rule 4
+ ,3 // subrule 52 for rule 4
+ ,3 // subrule 53 for rule 4
+ ,3 // subrule 54 for rule 4
+ ,4 // subrule 55 for rule 5
+ ,4 // subrule 56 for rule 5
+ ,4 // subrule 57 for rule 5
+ ,4 // subrule 58 for rule 5
+ ,4 // subrule 59 for rule 5
+ ,4 // subrule 60 for rule 5
+ ,4 // subrule 61 for rule 5
+ ,4 // subrule 62 for rule 5
+ ,4 // subrule 63 for rule 5
+ ,4 // subrule 64 for rule 5
+ ,4 // subrule 65 for rule 5
+ ,4 // subrule 66 for rule 5
+ ,4 // subrule 67 for rule 5
+ ,4 // subrule 68 for rule 5
+ ,4 // subrule 69 for rule 5
+ ,4 // subrule 70 for rule 5
+ ,5 // subrule 71 for rule 6
+ ,5 // subrule 72 for rule 6
+ ,5 // subrule 73 for rule 6
+ ,5 // subrule 74 for rule 6
+ ,5 // subrule 75 for rule 6
+ ,5 // subrule 76 for rule 6
+ ,5 // subrule 77 for rule 6
+ ,5 // subrule 78 for rule 6
+ ,5 // subrule 79 for rule 6
+ ,5 // subrule 80 for rule 6
+ ,5 // subrule 81 for rule 6
+ ,5 // subrule 82 for rule 6
+ ,5 // subrule 83 for rule 6
+ ,5 // subrule 84 for rule 6
+ ,5 // subrule 85 for rule 6
+ ,5 // subrule 86 for rule 6
+ ,6 // subrule 87 for rule 7
+ ,6 // subrule 88 for rule 7
+ ,6 // subrule 89 for rule 7
+ ,6 // subrule 90 for rule 7
+ ,6 // subrule 91 for rule 7
+ ,6 // subrule 92 for rule 7
+ ,6 // subrule 93 for rule 7
+ ,6 // subrule 94 for rule 7
+ ,6 // subrule 95 for rule 7
+ ,6 // subrule 96 for rule 7
+ ,6 // subrule 97 for rule 7
+ ,6 // subrule 98 for rule 7
+ ,6 // subrule 99 for rule 7
+ ,6 // subrule 100 for rule 7
+ ,6 // subrule 101 for rule 7
+ ,6 // subrule 102 for rule 7
+ ,7 // subrule 103 for rule 8
+ ,7 // subrule 104 for rule 8
+ ,7 // subrule 105 for rule 8
+ ,7 // subrule 106 for rule 8
+ ,7 // subrule 107 for rule 8
+ ,7 // subrule 108 for rule 8
+ ,7 // subrule 109 for rule 8
+ ,7 // subrule 110 for rule 8
+ ,7 // subrule 111 for rule 8
+ ,7 // subrule 112 for rule 8
+ ,7 // subrule 113 for rule 8
+ ,7 // subrule 114 for rule 8
+ ,7 // subrule 115 for rule 8
+ ,7 // subrule 116 for rule 8
+ ,7 // subrule 117 for rule 8
+ ,7 // subrule 118 for rule 8
+ ,8 // subrule 119 for rule 9
+ ,8 // subrule 120 for rule 9
+ ,8 // subrule 121 for rule 9
+ ,8 // subrule 122 for rule 9
+ ,8 // subrule 123 for rule 9
+ ,8 // subrule 124 for rule 9
+ ,8 // subrule 125 for rule 9
+ ,8 // subrule 126 for rule 9
+ ,8 // subrule 127 for rule 9
+ ,8 // subrule 128 for rule 9
+ ,8 // subrule 129 for rule 9
+ ,8 // subrule 130 for rule 9
+ ,8 // subrule 131 for rule 9
+ ,8 // subrule 132 for rule 9
+ ,8 // subrule 133 for rule 9
+ ,8 // subrule 134 for rule 9
+ ,9 // subrule 135 for rule 10
+ ,9 // subrule 136 for rule 10
+ ,9 // subrule 137 for rule 10
+ ,9 // subrule 138 for rule 10
+ ,9 // subrule 139 for rule 10
+ ,9 // subrule 140 for rule 10
+ ,9 // subrule 141 for rule 10
+ ,9 // subrule 142 for rule 10
+ ,9 // subrule 143 for rule 10
+ ,9 // subrule 144 for rule 10
+ ,9 // subrule 145 for rule 10
+ ,9 // subrule 146 for rule 10
+ ,9 // subrule 147 for rule 10
+ ,9 // subrule 148 for rule 10
+ ,9 // subrule 149 for rule 10
+ ,9 // subrule 150 for rule 10
+ ,10 // subrule 151 for rule 11
+ ,10 // subrule 152 for rule 11
+ ,10 // subrule 153 for rule 11
+ ,10 // subrule 154 for rule 11
+ ,10 // subrule 155 for rule 11
+ ,10 // subrule 156 for rule 11
+ ,10 // subrule 157 for rule 11
+ ,10 // subrule 158 for rule 11
+ ,10 // subrule 159 for rule 11
+ ,10 // subrule 160 for rule 11
+ ,10 // subrule 161 for rule 11
+ ,10 // subrule 162 for rule 11
+ ,10 // subrule 163 for rule 11
+ ,10 // subrule 164 for rule 11
+ ,10 // subrule 165 for rule 11
+ ,10 // subrule 166 for rule 11
+};
+Rbad_char_set::Rbad_char_set(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rbad_char_set",0,Cbad_char_set::R_Rbad_char_set_,P,false,false){
+}
+
+void Rbad_char_set::op(){
+ sstrace_rulesss
+
+ CAbs_lr1_sym* sym = new Err_bad_char(rule_info__.parser__->start_token__);
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+
+}
+Rbad_char_00_0f::Rbad_char_00_0f(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rbad_char_00_0f",0,Cbad_char_set::R_Rbad_char_00_0f_,P,false,false){
+}
+
+Rbad_char_10_7f::Rbad_char_10_7f(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rbad_char_10_7f",0,Cbad_char_set::R_Rbad_char_10_7f_,P,false,false){
+}
+
+Rbad_char_80_8f::Rbad_char_80_8f(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rbad_char_80_8f",0,Cbad_char_set::R_Rbad_char_80_8f_,P,false,false){
+}
+
+Rbad_char_90_9f::Rbad_char_90_9f(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rbad_char_90_9f",0,Cbad_char_set::R_Rbad_char_90_9f_,P,false,false){
+}
+
+Rbad_char_a0_af::Rbad_char_a0_af(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rbad_char_a0_af",0,Cbad_char_set::R_Rbad_char_a0_af_,P,false,false){
+}
+
+Rbad_char_b0_bf::Rbad_char_b0_bf(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rbad_char_b0_bf",0,Cbad_char_set::R_Rbad_char_b0_bf_,P,false,false){
+}
+
+Rbad_char_c0_cf::Rbad_char_c0_cf(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rbad_char_c0_cf",0,Cbad_char_set::R_Rbad_char_c0_cf_,P,false,false){
+}
+
+Rbad_char_d0_df::Rbad_char_d0_df(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rbad_char_d0_df",0,Cbad_char_set::R_Rbad_char_d0_df_,P,false,false){
+}
+
+Rbad_char_e0_ef::Rbad_char_e0_ef(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rbad_char_e0_ef",0,Cbad_char_set::R_Rbad_char_e0_ef_,P,false,false){
+}
+
+Rbad_char_f0_ff::Rbad_char_f0_ff(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rbad_char_f0_ff",0,Cbad_char_set::R_Rbad_char_f0_ff_,P,false,false){
+}
+
diff --git a/web/yacco2/compiler/grammars/bad_char_set.fsc b/web/yacco2/compiler/grammars/bad_char_set.fsc
new file mode 100644
index 0000000000..b66d5d3b07
--- /dev/null
+++ b/web/yacco2/compiler/grammars/bad_char_set.fsc
@@ -0,0 +1,175 @@
+/*
+ File: bad_char_set.fsc
+ Date and Time: Fri Jan 30 18:55:05 2015
+*/
+transitive n
+grammar-name "bad_char_set"
+name-space "NS_bad_char_set"
+thread-name "TH_bad_char_set"
+monolithic n
+file-name "bad_char_set.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 156
+ raw_nul
+ raw_soh
+ raw_stx
+ raw_etx
+ raw_eot
+ raw_enq
+ raw_ack
+ raw_bel
+ raw_bs
+ raw_so
+ raw_si
+ raw_dle
+ raw_dc1
+ raw_dc2
+ raw_dc3
+ raw_dc4
+ raw_nak
+ raw_syn
+ raw_etb
+ raw_can
+ raw_em
+ raw_sub
+ raw_esc
+ raw_fs
+ raw_gs
+ raw_rs
+ raw_us
+ raw_del
+ raw_x80
+ raw_x81
+ raw_x82
+ raw_x83
+ raw_x84
+ raw_x85
+ raw_x86
+ raw_x87
+ raw_x88
+ raw_x89
+ raw_x8a
+ raw_x8b
+ raw_x8c
+ raw_x8d
+ raw_x8e
+ raw_x8f
+ raw_x90
+ raw_x91
+ raw_x92
+ raw_x93
+ raw_x94
+ raw_x95
+ raw_x96
+ raw_x97
+ raw_x98
+ raw_x99
+ raw_x9a
+ raw_x9b
+ raw_x9c
+ raw_x9d
+ raw_x9e
+ raw_x9f
+ raw_xa0
+ raw_xa1
+ raw_xa2
+ raw_xa3
+ raw_xa4
+ raw_xa5
+ raw_xa6
+ raw_xa7
+ raw_xa8
+ raw_xa9
+ raw_xaa
+ raw_xab
+ raw_xac
+ raw_xad
+ raw_xae
+ raw_xaf
+ raw_xb0
+ raw_xb1
+ raw_xb2
+ raw_xb3
+ raw_xb4
+ raw_xb5
+ raw_xb6
+ raw_xb7
+ raw_xb8
+ raw_xb9
+ raw_xba
+ raw_xbb
+ raw_xbc
+ raw_xbd
+ raw_xbe
+ raw_xbf
+ raw_xc0
+ raw_xc1
+ raw_xc2
+ raw_xc3
+ raw_xc4
+ raw_xc5
+ raw_xc6
+ raw_xc7
+ raw_xc8
+ raw_xc9
+ raw_xca
+ raw_xcb
+ raw_xcc
+ raw_xcd
+ raw_xce
+ raw_xcf
+ raw_xd0
+ raw_xd1
+ raw_xd2
+ raw_xd3
+ raw_xd4
+ raw_xd5
+ raw_xd6
+ raw_xd7
+ raw_xd8
+ raw_xd9
+ raw_xda
+ raw_xdb
+ raw_xdc
+ raw_xdd
+ raw_xde
+ raw_xdf
+ raw_xe0
+ raw_xe1
+ raw_xe2
+ raw_xe3
+ raw_xe4
+ raw_xe5
+ raw_xe6
+ raw_xe7
+ raw_xe8
+ raw_xe9
+ raw_xea
+ raw_xeb
+ raw_xec
+ raw_xed
+ raw_xee
+ raw_xef
+ raw_xf0
+ raw_xf1
+ raw_xf2
+ raw_xf3
+ raw_xf4
+ raw_xf5
+ raw_xf6
+ raw_xf7
+ raw_xf8
+ raw_xf9
+ raw_xfa
+ raw_xfb
+ raw_xfc
+ raw_xfd
+ raw_xfe
+ raw_xff
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"Bad source character set recognizer."
diff --git a/web/yacco2/compiler/grammars/bad_char_set.h b/web/yacco2/compiler/grammars/bad_char_set.h
new file mode 100644
index 0000000000..ac8f304b30
--- /dev/null
+++ b/web/yacco2/compiler/grammars/bad_char_set.h
@@ -0,0 +1,290 @@
+/*
+ File: bad_char_set.h
+ Date and Time: Fri Jan 30 18:55:05 2015
+*/
+#ifndef __bad_char_set_h__
+#define __bad_char_set_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+extern yacco2::Thread_entry ITH_bad_char_set;
+
+extern yacco2::State S1_Cbad_char_set;
+namespace NS_bad_char_set {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_bad_char_set(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_bad_char_set(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[11];
+};
+class Cbad_char_set: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rbad_char_set_ = 569//start_of_rule_list + 0
+ ,rhs1_Rbad_char_set_ = 1
+ ,rhs2_Rbad_char_set_ = 2
+ ,rhs3_Rbad_char_set_ = 3
+ ,rhs4_Rbad_char_set_ = 4
+ ,rhs5_Rbad_char_set_ = 5
+ ,rhs6_Rbad_char_set_ = 6
+ ,rhs7_Rbad_char_set_ = 7
+ ,rhs8_Rbad_char_set_ = 8
+ ,rhs9_Rbad_char_set_ = 9
+ ,rhs10_Rbad_char_set_ = 10
+ ,R_Rbad_char_00_0f_ = 570//start_of_rule_list + 2
+ ,rhs1_Rbad_char_00_0f_ = 11
+ ,rhs2_Rbad_char_00_0f_ = 12
+ ,rhs3_Rbad_char_00_0f_ = 13
+ ,rhs4_Rbad_char_00_0f_ = 14
+ ,rhs5_Rbad_char_00_0f_ = 15
+ ,rhs6_Rbad_char_00_0f_ = 16
+ ,rhs7_Rbad_char_00_0f_ = 17
+ ,rhs8_Rbad_char_00_0f_ = 18
+ ,rhs9_Rbad_char_00_0f_ = 19
+ ,rhs10_Rbad_char_00_0f_ = 20
+ ,rhs11_Rbad_char_00_0f_ = 21
+ ,R_Rbad_char_10_7f_ = 571//start_of_rule_list + 4
+ ,rhs1_Rbad_char_10_7f_ = 22
+ ,rhs2_Rbad_char_10_7f_ = 23
+ ,rhs3_Rbad_char_10_7f_ = 24
+ ,rhs4_Rbad_char_10_7f_ = 25
+ ,rhs5_Rbad_char_10_7f_ = 26
+ ,rhs6_Rbad_char_10_7f_ = 27
+ ,rhs7_Rbad_char_10_7f_ = 28
+ ,rhs8_Rbad_char_10_7f_ = 29
+ ,rhs9_Rbad_char_10_7f_ = 30
+ ,rhs10_Rbad_char_10_7f_ = 31
+ ,rhs11_Rbad_char_10_7f_ = 32
+ ,rhs12_Rbad_char_10_7f_ = 33
+ ,rhs13_Rbad_char_10_7f_ = 34
+ ,rhs14_Rbad_char_10_7f_ = 35
+ ,rhs15_Rbad_char_10_7f_ = 36
+ ,rhs16_Rbad_char_10_7f_ = 37
+ ,rhs17_Rbad_char_10_7f_ = 38
+ ,R_Rbad_char_80_8f_ = 572//start_of_rule_list + 6
+ ,rhs1_Rbad_char_80_8f_ = 39
+ ,rhs2_Rbad_char_80_8f_ = 40
+ ,rhs3_Rbad_char_80_8f_ = 41
+ ,rhs4_Rbad_char_80_8f_ = 42
+ ,rhs5_Rbad_char_80_8f_ = 43
+ ,rhs6_Rbad_char_80_8f_ = 44
+ ,rhs7_Rbad_char_80_8f_ = 45
+ ,rhs8_Rbad_char_80_8f_ = 46
+ ,rhs9_Rbad_char_80_8f_ = 47
+ ,rhs10_Rbad_char_80_8f_ = 48
+ ,rhs11_Rbad_char_80_8f_ = 49
+ ,rhs12_Rbad_char_80_8f_ = 50
+ ,rhs13_Rbad_char_80_8f_ = 51
+ ,rhs14_Rbad_char_80_8f_ = 52
+ ,rhs15_Rbad_char_80_8f_ = 53
+ ,rhs16_Rbad_char_80_8f_ = 54
+ ,R_Rbad_char_90_9f_ = 573//start_of_rule_list + 8
+ ,rhs1_Rbad_char_90_9f_ = 55
+ ,rhs2_Rbad_char_90_9f_ = 56
+ ,rhs3_Rbad_char_90_9f_ = 57
+ ,rhs4_Rbad_char_90_9f_ = 58
+ ,rhs5_Rbad_char_90_9f_ = 59
+ ,rhs6_Rbad_char_90_9f_ = 60
+ ,rhs7_Rbad_char_90_9f_ = 61
+ ,rhs8_Rbad_char_90_9f_ = 62
+ ,rhs9_Rbad_char_90_9f_ = 63
+ ,rhs10_Rbad_char_90_9f_ = 64
+ ,rhs11_Rbad_char_90_9f_ = 65
+ ,rhs12_Rbad_char_90_9f_ = 66
+ ,rhs13_Rbad_char_90_9f_ = 67
+ ,rhs14_Rbad_char_90_9f_ = 68
+ ,rhs15_Rbad_char_90_9f_ = 69
+ ,rhs16_Rbad_char_90_9f_ = 70
+ ,R_Rbad_char_a0_af_ = 574//start_of_rule_list + 10
+ ,rhs1_Rbad_char_a0_af_ = 71
+ ,rhs2_Rbad_char_a0_af_ = 72
+ ,rhs3_Rbad_char_a0_af_ = 73
+ ,rhs4_Rbad_char_a0_af_ = 74
+ ,rhs5_Rbad_char_a0_af_ = 75
+ ,rhs6_Rbad_char_a0_af_ = 76
+ ,rhs7_Rbad_char_a0_af_ = 77
+ ,rhs8_Rbad_char_a0_af_ = 78
+ ,rhs9_Rbad_char_a0_af_ = 79
+ ,rhs10_Rbad_char_a0_af_ = 80
+ ,rhs11_Rbad_char_a0_af_ = 81
+ ,rhs12_Rbad_char_a0_af_ = 82
+ ,rhs13_Rbad_char_a0_af_ = 83
+ ,rhs14_Rbad_char_a0_af_ = 84
+ ,rhs15_Rbad_char_a0_af_ = 85
+ ,rhs16_Rbad_char_a0_af_ = 86
+ ,R_Rbad_char_b0_bf_ = 575//start_of_rule_list + 12
+ ,rhs1_Rbad_char_b0_bf_ = 87
+ ,rhs2_Rbad_char_b0_bf_ = 88
+ ,rhs3_Rbad_char_b0_bf_ = 89
+ ,rhs4_Rbad_char_b0_bf_ = 90
+ ,rhs5_Rbad_char_b0_bf_ = 91
+ ,rhs6_Rbad_char_b0_bf_ = 92
+ ,rhs7_Rbad_char_b0_bf_ = 93
+ ,rhs8_Rbad_char_b0_bf_ = 94
+ ,rhs9_Rbad_char_b0_bf_ = 95
+ ,rhs10_Rbad_char_b0_bf_ = 96
+ ,rhs11_Rbad_char_b0_bf_ = 97
+ ,rhs12_Rbad_char_b0_bf_ = 98
+ ,rhs13_Rbad_char_b0_bf_ = 99
+ ,rhs14_Rbad_char_b0_bf_ = 100
+ ,rhs15_Rbad_char_b0_bf_ = 101
+ ,rhs16_Rbad_char_b0_bf_ = 102
+ ,R_Rbad_char_c0_cf_ = 576//start_of_rule_list + 14
+ ,rhs1_Rbad_char_c0_cf_ = 103
+ ,rhs2_Rbad_char_c0_cf_ = 104
+ ,rhs3_Rbad_char_c0_cf_ = 105
+ ,rhs4_Rbad_char_c0_cf_ = 106
+ ,rhs5_Rbad_char_c0_cf_ = 107
+ ,rhs6_Rbad_char_c0_cf_ = 108
+ ,rhs7_Rbad_char_c0_cf_ = 109
+ ,rhs8_Rbad_char_c0_cf_ = 110
+ ,rhs9_Rbad_char_c0_cf_ = 111
+ ,rhs10_Rbad_char_c0_cf_ = 112
+ ,rhs11_Rbad_char_c0_cf_ = 113
+ ,rhs12_Rbad_char_c0_cf_ = 114
+ ,rhs13_Rbad_char_c0_cf_ = 115
+ ,rhs14_Rbad_char_c0_cf_ = 116
+ ,rhs15_Rbad_char_c0_cf_ = 117
+ ,rhs16_Rbad_char_c0_cf_ = 118
+ ,R_Rbad_char_d0_df_ = 577//start_of_rule_list + 16
+ ,rhs1_Rbad_char_d0_df_ = 119
+ ,rhs2_Rbad_char_d0_df_ = 120
+ ,rhs3_Rbad_char_d0_df_ = 121
+ ,rhs4_Rbad_char_d0_df_ = 122
+ ,rhs5_Rbad_char_d0_df_ = 123
+ ,rhs6_Rbad_char_d0_df_ = 124
+ ,rhs7_Rbad_char_d0_df_ = 125
+ ,rhs8_Rbad_char_d0_df_ = 126
+ ,rhs9_Rbad_char_d0_df_ = 127
+ ,rhs10_Rbad_char_d0_df_ = 128
+ ,rhs11_Rbad_char_d0_df_ = 129
+ ,rhs12_Rbad_char_d0_df_ = 130
+ ,rhs13_Rbad_char_d0_df_ = 131
+ ,rhs14_Rbad_char_d0_df_ = 132
+ ,rhs15_Rbad_char_d0_df_ = 133
+ ,rhs16_Rbad_char_d0_df_ = 134
+ ,R_Rbad_char_e0_ef_ = 578//start_of_rule_list + 18
+ ,rhs1_Rbad_char_e0_ef_ = 135
+ ,rhs2_Rbad_char_e0_ef_ = 136
+ ,rhs3_Rbad_char_e0_ef_ = 137
+ ,rhs4_Rbad_char_e0_ef_ = 138
+ ,rhs5_Rbad_char_e0_ef_ = 139
+ ,rhs6_Rbad_char_e0_ef_ = 140
+ ,rhs7_Rbad_char_e0_ef_ = 141
+ ,rhs8_Rbad_char_e0_ef_ = 142
+ ,rhs9_Rbad_char_e0_ef_ = 143
+ ,rhs10_Rbad_char_e0_ef_ = 144
+ ,rhs11_Rbad_char_e0_ef_ = 145
+ ,rhs12_Rbad_char_e0_ef_ = 146
+ ,rhs13_Rbad_char_e0_ef_ = 147
+ ,rhs14_Rbad_char_e0_ef_ = 148
+ ,rhs15_Rbad_char_e0_ef_ = 149
+ ,rhs16_Rbad_char_e0_ef_ = 150
+ ,R_Rbad_char_f0_ff_ = 579//start_of_rule_list + 20
+ ,rhs1_Rbad_char_f0_ff_ = 151
+ ,rhs2_Rbad_char_f0_ff_ = 152
+ ,rhs3_Rbad_char_f0_ff_ = 153
+ ,rhs4_Rbad_char_f0_ff_ = 154
+ ,rhs5_Rbad_char_f0_ff_ = 155
+ ,rhs6_Rbad_char_f0_ff_ = 156
+ ,rhs7_Rbad_char_f0_ff_ = 157
+ ,rhs8_Rbad_char_f0_ff_ = 158
+ ,rhs9_Rbad_char_f0_ff_ = 159
+ ,rhs10_Rbad_char_f0_ff_ = 160
+ ,rhs11_Rbad_char_f0_ff_ = 161
+ ,rhs12_Rbad_char_f0_ff_ = 162
+ ,rhs13_Rbad_char_f0_ff_ = 163
+ ,rhs14_Rbad_char_f0_ff_ = 164
+ ,rhs15_Rbad_char_f0_ff_ = 165
+ ,rhs16_Rbad_char_f0_ff_ = 166
+ };
+ //no of la sets = 1
+ //no of states = 167
+ Cbad_char_set();
+ ~Cbad_char_set();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[167];
+ };
+struct Rbad_char_set;
+struct Rbad_char_00_0f;
+struct Rbad_char_10_7f;
+struct Rbad_char_80_8f;
+struct Rbad_char_90_9f;
+struct Rbad_char_a0_af;
+struct Rbad_char_b0_bf;
+struct Rbad_char_c0_cf;
+struct Rbad_char_d0_df;
+struct Rbad_char_e0_ef;
+struct Rbad_char_f0_ff;
+struct Rbad_char_set:public yacco2::CAbs_lr1_sym {
+ Rbad_char_set(yacco2::Parser* P);
+ void op();
+ public:
+};
+
+struct Rbad_char_00_0f:public yacco2::CAbs_lr1_sym {
+ Rbad_char_00_0f(yacco2::Parser* P);
+ public:
+};
+
+struct Rbad_char_10_7f:public yacco2::CAbs_lr1_sym {
+ Rbad_char_10_7f(yacco2::Parser* P);
+ public:
+};
+
+struct Rbad_char_80_8f:public yacco2::CAbs_lr1_sym {
+ Rbad_char_80_8f(yacco2::Parser* P);
+ public:
+};
+
+struct Rbad_char_90_9f:public yacco2::CAbs_lr1_sym {
+ Rbad_char_90_9f(yacco2::Parser* P);
+ public:
+};
+
+struct Rbad_char_a0_af:public yacco2::CAbs_lr1_sym {
+ Rbad_char_a0_af(yacco2::Parser* P);
+ public:
+};
+
+struct Rbad_char_b0_bf:public yacco2::CAbs_lr1_sym {
+ Rbad_char_b0_bf(yacco2::Parser* P);
+ public:
+};
+
+struct Rbad_char_c0_cf:public yacco2::CAbs_lr1_sym {
+ Rbad_char_c0_cf(yacco2::Parser* P);
+ public:
+};
+
+struct Rbad_char_d0_df:public yacco2::CAbs_lr1_sym {
+ Rbad_char_d0_df(yacco2::Parser* P);
+ public:
+};
+
+struct Rbad_char_e0_ef:public yacco2::CAbs_lr1_sym {
+ Rbad_char_e0_ef(yacco2::Parser* P);
+ public:
+};
+
+struct Rbad_char_f0_ff:public yacco2::CAbs_lr1_sym {
+ Rbad_char_f0_ff(yacco2::Parser* P);
+ public:
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/bad_char_set.lex b/web/yacco2/compiler/grammars/bad_char_set.lex
new file mode 100644
index 0000000000..762e2e3eb0
--- /dev/null
+++ b/web/yacco2/compiler/grammars/bad_char_set.lex
@@ -0,0 +1,122 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: bad_char_set.lex
+dates: 16 June 2003
+Purpose: bad char characters
+Note:
+ The reason to be explicit on the bad characters is
+ performance: First set of thread is specific on each terminal
+ and not general using |+| with filter logic.
+Returned: Err_bad_char
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |bad_char_set| Thread.\fbreak
+|bad_char_set| recognizes characters in the range of
+0 .. 8, 14..31, 127 .. 255. This is my take at the momment
+on bad dudes.
+The terminal literal is a variant on the hex sequence
+without the escape part. This is just to reference
+and display it rather than deal with its
+ binary representation and purpose.
+
+|bad_char_set| is just a single character
+recognizer ie its first set.
+This thread can be removed from the thread stable giving
+the complete character range to play with across your grammars.
+The raw character terminals defines them.
+The breaking up into a character range per rule allows
+the drawings to be contained per print page.
+This is a little more estheque than a hanging ladder of
+subrules exceeding the bottom part of the sheet.
+@/
+fsm
+(fsm-id "bad_char_set.lex",fsm-filename bad_char_set,fsm-namespace NS_bad_char_set
+,fsm-class Cbad_char_set,fsm-version "1.0",fsm-date "16 Juin 2003",fsm-debug "false"
+,fsm-comments "Bad source character set recognizer.")
+parallel-parser
+( parallel-thread-function
+ TH_bad_char_set
+ ***
+ parallel-la-boundary
+ eolr
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+rules{
+Rbad_char_set (
+lhs{
+ op
+ CAbs_lr1_sym* sym = new Err_bad_char(rule_info__.parser__->start_token__);
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ ***
+ }
+){
+ -> Rbad_char_00_0f
+ -> Rbad_char_10_7f
+ -> Rbad_char_80_8f
+ -> Rbad_char_90_9f
+ -> Rbad_char_a0_af
+ -> Rbad_char_b0_bf
+ -> Rbad_char_c0_cf
+ -> Rbad_char_d0_df
+ -> Rbad_char_e0_ef
+ -> Rbad_char_f0_ff
+}
+
+Rbad_char_00_0f (){
+ -> "x00" -> "x01" -> "x02" -> "x03" -> "x04" -> "x05" -> "x06" -> "x07"
+ -> "x08"
+ -> "x0e" -> "x0f"
+}
+
+Rbad_char_10_7f (){
+ -> "x10" -> "x11" -> "x12" -> "x13" -> "x14" -> "x15" -> "x16" -> "x17"
+ -> "x18" -> "x19" -> "x1a" -> "x1b" -> "x1c" -> "x1d" -> "x1e" -> "x1f"
+ -> "x7f"
+}
+
+Rbad_char_80_8f (){
+ -> "x80" -> "x81" -> "x82" -> "x83" -> "x84" -> "x85" -> "x86" -> "x87"
+ -> "x88" -> "x89" -> "x8a" -> "x8b" -> "x8c" -> "x8d" -> "x8e" -> "x8f"
+}
+
+Rbad_char_90_9f (){
+ -> "x90" -> "x91" -> "x92" -> "x93" -> "x94" -> "x95" -> "x96" -> "x97"
+ -> "x98" -> "x99" -> "x9a" -> "x9b" -> "x9c" -> "x9d" -> "x9e" -> "x9f"
+}
+
+Rbad_char_a0_af (){
+ -> "xa0" -> "xa1" -> "xa2" -> "xa3" -> "xa4" -> "xa5" -> "xa6" -> "xa7"
+ -> "xa8" -> "xa9" -> "xaa" -> "xab" -> "xac" -> "xad" -> "xae" -> "xaf"
+}
+
+Rbad_char_b0_bf (){
+ -> "xb0" -> "xb1" -> "xb2" -> "xb3" -> "xb4" -> "xb5" -> "xb6" -> "xb7"
+ -> "xb8" -> "xb9" -> "xba" -> "xbb" -> "xbc" -> "xbd" -> "xbe" -> "xbf"
+}
+
+Rbad_char_c0_cf (){
+ -> "xc0" -> "xc1" -> "xc2" -> "xc3" -> "xc4" -> "xc5" -> "xc6" -> "xc7"
+ -> "xc8" -> "xc9" -> "xca" -> "xcb" -> "xcc" -> "xcd" -> "xce" -> "xcf"
+}
+
+Rbad_char_d0_df (){
+ -> "xd0" -> "xd1" -> "xd2" -> "xd3" -> "xd4" -> "xd5" -> "xd6" -> "xd7"
+ -> "xd8" -> "xd9" -> "xda" -> "xdb" -> "xdc" -> "xdd" -> "xde" -> "xdf"
+}
+
+Rbad_char_e0_ef (){
+ -> "xe0" -> "xe1" -> "xe2" -> "xe3" -> "xe4" -> "xe5" -> "xe6" -> "xe7"
+ -> "xe8" -> "xe9" -> "xea" -> "xeb" -> "xec" -> "xed" -> "xee" -> "xef"
+}
+
+Rbad_char_f0_ff (){
+ -> "xf0" -> "xf1" -> "xf2" -> "xf3" -> "xf4" -> "xf5" -> "xf6" -> "xf7"
+ -> "xf8" -> "xf9" -> "xfa" -> "xfb" -> "xfc" -> "xfd" -> "xfe" -> "xff"
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/bad_char_setsym.cpp b/web/yacco2/compiler/grammars/bad_char_setsym.cpp
new file mode 100644
index 0000000000..ed7b842a27
--- /dev/null
+++ b/web/yacco2/compiler/grammars/bad_char_setsym.cpp
@@ -0,0 +1,2382 @@
+/*
+ File: bad_char_setsym.cpp
+ Date and Time: Fri Jan 30 18:55:05 2015
+*/
+#include "bad_char_set.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_bad_char_set;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_bad_char_set::TH_bad_char_set(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_bad_char_set;
+ NS_bad_char_set::Cbad_char_set Cbad_char_set_;// parallel-parser's parse table
+#define ssPARSE_TABLE Cbad_char_set_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_bad_char_set::PROC_TH_bad_char_set(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_bad_char_set";
+ static bool one_time(false);
+ static NS_bad_char_set::Cbad_char_set* NS_bad_char_set_Cbad_char_set_(0);// parallel-parser's fsm table
+ static Parser* NS_bad_char_set_Cbad_char_set_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_bad_char_set_Cbad_char_set_ = new NS_bad_char_set::Cbad_char_set();// parallel-parser's fsm table
+ NS_bad_char_set_Cbad_char_set_parser = new Parser(*NS_bad_char_set_Cbad_char_set_,Caller_pp);
+ }
+ proc_parser = NS_bad_char_set_Cbad_char_set_parser;
+#include "wproc_pp_core.h"
+}
+void
+Cbad_char_set::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rbad_char_set_:{
+ Rbad_char_set* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_set(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_set*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs2_Rbad_char_set_:{
+ Rbad_char_set* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_set(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_set*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs3_Rbad_char_set_:{
+ Rbad_char_set* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_set(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_set*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs4_Rbad_char_set_:{
+ Rbad_char_set* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_set(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_set*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs5_Rbad_char_set_:{
+ Rbad_char_set* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_set(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_set*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs6_Rbad_char_set_:{
+ Rbad_char_set* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_set(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_set*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs7_Rbad_char_set_:{
+ Rbad_char_set* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_set(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_set*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs8_Rbad_char_set_:{
+ Rbad_char_set* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_set(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_set*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs9_Rbad_char_set_:{
+ Rbad_char_set* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_set(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_set*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs10_Rbad_char_set_:{
+ Rbad_char_set* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_set(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_set*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs1_Rbad_char_00_0f_:{
+ Rbad_char_00_0f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_00_0f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_00_0f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rbad_char_00_0f_:{
+ Rbad_char_00_0f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_00_0f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_00_0f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs3_Rbad_char_00_0f_:{
+ Rbad_char_00_0f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_00_0f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_00_0f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs4_Rbad_char_00_0f_:{
+ Rbad_char_00_0f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_00_0f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_00_0f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs5_Rbad_char_00_0f_:{
+ Rbad_char_00_0f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_00_0f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_00_0f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs6_Rbad_char_00_0f_:{
+ Rbad_char_00_0f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_00_0f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_00_0f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs7_Rbad_char_00_0f_:{
+ Rbad_char_00_0f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_00_0f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_00_0f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs8_Rbad_char_00_0f_:{
+ Rbad_char_00_0f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_00_0f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_00_0f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs9_Rbad_char_00_0f_:{
+ Rbad_char_00_0f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_00_0f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_00_0f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs10_Rbad_char_00_0f_:{
+ Rbad_char_00_0f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_00_0f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_00_0f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs11_Rbad_char_00_0f_:{
+ Rbad_char_00_0f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_00_0f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_00_0f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rbad_char_10_7f_:{
+ Rbad_char_10_7f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_10_7f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_10_7f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rbad_char_10_7f_:{
+ Rbad_char_10_7f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_10_7f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_10_7f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs3_Rbad_char_10_7f_:{
+ Rbad_char_10_7f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_10_7f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_10_7f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs4_Rbad_char_10_7f_:{
+ Rbad_char_10_7f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_10_7f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_10_7f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs5_Rbad_char_10_7f_:{
+ Rbad_char_10_7f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_10_7f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_10_7f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs6_Rbad_char_10_7f_:{
+ Rbad_char_10_7f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_10_7f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_10_7f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs7_Rbad_char_10_7f_:{
+ Rbad_char_10_7f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_10_7f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_10_7f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs8_Rbad_char_10_7f_:{
+ Rbad_char_10_7f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_10_7f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_10_7f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs9_Rbad_char_10_7f_:{
+ Rbad_char_10_7f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_10_7f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_10_7f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs10_Rbad_char_10_7f_:{
+ Rbad_char_10_7f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_10_7f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_10_7f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs11_Rbad_char_10_7f_:{
+ Rbad_char_10_7f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_10_7f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_10_7f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs12_Rbad_char_10_7f_:{
+ Rbad_char_10_7f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_10_7f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_10_7f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs13_Rbad_char_10_7f_:{
+ Rbad_char_10_7f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_10_7f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_10_7f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs14_Rbad_char_10_7f_:{
+ Rbad_char_10_7f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_10_7f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_10_7f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs15_Rbad_char_10_7f_:{
+ Rbad_char_10_7f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_10_7f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_10_7f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs16_Rbad_char_10_7f_:{
+ Rbad_char_10_7f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_10_7f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_10_7f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs17_Rbad_char_10_7f_:{
+ Rbad_char_10_7f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_10_7f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_10_7f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rbad_char_80_8f_:{
+ Rbad_char_80_8f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_80_8f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_80_8f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rbad_char_80_8f_:{
+ Rbad_char_80_8f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_80_8f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_80_8f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs3_Rbad_char_80_8f_:{
+ Rbad_char_80_8f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_80_8f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_80_8f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs4_Rbad_char_80_8f_:{
+ Rbad_char_80_8f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_80_8f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_80_8f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs5_Rbad_char_80_8f_:{
+ Rbad_char_80_8f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_80_8f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_80_8f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs6_Rbad_char_80_8f_:{
+ Rbad_char_80_8f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_80_8f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_80_8f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs7_Rbad_char_80_8f_:{
+ Rbad_char_80_8f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_80_8f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_80_8f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs8_Rbad_char_80_8f_:{
+ Rbad_char_80_8f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_80_8f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_80_8f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs9_Rbad_char_80_8f_:{
+ Rbad_char_80_8f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_80_8f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_80_8f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs10_Rbad_char_80_8f_:{
+ Rbad_char_80_8f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_80_8f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_80_8f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs11_Rbad_char_80_8f_:{
+ Rbad_char_80_8f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_80_8f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_80_8f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs12_Rbad_char_80_8f_:{
+ Rbad_char_80_8f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_80_8f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_80_8f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs13_Rbad_char_80_8f_:{
+ Rbad_char_80_8f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_80_8f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_80_8f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs14_Rbad_char_80_8f_:{
+ Rbad_char_80_8f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_80_8f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_80_8f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs15_Rbad_char_80_8f_:{
+ Rbad_char_80_8f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_80_8f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_80_8f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs16_Rbad_char_80_8f_:{
+ Rbad_char_80_8f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_80_8f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_80_8f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rbad_char_90_9f_:{
+ Rbad_char_90_9f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_90_9f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_90_9f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rbad_char_90_9f_:{
+ Rbad_char_90_9f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_90_9f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_90_9f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs3_Rbad_char_90_9f_:{
+ Rbad_char_90_9f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_90_9f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_90_9f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs4_Rbad_char_90_9f_:{
+ Rbad_char_90_9f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_90_9f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_90_9f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs5_Rbad_char_90_9f_:{
+ Rbad_char_90_9f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_90_9f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_90_9f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs6_Rbad_char_90_9f_:{
+ Rbad_char_90_9f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_90_9f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_90_9f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs7_Rbad_char_90_9f_:{
+ Rbad_char_90_9f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_90_9f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_90_9f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs8_Rbad_char_90_9f_:{
+ Rbad_char_90_9f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_90_9f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_90_9f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs9_Rbad_char_90_9f_:{
+ Rbad_char_90_9f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_90_9f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_90_9f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs10_Rbad_char_90_9f_:{
+ Rbad_char_90_9f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_90_9f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_90_9f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs11_Rbad_char_90_9f_:{
+ Rbad_char_90_9f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_90_9f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_90_9f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs12_Rbad_char_90_9f_:{
+ Rbad_char_90_9f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_90_9f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_90_9f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs13_Rbad_char_90_9f_:{
+ Rbad_char_90_9f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_90_9f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_90_9f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs14_Rbad_char_90_9f_:{
+ Rbad_char_90_9f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_90_9f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_90_9f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs15_Rbad_char_90_9f_:{
+ Rbad_char_90_9f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_90_9f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_90_9f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs16_Rbad_char_90_9f_:{
+ Rbad_char_90_9f* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_90_9f(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_90_9f*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rbad_char_a0_af_:{
+ Rbad_char_a0_af* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_a0_af(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_a0_af*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rbad_char_a0_af_:{
+ Rbad_char_a0_af* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_a0_af(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_a0_af*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs3_Rbad_char_a0_af_:{
+ Rbad_char_a0_af* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_a0_af(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_a0_af*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs4_Rbad_char_a0_af_:{
+ Rbad_char_a0_af* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_a0_af(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_a0_af*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs5_Rbad_char_a0_af_:{
+ Rbad_char_a0_af* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_a0_af(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_a0_af*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs6_Rbad_char_a0_af_:{
+ Rbad_char_a0_af* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_a0_af(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_a0_af*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs7_Rbad_char_a0_af_:{
+ Rbad_char_a0_af* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_a0_af(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_a0_af*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs8_Rbad_char_a0_af_:{
+ Rbad_char_a0_af* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_a0_af(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_a0_af*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs9_Rbad_char_a0_af_:{
+ Rbad_char_a0_af* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_a0_af(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_a0_af*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs10_Rbad_char_a0_af_:{
+ Rbad_char_a0_af* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_a0_af(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_a0_af*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs11_Rbad_char_a0_af_:{
+ Rbad_char_a0_af* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_a0_af(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_a0_af*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs12_Rbad_char_a0_af_:{
+ Rbad_char_a0_af* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_a0_af(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_a0_af*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs13_Rbad_char_a0_af_:{
+ Rbad_char_a0_af* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_a0_af(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_a0_af*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs14_Rbad_char_a0_af_:{
+ Rbad_char_a0_af* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_a0_af(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_a0_af*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs15_Rbad_char_a0_af_:{
+ Rbad_char_a0_af* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_a0_af(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_a0_af*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs16_Rbad_char_a0_af_:{
+ Rbad_char_a0_af* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_a0_af(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_a0_af*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rbad_char_b0_bf_:{
+ Rbad_char_b0_bf* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_b0_bf(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_b0_bf*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rbad_char_b0_bf_:{
+ Rbad_char_b0_bf* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_b0_bf(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_b0_bf*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs3_Rbad_char_b0_bf_:{
+ Rbad_char_b0_bf* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_b0_bf(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_b0_bf*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs4_Rbad_char_b0_bf_:{
+ Rbad_char_b0_bf* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_b0_bf(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_b0_bf*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs5_Rbad_char_b0_bf_:{
+ Rbad_char_b0_bf* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_b0_bf(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_b0_bf*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs6_Rbad_char_b0_bf_:{
+ Rbad_char_b0_bf* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_b0_bf(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_b0_bf*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs7_Rbad_char_b0_bf_:{
+ Rbad_char_b0_bf* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_b0_bf(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_b0_bf*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs8_Rbad_char_b0_bf_:{
+ Rbad_char_b0_bf* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_b0_bf(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_b0_bf*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs9_Rbad_char_b0_bf_:{
+ Rbad_char_b0_bf* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_b0_bf(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_b0_bf*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs10_Rbad_char_b0_bf_:{
+ Rbad_char_b0_bf* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_b0_bf(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_b0_bf*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs11_Rbad_char_b0_bf_:{
+ Rbad_char_b0_bf* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_b0_bf(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_b0_bf*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs12_Rbad_char_b0_bf_:{
+ Rbad_char_b0_bf* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_b0_bf(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_b0_bf*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs13_Rbad_char_b0_bf_:{
+ Rbad_char_b0_bf* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_b0_bf(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_b0_bf*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs14_Rbad_char_b0_bf_:{
+ Rbad_char_b0_bf* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_b0_bf(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_b0_bf*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs15_Rbad_char_b0_bf_:{
+ Rbad_char_b0_bf* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_b0_bf(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_b0_bf*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs16_Rbad_char_b0_bf_:{
+ Rbad_char_b0_bf* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_b0_bf(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_b0_bf*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rbad_char_c0_cf_:{
+ Rbad_char_c0_cf* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_c0_cf(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_c0_cf*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rbad_char_c0_cf_:{
+ Rbad_char_c0_cf* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_c0_cf(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_c0_cf*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs3_Rbad_char_c0_cf_:{
+ Rbad_char_c0_cf* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_c0_cf(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_c0_cf*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs4_Rbad_char_c0_cf_:{
+ Rbad_char_c0_cf* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_c0_cf(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_c0_cf*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs5_Rbad_char_c0_cf_:{
+ Rbad_char_c0_cf* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_c0_cf(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_c0_cf*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs6_Rbad_char_c0_cf_:{
+ Rbad_char_c0_cf* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_c0_cf(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_c0_cf*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs7_Rbad_char_c0_cf_:{
+ Rbad_char_c0_cf* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_c0_cf(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_c0_cf*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs8_Rbad_char_c0_cf_:{
+ Rbad_char_c0_cf* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_c0_cf(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_c0_cf*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs9_Rbad_char_c0_cf_:{
+ Rbad_char_c0_cf* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_c0_cf(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_c0_cf*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs10_Rbad_char_c0_cf_:{
+ Rbad_char_c0_cf* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_c0_cf(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_c0_cf*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs11_Rbad_char_c0_cf_:{
+ Rbad_char_c0_cf* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_c0_cf(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_c0_cf*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs12_Rbad_char_c0_cf_:{
+ Rbad_char_c0_cf* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_c0_cf(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_c0_cf*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs13_Rbad_char_c0_cf_:{
+ Rbad_char_c0_cf* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_c0_cf(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_c0_cf*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs14_Rbad_char_c0_cf_:{
+ Rbad_char_c0_cf* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_c0_cf(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_c0_cf*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs15_Rbad_char_c0_cf_:{
+ Rbad_char_c0_cf* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_c0_cf(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_c0_cf*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs16_Rbad_char_c0_cf_:{
+ Rbad_char_c0_cf* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_c0_cf(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_c0_cf*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rbad_char_d0_df_:{
+ Rbad_char_d0_df* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_d0_df(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_d0_df*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rbad_char_d0_df_:{
+ Rbad_char_d0_df* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_d0_df(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_d0_df*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs3_Rbad_char_d0_df_:{
+ Rbad_char_d0_df* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_d0_df(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_d0_df*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs4_Rbad_char_d0_df_:{
+ Rbad_char_d0_df* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_d0_df(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_d0_df*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs5_Rbad_char_d0_df_:{
+ Rbad_char_d0_df* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_d0_df(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_d0_df*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs6_Rbad_char_d0_df_:{
+ Rbad_char_d0_df* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_d0_df(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_d0_df*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs7_Rbad_char_d0_df_:{
+ Rbad_char_d0_df* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_d0_df(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_d0_df*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs8_Rbad_char_d0_df_:{
+ Rbad_char_d0_df* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_d0_df(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_d0_df*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs9_Rbad_char_d0_df_:{
+ Rbad_char_d0_df* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_d0_df(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_d0_df*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs10_Rbad_char_d0_df_:{
+ Rbad_char_d0_df* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_d0_df(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_d0_df*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs11_Rbad_char_d0_df_:{
+ Rbad_char_d0_df* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_d0_df(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_d0_df*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs12_Rbad_char_d0_df_:{
+ Rbad_char_d0_df* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_d0_df(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_d0_df*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs13_Rbad_char_d0_df_:{
+ Rbad_char_d0_df* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_d0_df(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_d0_df*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs14_Rbad_char_d0_df_:{
+ Rbad_char_d0_df* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_d0_df(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_d0_df*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs15_Rbad_char_d0_df_:{
+ Rbad_char_d0_df* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_d0_df(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_d0_df*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs16_Rbad_char_d0_df_:{
+ Rbad_char_d0_df* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_d0_df(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_d0_df*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rbad_char_e0_ef_:{
+ Rbad_char_e0_ef* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_e0_ef(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_e0_ef*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rbad_char_e0_ef_:{
+ Rbad_char_e0_ef* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_e0_ef(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_e0_ef*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs3_Rbad_char_e0_ef_:{
+ Rbad_char_e0_ef* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_e0_ef(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_e0_ef*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs4_Rbad_char_e0_ef_:{
+ Rbad_char_e0_ef* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_e0_ef(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_e0_ef*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs5_Rbad_char_e0_ef_:{
+ Rbad_char_e0_ef* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_e0_ef(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_e0_ef*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs6_Rbad_char_e0_ef_:{
+ Rbad_char_e0_ef* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_e0_ef(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_e0_ef*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs7_Rbad_char_e0_ef_:{
+ Rbad_char_e0_ef* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_e0_ef(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_e0_ef*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs8_Rbad_char_e0_ef_:{
+ Rbad_char_e0_ef* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_e0_ef(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_e0_ef*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs9_Rbad_char_e0_ef_:{
+ Rbad_char_e0_ef* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_e0_ef(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_e0_ef*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs10_Rbad_char_e0_ef_:{
+ Rbad_char_e0_ef* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_e0_ef(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_e0_ef*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs11_Rbad_char_e0_ef_:{
+ Rbad_char_e0_ef* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_e0_ef(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_e0_ef*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs12_Rbad_char_e0_ef_:{
+ Rbad_char_e0_ef* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_e0_ef(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_e0_ef*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs13_Rbad_char_e0_ef_:{
+ Rbad_char_e0_ef* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_e0_ef(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_e0_ef*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs14_Rbad_char_e0_ef_:{
+ Rbad_char_e0_ef* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_e0_ef(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_e0_ef*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs15_Rbad_char_e0_ef_:{
+ Rbad_char_e0_ef* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_e0_ef(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_e0_ef*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs16_Rbad_char_e0_ef_:{
+ Rbad_char_e0_ef* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_e0_ef(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_e0_ef*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rbad_char_f0_ff_:{
+ Rbad_char_f0_ff* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_f0_ff(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_f0_ff*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rbad_char_f0_ff_:{
+ Rbad_char_f0_ff* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_f0_ff(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_f0_ff*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs3_Rbad_char_f0_ff_:{
+ Rbad_char_f0_ff* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_f0_ff(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_f0_ff*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs4_Rbad_char_f0_ff_:{
+ Rbad_char_f0_ff* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_f0_ff(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_f0_ff*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs5_Rbad_char_f0_ff_:{
+ Rbad_char_f0_ff* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_f0_ff(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_f0_ff*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs6_Rbad_char_f0_ff_:{
+ Rbad_char_f0_ff* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_f0_ff(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_f0_ff*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs7_Rbad_char_f0_ff_:{
+ Rbad_char_f0_ff* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_f0_ff(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_f0_ff*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs8_Rbad_char_f0_ff_:{
+ Rbad_char_f0_ff* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_f0_ff(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_f0_ff*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs9_Rbad_char_f0_ff_:{
+ Rbad_char_f0_ff* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_f0_ff(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_f0_ff*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs10_Rbad_char_f0_ff_:{
+ Rbad_char_f0_ff* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_f0_ff(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_f0_ff*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs11_Rbad_char_f0_ff_:{
+ Rbad_char_f0_ff* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_f0_ff(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_f0_ff*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs12_Rbad_char_f0_ff_:{
+ Rbad_char_f0_ff* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_f0_ff(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_f0_ff*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs13_Rbad_char_f0_ff_:{
+ Rbad_char_f0_ff* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_f0_ff(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_f0_ff*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs14_Rbad_char_f0_ff_:{
+ Rbad_char_f0_ff* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_f0_ff(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_f0_ff*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs15_Rbad_char_f0_ff_:{
+ Rbad_char_f0_ff* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_f0_ff(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_f0_ff*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs16_Rbad_char_f0_ff_:{
+ Rbad_char_f0_ff* sym;
+ if(re->rule_ == 0){
+ sym = new Rbad_char_f0_ff(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbad_char_f0_ff*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/bad_char_settbl.cpp b/web/yacco2/compiler/grammars/bad_char_settbl.cpp
new file mode 100644
index 0000000000..16aacf2a55
--- /dev/null
+++ b/web/yacco2/compiler/grammars/bad_char_settbl.cpp
@@ -0,0 +1,2689 @@
+/*
+ File: bad_char_settbl.cpp
+ Date and Time: Fri Jan 30 18:55:05 2015
+*/
+#include "bad_char_set.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_bad_char_set;// grammar's ns
+// first set terminals
+// LR1_eolr
+yacco2::UCHAR LA1_Cbad_char_set[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Cbad_char_set;
+extern yacco2::State S2_Cbad_char_set;
+extern yacco2::State S3_Cbad_char_set;
+extern yacco2::State S4_Cbad_char_set;
+extern yacco2::State S5_Cbad_char_set;
+extern yacco2::State S6_Cbad_char_set;
+extern yacco2::State S7_Cbad_char_set;
+extern yacco2::State S8_Cbad_char_set;
+extern yacco2::State S9_Cbad_char_set;
+extern yacco2::State S10_Cbad_char_set;
+extern yacco2::State S11_Cbad_char_set;
+extern yacco2::State S12_Cbad_char_set;
+extern yacco2::State S13_Cbad_char_set;
+extern yacco2::State S14_Cbad_char_set;
+extern yacco2::State S15_Cbad_char_set;
+extern yacco2::State S16_Cbad_char_set;
+extern yacco2::State S17_Cbad_char_set;
+extern yacco2::State S18_Cbad_char_set;
+extern yacco2::State S19_Cbad_char_set;
+extern yacco2::State S20_Cbad_char_set;
+extern yacco2::State S21_Cbad_char_set;
+extern yacco2::State S22_Cbad_char_set;
+extern yacco2::State S23_Cbad_char_set;
+extern yacco2::State S24_Cbad_char_set;
+extern yacco2::State S25_Cbad_char_set;
+extern yacco2::State S26_Cbad_char_set;
+extern yacco2::State S27_Cbad_char_set;
+extern yacco2::State S28_Cbad_char_set;
+extern yacco2::State S29_Cbad_char_set;
+extern yacco2::State S30_Cbad_char_set;
+extern yacco2::State S31_Cbad_char_set;
+extern yacco2::State S32_Cbad_char_set;
+extern yacco2::State S33_Cbad_char_set;
+extern yacco2::State S34_Cbad_char_set;
+extern yacco2::State S35_Cbad_char_set;
+extern yacco2::State S36_Cbad_char_set;
+extern yacco2::State S37_Cbad_char_set;
+extern yacco2::State S38_Cbad_char_set;
+extern yacco2::State S39_Cbad_char_set;
+extern yacco2::State S40_Cbad_char_set;
+extern yacco2::State S41_Cbad_char_set;
+extern yacco2::State S42_Cbad_char_set;
+extern yacco2::State S43_Cbad_char_set;
+extern yacco2::State S44_Cbad_char_set;
+extern yacco2::State S45_Cbad_char_set;
+extern yacco2::State S46_Cbad_char_set;
+extern yacco2::State S47_Cbad_char_set;
+extern yacco2::State S48_Cbad_char_set;
+extern yacco2::State S49_Cbad_char_set;
+extern yacco2::State S50_Cbad_char_set;
+extern yacco2::State S51_Cbad_char_set;
+extern yacco2::State S52_Cbad_char_set;
+extern yacco2::State S53_Cbad_char_set;
+extern yacco2::State S54_Cbad_char_set;
+extern yacco2::State S55_Cbad_char_set;
+extern yacco2::State S56_Cbad_char_set;
+extern yacco2::State S57_Cbad_char_set;
+extern yacco2::State S58_Cbad_char_set;
+extern yacco2::State S59_Cbad_char_set;
+extern yacco2::State S60_Cbad_char_set;
+extern yacco2::State S61_Cbad_char_set;
+extern yacco2::State S62_Cbad_char_set;
+extern yacco2::State S63_Cbad_char_set;
+extern yacco2::State S64_Cbad_char_set;
+extern yacco2::State S65_Cbad_char_set;
+extern yacco2::State S66_Cbad_char_set;
+extern yacco2::State S67_Cbad_char_set;
+extern yacco2::State S68_Cbad_char_set;
+extern yacco2::State S69_Cbad_char_set;
+extern yacco2::State S70_Cbad_char_set;
+extern yacco2::State S71_Cbad_char_set;
+extern yacco2::State S72_Cbad_char_set;
+extern yacco2::State S73_Cbad_char_set;
+extern yacco2::State S74_Cbad_char_set;
+extern yacco2::State S75_Cbad_char_set;
+extern yacco2::State S76_Cbad_char_set;
+extern yacco2::State S77_Cbad_char_set;
+extern yacco2::State S78_Cbad_char_set;
+extern yacco2::State S79_Cbad_char_set;
+extern yacco2::State S80_Cbad_char_set;
+extern yacco2::State S81_Cbad_char_set;
+extern yacco2::State S82_Cbad_char_set;
+extern yacco2::State S83_Cbad_char_set;
+extern yacco2::State S84_Cbad_char_set;
+extern yacco2::State S85_Cbad_char_set;
+extern yacco2::State S86_Cbad_char_set;
+extern yacco2::State S87_Cbad_char_set;
+extern yacco2::State S88_Cbad_char_set;
+extern yacco2::State S89_Cbad_char_set;
+extern yacco2::State S90_Cbad_char_set;
+extern yacco2::State S91_Cbad_char_set;
+extern yacco2::State S92_Cbad_char_set;
+extern yacco2::State S93_Cbad_char_set;
+extern yacco2::State S94_Cbad_char_set;
+extern yacco2::State S95_Cbad_char_set;
+extern yacco2::State S96_Cbad_char_set;
+extern yacco2::State S97_Cbad_char_set;
+extern yacco2::State S98_Cbad_char_set;
+extern yacco2::State S99_Cbad_char_set;
+extern yacco2::State S100_Cbad_char_set;
+extern yacco2::State S101_Cbad_char_set;
+extern yacco2::State S102_Cbad_char_set;
+extern yacco2::State S103_Cbad_char_set;
+extern yacco2::State S104_Cbad_char_set;
+extern yacco2::State S105_Cbad_char_set;
+extern yacco2::State S106_Cbad_char_set;
+extern yacco2::State S107_Cbad_char_set;
+extern yacco2::State S108_Cbad_char_set;
+extern yacco2::State S109_Cbad_char_set;
+extern yacco2::State S110_Cbad_char_set;
+extern yacco2::State S111_Cbad_char_set;
+extern yacco2::State S112_Cbad_char_set;
+extern yacco2::State S113_Cbad_char_set;
+extern yacco2::State S114_Cbad_char_set;
+extern yacco2::State S115_Cbad_char_set;
+extern yacco2::State S116_Cbad_char_set;
+extern yacco2::State S117_Cbad_char_set;
+extern yacco2::State S118_Cbad_char_set;
+extern yacco2::State S119_Cbad_char_set;
+extern yacco2::State S120_Cbad_char_set;
+extern yacco2::State S121_Cbad_char_set;
+extern yacco2::State S122_Cbad_char_set;
+extern yacco2::State S123_Cbad_char_set;
+extern yacco2::State S124_Cbad_char_set;
+extern yacco2::State S125_Cbad_char_set;
+extern yacco2::State S126_Cbad_char_set;
+extern yacco2::State S127_Cbad_char_set;
+extern yacco2::State S128_Cbad_char_set;
+extern yacco2::State S129_Cbad_char_set;
+extern yacco2::State S130_Cbad_char_set;
+extern yacco2::State S131_Cbad_char_set;
+extern yacco2::State S132_Cbad_char_set;
+extern yacco2::State S133_Cbad_char_set;
+extern yacco2::State S134_Cbad_char_set;
+extern yacco2::State S135_Cbad_char_set;
+extern yacco2::State S136_Cbad_char_set;
+extern yacco2::State S137_Cbad_char_set;
+extern yacco2::State S138_Cbad_char_set;
+extern yacco2::State S139_Cbad_char_set;
+extern yacco2::State S140_Cbad_char_set;
+extern yacco2::State S141_Cbad_char_set;
+extern yacco2::State S142_Cbad_char_set;
+extern yacco2::State S143_Cbad_char_set;
+extern yacco2::State S144_Cbad_char_set;
+extern yacco2::State S145_Cbad_char_set;
+extern yacco2::State S146_Cbad_char_set;
+extern yacco2::State S147_Cbad_char_set;
+extern yacco2::State S148_Cbad_char_set;
+extern yacco2::State S149_Cbad_char_set;
+extern yacco2::State S150_Cbad_char_set;
+extern yacco2::State S151_Cbad_char_set;
+extern yacco2::State S152_Cbad_char_set;
+extern yacco2::State S153_Cbad_char_set;
+extern yacco2::State S154_Cbad_char_set;
+extern yacco2::State S155_Cbad_char_set;
+extern yacco2::State S156_Cbad_char_set;
+extern yacco2::State S157_Cbad_char_set;
+extern yacco2::State S158_Cbad_char_set;
+extern yacco2::State S159_Cbad_char_set;
+extern yacco2::State S160_Cbad_char_set;
+extern yacco2::State S161_Cbad_char_set;
+extern yacco2::State S162_Cbad_char_set;
+extern yacco2::State S163_Cbad_char_set;
+extern yacco2::State S164_Cbad_char_set;
+extern yacco2::State S165_Cbad_char_set;
+extern yacco2::State S166_Cbad_char_set;
+extern yacco2::State S167_Cbad_char_set;
+struct S1std_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[167];
+};
+S1std_Cbad_char_set S1st_Cbad_char_set = {
+ 167
+ ,
+ {// start of table
+ {8,(State*)&S2_Cbad_char_set} // shift sym: raw_nul
+ ,{9,(State*)&S3_Cbad_char_set} // shift sym: raw_soh
+ ,{10,(State*)&S4_Cbad_char_set} // shift sym: raw_stx
+ ,{11,(State*)&S5_Cbad_char_set} // shift sym: raw_etx
+ ,{12,(State*)&S6_Cbad_char_set} // shift sym: raw_eot
+ ,{13,(State*)&S7_Cbad_char_set} // shift sym: raw_enq
+ ,{14,(State*)&S8_Cbad_char_set} // shift sym: raw_ack
+ ,{15,(State*)&S9_Cbad_char_set} // shift sym: raw_bel
+ ,{16,(State*)&S10_Cbad_char_set} // shift sym: raw_bs
+ ,{22,(State*)&S11_Cbad_char_set} // shift sym: raw_so
+ ,{23,(State*)&S12_Cbad_char_set} // shift sym: raw_si
+ ,{24,(State*)&S13_Cbad_char_set} // shift sym: raw_dle
+ ,{25,(State*)&S14_Cbad_char_set} // shift sym: raw_dc1
+ ,{26,(State*)&S15_Cbad_char_set} // shift sym: raw_dc2
+ ,{27,(State*)&S16_Cbad_char_set} // shift sym: raw_dc3
+ ,{28,(State*)&S17_Cbad_char_set} // shift sym: raw_dc4
+ ,{29,(State*)&S18_Cbad_char_set} // shift sym: raw_nak
+ ,{30,(State*)&S19_Cbad_char_set} // shift sym: raw_syn
+ ,{31,(State*)&S20_Cbad_char_set} // shift sym: raw_etb
+ ,{32,(State*)&S21_Cbad_char_set} // shift sym: raw_can
+ ,{33,(State*)&S22_Cbad_char_set} // shift sym: raw_em
+ ,{34,(State*)&S23_Cbad_char_set} // shift sym: raw_sub
+ ,{35,(State*)&S24_Cbad_char_set} // shift sym: raw_esc
+ ,{36,(State*)&S25_Cbad_char_set} // shift sym: raw_fs
+ ,{37,(State*)&S26_Cbad_char_set} // shift sym: raw_gs
+ ,{38,(State*)&S27_Cbad_char_set} // shift sym: raw_rs
+ ,{39,(State*)&S28_Cbad_char_set} // shift sym: raw_us
+ ,{135,(State*)&S29_Cbad_char_set} // shift sym: raw_del
+ ,{136,(State*)&S30_Cbad_char_set} // shift sym: raw_x80
+ ,{137,(State*)&S31_Cbad_char_set} // shift sym: raw_x81
+ ,{138,(State*)&S32_Cbad_char_set} // shift sym: raw_x82
+ ,{139,(State*)&S33_Cbad_char_set} // shift sym: raw_x83
+ ,{140,(State*)&S34_Cbad_char_set} // shift sym: raw_x84
+ ,{141,(State*)&S35_Cbad_char_set} // shift sym: raw_x85
+ ,{142,(State*)&S36_Cbad_char_set} // shift sym: raw_x86
+ ,{143,(State*)&S37_Cbad_char_set} // shift sym: raw_x87
+ ,{144,(State*)&S38_Cbad_char_set} // shift sym: raw_x88
+ ,{145,(State*)&S39_Cbad_char_set} // shift sym: raw_x89
+ ,{146,(State*)&S40_Cbad_char_set} // shift sym: raw_x8a
+ ,{147,(State*)&S41_Cbad_char_set} // shift sym: raw_x8b
+ ,{148,(State*)&S42_Cbad_char_set} // shift sym: raw_x8c
+ ,{149,(State*)&S43_Cbad_char_set} // shift sym: raw_x8d
+ ,{150,(State*)&S44_Cbad_char_set} // shift sym: raw_x8e
+ ,{151,(State*)&S45_Cbad_char_set} // shift sym: raw_x8f
+ ,{152,(State*)&S46_Cbad_char_set} // shift sym: raw_x90
+ ,{153,(State*)&S47_Cbad_char_set} // shift sym: raw_x91
+ ,{154,(State*)&S48_Cbad_char_set} // shift sym: raw_x92
+ ,{155,(State*)&S49_Cbad_char_set} // shift sym: raw_x93
+ ,{156,(State*)&S50_Cbad_char_set} // shift sym: raw_x94
+ ,{157,(State*)&S51_Cbad_char_set} // shift sym: raw_x95
+ ,{158,(State*)&S52_Cbad_char_set} // shift sym: raw_x96
+ ,{159,(State*)&S53_Cbad_char_set} // shift sym: raw_x97
+ ,{160,(State*)&S54_Cbad_char_set} // shift sym: raw_x98
+ ,{161,(State*)&S55_Cbad_char_set} // shift sym: raw_x99
+ ,{162,(State*)&S56_Cbad_char_set} // shift sym: raw_x9a
+ ,{163,(State*)&S57_Cbad_char_set} // shift sym: raw_x9b
+ ,{164,(State*)&S58_Cbad_char_set} // shift sym: raw_x9c
+ ,{165,(State*)&S59_Cbad_char_set} // shift sym: raw_x9d
+ ,{166,(State*)&S60_Cbad_char_set} // shift sym: raw_x9e
+ ,{167,(State*)&S61_Cbad_char_set} // shift sym: raw_x9f
+ ,{168,(State*)&S62_Cbad_char_set} // shift sym: raw_xa0
+ ,{169,(State*)&S63_Cbad_char_set} // shift sym: raw_xa1
+ ,{170,(State*)&S64_Cbad_char_set} // shift sym: raw_xa2
+ ,{171,(State*)&S65_Cbad_char_set} // shift sym: raw_xa3
+ ,{172,(State*)&S66_Cbad_char_set} // shift sym: raw_xa4
+ ,{173,(State*)&S67_Cbad_char_set} // shift sym: raw_xa5
+ ,{174,(State*)&S68_Cbad_char_set} // shift sym: raw_xa6
+ ,{175,(State*)&S69_Cbad_char_set} // shift sym: raw_xa7
+ ,{176,(State*)&S70_Cbad_char_set} // shift sym: raw_xa8
+ ,{177,(State*)&S71_Cbad_char_set} // shift sym: raw_xa9
+ ,{178,(State*)&S72_Cbad_char_set} // shift sym: raw_xaa
+ ,{179,(State*)&S73_Cbad_char_set} // shift sym: raw_xab
+ ,{180,(State*)&S74_Cbad_char_set} // shift sym: raw_xac
+ ,{181,(State*)&S75_Cbad_char_set} // shift sym: raw_xad
+ ,{182,(State*)&S76_Cbad_char_set} // shift sym: raw_xae
+ ,{183,(State*)&S77_Cbad_char_set} // shift sym: raw_xaf
+ ,{184,(State*)&S78_Cbad_char_set} // shift sym: raw_xb0
+ ,{185,(State*)&S79_Cbad_char_set} // shift sym: raw_xb1
+ ,{186,(State*)&S80_Cbad_char_set} // shift sym: raw_xb2
+ ,{187,(State*)&S81_Cbad_char_set} // shift sym: raw_xb3
+ ,{188,(State*)&S82_Cbad_char_set} // shift sym: raw_xb4
+ ,{189,(State*)&S83_Cbad_char_set} // shift sym: raw_xb5
+ ,{190,(State*)&S84_Cbad_char_set} // shift sym: raw_xb6
+ ,{191,(State*)&S85_Cbad_char_set} // shift sym: raw_xb7
+ ,{192,(State*)&S86_Cbad_char_set} // shift sym: raw_xb8
+ ,{193,(State*)&S87_Cbad_char_set} // shift sym: raw_xb9
+ ,{194,(State*)&S88_Cbad_char_set} // shift sym: raw_xba
+ ,{195,(State*)&S89_Cbad_char_set} // shift sym: raw_xbb
+ ,{196,(State*)&S90_Cbad_char_set} // shift sym: raw_xbc
+ ,{197,(State*)&S91_Cbad_char_set} // shift sym: raw_xbd
+ ,{198,(State*)&S92_Cbad_char_set} // shift sym: raw_xbe
+ ,{199,(State*)&S93_Cbad_char_set} // shift sym: raw_xbf
+ ,{200,(State*)&S94_Cbad_char_set} // shift sym: raw_xc0
+ ,{201,(State*)&S95_Cbad_char_set} // shift sym: raw_xc1
+ ,{202,(State*)&S96_Cbad_char_set} // shift sym: raw_xc2
+ ,{203,(State*)&S97_Cbad_char_set} // shift sym: raw_xc3
+ ,{204,(State*)&S98_Cbad_char_set} // shift sym: raw_xc4
+ ,{205,(State*)&S99_Cbad_char_set} // shift sym: raw_xc5
+ ,{206,(State*)&S100_Cbad_char_set} // shift sym: raw_xc6
+ ,{207,(State*)&S101_Cbad_char_set} // shift sym: raw_xc7
+ ,{208,(State*)&S102_Cbad_char_set} // shift sym: raw_xc8
+ ,{209,(State*)&S103_Cbad_char_set} // shift sym: raw_xc9
+ ,{210,(State*)&S104_Cbad_char_set} // shift sym: raw_xca
+ ,{211,(State*)&S105_Cbad_char_set} // shift sym: raw_xcb
+ ,{212,(State*)&S106_Cbad_char_set} // shift sym: raw_xcc
+ ,{213,(State*)&S107_Cbad_char_set} // shift sym: raw_xcd
+ ,{214,(State*)&S108_Cbad_char_set} // shift sym: raw_xce
+ ,{215,(State*)&S109_Cbad_char_set} // shift sym: raw_xcf
+ ,{216,(State*)&S110_Cbad_char_set} // shift sym: raw_xd0
+ ,{217,(State*)&S111_Cbad_char_set} // shift sym: raw_xd1
+ ,{218,(State*)&S112_Cbad_char_set} // shift sym: raw_xd2
+ ,{219,(State*)&S113_Cbad_char_set} // shift sym: raw_xd3
+ ,{220,(State*)&S114_Cbad_char_set} // shift sym: raw_xd4
+ ,{221,(State*)&S115_Cbad_char_set} // shift sym: raw_xd5
+ ,{222,(State*)&S116_Cbad_char_set} // shift sym: raw_xd6
+ ,{223,(State*)&S117_Cbad_char_set} // shift sym: raw_xd7
+ ,{224,(State*)&S118_Cbad_char_set} // shift sym: raw_xd8
+ ,{225,(State*)&S119_Cbad_char_set} // shift sym: raw_xd9
+ ,{226,(State*)&S120_Cbad_char_set} // shift sym: raw_xda
+ ,{227,(State*)&S121_Cbad_char_set} // shift sym: raw_xdb
+ ,{228,(State*)&S122_Cbad_char_set} // shift sym: raw_xdc
+ ,{229,(State*)&S123_Cbad_char_set} // shift sym: raw_xdd
+ ,{230,(State*)&S124_Cbad_char_set} // shift sym: raw_xde
+ ,{231,(State*)&S125_Cbad_char_set} // shift sym: raw_xdf
+ ,{232,(State*)&S126_Cbad_char_set} // shift sym: raw_xe0
+ ,{233,(State*)&S127_Cbad_char_set} // shift sym: raw_xe1
+ ,{234,(State*)&S128_Cbad_char_set} // shift sym: raw_xe2
+ ,{235,(State*)&S129_Cbad_char_set} // shift sym: raw_xe3
+ ,{236,(State*)&S130_Cbad_char_set} // shift sym: raw_xe4
+ ,{237,(State*)&S131_Cbad_char_set} // shift sym: raw_xe5
+ ,{238,(State*)&S132_Cbad_char_set} // shift sym: raw_xe6
+ ,{239,(State*)&S133_Cbad_char_set} // shift sym: raw_xe7
+ ,{240,(State*)&S134_Cbad_char_set} // shift sym: raw_xe8
+ ,{241,(State*)&S135_Cbad_char_set} // shift sym: raw_xe9
+ ,{242,(State*)&S136_Cbad_char_set} // shift sym: raw_xea
+ ,{243,(State*)&S137_Cbad_char_set} // shift sym: raw_xeb
+ ,{244,(State*)&S138_Cbad_char_set} // shift sym: raw_xec
+ ,{245,(State*)&S139_Cbad_char_set} // shift sym: raw_xed
+ ,{246,(State*)&S140_Cbad_char_set} // shift sym: raw_xee
+ ,{247,(State*)&S141_Cbad_char_set} // shift sym: raw_xef
+ ,{248,(State*)&S142_Cbad_char_set} // shift sym: raw_xf0
+ ,{249,(State*)&S143_Cbad_char_set} // shift sym: raw_xf1
+ ,{250,(State*)&S144_Cbad_char_set} // shift sym: raw_xf2
+ ,{251,(State*)&S145_Cbad_char_set} // shift sym: raw_xf3
+ ,{252,(State*)&S146_Cbad_char_set} // shift sym: raw_xf4
+ ,{253,(State*)&S147_Cbad_char_set} // shift sym: raw_xf5
+ ,{254,(State*)&S148_Cbad_char_set} // shift sym: raw_xf6
+ ,{255,(State*)&S149_Cbad_char_set} // shift sym: raw_xf7
+ ,{256,(State*)&S150_Cbad_char_set} // shift sym: raw_xf8
+ ,{257,(State*)&S151_Cbad_char_set} // shift sym: raw_xf9
+ ,{258,(State*)&S152_Cbad_char_set} // shift sym: raw_xfa
+ ,{259,(State*)&S153_Cbad_char_set} // shift sym: raw_xfb
+ ,{260,(State*)&S154_Cbad_char_set} // shift sym: raw_xfc
+ ,{261,(State*)&S155_Cbad_char_set} // shift sym: raw_xfd
+ ,{262,(State*)&S156_Cbad_char_set} // shift sym: raw_xfe
+ ,{263,(State*)&S157_Cbad_char_set} // shift sym: raw_xff
+ ,{569,(State*)&S1_Cbad_char_set} // accept sym: Rbad_char_set
+ ,{570,(State*)&S158_Cbad_char_set} // shift sym: Rbad_char_00_0f
+ ,{571,(State*)&S159_Cbad_char_set} // shift sym: Rbad_char_10_7f
+ ,{572,(State*)&S160_Cbad_char_set} // shift sym: Rbad_char_80_8f
+ ,{573,(State*)&S161_Cbad_char_set} // shift sym: Rbad_char_90_9f
+ ,{574,(State*)&S162_Cbad_char_set} // shift sym: Rbad_char_a0_af
+ ,{575,(State*)&S163_Cbad_char_set} // shift sym: Rbad_char_b0_bf
+ ,{576,(State*)&S164_Cbad_char_set} // shift sym: Rbad_char_c0_cf
+ ,{577,(State*)&S165_Cbad_char_set} // shift sym: Rbad_char_d0_df
+ ,{578,(State*)&S166_Cbad_char_set} // shift sym: Rbad_char_e0_ef
+ ,{579,(State*)&S167_Cbad_char_set} // shift sym: Rbad_char_f0_ff
+ }// end of shift table
+};
+yacco2::State S1_Cbad_char_set = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Cbad_char_set,0,0,0,0};
+struct S2rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Cbad_char_set S2rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs1_Rbad_char_00_0f_}
+ }// end of reduce table
+};
+yacco2::State S2_Cbad_char_set = //State's vectored into symbol: "x00"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Cbad_char_set,0,0,0};
+struct S3rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Cbad_char_set S3rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs2_Rbad_char_00_0f_}
+ }// end of reduce table
+};
+yacco2::State S3_Cbad_char_set = //State's vectored into symbol: "x01"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_Cbad_char_set,0,0,0};
+struct S4rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Cbad_char_set S4rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs3_Rbad_char_00_0f_}
+ }// end of reduce table
+};
+yacco2::State S4_Cbad_char_set = //State's vectored into symbol: "x02"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Cbad_char_set,0,0,0};
+struct S5rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Cbad_char_set S5rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs4_Rbad_char_00_0f_}
+ }// end of reduce table
+};
+yacco2::State S5_Cbad_char_set = //State's vectored into symbol: "x03"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Cbad_char_set,0,0,0};
+struct S6rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Cbad_char_set S6rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs5_Rbad_char_00_0f_}
+ }// end of reduce table
+};
+yacco2::State S6_Cbad_char_set = //State's vectored into symbol: "x04"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Cbad_char_set,0,0,0};
+struct S7rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Cbad_char_set S7rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs6_Rbad_char_00_0f_}
+ }// end of reduce table
+};
+yacco2::State S7_Cbad_char_set = //State's vectored into symbol: "x05"
+{7
+,0,0,0,0,0,(Reduce_tbl*)&S7rt_Cbad_char_set,0,0,0};
+struct S8rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S8rtd_Cbad_char_set S8rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs7_Rbad_char_00_0f_}
+ }// end of reduce table
+};
+yacco2::State S8_Cbad_char_set = //State's vectored into symbol: "x06"
+{8
+,0,0,0,0,0,(Reduce_tbl*)&S8rt_Cbad_char_set,0,0,0};
+struct S9rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Cbad_char_set S9rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs8_Rbad_char_00_0f_}
+ }// end of reduce table
+};
+yacco2::State S9_Cbad_char_set = //State's vectored into symbol: "x07"
+{9
+,0,0,0,0,0,(Reduce_tbl*)&S9rt_Cbad_char_set,0,0,0};
+struct S10rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S10rtd_Cbad_char_set S10rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs9_Rbad_char_00_0f_}
+ }// end of reduce table
+};
+yacco2::State S10_Cbad_char_set = //State's vectored into symbol: "x08"
+{10
+,0,0,0,0,0,(Reduce_tbl*)&S10rt_Cbad_char_set,0,0,0};
+struct S11rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Cbad_char_set S11rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs10_Rbad_char_00_0f_}
+ }// end of reduce table
+};
+yacco2::State S11_Cbad_char_set = //State's vectored into symbol: "x0e"
+{11
+,0,0,0,0,0,(Reduce_tbl*)&S11rt_Cbad_char_set,0,0,0};
+struct S12rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S12rtd_Cbad_char_set S12rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs11_Rbad_char_00_0f_}
+ }// end of reduce table
+};
+yacco2::State S12_Cbad_char_set = //State's vectored into symbol: "x0f"
+{12
+,0,0,0,0,0,(Reduce_tbl*)&S12rt_Cbad_char_set,0,0,0};
+struct S13rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S13rtd_Cbad_char_set S13rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs1_Rbad_char_10_7f_}
+ }// end of reduce table
+};
+yacco2::State S13_Cbad_char_set = //State's vectored into symbol: "x10"
+{13
+,0,0,0,0,0,(Reduce_tbl*)&S13rt_Cbad_char_set,0,0,0};
+struct S14rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S14rtd_Cbad_char_set S14rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs2_Rbad_char_10_7f_}
+ }// end of reduce table
+};
+yacco2::State S14_Cbad_char_set = //State's vectored into symbol: "x11"
+{14
+,0,0,0,0,0,(Reduce_tbl*)&S14rt_Cbad_char_set,0,0,0};
+struct S15rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S15rtd_Cbad_char_set S15rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs3_Rbad_char_10_7f_}
+ }// end of reduce table
+};
+yacco2::State S15_Cbad_char_set = //State's vectored into symbol: "x12"
+{15
+,0,0,0,0,0,(Reduce_tbl*)&S15rt_Cbad_char_set,0,0,0};
+struct S16rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S16rtd_Cbad_char_set S16rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs4_Rbad_char_10_7f_}
+ }// end of reduce table
+};
+yacco2::State S16_Cbad_char_set = //State's vectored into symbol: "x13"
+{16
+,0,0,0,0,0,(Reduce_tbl*)&S16rt_Cbad_char_set,0,0,0};
+struct S17rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S17rtd_Cbad_char_set S17rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs5_Rbad_char_10_7f_}
+ }// end of reduce table
+};
+yacco2::State S17_Cbad_char_set = //State's vectored into symbol: "x14"
+{17
+,0,0,0,0,0,(Reduce_tbl*)&S17rt_Cbad_char_set,0,0,0};
+struct S18rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S18rtd_Cbad_char_set S18rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs6_Rbad_char_10_7f_}
+ }// end of reduce table
+};
+yacco2::State S18_Cbad_char_set = //State's vectored into symbol: "x15"
+{18
+,0,0,0,0,0,(Reduce_tbl*)&S18rt_Cbad_char_set,0,0,0};
+struct S19rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S19rtd_Cbad_char_set S19rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs7_Rbad_char_10_7f_}
+ }// end of reduce table
+};
+yacco2::State S19_Cbad_char_set = //State's vectored into symbol: "x16"
+{19
+,0,0,0,0,0,(Reduce_tbl*)&S19rt_Cbad_char_set,0,0,0};
+struct S20rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S20rtd_Cbad_char_set S20rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs8_Rbad_char_10_7f_}
+ }// end of reduce table
+};
+yacco2::State S20_Cbad_char_set = //State's vectored into symbol: "x17"
+{20
+,0,0,0,0,0,(Reduce_tbl*)&S20rt_Cbad_char_set,0,0,0};
+struct S21rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S21rtd_Cbad_char_set S21rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs9_Rbad_char_10_7f_}
+ }// end of reduce table
+};
+yacco2::State S21_Cbad_char_set = //State's vectored into symbol: "x18"
+{21
+,0,0,0,0,0,(Reduce_tbl*)&S21rt_Cbad_char_set,0,0,0};
+struct S22rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S22rtd_Cbad_char_set S22rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs10_Rbad_char_10_7f_}
+ }// end of reduce table
+};
+yacco2::State S22_Cbad_char_set = //State's vectored into symbol: "x19"
+{22
+,0,0,0,0,0,(Reduce_tbl*)&S22rt_Cbad_char_set,0,0,0};
+struct S23rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S23rtd_Cbad_char_set S23rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs11_Rbad_char_10_7f_}
+ }// end of reduce table
+};
+yacco2::State S23_Cbad_char_set = //State's vectored into symbol: "x1a"
+{23
+,0,0,0,0,0,(Reduce_tbl*)&S23rt_Cbad_char_set,0,0,0};
+struct S24rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S24rtd_Cbad_char_set S24rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs12_Rbad_char_10_7f_}
+ }// end of reduce table
+};
+yacco2::State S24_Cbad_char_set = //State's vectored into symbol: "x1b"
+{24
+,0,0,0,0,0,(Reduce_tbl*)&S24rt_Cbad_char_set,0,0,0};
+struct S25rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S25rtd_Cbad_char_set S25rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs13_Rbad_char_10_7f_}
+ }// end of reduce table
+};
+yacco2::State S25_Cbad_char_set = //State's vectored into symbol: "x1c"
+{25
+,0,0,0,0,0,(Reduce_tbl*)&S25rt_Cbad_char_set,0,0,0};
+struct S26rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S26rtd_Cbad_char_set S26rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs14_Rbad_char_10_7f_}
+ }// end of reduce table
+};
+yacco2::State S26_Cbad_char_set = //State's vectored into symbol: "x1d"
+{26
+,0,0,0,0,0,(Reduce_tbl*)&S26rt_Cbad_char_set,0,0,0};
+struct S27rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S27rtd_Cbad_char_set S27rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs15_Rbad_char_10_7f_}
+ }// end of reduce table
+};
+yacco2::State S27_Cbad_char_set = //State's vectored into symbol: "x1e"
+{27
+,0,0,0,0,0,(Reduce_tbl*)&S27rt_Cbad_char_set,0,0,0};
+struct S28rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S28rtd_Cbad_char_set S28rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs16_Rbad_char_10_7f_}
+ }// end of reduce table
+};
+yacco2::State S28_Cbad_char_set = //State's vectored into symbol: "x1f"
+{28
+,0,0,0,0,0,(Reduce_tbl*)&S28rt_Cbad_char_set,0,0,0};
+struct S29rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S29rtd_Cbad_char_set S29rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs17_Rbad_char_10_7f_}
+ }// end of reduce table
+};
+yacco2::State S29_Cbad_char_set = //State's vectored into symbol: "x7f"
+{29
+,0,0,0,0,0,(Reduce_tbl*)&S29rt_Cbad_char_set,0,0,0};
+struct S30rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S30rtd_Cbad_char_set S30rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs1_Rbad_char_80_8f_}
+ }// end of reduce table
+};
+yacco2::State S30_Cbad_char_set = //State's vectored into symbol: "x80"
+{30
+,0,0,0,0,0,(Reduce_tbl*)&S30rt_Cbad_char_set,0,0,0};
+struct S31rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S31rtd_Cbad_char_set S31rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs2_Rbad_char_80_8f_}
+ }// end of reduce table
+};
+yacco2::State S31_Cbad_char_set = //State's vectored into symbol: "x81"
+{31
+,0,0,0,0,0,(Reduce_tbl*)&S31rt_Cbad_char_set,0,0,0};
+struct S32rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S32rtd_Cbad_char_set S32rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs3_Rbad_char_80_8f_}
+ }// end of reduce table
+};
+yacco2::State S32_Cbad_char_set = //State's vectored into symbol: "x82"
+{32
+,0,0,0,0,0,(Reduce_tbl*)&S32rt_Cbad_char_set,0,0,0};
+struct S33rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S33rtd_Cbad_char_set S33rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs4_Rbad_char_80_8f_}
+ }// end of reduce table
+};
+yacco2::State S33_Cbad_char_set = //State's vectored into symbol: "x83"
+{33
+,0,0,0,0,0,(Reduce_tbl*)&S33rt_Cbad_char_set,0,0,0};
+struct S34rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S34rtd_Cbad_char_set S34rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs5_Rbad_char_80_8f_}
+ }// end of reduce table
+};
+yacco2::State S34_Cbad_char_set = //State's vectored into symbol: "x84"
+{34
+,0,0,0,0,0,(Reduce_tbl*)&S34rt_Cbad_char_set,0,0,0};
+struct S35rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S35rtd_Cbad_char_set S35rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs6_Rbad_char_80_8f_}
+ }// end of reduce table
+};
+yacco2::State S35_Cbad_char_set = //State's vectored into symbol: "x85"
+{35
+,0,0,0,0,0,(Reduce_tbl*)&S35rt_Cbad_char_set,0,0,0};
+struct S36rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S36rtd_Cbad_char_set S36rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs7_Rbad_char_80_8f_}
+ }// end of reduce table
+};
+yacco2::State S36_Cbad_char_set = //State's vectored into symbol: "x86"
+{36
+,0,0,0,0,0,(Reduce_tbl*)&S36rt_Cbad_char_set,0,0,0};
+struct S37rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S37rtd_Cbad_char_set S37rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs8_Rbad_char_80_8f_}
+ }// end of reduce table
+};
+yacco2::State S37_Cbad_char_set = //State's vectored into symbol: "x87"
+{37
+,0,0,0,0,0,(Reduce_tbl*)&S37rt_Cbad_char_set,0,0,0};
+struct S38rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S38rtd_Cbad_char_set S38rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs9_Rbad_char_80_8f_}
+ }// end of reduce table
+};
+yacco2::State S38_Cbad_char_set = //State's vectored into symbol: "x88"
+{38
+,0,0,0,0,0,(Reduce_tbl*)&S38rt_Cbad_char_set,0,0,0};
+struct S39rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S39rtd_Cbad_char_set S39rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs10_Rbad_char_80_8f_}
+ }// end of reduce table
+};
+yacco2::State S39_Cbad_char_set = //State's vectored into symbol: "x89"
+{39
+,0,0,0,0,0,(Reduce_tbl*)&S39rt_Cbad_char_set,0,0,0};
+struct S40rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S40rtd_Cbad_char_set S40rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs11_Rbad_char_80_8f_}
+ }// end of reduce table
+};
+yacco2::State S40_Cbad_char_set = //State's vectored into symbol: "x8a"
+{40
+,0,0,0,0,0,(Reduce_tbl*)&S40rt_Cbad_char_set,0,0,0};
+struct S41rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S41rtd_Cbad_char_set S41rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs12_Rbad_char_80_8f_}
+ }// end of reduce table
+};
+yacco2::State S41_Cbad_char_set = //State's vectored into symbol: "x8b"
+{41
+,0,0,0,0,0,(Reduce_tbl*)&S41rt_Cbad_char_set,0,0,0};
+struct S42rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S42rtd_Cbad_char_set S42rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs13_Rbad_char_80_8f_}
+ }// end of reduce table
+};
+yacco2::State S42_Cbad_char_set = //State's vectored into symbol: "x8c"
+{42
+,0,0,0,0,0,(Reduce_tbl*)&S42rt_Cbad_char_set,0,0,0};
+struct S43rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S43rtd_Cbad_char_set S43rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs14_Rbad_char_80_8f_}
+ }// end of reduce table
+};
+yacco2::State S43_Cbad_char_set = //State's vectored into symbol: "x8d"
+{43
+,0,0,0,0,0,(Reduce_tbl*)&S43rt_Cbad_char_set,0,0,0};
+struct S44rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S44rtd_Cbad_char_set S44rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs15_Rbad_char_80_8f_}
+ }// end of reduce table
+};
+yacco2::State S44_Cbad_char_set = //State's vectored into symbol: "x8e"
+{44
+,0,0,0,0,0,(Reduce_tbl*)&S44rt_Cbad_char_set,0,0,0};
+struct S45rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S45rtd_Cbad_char_set S45rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs16_Rbad_char_80_8f_}
+ }// end of reduce table
+};
+yacco2::State S45_Cbad_char_set = //State's vectored into symbol: "x8f"
+{45
+,0,0,0,0,0,(Reduce_tbl*)&S45rt_Cbad_char_set,0,0,0};
+struct S46rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S46rtd_Cbad_char_set S46rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs1_Rbad_char_90_9f_}
+ }// end of reduce table
+};
+yacco2::State S46_Cbad_char_set = //State's vectored into symbol: "x90"
+{46
+,0,0,0,0,0,(Reduce_tbl*)&S46rt_Cbad_char_set,0,0,0};
+struct S47rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S47rtd_Cbad_char_set S47rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs2_Rbad_char_90_9f_}
+ }// end of reduce table
+};
+yacco2::State S47_Cbad_char_set = //State's vectored into symbol: "x91"
+{47
+,0,0,0,0,0,(Reduce_tbl*)&S47rt_Cbad_char_set,0,0,0};
+struct S48rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S48rtd_Cbad_char_set S48rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs3_Rbad_char_90_9f_}
+ }// end of reduce table
+};
+yacco2::State S48_Cbad_char_set = //State's vectored into symbol: "x92"
+{48
+,0,0,0,0,0,(Reduce_tbl*)&S48rt_Cbad_char_set,0,0,0};
+struct S49rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S49rtd_Cbad_char_set S49rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs4_Rbad_char_90_9f_}
+ }// end of reduce table
+};
+yacco2::State S49_Cbad_char_set = //State's vectored into symbol: "x93"
+{49
+,0,0,0,0,0,(Reduce_tbl*)&S49rt_Cbad_char_set,0,0,0};
+struct S50rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S50rtd_Cbad_char_set S50rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs5_Rbad_char_90_9f_}
+ }// end of reduce table
+};
+yacco2::State S50_Cbad_char_set = //State's vectored into symbol: "x94"
+{50
+,0,0,0,0,0,(Reduce_tbl*)&S50rt_Cbad_char_set,0,0,0};
+struct S51rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S51rtd_Cbad_char_set S51rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs6_Rbad_char_90_9f_}
+ }// end of reduce table
+};
+yacco2::State S51_Cbad_char_set = //State's vectored into symbol: "x95"
+{51
+,0,0,0,0,0,(Reduce_tbl*)&S51rt_Cbad_char_set,0,0,0};
+struct S52rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S52rtd_Cbad_char_set S52rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs7_Rbad_char_90_9f_}
+ }// end of reduce table
+};
+yacco2::State S52_Cbad_char_set = //State's vectored into symbol: "x96"
+{52
+,0,0,0,0,0,(Reduce_tbl*)&S52rt_Cbad_char_set,0,0,0};
+struct S53rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S53rtd_Cbad_char_set S53rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs8_Rbad_char_90_9f_}
+ }// end of reduce table
+};
+yacco2::State S53_Cbad_char_set = //State's vectored into symbol: "x97"
+{53
+,0,0,0,0,0,(Reduce_tbl*)&S53rt_Cbad_char_set,0,0,0};
+struct S54rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S54rtd_Cbad_char_set S54rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs9_Rbad_char_90_9f_}
+ }// end of reduce table
+};
+yacco2::State S54_Cbad_char_set = //State's vectored into symbol: "x98"
+{54
+,0,0,0,0,0,(Reduce_tbl*)&S54rt_Cbad_char_set,0,0,0};
+struct S55rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S55rtd_Cbad_char_set S55rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs10_Rbad_char_90_9f_}
+ }// end of reduce table
+};
+yacco2::State S55_Cbad_char_set = //State's vectored into symbol: "x99"
+{55
+,0,0,0,0,0,(Reduce_tbl*)&S55rt_Cbad_char_set,0,0,0};
+struct S56rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S56rtd_Cbad_char_set S56rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs11_Rbad_char_90_9f_}
+ }// end of reduce table
+};
+yacco2::State S56_Cbad_char_set = //State's vectored into symbol: "x9a"
+{56
+,0,0,0,0,0,(Reduce_tbl*)&S56rt_Cbad_char_set,0,0,0};
+struct S57rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S57rtd_Cbad_char_set S57rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs12_Rbad_char_90_9f_}
+ }// end of reduce table
+};
+yacco2::State S57_Cbad_char_set = //State's vectored into symbol: "x9b"
+{57
+,0,0,0,0,0,(Reduce_tbl*)&S57rt_Cbad_char_set,0,0,0};
+struct S58rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S58rtd_Cbad_char_set S58rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs13_Rbad_char_90_9f_}
+ }// end of reduce table
+};
+yacco2::State S58_Cbad_char_set = //State's vectored into symbol: "x9c"
+{58
+,0,0,0,0,0,(Reduce_tbl*)&S58rt_Cbad_char_set,0,0,0};
+struct S59rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S59rtd_Cbad_char_set S59rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs14_Rbad_char_90_9f_}
+ }// end of reduce table
+};
+yacco2::State S59_Cbad_char_set = //State's vectored into symbol: "x9d"
+{59
+,0,0,0,0,0,(Reduce_tbl*)&S59rt_Cbad_char_set,0,0,0};
+struct S60rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S60rtd_Cbad_char_set S60rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs15_Rbad_char_90_9f_}
+ }// end of reduce table
+};
+yacco2::State S60_Cbad_char_set = //State's vectored into symbol: "x9e"
+{60
+,0,0,0,0,0,(Reduce_tbl*)&S60rt_Cbad_char_set,0,0,0};
+struct S61rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S61rtd_Cbad_char_set S61rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs16_Rbad_char_90_9f_}
+ }// end of reduce table
+};
+yacco2::State S61_Cbad_char_set = //State's vectored into symbol: "x9f"
+{61
+,0,0,0,0,0,(Reduce_tbl*)&S61rt_Cbad_char_set,0,0,0};
+struct S62rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S62rtd_Cbad_char_set S62rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs1_Rbad_char_a0_af_}
+ }// end of reduce table
+};
+yacco2::State S62_Cbad_char_set = //State's vectored into symbol: "xa0"
+{62
+,0,0,0,0,0,(Reduce_tbl*)&S62rt_Cbad_char_set,0,0,0};
+struct S63rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S63rtd_Cbad_char_set S63rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs2_Rbad_char_a0_af_}
+ }// end of reduce table
+};
+yacco2::State S63_Cbad_char_set = //State's vectored into symbol: "xa1"
+{63
+,0,0,0,0,0,(Reduce_tbl*)&S63rt_Cbad_char_set,0,0,0};
+struct S64rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S64rtd_Cbad_char_set S64rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs3_Rbad_char_a0_af_}
+ }// end of reduce table
+};
+yacco2::State S64_Cbad_char_set = //State's vectored into symbol: "xa2"
+{64
+,0,0,0,0,0,(Reduce_tbl*)&S64rt_Cbad_char_set,0,0,0};
+struct S65rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S65rtd_Cbad_char_set S65rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs4_Rbad_char_a0_af_}
+ }// end of reduce table
+};
+yacco2::State S65_Cbad_char_set = //State's vectored into symbol: "xa3"
+{65
+,0,0,0,0,0,(Reduce_tbl*)&S65rt_Cbad_char_set,0,0,0};
+struct S66rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S66rtd_Cbad_char_set S66rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs5_Rbad_char_a0_af_}
+ }// end of reduce table
+};
+yacco2::State S66_Cbad_char_set = //State's vectored into symbol: "xa4"
+{66
+,0,0,0,0,0,(Reduce_tbl*)&S66rt_Cbad_char_set,0,0,0};
+struct S67rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S67rtd_Cbad_char_set S67rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs6_Rbad_char_a0_af_}
+ }// end of reduce table
+};
+yacco2::State S67_Cbad_char_set = //State's vectored into symbol: "xa5"
+{67
+,0,0,0,0,0,(Reduce_tbl*)&S67rt_Cbad_char_set,0,0,0};
+struct S68rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S68rtd_Cbad_char_set S68rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs7_Rbad_char_a0_af_}
+ }// end of reduce table
+};
+yacco2::State S68_Cbad_char_set = //State's vectored into symbol: "xa6"
+{68
+,0,0,0,0,0,(Reduce_tbl*)&S68rt_Cbad_char_set,0,0,0};
+struct S69rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S69rtd_Cbad_char_set S69rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs8_Rbad_char_a0_af_}
+ }// end of reduce table
+};
+yacco2::State S69_Cbad_char_set = //State's vectored into symbol: "xa7"
+{69
+,0,0,0,0,0,(Reduce_tbl*)&S69rt_Cbad_char_set,0,0,0};
+struct S70rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S70rtd_Cbad_char_set S70rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs9_Rbad_char_a0_af_}
+ }// end of reduce table
+};
+yacco2::State S70_Cbad_char_set = //State's vectored into symbol: "xa8"
+{70
+,0,0,0,0,0,(Reduce_tbl*)&S70rt_Cbad_char_set,0,0,0};
+struct S71rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S71rtd_Cbad_char_set S71rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs10_Rbad_char_a0_af_}
+ }// end of reduce table
+};
+yacco2::State S71_Cbad_char_set = //State's vectored into symbol: "xa9"
+{71
+,0,0,0,0,0,(Reduce_tbl*)&S71rt_Cbad_char_set,0,0,0};
+struct S72rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S72rtd_Cbad_char_set S72rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs11_Rbad_char_a0_af_}
+ }// end of reduce table
+};
+yacco2::State S72_Cbad_char_set = //State's vectored into symbol: "xaa"
+{72
+,0,0,0,0,0,(Reduce_tbl*)&S72rt_Cbad_char_set,0,0,0};
+struct S73rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S73rtd_Cbad_char_set S73rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs12_Rbad_char_a0_af_}
+ }// end of reduce table
+};
+yacco2::State S73_Cbad_char_set = //State's vectored into symbol: "xab"
+{73
+,0,0,0,0,0,(Reduce_tbl*)&S73rt_Cbad_char_set,0,0,0};
+struct S74rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S74rtd_Cbad_char_set S74rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs13_Rbad_char_a0_af_}
+ }// end of reduce table
+};
+yacco2::State S74_Cbad_char_set = //State's vectored into symbol: "xac"
+{74
+,0,0,0,0,0,(Reduce_tbl*)&S74rt_Cbad_char_set,0,0,0};
+struct S75rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S75rtd_Cbad_char_set S75rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs14_Rbad_char_a0_af_}
+ }// end of reduce table
+};
+yacco2::State S75_Cbad_char_set = //State's vectored into symbol: "xad"
+{75
+,0,0,0,0,0,(Reduce_tbl*)&S75rt_Cbad_char_set,0,0,0};
+struct S76rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S76rtd_Cbad_char_set S76rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs15_Rbad_char_a0_af_}
+ }// end of reduce table
+};
+yacco2::State S76_Cbad_char_set = //State's vectored into symbol: "xae"
+{76
+,0,0,0,0,0,(Reduce_tbl*)&S76rt_Cbad_char_set,0,0,0};
+struct S77rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S77rtd_Cbad_char_set S77rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs16_Rbad_char_a0_af_}
+ }// end of reduce table
+};
+yacco2::State S77_Cbad_char_set = //State's vectored into symbol: "xaf"
+{77
+,0,0,0,0,0,(Reduce_tbl*)&S77rt_Cbad_char_set,0,0,0};
+struct S78rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S78rtd_Cbad_char_set S78rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs1_Rbad_char_b0_bf_}
+ }// end of reduce table
+};
+yacco2::State S78_Cbad_char_set = //State's vectored into symbol: "xb0"
+{78
+,0,0,0,0,0,(Reduce_tbl*)&S78rt_Cbad_char_set,0,0,0};
+struct S79rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S79rtd_Cbad_char_set S79rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs2_Rbad_char_b0_bf_}
+ }// end of reduce table
+};
+yacco2::State S79_Cbad_char_set = //State's vectored into symbol: "xb1"
+{79
+,0,0,0,0,0,(Reduce_tbl*)&S79rt_Cbad_char_set,0,0,0};
+struct S80rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S80rtd_Cbad_char_set S80rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs3_Rbad_char_b0_bf_}
+ }// end of reduce table
+};
+yacco2::State S80_Cbad_char_set = //State's vectored into symbol: "xb2"
+{80
+,0,0,0,0,0,(Reduce_tbl*)&S80rt_Cbad_char_set,0,0,0};
+struct S81rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S81rtd_Cbad_char_set S81rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs4_Rbad_char_b0_bf_}
+ }// end of reduce table
+};
+yacco2::State S81_Cbad_char_set = //State's vectored into symbol: "xb3"
+{81
+,0,0,0,0,0,(Reduce_tbl*)&S81rt_Cbad_char_set,0,0,0};
+struct S82rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S82rtd_Cbad_char_set S82rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs5_Rbad_char_b0_bf_}
+ }// end of reduce table
+};
+yacco2::State S82_Cbad_char_set = //State's vectored into symbol: "xb4"
+{82
+,0,0,0,0,0,(Reduce_tbl*)&S82rt_Cbad_char_set,0,0,0};
+struct S83rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S83rtd_Cbad_char_set S83rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs6_Rbad_char_b0_bf_}
+ }// end of reduce table
+};
+yacco2::State S83_Cbad_char_set = //State's vectored into symbol: "xb5"
+{83
+,0,0,0,0,0,(Reduce_tbl*)&S83rt_Cbad_char_set,0,0,0};
+struct S84rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S84rtd_Cbad_char_set S84rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs7_Rbad_char_b0_bf_}
+ }// end of reduce table
+};
+yacco2::State S84_Cbad_char_set = //State's vectored into symbol: "xb6"
+{84
+,0,0,0,0,0,(Reduce_tbl*)&S84rt_Cbad_char_set,0,0,0};
+struct S85rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S85rtd_Cbad_char_set S85rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs8_Rbad_char_b0_bf_}
+ }// end of reduce table
+};
+yacco2::State S85_Cbad_char_set = //State's vectored into symbol: "xb7"
+{85
+,0,0,0,0,0,(Reduce_tbl*)&S85rt_Cbad_char_set,0,0,0};
+struct S86rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S86rtd_Cbad_char_set S86rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs9_Rbad_char_b0_bf_}
+ }// end of reduce table
+};
+yacco2::State S86_Cbad_char_set = //State's vectored into symbol: "xb8"
+{86
+,0,0,0,0,0,(Reduce_tbl*)&S86rt_Cbad_char_set,0,0,0};
+struct S87rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S87rtd_Cbad_char_set S87rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs10_Rbad_char_b0_bf_}
+ }// end of reduce table
+};
+yacco2::State S87_Cbad_char_set = //State's vectored into symbol: "xb9"
+{87
+,0,0,0,0,0,(Reduce_tbl*)&S87rt_Cbad_char_set,0,0,0};
+struct S88rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S88rtd_Cbad_char_set S88rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs11_Rbad_char_b0_bf_}
+ }// end of reduce table
+};
+yacco2::State S88_Cbad_char_set = //State's vectored into symbol: "xba"
+{88
+,0,0,0,0,0,(Reduce_tbl*)&S88rt_Cbad_char_set,0,0,0};
+struct S89rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S89rtd_Cbad_char_set S89rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs12_Rbad_char_b0_bf_}
+ }// end of reduce table
+};
+yacco2::State S89_Cbad_char_set = //State's vectored into symbol: "xbb"
+{89
+,0,0,0,0,0,(Reduce_tbl*)&S89rt_Cbad_char_set,0,0,0};
+struct S90rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S90rtd_Cbad_char_set S90rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs13_Rbad_char_b0_bf_}
+ }// end of reduce table
+};
+yacco2::State S90_Cbad_char_set = //State's vectored into symbol: "xbc"
+{90
+,0,0,0,0,0,(Reduce_tbl*)&S90rt_Cbad_char_set,0,0,0};
+struct S91rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S91rtd_Cbad_char_set S91rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs14_Rbad_char_b0_bf_}
+ }// end of reduce table
+};
+yacco2::State S91_Cbad_char_set = //State's vectored into symbol: "xbd"
+{91
+,0,0,0,0,0,(Reduce_tbl*)&S91rt_Cbad_char_set,0,0,0};
+struct S92rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S92rtd_Cbad_char_set S92rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs15_Rbad_char_b0_bf_}
+ }// end of reduce table
+};
+yacco2::State S92_Cbad_char_set = //State's vectored into symbol: "xbe"
+{92
+,0,0,0,0,0,(Reduce_tbl*)&S92rt_Cbad_char_set,0,0,0};
+struct S93rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S93rtd_Cbad_char_set S93rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs16_Rbad_char_b0_bf_}
+ }// end of reduce table
+};
+yacco2::State S93_Cbad_char_set = //State's vectored into symbol: "xbf"
+{93
+,0,0,0,0,0,(Reduce_tbl*)&S93rt_Cbad_char_set,0,0,0};
+struct S94rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S94rtd_Cbad_char_set S94rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs1_Rbad_char_c0_cf_}
+ }// end of reduce table
+};
+yacco2::State S94_Cbad_char_set = //State's vectored into symbol: "xc0"
+{94
+,0,0,0,0,0,(Reduce_tbl*)&S94rt_Cbad_char_set,0,0,0};
+struct S95rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S95rtd_Cbad_char_set S95rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs2_Rbad_char_c0_cf_}
+ }// end of reduce table
+};
+yacco2::State S95_Cbad_char_set = //State's vectored into symbol: "xc1"
+{95
+,0,0,0,0,0,(Reduce_tbl*)&S95rt_Cbad_char_set,0,0,0};
+struct S96rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S96rtd_Cbad_char_set S96rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs3_Rbad_char_c0_cf_}
+ }// end of reduce table
+};
+yacco2::State S96_Cbad_char_set = //State's vectored into symbol: "xc2"
+{96
+,0,0,0,0,0,(Reduce_tbl*)&S96rt_Cbad_char_set,0,0,0};
+struct S97rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S97rtd_Cbad_char_set S97rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs4_Rbad_char_c0_cf_}
+ }// end of reduce table
+};
+yacco2::State S97_Cbad_char_set = //State's vectored into symbol: "xc3"
+{97
+,0,0,0,0,0,(Reduce_tbl*)&S97rt_Cbad_char_set,0,0,0};
+struct S98rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S98rtd_Cbad_char_set S98rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs5_Rbad_char_c0_cf_}
+ }// end of reduce table
+};
+yacco2::State S98_Cbad_char_set = //State's vectored into symbol: "xc4"
+{98
+,0,0,0,0,0,(Reduce_tbl*)&S98rt_Cbad_char_set,0,0,0};
+struct S99rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S99rtd_Cbad_char_set S99rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs6_Rbad_char_c0_cf_}
+ }// end of reduce table
+};
+yacco2::State S99_Cbad_char_set = //State's vectored into symbol: "xc5"
+{99
+,0,0,0,0,0,(Reduce_tbl*)&S99rt_Cbad_char_set,0,0,0};
+struct S100rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S100rtd_Cbad_char_set S100rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs7_Rbad_char_c0_cf_}
+ }// end of reduce table
+};
+yacco2::State S100_Cbad_char_set = //State's vectored into symbol: "xc6"
+{100
+,0,0,0,0,0,(Reduce_tbl*)&S100rt_Cbad_char_set,0,0,0};
+struct S101rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S101rtd_Cbad_char_set S101rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs8_Rbad_char_c0_cf_}
+ }// end of reduce table
+};
+yacco2::State S101_Cbad_char_set = //State's vectored into symbol: "xc7"
+{101
+,0,0,0,0,0,(Reduce_tbl*)&S101rt_Cbad_char_set,0,0,0};
+struct S102rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S102rtd_Cbad_char_set S102rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs9_Rbad_char_c0_cf_}
+ }// end of reduce table
+};
+yacco2::State S102_Cbad_char_set = //State's vectored into symbol: "xc8"
+{102
+,0,0,0,0,0,(Reduce_tbl*)&S102rt_Cbad_char_set,0,0,0};
+struct S103rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S103rtd_Cbad_char_set S103rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs10_Rbad_char_c0_cf_}
+ }// end of reduce table
+};
+yacco2::State S103_Cbad_char_set = //State's vectored into symbol: "xc9"
+{103
+,0,0,0,0,0,(Reduce_tbl*)&S103rt_Cbad_char_set,0,0,0};
+struct S104rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S104rtd_Cbad_char_set S104rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs11_Rbad_char_c0_cf_}
+ }// end of reduce table
+};
+yacco2::State S104_Cbad_char_set = //State's vectored into symbol: "xca"
+{104
+,0,0,0,0,0,(Reduce_tbl*)&S104rt_Cbad_char_set,0,0,0};
+struct S105rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S105rtd_Cbad_char_set S105rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs12_Rbad_char_c0_cf_}
+ }// end of reduce table
+};
+yacco2::State S105_Cbad_char_set = //State's vectored into symbol: "xcb"
+{105
+,0,0,0,0,0,(Reduce_tbl*)&S105rt_Cbad_char_set,0,0,0};
+struct S106rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S106rtd_Cbad_char_set S106rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs13_Rbad_char_c0_cf_}
+ }// end of reduce table
+};
+yacco2::State S106_Cbad_char_set = //State's vectored into symbol: "xcc"
+{106
+,0,0,0,0,0,(Reduce_tbl*)&S106rt_Cbad_char_set,0,0,0};
+struct S107rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S107rtd_Cbad_char_set S107rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs14_Rbad_char_c0_cf_}
+ }// end of reduce table
+};
+yacco2::State S107_Cbad_char_set = //State's vectored into symbol: "xcd"
+{107
+,0,0,0,0,0,(Reduce_tbl*)&S107rt_Cbad_char_set,0,0,0};
+struct S108rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S108rtd_Cbad_char_set S108rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs15_Rbad_char_c0_cf_}
+ }// end of reduce table
+};
+yacco2::State S108_Cbad_char_set = //State's vectored into symbol: "xce"
+{108
+,0,0,0,0,0,(Reduce_tbl*)&S108rt_Cbad_char_set,0,0,0};
+struct S109rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S109rtd_Cbad_char_set S109rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs16_Rbad_char_c0_cf_}
+ }// end of reduce table
+};
+yacco2::State S109_Cbad_char_set = //State's vectored into symbol: "xcf"
+{109
+,0,0,0,0,0,(Reduce_tbl*)&S109rt_Cbad_char_set,0,0,0};
+struct S110rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S110rtd_Cbad_char_set S110rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs1_Rbad_char_d0_df_}
+ }// end of reduce table
+};
+yacco2::State S110_Cbad_char_set = //State's vectored into symbol: "xd0"
+{110
+,0,0,0,0,0,(Reduce_tbl*)&S110rt_Cbad_char_set,0,0,0};
+struct S111rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S111rtd_Cbad_char_set S111rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs2_Rbad_char_d0_df_}
+ }// end of reduce table
+};
+yacco2::State S111_Cbad_char_set = //State's vectored into symbol: "xd1"
+{111
+,0,0,0,0,0,(Reduce_tbl*)&S111rt_Cbad_char_set,0,0,0};
+struct S112rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S112rtd_Cbad_char_set S112rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs3_Rbad_char_d0_df_}
+ }// end of reduce table
+};
+yacco2::State S112_Cbad_char_set = //State's vectored into symbol: "xd2"
+{112
+,0,0,0,0,0,(Reduce_tbl*)&S112rt_Cbad_char_set,0,0,0};
+struct S113rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S113rtd_Cbad_char_set S113rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs4_Rbad_char_d0_df_}
+ }// end of reduce table
+};
+yacco2::State S113_Cbad_char_set = //State's vectored into symbol: "xd3"
+{113
+,0,0,0,0,0,(Reduce_tbl*)&S113rt_Cbad_char_set,0,0,0};
+struct S114rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S114rtd_Cbad_char_set S114rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs5_Rbad_char_d0_df_}
+ }// end of reduce table
+};
+yacco2::State S114_Cbad_char_set = //State's vectored into symbol: "xd4"
+{114
+,0,0,0,0,0,(Reduce_tbl*)&S114rt_Cbad_char_set,0,0,0};
+struct S115rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S115rtd_Cbad_char_set S115rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs6_Rbad_char_d0_df_}
+ }// end of reduce table
+};
+yacco2::State S115_Cbad_char_set = //State's vectored into symbol: "xd5"
+{115
+,0,0,0,0,0,(Reduce_tbl*)&S115rt_Cbad_char_set,0,0,0};
+struct S116rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S116rtd_Cbad_char_set S116rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs7_Rbad_char_d0_df_}
+ }// end of reduce table
+};
+yacco2::State S116_Cbad_char_set = //State's vectored into symbol: "xd6"
+{116
+,0,0,0,0,0,(Reduce_tbl*)&S116rt_Cbad_char_set,0,0,0};
+struct S117rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S117rtd_Cbad_char_set S117rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs8_Rbad_char_d0_df_}
+ }// end of reduce table
+};
+yacco2::State S117_Cbad_char_set = //State's vectored into symbol: "xd7"
+{117
+,0,0,0,0,0,(Reduce_tbl*)&S117rt_Cbad_char_set,0,0,0};
+struct S118rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S118rtd_Cbad_char_set S118rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs9_Rbad_char_d0_df_}
+ }// end of reduce table
+};
+yacco2::State S118_Cbad_char_set = //State's vectored into symbol: "xd8"
+{118
+,0,0,0,0,0,(Reduce_tbl*)&S118rt_Cbad_char_set,0,0,0};
+struct S119rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S119rtd_Cbad_char_set S119rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs10_Rbad_char_d0_df_}
+ }// end of reduce table
+};
+yacco2::State S119_Cbad_char_set = //State's vectored into symbol: "xd9"
+{119
+,0,0,0,0,0,(Reduce_tbl*)&S119rt_Cbad_char_set,0,0,0};
+struct S120rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S120rtd_Cbad_char_set S120rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs11_Rbad_char_d0_df_}
+ }// end of reduce table
+};
+yacco2::State S120_Cbad_char_set = //State's vectored into symbol: "xda"
+{120
+,0,0,0,0,0,(Reduce_tbl*)&S120rt_Cbad_char_set,0,0,0};
+struct S121rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S121rtd_Cbad_char_set S121rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs12_Rbad_char_d0_df_}
+ }// end of reduce table
+};
+yacco2::State S121_Cbad_char_set = //State's vectored into symbol: "xdb"
+{121
+,0,0,0,0,0,(Reduce_tbl*)&S121rt_Cbad_char_set,0,0,0};
+struct S122rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S122rtd_Cbad_char_set S122rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs13_Rbad_char_d0_df_}
+ }// end of reduce table
+};
+yacco2::State S122_Cbad_char_set = //State's vectored into symbol: "xdc"
+{122
+,0,0,0,0,0,(Reduce_tbl*)&S122rt_Cbad_char_set,0,0,0};
+struct S123rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S123rtd_Cbad_char_set S123rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs14_Rbad_char_d0_df_}
+ }// end of reduce table
+};
+yacco2::State S123_Cbad_char_set = //State's vectored into symbol: "xdd"
+{123
+,0,0,0,0,0,(Reduce_tbl*)&S123rt_Cbad_char_set,0,0,0};
+struct S124rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S124rtd_Cbad_char_set S124rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs15_Rbad_char_d0_df_}
+ }// end of reduce table
+};
+yacco2::State S124_Cbad_char_set = //State's vectored into symbol: "xde"
+{124
+,0,0,0,0,0,(Reduce_tbl*)&S124rt_Cbad_char_set,0,0,0};
+struct S125rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S125rtd_Cbad_char_set S125rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs16_Rbad_char_d0_df_}
+ }// end of reduce table
+};
+yacco2::State S125_Cbad_char_set = //State's vectored into symbol: "xdf"
+{125
+,0,0,0,0,0,(Reduce_tbl*)&S125rt_Cbad_char_set,0,0,0};
+struct S126rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S126rtd_Cbad_char_set S126rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs1_Rbad_char_e0_ef_}
+ }// end of reduce table
+};
+yacco2::State S126_Cbad_char_set = //State's vectored into symbol: "xe0"
+{126
+,0,0,0,0,0,(Reduce_tbl*)&S126rt_Cbad_char_set,0,0,0};
+struct S127rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S127rtd_Cbad_char_set S127rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs2_Rbad_char_e0_ef_}
+ }// end of reduce table
+};
+yacco2::State S127_Cbad_char_set = //State's vectored into symbol: "xe1"
+{127
+,0,0,0,0,0,(Reduce_tbl*)&S127rt_Cbad_char_set,0,0,0};
+struct S128rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S128rtd_Cbad_char_set S128rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs3_Rbad_char_e0_ef_}
+ }// end of reduce table
+};
+yacco2::State S128_Cbad_char_set = //State's vectored into symbol: "xe2"
+{128
+,0,0,0,0,0,(Reduce_tbl*)&S128rt_Cbad_char_set,0,0,0};
+struct S129rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S129rtd_Cbad_char_set S129rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs4_Rbad_char_e0_ef_}
+ }// end of reduce table
+};
+yacco2::State S129_Cbad_char_set = //State's vectored into symbol: "xe3"
+{129
+,0,0,0,0,0,(Reduce_tbl*)&S129rt_Cbad_char_set,0,0,0};
+struct S130rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S130rtd_Cbad_char_set S130rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs5_Rbad_char_e0_ef_}
+ }// end of reduce table
+};
+yacco2::State S130_Cbad_char_set = //State's vectored into symbol: "xe4"
+{130
+,0,0,0,0,0,(Reduce_tbl*)&S130rt_Cbad_char_set,0,0,0};
+struct S131rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S131rtd_Cbad_char_set S131rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs6_Rbad_char_e0_ef_}
+ }// end of reduce table
+};
+yacco2::State S131_Cbad_char_set = //State's vectored into symbol: "xe5"
+{131
+,0,0,0,0,0,(Reduce_tbl*)&S131rt_Cbad_char_set,0,0,0};
+struct S132rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S132rtd_Cbad_char_set S132rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs7_Rbad_char_e0_ef_}
+ }// end of reduce table
+};
+yacco2::State S132_Cbad_char_set = //State's vectored into symbol: "xe6"
+{132
+,0,0,0,0,0,(Reduce_tbl*)&S132rt_Cbad_char_set,0,0,0};
+struct S133rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S133rtd_Cbad_char_set S133rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs8_Rbad_char_e0_ef_}
+ }// end of reduce table
+};
+yacco2::State S133_Cbad_char_set = //State's vectored into symbol: "xe7"
+{133
+,0,0,0,0,0,(Reduce_tbl*)&S133rt_Cbad_char_set,0,0,0};
+struct S134rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S134rtd_Cbad_char_set S134rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs9_Rbad_char_e0_ef_}
+ }// end of reduce table
+};
+yacco2::State S134_Cbad_char_set = //State's vectored into symbol: "xe8"
+{134
+,0,0,0,0,0,(Reduce_tbl*)&S134rt_Cbad_char_set,0,0,0};
+struct S135rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S135rtd_Cbad_char_set S135rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs10_Rbad_char_e0_ef_}
+ }// end of reduce table
+};
+yacco2::State S135_Cbad_char_set = //State's vectored into symbol: "xe9"
+{135
+,0,0,0,0,0,(Reduce_tbl*)&S135rt_Cbad_char_set,0,0,0};
+struct S136rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S136rtd_Cbad_char_set S136rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs11_Rbad_char_e0_ef_}
+ }// end of reduce table
+};
+yacco2::State S136_Cbad_char_set = //State's vectored into symbol: "xea"
+{136
+,0,0,0,0,0,(Reduce_tbl*)&S136rt_Cbad_char_set,0,0,0};
+struct S137rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S137rtd_Cbad_char_set S137rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs12_Rbad_char_e0_ef_}
+ }// end of reduce table
+};
+yacco2::State S137_Cbad_char_set = //State's vectored into symbol: "xeb"
+{137
+,0,0,0,0,0,(Reduce_tbl*)&S137rt_Cbad_char_set,0,0,0};
+struct S138rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S138rtd_Cbad_char_set S138rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs13_Rbad_char_e0_ef_}
+ }// end of reduce table
+};
+yacco2::State S138_Cbad_char_set = //State's vectored into symbol: "xec"
+{138
+,0,0,0,0,0,(Reduce_tbl*)&S138rt_Cbad_char_set,0,0,0};
+struct S139rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S139rtd_Cbad_char_set S139rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs14_Rbad_char_e0_ef_}
+ }// end of reduce table
+};
+yacco2::State S139_Cbad_char_set = //State's vectored into symbol: "xed"
+{139
+,0,0,0,0,0,(Reduce_tbl*)&S139rt_Cbad_char_set,0,0,0};
+struct S140rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S140rtd_Cbad_char_set S140rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs15_Rbad_char_e0_ef_}
+ }// end of reduce table
+};
+yacco2::State S140_Cbad_char_set = //State's vectored into symbol: "xee"
+{140
+,0,0,0,0,0,(Reduce_tbl*)&S140rt_Cbad_char_set,0,0,0};
+struct S141rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S141rtd_Cbad_char_set S141rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs16_Rbad_char_e0_ef_}
+ }// end of reduce table
+};
+yacco2::State S141_Cbad_char_set = //State's vectored into symbol: "xef"
+{141
+,0,0,0,0,0,(Reduce_tbl*)&S141rt_Cbad_char_set,0,0,0};
+struct S142rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S142rtd_Cbad_char_set S142rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs1_Rbad_char_f0_ff_}
+ }// end of reduce table
+};
+yacco2::State S142_Cbad_char_set = //State's vectored into symbol: "xf0"
+{142
+,0,0,0,0,0,(Reduce_tbl*)&S142rt_Cbad_char_set,0,0,0};
+struct S143rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S143rtd_Cbad_char_set S143rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs2_Rbad_char_f0_ff_}
+ }// end of reduce table
+};
+yacco2::State S143_Cbad_char_set = //State's vectored into symbol: "xf1"
+{143
+,0,0,0,0,0,(Reduce_tbl*)&S143rt_Cbad_char_set,0,0,0};
+struct S144rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S144rtd_Cbad_char_set S144rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs3_Rbad_char_f0_ff_}
+ }// end of reduce table
+};
+yacco2::State S144_Cbad_char_set = //State's vectored into symbol: "xf2"
+{144
+,0,0,0,0,0,(Reduce_tbl*)&S144rt_Cbad_char_set,0,0,0};
+struct S145rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S145rtd_Cbad_char_set S145rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs4_Rbad_char_f0_ff_}
+ }// end of reduce table
+};
+yacco2::State S145_Cbad_char_set = //State's vectored into symbol: "xf3"
+{145
+,0,0,0,0,0,(Reduce_tbl*)&S145rt_Cbad_char_set,0,0,0};
+struct S146rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S146rtd_Cbad_char_set S146rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs5_Rbad_char_f0_ff_}
+ }// end of reduce table
+};
+yacco2::State S146_Cbad_char_set = //State's vectored into symbol: "xf4"
+{146
+,0,0,0,0,0,(Reduce_tbl*)&S146rt_Cbad_char_set,0,0,0};
+struct S147rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S147rtd_Cbad_char_set S147rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs6_Rbad_char_f0_ff_}
+ }// end of reduce table
+};
+yacco2::State S147_Cbad_char_set = //State's vectored into symbol: "xf5"
+{147
+,0,0,0,0,0,(Reduce_tbl*)&S147rt_Cbad_char_set,0,0,0};
+struct S148rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S148rtd_Cbad_char_set S148rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs7_Rbad_char_f0_ff_}
+ }// end of reduce table
+};
+yacco2::State S148_Cbad_char_set = //State's vectored into symbol: "xf6"
+{148
+,0,0,0,0,0,(Reduce_tbl*)&S148rt_Cbad_char_set,0,0,0};
+struct S149rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S149rtd_Cbad_char_set S149rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs8_Rbad_char_f0_ff_}
+ }// end of reduce table
+};
+yacco2::State S149_Cbad_char_set = //State's vectored into symbol: "xf7"
+{149
+,0,0,0,0,0,(Reduce_tbl*)&S149rt_Cbad_char_set,0,0,0};
+struct S150rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S150rtd_Cbad_char_set S150rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs9_Rbad_char_f0_ff_}
+ }// end of reduce table
+};
+yacco2::State S150_Cbad_char_set = //State's vectored into symbol: "xf8"
+{150
+,0,0,0,0,0,(Reduce_tbl*)&S150rt_Cbad_char_set,0,0,0};
+struct S151rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S151rtd_Cbad_char_set S151rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs10_Rbad_char_f0_ff_}
+ }// end of reduce table
+};
+yacco2::State S151_Cbad_char_set = //State's vectored into symbol: "xf9"
+{151
+,0,0,0,0,0,(Reduce_tbl*)&S151rt_Cbad_char_set,0,0,0};
+struct S152rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S152rtd_Cbad_char_set S152rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs11_Rbad_char_f0_ff_}
+ }// end of reduce table
+};
+yacco2::State S152_Cbad_char_set = //State's vectored into symbol: "xfa"
+{152
+,0,0,0,0,0,(Reduce_tbl*)&S152rt_Cbad_char_set,0,0,0};
+struct S153rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S153rtd_Cbad_char_set S153rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs12_Rbad_char_f0_ff_}
+ }// end of reduce table
+};
+yacco2::State S153_Cbad_char_set = //State's vectored into symbol: "xfb"
+{153
+,0,0,0,0,0,(Reduce_tbl*)&S153rt_Cbad_char_set,0,0,0};
+struct S154rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S154rtd_Cbad_char_set S154rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs13_Rbad_char_f0_ff_}
+ }// end of reduce table
+};
+yacco2::State S154_Cbad_char_set = //State's vectored into symbol: "xfc"
+{154
+,0,0,0,0,0,(Reduce_tbl*)&S154rt_Cbad_char_set,0,0,0};
+struct S155rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S155rtd_Cbad_char_set S155rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs14_Rbad_char_f0_ff_}
+ }// end of reduce table
+};
+yacco2::State S155_Cbad_char_set = //State's vectored into symbol: "xfd"
+{155
+,0,0,0,0,0,(Reduce_tbl*)&S155rt_Cbad_char_set,0,0,0};
+struct S156rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S156rtd_Cbad_char_set S156rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs15_Rbad_char_f0_ff_}
+ }// end of reduce table
+};
+yacco2::State S156_Cbad_char_set = //State's vectored into symbol: "xfe"
+{156
+,0,0,0,0,0,(Reduce_tbl*)&S156rt_Cbad_char_set,0,0,0};
+struct S157rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S157rtd_Cbad_char_set S157rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs16_Rbad_char_f0_ff_}
+ }// end of reduce table
+};
+yacco2::State S157_Cbad_char_set = //State's vectored into symbol: "xff"
+{157
+,0,0,0,0,0,(Reduce_tbl*)&S157rt_Cbad_char_set,0,0,0};
+struct S158rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S158rtd_Cbad_char_set S158rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs1_Rbad_char_set_}
+ }// end of reduce table
+};
+yacco2::State S158_Cbad_char_set = //State's vectored into symbol: "Rbad_char_00_0f"
+{158
+,0,0,0,0,0,(Reduce_tbl*)&S158rt_Cbad_char_set,0,0,0};
+struct S159rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S159rtd_Cbad_char_set S159rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs2_Rbad_char_set_}
+ }// end of reduce table
+};
+yacco2::State S159_Cbad_char_set = //State's vectored into symbol: "Rbad_char_10_7f"
+{159
+,0,0,0,0,0,(Reduce_tbl*)&S159rt_Cbad_char_set,0,0,0};
+struct S160rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S160rtd_Cbad_char_set S160rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs3_Rbad_char_set_}
+ }// end of reduce table
+};
+yacco2::State S160_Cbad_char_set = //State's vectored into symbol: "Rbad_char_80_8f"
+{160
+,0,0,0,0,0,(Reduce_tbl*)&S160rt_Cbad_char_set,0,0,0};
+struct S161rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S161rtd_Cbad_char_set S161rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs4_Rbad_char_set_}
+ }// end of reduce table
+};
+yacco2::State S161_Cbad_char_set = //State's vectored into symbol: "Rbad_char_90_9f"
+{161
+,0,0,0,0,0,(Reduce_tbl*)&S161rt_Cbad_char_set,0,0,0};
+struct S162rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S162rtd_Cbad_char_set S162rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs5_Rbad_char_set_}
+ }// end of reduce table
+};
+yacco2::State S162_Cbad_char_set = //State's vectored into symbol: "Rbad_char_a0_af"
+{162
+,0,0,0,0,0,(Reduce_tbl*)&S162rt_Cbad_char_set,0,0,0};
+struct S163rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S163rtd_Cbad_char_set S163rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs6_Rbad_char_set_}
+ }// end of reduce table
+};
+yacco2::State S163_Cbad_char_set = //State's vectored into symbol: "Rbad_char_b0_bf"
+{163
+,0,0,0,0,0,(Reduce_tbl*)&S163rt_Cbad_char_set,0,0,0};
+struct S164rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S164rtd_Cbad_char_set S164rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs7_Rbad_char_set_}
+ }// end of reduce table
+};
+yacco2::State S164_Cbad_char_set = //State's vectored into symbol: "Rbad_char_c0_cf"
+{164
+,0,0,0,0,0,(Reduce_tbl*)&S164rt_Cbad_char_set,0,0,0};
+struct S165rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S165rtd_Cbad_char_set S165rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs8_Rbad_char_set_}
+ }// end of reduce table
+};
+yacco2::State S165_Cbad_char_set = //State's vectored into symbol: "Rbad_char_d0_df"
+{165
+,0,0,0,0,0,(Reduce_tbl*)&S165rt_Cbad_char_set,0,0,0};
+struct S166rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S166rtd_Cbad_char_set S166rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs9_Rbad_char_set_}
+ }// end of reduce table
+};
+yacco2::State S166_Cbad_char_set = //State's vectored into symbol: "Rbad_char_e0_ef"
+{166
+,0,0,0,0,0,(Reduce_tbl*)&S166rt_Cbad_char_set,0,0,0};
+struct S167rtd_Cbad_char_set{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S167rtd_Cbad_char_set S167rt_Cbad_char_set = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cbad_char_set,Cbad_char_set::rhs10_Rbad_char_set_}
+ }// end of reduce table
+};
+yacco2::State S167_Cbad_char_set = //State's vectored into symbol: "Rbad_char_f0_ff"
+{167
+,0,0,0,0,0,(Reduce_tbl*)&S167rt_Cbad_char_set,0,0,0};
diff --git a/web/yacco2/compiler/grammars/c_comments.cpp b/web/yacco2/compiler/grammars/c_comments.cpp
new file mode 100644
index 0000000000..12d266fbb3
--- /dev/null
+++ b/web/yacco2/compiler/grammars/c_comments.cpp
@@ -0,0 +1,163 @@
+/*
+ File: c_comments.cpp
+ Date and Time: Fri Jan 30 18:55:05 2015
+*/
+#include "c_comments.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_c_comments;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 3;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+}
+ Cc_comments::
+ Cc_comments()
+ :yacco2::CAbs_fsm
+ ("c_comments.lex"
+ ,"1.0"
+ ,"17 Juin 2003"
+ ,false
+ ,"C++ type comments lexer."
+ ,"Fri Jan 30 18:55:05 2015 "
+ ,S1_Cc_comments){
+
+ ddd_idx_ = 0;
+ ddd_[ddd_idx_] = 0;
+
+ }
+
+Cc_comments::~Cc_comments(){
+
+ for(int x = 0;x < 3;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cc_comments::failed(){
+ return false;
+ }
+ void Cc_comments::op(){
+ ddd_idx_ = 0;
+ ddd_[ddd_idx_] = 0;
+
+}
+int Cc_comments::rhs_to_rules_mapping_[5] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,0 // subrule 2 for rule 1
+ ,1 // subrule 3 for rule 2
+ ,2 // subrule 4 for rule 3
+};
+
+ void Cc_comments::copy_str_into_buffer(std::string* Str){
+ const char* y = Str->c_str();
+ int x(0);
+ for(;y[x]!=0;++x,++ddd_idx_)ddd_[ddd_idx_] = y[x];
+ ddd_[ddd_idx_] = 0;
+ }
+
+ void Cc_comments::copy_kstr_into_buffer(const char* Str){
+ const char* y = Str;
+ int x(0);
+ for(;y[x]!=0;++x,++ddd_idx_)ddd_[ddd_idx_] = y[x];
+ ddd_[ddd_idx_] = 0;
+ }
+
+Rc_comments::Rc_comments(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rc_comments",0,Cc_comments::R_Rc_comments_,P,false,false){
+}
+
+void Rc_comments::op(){
+ sstrace_rulesss
+
+ Cc_comments* fsm = (Cc_comments*) rule_info__.parser__->fsm_tbl__;
+ T_comment* com = new T_comment((const char*)&fsm->ddd_);
+ com->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(com);
+
+}
+Rslash_asterisk::Rslash_asterisk(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rslash_asterisk",0,Cc_comments::R_Rslash_asterisk_,P,false,false){
+}
+
+void Rslash_asterisk::sr1(){
+
+ Cc_comments* fsm = (Cc_comments*) rule_info__.parser__->fsm_tbl__;
+ fsm->copy_kstr_into_buffer("/");// due to lex scanner
+ fsm->copy_kstr_into_buffer("*");
+loop:
+ switch (rule_info__.parser__->current_token()->enumerated_id__){
+ case T_Enum::T_raw_lf_: goto other;
+ case T_Enum::T_raw_cr_: goto cr;
+ case T_Enum::T_LR1_eog_: goto overrun;
+ case T_Enum::T_raw_asteric_: goto aster;
+ default: goto other;
+ }
+ cr:{// cr lf?
+ fsm->copy_kstr_into_buffer(rule_info__.parser__->current_token()->id__);
+ rule_info__.parser__->get_next_token();
+ if(rule_info__.parser__->current_token()->enumerated_id__
+ != T_Enum::T_raw_lf_) goto loop;// not cr lf
+ fsm->copy_kstr_into_buffer(rule_info__.parser__->current_token()->id__);
+ rule_info__.parser__->get_next_token();
+goto loop;
+ };
+ aster:{ // end of k?
+ fsm->copy_kstr_into_buffer(rule_info__.parser__->current_token()->id__);
+ rule_info__.parser__->get_next_token();
+ if(rule_info__.parser__->current_token()->enumerated_id__
+ != T_Enum::T_raw_slash_) goto loop;// false eok
+ fsm->copy_kstr_into_buffer(rule_info__.parser__->current_token()->id__);
+ rule_info__.parser__->get_next_token();
+ return;
+ }
+ overrun:{
+ CAbs_lr1_sym* sym = new Err_comment_overrun;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ other:{
+ fsm->copy_kstr_into_buffer(rule_info__.parser__->current_token()->id__);
+ rule_info__.parser__->get_next_token();
+goto loop;
+ }
+
+}
+
+R2slash::R2slash(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("R2slash",0,Cc_comments::R_R2slash_,P,false,false){
+}
+
+void R2slash::sr1(){
+
+ Cc_comments* fsm = (Cc_comments*) rule_info__.parser__->fsm_tbl__;
+ fsm->copy_kstr_into_buffer("/");
+ fsm->copy_kstr_into_buffer("/");
+ for(;;){
+ switch (rule_info__.parser__->current_token()->enumerated_id__){
+ case T_Enum::T_raw_lf_: {
+ return;
+ }
+ case T_Enum::T_raw_cr_:{
+ return;
+ }
+ case T_Enum::T_LR1_eog_: return;
+ }
+ fsm->copy_kstr_into_buffer(rule_info__.parser__->current_token()->id__);
+ rule_info__.parser__->get_next_token();
+ }
+
+}
+
diff --git a/web/yacco2/compiler/grammars/c_comments.fsc b/web/yacco2/compiler/grammars/c_comments.fsc
new file mode 100644
index 0000000000..09cdc73356
--- /dev/null
+++ b/web/yacco2/compiler/grammars/c_comments.fsc
@@ -0,0 +1,20 @@
+/*
+ File: c_comments.fsc
+ Date and Time: Fri Jan 30 18:55:05 2015
+*/
+transitive n
+grammar-name "c_comments"
+name-space "NS_c_comments"
+thread-name "TH_c_comments"
+monolithic n
+file-name "c_comments.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ raw_slash
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"C++ type comments lexer."
diff --git a/web/yacco2/compiler/grammars/c_comments.h b/web/yacco2/compiler/grammars/c_comments.h
new file mode 100644
index 0000000000..269e4f7835
--- /dev/null
+++ b/web/yacco2/compiler/grammars/c_comments.h
@@ -0,0 +1,81 @@
+/*
+ File: c_comments.h
+ Date and Time: Fri Jan 30 18:55:05 2015
+*/
+#ifndef __c_comments_h__
+#define __c_comments_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+extern yacco2::Thread_entry ITH_c_comments;
+
+extern yacco2::State S1_Cc_comments;
+namespace NS_c_comments {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_c_comments(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_c_comments(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[3];
+};
+class Cc_comments: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rc_comments_ = 569//start_of_rule_list + 0
+ ,rhs1_Rc_comments_ = 1
+ ,rhs2_Rc_comments_ = 2
+ ,R_Rslash_asterisk_ = 570//start_of_rule_list + 2
+ ,rhs1_Rslash_asterisk_ = 3
+ ,R_R2slash_ = 571//start_of_rule_list + 4
+ ,rhs1_R2slash_ = 4
+ };
+ //no of la sets = 2
+ //no of states = 8
+ Cc_comments();
+ ~Cc_comments();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[5];
+
+ public:
+ char ddd_[1024*32];
+ int ddd_idx_;
+ void copy_str_into_buffer(std::string* Str);
+ void copy_kstr_into_buffer(const char* Str);
+
+ };
+struct Rc_comments;
+struct Rslash_asterisk;
+struct R2slash;
+struct Rc_comments:public yacco2::CAbs_lr1_sym {
+ Rc_comments(yacco2::Parser* P);
+ void op();
+ public:
+};
+
+struct Rslash_asterisk:public yacco2::CAbs_lr1_sym {
+ Rslash_asterisk(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct R2slash:public yacco2::CAbs_lr1_sym {
+ R2slash(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/c_comments.lex b/web/yacco2/compiler/grammars/c_comments.lex
new file mode 100644
index 0000000000..32da01574a
--- /dev/null
+++ b/web/yacco2/compiler/grammars/c_comments.lex
@@ -0,0 +1,156 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: c_comments.lex
+Dates: 17 Juin 2003
+Test file: c_comments.dat
+Purpose: "C++" styled comments
+Returned: comment
+ Err_comment_overrun
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |c_comments| Thread.\fbreak
+Handles both flavours of c++ comments.\fbreak
+\ptindent{1) // single line type comment}
+\ptindent{2) /* ... */ type comment}
+To speed things up, i'm using a finite-state approach to lower the
+pushdown deterministic rule push / pop cycles.
+@/
+fsm
+(fsm-id "c_comments.lex",fsm-filename c_comments,fsm-namespace NS_c_comments
+,fsm-class Cc_comments {
+ user-declaration
+ public:
+ char ddd_[1024*32];
+ int ddd_idx_;
+ void copy_str_into_buffer(std::string* Str);
+ void copy_kstr_into_buffer(const char* Str);
+ ***
+ user-implementation
+ void Cc_comments::copy_str_into_buffer(std::string* Str){
+ const char* y = Str->c_str();
+ int x(0);
+ for(;y[x]!=0;++x,++ddd_idx_)ddd_[ddd_idx_] = y[x];
+ ddd_[ddd_idx_] = 0;
+ }
+/@
+@*3 |copy_kstr_into_buffer|.
+@/
+ void Cc_comments::copy_kstr_into_buffer(const char* Str){
+ const char* y = Str;
+ int x(0);
+ for(;y[x]!=0;++x,++ddd_idx_)ddd_[ddd_idx_] = y[x];
+ ddd_[ddd_idx_] = 0;
+ }
+ ***
+ constructor
+ ddd_idx_ = 0;
+ ddd_[ddd_idx_] = 0;
+ ***
+ op
+ ddd_idx_ = 0;
+ ddd_[ddd_idx_] = 0;
+ ***
+ }
+,fsm-version "1.0",fsm-date "17 Juin 2003",fsm-debug "false"
+,fsm-comments "C++ type comments lexer.")
+parallel-parser
+(
+ parallel-thread-function
+ TH_c_comments
+ ***
+ parallel-la-boundary
+ eolr
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+rules{
+Rc_comments (
+lhs {
+ op
+ Cc_comments* fsm = (Cc_comments*) rule_info__.parser__->fsm_tbl__;
+ T_comment* com = new T_comment((const char*)&fsm->ddd_);
+ com->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(com);
+ ***
+ }
+){
+ -> Rslash_asterisk |.|
+ -> R2slash |.|
+}
+
+Rslash_asterisk (){
+ -> "/" "*" {
+ op
+ Cc_comments* fsm = (Cc_comments*) rule_info__.parser__->fsm_tbl__;
+ fsm->copy_kstr_into_buffer("/");// due to lex scanner
+ fsm->copy_kstr_into_buffer("*");
+loop:
+ switch (rule_info__.parser__->current_token()->enumerated_id__){
+ case T_Enum::T_raw_lf_: goto other;
+ case T_Enum::T_raw_cr_: goto cr;
+ case T_Enum::T_LR1_eog_: goto overrun;
+ case T_Enum::T_raw_asteric_: goto aster;
+ default: goto other;
+ }
+ cr:{// cr lf?
+ fsm->copy_kstr_into_buffer(rule_info__.parser__->current_token()->id__);
+ rule_info__.parser__->get_next_token();
+ if(rule_info__.parser__->current_token()->enumerated_id__
+ != T_Enum::T_raw_lf_) goto loop;// not cr lf
+ fsm->copy_kstr_into_buffer(rule_info__.parser__->current_token()->id__);
+ rule_info__.parser__->get_next_token();
+goto loop;
+ };
+ aster:{ // end of k?
+ fsm->copy_kstr_into_buffer(rule_info__.parser__->current_token()->id__);
+ rule_info__.parser__->get_next_token();
+ if(rule_info__.parser__->current_token()->enumerated_id__
+ != T_Enum::T_raw_slash_) goto loop;// false eok
+ fsm->copy_kstr_into_buffer(rule_info__.parser__->current_token()->id__);
+ rule_info__.parser__->get_next_token();
+ return;
+ }
+ overrun:{
+ CAbs_lr1_sym* sym = new Err_comment_overrun;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ other:{
+ fsm->copy_kstr_into_buffer(rule_info__.parser__->current_token()->id__);
+ rule_info__.parser__->get_next_token();
+goto loop;
+ }
+ ***
+ }
+}
+
+R2slash (){
+ -> "/" "/" {
+ op
+ Cc_comments* fsm = (Cc_comments*) rule_info__.parser__->fsm_tbl__;
+ fsm->copy_kstr_into_buffer("/");
+ fsm->copy_kstr_into_buffer("/");
+ for(;;){
+ switch (rule_info__.parser__->current_token()->enumerated_id__){
+ case T_Enum::T_raw_lf_: {
+ return;
+ }
+ case T_Enum::T_raw_cr_:{
+ return;
+ }
+ case T_Enum::T_LR1_eog_: return;
+ }
+ fsm->copy_kstr_into_buffer(rule_info__.parser__->current_token()->id__);
+ rule_info__.parser__->get_next_token();
+ }
+ ***
+ }
+}
+
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/c_commentssym.cpp b/web/yacco2/compiler/grammars/c_commentssym.cpp
new file mode 100644
index 0000000000..76319612fd
--- /dev/null
+++ b/web/yacco2/compiler/grammars/c_commentssym.cpp
@@ -0,0 +1,108 @@
+/*
+ File: c_commentssym.cpp
+ Date and Time: Fri Jan 30 18:55:05 2015
+*/
+#include "c_comments.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_c_comments;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_c_comments::TH_c_comments(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_c_comments;
+ NS_c_comments::Cc_comments Cc_comments_;// parallel-parser's parse table
+#define ssPARSE_TABLE Cc_comments_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_c_comments::PROC_TH_c_comments(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_c_comments";
+ static bool one_time(false);
+ static NS_c_comments::Cc_comments* NS_c_comments_Cc_comments_(0);// parallel-parser's fsm table
+ static Parser* NS_c_comments_Cc_comments_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_c_comments_Cc_comments_ = new NS_c_comments::Cc_comments();// parallel-parser's fsm table
+ NS_c_comments_Cc_comments_parser = new Parser(*NS_c_comments_Cc_comments_,Caller_pp);
+ }
+ proc_parser = NS_c_comments_Cc_comments_parser;
+#include "wproc_pp_core.h"
+}
+void
+Cc_comments::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rc_comments_:{
+ Rc_comments* sym;
+ if(re->rule_ == 0){
+ sym = new Rc_comments(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rc_comments*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->op();
+ return;}
+ case rhs2_Rc_comments_:{
+ Rc_comments* sym;
+ if(re->rule_ == 0){
+ sym = new Rc_comments(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rc_comments*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->op();
+ return;}
+ case rhs1_Rslash_asterisk_:{
+ Rslash_asterisk* sym;
+ if(re->rule_ == 0){
+ sym = new Rslash_asterisk(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rslash_asterisk*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_R2slash_:{
+ R2slash* sym;
+ if(re->rule_ == 0){
+ sym = new R2slash(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (R2slash*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/c_commentstbl.cpp b/web/yacco2/compiler/grammars/c_commentstbl.cpp
new file mode 100644
index 0000000000..69413b5847
--- /dev/null
+++ b/web/yacco2/compiler/grammars/c_commentstbl.cpp
@@ -0,0 +1,151 @@
+/*
+ File: c_commentstbl.cpp
+ Date and Time: Fri Jan 30 18:55:05 2015
+*/
+#include "c_comments.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_c_comments;// grammar's ns
+// first set terminals
+// LR1_invisible_shift_operator
+yacco2::UCHAR LA1_Cc_comments[] ={
+1
+,0,32
+};
+// LR1_eolr
+yacco2::UCHAR LA2_Cc_comments[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Cc_comments;
+extern yacco2::State S2_Cc_comments;
+extern yacco2::State S3_Cc_comments;
+extern yacco2::State S4_Cc_comments;
+extern yacco2::State S5_Cc_comments;
+extern yacco2::State S6_Cc_comments;
+extern yacco2::State S7_Cc_comments;
+extern yacco2::State S8_Cc_comments;
+struct S1std_Cc_comments{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S1std_Cc_comments S1st_Cc_comments = {
+ 4
+ ,
+ {// start of table
+ {55,(State*)&S2_Cc_comments} // shift sym: raw_slash
+ ,{569,(State*)&S1_Cc_comments} // accept sym: Rc_comments
+ ,{570,(State*)&S5_Cc_comments} // shift sym: Rslash_asterisk
+ ,{571,(State*)&S7_Cc_comments} // shift sym: R2slash
+ }// end of shift table
+};
+yacco2::State S1_Cc_comments = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Cc_comments,0,0,0,0};
+struct S2std_Cc_comments{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S2std_Cc_comments S2st_Cc_comments = {
+ 2
+ ,
+ {// start of table
+ {50,(State*)&S3_Cc_comments} // shift sym: raw_asteric
+ ,{55,(State*)&S4_Cc_comments} // shift sym: raw_slash
+ }// end of shift table
+};
+yacco2::State S2_Cc_comments = //State's vectored into symbol: "/"
+{2
+,0,0,0,0,(Shift_tbl*)&S2st_Cc_comments,0,0,0,0};
+struct S3rtd_Cc_comments{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Cc_comments S3rt_Cc_comments = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cc_comments,Cc_comments::rhs1_Rslash_asterisk_}
+ }// end of reduce table
+};
+yacco2::State S3_Cc_comments = //State's vectored into symbol: "*"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_Cc_comments,0,0,0};
+struct S4rtd_Cc_comments{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Cc_comments S4rt_Cc_comments = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cc_comments,Cc_comments::rhs1_R2slash_}
+ }// end of reduce table
+};
+yacco2::State S4_Cc_comments = //State's vectored into symbol: "/"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Cc_comments,0,0,0};
+struct S5std_Cc_comments{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S5std_Cc_comments S5st_Cc_comments = {
+ 1
+ ,
+ {// start of table
+ {5,(State*)&S6_Cc_comments} // shift sym: LR1_invisible_shift_operator
+ }// end of shift table
+};
+yacco2::Shift_entry S5ise_Cc_comments = {5,(State*)&S6_Cc_comments};
+yacco2::State S5_Cc_comments = //State's vectored into symbol: "Rslash_asterisk"
+{5
+,0,0,(Shift_entry*)&S5ise_Cc_comments
+,0,(Shift_tbl*)&S5st_Cc_comments,0,0,0,0};
+struct S6rtd_Cc_comments{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Cc_comments S6rt_Cc_comments = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cc_comments,Cc_comments::rhs1_Rc_comments_}
+ }// end of reduce table
+};
+yacco2::State S6_Cc_comments = //State's vectored into symbol: "|.|"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Cc_comments,0,0,0};
+struct S7std_Cc_comments{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S7std_Cc_comments S7st_Cc_comments = {
+ 1
+ ,
+ {// start of table
+ {5,(State*)&S8_Cc_comments} // shift sym: LR1_invisible_shift_operator
+ }// end of shift table
+};
+yacco2::Shift_entry S7ise_Cc_comments = {5,(State*)&S8_Cc_comments};
+yacco2::State S7_Cc_comments = //State's vectored into symbol: "R2slash"
+{7
+,0,0,(Shift_entry*)&S7ise_Cc_comments
+,0,(Shift_tbl*)&S7st_Cc_comments,0,0,0,0};
+struct S8rtd_Cc_comments{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S8rtd_Cc_comments S8rt_Cc_comments = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cc_comments,Cc_comments::rhs2_Rc_comments_}
+ }// end of reduce table
+};
+yacco2::State S8_Cc_comments = //State's vectored into symbol: "|.|"
+{8
+,0,0,0,0,0,(Reduce_tbl*)&S8rt_Cc_comments,0,0,0};
diff --git a/web/yacco2/compiler/grammars/c_literal.cpp b/web/yacco2/compiler/grammars/c_literal.cpp
new file mode 100644
index 0000000000..8fc1ca123a
--- /dev/null
+++ b/web/yacco2/compiler/grammars/c_literal.cpp
@@ -0,0 +1,150 @@
+/*
+ File: c_literal.cpp
+ Date and Time: Fri Jan 30 18:55:05 2015
+*/
+#include "c_literal.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_c_literal;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 2;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+}
+ Cc_literal::
+ Cc_literal()
+ :yacco2::CAbs_fsm
+ ("c_literal.lex"
+ ,"1.0"
+ ,"17 Juin 2003"
+ ,false
+ ,"C literal lexer."
+ ,"Fri Jan 30 18:55:05 2015 "
+ ,S1_Cc_literal){
+
+ ddd_idx_ = 0;
+ ddd_[ddd_idx_] = 0;
+
+ }
+
+Cc_literal::~Cc_literal(){
+
+ for(int x = 0;x < 2;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cc_literal::failed(){
+ return false;
+ }
+ void Cc_literal::op(){
+ ddd_idx_ = 0;
+ ddd_[ddd_idx_] = 0;
+
+}
+int Cc_literal::rhs_to_rules_mapping_[3] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+};
+
+ void Cc_literal::copy_str_into_buffer(std::string* Str){
+ const char* y = Str->c_str();
+ int x(0);
+ for(;y[x]!=0;++x,++ddd_idx_)ddd_[ddd_idx_] = y[x];
+ ddd_[ddd_idx_] = 0;
+ }
+
+ void Cc_literal::copy_kstr_into_buffer(const char* Str){
+ const char* y = Str;
+ int x(0);
+ for(;y[x]!=0;++x,++ddd_idx_)ddd_[ddd_idx_] = y[x];
+ ddd_[ddd_idx_] = 0;
+ }
+
+Rc_literal::Rc_literal(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rc_literal",0,Cc_literal::R_Rc_literal_,P,false,false){
+}
+
+void Rc_literal::op(){
+ sstrace_rulesss
+
+ Cc_literal* fsm = (Cc_literal*) rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* sym = new T_c_literal((const char*)&fsm->ddd_);
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+
+}
+Rquote::Rquote(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rquote",0,Cc_literal::R_Rquote_,P,false,false){
+}
+
+void Rquote::sr1(){
+
+ Cc_literal* fsm = (Cc_literal*) rule_info__.parser__->fsm_tbl__;
+loop:
+ switch (rule_info__.parser__->current_token()->enumerated_id__){
+ case T_Enum::T_raw_lf_: goto overrun;
+ case T_Enum::T_raw_cr_: goto overrun;
+ case T_Enum::T_LR1_eog_: goto overrun;
+ case T_Enum::T_raw_right_quote_: goto rtquote;
+ case T_Enum::T_raw_back_slash_: goto escseq;
+ default: goto other;
+ }
+ rtquote:{ // end of literal?
+ rule_info__.parser__->get_next_token();
+ if(rule_info__.parser__->current_token()->enumerated_id__
+ == T_Enum::T_raw_right_quote_){
+ fsm->copy_kstr_into_buffer("''");
+ rule_info__.parser__->get_next_token();
+ goto loop;
+ }
+ return;// end of literal
+ }
+ overrun:{
+ CAbs_lr1_sym* sym = new Err_bad_eos;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ escseq:{// what type of escape
+ using namespace NS_esc_seq;
+ Parser::parse_result result =
+ rule_info__.parser__->start_manually_parallel_parsing(ITH_esc_seq.thd_id__);
+ if(result == Parser::erred){
+ // in this case, it will not happen: here for education
+ rule_info__.parser__->set_abort_parse(true);
+ return;
+ }
+ // process returned token
+ Caccept_parse& accept_parm = *rule_info__.parser__->arbitrated_token__;
+ CAbs_lr1_sym* rtn_tok = accept_parm.accept_token__;
+ int id = rtn_tok->enumerated_id__;
+ accept_parm.accept_token__ = 0;
+ if(id != T_Enum::T_T_esc_seq_) {
+ RSVP(rtn_tok);
+ return;
+ }
+ T_esc_seq* finc = (T_esc_seq*)(rtn_tok);
+ fsm->copy_str_into_buffer(finc->esc_data());
+ rule_info__.parser__->override_current_token(*accept_parm.la_token__
+ ,accept_parm.la_token_pos__);
+ delete finc;
+goto loop;
+ };
+ other:{
+ fsm->copy_kstr_into_buffer(rule_info__.parser__->current_token()->id__);
+ rule_info__.parser__->get_next_token();
+goto loop;
+ }
+
+}
+
diff --git a/web/yacco2/compiler/grammars/c_literal.fsc b/web/yacco2/compiler/grammars/c_literal.fsc
new file mode 100644
index 0000000000..a125eb0bb6
--- /dev/null
+++ b/web/yacco2/compiler/grammars/c_literal.fsc
@@ -0,0 +1,20 @@
+/*
+ File: c_literal.fsc
+ Date and Time: Fri Jan 30 18:55:05 2015
+*/
+transitive n
+grammar-name "c_literal"
+name-space "NS_c_literal"
+thread-name "TH_c_literal"
+monolithic n
+file-name "c_literal.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ raw_right_quote
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"C literal lexer."
diff --git a/web/yacco2/compiler/grammars/c_literal.h b/web/yacco2/compiler/grammars/c_literal.h
new file mode 100644
index 0000000000..d7e3511af5
--- /dev/null
+++ b/web/yacco2/compiler/grammars/c_literal.h
@@ -0,0 +1,74 @@
+/*
+ File: c_literal.h
+ Date and Time: Fri Jan 30 18:55:05 2015
+*/
+#ifndef __c_literal_h__
+#define __c_literal_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "esc_seq.h"
+
+extern yacco2::Thread_entry ITH_c_literal;
+
+extern yacco2::State S1_Cc_literal;
+namespace NS_c_literal {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_c_literal(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_c_literal(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[2];
+};
+class Cc_literal: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rc_literal_ = 569//start_of_rule_list + 0
+ ,rhs1_Rc_literal_ = 1
+ ,R_Rquote_ = 570//start_of_rule_list + 2
+ ,rhs1_Rquote_ = 2
+ };
+ //no of la sets = 2
+ //no of states = 4
+ Cc_literal();
+ ~Cc_literal();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[3];
+
+ public:
+ char ddd_[1024*32];
+ int ddd_idx_;
+ void copy_str_into_buffer(std::string* Str);
+ void copy_kstr_into_buffer(const char* Str);
+
+ };
+struct Rc_literal;
+struct Rquote;
+struct Rc_literal:public yacco2::CAbs_lr1_sym {
+ Rc_literal(yacco2::Parser* P);
+ void op();
+ public:
+};
+
+struct Rquote:public yacco2::CAbs_lr1_sym {
+ Rquote(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/c_literal.lex b/web/yacco2/compiler/grammars/c_literal.lex
new file mode 100644
index 0000000000..3c0d73bcb4
--- /dev/null
+++ b/web/yacco2/compiler/grammars/c_literal.lex
@@ -0,0 +1,167 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: c_literal.lex
+Dates: 17 Juin 2003
+Purpose: c string recognizer : single quoted strings Eg. 'hi'
+Returned: T_c_literal
+ Err_bad_eos - meta terminal indicating an improper end-of-string
+ this occurs on eof,eog, or an eol terminal ending the string
+ Err_bad_esc - bad escape sequence.
+Note: Stripped of its single quotes for ease of use
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |c_literal| Thread.\fbreak
+It recognizes single quoted c++ literal strings with embeded
+escape sequences. The single quoted sequence
+accepts 2 single ' within the
+ embeded character sequence without any conversion
+--- the 2nd ' is not dropped.
+Escape sequences are just concatenated to the string.
+No conversion is done at present; just recognize
+the embeded character sequence.
+See comments in |angled_string| thread regarding
+badly terminated strings and escape sequences.
+
+Returned data is the chacacter string without
+ the bounding single quotes.\fbreak
+\fbreak
+Errors:\fbreak
+|Err_bad_esc| and |Err_bad_eos|.\fbreak
+\fbreak
+Returned T: |T_literal|\fbreak
+@/
+fsm
+(fsm-id "c_literal.lex",fsm-filename c_literal,fsm-namespace NS_c_literal
+,fsm-class Cc_literal {
+ user-prefix-declaration
+#include "esc_seq.h"
+ ***
+ user-declaration
+ public:
+ char ddd_[1024*32];
+ int ddd_idx_;
+ void copy_str_into_buffer(std::string* Str);
+ void copy_kstr_into_buffer(const char* Str);
+ ***
+ user-implementation
+ void Cc_literal::copy_str_into_buffer(std::string* Str){
+ const char* y = Str->c_str();
+ int x(0);
+ for(;y[x]!=0;++x,++ddd_idx_)ddd_[ddd_idx_] = y[x];
+ ddd_[ddd_idx_] = 0;
+ }
+/@
+@*3 |copy_kstr_into_buffer|.
+@/
+ void Cc_literal::copy_kstr_into_buffer(const char* Str){
+ const char* y = Str;
+ int x(0);
+ for(;y[x]!=0;++x,++ddd_idx_)ddd_[ddd_idx_] = y[x];
+ ddd_[ddd_idx_] = 0;
+ }
+ ***
+ constructor
+ ddd_idx_ = 0;
+ ddd_[ddd_idx_] = 0;
+ ***
+ op
+ ddd_idx_ = 0;
+ ddd_[ddd_idx_] = 0;
+ ***
+}
+,fsm-version "1.0" ,fsm-date "17 Juin 2003"
+,fsm-debug "false" ,fsm-comments "C literal lexer.")
+parallel-parser
+(
+ parallel-thread-function
+ TH_c_literal
+ ***
+ parallel-la-boundary
+ eolr
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+//
+rules{
+Rc_literal (
+lhs{
+ op
+ Cc_literal* fsm = (Cc_literal*) rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* sym = new T_c_literal((const char*)&fsm->ddd_);
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ ***
+ }
+)
+{
+ -> Rquote |.|
+}
+
+Rquote (){
+ -> "'" {
+ op
+ Cc_literal* fsm = (Cc_literal*) rule_info__.parser__->fsm_tbl__;
+loop:
+ switch (rule_info__.parser__->current_token()->enumerated_id__){
+ case T_Enum::T_raw_lf_: goto overrun;
+ case T_Enum::T_raw_cr_: goto overrun;
+ case T_Enum::T_LR1_eog_: goto overrun;
+ case T_Enum::T_raw_right_quote_: goto rtquote;
+ case T_Enum::T_raw_back_slash_: goto escseq;
+ default: goto other;
+ }
+ rtquote:{ // end of literal?
+ rule_info__.parser__->get_next_token();
+ if(rule_info__.parser__->current_token()->enumerated_id__
+ == T_Enum::T_raw_right_quote_){
+ fsm->copy_kstr_into_buffer("''");
+ rule_info__.parser__->get_next_token();
+ goto loop;
+ }
+ return;// end of literal
+ }
+ overrun:{
+ CAbs_lr1_sym* sym = new Err_bad_eos;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ escseq:{// what type of escape
+ using namespace NS_esc_seq;
+ Parser::parse_result result =
+ rule_info__.parser__->start_manually_parallel_parsing(ITH_esc_seq.thd_id__);
+ if(result == Parser::erred){
+ // in this case, it will not happen: here for education
+ rule_info__.parser__->set_abort_parse(true);
+ return;
+ }
+ // process returned token
+ Caccept_parse& accept_parm = *rule_info__.parser__->arbitrated_token__;
+ CAbs_lr1_sym* rtn_tok = accept_parm.accept_token__;
+ int id = rtn_tok->enumerated_id__;
+ accept_parm.accept_token__ = 0;
+ if(id != T_Enum::T_T_esc_seq_) {
+ RSVP(rtn_tok);
+ return;
+ }
+ T_esc_seq* finc = (T_esc_seq*)(rtn_tok);
+ fsm->copy_str_into_buffer(finc->esc_data());
+ rule_info__.parser__->override_current_token(*accept_parm.la_token__
+ ,accept_parm.la_token_pos__);
+ delete finc;
+goto loop;
+ };
+ other:{
+ fsm->copy_kstr_into_buffer(rule_info__.parser__->current_token()->id__);
+ rule_info__.parser__->get_next_token();
+goto loop;
+ }
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/c_literalsym.cpp b/web/yacco2/compiler/grammars/c_literalsym.cpp
new file mode 100644
index 0000000000..b5cf63ee82
--- /dev/null
+++ b/web/yacco2/compiler/grammars/c_literalsym.cpp
@@ -0,0 +1,78 @@
+/*
+ File: c_literalsym.cpp
+ Date and Time: Fri Jan 30 18:55:05 2015
+*/
+#include "c_literal.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_c_literal;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_c_literal::TH_c_literal(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_c_literal;
+ NS_c_literal::Cc_literal Cc_literal_;// parallel-parser's parse table
+#define ssPARSE_TABLE Cc_literal_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_c_literal::PROC_TH_c_literal(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_c_literal";
+ static bool one_time(false);
+ static NS_c_literal::Cc_literal* NS_c_literal_Cc_literal_(0);// parallel-parser's fsm table
+ static Parser* NS_c_literal_Cc_literal_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_c_literal_Cc_literal_ = new NS_c_literal::Cc_literal();// parallel-parser's fsm table
+ NS_c_literal_Cc_literal_parser = new Parser(*NS_c_literal_Cc_literal_,Caller_pp);
+ }
+ proc_parser = NS_c_literal_Cc_literal_parser;
+#include "wproc_pp_core.h"
+}
+void
+Cc_literal::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rc_literal_:{
+ Rc_literal* sym;
+ if(re->rule_ == 0){
+ sym = new Rc_literal(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rc_literal*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->op();
+ return;}
+ case rhs1_Rquote_:{
+ Rquote* sym;
+ if(re->rule_ == 0){
+ sym = new Rquote(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rquote*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/c_literaltbl.cpp b/web/yacco2/compiler/grammars/c_literaltbl.cpp
new file mode 100644
index 0000000000..5a4b7ad729
--- /dev/null
+++ b/web/yacco2/compiler/grammars/c_literaltbl.cpp
@@ -0,0 +1,87 @@
+/*
+ File: c_literaltbl.cpp
+ Date and Time: Fri Jan 30 18:55:05 2015
+*/
+#include "c_literal.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_c_literal;// grammar's ns
+// first set terminals
+// LR1_invisible_shift_operator
+yacco2::UCHAR LA1_Cc_literal[] ={
+1
+,0,32
+};
+// LR1_eolr
+yacco2::UCHAR LA2_Cc_literal[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Cc_literal;
+extern yacco2::State S2_Cc_literal;
+extern yacco2::State S3_Cc_literal;
+extern yacco2::State S4_Cc_literal;
+struct S1std_Cc_literal{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S1std_Cc_literal S1st_Cc_literal = {
+ 3
+ ,
+ {// start of table
+ {47,(State*)&S2_Cc_literal} // shift sym: raw_right_quote
+ ,{569,(State*)&S1_Cc_literal} // accept sym: Rc_literal
+ ,{570,(State*)&S3_Cc_literal} // shift sym: Rquote
+ }// end of shift table
+};
+yacco2::State S1_Cc_literal = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Cc_literal,0,0,0,0};
+struct S2rtd_Cc_literal{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Cc_literal S2rt_Cc_literal = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cc_literal,Cc_literal::rhs1_Rquote_}
+ }// end of reduce table
+};
+yacco2::State S2_Cc_literal = //State's vectored into symbol: "'"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Cc_literal,0,0,0};
+struct S3std_Cc_literal{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S3std_Cc_literal S3st_Cc_literal = {
+ 1
+ ,
+ {// start of table
+ {5,(State*)&S4_Cc_literal} // shift sym: LR1_invisible_shift_operator
+ }// end of shift table
+};
+yacco2::Shift_entry S3ise_Cc_literal = {5,(State*)&S4_Cc_literal};
+yacco2::State S3_Cc_literal = //State's vectored into symbol: "Rquote"
+{3
+,0,0,(Shift_entry*)&S3ise_Cc_literal
+,0,(Shift_tbl*)&S3st_Cc_literal,0,0,0,0};
+struct S4rtd_Cc_literal{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Cc_literal S4rt_Cc_literal = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cc_literal,Cc_literal::rhs1_Rc_literal_}
+ }// end of reduce table
+};
+yacco2::State S4_Cc_literal = //State's vectored into symbol: "|.|"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Cc_literal,0,0,0};
diff --git a/web/yacco2/compiler/grammars/c_string.cpp b/web/yacco2/compiler/grammars/c_string.cpp
new file mode 100644
index 0000000000..a490ef12ab
--- /dev/null
+++ b/web/yacco2/compiler/grammars/c_string.cpp
@@ -0,0 +1,151 @@
+/*
+ File: c_string.cpp
+ Date and Time: Fri Jan 30 18:55:06 2015
+*/
+#include "c_string.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_c_string;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 2;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+}
+ Cc_string::
+ Cc_string()
+ :yacco2::CAbs_fsm
+ ("c_string.lex"
+ ,"1.0"
+ ,"17 Juin 2003"
+ ,false
+ ,"C string lexer."
+ ,"Fri Jan 30 18:55:06 2015 "
+ ,S1_Cc_string){
+
+ ddd_idx_ = 0;
+ ddd_[ddd_idx_] = 0;
+
+ }
+
+Cc_string::~Cc_string(){
+
+ for(int x = 0;x < 2;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cc_string::failed(){
+ return false;
+ }
+ void Cc_string::op(){
+ ddd_idx_ = 0;
+ ddd_[ddd_idx_] = 0;
+
+}
+int Cc_string::rhs_to_rules_mapping_[3] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+};
+
+ void Cc_string::copy_str_into_buffer(std::string* Str){
+ const char* y = Str->c_str();
+ int x(0);
+ for(;y[x]!=0;++x,++ddd_idx_)ddd_[ddd_idx_] = y[x];
+ ddd_[ddd_idx_] = 0;
+ }
+
+ void Cc_string::copy_kstr_into_buffer(const char* Str){
+ const char* y = Str;
+ int x(0);
+ for(;y[x]!=0;++x,++ddd_idx_)ddd_[ddd_idx_] = y[x];
+ ddd_[ddd_idx_] = 0;
+ }
+
+Rc_string::Rc_string(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rc_string",0,Cc_string::R_Rc_string_,P,false,false){
+}
+
+void Rc_string::op(){
+ sstrace_rulesss
+
+ Cc_string* fsm = (Cc_string*) rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* sym = new T_c_string((const char*)&fsm->ddd_);
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+
+}
+Rquote::Rquote(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rquote",0,Cc_string::R_Rquote_,P,false,false){
+}
+
+void Rquote::sr1(){
+
+ Cc_string* fsm = (Cc_string*) rule_info__.parser__->fsm_tbl__;
+loop:
+ switch (rule_info__.parser__->current_token()->enumerated_id__){
+ case T_Enum::T_raw_lf_: goto overrun;
+ case T_Enum::T_raw_cr_: goto overrun;
+ case T_Enum::T_LR1_eog_: goto overrun;
+ case T_Enum::T_raw_dbl_quote_: goto dblquote;
+ case T_Enum::T_raw_back_slash_: goto escseq;
+ default: goto other;
+ }
+ dblquote:{ // end of string
+ rule_info__.parser__->get_next_token();
+ if(rule_info__.parser__->current_token()->enumerated_id__
+ == T_Enum::T_raw_dbl_quote_){
+ fsm->copy_kstr_into_buffer("\"");// due to lex scanner
+ fsm->copy_kstr_into_buffer("\"");
+ rule_info__.parser__->get_next_token();
+ goto loop;
+ }
+ return;// end of c string
+ }
+ overrun:{
+ CAbs_lr1_sym* sym = new Err_bad_eos;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ escseq:{// what type of escape
+ using namespace NS_esc_seq;
+ Parser::parse_result result =
+ rule_info__.parser__->start_manually_parallel_parsing(ITH_esc_seq.thd_id__);
+ if(result == Parser::erred){
+ // in this case, it will not happen: here for education
+ rule_info__.parser__->set_abort_parse(true);
+ return;
+ }
+ // process returned token
+ Caccept_parse& accept_parm = *rule_info__.parser__->arbitrated_token__;
+ CAbs_lr1_sym* rtn_tok = accept_parm.accept_token__;
+ int id = rtn_tok->enumerated_id__;
+ accept_parm.accept_token__ = 0;
+ if(id != T_Enum::T_T_esc_seq_) {
+ RSVP(rtn_tok);
+ return;
+ }
+ T_esc_seq* finc = (T_esc_seq*)(rtn_tok);
+ fsm->copy_str_into_buffer(finc->esc_data());
+ rule_info__.parser__->override_current_token(*accept_parm.la_token__
+ ,accept_parm.la_token_pos__);
+ delete finc;
+goto loop;
+ };
+ other:{
+ fsm->copy_kstr_into_buffer(rule_info__.parser__->current_token()->id__);
+ rule_info__.parser__->get_next_token();
+goto loop;
+ }
+
+}
+
diff --git a/web/yacco2/compiler/grammars/c_string.fsc b/web/yacco2/compiler/grammars/c_string.fsc
new file mode 100644
index 0000000000..b135381dd0
--- /dev/null
+++ b/web/yacco2/compiler/grammars/c_string.fsc
@@ -0,0 +1,20 @@
+/*
+ File: c_string.fsc
+ Date and Time: Fri Jan 30 18:55:06 2015
+*/
+transitive n
+grammar-name "c_string"
+name-space "NS_c_string"
+thread-name "TH_c_string"
+monolithic n
+file-name "c_string.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ raw_dbl_quote
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"C string lexer."
diff --git a/web/yacco2/compiler/grammars/c_string.h b/web/yacco2/compiler/grammars/c_string.h
new file mode 100644
index 0000000000..7dd1b67a4b
--- /dev/null
+++ b/web/yacco2/compiler/grammars/c_string.h
@@ -0,0 +1,74 @@
+/*
+ File: c_string.h
+ Date and Time: Fri Jan 30 18:55:06 2015
+*/
+#ifndef __c_string_h__
+#define __c_string_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "esc_seq.h"
+
+extern yacco2::Thread_entry ITH_c_string;
+
+extern yacco2::State S1_Cc_string;
+namespace NS_c_string {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_c_string(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_c_string(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[2];
+};
+class Cc_string: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rc_string_ = 569//start_of_rule_list + 0
+ ,rhs1_Rc_string_ = 1
+ ,R_Rquote_ = 570//start_of_rule_list + 2
+ ,rhs1_Rquote_ = 2
+ };
+ //no of la sets = 2
+ //no of states = 4
+ Cc_string();
+ ~Cc_string();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[3];
+
+ public:
+ char ddd_[1024*32];
+ int ddd_idx_;
+ void copy_str_into_buffer(std::string* Str);
+ void copy_kstr_into_buffer(const char* Str);
+
+ };
+struct Rc_string;
+struct Rquote;
+struct Rc_string:public yacco2::CAbs_lr1_sym {
+ Rc_string(yacco2::Parser* P);
+ void op();
+ public:
+};
+
+struct Rquote:public yacco2::CAbs_lr1_sym {
+ Rquote(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/c_string.lex b/web/yacco2/compiler/grammars/c_string.lex
new file mode 100644
index 0000000000..e5a625cb6a
--- /dev/null
+++ b/web/yacco2/compiler/grammars/c_string.lex
@@ -0,0 +1,173 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: c_string.lex
+Dates: 17 Juin 2003
+Purpose: c string recognizer : double quoted strings Eg. "hi"
+Returned: T_c_string
+ Err_bad_eos - meta terminal indicating an improper end-of-string
+ this occurs on eof,eog, or an eol terminal ending the string
+ Err_bad_esc - bad escape sequence.
+Note: Stripped of its double quotes for ease of use
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |c_string| Thread.\fbreak
+It recognizes double quoted c++ strings with embeded
+escape sequences. The double quoted sequence
+accepts 2 double " within the
+ embeded character sequence without any conversion
+--- the 2nd " is not dropped.
+Escape sequences are just concatenated to the string.
+No conversion is done at present; just recognize
+the embeded character sequence.
+See comments in |angled_string| thread regarding
+badly terminated strings and escape sequences.\fbreak
+
+Returned data is the chacacter string without
+the bounding " quotes.\fbreak
+\fbreak
+Errors:\fbreak
+|Err_bad_esc| and |Err_bad_eos|.\fbreak
+\fbreak
+Returned T: |T_c_string|\fbreak
+@/
+fsm
+(fsm-id "c_string.lex",fsm-filename c_string,fsm-namespace NS_c_string
+,fsm-class Cc_string {
+ user-prefix-declaration
+#include "esc_seq.h"
+ ***
+ user-declaration
+ public:
+ char ddd_[1024*32];
+ int ddd_idx_;
+ void copy_str_into_buffer(std::string* Str);
+ void copy_kstr_into_buffer(const char* Str);
+ ***
+ user-implementation
+ void Cc_string::copy_str_into_buffer(std::string* Str){
+ const char* y = Str->c_str();
+ int x(0);
+ for(;y[x]!=0;++x,++ddd_idx_)ddd_[ddd_idx_] = y[x];
+ ddd_[ddd_idx_] = 0;
+ }
+/@
+@*3 |copy_kstr_into_buffer|.
+@/
+ void Cc_string::copy_kstr_into_buffer(const char* Str){
+ const char* y = Str;
+ int x(0);
+ for(;y[x]!=0;++x,++ddd_idx_)ddd_[ddd_idx_] = y[x];
+ ddd_[ddd_idx_] = 0;
+ }
+ ***
+ constructor
+ ddd_idx_ = 0;
+ ddd_[ddd_idx_] = 0;
+ ***
+ op
+ ddd_idx_ = 0;
+ ddd_[ddd_idx_] = 0;
+ ***
+}
+,fsm-version "1.0" ,fsm-date "17 Juin 2003"
+,fsm-debug "false" ,fsm-comments "C string lexer.")
+parallel-parser
+(
+ parallel-thread-function
+ TH_c_string
+ ***
+ parallel-la-boundary
+ eolr
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+rules{
+Rc_string (
+lhs{
+ op
+ Cc_string* fsm = (Cc_string*) rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* sym = new T_c_string((const char*)&fsm->ddd_);
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ ***
+ }
+)
+{
+ -> Rquote |.|
+}
+
+Rquote (){
+ -> "\"" {
+/@
+Caveat: Due to Mpost's literal not accepting an escape sequence for ",
+i substitute the " for char(34). It was my weak attempt
+to try to draw it.
+@/
+ op
+ Cc_string* fsm = (Cc_string*) rule_info__.parser__->fsm_tbl__;
+loop:
+ switch (rule_info__.parser__->current_token()->enumerated_id__){
+ case T_Enum::T_raw_lf_: goto overrun;
+ case T_Enum::T_raw_cr_: goto overrun;
+ case T_Enum::T_LR1_eog_: goto overrun;
+ case T_Enum::T_raw_dbl_quote_: goto dblquote;
+ case T_Enum::T_raw_back_slash_: goto escseq;
+ default: goto other;
+ }
+ dblquote:{ // end of string
+ rule_info__.parser__->get_next_token();
+ if(rule_info__.parser__->current_token()->enumerated_id__
+ == T_Enum::T_raw_dbl_quote_){
+ fsm->copy_kstr_into_buffer("\"");// due to lex scanner
+ fsm->copy_kstr_into_buffer("\"");
+ rule_info__.parser__->get_next_token();
+ goto loop;
+ }
+ return;// end of c string
+ }
+ overrun:{
+ CAbs_lr1_sym* sym = new Err_bad_eos;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ escseq:{// what type of escape
+ using namespace NS_esc_seq;
+ Parser::parse_result result =
+ rule_info__.parser__->start_manually_parallel_parsing(ITH_esc_seq.thd_id__);
+ if(result == Parser::erred){
+ // in this case, it will not happen: here for education
+ rule_info__.parser__->set_abort_parse(true);
+ return;
+ }
+ // process returned token
+ Caccept_parse& accept_parm = *rule_info__.parser__->arbitrated_token__;
+ CAbs_lr1_sym* rtn_tok = accept_parm.accept_token__;
+ int id = rtn_tok->enumerated_id__;
+ accept_parm.accept_token__ = 0;
+ if(id != T_Enum::T_T_esc_seq_) {
+ RSVP(rtn_tok);
+ return;
+ }
+ T_esc_seq* finc = (T_esc_seq*)(rtn_tok);
+ fsm->copy_str_into_buffer(finc->esc_data());
+ rule_info__.parser__->override_current_token(*accept_parm.la_token__
+ ,accept_parm.la_token_pos__);
+ delete finc;
+goto loop;
+ };
+ other:{
+ fsm->copy_kstr_into_buffer(rule_info__.parser__->current_token()->id__);
+ rule_info__.parser__->get_next_token();
+goto loop;
+ }
+ ***
+ }
+}
+
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/c_stringsym.cpp b/web/yacco2/compiler/grammars/c_stringsym.cpp
new file mode 100644
index 0000000000..ca1041abdd
--- /dev/null
+++ b/web/yacco2/compiler/grammars/c_stringsym.cpp
@@ -0,0 +1,78 @@
+/*
+ File: c_stringsym.cpp
+ Date and Time: Fri Jan 30 18:55:06 2015
+*/
+#include "c_string.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_c_string;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_c_string::TH_c_string(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_c_string;
+ NS_c_string::Cc_string Cc_string_;// parallel-parser's parse table
+#define ssPARSE_TABLE Cc_string_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_c_string::PROC_TH_c_string(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_c_string";
+ static bool one_time(false);
+ static NS_c_string::Cc_string* NS_c_string_Cc_string_(0);// parallel-parser's fsm table
+ static Parser* NS_c_string_Cc_string_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_c_string_Cc_string_ = new NS_c_string::Cc_string();// parallel-parser's fsm table
+ NS_c_string_Cc_string_parser = new Parser(*NS_c_string_Cc_string_,Caller_pp);
+ }
+ proc_parser = NS_c_string_Cc_string_parser;
+#include "wproc_pp_core.h"
+}
+void
+Cc_string::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rc_string_:{
+ Rc_string* sym;
+ if(re->rule_ == 0){
+ sym = new Rc_string(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rc_string*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->op();
+ return;}
+ case rhs1_Rquote_:{
+ Rquote* sym;
+ if(re->rule_ == 0){
+ sym = new Rquote(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rquote*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/c_stringtbl.cpp b/web/yacco2/compiler/grammars/c_stringtbl.cpp
new file mode 100644
index 0000000000..3719df6893
--- /dev/null
+++ b/web/yacco2/compiler/grammars/c_stringtbl.cpp
@@ -0,0 +1,87 @@
+/*
+ File: c_stringtbl.cpp
+ Date and Time: Fri Jan 30 18:55:06 2015
+*/
+#include "c_string.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_c_string;// grammar's ns
+// first set terminals
+// LR1_invisible_shift_operator
+yacco2::UCHAR LA1_Cc_string[] ={
+1
+,0,32
+};
+// LR1_eolr
+yacco2::UCHAR LA2_Cc_string[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Cc_string;
+extern yacco2::State S2_Cc_string;
+extern yacco2::State S3_Cc_string;
+extern yacco2::State S4_Cc_string;
+struct S1std_Cc_string{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S1std_Cc_string S1st_Cc_string = {
+ 3
+ ,
+ {// start of table
+ {42,(State*)&S2_Cc_string} // shift sym: raw_dbl_quote
+ ,{569,(State*)&S1_Cc_string} // accept sym: Rc_string
+ ,{570,(State*)&S3_Cc_string} // shift sym: Rquote
+ }// end of shift table
+};
+yacco2::State S1_Cc_string = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Cc_string,0,0,0,0};
+struct S2rtd_Cc_string{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Cc_string S2rt_Cc_string = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cc_string,Cc_string::rhs1_Rquote_}
+ }// end of reduce table
+};
+yacco2::State S2_Cc_string = //State's vectored into symbol: "\""
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Cc_string,0,0,0};
+struct S3std_Cc_string{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S3std_Cc_string S3st_Cc_string = {
+ 1
+ ,
+ {// start of table
+ {5,(State*)&S4_Cc_string} // shift sym: LR1_invisible_shift_operator
+ }// end of shift table
+};
+yacco2::Shift_entry S3ise_Cc_string = {5,(State*)&S4_Cc_string};
+yacco2::State S3_Cc_string = //State's vectored into symbol: "Rquote"
+{3
+,0,0,(Shift_entry*)&S3ise_Cc_string
+,0,(Shift_tbl*)&S3st_Cc_string,0,0,0,0};
+struct S4rtd_Cc_string{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Cc_string S4rt_Cc_string = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cc_string,Cc_string::rhs1_Rc_string_}
+ }// end of reduce table
+};
+yacco2::State S4_Cc_string = //State's vectored into symbol: "|.|"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Cc_string,0,0,0};
diff --git a/web/yacco2/compiler/grammars/cweave_T_sdc.cpp b/web/yacco2/compiler/grammars/cweave_T_sdc.cpp
new file mode 100644
index 0000000000..405a8eea59
--- /dev/null
+++ b/web/yacco2/compiler/grammars/cweave_T_sdc.cpp
@@ -0,0 +1,223 @@
+/*
+ File: cweave_T_sdc.cpp
+ Date and Time: Fri Jan 30 18:55:08 2015
+*/
+#include "cweave_T_sdc.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_cweave_T_sdc;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 3;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+}
+ Ccweave_T_sdc::
+ Ccweave_T_sdc()
+ :yacco2::CAbs_fsm
+ ("cweave_T_sdc.lex"
+ ,"1.0"
+ ,"5 Jan. 2006"
+ ,false
+ ,"Write out cweave Terminals' sdc directives."
+ ,"Fri Jan 30 18:55:08 2015 "
+ ,S1_Ccweave_T_sdc){
+
+ }
+
+Ccweave_T_sdc::~Ccweave_T_sdc(){
+
+ for(int x = 0;x < 3;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Ccweave_T_sdc::failed(){
+ return false;
+ }
+ void Ccweave_T_sdc::op(){
+}
+int Ccweave_T_sdc::rhs_to_rules_mapping_[9] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,2 // subrule 4 for rule 3
+ ,2 // subrule 5 for rule 3
+ ,2 // subrule 6 for rule 3
+ ,2 // subrule 7 for rule 3
+ ,2 // subrule 8 for rule 3
+};
+
+ void Ccweave_T_sdc::initialize
+ (std::ofstream* Cweave_file
+ ,yacco2::KCHARP T_name){
+ cweave_file_ = Cweave_file;
+ T_name_ = T_name;
+ }
+
+ void Ccweave_T_sdc::wrt_directive(yacco2::KCHARP Directive,T_syntax_code* Sdc){
+ output_sr_sdcode_title(Directive);
+ if(Sdc == 0){
+ output_sr_sdcode(Directive);
+ (*cweave_file_) << "/";
+ (*cweave_file_) << "/ no sdcode" << endl;
+ return;
+ }
+ if(Sdc->cweb_marker() != 0){
+ WRT_CWEB_MARKER(cweave_file_,Sdc->cweb_marker());
+ }
+ output_sr_sdcode(Directive);
+ string xlate;
+ int len = Sdc->syntax_code()->length();
+ string& sdc=*Sdc->syntax_code();
+ // prescan @ due to cweave reqmts
+ for(int x=0;x<len;++x){
+ char nc = sdc[x];
+ if(nc=='@'){
+ // check next char for cweave type directives
+ char nnc = sdc[x+1];
+ if((nnc == '*') || (nnc == '<') || (nnc == '>')){
+ xlate += nc;
+ continue;
+ }else{
+ xlate += "@@";
+ continue;
+ }
+ }else{
+ xlate += nc;
+ continue;
+ }
+ }
+ (*cweave_file_) << xlate.c_str() << endl;
+ }
+
+ void Ccweave_T_sdc::output_sr_sdcode(yacco2::KCHARP Directive){
+ char big_buf_[BIG_BUFFER_32K];
+char xa[Max_cweb_item_size];
+XLATE_SYMBOLS_FOR_cweave
+ (T_name_
+ ,xa);
+ KCHARP cweave_sentence =
+ "@<%s %s directive@>=\n";
+
+ sprintf(big_buf_
+ ,cweave_sentence
+ ,xa
+ ,Directive
+ );
+ (*cweave_file_) << big_buf_;
+ }
+
+ void Ccweave_T_sdc::output_sr_sdcode_title(yacco2::KCHARP Directive){
+ char big_buf_[BIG_BUFFER_32K];
+char xa[Max_cweb_item_size];
+XLATE_SYMBOLS_FOR_cweave
+ (T_name_
+ ,xa);
+ KCHARP cweave_sentence =
+ "@*3 %s %s directive.\n";
+
+ sprintf(big_buf_
+ ,cweave_sentence
+ ,xa
+ ,Directive
+ );
+ (*cweave_file_) << big_buf_;
+ }
+
+Rweave_sdc::Rweave_sdc(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rweave_sdc",0,Ccweave_T_sdc::R_Rweave_sdc_,P,false,false){
+}
+
+Rdirectives::Rdirectives(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rdirectives",0,Ccweave_T_sdc::R_Rdirectives_,P,false,false){
+}
+
+Rdirective::Rdirective(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rdirective",0,Ccweave_T_sdc::R_Rdirective_,P,false,false){
+}
+
+void Rdirective::sr1(){
+ struct SF{
+ T_user_declaration* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ccweave_T_sdc* fsm = (Ccweave_T_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "user-declaration";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+
+}
+
+void Rdirective::sr2(){
+ struct SF{
+ T_constructor* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ccweave_T_sdc* fsm = (Ccweave_T_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "constructor";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+
+}
+
+void Rdirective::sr3(){
+ struct SF{
+ T_destructor* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ccweave_T_sdc* fsm = (Ccweave_T_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "destructor";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+
+}
+
+void Rdirective::sr4(){
+ struct SF{
+ T_op* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ccweave_T_sdc* fsm = (Ccweave_T_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "op";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+
+}
+
+void Rdirective::sr5(){
+ struct SF{
+ T_user_implementation* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ccweave_T_sdc* fsm = (Ccweave_T_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "user-implementation";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+
+}
+
diff --git a/web/yacco2/compiler/grammars/cweave_T_sdc.fsc b/web/yacco2/compiler/grammars/cweave_T_sdc.fsc
new file mode 100644
index 0000000000..02ed7c5d70
--- /dev/null
+++ b/web/yacco2/compiler/grammars/cweave_T_sdc.fsc
@@ -0,0 +1,24 @@
+/*
+ File: cweave_T_sdc.fsc
+ Date and Time: Fri Jan 30 18:55:08 2015
+*/
+transitive n
+grammar-name "cweave_T_sdc"
+name-space "NS_cweave_T_sdc"
+thread-name "Ccweave_T_sdc"
+monolithic y
+file-name "cweave_T_sdc.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 5
+ T_user_declaration
+ T_constructor
+ T_destructor
+ T_op
+ T_user_implementation
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"Write out cweave Terminals' sdc directives."
diff --git a/web/yacco2/compiler/grammars/cweave_T_sdc.h b/web/yacco2/compiler/grammars/cweave_T_sdc.h
new file mode 100644
index 0000000000..19522af792
--- /dev/null
+++ b/web/yacco2/compiler/grammars/cweave_T_sdc.h
@@ -0,0 +1,89 @@
+/*
+ File: cweave_T_sdc.h
+ Date and Time: Fri Jan 30 18:55:08 2015
+*/
+#ifndef __cweave_T_sdc_h__
+#define __cweave_T_sdc_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "o2_externs.h"
+
+// monolithic grammar: no thread
+extern yacco2::State S1_Ccweave_T_sdc;
+namespace NS_cweave_T_sdc {
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[3];
+};
+class Ccweave_T_sdc: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rweave_sdc_ = 569//start_of_rule_list + 0
+ ,rhs1_Rweave_sdc_ = 1
+ ,R_Rdirectives_ = 570//start_of_rule_list + 2
+ ,rhs1_Rdirectives_ = 2
+ ,rhs2_Rdirectives_ = 3
+ ,R_Rdirective_ = 571//start_of_rule_list + 4
+ ,rhs1_Rdirective_ = 4
+ ,rhs2_Rdirective_ = 5
+ ,rhs3_Rdirective_ = 6
+ ,rhs4_Rdirective_ = 7
+ ,rhs5_Rdirective_ = 8
+ };
+ //no of la sets = 2
+ //no of states = 10
+ Ccweave_T_sdc();
+ ~Ccweave_T_sdc();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[9];
+
+ public:
+ std::ofstream* cweave_file_;
+ KCHARP T_name_;
+ void initialize
+ (std::ofstream* Cweave_file
+ ,yacco2::KCHARP T_name);
+ void output_sr_sdcode(yacco2::KCHARP Directive);
+ void output_sr_sdcode_title(yacco2::KCHARP Directive);
+ void wrt_directive(yacco2::KCHARP Directive,T_syntax_code* Sdc);
+
+ };
+struct Rweave_sdc;
+struct Rdirectives;
+struct Rdirective;
+struct Rweave_sdc:public yacco2::CAbs_lr1_sym {
+ Rweave_sdc(yacco2::Parser* P);
+ public:
+};
+
+struct Rdirectives:public yacco2::CAbs_lr1_sym {
+ Rdirectives(yacco2::Parser* P);
+ public:
+};
+
+struct Rdirective:public yacco2::CAbs_lr1_sym {
+ Rdirective(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+ void sr5();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/cweave_T_sdc.lex b/web/yacco2/compiler/grammars/cweave_T_sdc.lex
new file mode 100644
index 0000000000..eab522109e
--- /dev/null
+++ b/web/yacco2/compiler/grammars/cweave_T_sdc.lex
@@ -0,0 +1,173 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: cweave_T_sdc.lex
+Dates: 26 Jan. 2006
+Purpose: write out cweave sentence for
+ syntax directed directives of terminals.
+ This is common to all T types:
+ error, rc, lrk, and T
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |cweave_T_sdc| grammar.\fbreak
+Write out cweave Terminals' syntax directed directives sentences.
+@/
+fsm
+(fsm-id "cweave_T_sdc.lex"
+,fsm-filename cweave_T_sdc
+,fsm-namespace NS_cweave_T_sdc
+,fsm-class Ccweave_T_sdc{
+ user-prefix-declaration
+#include "o2_externs.h"
+ ***
+ user-declaration
+ public:
+ std::ofstream* cweave_file_;
+ KCHARP T_name_;
+ void initialize
+ (std::ofstream* Cweave_file
+ ,yacco2::KCHARP T_name);
+ void output_sr_sdcode(yacco2::KCHARP Directive);
+ void output_sr_sdcode_title(yacco2::KCHARP Directive);
+ void wrt_directive(yacco2::KCHARP Directive,T_syntax_code* Sdc);
+ ***
+ user-implementation
+ void Ccweave_T_sdc::initialize
+ (std::ofstream* Cweave_file
+ ,yacco2::KCHARP T_name){
+ cweave_file_ = Cweave_file;
+ T_name_ = T_name;
+ }
+/@
+@*3 |wrt_directive|.
+@/
+ void Ccweave_T_sdc::wrt_directive(yacco2::KCHARP Directive,T_syntax_code* Sdc){
+ output_sr_sdcode_title(Directive);
+ if(Sdc == 0){
+ output_sr_sdcode(Directive);
+ (*cweave_file_) << "/";
+ (*cweave_file_) << "/ no sdcode" << endl;
+ return;
+ }
+ if(Sdc->cweb_marker() != 0){
+ WRT_CWEB_MARKER(cweave_file_,Sdc->cweb_marker());
+ }
+ output_sr_sdcode(Directive);
+ string xlate;
+ int len = Sdc->syntax_code()->length();
+ string& sdc=*Sdc->syntax_code();
+ // prescan @ due to cweave reqmts
+ for(int x=0;x<len;++x){
+ char nc = sdc[x];
+ if(nc=='@'){
+ // check next char for cweave type directives
+ char nnc = sdc[x+1];
+ if((nnc == '*') || (nnc == '<') || (nnc == '>')){
+ xlate += nc;
+ continue;
+ }else{
+ xlate += "@@";
+ continue;
+ }
+ }else{
+ xlate += nc;
+ continue;
+ }
+ }
+ (*cweave_file_) << xlate.c_str() << endl;
+ }
+/@
+@*3 |output_sr_sdcode|.
+@/
+ void Ccweave_T_sdc::output_sr_sdcode(yacco2::KCHARP Directive){
+ char big_buf_[BIG_BUFFER_32K];
+char xa[Max_cweb_item_size];
+XLATE_SYMBOLS_FOR_cweave
+ (T_name_
+ ,xa);
+ KCHARP cweave_sentence =
+ "@<%s %s directive@>=\n";
+
+ sprintf(big_buf_
+ ,cweave_sentence
+ ,xa
+ ,Directive
+ );
+ (*cweave_file_) << big_buf_;
+ }
+/@
+@*3 |output_sr_sdcode_title|.
+@/
+ void Ccweave_T_sdc::output_sr_sdcode_title(yacco2::KCHARP Directive){
+ char big_buf_[BIG_BUFFER_32K];
+char xa[Max_cweb_item_size];
+XLATE_SYMBOLS_FOR_cweave
+ (T_name_
+ ,xa);
+ KCHARP cweave_sentence =
+ "@*3 %s %s directive.\n";
+
+ sprintf(big_buf_
+ ,cweave_sentence
+ ,xa
+ ,Directive
+ );
+ (*cweave_file_) << big_buf_;
+ }
+ ***
+}
+,fsm-version "1.0",fsm-date "5 Jan. 2006",fsm-debug "false"
+,fsm-comments "Write out cweave Terminals' sdc directives.")
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rweave_sdc (){
+ -> Rdirectives eog
+}
+
+Rdirectives (){
+ -> Rdirective
+ -> Rdirectives Rdirective
+}
+
+Rdirective (){
+ -> "#user-declaration" {
+ op
+ Ccweave_T_sdc* fsm = (Ccweave_T_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "user-declaration";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+ ***
+ }
+ -> "#constructor" {
+ op
+ Ccweave_T_sdc* fsm = (Ccweave_T_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "constructor";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+ ***
+ }
+ -> "#destructor" {
+ op
+ Ccweave_T_sdc* fsm = (Ccweave_T_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "destructor";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+ ***
+ }
+ -> "#op" {
+ op
+ Ccweave_T_sdc* fsm = (Ccweave_T_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "op";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+ ***
+ }
+ -> "#user-implementation" {
+ op
+ Ccweave_T_sdc* fsm = (Ccweave_T_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "user-implementation";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/cweave_T_sdcsym.cpp b/web/yacco2/compiler/grammars/cweave_T_sdcsym.cpp
new file mode 100644
index 0000000000..65ae5c7b55
--- /dev/null
+++ b/web/yacco2/compiler/grammars/cweave_T_sdcsym.cpp
@@ -0,0 +1,144 @@
+/*
+ File: cweave_T_sdcsym.cpp
+ Date and Time: Fri Jan 30 18:55:08 2015
+*/
+#include "cweave_T_sdc.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_cweave_T_sdc;// grammar's ns
+// first set terminals
+// monolithic grammar --- no thread
+void
+Ccweave_T_sdc::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rweave_sdc_:{
+ Rweave_sdc* sym;
+ if(re->rule_ == 0){
+ sym = new Rweave_sdc(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rweave_sdc*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rdirectives_:{
+ Rdirectives* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirectives(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirectives*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rdirectives_:{
+ Rdirectives* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirectives(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirectives*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr4();
+ return;}
+ case rhs5_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr5();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/cweave_T_sdctbl.cpp b/web/yacco2/compiler/grammars/cweave_T_sdctbl.cpp
new file mode 100644
index 0000000000..3ae1901943
--- /dev/null
+++ b/web/yacco2/compiler/grammars/cweave_T_sdctbl.cpp
@@ -0,0 +1,193 @@
+/*
+ File: cweave_T_sdctbl.cpp
+ Date and Time: Fri Jan 30 18:55:08 2015
+*/
+#include "cweave_T_sdc.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_cweave_T_sdc;// grammar's ns
+// first set terminals
+// LR1_eog
+// T_user_declaration
+// T_constructor
+// T_destructor
+// T_op
+// T_user_implementation
+yacco2::UCHAR LA1_Ccweave_T_sdc[] ={
+3
+,0,2
+,38,144
+,39,11
+};
+// LR1_eolr
+yacco2::UCHAR LA2_Ccweave_T_sdc[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Ccweave_T_sdc;
+extern yacco2::State S2_Ccweave_T_sdc;
+extern yacco2::State S3_Ccweave_T_sdc;
+extern yacco2::State S4_Ccweave_T_sdc;
+extern yacco2::State S5_Ccweave_T_sdc;
+extern yacco2::State S6_Ccweave_T_sdc;
+extern yacco2::State S7_Ccweave_T_sdc;
+extern yacco2::State S8_Ccweave_T_sdc;
+extern yacco2::State S9_Ccweave_T_sdc;
+extern yacco2::State S10_Ccweave_T_sdc;
+struct S1std_Ccweave_T_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[8];
+};
+S1std_Ccweave_T_sdc S1st_Ccweave_T_sdc = {
+ 8
+ ,
+ {// start of table
+ {308,(State*)&S2_Ccweave_T_sdc} // shift sym: T_user_declaration
+ ,{311,(State*)&S3_Ccweave_T_sdc} // shift sym: T_constructor
+ ,{312,(State*)&S4_Ccweave_T_sdc} // shift sym: T_destructor
+ ,{313,(State*)&S5_Ccweave_T_sdc} // shift sym: T_op
+ ,{315,(State*)&S6_Ccweave_T_sdc} // shift sym: T_user_implementation
+ ,{569,(State*)&S1_Ccweave_T_sdc} // accept sym: Rweave_sdc
+ ,{570,(State*)&S7_Ccweave_T_sdc} // shift sym: Rdirectives
+ ,{571,(State*)&S10_Ccweave_T_sdc} // shift sym: Rdirective
+ }// end of shift table
+};
+yacco2::State S1_Ccweave_T_sdc = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Ccweave_T_sdc,0,0,0,0};
+struct S2rtd_Ccweave_T_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Ccweave_T_sdc S2rt_Ccweave_T_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweave_T_sdc,Ccweave_T_sdc::rhs1_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S2_Ccweave_T_sdc = //State's vectored into symbol: "#user-declaration"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Ccweave_T_sdc,0,0,0};
+struct S3rtd_Ccweave_T_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Ccweave_T_sdc S3rt_Ccweave_T_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweave_T_sdc,Ccweave_T_sdc::rhs2_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S3_Ccweave_T_sdc = //State's vectored into symbol: "#constructor"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_Ccweave_T_sdc,0,0,0};
+struct S4rtd_Ccweave_T_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Ccweave_T_sdc S4rt_Ccweave_T_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweave_T_sdc,Ccweave_T_sdc::rhs3_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S4_Ccweave_T_sdc = //State's vectored into symbol: "#destructor"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Ccweave_T_sdc,0,0,0};
+struct S5rtd_Ccweave_T_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Ccweave_T_sdc S5rt_Ccweave_T_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweave_T_sdc,Ccweave_T_sdc::rhs4_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S5_Ccweave_T_sdc = //State's vectored into symbol: "#op"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Ccweave_T_sdc,0,0,0};
+struct S6rtd_Ccweave_T_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Ccweave_T_sdc S6rt_Ccweave_T_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweave_T_sdc,Ccweave_T_sdc::rhs5_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S6_Ccweave_T_sdc = //State's vectored into symbol: "#user-implementation"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Ccweave_T_sdc,0,0,0};
+struct S7std_Ccweave_T_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[7];
+};
+S7std_Ccweave_T_sdc S7st_Ccweave_T_sdc = {
+ 7
+ ,
+ {// start of table
+ {1,(State*)&S8_Ccweave_T_sdc} // shift sym: LR1_eog
+ ,{308,(State*)&S2_Ccweave_T_sdc} // shift sym: T_user_declaration
+ ,{311,(State*)&S3_Ccweave_T_sdc} // shift sym: T_constructor
+ ,{312,(State*)&S4_Ccweave_T_sdc} // shift sym: T_destructor
+ ,{313,(State*)&S5_Ccweave_T_sdc} // shift sym: T_op
+ ,{315,(State*)&S6_Ccweave_T_sdc} // shift sym: T_user_implementation
+ ,{571,(State*)&S9_Ccweave_T_sdc} // shift sym: Rdirective
+ }// end of shift table
+};
+yacco2::State S7_Ccweave_T_sdc = //State's vectored into symbol: "Rdirectives"
+{7
+,0,0,0,0,(Shift_tbl*)&S7st_Ccweave_T_sdc,0,0,0,0};
+struct S8rtd_Ccweave_T_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S8rtd_Ccweave_T_sdc S8rt_Ccweave_T_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ccweave_T_sdc,Ccweave_T_sdc::rhs1_Rweave_sdc_}
+ }// end of reduce table
+};
+yacco2::State S8_Ccweave_T_sdc = //State's vectored into symbol: "eog"
+{8
+,0,0,0,0,0,(Reduce_tbl*)&S8rt_Ccweave_T_sdc,0,0,0};
+struct S9rtd_Ccweave_T_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Ccweave_T_sdc S9rt_Ccweave_T_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweave_T_sdc,Ccweave_T_sdc::rhs2_Rdirectives_}
+ }// end of reduce table
+};
+yacco2::State S9_Ccweave_T_sdc = //State's vectored into symbol: "Rdirective"
+{9
+,0,0,0,0,0,(Reduce_tbl*)&S9rt_Ccweave_T_sdc,0,0,0};
+struct S10rtd_Ccweave_T_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S10rtd_Ccweave_T_sdc S10rt_Ccweave_T_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweave_T_sdc,Ccweave_T_sdc::rhs1_Rdirectives_}
+ }// end of reduce table
+};
+yacco2::State S10_Ccweave_T_sdc = //State's vectored into symbol: "Rdirective"
+{10
+,0,0,0,0,0,(Reduce_tbl*)&S10rt_Ccweave_T_sdc,0,0,0};
diff --git a/web/yacco2/compiler/grammars/cweave_fsm_sdc.cpp b/web/yacco2/compiler/grammars/cweave_fsm_sdc.cpp
new file mode 100644
index 0000000000..c5790ba836
--- /dev/null
+++ b/web/yacco2/compiler/grammars/cweave_fsm_sdc.cpp
@@ -0,0 +1,303 @@
+/*
+ File: cweave_fsm_sdc.cpp
+ Date and Time: Fri Jan 30 18:55:07 2015
+*/
+#include "cweave_fsm_sdc.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_cweave_fsm_sdc;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 3;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+}
+ Ccweave_fsm_sdc::
+ Ccweave_fsm_sdc()
+ :yacco2::CAbs_fsm
+ ("cweave_fsm_sdc.lex"
+ ,"1.0"
+ ,"5 Jan. 2006"
+ ,false
+ ,"Write out cweave fsm directives sentences."
+ ,"Fri Jan 30 18:55:07 2015 "
+ ,S1_Ccweave_fsm_sdc){
+
+ }
+
+Ccweave_fsm_sdc::~Ccweave_fsm_sdc(){
+
+ for(int x = 0;x < 3;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Ccweave_fsm_sdc::failed(){
+ return false;
+ }
+ void Ccweave_fsm_sdc::op(){
+}
+int Ccweave_fsm_sdc::rhs_to_rules_mapping_[14] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,2 // subrule 4 for rule 3
+ ,2 // subrule 5 for rule 3
+ ,2 // subrule 6 for rule 3
+ ,2 // subrule 7 for rule 3
+ ,2 // subrule 8 for rule 3
+ ,2 // subrule 9 for rule 3
+ ,2 // subrule 10 for rule 3
+ ,2 // subrule 11 for rule 3
+ ,2 // subrule 12 for rule 3
+ ,2 // subrule 13 for rule 3
+};
+
+ void Ccweave_fsm_sdc::initialize
+ (std::ofstream* Cweave_file
+ ,T_fsm_phrase* Fsm_phrase){
+ cweave_file_ = Cweave_file;
+ fsm_phrase_ = Fsm_phrase;
+ }
+
+ void Ccweave_fsm_sdc::wrt_directive(const char* Directive,T_syntax_code* Sdc){
+ output_sr_sdcode_title(Directive);
+ if(Sdc == 0){
+ output_sr_sdcode(Directive);
+ (*cweave_file_) << "/";
+ (*cweave_file_) << "/ no sdcode" << endl;
+ return;
+ }
+ if(Sdc->cweb_marker() != 0){
+ WRT_CWEB_MARKER(cweave_file_,Sdc->cweb_marker());
+ }
+ output_sr_sdcode(Directive);
+ string xlate;
+ int len = Sdc->syntax_code()->length();
+ string& sdc=*Sdc->syntax_code();
+ // prescan @ due to cweave reqmts
+ for(int x=0;x<len;++x){
+ char nc = sdc[x];
+ if(nc=='@'){
+ // check next char for cweave type directives
+ char nnc = sdc[x+1];
+ if((nnc == '*') || (nnc == '<') || (nnc == '>')){
+ xlate += nc;
+ continue;
+ }else{
+ xlate += "@@";
+ continue;
+ }
+ }else{
+ xlate += nc;
+ continue;
+ }
+ }
+ (*cweave_file_) << xlate.c_str() << endl;
+ }
+
+ void Ccweave_fsm_sdc::output_sr_sdcode(const char* Directive){
+ char big_buf_[BIG_BUFFER_32K];
+char xa[Max_cweb_item_size];
+XLATE_SYMBOLS_FOR_cweave
+ (fsm_phrase_->fsm_class_phrase()->identifier()->identifier()->c_str()
+ ,xa);
+ KCHARP cweave_sentence =
+ "@<%s %s directive@>=\n";
+
+ sprintf(big_buf_
+ ,cweave_sentence
+ ,xa
+ ,Directive
+ );
+ (*cweave_file_) << big_buf_;
+ }
+
+ void Ccweave_fsm_sdc::output_sr_sdcode_title(const char* Directive){
+ char big_buf_[BIG_BUFFER_32K];
+char xa[Max_cweb_item_size];
+XLATE_SYMBOLS_FOR_cweave
+ (fsm_phrase_->fsm_class_phrase()->identifier()->identifier()->c_str()
+ ,xa);
+ KCHARP cweave_sentence =
+ "@*3 %s %s directive.\n";
+
+ sprintf(big_buf_
+ ,cweave_sentence
+ ,xa
+ ,Directive
+ );
+ (*cweave_file_) << big_buf_;
+ }
+
+Rweave_fsm_sdc::Rweave_fsm_sdc(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rweave_fsm_sdc",0,Ccweave_fsm_sdc::R_Rweave_fsm_sdc_,P,false,false){
+}
+
+Rdirectives::Rdirectives(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rdirectives",0,Ccweave_fsm_sdc::R_Rdirectives_,P,false,false){
+}
+
+Rdirective::Rdirective(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rdirective",0,Ccweave_fsm_sdc::R_Rdirective_,P,false,false){
+}
+
+void Rdirective::sr1(){
+ struct SF{
+ T_user_declaration* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ccweave_fsm_sdc* fsm = (Ccweave_fsm_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "user-declaration";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+
+}
+
+void Rdirective::sr2(){
+ struct SF{
+ T_user_prefix_declaration* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ccweave_fsm_sdc* fsm = (Ccweave_fsm_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "user-prefix-declaration";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+
+}
+
+void Rdirective::sr3(){
+ struct SF{
+ T_user_suffix_declaration* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ccweave_fsm_sdc* fsm = (Ccweave_fsm_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "user-suffix-declaration";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+
+}
+
+void Rdirective::sr4(){
+ struct SF{
+ T_constructor* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ccweave_fsm_sdc* fsm = (Ccweave_fsm_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "constructor";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+
+}
+
+void Rdirective::sr5(){
+ struct SF{
+ T_destructor* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ccweave_fsm_sdc* fsm = (Ccweave_fsm_sdc*)rule_info__.parser__->fsm_tbl__;
+ const char* sdc = "destructor";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+
+}
+
+void Rdirective::sr6(){
+ struct SF{
+ T_op* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ccweave_fsm_sdc* fsm = (Ccweave_fsm_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "op";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+
+}
+
+void Rdirective::sr7(){
+ struct SF{
+ T_failed* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ccweave_fsm_sdc* fsm = (Ccweave_fsm_sdc*)rule_info__.parser__->fsm_tbl__;
+ const char* sdc = "failed";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+
+}
+
+void Rdirective::sr8(){
+ struct SF{
+ T_user_implementation* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ccweave_fsm_sdc* fsm = (Ccweave_fsm_sdc*)rule_info__.parser__->fsm_tbl__;
+ const char* sdc = "user-implementation";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+
+}
+
+void Rdirective::sr9(){
+ struct SF{
+ T_user_imp_tbl* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ccweave_fsm_sdc* fsm = (Ccweave_fsm_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "user-imp-tbl";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+
+}
+
+void Rdirective::sr10(){
+ struct SF{
+ T_user_imp_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ccweave_fsm_sdc* fsm = (Ccweave_fsm_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "user-imp-sym";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+
+}
+
diff --git a/web/yacco2/compiler/grammars/cweave_fsm_sdc.fsc b/web/yacco2/compiler/grammars/cweave_fsm_sdc.fsc
new file mode 100644
index 0000000000..52876203e1
--- /dev/null
+++ b/web/yacco2/compiler/grammars/cweave_fsm_sdc.fsc
@@ -0,0 +1,29 @@
+/*
+ File: cweave_fsm_sdc.fsc
+ Date and Time: Fri Jan 30 18:55:07 2015
+*/
+transitive n
+grammar-name "cweave_fsm_sdc"
+name-space "NS_cweave_fsm_sdc"
+thread-name "Ccweave_fsm_sdc"
+monolithic y
+file-name "cweave_fsm_sdc.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 10
+ T_user_declaration
+ T_user_prefix_declaration
+ T_user_suffix_declaration
+ T_constructor
+ T_destructor
+ T_op
+ T_failed
+ T_user_implementation
+ T_user_imp_tbl
+ T_user_imp_sym
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"Write out cweave fsm directives sentences."
diff --git a/web/yacco2/compiler/grammars/cweave_fsm_sdc.h b/web/yacco2/compiler/grammars/cweave_fsm_sdc.h
new file mode 100644
index 0000000000..8b0edb2edf
--- /dev/null
+++ b/web/yacco2/compiler/grammars/cweave_fsm_sdc.h
@@ -0,0 +1,99 @@
+/*
+ File: cweave_fsm_sdc.h
+ Date and Time: Fri Jan 30 18:55:07 2015
+*/
+#ifndef __cweave_fsm_sdc_h__
+#define __cweave_fsm_sdc_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "o2_externs.h"
+
+// monolithic grammar: no thread
+extern yacco2::State S1_Ccweave_fsm_sdc;
+namespace NS_cweave_fsm_sdc {
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[3];
+};
+class Ccweave_fsm_sdc: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rweave_fsm_sdc_ = 569//start_of_rule_list + 0
+ ,rhs1_Rweave_fsm_sdc_ = 1
+ ,R_Rdirectives_ = 570//start_of_rule_list + 2
+ ,rhs1_Rdirectives_ = 2
+ ,rhs2_Rdirectives_ = 3
+ ,R_Rdirective_ = 571//start_of_rule_list + 4
+ ,rhs1_Rdirective_ = 4
+ ,rhs2_Rdirective_ = 5
+ ,rhs3_Rdirective_ = 6
+ ,rhs4_Rdirective_ = 7
+ ,rhs5_Rdirective_ = 8
+ ,rhs6_Rdirective_ = 9
+ ,rhs7_Rdirective_ = 10
+ ,rhs8_Rdirective_ = 11
+ ,rhs9_Rdirective_ = 12
+ ,rhs10_Rdirective_ = 13
+ };
+ //no of la sets = 2
+ //no of states = 15
+ Ccweave_fsm_sdc();
+ ~Ccweave_fsm_sdc();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[14];
+
+ public:
+ std::ofstream* cweave_file_;
+ T_fsm_phrase* fsm_phrase_;
+ void initialize
+ (std::ofstream* Cweave_file
+ ,T_fsm_phrase* Fsm_phrase);
+ void output_sr_sdcode(const char* Directive);
+ void output_sr_sdcode_title(const char* Directive);
+ void wrt_directive(const char* Directive,T_syntax_code* Sdc);
+
+ };
+struct Rweave_fsm_sdc;
+struct Rdirectives;
+struct Rdirective;
+struct Rweave_fsm_sdc:public yacco2::CAbs_lr1_sym {
+ Rweave_fsm_sdc(yacco2::Parser* P);
+ public:
+};
+
+struct Rdirectives:public yacco2::CAbs_lr1_sym {
+ Rdirectives(yacco2::Parser* P);
+ public:
+};
+
+struct Rdirective:public yacco2::CAbs_lr1_sym {
+ Rdirective(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+ void sr5();
+ void sr6();
+ void sr7();
+ void sr8();
+ void sr9();
+ void sr10();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/cweave_fsm_sdc.lex b/web/yacco2/compiler/grammars/cweave_fsm_sdc.lex
new file mode 100644
index 0000000000..27eb812b46
--- /dev/null
+++ b/web/yacco2/compiler/grammars/cweave_fsm_sdc.lex
@@ -0,0 +1,206 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: cweave_fsm_sdc.lex
+Dates: 13 Jan. 2006
+Purpose: write out cweave sentence for
+ syntax directed directives of fsm
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |cweave_fsm_sdc| grammar.\fbreak
+Write out cweave fsm directives sentences.
+@/
+fsm
+(fsm-id "cweave_fsm_sdc.lex"
+,fsm-filename cweave_fsm_sdc
+,fsm-namespace NS_cweave_fsm_sdc
+,fsm-class Ccweave_fsm_sdc{
+ user-prefix-declaration
+#include "o2_externs.h"
+ ***
+ user-declaration
+ public:
+ std::ofstream* cweave_file_;
+ T_fsm_phrase* fsm_phrase_;
+ void initialize
+ (std::ofstream* Cweave_file
+ ,T_fsm_phrase* Fsm_phrase);
+ void output_sr_sdcode(const char* Directive);
+ void output_sr_sdcode_title(const char* Directive);
+ void wrt_directive(const char* Directive,T_syntax_code* Sdc);
+ ***
+ user-implementation
+ void Ccweave_fsm_sdc::initialize
+ (std::ofstream* Cweave_file
+ ,T_fsm_phrase* Fsm_phrase){
+ cweave_file_ = Cweave_file;
+ fsm_phrase_ = Fsm_phrase;
+ }
+/@
+@*3 |wrt_directive|.
+@/
+ void Ccweave_fsm_sdc::wrt_directive(const char* Directive,T_syntax_code* Sdc){
+ output_sr_sdcode_title(Directive);
+ if(Sdc == 0){
+ output_sr_sdcode(Directive);
+ (*cweave_file_) << "/";
+ (*cweave_file_) << "/ no sdcode" << endl;
+ return;
+ }
+ if(Sdc->cweb_marker() != 0){
+ WRT_CWEB_MARKER(cweave_file_,Sdc->cweb_marker());
+ }
+ output_sr_sdcode(Directive);
+ string xlate;
+ int len = Sdc->syntax_code()->length();
+ string& sdc=*Sdc->syntax_code();
+ // prescan @ due to cweave reqmts
+ for(int x=0;x<len;++x){
+ char nc = sdc[x];
+ if(nc=='@'){
+ // check next char for cweave type directives
+ char nnc = sdc[x+1];
+ if((nnc == '*') || (nnc == '<') || (nnc == '>')){
+ xlate += nc;
+ continue;
+ }else{
+ xlate += "@@";
+ continue;
+ }
+ }else{
+ xlate += nc;
+ continue;
+ }
+ }
+ (*cweave_file_) << xlate.c_str() << endl;
+ }
+/@
+@*3 |output_sr_sdcode|.
+@/
+ void Ccweave_fsm_sdc::output_sr_sdcode(const char* Directive){
+ char big_buf_[BIG_BUFFER_32K];
+char xa[Max_cweb_item_size];
+XLATE_SYMBOLS_FOR_cweave
+ (fsm_phrase_->fsm_class_phrase()->identifier()->identifier()->c_str()
+ ,xa);
+ KCHARP cweave_sentence =
+ "@<%s %s directive@>=\n";
+
+ sprintf(big_buf_
+ ,cweave_sentence
+ ,xa
+ ,Directive
+ );
+ (*cweave_file_) << big_buf_;
+ }
+/@
+@*3 |output_sr_sdcode_title|.
+@/
+ void Ccweave_fsm_sdc::output_sr_sdcode_title(const char* Directive){
+ char big_buf_[BIG_BUFFER_32K];
+char xa[Max_cweb_item_size];
+XLATE_SYMBOLS_FOR_cweave
+ (fsm_phrase_->fsm_class_phrase()->identifier()->identifier()->c_str()
+ ,xa);
+ KCHARP cweave_sentence =
+ "@*3 %s %s directive.\n";
+
+ sprintf(big_buf_
+ ,cweave_sentence
+ ,xa
+ ,Directive
+ );
+ (*cweave_file_) << big_buf_;
+ }
+ ***
+}
+,fsm-version "1.0",fsm-date "5 Jan. 2006",fsm-debug "false"
+,fsm-comments "Write out cweave fsm directives sentences.")
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+//
+rules{
+Rweave_fsm_sdc (){
+ -> Rdirectives eog
+}
+
+Rdirectives (){
+ -> Rdirective
+ -> Rdirectives Rdirective
+}
+
+Rdirective (){
+ -> "#user-declaration" {
+ op
+ Ccweave_fsm_sdc* fsm = (Ccweave_fsm_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "user-declaration";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+ ***
+ }
+ -> "#user-prefix-declaration" {
+ op
+ Ccweave_fsm_sdc* fsm = (Ccweave_fsm_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "user-prefix-declaration";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+ ***
+ }
+ -> "#user-suffix-declaration" {
+ op
+ Ccweave_fsm_sdc* fsm = (Ccweave_fsm_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "user-suffix-declaration";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+ ***
+ }
+ -> "#constructor" {
+ op
+ Ccweave_fsm_sdc* fsm = (Ccweave_fsm_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "constructor";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+ ***
+ }
+ -> "#destructor" {
+ op
+ Ccweave_fsm_sdc* fsm = (Ccweave_fsm_sdc*)rule_info__.parser__->fsm_tbl__;
+ const char* sdc = "destructor";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+ ***
+ }
+ -> "#op" {
+ op
+ Ccweave_fsm_sdc* fsm = (Ccweave_fsm_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "op";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+ ***
+ }
+ -> "#failed" {
+ op
+ Ccweave_fsm_sdc* fsm = (Ccweave_fsm_sdc*)rule_info__.parser__->fsm_tbl__;
+ const char* sdc = "failed";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+ ***
+ }
+ -> "#user-implementation" {
+ op
+ Ccweave_fsm_sdc* fsm = (Ccweave_fsm_sdc*)rule_info__.parser__->fsm_tbl__;
+ const char* sdc = "user-implementation";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+ ***
+ }
+ -> "#user-imp-tbl" {
+ op
+ Ccweave_fsm_sdc* fsm = (Ccweave_fsm_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "user-imp-tbl";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+ ***
+ }
+ -> "#user-imp-sym" {
+ op
+ Ccweave_fsm_sdc* fsm = (Ccweave_fsm_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "user-imp-sym";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/cweave_fsm_sdcsym.cpp b/web/yacco2/compiler/grammars/cweave_fsm_sdcsym.cpp
new file mode 100644
index 0000000000..5cbcc9315b
--- /dev/null
+++ b/web/yacco2/compiler/grammars/cweave_fsm_sdcsym.cpp
@@ -0,0 +1,219 @@
+/*
+ File: cweave_fsm_sdcsym.cpp
+ Date and Time: Fri Jan 30 18:55:07 2015
+*/
+#include "cweave_fsm_sdc.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_cweave_fsm_sdc;// grammar's ns
+// first set terminals
+// monolithic grammar --- no thread
+void
+Ccweave_fsm_sdc::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rweave_fsm_sdc_:{
+ Rweave_fsm_sdc* sym;
+ if(re->rule_ == 0){
+ sym = new Rweave_fsm_sdc(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rweave_fsm_sdc*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rdirectives_:{
+ Rdirectives* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirectives(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirectives*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rdirectives_:{
+ Rdirectives* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirectives(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirectives*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr4();
+ return;}
+ case rhs5_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr5();
+ return;}
+ case rhs6_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr6();
+ return;}
+ case rhs7_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr7();
+ return;}
+ case rhs8_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr8();
+ return;}
+ case rhs9_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr9();
+ return;}
+ case rhs10_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr10();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/cweave_fsm_sdctbl.cpp b/web/yacco2/compiler/grammars/cweave_fsm_sdctbl.cpp
new file mode 100644
index 0000000000..ee89371501
--- /dev/null
+++ b/web/yacco2/compiler/grammars/cweave_fsm_sdctbl.cpp
@@ -0,0 +1,283 @@
+/*
+ File: cweave_fsm_sdctbl.cpp
+ Date and Time: Fri Jan 30 18:55:07 2015
+*/
+#include "cweave_fsm_sdc.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_cweave_fsm_sdc;// grammar's ns
+// first set terminals
+// LR1_eog
+// T_user_declaration
+// T_user_prefix_declaration
+// T_user_suffix_declaration
+// T_constructor
+// T_destructor
+// T_op
+// T_failed
+// T_user_implementation
+// T_user_imp_tbl
+// T_user_imp_sym
+yacco2::UCHAR LA1_Ccweave_fsm_sdc[] ={
+3
+,0,2
+,38,240
+,39,63
+};
+// LR1_eolr
+yacco2::UCHAR LA2_Ccweave_fsm_sdc[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Ccweave_fsm_sdc;
+extern yacco2::State S2_Ccweave_fsm_sdc;
+extern yacco2::State S3_Ccweave_fsm_sdc;
+extern yacco2::State S4_Ccweave_fsm_sdc;
+extern yacco2::State S5_Ccweave_fsm_sdc;
+extern yacco2::State S6_Ccweave_fsm_sdc;
+extern yacco2::State S7_Ccweave_fsm_sdc;
+extern yacco2::State S8_Ccweave_fsm_sdc;
+extern yacco2::State S9_Ccweave_fsm_sdc;
+extern yacco2::State S10_Ccweave_fsm_sdc;
+extern yacco2::State S11_Ccweave_fsm_sdc;
+extern yacco2::State S12_Ccweave_fsm_sdc;
+extern yacco2::State S13_Ccweave_fsm_sdc;
+extern yacco2::State S14_Ccweave_fsm_sdc;
+extern yacco2::State S15_Ccweave_fsm_sdc;
+struct S1std_Ccweave_fsm_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[13];
+};
+S1std_Ccweave_fsm_sdc S1st_Ccweave_fsm_sdc = {
+ 13
+ ,
+ {// start of table
+ {308,(State*)&S2_Ccweave_fsm_sdc} // shift sym: T_user_declaration
+ ,{309,(State*)&S3_Ccweave_fsm_sdc} // shift sym: T_user_prefix_declaration
+ ,{310,(State*)&S4_Ccweave_fsm_sdc} // shift sym: T_user_suffix_declaration
+ ,{311,(State*)&S5_Ccweave_fsm_sdc} // shift sym: T_constructor
+ ,{312,(State*)&S6_Ccweave_fsm_sdc} // shift sym: T_destructor
+ ,{313,(State*)&S7_Ccweave_fsm_sdc} // shift sym: T_op
+ ,{314,(State*)&S8_Ccweave_fsm_sdc} // shift sym: T_failed
+ ,{315,(State*)&S9_Ccweave_fsm_sdc} // shift sym: T_user_implementation
+ ,{316,(State*)&S10_Ccweave_fsm_sdc} // shift sym: T_user_imp_tbl
+ ,{317,(State*)&S11_Ccweave_fsm_sdc} // shift sym: T_user_imp_sym
+ ,{569,(State*)&S1_Ccweave_fsm_sdc} // accept sym: Rweave_fsm_sdc
+ ,{570,(State*)&S12_Ccweave_fsm_sdc} // shift sym: Rdirectives
+ ,{571,(State*)&S15_Ccweave_fsm_sdc} // shift sym: Rdirective
+ }// end of shift table
+};
+yacco2::State S1_Ccweave_fsm_sdc = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Ccweave_fsm_sdc,0,0,0,0};
+struct S2rtd_Ccweave_fsm_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Ccweave_fsm_sdc S2rt_Ccweave_fsm_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweave_fsm_sdc,Ccweave_fsm_sdc::rhs1_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S2_Ccweave_fsm_sdc = //State's vectored into symbol: "#user-declaration"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Ccweave_fsm_sdc,0,0,0};
+struct S3rtd_Ccweave_fsm_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Ccweave_fsm_sdc S3rt_Ccweave_fsm_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweave_fsm_sdc,Ccweave_fsm_sdc::rhs2_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S3_Ccweave_fsm_sdc = //State's vectored into symbol: "#user-prefix-declaration"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_Ccweave_fsm_sdc,0,0,0};
+struct S4rtd_Ccweave_fsm_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Ccweave_fsm_sdc S4rt_Ccweave_fsm_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweave_fsm_sdc,Ccweave_fsm_sdc::rhs3_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S4_Ccweave_fsm_sdc = //State's vectored into symbol: "#user-suffix-declaration"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Ccweave_fsm_sdc,0,0,0};
+struct S5rtd_Ccweave_fsm_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Ccweave_fsm_sdc S5rt_Ccweave_fsm_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweave_fsm_sdc,Ccweave_fsm_sdc::rhs4_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S5_Ccweave_fsm_sdc = //State's vectored into symbol: "#constructor"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Ccweave_fsm_sdc,0,0,0};
+struct S6rtd_Ccweave_fsm_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Ccweave_fsm_sdc S6rt_Ccweave_fsm_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweave_fsm_sdc,Ccweave_fsm_sdc::rhs5_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S6_Ccweave_fsm_sdc = //State's vectored into symbol: "#destructor"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Ccweave_fsm_sdc,0,0,0};
+struct S7rtd_Ccweave_fsm_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Ccweave_fsm_sdc S7rt_Ccweave_fsm_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweave_fsm_sdc,Ccweave_fsm_sdc::rhs6_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S7_Ccweave_fsm_sdc = //State's vectored into symbol: "#op"
+{7
+,0,0,0,0,0,(Reduce_tbl*)&S7rt_Ccweave_fsm_sdc,0,0,0};
+struct S8rtd_Ccweave_fsm_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S8rtd_Ccweave_fsm_sdc S8rt_Ccweave_fsm_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweave_fsm_sdc,Ccweave_fsm_sdc::rhs7_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S8_Ccweave_fsm_sdc = //State's vectored into symbol: "#failed"
+{8
+,0,0,0,0,0,(Reduce_tbl*)&S8rt_Ccweave_fsm_sdc,0,0,0};
+struct S9rtd_Ccweave_fsm_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Ccweave_fsm_sdc S9rt_Ccweave_fsm_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweave_fsm_sdc,Ccweave_fsm_sdc::rhs8_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S9_Ccweave_fsm_sdc = //State's vectored into symbol: "#user-implementation"
+{9
+,0,0,0,0,0,(Reduce_tbl*)&S9rt_Ccweave_fsm_sdc,0,0,0};
+struct S10rtd_Ccweave_fsm_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S10rtd_Ccweave_fsm_sdc S10rt_Ccweave_fsm_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweave_fsm_sdc,Ccweave_fsm_sdc::rhs9_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S10_Ccweave_fsm_sdc = //State's vectored into symbol: "#user-imp-tbl"
+{10
+,0,0,0,0,0,(Reduce_tbl*)&S10rt_Ccweave_fsm_sdc,0,0,0};
+struct S11rtd_Ccweave_fsm_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Ccweave_fsm_sdc S11rt_Ccweave_fsm_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweave_fsm_sdc,Ccweave_fsm_sdc::rhs10_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S11_Ccweave_fsm_sdc = //State's vectored into symbol: "#user-imp-sym"
+{11
+,0,0,0,0,0,(Reduce_tbl*)&S11rt_Ccweave_fsm_sdc,0,0,0};
+struct S12std_Ccweave_fsm_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[12];
+};
+S12std_Ccweave_fsm_sdc S12st_Ccweave_fsm_sdc = {
+ 12
+ ,
+ {// start of table
+ {1,(State*)&S13_Ccweave_fsm_sdc} // shift sym: LR1_eog
+ ,{308,(State*)&S2_Ccweave_fsm_sdc} // shift sym: T_user_declaration
+ ,{309,(State*)&S3_Ccweave_fsm_sdc} // shift sym: T_user_prefix_declaration
+ ,{310,(State*)&S4_Ccweave_fsm_sdc} // shift sym: T_user_suffix_declaration
+ ,{311,(State*)&S5_Ccweave_fsm_sdc} // shift sym: T_constructor
+ ,{312,(State*)&S6_Ccweave_fsm_sdc} // shift sym: T_destructor
+ ,{313,(State*)&S7_Ccweave_fsm_sdc} // shift sym: T_op
+ ,{314,(State*)&S8_Ccweave_fsm_sdc} // shift sym: T_failed
+ ,{315,(State*)&S9_Ccweave_fsm_sdc} // shift sym: T_user_implementation
+ ,{316,(State*)&S10_Ccweave_fsm_sdc} // shift sym: T_user_imp_tbl
+ ,{317,(State*)&S11_Ccweave_fsm_sdc} // shift sym: T_user_imp_sym
+ ,{571,(State*)&S14_Ccweave_fsm_sdc} // shift sym: Rdirective
+ }// end of shift table
+};
+yacco2::State S12_Ccweave_fsm_sdc = //State's vectored into symbol: "Rdirectives"
+{12
+,0,0,0,0,(Shift_tbl*)&S12st_Ccweave_fsm_sdc,0,0,0,0};
+struct S13rtd_Ccweave_fsm_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S13rtd_Ccweave_fsm_sdc S13rt_Ccweave_fsm_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ccweave_fsm_sdc,Ccweave_fsm_sdc::rhs1_Rweave_fsm_sdc_}
+ }// end of reduce table
+};
+yacco2::State S13_Ccweave_fsm_sdc = //State's vectored into symbol: "eog"
+{13
+,0,0,0,0,0,(Reduce_tbl*)&S13rt_Ccweave_fsm_sdc,0,0,0};
+struct S14rtd_Ccweave_fsm_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S14rtd_Ccweave_fsm_sdc S14rt_Ccweave_fsm_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweave_fsm_sdc,Ccweave_fsm_sdc::rhs2_Rdirectives_}
+ }// end of reduce table
+};
+yacco2::State S14_Ccweave_fsm_sdc = //State's vectored into symbol: "Rdirective"
+{14
+,0,0,0,0,0,(Reduce_tbl*)&S14rt_Ccweave_fsm_sdc,0,0,0};
+struct S15rtd_Ccweave_fsm_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S15rtd_Ccweave_fsm_sdc S15rt_Ccweave_fsm_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweave_fsm_sdc,Ccweave_fsm_sdc::rhs1_Rdirectives_}
+ }// end of reduce table
+};
+yacco2::State S15_Ccweave_fsm_sdc = //State's vectored into symbol: "Rdirective"
+{15
+,0,0,0,0,0,(Reduce_tbl*)&S15rt_Ccweave_fsm_sdc,0,0,0};
diff --git a/web/yacco2/compiler/grammars/cweave_lhs_sdc.cpp b/web/yacco2/compiler/grammars/cweave_lhs_sdc.cpp
new file mode 100644
index 0000000000..fcc708525f
--- /dev/null
+++ b/web/yacco2/compiler/grammars/cweave_lhs_sdc.cpp
@@ -0,0 +1,240 @@
+/*
+ File: cweave_lhs_sdc.cpp
+ Date and Time: Fri Jan 30 18:55:07 2015
+*/
+#include "cweave_lhs_sdc.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_cweave_lhs_sdc;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 3;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+}
+ Ccweave_lhs_sdc::
+ Ccweave_lhs_sdc()
+ :yacco2::CAbs_fsm
+ ("cweave_lhs_sdc.lex"
+ ,"1.0"
+ ,"5 Jan. 2006"
+ ,false
+ ,"Write out cweave rule's lhs directives sentences"
+ ,"Fri Jan 30 18:55:07 2015 "
+ ,S1_Ccweave_lhs_sdc){
+
+ }
+
+Ccweave_lhs_sdc::~Ccweave_lhs_sdc(){
+
+ for(int x = 0;x < 3;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Ccweave_lhs_sdc::failed(){
+ return false;
+ }
+ void Ccweave_lhs_sdc::op(){
+}
+int Ccweave_lhs_sdc::rhs_to_rules_mapping_[10] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,2 // subrule 4 for rule 3
+ ,2 // subrule 5 for rule 3
+ ,2 // subrule 6 for rule 3
+ ,2 // subrule 7 for rule 3
+ ,2 // subrule 8 for rule 3
+ ,2 // subrule 9 for rule 3
+};
+
+ void Ccweave_lhs_sdc::initialize
+ (std::ofstream* Cweave_file
+ ,yacco2::KCHARP Rule_name){
+ cweave_file_ = Cweave_file;
+ rule_name_ = Rule_name;
+ }
+
+ void Ccweave_lhs_sdc::wrt_directive(const char* Directive,T_syntax_code* Sdc){
+ char big_buf_[BIG_BUFFER_32K];
+char xa[Max_cweb_item_size];
+
+ KCHARP cweave_sentence = "@< %s %s directive@>=\n";
+ output_sdcode_title(Directive);
+ if(Sdc == 0){
+XLATE_SYMBOLS_FOR_cweave
+ (rule_name_
+ ,xa);
+ sprintf(big_buf_,cweave_sentence,xa,Directive);
+ (*cweave_file_) << "/";
+ (*cweave_file_) << "/ no sdcode" << endl;
+ return;
+ }
+ if(Sdc->cweb_marker() != 0){
+ WRT_CWEB_MARKER(cweave_file_,Sdc->cweb_marker());
+ }
+XLATE_SYMBOLS_FOR_cweave
+ (rule_name_
+ ,xa);
+ sprintf(big_buf_,cweave_sentence,xa,Directive);
+ (*cweave_file_) << big_buf_;
+ string xlate;
+ int len = Sdc->syntax_code()->length();
+ string& sdc=*Sdc->syntax_code();
+ // prescan @ due to cweave reqmts
+ for(int x=0;x<len;++x){
+ char nc = sdc[x];
+ if(nc=='@'){
+ // check next char for cweave type directives
+ char nnc = sdc[x+1];
+ if((nnc == '*') || (nnc == '<') || (nnc == '>')){
+ xlate += nc;
+ continue;
+ }else{
+ xlate += "@@";
+ continue;
+ }
+ }else{
+ xlate += nc;
+ continue;
+ }
+ }
+ (*cweave_file_) << xlate.c_str() << endl;
+ }
+
+ void Ccweave_lhs_sdc::output_sdcode_title(const char* Directive){
+ char big_buf_[BIG_BUFFER_32K];
+ char xa[Max_cweb_item_size];
+XLATE_SYMBOLS_FOR_cweave
+ (rule_name_
+ ,xa);
+ KCHARP cweave_sentence =
+ "@*3 %s %s directive.\n";
+
+ sprintf(big_buf_
+ ,cweave_sentence
+ ,xa
+ ,Directive
+ );
+ (*cweave_file_) << big_buf_;
+ }
+
+Rweave_sdc::Rweave_sdc(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rweave_sdc",0,Ccweave_lhs_sdc::R_Rweave_sdc_,P,false,false){
+}
+
+Rdirectives::Rdirectives(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rdirectives",0,Ccweave_lhs_sdc::R_Rdirectives_,P,false,false){
+}
+
+Rdirective::Rdirective(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rdirective",0,Ccweave_lhs_sdc::R_Rdirective_,P,false,false){
+}
+
+void Rdirective::sr1(){
+ struct SF{
+ T_arbitrator_code* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ccweave_lhs_sdc* fsm = (Ccweave_lhs_sdc*)rule_info__.parser__->fsm_tbl__;
+ string include_war_code;
+ include_war_code.append("#include \"war_begin_code.h\"\n");
+ include_war_code.append(sf->p1__->syntax_code()->syntax_code()->c_str());
+ include_war_code.append("#include \"war_end_code.h\"\n");
+ sf->p1__->syntax_code()->syntax_code()->clear();
+ sf->p1__->syntax_code()->syntax_code()->append(include_war_code.c_str());
+
+ KCHARP sdc = "arbitrator-code";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+
+}
+
+void Rdirective::sr2(){
+ struct SF{
+ T_user_declaration* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ccweave_lhs_sdc* fsm = (Ccweave_lhs_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "user-declaration";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+
+}
+
+void Rdirective::sr3(){
+ struct SF{
+ T_user_implementation* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ccweave_lhs_sdc* fsm = (Ccweave_lhs_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "user-implementation";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+
+}
+
+void Rdirective::sr4(){
+ struct SF{
+ T_constructor* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ccweave_lhs_sdc* fsm = (Ccweave_lhs_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "constructor";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+
+}
+
+void Rdirective::sr5(){
+ struct SF{
+ T_destructor* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ccweave_lhs_sdc* fsm = (Ccweave_lhs_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "destructor";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+
+}
+
+void Rdirective::sr6(){
+ struct SF{
+ T_op* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ccweave_lhs_sdc* fsm = (Ccweave_lhs_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "op";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+
+}
+
diff --git a/web/yacco2/compiler/grammars/cweave_lhs_sdc.fsc b/web/yacco2/compiler/grammars/cweave_lhs_sdc.fsc
new file mode 100644
index 0000000000..6ad454c4c0
--- /dev/null
+++ b/web/yacco2/compiler/grammars/cweave_lhs_sdc.fsc
@@ -0,0 +1,25 @@
+/*
+ File: cweave_lhs_sdc.fsc
+ Date and Time: Fri Jan 30 18:55:07 2015
+*/
+transitive n
+grammar-name "cweave_lhs_sdc"
+name-space "NS_cweave_lhs_sdc"
+thread-name "Ccweave_lhs_sdc"
+monolithic y
+file-name "cweave_lhs_sdc.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 6
+ T_arbitrator_code
+ T_user_declaration
+ T_constructor
+ T_destructor
+ T_op
+ T_user_implementation
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"Write out cweave rule's lhs directives sentences"
diff --git a/web/yacco2/compiler/grammars/cweave_lhs_sdc.h b/web/yacco2/compiler/grammars/cweave_lhs_sdc.h
new file mode 100644
index 0000000000..e4a706669f
--- /dev/null
+++ b/web/yacco2/compiler/grammars/cweave_lhs_sdc.h
@@ -0,0 +1,90 @@
+/*
+ File: cweave_lhs_sdc.h
+ Date and Time: Fri Jan 30 18:55:07 2015
+*/
+#ifndef __cweave_lhs_sdc_h__
+#define __cweave_lhs_sdc_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "o2_externs.h"
+
+// monolithic grammar: no thread
+extern yacco2::State S1_Ccweave_lhs_sdc;
+namespace NS_cweave_lhs_sdc {
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[3];
+};
+class Ccweave_lhs_sdc: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rweave_sdc_ = 569//start_of_rule_list + 0
+ ,rhs1_Rweave_sdc_ = 1
+ ,R_Rdirectives_ = 570//start_of_rule_list + 2
+ ,rhs1_Rdirectives_ = 2
+ ,rhs2_Rdirectives_ = 3
+ ,R_Rdirective_ = 571//start_of_rule_list + 4
+ ,rhs1_Rdirective_ = 4
+ ,rhs2_Rdirective_ = 5
+ ,rhs3_Rdirective_ = 6
+ ,rhs4_Rdirective_ = 7
+ ,rhs5_Rdirective_ = 8
+ ,rhs6_Rdirective_ = 9
+ };
+ //no of la sets = 2
+ //no of states = 11
+ Ccweave_lhs_sdc();
+ ~Ccweave_lhs_sdc();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[10];
+
+ public:
+ std::ofstream* cweave_file_;
+ KCHARP rule_name_;
+ void initialize
+ (std::ofstream* Cweave_file
+ ,yacco2::KCHARP Rule_name);
+ void wrt_directive(const char* Directive,T_syntax_code* Sdc);
+ void output_sdcode_title(const char* Directive);
+
+ };
+struct Rweave_sdc;
+struct Rdirectives;
+struct Rdirective;
+struct Rweave_sdc:public yacco2::CAbs_lr1_sym {
+ Rweave_sdc(yacco2::Parser* P);
+ public:
+};
+
+struct Rdirectives:public yacco2::CAbs_lr1_sym {
+ Rdirectives(yacco2::Parser* P);
+ public:
+};
+
+struct Rdirective:public yacco2::CAbs_lr1_sym {
+ Rdirective(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+ void sr5();
+ void sr6();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/cweave_lhs_sdc.lex b/web/yacco2/compiler/grammars/cweave_lhs_sdc.lex
new file mode 100644
index 0000000000..6b0aa6a5c4
--- /dev/null
+++ b/web/yacco2/compiler/grammars/cweave_lhs_sdc.lex
@@ -0,0 +1,176 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: cweave_lhs_sdc.lex
+Dates: 16 Jan. 2006
+Purpose: write out cweave sentence for
+ rule's lhs syntax directed directives
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |cweave_lhs_sdc| grammar.\fbreak
+Write out cweave rule's lhs directives sentences.
+@/
+fsm
+(fsm-id "cweave_lhs_sdc.lex"
+,fsm-filename cweave_lhs_sdc
+,fsm-namespace NS_cweave_lhs_sdc
+,fsm-class Ccweave_lhs_sdc{
+ user-prefix-declaration
+#include "o2_externs.h"
+ ***
+ user-declaration
+ public:
+ std::ofstream* cweave_file_;
+ KCHARP rule_name_;
+ void initialize
+ (std::ofstream* Cweave_file
+ ,yacco2::KCHARP Rule_name);
+ void wrt_directive(const char* Directive,T_syntax_code* Sdc);
+ void output_sdcode_title(const char* Directive);
+ ***
+ user-implementation
+ void Ccweave_lhs_sdc::initialize
+ (std::ofstream* Cweave_file
+ ,yacco2::KCHARP Rule_name){
+ cweave_file_ = Cweave_file;
+ rule_name_ = Rule_name;
+ }
+/@
+@*3 |wrt_directive|.
+@/
+ void Ccweave_lhs_sdc::wrt_directive(const char* Directive,T_syntax_code* Sdc){
+ char big_buf_[BIG_BUFFER_32K];
+char xa[Max_cweb_item_size];
+
+ KCHARP cweave_sentence = "@< %s %s directive@>=\n";
+ output_sdcode_title(Directive);
+ if(Sdc == 0){
+XLATE_SYMBOLS_FOR_cweave
+ (rule_name_
+ ,xa);
+ sprintf(big_buf_,cweave_sentence,xa,Directive);
+ (*cweave_file_) << "/";
+ (*cweave_file_) << "/ no sdcode" << endl;
+ return;
+ }
+ if(Sdc->cweb_marker() != 0){
+ WRT_CWEB_MARKER(cweave_file_,Sdc->cweb_marker());
+ }
+XLATE_SYMBOLS_FOR_cweave
+ (rule_name_
+ ,xa);
+ sprintf(big_buf_,cweave_sentence,xa,Directive);
+ (*cweave_file_) << big_buf_;
+ string xlate;
+ int len = Sdc->syntax_code()->length();
+ string& sdc=*Sdc->syntax_code();
+ // prescan @ due to cweave reqmts
+ for(int x=0;x<len;++x){
+ char nc = sdc[x];
+ if(nc=='@'){
+ // check next char for cweave type directives
+ char nnc = sdc[x+1];
+ if((nnc == '*') || (nnc == '<') || (nnc == '>')){
+ xlate += nc;
+ continue;
+ }else{
+ xlate += "@@";
+ continue;
+ }
+ }else{
+ xlate += nc;
+ continue;
+ }
+ }
+ (*cweave_file_) << xlate.c_str() << endl;
+ }
+/@
+@*3 |output_sdcode_title|.
+@/
+ void Ccweave_lhs_sdc::output_sdcode_title(const char* Directive){
+ char big_buf_[BIG_BUFFER_32K];
+ char xa[Max_cweb_item_size];
+XLATE_SYMBOLS_FOR_cweave
+ (rule_name_
+ ,xa);
+ KCHARP cweave_sentence =
+ "@*3 %s %s directive.\n";
+
+ sprintf(big_buf_
+ ,cweave_sentence
+ ,xa
+ ,Directive
+ );
+ (*cweave_file_) << big_buf_;
+ }
+ ***
+}
+,fsm-version "1.0",fsm-date "5 Jan. 2006",fsm-debug "false"
+,fsm-comments "Write out cweave rule's lhs directives sentences")
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+//
+rules{
+Rweave_sdc (){
+ -> Rdirectives eog
+}
+
+Rdirectives (){
+ -> Rdirective
+ -> Rdirectives Rdirective
+}
+
+Rdirective (){
+ -> "#arbitrator-code" {
+ op
+ Ccweave_lhs_sdc* fsm = (Ccweave_lhs_sdc*)rule_info__.parser__->fsm_tbl__;
+ string include_war_code;
+ include_war_code.append("#include \"war_begin_code.h\"\n");
+ include_war_code.append(sf->p1__->syntax_code()->syntax_code()->c_str());
+ include_war_code.append("#include \"war_end_code.h\"\n");
+ sf->p1__->syntax_code()->syntax_code()->clear();
+ sf->p1__->syntax_code()->syntax_code()->append(include_war_code.c_str());
+
+ KCHARP sdc = "arbitrator-code";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+ ***
+ }
+ -> "#user-declaration" {
+ op
+ Ccweave_lhs_sdc* fsm = (Ccweave_lhs_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "user-declaration";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+ ***
+ }
+ -> "#user-implementation" {
+ op
+ Ccweave_lhs_sdc* fsm = (Ccweave_lhs_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "user-implementation";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+ ***
+ }
+ -> "#constructor" {
+ op
+ Ccweave_lhs_sdc* fsm = (Ccweave_lhs_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "constructor";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+ ***
+ }
+ -> "#destructor" {
+ op
+ Ccweave_lhs_sdc* fsm = (Ccweave_lhs_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "destructor";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+ ***
+ }
+ -> "#op" {
+ op
+ Ccweave_lhs_sdc* fsm = (Ccweave_lhs_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "op";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/cweave_lhs_sdcsym.cpp b/web/yacco2/compiler/grammars/cweave_lhs_sdcsym.cpp
new file mode 100644
index 0000000000..dce48ab0c5
--- /dev/null
+++ b/web/yacco2/compiler/grammars/cweave_lhs_sdcsym.cpp
@@ -0,0 +1,159 @@
+/*
+ File: cweave_lhs_sdcsym.cpp
+ Date and Time: Fri Jan 30 18:55:07 2015
+*/
+#include "cweave_lhs_sdc.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_cweave_lhs_sdc;// grammar's ns
+// first set terminals
+// monolithic grammar --- no thread
+void
+Ccweave_lhs_sdc::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rweave_sdc_:{
+ Rweave_sdc* sym;
+ if(re->rule_ == 0){
+ sym = new Rweave_sdc(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rweave_sdc*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rdirectives_:{
+ Rdirectives* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirectives(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirectives*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rdirectives_:{
+ Rdirectives* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirectives(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirectives*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr4();
+ return;}
+ case rhs5_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr5();
+ return;}
+ case rhs6_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr6();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/cweave_lhs_sdctbl.cpp b/web/yacco2/compiler/grammars/cweave_lhs_sdctbl.cpp
new file mode 100644
index 0000000000..642cae2d2b
--- /dev/null
+++ b/web/yacco2/compiler/grammars/cweave_lhs_sdctbl.cpp
@@ -0,0 +1,212 @@
+/*
+ File: cweave_lhs_sdctbl.cpp
+ Date and Time: Fri Jan 30 18:55:07 2015
+*/
+#include "cweave_lhs_sdc.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_cweave_lhs_sdc;// grammar's ns
+// first set terminals
+// LR1_eog
+// T_arbitrator_code
+// T_user_declaration
+// T_constructor
+// T_destructor
+// T_op
+// T_user_implementation
+yacco2::UCHAR LA1_Ccweave_lhs_sdc[] ={
+4
+,0,2
+,36,1
+,38,144
+,39,11
+};
+// LR1_eolr
+yacco2::UCHAR LA2_Ccweave_lhs_sdc[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Ccweave_lhs_sdc;
+extern yacco2::State S2_Ccweave_lhs_sdc;
+extern yacco2::State S3_Ccweave_lhs_sdc;
+extern yacco2::State S4_Ccweave_lhs_sdc;
+extern yacco2::State S5_Ccweave_lhs_sdc;
+extern yacco2::State S6_Ccweave_lhs_sdc;
+extern yacco2::State S7_Ccweave_lhs_sdc;
+extern yacco2::State S8_Ccweave_lhs_sdc;
+extern yacco2::State S9_Ccweave_lhs_sdc;
+extern yacco2::State S10_Ccweave_lhs_sdc;
+extern yacco2::State S11_Ccweave_lhs_sdc;
+struct S1std_Ccweave_lhs_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[9];
+};
+S1std_Ccweave_lhs_sdc S1st_Ccweave_lhs_sdc = {
+ 9
+ ,
+ {// start of table
+ {288,(State*)&S2_Ccweave_lhs_sdc} // shift sym: T_arbitrator_code
+ ,{308,(State*)&S3_Ccweave_lhs_sdc} // shift sym: T_user_declaration
+ ,{311,(State*)&S4_Ccweave_lhs_sdc} // shift sym: T_constructor
+ ,{312,(State*)&S5_Ccweave_lhs_sdc} // shift sym: T_destructor
+ ,{313,(State*)&S6_Ccweave_lhs_sdc} // shift sym: T_op
+ ,{315,(State*)&S7_Ccweave_lhs_sdc} // shift sym: T_user_implementation
+ ,{569,(State*)&S1_Ccweave_lhs_sdc} // accept sym: Rweave_sdc
+ ,{570,(State*)&S8_Ccweave_lhs_sdc} // shift sym: Rdirectives
+ ,{571,(State*)&S11_Ccweave_lhs_sdc} // shift sym: Rdirective
+ }// end of shift table
+};
+yacco2::State S1_Ccweave_lhs_sdc = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Ccweave_lhs_sdc,0,0,0,0};
+struct S2rtd_Ccweave_lhs_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Ccweave_lhs_sdc S2rt_Ccweave_lhs_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweave_lhs_sdc,Ccweave_lhs_sdc::rhs1_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S2_Ccweave_lhs_sdc = //State's vectored into symbol: "#arbitrator-code"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Ccweave_lhs_sdc,0,0,0};
+struct S3rtd_Ccweave_lhs_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Ccweave_lhs_sdc S3rt_Ccweave_lhs_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweave_lhs_sdc,Ccweave_lhs_sdc::rhs2_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S3_Ccweave_lhs_sdc = //State's vectored into symbol: "#user-declaration"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_Ccweave_lhs_sdc,0,0,0};
+struct S4rtd_Ccweave_lhs_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Ccweave_lhs_sdc S4rt_Ccweave_lhs_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweave_lhs_sdc,Ccweave_lhs_sdc::rhs4_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S4_Ccweave_lhs_sdc = //State's vectored into symbol: "#constructor"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Ccweave_lhs_sdc,0,0,0};
+struct S5rtd_Ccweave_lhs_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Ccweave_lhs_sdc S5rt_Ccweave_lhs_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweave_lhs_sdc,Ccweave_lhs_sdc::rhs5_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S5_Ccweave_lhs_sdc = //State's vectored into symbol: "#destructor"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Ccweave_lhs_sdc,0,0,0};
+struct S6rtd_Ccweave_lhs_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Ccweave_lhs_sdc S6rt_Ccweave_lhs_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweave_lhs_sdc,Ccweave_lhs_sdc::rhs6_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S6_Ccweave_lhs_sdc = //State's vectored into symbol: "#op"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Ccweave_lhs_sdc,0,0,0};
+struct S7rtd_Ccweave_lhs_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Ccweave_lhs_sdc S7rt_Ccweave_lhs_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweave_lhs_sdc,Ccweave_lhs_sdc::rhs3_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S7_Ccweave_lhs_sdc = //State's vectored into symbol: "#user-implementation"
+{7
+,0,0,0,0,0,(Reduce_tbl*)&S7rt_Ccweave_lhs_sdc,0,0,0};
+struct S8std_Ccweave_lhs_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[8];
+};
+S8std_Ccweave_lhs_sdc S8st_Ccweave_lhs_sdc = {
+ 8
+ ,
+ {// start of table
+ {1,(State*)&S9_Ccweave_lhs_sdc} // shift sym: LR1_eog
+ ,{288,(State*)&S2_Ccweave_lhs_sdc} // shift sym: T_arbitrator_code
+ ,{308,(State*)&S3_Ccweave_lhs_sdc} // shift sym: T_user_declaration
+ ,{311,(State*)&S4_Ccweave_lhs_sdc} // shift sym: T_constructor
+ ,{312,(State*)&S5_Ccweave_lhs_sdc} // shift sym: T_destructor
+ ,{313,(State*)&S6_Ccweave_lhs_sdc} // shift sym: T_op
+ ,{315,(State*)&S7_Ccweave_lhs_sdc} // shift sym: T_user_implementation
+ ,{571,(State*)&S10_Ccweave_lhs_sdc} // shift sym: Rdirective
+ }// end of shift table
+};
+yacco2::State S8_Ccweave_lhs_sdc = //State's vectored into symbol: "Rdirectives"
+{8
+,0,0,0,0,(Shift_tbl*)&S8st_Ccweave_lhs_sdc,0,0,0,0};
+struct S9rtd_Ccweave_lhs_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Ccweave_lhs_sdc S9rt_Ccweave_lhs_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ccweave_lhs_sdc,Ccweave_lhs_sdc::rhs1_Rweave_sdc_}
+ }// end of reduce table
+};
+yacco2::State S9_Ccweave_lhs_sdc = //State's vectored into symbol: "eog"
+{9
+,0,0,0,0,0,(Reduce_tbl*)&S9rt_Ccweave_lhs_sdc,0,0,0};
+struct S10rtd_Ccweave_lhs_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S10rtd_Ccweave_lhs_sdc S10rt_Ccweave_lhs_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweave_lhs_sdc,Ccweave_lhs_sdc::rhs2_Rdirectives_}
+ }// end of reduce table
+};
+yacco2::State S10_Ccweave_lhs_sdc = //State's vectored into symbol: "Rdirective"
+{10
+,0,0,0,0,0,(Reduce_tbl*)&S10rt_Ccweave_lhs_sdc,0,0,0};
+struct S11rtd_Ccweave_lhs_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Ccweave_lhs_sdc S11rt_Ccweave_lhs_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweave_lhs_sdc,Ccweave_lhs_sdc::rhs1_Rdirectives_}
+ }// end of reduce table
+};
+yacco2::State S11_Ccweave_lhs_sdc = //State's vectored into symbol: "Rdirective"
+{11
+,0,0,0,0,0,(Reduce_tbl*)&S11rt_Ccweave_lhs_sdc,0,0,0};
diff --git a/web/yacco2/compiler/grammars/cweave_sdc.cpp b/web/yacco2/compiler/grammars/cweave_sdc.cpp
new file mode 100644
index 0000000000..6351773590
--- /dev/null
+++ b/web/yacco2/compiler/grammars/cweave_sdc.cpp
@@ -0,0 +1,306 @@
+/*
+ File: cweave_sdc.cpp
+ Date and Time: Fri Jan 30 18:55:07 2015
+*/
+#include "cweave_sdc.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_cweave_sdc;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 3;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+}
+ Ccweave_sdc::
+ Ccweave_sdc()
+ :yacco2::CAbs_fsm
+ ("cweave_sdc.lex"
+ ,"1.0"
+ ,"5 Jan. 2006"
+ ,false
+ ,"Write out cweave subrule's sdc irectives sentences"
+ ,"Fri Jan 30 18:55:07 2015 "
+ ,S1_Ccweave_sdc){
+
+ }
+
+Ccweave_sdc::~Ccweave_sdc(){
+
+ for(int x = 0;x < 3;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Ccweave_sdc::failed(){
+ return false;
+ }
+ void Ccweave_sdc::op(){
+}
+int Ccweave_sdc::rhs_to_rules_mapping_[14] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,2 // subrule 4 for rule 3
+ ,2 // subrule 5 for rule 3
+ ,2 // subrule 6 for rule 3
+ ,2 // subrule 7 for rule 3
+ ,2 // subrule 8 for rule 3
+ ,2 // subrule 9 for rule 3
+ ,2 // subrule 10 for rule 3
+ ,2 // subrule 11 for rule 3
+ ,2 // subrule 12 for rule 3
+ ,2 // subrule 13 for rule 3
+};
+
+ void Ccweave_sdc::initialize
+ (std::ofstream* Cweave_file
+ ,T_subrule_def* Subrule_def
+ ,int Subrule_no){
+ cweave_file_ = Cweave_file;
+ subrule_def_ = Subrule_def;
+ subrule_no_ = Subrule_no;
+ }
+
+ void Ccweave_sdc::wrt_directive(const char* Directive,T_syntax_code* Sdc){
+ if(Sdc == 0){
+ output_sr_sdcode(Directive);
+ (*cweave_file_) << "/";
+ (*cweave_file_) << "/ no sdcode" << endl;
+ return;
+ }
+ if(Sdc->cweb_marker() != 0){
+ WRT_CWEB_MARKER(cweave_file_,Sdc->cweb_marker());
+ }
+ output_sr_sdcode(Directive);
+ string xlate;
+ int len = Sdc->syntax_code()->length();
+ string& sdc=*Sdc->syntax_code();
+ // prescan @ due to cweave reqmts
+ for(int x=0;x<len;++x){
+ char nc = sdc[x];
+ if(nc=='@'){
+ // check next char for cweave type directives
+ char nnc = sdc[x+1];
+ if((nnc == '*') || (nnc == '<') || (nnc == '>')){
+ xlate += nc;
+ continue;
+ }else{
+ xlate += "@@";
+ continue;
+ }
+ }else{
+ xlate += nc;
+ continue;
+ }
+ }
+ (*cweave_file_) << xlate.c_str() << endl;
+ }
+
+ void Ccweave_sdc::output_sr_sdcode(const char* Directive){
+ char big_buf_[BIG_BUFFER_32K];
+char xa[Max_cweb_item_size];
+XLATE_SYMBOLS_FOR_cweave
+ (subrule_def_->its_rule_def()->rule_name()->c_str()
+ ,xa);
+ KCHARP cweave_sentence =
+ "@<%s subrule %i %s directive@>=\n";
+
+ sprintf(big_buf_
+ ,cweave_sentence
+ ,xa
+ ,subrule_no_
+ ,Directive
+ );
+ (*cweave_file_) << big_buf_;
+ }
+
+ void Ccweave_sdc::output_sr_sdcode_title(const char* Directive){
+ char big_buf_[BIG_BUFFER_32K];
+char xa[Max_cweb_item_size];
+XLATE_SYMBOLS_FOR_cweave
+ (subrule_def_->its_rule_def()->rule_name()->c_str()
+ ,xa);
+ KCHARP cweave_sentence =
+ "@*4 %s subrule %i %s directive.\n";
+
+ sprintf(big_buf_
+ ,cweave_sentence
+ ,xa
+ ,subrule_no_
+ ,Directive
+ );
+ (*cweave_file_) << big_buf_;
+ }
+
+Rweave_sdc::Rweave_sdc(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rweave_sdc",0,Ccweave_sdc::R_Rweave_sdc_,P,false,false){
+}
+
+Rdirectives::Rdirectives(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rdirectives",0,Ccweave_sdc::R_Rdirectives_,P,false,false){
+}
+
+Rdirective::Rdirective(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rdirective",0,Ccweave_sdc::R_Rdirective_,P,false,false){
+}
+
+void Rdirective::sr1(){
+ struct SF{
+ T_op* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ccweave_sdc* fsm = (Ccweave_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "op";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+
+}
+
+void Rdirective::sr2(){
+ struct SF{
+ T_arbitrator_code* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ccweave_sdc* fsm = (Ccweave_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "arbitrator-code";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+
+}
+
+void Rdirective::sr3(){
+ struct SF{
+ T_user_declaration* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ccweave_sdc* fsm = (Ccweave_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "user-declaration";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+
+}
+
+void Rdirective::sr4(){
+ struct SF{
+ T_user_prefix_declaration* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ccweave_sdc* fsm = (Ccweave_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "user-prefix-declaration";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+
+}
+
+void Rdirective::sr5(){
+ struct SF{
+ T_user_suffix_declaration* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ccweave_sdc* fsm = (Ccweave_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "user-suffix-declaration";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+
+}
+
+void Rdirective::sr6(){
+ struct SF{
+ T_constructor* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ccweave_sdc* fsm = (Ccweave_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "constructor";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+
+}
+
+void Rdirective::sr7(){
+ struct SF{
+ T_destructor* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ccweave_sdc* fsm = (Ccweave_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "destructor";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+
+}
+
+void Rdirective::sr8(){
+ struct SF{
+ T_user_implementation* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ccweave_sdc* fsm = (Ccweave_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "user-implementation";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+
+}
+
+void Rdirective::sr9(){
+ struct SF{
+ T_user_imp_tbl* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ccweave_sdc* fsm = (Ccweave_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "user-imp-tbl";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+
+}
+
+void Rdirective::sr10(){
+ struct SF{
+ T_user_imp_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ccweave_sdc* fsm = (Ccweave_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "user-imp-sym";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+
+}
+
diff --git a/web/yacco2/compiler/grammars/cweave_sdc.fsc b/web/yacco2/compiler/grammars/cweave_sdc.fsc
new file mode 100644
index 0000000000..0408caff01
--- /dev/null
+++ b/web/yacco2/compiler/grammars/cweave_sdc.fsc
@@ -0,0 +1,29 @@
+/*
+ File: cweave_sdc.fsc
+ Date and Time: Fri Jan 30 18:55:07 2015
+*/
+transitive n
+grammar-name "cweave_sdc"
+name-space "NS_cweave_sdc"
+thread-name "Ccweave_sdc"
+monolithic y
+file-name "cweave_sdc.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 10
+ T_arbitrator_code
+ T_user_declaration
+ T_user_prefix_declaration
+ T_user_suffix_declaration
+ T_constructor
+ T_destructor
+ T_op
+ T_user_implementation
+ T_user_imp_tbl
+ T_user_imp_sym
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"Write out cweave subrule's sdc irectives sentences"
diff --git a/web/yacco2/compiler/grammars/cweave_sdc.h b/web/yacco2/compiler/grammars/cweave_sdc.h
new file mode 100644
index 0000000000..370db718b4
--- /dev/null
+++ b/web/yacco2/compiler/grammars/cweave_sdc.h
@@ -0,0 +1,102 @@
+/*
+ File: cweave_sdc.h
+ Date and Time: Fri Jan 30 18:55:07 2015
+*/
+#ifndef __cweave_sdc_h__
+#define __cweave_sdc_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "o2_externs.h"
+
+// monolithic grammar: no thread
+extern yacco2::State S1_Ccweave_sdc;
+namespace NS_cweave_sdc {
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[3];
+};
+class Ccweave_sdc: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rweave_sdc_ = 569//start_of_rule_list + 0
+ ,rhs1_Rweave_sdc_ = 1
+ ,R_Rdirectives_ = 570//start_of_rule_list + 2
+ ,rhs1_Rdirectives_ = 2
+ ,rhs2_Rdirectives_ = 3
+ ,R_Rdirective_ = 571//start_of_rule_list + 4
+ ,rhs1_Rdirective_ = 4
+ ,rhs2_Rdirective_ = 5
+ ,rhs3_Rdirective_ = 6
+ ,rhs4_Rdirective_ = 7
+ ,rhs5_Rdirective_ = 8
+ ,rhs6_Rdirective_ = 9
+ ,rhs7_Rdirective_ = 10
+ ,rhs8_Rdirective_ = 11
+ ,rhs9_Rdirective_ = 12
+ ,rhs10_Rdirective_ = 13
+ };
+ //no of la sets = 2
+ //no of states = 15
+ Ccweave_sdc();
+ ~Ccweave_sdc();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[14];
+
+ public:
+ std::ofstream* cweave_file_;
+ T_subrule_def* subrule_def_;
+ int subrule_no_;
+ void initialize
+ (std::ofstream* Cweave_file
+ ,T_subrule_def* Subrule_def
+ ,int Subrule_no);
+ void output_sr_sdcode(const char* Directive);
+ void output_sr_sdcode_title(const char* Directive);
+ void wrt_directive(const char* Directive,T_syntax_code* Sdc);
+ void deal_with_cweave_atsign(const char* Directive,T_syntax_code* Sdc);
+
+ };
+struct Rweave_sdc;
+struct Rdirectives;
+struct Rdirective;
+struct Rweave_sdc:public yacco2::CAbs_lr1_sym {
+ Rweave_sdc(yacco2::Parser* P);
+ public:
+};
+
+struct Rdirectives:public yacco2::CAbs_lr1_sym {
+ Rdirectives(yacco2::Parser* P);
+ public:
+};
+
+struct Rdirective:public yacco2::CAbs_lr1_sym {
+ Rdirective(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+ void sr5();
+ void sr6();
+ void sr7();
+ void sr8();
+ void sr9();
+ void sr10();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/cweave_sdc.lex b/web/yacco2/compiler/grammars/cweave_sdc.lex
new file mode 100644
index 0000000000..6efe4ef832
--- /dev/null
+++ b/web/yacco2/compiler/grammars/cweave_sdc.lex
@@ -0,0 +1,212 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: cweave_sdc.lex
+Dates: 5 Jan. 2006
+Purpose: write out cweave sentence for
+ syntax directed directives
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |cweave_sdc| grammar.\fbreak
+Write out cweave subrule's syntax directed directives sentences.
+@/
+fsm
+(fsm-id "cweave_sdc.lex"
+,fsm-filename cweave_sdc
+,fsm-namespace NS_cweave_sdc
+,fsm-class Ccweave_sdc{
+ user-prefix-declaration
+#include "o2_externs.h"
+ ***
+ user-declaration
+ public:
+ std::ofstream* cweave_file_;
+ T_subrule_def* subrule_def_;
+ int subrule_no_;
+ void initialize
+ (std::ofstream* Cweave_file
+ ,T_subrule_def* Subrule_def
+ ,int Subrule_no);
+ void output_sr_sdcode(const char* Directive);
+ void output_sr_sdcode_title(const char* Directive);
+ void wrt_directive(const char* Directive,T_syntax_code* Sdc);
+ void deal_with_cweave_atsign(const char* Directive,T_syntax_code* Sdc);
+ ***
+ user-implementation
+ void Ccweave_sdc::initialize
+ (std::ofstream* Cweave_file
+ ,T_subrule_def* Subrule_def
+ ,int Subrule_no){
+ cweave_file_ = Cweave_file;
+ subrule_def_ = Subrule_def;
+ subrule_no_ = Subrule_no;
+ }
+/@
+@*3 |wrt_directive|.
+@/
+ void Ccweave_sdc::wrt_directive(const char* Directive,T_syntax_code* Sdc){
+ if(Sdc == 0){
+ output_sr_sdcode(Directive);
+ (*cweave_file_) << "/";
+ (*cweave_file_) << "/ no sdcode" << endl;
+ return;
+ }
+ if(Sdc->cweb_marker() != 0){
+ WRT_CWEB_MARKER(cweave_file_,Sdc->cweb_marker());
+ }
+ output_sr_sdcode(Directive);
+ string xlate;
+ int len = Sdc->syntax_code()->length();
+ string& sdc=*Sdc->syntax_code();
+ // prescan @ due to cweave reqmts
+ for(int x=0;x<len;++x){
+ char nc = sdc[x];
+ if(nc=='@'){
+ // check next char for cweave type directives
+ char nnc = sdc[x+1];
+ if((nnc == '*') || (nnc == '<') || (nnc == '>')){
+ xlate += nc;
+ continue;
+ }else{
+ xlate += "@@";
+ continue;
+ }
+ }else{
+ xlate += nc;
+ continue;
+ }
+ }
+ (*cweave_file_) << xlate.c_str() << endl;
+ }
+/@
+@*3 |output_sr_sdcode|.
+@/
+ void Ccweave_sdc::output_sr_sdcode(const char* Directive){
+ char big_buf_[BIG_BUFFER_32K];
+char xa[Max_cweb_item_size];
+XLATE_SYMBOLS_FOR_cweave
+ (subrule_def_->its_rule_def()->rule_name()->c_str()
+ ,xa);
+ KCHARP cweave_sentence =
+ "@<%s subrule %i %s directive@>=\n";
+
+ sprintf(big_buf_
+ ,cweave_sentence
+ ,xa
+ ,subrule_no_
+ ,Directive
+ );
+ (*cweave_file_) << big_buf_;
+ }
+/@
+@*3 |output_sr_sdcode_title|.
+@/
+ void Ccweave_sdc::output_sr_sdcode_title(const char* Directive){
+ char big_buf_[BIG_BUFFER_32K];
+char xa[Max_cweb_item_size];
+XLATE_SYMBOLS_FOR_cweave
+ (subrule_def_->its_rule_def()->rule_name()->c_str()
+ ,xa);
+ KCHARP cweave_sentence =
+ "@*4 %s subrule %i %s directive.\n";
+
+ sprintf(big_buf_
+ ,cweave_sentence
+ ,xa
+ ,subrule_no_
+ ,Directive
+ );
+ (*cweave_file_) << big_buf_;
+ }
+ ***
+}
+,fsm-version "1.0",fsm-date "5 Jan. 2006",fsm-debug "false"
+,fsm-comments "Write out cweave subrule's sdc irectives sentences")
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+//
+rules{
+Rweave_sdc (){
+ -> Rdirectives eog
+}
+
+Rdirectives (){
+ -> Rdirective
+ -> Rdirectives Rdirective
+}
+
+Rdirective (){
+ -> "#op" {
+ op
+ Ccweave_sdc* fsm = (Ccweave_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "op";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+ ***
+ }
+ -> "#arbitrator-code" {
+ op
+ Ccweave_sdc* fsm = (Ccweave_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "arbitrator-code";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+ ***
+ }
+ -> "#user-declaration" {
+ op
+ Ccweave_sdc* fsm = (Ccweave_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "user-declaration";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+ ***
+ }
+ -> "#user-prefix-declaration" {
+ op
+ Ccweave_sdc* fsm = (Ccweave_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "user-prefix-declaration";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+ ***
+ }
+ -> "#user-suffix-declaration" {
+ op
+ Ccweave_sdc* fsm = (Ccweave_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "user-suffix-declaration";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+ ***
+ }
+ -> "#constructor" {
+ op
+ Ccweave_sdc* fsm = (Ccweave_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "constructor";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+ ***
+ }
+ -> "#destructor" {
+ op
+ Ccweave_sdc* fsm = (Ccweave_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "destructor";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+ ***
+ }
+ -> "#user-implementation" {
+ op
+ Ccweave_sdc* fsm = (Ccweave_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "user-implementation";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+ ***
+ }
+ -> "#user-imp-tbl" {
+ op
+ Ccweave_sdc* fsm = (Ccweave_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "user-imp-tbl";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+ ***
+ }
+ -> "#user-imp-sym" {
+ op
+ Ccweave_sdc* fsm = (Ccweave_sdc*)rule_info__.parser__->fsm_tbl__;
+ KCHARP sdc = "user-imp-sym";
+ fsm->wrt_directive(sdc,sf->p1__->syntax_code());
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/cweave_sdcsym.cpp b/web/yacco2/compiler/grammars/cweave_sdcsym.cpp
new file mode 100644
index 0000000000..854970d4f4
--- /dev/null
+++ b/web/yacco2/compiler/grammars/cweave_sdcsym.cpp
@@ -0,0 +1,219 @@
+/*
+ File: cweave_sdcsym.cpp
+ Date and Time: Fri Jan 30 18:55:07 2015
+*/
+#include "cweave_sdc.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_cweave_sdc;// grammar's ns
+// first set terminals
+// monolithic grammar --- no thread
+void
+Ccweave_sdc::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rweave_sdc_:{
+ Rweave_sdc* sym;
+ if(re->rule_ == 0){
+ sym = new Rweave_sdc(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rweave_sdc*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rdirectives_:{
+ Rdirectives* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirectives(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirectives*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rdirectives_:{
+ Rdirectives* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirectives(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirectives*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr4();
+ return;}
+ case rhs5_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr5();
+ return;}
+ case rhs6_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr6();
+ return;}
+ case rhs7_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr7();
+ return;}
+ case rhs8_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr8();
+ return;}
+ case rhs9_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr9();
+ return;}
+ case rhs10_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr10();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/cweave_sdctbl.cpp b/web/yacco2/compiler/grammars/cweave_sdctbl.cpp
new file mode 100644
index 0000000000..0cd431ab92
--- /dev/null
+++ b/web/yacco2/compiler/grammars/cweave_sdctbl.cpp
@@ -0,0 +1,284 @@
+/*
+ File: cweave_sdctbl.cpp
+ Date and Time: Fri Jan 30 18:55:07 2015
+*/
+#include "cweave_sdc.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_cweave_sdc;// grammar's ns
+// first set terminals
+// T_arbitrator_code
+// T_user_declaration
+// T_user_prefix_declaration
+// T_user_suffix_declaration
+// T_constructor
+// T_destructor
+// T_op
+// T_user_implementation
+// T_user_imp_tbl
+// T_user_imp_sym
+// LR1_eog
+yacco2::UCHAR LA1_Ccweave_sdc[] ={
+4
+,0,2
+,36,1
+,38,240
+,39,59
+};
+// LR1_eolr
+yacco2::UCHAR LA2_Ccweave_sdc[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Ccweave_sdc;
+extern yacco2::State S2_Ccweave_sdc;
+extern yacco2::State S3_Ccweave_sdc;
+extern yacco2::State S4_Ccweave_sdc;
+extern yacco2::State S5_Ccweave_sdc;
+extern yacco2::State S6_Ccweave_sdc;
+extern yacco2::State S7_Ccweave_sdc;
+extern yacco2::State S8_Ccweave_sdc;
+extern yacco2::State S9_Ccweave_sdc;
+extern yacco2::State S10_Ccweave_sdc;
+extern yacco2::State S11_Ccweave_sdc;
+extern yacco2::State S12_Ccweave_sdc;
+extern yacco2::State S13_Ccweave_sdc;
+extern yacco2::State S14_Ccweave_sdc;
+extern yacco2::State S15_Ccweave_sdc;
+struct S1std_Ccweave_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[13];
+};
+S1std_Ccweave_sdc S1st_Ccweave_sdc = {
+ 13
+ ,
+ {// start of table
+ {288,(State*)&S2_Ccweave_sdc} // shift sym: T_arbitrator_code
+ ,{308,(State*)&S3_Ccweave_sdc} // shift sym: T_user_declaration
+ ,{309,(State*)&S4_Ccweave_sdc} // shift sym: T_user_prefix_declaration
+ ,{310,(State*)&S5_Ccweave_sdc} // shift sym: T_user_suffix_declaration
+ ,{311,(State*)&S6_Ccweave_sdc} // shift sym: T_constructor
+ ,{312,(State*)&S7_Ccweave_sdc} // shift sym: T_destructor
+ ,{313,(State*)&S8_Ccweave_sdc} // shift sym: T_op
+ ,{315,(State*)&S9_Ccweave_sdc} // shift sym: T_user_implementation
+ ,{316,(State*)&S10_Ccweave_sdc} // shift sym: T_user_imp_tbl
+ ,{317,(State*)&S11_Ccweave_sdc} // shift sym: T_user_imp_sym
+ ,{569,(State*)&S1_Ccweave_sdc} // accept sym: Rweave_sdc
+ ,{570,(State*)&S12_Ccweave_sdc} // shift sym: Rdirectives
+ ,{571,(State*)&S15_Ccweave_sdc} // shift sym: Rdirective
+ }// end of shift table
+};
+yacco2::State S1_Ccweave_sdc = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Ccweave_sdc,0,0,0,0};
+struct S2rtd_Ccweave_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Ccweave_sdc S2rt_Ccweave_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweave_sdc,Ccweave_sdc::rhs2_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S2_Ccweave_sdc = //State's vectored into symbol: "#arbitrator-code"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Ccweave_sdc,0,0,0};
+struct S3rtd_Ccweave_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Ccweave_sdc S3rt_Ccweave_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweave_sdc,Ccweave_sdc::rhs3_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S3_Ccweave_sdc = //State's vectored into symbol: "#user-declaration"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_Ccweave_sdc,0,0,0};
+struct S4rtd_Ccweave_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Ccweave_sdc S4rt_Ccweave_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweave_sdc,Ccweave_sdc::rhs4_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S4_Ccweave_sdc = //State's vectored into symbol: "#user-prefix-declaration"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Ccweave_sdc,0,0,0};
+struct S5rtd_Ccweave_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Ccweave_sdc S5rt_Ccweave_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweave_sdc,Ccweave_sdc::rhs5_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S5_Ccweave_sdc = //State's vectored into symbol: "#user-suffix-declaration"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Ccweave_sdc,0,0,0};
+struct S6rtd_Ccweave_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Ccweave_sdc S6rt_Ccweave_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweave_sdc,Ccweave_sdc::rhs6_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S6_Ccweave_sdc = //State's vectored into symbol: "#constructor"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Ccweave_sdc,0,0,0};
+struct S7rtd_Ccweave_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Ccweave_sdc S7rt_Ccweave_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweave_sdc,Ccweave_sdc::rhs7_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S7_Ccweave_sdc = //State's vectored into symbol: "#destructor"
+{7
+,0,0,0,0,0,(Reduce_tbl*)&S7rt_Ccweave_sdc,0,0,0};
+struct S8rtd_Ccweave_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S8rtd_Ccweave_sdc S8rt_Ccweave_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweave_sdc,Ccweave_sdc::rhs1_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S8_Ccweave_sdc = //State's vectored into symbol: "#op"
+{8
+,0,0,0,0,0,(Reduce_tbl*)&S8rt_Ccweave_sdc,0,0,0};
+struct S9rtd_Ccweave_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Ccweave_sdc S9rt_Ccweave_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweave_sdc,Ccweave_sdc::rhs8_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S9_Ccweave_sdc = //State's vectored into symbol: "#user-implementation"
+{9
+,0,0,0,0,0,(Reduce_tbl*)&S9rt_Ccweave_sdc,0,0,0};
+struct S10rtd_Ccweave_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S10rtd_Ccweave_sdc S10rt_Ccweave_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweave_sdc,Ccweave_sdc::rhs9_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S10_Ccweave_sdc = //State's vectored into symbol: "#user-imp-tbl"
+{10
+,0,0,0,0,0,(Reduce_tbl*)&S10rt_Ccweave_sdc,0,0,0};
+struct S11rtd_Ccweave_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Ccweave_sdc S11rt_Ccweave_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweave_sdc,Ccweave_sdc::rhs10_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S11_Ccweave_sdc = //State's vectored into symbol: "#user-imp-sym"
+{11
+,0,0,0,0,0,(Reduce_tbl*)&S11rt_Ccweave_sdc,0,0,0};
+struct S12std_Ccweave_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[12];
+};
+S12std_Ccweave_sdc S12st_Ccweave_sdc = {
+ 12
+ ,
+ {// start of table
+ {1,(State*)&S13_Ccweave_sdc} // shift sym: LR1_eog
+ ,{288,(State*)&S2_Ccweave_sdc} // shift sym: T_arbitrator_code
+ ,{308,(State*)&S3_Ccweave_sdc} // shift sym: T_user_declaration
+ ,{309,(State*)&S4_Ccweave_sdc} // shift sym: T_user_prefix_declaration
+ ,{310,(State*)&S5_Ccweave_sdc} // shift sym: T_user_suffix_declaration
+ ,{311,(State*)&S6_Ccweave_sdc} // shift sym: T_constructor
+ ,{312,(State*)&S7_Ccweave_sdc} // shift sym: T_destructor
+ ,{313,(State*)&S8_Ccweave_sdc} // shift sym: T_op
+ ,{315,(State*)&S9_Ccweave_sdc} // shift sym: T_user_implementation
+ ,{316,(State*)&S10_Ccweave_sdc} // shift sym: T_user_imp_tbl
+ ,{317,(State*)&S11_Ccweave_sdc} // shift sym: T_user_imp_sym
+ ,{571,(State*)&S14_Ccweave_sdc} // shift sym: Rdirective
+ }// end of shift table
+};
+yacco2::State S12_Ccweave_sdc = //State's vectored into symbol: "Rdirectives"
+{12
+,0,0,0,0,(Shift_tbl*)&S12st_Ccweave_sdc,0,0,0,0};
+struct S13rtd_Ccweave_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S13rtd_Ccweave_sdc S13rt_Ccweave_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ccweave_sdc,Ccweave_sdc::rhs1_Rweave_sdc_}
+ }// end of reduce table
+};
+yacco2::State S13_Ccweave_sdc = //State's vectored into symbol: "eog"
+{13
+,0,0,0,0,0,(Reduce_tbl*)&S13rt_Ccweave_sdc,0,0,0};
+struct S14rtd_Ccweave_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S14rtd_Ccweave_sdc S14rt_Ccweave_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweave_sdc,Ccweave_sdc::rhs2_Rdirectives_}
+ }// end of reduce table
+};
+yacco2::State S14_Ccweave_sdc = //State's vectored into symbol: "Rdirective"
+{14
+,0,0,0,0,0,(Reduce_tbl*)&S14rt_Ccweave_sdc,0,0,0};
+struct S15rtd_Ccweave_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S15rtd_Ccweave_sdc S15rt_Ccweave_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweave_sdc,Ccweave_sdc::rhs1_Rdirectives_}
+ }// end of reduce table
+};
+yacco2::State S15_Ccweave_sdc = //State's vectored into symbol: "Rdirective"
+{15
+,0,0,0,0,0,(Reduce_tbl*)&S15rt_Ccweave_sdc,0,0,0};
diff --git a/web/yacco2/compiler/grammars/cweb_or_c_k.cpp b/web/yacco2/compiler/grammars/cweb_or_c_k.cpp
new file mode 100644
index 0000000000..926e504032
--- /dev/null
+++ b/web/yacco2/compiler/grammars/cweb_or_c_k.cpp
@@ -0,0 +1,238 @@
+/*
+ File: cweb_or_c_k.cpp
+ Date and Time: Fri Jan 30 18:55:08 2015
+*/
+#include "cweb_or_c_k.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_cweb_or_c_k;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 4;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+}
+ Ccweb_or_c_k::
+ Ccweb_or_c_k()
+ :yacco2::CAbs_fsm
+ ("cweb_or_c_k.lex"
+ ,"1.0"
+ ,"10 feb. 2008"
+ ,false
+ ,"C++ or cweb type comments lexer."
+ ,"Fri Jan 30 18:55:08 2015 "
+ ,S1_Ccweb_or_c_k){
+
+ ddd_idx_ = 0;
+ ddd_[ddd_idx_] = 0;
+
+ }
+
+Ccweb_or_c_k::~Ccweb_or_c_k(){
+
+ for(int x = 0;x < 4;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Ccweb_or_c_k::failed(){
+ return false;
+ }
+ void Ccweb_or_c_k::op(){
+ ddd_idx_ = 0;
+ ddd_[ddd_idx_] = 0;
+
+}
+int Ccweb_or_c_k::rhs_to_rules_mapping_[7] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,0 // subrule 2 for rule 1
+ ,0 // subrule 3 for rule 1
+ ,1 // subrule 4 for rule 2
+ ,2 // subrule 5 for rule 3
+ ,3 // subrule 6 for rule 4
+};
+
+ void Ccweb_or_c_k::copy_str_into_buffer(std::string* Str){
+ const char* y = Str->c_str();
+ int x(0);
+ for(;y[x]!=0;++x,++ddd_idx_)ddd_[ddd_idx_] = y[x];
+ ddd_[ddd_idx_] = 0;
+ }
+
+ void Ccweb_or_c_k::copy_kstr_into_buffer(const char* Str){
+ const char* y = Str;
+ int x(0);
+ for(;y[x]!=0;++x,++ddd_idx_)ddd_[ddd_idx_] = y[x];
+ ddd_[ddd_idx_] = 0;
+ }
+
+Rcweb_or_c_k::Rcweb_or_c_k(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rcweb_or_c_k",0,Ccweb_or_c_k::R_Rcweb_or_c_k_,P,false,false){
+}
+
+void Rcweb_or_c_k::sr1(){
+
+ Ccweb_or_c_k* fsm = (Ccweb_or_c_k*) rule_info__.parser__->fsm_tbl__;
+ T_comment* com = new T_comment((const char*)&fsm->ddd_);
+ com->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(com);
+
+
+}
+
+void Rcweb_or_c_k::sr2(){
+
+ Ccweb_or_c_k* fsm = (Ccweb_or_c_k*) rule_info__.parser__->fsm_tbl__;
+ T_comment* com = new T_comment((const char*)&fsm->ddd_);
+ com->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(com);
+
+}
+
+void Rcweb_or_c_k::sr3(){
+
+ Ccweb_or_c_k* fsm = (Ccweb_or_c_k*) rule_info__.parser__->fsm_tbl__;
+ T_cweb_comment* com = new T_cweb_comment((const char*)&fsm->ddd_);
+ com->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);// file marker
+ RSVP(com);
+
+
+}
+
+Rslash_at::Rslash_at(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rslash_at",0,Ccweb_or_c_k::R_Rslash_at_,P,false,false){
+}
+
+void Rslash_at::sr1(){
+
+ Ccweb_or_c_k* fsm = (Ccweb_or_c_k*) rule_info__.parser__->fsm_tbl__;
+loop:
+ switch (rule_info__.parser__->current_token()->enumerated_id__){
+ case T_Enum::T_raw_lf_: goto other;
+ case T_Enum::T_raw_cr_: goto cr;
+ case T_Enum::T_LR1_eog_: goto overrun;
+ case T_Enum::T_raw_at_sign_: goto atsign;
+ default: goto other;
+ }
+ cr:{// cr lf?
+ fsm->copy_kstr_into_buffer(rule_info__.parser__->current_token()->id__);
+ rule_info__.parser__->get_next_token();
+ if(rule_info__.parser__->current_token()->enumerated_id__
+ != T_Enum::T_raw_lf_) goto loop;// not cr lf
+
+ fsm->copy_kstr_into_buffer(rule_info__.parser__->current_token()->id__);
+ rule_info__.parser__->get_next_token();
+ goto loop;
+ };
+ atsign:{ // end of k?
+ rule_info__.parser__->get_next_token();
+ if(rule_info__.parser__->current_token()->enumerated_id__
+ != T_Enum::T_raw_slash_){
+ fsm->copy_kstr_into_buffer("@");
+ goto loop;// false eok
+ }
+ rule_info__.parser__->get_next_token();
+ return;
+ }
+ overrun:{
+ CAbs_lr1_sym* sym = new Err_comment_overrun;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ other:{
+ fsm->copy_kstr_into_buffer(rule_info__.parser__->current_token()->id__);
+ rule_info__.parser__->get_next_token();
+goto loop;
+ }
+
+}
+
+Rslash_asterisk::Rslash_asterisk(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rslash_asterisk",0,Ccweb_or_c_k::R_Rslash_asterisk_,P,false,false){
+}
+
+void Rslash_asterisk::sr1(){
+
+ Ccweb_or_c_k* fsm = (Ccweb_or_c_k*) rule_info__.parser__->fsm_tbl__;
+ fsm->copy_kstr_into_buffer("/");// due to lex scanner
+ fsm->copy_kstr_into_buffer("*");
+
+loop:
+ switch (rule_info__.parser__->current_token()->enumerated_id__){
+ case T_Enum::T_raw_lf_: goto other;
+ case T_Enum::T_raw_cr_: goto cr;
+ case T_Enum::T_LR1_eog_: goto overrun;
+ case T_Enum::T_raw_asteric_: goto aster;
+ default: goto other;
+ }
+ cr:{// cr lf?
+ fsm->copy_kstr_into_buffer(rule_info__.parser__->current_token()->id__);
+ rule_info__.parser__->get_next_token();
+ if(rule_info__.parser__->current_token()->enumerated_id__
+ != T_Enum::T_raw_lf_) goto loop;// not cr lf
+ fsm->copy_kstr_into_buffer(rule_info__.parser__->current_token()->id__);
+ rule_info__.parser__->get_next_token();
+goto loop;
+ };
+ aster:{ // end of k?
+ fsm->copy_kstr_into_buffer(rule_info__.parser__->current_token()->id__);
+ rule_info__.parser__->get_next_token();
+ if(rule_info__.parser__->current_token()->enumerated_id__
+ != T_Enum::T_raw_slash_) goto loop;// false eok
+ fsm->copy_kstr_into_buffer(rule_info__.parser__->current_token()->id__);
+ rule_info__.parser__->get_next_token();
+ return;
+ }
+ overrun:{
+ CAbs_lr1_sym* sym = new Err_comment_overrun;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ other:{
+ fsm->copy_kstr_into_buffer(rule_info__.parser__->current_token()->id__);
+ rule_info__.parser__->get_next_token();
+goto loop;
+ }
+
+}
+
+R2slash::R2slash(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("R2slash",0,Ccweb_or_c_k::R_R2slash_,P,false,false){
+}
+
+void R2slash::sr1(){
+
+ Ccweb_or_c_k* fsm = (Ccweb_or_c_k*) rule_info__.parser__->fsm_tbl__;
+ fsm->copy_kstr_into_buffer("/");
+ fsm->copy_kstr_into_buffer("/");
+ for(;;){
+ switch (rule_info__.parser__->current_token()->enumerated_id__){
+ case T_Enum::T_raw_lf_: {
+ return;
+ }
+ case T_Enum::T_raw_cr_:{
+ return;
+ }
+ case T_Enum::T_LR1_eog_: return;
+ }
+ fsm->copy_kstr_into_buffer(rule_info__.parser__->current_token()->id__);
+ rule_info__.parser__->get_next_token();
+ }
+
+}
+
diff --git a/web/yacco2/compiler/grammars/cweb_or_c_k.fsc b/web/yacco2/compiler/grammars/cweb_or_c_k.fsc
new file mode 100644
index 0000000000..66d21937d6
--- /dev/null
+++ b/web/yacco2/compiler/grammars/cweb_or_c_k.fsc
@@ -0,0 +1,20 @@
+/*
+ File: cweb_or_c_k.fsc
+ Date and Time: Fri Jan 30 18:55:08 2015
+*/
+transitive n
+grammar-name "cweb_or_c_k"
+name-space "NS_cweb_or_c_k"
+thread-name "TH_cweb_or_c_k"
+monolithic n
+file-name "cweb_or_c_k.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ raw_slash
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"C++ or cweb type comments lexer."
diff --git a/web/yacco2/compiler/grammars/cweb_or_c_k.h b/web/yacco2/compiler/grammars/cweb_or_c_k.h
new file mode 100644
index 0000000000..2a1611acfe
--- /dev/null
+++ b/web/yacco2/compiler/grammars/cweb_or_c_k.h
@@ -0,0 +1,93 @@
+/*
+ File: cweb_or_c_k.h
+ Date and Time: Fri Jan 30 18:55:08 2015
+*/
+#ifndef __cweb_or_c_k_h__
+#define __cweb_or_c_k_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+extern yacco2::Thread_entry ITH_cweb_or_c_k;
+
+extern yacco2::State S1_Ccweb_or_c_k;
+namespace NS_cweb_or_c_k {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_cweb_or_c_k(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_cweb_or_c_k(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[4];
+};
+class Ccweb_or_c_k: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rcweb_or_c_k_ = 569//start_of_rule_list + 0
+ ,rhs1_Rcweb_or_c_k_ = 1
+ ,rhs2_Rcweb_or_c_k_ = 2
+ ,rhs3_Rcweb_or_c_k_ = 3
+ ,R_Rslash_at_ = 570//start_of_rule_list + 2
+ ,rhs1_Rslash_at_ = 4
+ ,R_Rslash_asterisk_ = 571//start_of_rule_list + 4
+ ,rhs1_Rslash_asterisk_ = 5
+ ,R_R2slash_ = 572//start_of_rule_list + 6
+ ,rhs1_R2slash_ = 6
+ };
+ //no of la sets = 2
+ //no of states = 11
+ Ccweb_or_c_k();
+ ~Ccweb_or_c_k();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[7];
+
+ public:
+ char ddd_[1024*32];
+ int ddd_idx_;
+ void copy_str_into_buffer(std::string* Str);
+ void copy_kstr_into_buffer(const char* Str);
+
+ };
+struct Rcweb_or_c_k;
+struct Rslash_at;
+struct Rslash_asterisk;
+struct R2slash;
+struct Rcweb_or_c_k:public yacco2::CAbs_lr1_sym {
+ Rcweb_or_c_k(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Rslash_at:public yacco2::CAbs_lr1_sym {
+ Rslash_at(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rslash_asterisk:public yacco2::CAbs_lr1_sym {
+ Rslash_asterisk(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct R2slash:public yacco2::CAbs_lr1_sym {
+ R2slash(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/cweb_or_c_k.lex b/web/yacco2/compiler/grammars/cweb_or_c_k.lex
new file mode 100644
index 0000000000..6dd7ce64d8
--- /dev/null
+++ b/web/yacco2/compiler/grammars/cweb_or_c_k.lex
@@ -0,0 +1,233 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: cweb_or_c_k.lex
+Dates: 10 Feb. 2008
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |cweb_or_c_k| combined ``c++ '' or my ``cweb'' comment Thread.\fbreak
+Why? To eliminate the non-determinism
+between these 2 threads due to their common prefix: ``/''.
+Why again? Speed and stop the confusion across the threads address space
+when called by procedure instead of by thread. The thread gets called singlely
+and hence the speed versus parallel threads competing where only one will win.
+Some interesting debuging issues where found when using
+Sun's superb ``mdb'' and ``dtrace'' tools.
+@*2 Cpp comments.\fbreak
+Handles both flavours of c++ comments.\fbreak
+\ptindent{1) // single line type comment}
+\ptindent{2) /* ... */ type comment}
+To speed things up, i'm using a finite-state approach to lower the
+pushdown deterministic rule push / pop cycles.
+@*2 Cweb type comments.\fbreak
+Recognize |cweb| comments buried within a grammar.
+These comments start with ``/@@''
+followed by the comments
+and closed off by ``@@'' and a forward slash --- can't declare
+it as this will prematurely end this comment.
+The enclosing comment prefix / suffix are not appended to the data
+as only its contents that are outputed in the various documents.
+
+Note: Use of the \invisibleshift{} symbol to lower the Lookahead set members.
+@/
+fsm
+(fsm-id "cweb_or_c_k.lex",fsm-filename cweb_or_c_k,fsm-namespace NS_cweb_or_c_k
+,fsm-class Ccweb_or_c_k {
+ user-declaration
+ public:
+ char ddd_[1024*32];
+ int ddd_idx_;
+ void copy_str_into_buffer(std::string* Str);
+ void copy_kstr_into_buffer(const char* Str);
+ ***
+ user-implementation
+ void Ccweb_or_c_k::copy_str_into_buffer(std::string* Str){
+ const char* y = Str->c_str();
+ int x(0);
+ for(;y[x]!=0;++x,++ddd_idx_)ddd_[ddd_idx_] = y[x];
+ ddd_[ddd_idx_] = 0;
+ }
+/@
+@*3 |copy_kstr_into_buffer|.
+@/
+ void Ccweb_or_c_k::copy_kstr_into_buffer(const char* Str){
+ const char* y = Str;
+ int x(0);
+ for(;y[x]!=0;++x,++ddd_idx_)ddd_[ddd_idx_] = y[x];
+ ddd_[ddd_idx_] = 0;
+ }
+ ***
+ constructor
+ ddd_idx_ = 0;
+ ddd_[ddd_idx_] = 0;
+ ***
+ op
+ ddd_idx_ = 0;
+ ddd_[ddd_idx_] = 0;
+ ***
+ }
+,fsm-version "1.0",fsm-date "10 feb. 2008",fsm-debug "false"
+,fsm-comments "C++ or cweb type comments lexer.")
+parallel-parser
+(
+ parallel-thread-function
+ TH_cweb_or_c_k
+ ***
+ parallel-la-boundary
+ eolr
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+rules{
+Rcweb_or_c_k (){
+ -> Rslash_asterisk |.| {
+ op
+ Ccweb_or_c_k* fsm = (Ccweb_or_c_k*) rule_info__.parser__->fsm_tbl__;
+ T_comment* com = new T_comment((const char*)&fsm->ddd_);
+ com->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(com);
+
+ ***
+ }
+ -> R2slash |.| {
+ op
+ Ccweb_or_c_k* fsm = (Ccweb_or_c_k*) rule_info__.parser__->fsm_tbl__;
+ T_comment* com = new T_comment((const char*)&fsm->ddd_);
+ com->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(com);
+ ***
+ }
+ -> Rslash_at |.| {
+ op
+ Ccweb_or_c_k* fsm = (Ccweb_or_c_k*) rule_info__.parser__->fsm_tbl__;
+ T_cweb_comment* com = new T_cweb_comment((const char*)&fsm->ddd_);
+ com->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);// file marker
+ RSVP(com);
+
+ ***
+ }
+}
+Rslash_at (){
+ -> "/" "@" {// exclude the /@ and @/ from cweb comment
+ op
+ Ccweb_or_c_k* fsm = (Ccweb_or_c_k*) rule_info__.parser__->fsm_tbl__;
+loop:
+ switch (rule_info__.parser__->current_token()->enumerated_id__){
+ case T_Enum::T_raw_lf_: goto other;
+ case T_Enum::T_raw_cr_: goto cr;
+ case T_Enum::T_LR1_eog_: goto overrun;
+ case T_Enum::T_raw_at_sign_: goto atsign;
+ default: goto other;
+ }
+ cr:{// cr lf?
+ fsm->copy_kstr_into_buffer(rule_info__.parser__->current_token()->id__);
+ rule_info__.parser__->get_next_token();
+ if(rule_info__.parser__->current_token()->enumerated_id__
+ != T_Enum::T_raw_lf_) goto loop;// not cr lf
+
+ fsm->copy_kstr_into_buffer(rule_info__.parser__->current_token()->id__);
+ rule_info__.parser__->get_next_token();
+ goto loop;
+ };
+ atsign:{ // end of k?
+ rule_info__.parser__->get_next_token();
+ if(rule_info__.parser__->current_token()->enumerated_id__
+ != T_Enum::T_raw_slash_){
+ fsm->copy_kstr_into_buffer("@");
+ goto loop;// false eok
+ }
+ rule_info__.parser__->get_next_token();
+ return;
+ }
+ overrun:{
+ CAbs_lr1_sym* sym = new Err_comment_overrun;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ other:{
+ fsm->copy_kstr_into_buffer(rule_info__.parser__->current_token()->id__);
+ rule_info__.parser__->get_next_token();
+goto loop;
+ }
+ ***
+ }
+}
+
+Rslash_asterisk (){
+ -> "/" "*" {
+ op
+ Ccweb_or_c_k* fsm = (Ccweb_or_c_k*) rule_info__.parser__->fsm_tbl__;
+ fsm->copy_kstr_into_buffer("/");// due to lex scanner
+ fsm->copy_kstr_into_buffer("*");
+
+loop:
+ switch (rule_info__.parser__->current_token()->enumerated_id__){
+ case T_Enum::T_raw_lf_: goto other;
+ case T_Enum::T_raw_cr_: goto cr;
+ case T_Enum::T_LR1_eog_: goto overrun;
+ case T_Enum::T_raw_asteric_: goto aster;
+ default: goto other;
+ }
+ cr:{// cr lf?
+ fsm->copy_kstr_into_buffer(rule_info__.parser__->current_token()->id__);
+ rule_info__.parser__->get_next_token();
+ if(rule_info__.parser__->current_token()->enumerated_id__
+ != T_Enum::T_raw_lf_) goto loop;// not cr lf
+ fsm->copy_kstr_into_buffer(rule_info__.parser__->current_token()->id__);
+ rule_info__.parser__->get_next_token();
+goto loop;
+ };
+ aster:{ // end of k?
+ fsm->copy_kstr_into_buffer(rule_info__.parser__->current_token()->id__);
+ rule_info__.parser__->get_next_token();
+ if(rule_info__.parser__->current_token()->enumerated_id__
+ != T_Enum::T_raw_slash_) goto loop;// false eok
+ fsm->copy_kstr_into_buffer(rule_info__.parser__->current_token()->id__);
+ rule_info__.parser__->get_next_token();
+ return;
+ }
+ overrun:{
+ CAbs_lr1_sym* sym = new Err_comment_overrun;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ other:{
+ fsm->copy_kstr_into_buffer(rule_info__.parser__->current_token()->id__);
+ rule_info__.parser__->get_next_token();
+goto loop;
+ }
+ ***
+ }
+}
+
+R2slash (){
+ -> "/" "/" {
+ op
+ Ccweb_or_c_k* fsm = (Ccweb_or_c_k*) rule_info__.parser__->fsm_tbl__;
+ fsm->copy_kstr_into_buffer("/");
+ fsm->copy_kstr_into_buffer("/");
+ for(;;){
+ switch (rule_info__.parser__->current_token()->enumerated_id__){
+ case T_Enum::T_raw_lf_: {
+ return;
+ }
+ case T_Enum::T_raw_cr_:{
+ return;
+ }
+ case T_Enum::T_LR1_eog_: return;
+ }
+ fsm->copy_kstr_into_buffer(rule_info__.parser__->current_token()->id__);
+ rule_info__.parser__->get_next_token();
+ }
+ ***
+ }
+}
+
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/cweb_or_c_ksym.cpp b/web/yacco2/compiler/grammars/cweb_or_c_ksym.cpp
new file mode 100644
index 0000000000..d1d4a33598
--- /dev/null
+++ b/web/yacco2/compiler/grammars/cweb_or_c_ksym.cpp
@@ -0,0 +1,138 @@
+/*
+ File: cweb_or_c_ksym.cpp
+ Date and Time: Fri Jan 30 18:55:08 2015
+*/
+#include "cweb_or_c_k.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_cweb_or_c_k;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_cweb_or_c_k::TH_cweb_or_c_k(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_cweb_or_c_k;
+ NS_cweb_or_c_k::Ccweb_or_c_k Ccweb_or_c_k_;// parallel-parser's parse table
+#define ssPARSE_TABLE Ccweb_or_c_k_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_cweb_or_c_k::PROC_TH_cweb_or_c_k(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_cweb_or_c_k";
+ static bool one_time(false);
+ static NS_cweb_or_c_k::Ccweb_or_c_k* NS_cweb_or_c_k_Ccweb_or_c_k_(0);// parallel-parser's fsm table
+ static Parser* NS_cweb_or_c_k_Ccweb_or_c_k_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_cweb_or_c_k_Ccweb_or_c_k_ = new NS_cweb_or_c_k::Ccweb_or_c_k();// parallel-parser's fsm table
+ NS_cweb_or_c_k_Ccweb_or_c_k_parser = new Parser(*NS_cweb_or_c_k_Ccweb_or_c_k_,Caller_pp);
+ }
+ proc_parser = NS_cweb_or_c_k_Ccweb_or_c_k_parser;
+#include "wproc_pp_core.h"
+}
+void
+Ccweb_or_c_k::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rcweb_or_c_k_:{
+ Rcweb_or_c_k* sym;
+ if(re->rule_ == 0){
+ sym = new Rcweb_or_c_k(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rcweb_or_c_k*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rcweb_or_c_k_:{
+ Rcweb_or_c_k* sym;
+ if(re->rule_ == 0){
+ sym = new Rcweb_or_c_k(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rcweb_or_c_k*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rcweb_or_c_k_:{
+ Rcweb_or_c_k* sym;
+ if(re->rule_ == 0){
+ sym = new Rcweb_or_c_k(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rcweb_or_c_k*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rslash_at_:{
+ Rslash_at* sym;
+ if(re->rule_ == 0){
+ sym = new Rslash_at(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rslash_at*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rslash_asterisk_:{
+ Rslash_asterisk* sym;
+ if(re->rule_ == 0){
+ sym = new Rslash_asterisk(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rslash_asterisk*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_R2slash_:{
+ R2slash* sym;
+ if(re->rule_ == 0){
+ sym = new R2slash(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (R2slash*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/cweb_or_c_ktbl.cpp b/web/yacco2/compiler/grammars/cweb_or_c_ktbl.cpp
new file mode 100644
index 0000000000..0c67284263
--- /dev/null
+++ b/web/yacco2/compiler/grammars/cweb_or_c_ktbl.cpp
@@ -0,0 +1,200 @@
+/*
+ File: cweb_or_c_ktbl.cpp
+ Date and Time: Fri Jan 30 18:55:08 2015
+*/
+#include "cweb_or_c_k.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_cweb_or_c_k;// grammar's ns
+// first set terminals
+// LR1_invisible_shift_operator
+yacco2::UCHAR LA1_Ccweb_or_c_k[] ={
+1
+,0,32
+};
+// LR1_eolr
+yacco2::UCHAR LA2_Ccweb_or_c_k[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Ccweb_or_c_k;
+extern yacco2::State S2_Ccweb_or_c_k;
+extern yacco2::State S3_Ccweb_or_c_k;
+extern yacco2::State S4_Ccweb_or_c_k;
+extern yacco2::State S5_Ccweb_or_c_k;
+extern yacco2::State S6_Ccweb_or_c_k;
+extern yacco2::State S7_Ccweb_or_c_k;
+extern yacco2::State S8_Ccweb_or_c_k;
+extern yacco2::State S9_Ccweb_or_c_k;
+extern yacco2::State S10_Ccweb_or_c_k;
+extern yacco2::State S11_Ccweb_or_c_k;
+struct S1std_Ccweb_or_c_k{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S1std_Ccweb_or_c_k S1st_Ccweb_or_c_k = {
+ 5
+ ,
+ {// start of table
+ {55,(State*)&S2_Ccweb_or_c_k} // shift sym: raw_slash
+ ,{569,(State*)&S1_Ccweb_or_c_k} // accept sym: Rcweb_or_c_k
+ ,{570,(State*)&S6_Ccweb_or_c_k} // shift sym: Rslash_at
+ ,{571,(State*)&S8_Ccweb_or_c_k} // shift sym: Rslash_asterisk
+ ,{572,(State*)&S10_Ccweb_or_c_k} // shift sym: R2slash
+ }// end of shift table
+};
+yacco2::State S1_Ccweb_or_c_k = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Ccweb_or_c_k,0,0,0,0};
+struct S2std_Ccweb_or_c_k{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S2std_Ccweb_or_c_k S2st_Ccweb_or_c_k = {
+ 3
+ ,
+ {// start of table
+ {50,(State*)&S3_Ccweb_or_c_k} // shift sym: raw_asteric
+ ,{55,(State*)&S4_Ccweb_or_c_k} // shift sym: raw_slash
+ ,{72,(State*)&S5_Ccweb_or_c_k} // shift sym: raw_at_sign
+ }// end of shift table
+};
+yacco2::State S2_Ccweb_or_c_k = //State's vectored into symbol: "/"
+{2
+,0,0,0,0,(Shift_tbl*)&S2st_Ccweb_or_c_k,0,0,0,0};
+struct S3rtd_Ccweb_or_c_k{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Ccweb_or_c_k S3rt_Ccweb_or_c_k = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweb_or_c_k,Ccweb_or_c_k::rhs1_Rslash_asterisk_}
+ }// end of reduce table
+};
+yacco2::State S3_Ccweb_or_c_k = //State's vectored into symbol: "*"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_Ccweb_or_c_k,0,0,0};
+struct S4rtd_Ccweb_or_c_k{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Ccweb_or_c_k S4rt_Ccweb_or_c_k = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweb_or_c_k,Ccweb_or_c_k::rhs1_R2slash_}
+ }// end of reduce table
+};
+yacco2::State S4_Ccweb_or_c_k = //State's vectored into symbol: "/"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Ccweb_or_c_k,0,0,0};
+struct S5rtd_Ccweb_or_c_k{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Ccweb_or_c_k S5rt_Ccweb_or_c_k = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweb_or_c_k,Ccweb_or_c_k::rhs1_Rslash_at_}
+ }// end of reduce table
+};
+yacco2::State S5_Ccweb_or_c_k = //State's vectored into symbol: "@"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Ccweb_or_c_k,0,0,0};
+struct S6std_Ccweb_or_c_k{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S6std_Ccweb_or_c_k S6st_Ccweb_or_c_k = {
+ 1
+ ,
+ {// start of table
+ {5,(State*)&S7_Ccweb_or_c_k} // shift sym: LR1_invisible_shift_operator
+ }// end of shift table
+};
+yacco2::Shift_entry S6ise_Ccweb_or_c_k = {5,(State*)&S7_Ccweb_or_c_k};
+yacco2::State S6_Ccweb_or_c_k = //State's vectored into symbol: "Rslash_at"
+{6
+,0,0,(Shift_entry*)&S6ise_Ccweb_or_c_k
+,0,(Shift_tbl*)&S6st_Ccweb_or_c_k,0,0,0,0};
+struct S7rtd_Ccweb_or_c_k{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Ccweb_or_c_k S7rt_Ccweb_or_c_k = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ccweb_or_c_k,Ccweb_or_c_k::rhs3_Rcweb_or_c_k_}
+ }// end of reduce table
+};
+yacco2::State S7_Ccweb_or_c_k = //State's vectored into symbol: "|.|"
+{7
+,0,0,0,0,0,(Reduce_tbl*)&S7rt_Ccweb_or_c_k,0,0,0};
+struct S8std_Ccweb_or_c_k{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S8std_Ccweb_or_c_k S8st_Ccweb_or_c_k = {
+ 1
+ ,
+ {// start of table
+ {5,(State*)&S9_Ccweb_or_c_k} // shift sym: LR1_invisible_shift_operator
+ }// end of shift table
+};
+yacco2::Shift_entry S8ise_Ccweb_or_c_k = {5,(State*)&S9_Ccweb_or_c_k};
+yacco2::State S8_Ccweb_or_c_k = //State's vectored into symbol: "Rslash_asterisk"
+{8
+,0,0,(Shift_entry*)&S8ise_Ccweb_or_c_k
+,0,(Shift_tbl*)&S8st_Ccweb_or_c_k,0,0,0,0};
+struct S9rtd_Ccweb_or_c_k{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Ccweb_or_c_k S9rt_Ccweb_or_c_k = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ccweb_or_c_k,Ccweb_or_c_k::rhs1_Rcweb_or_c_k_}
+ }// end of reduce table
+};
+yacco2::State S9_Ccweb_or_c_k = //State's vectored into symbol: "|.|"
+{9
+,0,0,0,0,0,(Reduce_tbl*)&S9rt_Ccweb_or_c_k,0,0,0};
+struct S10std_Ccweb_or_c_k{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S10std_Ccweb_or_c_k S10st_Ccweb_or_c_k = {
+ 1
+ ,
+ {// start of table
+ {5,(State*)&S11_Ccweb_or_c_k} // shift sym: LR1_invisible_shift_operator
+ }// end of shift table
+};
+yacco2::Shift_entry S10ise_Ccweb_or_c_k = {5,(State*)&S11_Ccweb_or_c_k};
+yacco2::State S10_Ccweb_or_c_k = //State's vectored into symbol: "R2slash"
+{10
+,0,0,(Shift_entry*)&S10ise_Ccweb_or_c_k
+,0,(Shift_tbl*)&S10st_Ccweb_or_c_k,0,0,0,0};
+struct S11rtd_Ccweb_or_c_k{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Ccweb_or_c_k S11rt_Ccweb_or_c_k = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ccweb_or_c_k,Ccweb_or_c_k::rhs2_Rcweb_or_c_k_}
+ }// end of reduce table
+};
+yacco2::State S11_Ccweb_or_c_k = //State's vectored into symbol: "|.|"
+{11
+,0,0,0,0,0,(Reduce_tbl*)&S11rt_Ccweb_or_c_k,0,0,0};
diff --git a/web/yacco2/compiler/grammars/cweb_put_k_into_ph.cpp b/web/yacco2/compiler/grammars/cweb_put_k_into_ph.cpp
new file mode 100644
index 0000000000..bbf4208413
--- /dev/null
+++ b/web/yacco2/compiler/grammars/cweb_put_k_into_ph.cpp
@@ -0,0 +1,186 @@
+/*
+ File: cweb_put_k_into_ph.cpp
+ Date and Time: Fri Jan 30 18:55:09 2015
+*/
+#include "cweb_put_k_into_ph.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_cweb_put_k_into_ph;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 1;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+}
+ Ccweb_put_k_into_ph::
+ Ccweb_put_k_into_ph()
+ :yacco2::CAbs_fsm
+ ("cweb_put_k_into_ph.lex"
+ ,"1.0"
+ ,"22 dec. 2005"
+ ,false
+ ,"Extract CWEB comments."
+ ,"Fri Jan 30 18:55:09 2015 "
+ ,S1_Ccweb_put_k_into_ph){
+
+ }
+
+Ccweb_put_k_into_ph::~Ccweb_put_k_into_ph(){
+
+ for(int x = 0;x < 1;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Ccweb_put_k_into_ph::failed(){
+ return false;
+ }
+ void Ccweb_put_k_into_ph::op(){
+}
+int Ccweb_put_k_into_ph::rhs_to_rules_mapping_[9] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,0 // subrule 2 for rule 1
+ ,0 // subrule 3 for rule 1
+ ,0 // subrule 4 for rule 1
+ ,0 // subrule 5 for rule 1
+ ,0 // subrule 6 for rule 1
+ ,0 // subrule 7 for rule 1
+ ,0 // subrule 8 for rule 1
+};
+
+ void Ccweb_put_k_into_ph::
+ initialize(AST* Cweb_marker_t,bool* Rules_phrase_seen){
+ cweb_marker_t_ = Cweb_marker_t;
+ rules_phrase_seen_ = Rules_phrase_seen;
+ }
+
+Rcweb_put_k_into_phrase::Rcweb_put_k_into_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rcweb_put_k_into_phrase",0,Ccweb_put_k_into_ph::R_Rcweb_put_k_into_phrase_,P,false,false){
+}
+
+void Rcweb_put_k_into_phrase::sr1(){
+ struct SF{
+ T_fsm_phrase* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ccweb_put_k_into_ph* fsm =
+ (Ccweb_put_k_into_ph*)rule_info__.parser__->fsm_tbl__;
+ sf->p1__->add_cweb_marker(fsm->cweb_marker_t_);
+
+}
+
+void Rcweb_put_k_into_phrase::sr2(){
+ struct SF{
+ T_parallel_parser_phrase* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ccweb_put_k_into_ph* fsm =
+ (Ccweb_put_k_into_ph*)rule_info__.parser__->fsm_tbl__;
+ sf->p1__->add_cweb_marker(fsm->cweb_marker_t_);
+
+}
+
+void Rcweb_put_k_into_phrase::sr3(){
+ struct SF{
+ T_terminals_phrase* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ccweb_put_k_into_ph* fsm =
+ (Ccweb_put_k_into_ph*)rule_info__.parser__->fsm_tbl__;
+ sf->p1__->add_cweb_marker(fsm->cweb_marker_t_);
+
+}
+
+void Rcweb_put_k_into_phrase::sr4(){
+ struct SF{
+ T_error_symbols_phrase* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ccweb_put_k_into_ph* fsm =
+ (Ccweb_put_k_into_ph*)rule_info__.parser__->fsm_tbl__;
+ sf->p1__->add_cweb_marker(fsm->cweb_marker_t_);
+
+}
+
+void Rcweb_put_k_into_phrase::sr5(){
+ struct SF{
+ T_rc_phrase* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ccweb_put_k_into_ph* fsm =
+ (Ccweb_put_k_into_ph*)rule_info__.parser__->fsm_tbl__;
+ sf->p1__->add_cweb_marker(fsm->cweb_marker_t_);
+
+}
+
+void Rcweb_put_k_into_phrase::sr6(){
+ struct SF{
+ T_lr1_k_phrase* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ccweb_put_k_into_ph* fsm =
+ (Ccweb_put_k_into_ph*)rule_info__.parser__->fsm_tbl__;
+ sf->p1__->add_cweb_marker(fsm->cweb_marker_t_);
+
+}
+
+void Rcweb_put_k_into_phrase::sr7(){
+ struct SF{
+ T_rules_phrase* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ccweb_put_k_into_ph* fsm =
+ (Ccweb_put_k_into_ph*)rule_info__.parser__->fsm_tbl__;
+ sf->p1__->add_cweb_marker(fsm->cweb_marker_t_);
+ (*fsm->rules_phrase_seen_) = true;
+
+}
+
+void Rcweb_put_k_into_phrase::sr8(){
+ struct SF{
+ T_enum_phrase* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ccweb_put_k_into_ph* fsm =
+ (Ccweb_put_k_into_ph*)rule_info__.parser__->fsm_tbl__;
+ sf->p1__->add_cweb_marker(fsm->cweb_marker_t_);
+
+}
+
diff --git a/web/yacco2/compiler/grammars/cweb_put_k_into_ph.fsc b/web/yacco2/compiler/grammars/cweb_put_k_into_ph.fsc
new file mode 100644
index 0000000000..912ff44566
--- /dev/null
+++ b/web/yacco2/compiler/grammars/cweb_put_k_into_ph.fsc
@@ -0,0 +1,27 @@
+/*
+ File: cweb_put_k_into_ph.fsc
+ Date and Time: Fri Jan 30 18:55:09 2015
+*/
+transitive n
+grammar-name "cweb_put_k_into_ph"
+name-space "NS_cweb_put_k_into_ph"
+thread-name "Ccweb_put_k_into_ph"
+monolithic y
+file-name "cweb_put_k_into_ph.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 8
+ T_fsm_phrase
+ T_parallel_parser_phrase
+ T_enum_phrase
+ T_terminals_phrase
+ T_error_symbols_phrase
+ T_lr1_k_phrase
+ T_rc_phrase
+ T_rules_phrase
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"Extract CWEB comments."
diff --git a/web/yacco2/compiler/grammars/cweb_put_k_into_ph.h b/web/yacco2/compiler/grammars/cweb_put_k_into_ph.h
new file mode 100644
index 0000000000..226625f516
--- /dev/null
+++ b/web/yacco2/compiler/grammars/cweb_put_k_into_ph.h
@@ -0,0 +1,70 @@
+/*
+ File: cweb_put_k_into_ph.h
+ Date and Time: Fri Jan 30 18:55:09 2015
+*/
+#ifndef __cweb_put_k_into_ph_h__
+#define __cweb_put_k_into_ph_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+// monolithic grammar: no thread
+extern yacco2::State S1_Ccweb_put_k_into_ph;
+namespace NS_cweb_put_k_into_ph {
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[1];
+};
+class Ccweb_put_k_into_ph: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rcweb_put_k_into_phrase_ = 569//start_of_rule_list + 0
+ ,rhs1_Rcweb_put_k_into_phrase_ = 1
+ ,rhs2_Rcweb_put_k_into_phrase_ = 2
+ ,rhs3_Rcweb_put_k_into_phrase_ = 3
+ ,rhs4_Rcweb_put_k_into_phrase_ = 4
+ ,rhs5_Rcweb_put_k_into_phrase_ = 5
+ ,rhs6_Rcweb_put_k_into_phrase_ = 6
+ ,rhs7_Rcweb_put_k_into_phrase_ = 7
+ ,rhs8_Rcweb_put_k_into_phrase_ = 8
+ };
+ //no of la sets = 1
+ //no of states = 9
+ Ccweb_put_k_into_ph();
+ ~Ccweb_put_k_into_ph();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[9];
+
+ public:
+ AST* cweb_marker_t_;
+ bool* rules_phrase_seen_;
+ void initialize(AST* Cweb_marker_t,bool* Rules_phrase_seen);
+
+ };
+struct Rcweb_put_k_into_phrase;
+struct Rcweb_put_k_into_phrase:public yacco2::CAbs_lr1_sym {
+ Rcweb_put_k_into_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+ void sr5();
+ void sr6();
+ void sr7();
+ void sr8();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/cweb_put_k_into_ph.lex b/web/yacco2/compiler/grammars/cweb_put_k_into_ph.lex
new file mode 100644
index 0000000000..5d1510a900
--- /dev/null
+++ b/web/yacco2/compiler/grammars/cweb_put_k_into_ph.lex
@@ -0,0 +1,97 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: cweb_put_k_into_ph.lex
+Dates: 31 Jan. 2006
+Purpose: Put the prefix cweb comment into its phrase
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |cweb_put_k_into_ph| grammar.\fbreak
+Puts the |cweb| comments into the appropriate parse phrase.
+@/
+fsm
+(fsm-id "cweb_put_k_into_ph.lex",fsm-filename cweb_put_k_into_ph,fsm-namespace NS_cweb_put_k_into_ph
+,fsm-class Ccweb_put_k_into_ph
+{
+ user-declaration
+ public:
+ AST* cweb_marker_t_;
+ bool* rules_phrase_seen_;
+ void initialize(AST* Cweb_marker_t,bool* Rules_phrase_seen);
+ ***
+ user-implementation
+ void Ccweb_put_k_into_ph::
+ initialize(AST* Cweb_marker_t,bool* Rules_phrase_seen){
+ cweb_marker_t_ = Cweb_marker_t;
+ rules_phrase_seen_ = Rules_phrase_seen;
+ }
+ ***
+}
+,fsm-version "1.0" ,fsm-date "22 dec. 2005",fsm-debug "false"
+,fsm-comments "Extract CWEB comments.")
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+rules{
+
+Rcweb_put_k_into_phrase (){
+ -> "fsm-phrase" {
+ op
+ Ccweb_put_k_into_ph* fsm =
+ (Ccweb_put_k_into_ph*)rule_info__.parser__->fsm_tbl__;
+ sf->p1__->add_cweb_marker(fsm->cweb_marker_t_);
+ ***
+ }
+ -> "parallel-parser-phrase" {
+ op
+ Ccweb_put_k_into_ph* fsm =
+ (Ccweb_put_k_into_ph*)rule_info__.parser__->fsm_tbl__;
+ sf->p1__->add_cweb_marker(fsm->cweb_marker_t_);
+ ***
+ }
+ -> "terminals-phrase" {
+ op
+ Ccweb_put_k_into_ph* fsm =
+ (Ccweb_put_k_into_ph*)rule_info__.parser__->fsm_tbl__;
+ sf->p1__->add_cweb_marker(fsm->cweb_marker_t_);
+ ***
+ }
+ -> "error-symbols-phrase" {
+ op
+ Ccweb_put_k_into_ph* fsm =
+ (Ccweb_put_k_into_ph*)rule_info__.parser__->fsm_tbl__;
+ sf->p1__->add_cweb_marker(fsm->cweb_marker_t_);
+ ***
+ }
+ -> "rc-phrase" {
+ op
+ Ccweb_put_k_into_ph* fsm =
+ (Ccweb_put_k_into_ph*)rule_info__.parser__->fsm_tbl__;
+ sf->p1__->add_cweb_marker(fsm->cweb_marker_t_);
+ ***
+ }
+ -> "lr1-k-phrase" {
+ op
+ Ccweb_put_k_into_ph* fsm =
+ (Ccweb_put_k_into_ph*)rule_info__.parser__->fsm_tbl__;
+ sf->p1__->add_cweb_marker(fsm->cweb_marker_t_);
+ ***
+ }
+ -> "rules-phrase" {
+ op
+ Ccweb_put_k_into_ph* fsm =
+ (Ccweb_put_k_into_ph*)rule_info__.parser__->fsm_tbl__;
+ sf->p1__->add_cweb_marker(fsm->cweb_marker_t_);
+ (*fsm->rules_phrase_seen_) = true;
+ ***
+ }
+ -> "T-enum-phrase" {
+ op
+ Ccweb_put_k_into_ph* fsm =
+ (Ccweb_put_k_into_ph*)rule_info__.parser__->fsm_tbl__;
+ sf->p1__->add_cweb_marker(fsm->cweb_marker_t_);
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/cweb_put_k_into_phsym.cpp b/web/yacco2/compiler/grammars/cweb_put_k_into_phsym.cpp
new file mode 100644
index 0000000000..07ce82c039
--- /dev/null
+++ b/web/yacco2/compiler/grammars/cweb_put_k_into_phsym.cpp
@@ -0,0 +1,147 @@
+/*
+ File: cweb_put_k_into_phsym.cpp
+ Date and Time: Fri Jan 30 18:55:09 2015
+*/
+#include "cweb_put_k_into_ph.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_cweb_put_k_into_ph;// grammar's ns
+// first set terminals
+// monolithic grammar --- no thread
+void
+Ccweb_put_k_into_ph::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rcweb_put_k_into_phrase_:{
+ Rcweb_put_k_into_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rcweb_put_k_into_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rcweb_put_k_into_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rcweb_put_k_into_phrase_:{
+ Rcweb_put_k_into_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rcweb_put_k_into_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rcweb_put_k_into_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rcweb_put_k_into_phrase_:{
+ Rcweb_put_k_into_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rcweb_put_k_into_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rcweb_put_k_into_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rcweb_put_k_into_phrase_:{
+ Rcweb_put_k_into_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rcweb_put_k_into_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rcweb_put_k_into_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr4();
+ return;}
+ case rhs5_Rcweb_put_k_into_phrase_:{
+ Rcweb_put_k_into_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rcweb_put_k_into_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rcweb_put_k_into_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr5();
+ return;}
+ case rhs6_Rcweb_put_k_into_phrase_:{
+ Rcweb_put_k_into_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rcweb_put_k_into_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rcweb_put_k_into_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr6();
+ return;}
+ case rhs7_Rcweb_put_k_into_phrase_:{
+ Rcweb_put_k_into_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rcweb_put_k_into_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rcweb_put_k_into_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr7();
+ return;}
+ case rhs8_Rcweb_put_k_into_phrase_:{
+ Rcweb_put_k_into_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rcweb_put_k_into_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rcweb_put_k_into_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr8();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/cweb_put_k_into_phtbl.cpp b/web/yacco2/compiler/grammars/cweb_put_k_into_phtbl.cpp
new file mode 100644
index 0000000000..aab5f34425
--- /dev/null
+++ b/web/yacco2/compiler/grammars/cweb_put_k_into_phtbl.cpp
@@ -0,0 +1,161 @@
+/*
+ File: cweb_put_k_into_phtbl.cpp
+ Date and Time: Fri Jan 30 18:55:09 2015
+*/
+#include "cweb_put_k_into_ph.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_cweb_put_k_into_ph;// grammar's ns
+// first set terminals
+// LR1_eolr
+yacco2::UCHAR LA1_Ccweb_put_k_into_ph[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Ccweb_put_k_into_ph;
+extern yacco2::State S2_Ccweb_put_k_into_ph;
+extern yacco2::State S3_Ccweb_put_k_into_ph;
+extern yacco2::State S4_Ccweb_put_k_into_ph;
+extern yacco2::State S5_Ccweb_put_k_into_ph;
+extern yacco2::State S6_Ccweb_put_k_into_ph;
+extern yacco2::State S7_Ccweb_put_k_into_ph;
+extern yacco2::State S8_Ccweb_put_k_into_ph;
+extern yacco2::State S9_Ccweb_put_k_into_ph;
+struct S1std_Ccweb_put_k_into_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[9];
+};
+S1std_Ccweb_put_k_into_ph S1st_Ccweb_put_k_into_ph = {
+ 9
+ ,
+ {// start of table
+ {328,(State*)&S2_Ccweb_put_k_into_ph} // shift sym: T_fsm_phrase
+ ,{329,(State*)&S3_Ccweb_put_k_into_ph} // shift sym: T_parallel_parser_phrase
+ ,{330,(State*)&S4_Ccweb_put_k_into_ph} // shift sym: T_enum_phrase
+ ,{334,(State*)&S5_Ccweb_put_k_into_ph} // shift sym: T_terminals_phrase
+ ,{335,(State*)&S6_Ccweb_put_k_into_ph} // shift sym: T_error_symbols_phrase
+ ,{336,(State*)&S7_Ccweb_put_k_into_ph} // shift sym: T_lr1_k_phrase
+ ,{337,(State*)&S8_Ccweb_put_k_into_ph} // shift sym: T_rc_phrase
+ ,{341,(State*)&S9_Ccweb_put_k_into_ph} // shift sym: T_rules_phrase
+ ,{569,(State*)&S1_Ccweb_put_k_into_ph} // accept sym: Rcweb_put_k_into_phrase
+ }// end of shift table
+};
+yacco2::State S1_Ccweb_put_k_into_ph = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Ccweb_put_k_into_ph,0,0,0,0};
+struct S2rtd_Ccweb_put_k_into_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Ccweb_put_k_into_ph S2rt_Ccweb_put_k_into_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweb_put_k_into_ph,Ccweb_put_k_into_ph::rhs1_Rcweb_put_k_into_phrase_}
+ }// end of reduce table
+};
+yacco2::State S2_Ccweb_put_k_into_ph = //State's vectored into symbol: "fsm-phrase"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Ccweb_put_k_into_ph,0,0,0};
+struct S3rtd_Ccweb_put_k_into_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Ccweb_put_k_into_ph S3rt_Ccweb_put_k_into_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweb_put_k_into_ph,Ccweb_put_k_into_ph::rhs2_Rcweb_put_k_into_phrase_}
+ }// end of reduce table
+};
+yacco2::State S3_Ccweb_put_k_into_ph = //State's vectored into symbol: "parallel-parser-phrase"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_Ccweb_put_k_into_ph,0,0,0};
+struct S4rtd_Ccweb_put_k_into_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Ccweb_put_k_into_ph S4rt_Ccweb_put_k_into_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweb_put_k_into_ph,Ccweb_put_k_into_ph::rhs8_Rcweb_put_k_into_phrase_}
+ }// end of reduce table
+};
+yacco2::State S4_Ccweb_put_k_into_ph = //State's vectored into symbol: "T-enum-phrase"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Ccweb_put_k_into_ph,0,0,0};
+struct S5rtd_Ccweb_put_k_into_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Ccweb_put_k_into_ph S5rt_Ccweb_put_k_into_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweb_put_k_into_ph,Ccweb_put_k_into_ph::rhs3_Rcweb_put_k_into_phrase_}
+ }// end of reduce table
+};
+yacco2::State S5_Ccweb_put_k_into_ph = //State's vectored into symbol: "terminals-phrase"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Ccweb_put_k_into_ph,0,0,0};
+struct S6rtd_Ccweb_put_k_into_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Ccweb_put_k_into_ph S6rt_Ccweb_put_k_into_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweb_put_k_into_ph,Ccweb_put_k_into_ph::rhs4_Rcweb_put_k_into_phrase_}
+ }// end of reduce table
+};
+yacco2::State S6_Ccweb_put_k_into_ph = //State's vectored into symbol: "error-symbols-phrase"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Ccweb_put_k_into_ph,0,0,0};
+struct S7rtd_Ccweb_put_k_into_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Ccweb_put_k_into_ph S7rt_Ccweb_put_k_into_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweb_put_k_into_ph,Ccweb_put_k_into_ph::rhs6_Rcweb_put_k_into_phrase_}
+ }// end of reduce table
+};
+yacco2::State S7_Ccweb_put_k_into_ph = //State's vectored into symbol: "lr1-k-phrase"
+{7
+,0,0,0,0,0,(Reduce_tbl*)&S7rt_Ccweb_put_k_into_ph,0,0,0};
+struct S8rtd_Ccweb_put_k_into_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S8rtd_Ccweb_put_k_into_ph S8rt_Ccweb_put_k_into_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweb_put_k_into_ph,Ccweb_put_k_into_ph::rhs5_Rcweb_put_k_into_phrase_}
+ }// end of reduce table
+};
+yacco2::State S8_Ccweb_put_k_into_ph = //State's vectored into symbol: "rc-phrase"
+{8
+,0,0,0,0,0,(Reduce_tbl*)&S8rt_Ccweb_put_k_into_ph,0,0,0};
+struct S9rtd_Ccweb_put_k_into_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Ccweb_put_k_into_ph S9rt_Ccweb_put_k_into_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ccweb_put_k_into_ph,Ccweb_put_k_into_ph::rhs7_Rcweb_put_k_into_phrase_}
+ }// end of reduce table
+};
+yacco2::State S9_Ccweb_put_k_into_ph = //State's vectored into symbol: "rules-phrase"
+{9
+,0,0,0,0,0,(Reduce_tbl*)&S9rt_Ccweb_put_k_into_ph,0,0,0};
diff --git a/web/yacco2/compiler/grammars/dbl_colon.cpp b/web/yacco2/compiler/grammars/dbl_colon.cpp
new file mode 100644
index 0000000000..3d94625dbe
--- /dev/null
+++ b/web/yacco2/compiler/grammars/dbl_colon.cpp
@@ -0,0 +1,65 @@
+/*
+ File: dbl_colon.cpp
+ Date and Time: Fri Jan 30 18:55:09 2015
+*/
+#include "dbl_colon.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_dbl_colon;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 1;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+}
+ Cdbl_colon::
+ Cdbl_colon()
+ :yacco2::CAbs_fsm
+ ("dbl_colon.lex"
+ ,"1.0"
+ ,"8 Jun 2004"
+ ,false
+ ,"This one's for the thread's name :: lexer."
+ ,"Fri Jan 30 18:55:09 2015 "
+ ,S1_Cdbl_colon){
+
+ }
+
+Cdbl_colon::~Cdbl_colon(){
+
+ for(int x = 0;x < 1;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cdbl_colon::failed(){
+ return false;
+ }
+ void Cdbl_colon::op(){
+}
+int Cdbl_colon::rhs_to_rules_mapping_[2] = {
+ -1
+ ,0 // subrule 1 for rule 1
+};
+Rdbl_colon::Rdbl_colon(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rdbl_colon",0,Cdbl_colon::R_Rdbl_colon_,P,false,false){
+}
+
+void Rdbl_colon::op(){
+ sstrace_rulesss
+
+ rtn_sym_->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(rtn_sym_);
+ rtn_sym_ = 0;
+
+}
+void Rdbl_colon::sr1(){
+
+ rtn_sym_ = new T_2colon;
+
+}
+
diff --git a/web/yacco2/compiler/grammars/dbl_colon.fsc b/web/yacco2/compiler/grammars/dbl_colon.fsc
new file mode 100644
index 0000000000..e127a02863
--- /dev/null
+++ b/web/yacco2/compiler/grammars/dbl_colon.fsc
@@ -0,0 +1,20 @@
+/*
+ File: dbl_colon.fsc
+ Date and Time: Fri Jan 30 18:55:09 2015
+*/
+transitive n
+grammar-name "dbl_colon"
+name-space "NS_dbl_colon"
+thread-name "TH_dbl_colon"
+monolithic n
+file-name "dbl_colon.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ raw_colon
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"This one's for the thread's name :: lexer."
diff --git a/web/yacco2/compiler/grammars/dbl_colon.h b/web/yacco2/compiler/grammars/dbl_colon.h
new file mode 100644
index 0000000000..fee1df020b
--- /dev/null
+++ b/web/yacco2/compiler/grammars/dbl_colon.h
@@ -0,0 +1,60 @@
+/*
+ File: dbl_colon.h
+ Date and Time: Fri Jan 30 18:55:09 2015
+*/
+#ifndef __dbl_colon_h__
+#define __dbl_colon_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+extern yacco2::Thread_entry ITH_dbl_colon;
+
+extern yacco2::State S1_Cdbl_colon;
+namespace NS_dbl_colon {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_dbl_colon(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_dbl_colon(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[1];
+};
+class Cdbl_colon: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rdbl_colon_ = 569//start_of_rule_list + 0
+ ,rhs1_Rdbl_colon_ = 1
+ };
+ //no of la sets = 1
+ //no of states = 3
+ Cdbl_colon();
+ ~Cdbl_colon();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[2];
+ };
+struct Rdbl_colon;
+struct Rdbl_colon:public yacco2::CAbs_lr1_sym {
+ Rdbl_colon(yacco2::Parser* P);
+ void op();
+
+ public:
+ CAbs_lr1_sym* rtn_sym_;
+
+ public:
+ void sr1();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/dbl_colon.lex b/web/yacco2/compiler/grammars/dbl_colon.lex
new file mode 100644
index 0000000000..7d48013e9a
--- /dev/null
+++ b/web/yacco2/compiler/grammars/dbl_colon.lex
@@ -0,0 +1,62 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: dbl_colon.lex
+Dates: 23 Mar 2004
+Purpose: part of a C++ thread's name
+ NS_xxx::TH_xxx
+Output: "::"
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |dbl_colon| grammar.\fbreak
+Recognizes the double colon sequence in
+the subrule's thread call.
+Why does it exist?
+Cuz of my distinction between regular grammar expressions
+and the thread calling type.
+So this is a word that is outside of identifier thread
+jurisdiction. i did generalize keywords a long time ago
+but refined it thru development.
+@/
+fsm
+(fsm-id "dbl_colon.lex"
+,fsm-filename dbl_colon
+,fsm-namespace NS_dbl_colon
+,fsm-class Cdbl_colon
+,fsm-version "1.0",fsm-date "8 Jun 2004",fsm-debug "false"
+,fsm-comments "This one's for the thread's name :: lexer.")
+parallel-parser
+(
+ parallel-thread-function
+ TH_dbl_colon
+ ***
+ parallel-la-boundary
+ eolr - ":"
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rdbl_colon (
+ lhs {
+ user-declaration
+ public:
+ CAbs_lr1_sym* rtn_sym_;
+ ***
+ op
+ rtn_sym_->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(rtn_sym_);
+ rtn_sym_ = 0;
+ ***
+ }
+){
+ -> ":" ":" {
+ op
+ rtn_sym_ = new T_2colon;
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/dbl_colonsym.cpp b/web/yacco2/compiler/grammars/dbl_colonsym.cpp
new file mode 100644
index 0000000000..e9601c1634
--- /dev/null
+++ b/web/yacco2/compiler/grammars/dbl_colonsym.cpp
@@ -0,0 +1,64 @@
+/*
+ File: dbl_colonsym.cpp
+ Date and Time: Fri Jan 30 18:55:09 2015
+*/
+#include "dbl_colon.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_dbl_colon;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_dbl_colon::TH_dbl_colon(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_dbl_colon;
+ NS_dbl_colon::Cdbl_colon Cdbl_colon_;// parallel-parser's parse table
+#define ssPARSE_TABLE Cdbl_colon_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_dbl_colon::PROC_TH_dbl_colon(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_dbl_colon";
+ static bool one_time(false);
+ static NS_dbl_colon::Cdbl_colon* NS_dbl_colon_Cdbl_colon_(0);// parallel-parser's fsm table
+ static Parser* NS_dbl_colon_Cdbl_colon_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_dbl_colon_Cdbl_colon_ = new NS_dbl_colon::Cdbl_colon();// parallel-parser's fsm table
+ NS_dbl_colon_Cdbl_colon_parser = new Parser(*NS_dbl_colon_Cdbl_colon_,Caller_pp);
+ }
+ proc_parser = NS_dbl_colon_Cdbl_colon_parser;
+#include "wproc_pp_core.h"
+}
+void
+Cdbl_colon::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rdbl_colon_:{
+ Rdbl_colon* sym;
+ if(re->rule_ == 0){
+ sym = new Rdbl_colon(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdbl_colon*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ sym->op();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/dbl_colontbl.cpp b/web/yacco2/compiler/grammars/dbl_colontbl.cpp
new file mode 100644
index 0000000000..0b5d1a08a5
--- /dev/null
+++ b/web/yacco2/compiler/grammars/dbl_colontbl.cpp
@@ -0,0 +1,695 @@
+/*
+ File: dbl_colontbl.cpp
+ Date and Time: Fri Jan 30 18:55:09 2015
+*/
+#include "dbl_colon.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_dbl_colon;// grammar's ns
+// first set terminals
+// raw_nul
+// raw_soh
+// raw_stx
+// raw_etx
+// raw_eot
+// raw_enq
+// raw_ack
+// raw_bel
+// raw_bs
+// raw_ht
+// raw_lf
+// raw_vt
+// raw_ff
+// raw_cr
+// raw_so
+// raw_si
+// raw_dle
+// raw_dc1
+// raw_dc2
+// raw_dc3
+// raw_dc4
+// raw_nak
+// raw_syn
+// raw_etb
+// raw_can
+// raw_em
+// raw_sub
+// raw_esc
+// raw_fs
+// raw_gs
+// raw_rs
+// raw_us
+// raw_sp
+// raw_exclam
+// raw_dbl_quote
+// raw_no_sign
+// raw_dollar_sign
+// raw_percent
+// raw_ampersign
+// raw_right_quote
+// raw_open_bracket
+// raw_close_bracket
+// raw_asteric
+// raw_plus
+// raw_comma
+// raw_minus
+// raw_period
+// raw_slash
+// raw_0
+// raw_1
+// raw_2
+// raw_3
+// raw_4
+// raw_5
+// raw_6
+// raw_7
+// raw_8
+// raw_9
+// raw_semi_colon
+// raw_less_than
+// raw_eq
+// raw_gt_than
+// raw_question_mark
+// raw_at_sign
+// raw_A
+// raw_B
+// raw_C
+// raw_D
+// raw_E
+// raw_F
+// raw_G
+// raw_H
+// raw_I
+// raw_J
+// raw_K
+// raw_L
+// raw_M
+// raw_N
+// raw_O
+// raw_P
+// raw_Q
+// raw_R
+// raw_S
+// raw_T
+// raw_U
+// raw_V
+// raw_W
+// raw_X
+// raw_Y
+// raw_Z
+// raw_open_sq_bracket
+// raw_back_slash
+// raw_close_sq_bracket
+// raw_up_arrow
+// raw_under_score
+// raw_left_quote
+// raw_a
+// raw_b
+// raw_c
+// raw_d
+// raw_e
+// raw_f
+// raw_g
+// raw_h
+// raw_i
+// raw_j
+// raw_k
+// raw_l
+// raw_m
+// raw_n
+// raw_o
+// raw_p
+// raw_q
+// raw_r
+// raw_s
+// raw_t
+// raw_u
+// raw_v
+// raw_w
+// raw_x
+// raw_y
+// raw_z
+// raw_open_brace
+// raw_vertical_line
+// raw_close_brace
+// raw_tilde
+// raw_del
+// raw_x80
+// raw_x81
+// raw_x82
+// raw_x83
+// raw_x84
+// raw_x85
+// raw_x86
+// raw_x87
+// raw_x88
+// raw_x89
+// raw_x8a
+// raw_x8b
+// raw_x8c
+// raw_x8d
+// raw_x8e
+// raw_x8f
+// raw_x90
+// raw_x91
+// raw_x92
+// raw_x93
+// raw_x94
+// raw_x95
+// raw_x96
+// raw_x97
+// raw_x98
+// raw_x99
+// raw_x9a
+// raw_x9b
+// raw_x9c
+// raw_x9d
+// raw_x9e
+// raw_x9f
+// raw_xa0
+// raw_xa1
+// raw_xa2
+// raw_xa3
+// raw_xa4
+// raw_xa5
+// raw_xa6
+// raw_xa7
+// raw_xa8
+// raw_xa9
+// raw_xaa
+// raw_xab
+// raw_xac
+// raw_xad
+// raw_xae
+// raw_xaf
+// raw_xb0
+// raw_xb1
+// raw_xb2
+// raw_xb3
+// raw_xb4
+// raw_xb5
+// raw_xb6
+// raw_xb7
+// raw_xb8
+// raw_xb9
+// raw_xba
+// raw_xbb
+// raw_xbc
+// raw_xbd
+// raw_xbe
+// raw_xbf
+// raw_xc0
+// raw_xc1
+// raw_xc2
+// raw_xc3
+// raw_xc4
+// raw_xc5
+// raw_xc6
+// raw_xc7
+// raw_xc8
+// raw_xc9
+// raw_xca
+// raw_xcb
+// raw_xcc
+// raw_xcd
+// raw_xce
+// raw_xcf
+// raw_xd0
+// raw_xd1
+// raw_xd2
+// raw_xd3
+// raw_xd4
+// raw_xd5
+// raw_xd6
+// raw_xd7
+// raw_xd8
+// raw_xd9
+// raw_xda
+// raw_xdb
+// raw_xdc
+// raw_xdd
+// raw_xde
+// raw_xdf
+// raw_xe0
+// raw_xe1
+// raw_xe2
+// raw_xe3
+// raw_xe4
+// raw_xe5
+// raw_xe6
+// raw_xe7
+// raw_xe8
+// raw_xe9
+// raw_xea
+// raw_xeb
+// raw_xec
+// raw_xed
+// raw_xee
+// raw_xef
+// raw_xf0
+// raw_xf1
+// raw_xf2
+// raw_xf3
+// raw_xf4
+// raw_xf5
+// raw_xf6
+// raw_xf7
+// raw_xf8
+// raw_xf9
+// raw_xfa
+// raw_xfb
+// raw_xfc
+// raw_xfd
+// raw_xfe
+// raw_xff
+// T_option_t
+// T_option_p
+// T_option_err
+// T_esc_seq
+// T_eol
+// T_basic_char
+// T_raw_char
+// T_comment
+// T_ws
+// T_angled_string
+// T_c_literal
+// T_c_string
+// T_xc_str
+// T_unquoted_string
+// T_file_inclusion
+// T_identifier
+// T_int_no
+// T_raw_characters
+// T_lr1_constant_symbols
+// T_error_symbols
+// T_eocode
+// T_AD
+// T_AB
+// T_parallel_la_boundary
+// T_arbitrator_code
+// T_parallel_parser
+// T_parallel_thread_function
+// T_parallel_control_monitor
+// T_fsm
+// T_fsm_id
+// T_fsm_filename
+// T_fsm_namespace
+// T_fsm_class
+// T_fsm_version
+// T_fsm_date
+// T_fsm_debug
+// T_fsm_comments
+// T_terminals
+// T_enumeration
+// T_file_name
+// T_name_space
+// T_sym_class
+// T_rules
+// T_lhs
+// T_user_declaration
+// T_user_prefix_declaration
+// T_user_suffix_declaration
+// T_constructor
+// T_destructor
+// T_op
+// T_failed
+// T_user_implementation
+// T_user_imp_tbl
+// T_user_imp_sym
+// T_constant_defs
+// T_terminals_refs
+// T_terminals_sufx
+// T_lrk_sufx
+// T_selector
+// T_NULL
+// T_2colon
+// T_block
+// T_syntax_code
+// T_fsm_class_phrase
+// T_fsm_phrase
+// T_parallel_parser_phrase
+// T_enum_phrase
+// T_terminal_def
+// table_entry
+// T_sym_tbl_report_card
+// T_terminals_phrase
+// T_error_symbols_phrase
+// T_lr1_k_phrase
+// T_rc_phrase
+// T_rule_lhs_phrase
+// T_parallel_monitor_phrase
+// rule_def
+// T_rules_phrase
+// T_subrule_def
+// T_subrules_phrase
+// T_in_stbl
+// refered_T
+// rule_in_stbl
+// refered_rule
+// T_transitive
+// T_grammar_name
+// T_thread_name
+// T_monolithic
+// T_no_of_T
+// T_list_of_native_first_set_terminals
+// T_end_list_of_native_first_set_terminals
+// T_list_of_transitive_threads
+// T_end_list_of_transitive_threads
+// T_emitfile
+// T_preamble
+// T_end_preamble
+// T_T_alphabet
+// T_end_T_alphabet
+// T_file_of_T_alphabet
+// T_attributes
+// tth_in_stbl
+// thread_attributes
+// th_in_stbl
+// kw_in_stbl
+// T_la_expr_src
+// T_eosubrule
+// T_called_thread_eosubrule
+// T_null_call_thread_eosubrule
+// T_cweb_comment
+// T_grammar_phrase
+// T_cweb_marker
+// T_lint
+// T_list_of_used_threads
+// T_end_list_of_used_threads
+// Err_nested_files_exceeded
+// Err_no_end_of_code
+// Err_no_cmd_lne_data
+// Err_no_filename
+// Err_bad_filename
+// Err_bad_fsmheader_filename
+// Err_bad_fsmcpp_filename
+// Err_bad_fsmsym_filename
+// Err_bad_fsmtbl_filename
+// Err_bad_enum_filename
+// Err_bad_errors_hdrfilename
+// Err_bad_errors_impfilename
+// Err_bad_cmd_lne_opt
+// Err_bad_int_no
+// Err_bad_int_no_range
+// Err_no_int_present
+// Err_bad_eos
+// Err_bad_esc
+// Err_comment_overrun
+// Err_bad_char
+// Err_bad_univ_seq
+// Err_improper_closing_of_rules
+// Err_no_identifier_present
+// Err_no_directive_present
+// Err_duplicate_directive
+// Err_no_syntax_code_present
+// Err_no_open_parenthesis
+// Err_no_close_parenthesis
+// Err_no_fsm_id_present
+// Err_no_fsm_id_string
+// Err_no_fsm_filename_present
+// Err_no_fsm_filename_id_present
+// Err_no_comma_present
+// Err_no_terminal_key_present
+// Err_no_fsm_namespace_present
+// Err_no_fsm_namespace_id_present
+// Err_no_fsm_class_present
+// Err_no_fsm_version_present
+// Err_no_fsm_version_string
+// Err_no_fsm_date_present
+// Err_no_fsm_date_string
+// Err_no_fsm_debug_present
+// Err_no_fsm_debug_string
+// Err_no_fsm_comments_present
+// Err_no_fsm_comments_string
+// Err_fsm_debug_string_not_true_or_false
+// Err_no_pp_thread_function_present
+// Err_no_pp_ctrl_mntor_kw_present
+// Err_no_pp_fnct_id_present
+// Err_no_pp_bndry_present
+// Err_no_pp_la_bndary_expr_present
+// Err_no_syntax_code_end_present
+// Err_no_pp_code_present
+// Err_no_pp_code_stc_present
+// Err_not_arbitration_code_kw
+// Err_no_open_brace
+// Err_no_close_brace
+// Err_no_constant_defs_present
+// Err_no_filename_present
+// Err_no_filename_id_present
+// Err_no_namespace_present
+// Err_no_namespace_id_present
+// Err_no_kdefs_code_present
+// Err_no_kdefs_kw_present
+// Err_no_tdef_code_present
+// Err_no_sym_defs_present
+// Err_dup_entry_in_alphabet
+// Err_already_defined_AB
+// Err_already_defined_AD
+// Err_improper_directive
+// Err_no_sym_class_present
+// Err_no_sym_class_id_present
+// Err_zero_len_sym
+// Err_sym_tbl_full
+// Err_sym_tbl_char_pool_full
+// Err_dup_entry_in_sym_table
+// Err_subscript_out_of_range
+// Err_sym_tbl_nested_scope_stk_overflow
+// Err_sym_tbl_nested_scope_stk_underflow
+// Err_sym_tbl_context_buf_overflow
+// Err_report_card_ptr_0
+// Err_cannot_define_term_after_sufx_dir
+// Err_dup_sufx_directive
+// Err_terminals_refs_def_after_terminals
+// Err_terminals_refs_dup_def
+// Err_no_rule_name_present
+// Err_no_sub_rule_present
+// Err_subrule_use_undefined_T
+// Err_stbl_entry_unknown
+// Err_subrule_overrun
+// Err_stble_has_entry_but_not_a_rule
+// Err_file_of_T_alphabet_kw_not_present
+// Err_emitfile_kw_not_present
+// Err_preamble_kw_not_present
+// Err_preamble_srce_code_not_present
+// Err_end_preamble_kw_not_present
+// Err_cmd_line_chaffe
+// Err_T_alphabet_kw_not_present
+// Err_T_alphabet_file_not_present
+// Err_end_T_alphabet_kw_not_present
+// Err_no_terminals_in_T_alphabet_list
+// Err_rotten_chr_in_T_alphabet
+// Err_transitive_kw_not_present
+// Err_grammar_name_kw_not_present
+// Err_namespace_kw_not_present
+// Err_filename_kw_not_present
+// Err_threadname_kw_not_present
+// Err_monolithic_kw_not_present
+// Err_no_of_T_kw_not_present
+// Err_list_of_terminals_kw_not_present
+// Err_no_list_of_trans_threads_kw
+// Err_no_terminals_present_in_T_alphabet
+// Err_transitive_value_bad
+// Err_monolithic_value_bad
+// Err_grammar_name_value_not_present
+// Err_namespace_value_not_present
+// Err_threadname_value_not_present
+// Err_filename_value_not_present
+// Err_no_of_T_value_not_present
+// Err_no_of_terminals_not_present
+// Err_end_list_native_T_kw_not_present
+// Err_end_list_of_transitive_threads_kw_not_present
+// Err_no_of_native_Ts_in_list_not_equal
+// Err_no_of_threads_in_list_not_equal
+// Err_thread_refed_but_not_defined
+// Err_bad_T_in_list
+// Err_bad_th_in_list
+// Err_already_defined_in_fsc_file
+// Err_bad_thread_subscript
+// Err_not_a_keyword
+// Err_no_of_threads_not_present
+// Err_bad_T_alphabet
+// Err_fsc_file_does_not_exist
+// Err_filename_file_does_not_exist
+// Err_T_alphabet_file_does_not_exist
+// Err_emitfile_file_does_not_exist
+// Err_emitfile_file_not_present
+// Err_fsc_cntl_file_not_present
+// Err_file_of_T_alphabet_not_present
+// Err_epsilon_pass_thru
+// Err_epsilon_pass_thru_no_Ts
+// Err_rule_not_in_stbl
+// Err_T_not_in_stbl
+// Err_bad_directive
+// Err_bad_term_in_la_expr
+// Err_empty_set_removal_in_la_expr
+// Err_bad_operator_in_la_expr
+// Err_not_a_lhs_kw
+// Err_pp_la_boundary_attribute_not_fnd
+// Err_already_processed_fsm_phase
+// Err_already_processed_pp_phase
+// Err_already_processed_T_enum_phase
+// Err_already_processed_error_phase
+// Err_already_processed_rc_phase
+// Err_already_processed_lrk_phase
+// Err_already_processed_T_phase
+// Err_already_processed_rule_phase
+// Err_not_T_for_rtned_token_from_th
+// Err_not_id_for_ns_in_th_stmt
+// Err_not_id_for_th_name_in_th_stmt
+// Err_bad_th_qualifier
+// Err_not_dbl_colon_in_th_stmt
+// Err_not_T_or_R_in_subrule_expr
+// Err_not_T_or_R_or_eos_in_subrule_expr
+// Err_not_eos_in_subrule_expr
+// Err_invalid_logical_name
+// Err_invalid_logical_value
+// Err_duplicate_logical_name
+// Err_missing_terminals_refs_kw
+// Err_missing_terminals_sufx_kw
+// Err_not_a_terminal_definition
+// Err_missing_lrk_sufx_kw
+// ERR_sick_grammar
+// ERR_no_fsm_phrase
+// ERR_no_T_enum_phrase
+// ERR_no_lrk_phrase
+// ERR_no_rc_phrase
+// ERR_no_errors_phrase
+// ERR_no_terminals_phrase
+// ERR_no_rules_phrase
+// Err_used_rule_but_undefined
+// Err_rule_already_defined
+// Err_la_expr_calc_empty_set
+// Err_no_close_brace_ending_rules_defs
+// Err_use_of_T_outside_Rules_construct
+// Err_not_kw_defining_grammar_construct
+// Err_use_of_N_outside_Rules_construct
+// Err_misplaced_or_misspelt_Rule_or_T
+// Err_not_a_Rule
+// Err_empty_file
+// Err_not_lhs_pcnrl_mntr
+// LR1_eog
+yacco2::UCHAR LA1_Cdbl_colon[] ={
+72
+,0,2
+,1,255
+,2,255
+,3,255
+,4,255
+,5,255
+,6,255
+,7,255
+,8,251
+,9,255
+,10,255
+,11,255
+,12,255
+,13,255
+,14,255
+,15,255
+,16,255
+,17,255
+,18,255
+,19,255
+,20,255
+,21,255
+,22,255
+,23,255
+,24,255
+,25,255
+,26,255
+,27,255
+,28,255
+,29,255
+,30,255
+,31,255
+,32,255
+,33,255
+,34,255
+,35,255
+,36,255
+,37,255
+,38,255
+,39,255
+,40,255
+,41,255
+,42,255
+,43,255
+,44,255
+,45,255
+,46,255
+,47,255
+,48,255
+,49,255
+,50,255
+,51,255
+,52,255
+,53,255
+,54,255
+,55,255
+,56,255
+,57,255
+,58,255
+,59,255
+,60,255
+,61,255
+,62,255
+,63,255
+,64,255
+,65,255
+,66,255
+,67,255
+,68,255
+,69,255
+,70,255
+,71,1
+};
+extern yacco2::State S1_Cdbl_colon;
+extern yacco2::State S2_Cdbl_colon;
+extern yacco2::State S3_Cdbl_colon;
+struct S1std_Cdbl_colon{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S1std_Cdbl_colon S1st_Cdbl_colon = {
+ 2
+ ,
+ {// start of table
+ {66,(State*)&S2_Cdbl_colon} // shift sym: raw_colon
+ ,{569,(State*)&S1_Cdbl_colon} // accept sym: Rdbl_colon
+ }// end of shift table
+};
+yacco2::State S1_Cdbl_colon = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Cdbl_colon,0,0,0,0};
+struct S2std_Cdbl_colon{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S2std_Cdbl_colon S2st_Cdbl_colon = {
+ 1
+ ,
+ {// start of table
+ {66,(State*)&S3_Cdbl_colon} // shift sym: raw_colon
+ }// end of shift table
+};
+yacco2::State S2_Cdbl_colon = //State's vectored into symbol: ":"
+{2
+,0,0,0,0,(Shift_tbl*)&S2st_Cdbl_colon,0,0,0,0};
+struct S3rtd_Cdbl_colon{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Cdbl_colon S3rt_Cdbl_colon = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cdbl_colon,Cdbl_colon::rhs1_Rdbl_colon_}
+ }// end of reduce table
+};
+yacco2::State S3_Cdbl_colon = //State's vectored into symbol: ":"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_Cdbl_colon,0,0,0};
diff --git a/web/yacco2/compiler/grammars/enumerate_T_alphabet.cpp b/web/yacco2/compiler/grammars/enumerate_T_alphabet.cpp
new file mode 100644
index 0000000000..e1cf89d517
--- /dev/null
+++ b/web/yacco2/compiler/grammars/enumerate_T_alphabet.cpp
@@ -0,0 +1,241 @@
+/*
+ File: enumerate_T_alphabet.cpp
+ Date and Time: Fri Jan 30 18:55:09 2015
+*/
+#include "enumerate_T_alphabet.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_enumerate_T_alphabet;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 5;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[4] = new Per_rule_s_reuse_table();
+}
+ Cenumerate_T_alphabet::
+ Cenumerate_T_alphabet()
+ :yacco2::CAbs_fsm
+ ("enumerate_T_alphabet.lex"
+ ,"1.0"
+ ,"9 Aug. 2005"
+ ,false
+ ,"Enumerate grammar's terminal symbols: \na 0 and a 1, ... the oracle for parsing lookups."
+ ,"Fri Jan 30 18:55:09 2015 "
+ ,S1_Cenumerate_T_alphabet){
+
+ START_OF_RULES_ENUM = 0;
+ enum_phrase_ = 0;
+
+ }
+
+Cenumerate_T_alphabet::~Cenumerate_T_alphabet(){
+
+ for(int x = 0;x < 5;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cenumerate_T_alphabet::failed(){
+ return false;
+ }
+ void Cenumerate_T_alphabet::op(){
+ START_OF_RULES_ENUM = 0;
+ CAbs_lr1_sym* gps = O2_FSM_PHASE;
+ CAbs_lr1_sym* esym(0);
+ CAbs_lr1_sym* ph = O2_T_ENUM_PHASE;
+
+ if(ph == 0){
+ esym = new ERR_no_T_enum_phrase;
+ goto error_fnd;
+ }
+ gps = ph;
+ ph = O2_ERROR_PHASE;
+ if(ph == 0){
+ esym = new ERR_no_errors_phrase;
+ goto error_fnd;
+ }
+ gps = ph;
+ ph = O2_RC_PHASE;
+ if(ph == 0){
+ esym = new ERR_no_rc_phrase;
+ goto error_fnd;
+ }
+ gps = ph;
+ ph = O2_LRK_PHASE;
+ if(ph == 0){
+ esym = new ERR_no_lrk_phrase;
+ goto error_fnd;
+ }
+ gps = ph;
+ ph = O2_T_PHASE;
+ if(ph == 0){
+ esym = new ERR_no_terminals_phrase;
+ goto error_fnd;
+ }
+ all_phases_ok:
+ enum_phrase_ = O2_T_ENUM_PHASE;
+ return;
+ error_fnd:
+ parser__->add_token_to_error_queue(*esym);
+ if(gps != 0) // anchor error against previously good phase
+ esym->set_rc(*gps,__FILE__,__LINE__);
+ parser__->set_abort_parse(true);
+ return;
+
+}
+int Cenumerate_T_alphabet::rhs_to_rules_mapping_[6] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,2 // subrule 3 for rule 3
+ ,3 // subrule 4 for rule 4
+ ,4 // subrule 5 for rule 5
+};
+Renumerate_T_alphabet::Renumerate_T_alphabet(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Renumerate_T_alphabet",0,Cenumerate_T_alphabet::R_Renumerate_T_alphabet_,P,false,false){
+}
+
+void Renumerate_T_alphabet::sr1(){
+
+ Cenumerate_T_alphabet* fsm = (Cenumerate_T_alphabet*)rule_info__.parser__->fsm_tbl__;
+ fsm->enum_phrase_->total_enumerate(START_OF_RULES_ENUM);
+ lrclog << "Total symbols: " << START_OF_RULES_ENUM << std::endl;
+
+}
+
+Renum_lrk::Renum_lrk(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Renum_lrk",0,Cenumerate_T_alphabet::R_Renum_lrk_,P,false,false){
+}
+
+void Renum_lrk::sr1(){
+
+ Cenumerate_T_alphabet* fsm = (Cenumerate_T_alphabet*)rule_info__.parser__->fsm_tbl__;
+ T_lr1_k_phrase* lr_ph = O2_LRK_PHASE;
+ std::vector<T_terminal_def*>* order = lr_ph->crt_order();
+ std::vector<T_terminal_def*>::iterator i = order->begin();
+ std::vector<T_terminal_def*>::iterator ie = order->end();
+ for(fsm->enum_phrase_->start_lrk_enumerate(START_OF_RULES_ENUM);
+ i!=ie;++i,++START_OF_RULES_ENUM){
+ T_terminal_def* tdef = *i;
+ tdef->enum_id(START_OF_RULES_ENUM);
+ }
+ fsm->enum_phrase_->stop_lrk_enumerate(START_OF_RULES_ENUM-1);
+ fsm->enum_phrase_->
+ total_lrk_enumerate
+ (fsm->enum_phrase_->stop_lrk_enumerate()
+ - fsm->enum_phrase_->start_lrk_enumerate() + 1);
+ lrclog << "Total lrk symbols: "
+ << fsm->enum_phrase_->total_lrk_enumerate() << std::endl;
+ lrclog << "Start lrk symbol: "
+ << fsm->enum_phrase_->start_lrk_enumerate()
+ << " Stop lrk symbol: "
+ << fsm->enum_phrase_->stop_lrk_enumerate() << std::endl;
+
+}
+
+Renum_rc::Renum_rc(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Renum_rc",0,Cenumerate_T_alphabet::R_Renum_rc_,P,false,false){
+}
+
+void Renum_rc::sr1(){
+
+ Cenumerate_T_alphabet* fsm =
+ (Cenumerate_T_alphabet*)rule_info__.parser__->fsm_tbl__;
+ T_rc_phrase* lr_ph = O2_RC_PHASE;
+
+ std::vector<T_terminal_def*>* order = lr_ph->crt_order();
+ std::vector<T_terminal_def*>::iterator i = order->begin();
+ std::vector<T_terminal_def*>::iterator ie = order->end();
+ for(fsm->enum_phrase_->start_rc_enumerate
+ (START_OF_RULES_ENUM);i!=ie;++i,++START_OF_RULES_ENUM){
+ T_terminal_def* tdef = *i;
+ tdef->enum_id(START_OF_RULES_ENUM);
+ }
+ fsm->enum_phrase_->stop_rc_enumerate(START_OF_RULES_ENUM-1);
+ fsm->enum_phrase_->
+ total_rc_enumerate
+ (fsm->enum_phrase_->stop_rc_enumerate()
+ - fsm->enum_phrase_->start_rc_enumerate() + 1);
+ lrclog << "Total rc symbols: "
+ << fsm->enum_phrase_->total_rc_enumerate() << std::endl;
+ lrclog << "Start rc symbol: "
+ << fsm->enum_phrase_->start_rc_enumerate()
+ << " Stop rc symbol: "
+ << fsm->enum_phrase_->stop_rc_enumerate() << std::endl;
+
+}
+
+Renum_T::Renum_T(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Renum_T",0,Cenumerate_T_alphabet::R_Renum_T_,P,false,false){
+}
+
+void Renum_T::sr1(){
+
+ Cenumerate_T_alphabet* fsm = (Cenumerate_T_alphabet*)rule_info__.parser__->fsm_tbl__;
+ T_terminals_phrase* lr_ph = O2_T_PHASE;
+
+ std::vector<T_terminal_def*>* order = lr_ph->crt_order();
+ std::vector<T_terminal_def*>::iterator i = order->begin();
+ std::vector<T_terminal_def*>::iterator ie = order->end();
+ for(fsm->enum_phrase_->start_T_enumerate(START_OF_RULES_ENUM);
+ i!=ie;++i,++START_OF_RULES_ENUM){
+ T_terminal_def* tdef = *i;
+ tdef->enum_id(START_OF_RULES_ENUM);
+ }
+ fsm->enum_phrase_->stop_T_enumerate(START_OF_RULES_ENUM-1);
+ fsm->enum_phrase_->
+ total_T_enumerate
+ (fsm->enum_phrase_->stop_T_enumerate()
+ - fsm->enum_phrase_->start_T_enumerate() + 1);
+ lrclog << "Total T symbols: "
+ << fsm->enum_phrase_->total_T_enumerate() << std::endl;
+ lrclog << "Start T symbol: "
+ << fsm->enum_phrase_->start_T_enumerate()
+ << " Stop T symbol: "
+ << fsm->enum_phrase_->stop_T_enumerate() << std::endl;
+
+}
+
+Renum_err::Renum_err(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Renum_err",0,Cenumerate_T_alphabet::R_Renum_err_,P,false,false){
+}
+
+void Renum_err::sr1(){
+
+ Cenumerate_T_alphabet* fsm = (Cenumerate_T_alphabet*)rule_info__.parser__->fsm_tbl__;
+ T_error_symbols_phrase* lr_ph = O2_ERROR_PHASE;
+
+ std::vector<T_terminal_def*>* order = lr_ph->crt_order();
+ std::vector<T_terminal_def*>::iterator i = order->begin();
+ std::vector<T_terminal_def*>::iterator ie = order->end();
+ for(fsm->enum_phrase_->start_err_enumerate(START_OF_RULES_ENUM);
+ i!=ie;++i,++START_OF_RULES_ENUM){
+ T_terminal_def* tdef = *i;
+ tdef->enum_id(START_OF_RULES_ENUM);
+ }
+ fsm->enum_phrase_->stop_err_enumerate(START_OF_RULES_ENUM-1);
+ fsm->enum_phrase_->
+ total_err_enumerate
+ (fsm->enum_phrase_->stop_err_enumerate()
+ - fsm->enum_phrase_->start_err_enumerate() + 1);
+ lrclog << "Total error symbols: "
+ << fsm->enum_phrase_->total_err_enumerate() << std::endl;
+ lrclog << "Start error symbol: "
+ << fsm->enum_phrase_->start_err_enumerate()
+ << " Stop error symbol: "
+ << fsm->enum_phrase_->stop_err_enumerate() << std::endl;
+
+}
+
diff --git a/web/yacco2/compiler/grammars/enumerate_T_alphabet.fsc b/web/yacco2/compiler/grammars/enumerate_T_alphabet.fsc
new file mode 100644
index 0000000000..427ab2dd8c
--- /dev/null
+++ b/web/yacco2/compiler/grammars/enumerate_T_alphabet.fsc
@@ -0,0 +1,19 @@
+/*
+ File: enumerate_T_alphabet.fsc
+ Date and Time: Fri Jan 30 18:55:09 2015
+*/
+transitive n
+grammar-name "enumerate_T_alphabet"
+name-space "NS_enumerate_T_alphabet"
+thread-name "Cenumerate_T_alphabet"
+monolithic y
+file-name "enumerate_T_alphabet.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 0
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"Enumerate grammar's terminal symbols: \na 0 and a 1, ... the oracle for parsing lookups."
diff --git a/web/yacco2/compiler/grammars/enumerate_T_alphabet.h b/web/yacco2/compiler/grammars/enumerate_T_alphabet.h
new file mode 100644
index 0000000000..ba1bd4aa4c
--- /dev/null
+++ b/web/yacco2/compiler/grammars/enumerate_T_alphabet.h
@@ -0,0 +1,93 @@
+/*
+ File: enumerate_T_alphabet.h
+ Date and Time: Fri Jan 30 18:55:09 2015
+*/
+#ifndef __enumerate_T_alphabet_h__
+#define __enumerate_T_alphabet_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "o2_externs.h"
+
+// monolithic grammar: no thread
+extern yacco2::State S1_Cenumerate_T_alphabet;
+namespace NS_enumerate_T_alphabet {
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[5];
+};
+class Cenumerate_T_alphabet: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Renumerate_T_alphabet_ = 569//start_of_rule_list + 0
+ ,rhs1_Renumerate_T_alphabet_ = 1
+ ,R_Renum_lrk_ = 570//start_of_rule_list + 2
+ ,rhs1_Renum_lrk_ = 2
+ ,R_Renum_rc_ = 571//start_of_rule_list + 4
+ ,rhs1_Renum_rc_ = 3
+ ,R_Renum_T_ = 572//start_of_rule_list + 6
+ ,rhs1_Renum_T_ = 4
+ ,R_Renum_err_ = 573//start_of_rule_list + 8
+ ,rhs1_Renum_err_ = 5
+ };
+ //no of la sets = 1
+ //no of states = 5
+ Cenumerate_T_alphabet();
+ ~Cenumerate_T_alphabet();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[6];
+
+ public:
+ NS_yacco2_terminals::T_enum_phrase* enum_phrase_;
+
+ };
+struct Renumerate_T_alphabet;
+struct Renum_lrk;
+struct Renum_rc;
+struct Renum_T;
+struct Renum_err;
+struct Renumerate_T_alphabet:public yacco2::CAbs_lr1_sym {
+ Renumerate_T_alphabet(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Renum_lrk:public yacco2::CAbs_lr1_sym {
+ Renum_lrk(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Renum_rc:public yacco2::CAbs_lr1_sym {
+ Renum_rc(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Renum_T:public yacco2::CAbs_lr1_sym {
+ Renum_T(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Renum_err:public yacco2::CAbs_lr1_sym {
+ Renum_err(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/enumerate_T_alphabet.lex b/web/yacco2/compiler/grammars/enumerate_T_alphabet.lex
new file mode 100644
index 0000000000..128ede118b
--- /dev/null
+++ b/web/yacco2/compiler/grammars/enumerate_T_alphabet.lex
@@ -0,0 +1,263 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: enumerate_T_alphabet.lex
+Dates: 9 Aug. 2005
+Purpose: enumerate terminal symbols.
+How: Each terminal phase contains its mapped symbols and create order list.
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |enumerate_T_alphabet| grammar.\fbreak
+Enumerate the Terminal symbols starting at
+zero and going positively outward.
+When the enumeration is finished,
+the global |START_OF_RULES_ENUM| becomes the starting enumerate of the
+grammar's rules.
+This is the cut off boundary for shift / reduce LR1 compatibilty.
+Why?
+As a state is composed of shift vectors using their
+enumerates, only terminals up to but not including
+the start rule's enumerate are needed.
+The exception to this is the ``eosubrule'' terminal that
+represents the reducing subrule situation is not included in the shift set.
+So it is easy to iterate thru the state's vectors
+in building up the shift set for the lr1 compatibility check: as the
+state's vector map is sorted by enumerate value, just
+stop when the current vector's enumerate is part of
+the rule's domain.
+
+In this grammar, each rule is a logic sequencer fetching
+its phase's batch of symbols
+for the baptism.
+This grammar demonstrates zero token consumption.\fbreak
+\fbreak
+How:\fbreak
+Each terminal phase contains its mapped symbols and create order list.
+Global Phase table:\fbreak
+|O2_xxx| are the individual phases.\fbreak
+Grammar Phases:\fbreak
+\ptindent{0 - O2\_FSM\_PHASE : T\_fsm\_phrase}
+\ptindent{1 - O2\_PP\_PHASE : T\_parallel\_parser\_phrase}
+\ptindent{2 - O2\_T\_ENUM\_PHASE : T\_enum\_phrase}
+\ptindent{3 - O2\_ERROR\_PHASE : T\_error\_symbols\_phrase}
+\ptindent{4 - O2\_RC\_PHASE : T\_rc\_phrase}
+\ptindent{5 - O2\_LRK\_PHASE : T\_lr1\_k\_phrase}
+\ptindent{6 - O2\_T\_PHASE : T\_terminals\_phrase}
+\ptindent{7 - O2\_RULES\_PHASE : T\_rules\_phrase}
+Within each rule is the symbol iteration.\fbreak
+The enumeration starts with the |lr k|
+symbols followed by
+raw characters, Terminals, and Errors.
+Why is zero the start point?
+Glad u asked as i use modulo 32 on the terminal enumerate
+to arrive at its set number and bit position within the set.
+See set discussion in \O2's library documentation as to the
+reasons.\fbreak
+Caveat:\fbreak
+As i used a keyword descent trigger parse phases, i must
+check here if all my phrases are present before the enumeration
+can take place.
+Why here? This grammar frontends the triggered rule phase parse
+due to its related grammars using symbol enumeration as edit checks.
+So dot the Ts and Is before the ruling!
+@/
+fsm
+(fsm-id "enumerate_T_alphabet.lex"
+,fsm-filename enumerate_T_alphabet
+,fsm-namespace NS_enumerate_T_alphabet
+,fsm-class Cenumerate_T_alphabet{
+ user-prefix-declaration
+#include "o2_externs.h"
+ ***
+ user-declaration
+ public:
+ NS_yacco2_terminals::T_enum_phrase* enum_phrase_;
+ ***
+ op
+ START_OF_RULES_ENUM = 0;
+ CAbs_lr1_sym* gps = O2_FSM_PHASE;
+ CAbs_lr1_sym* esym(0);
+ CAbs_lr1_sym* ph = O2_T_ENUM_PHASE;
+
+ if(ph == 0){
+ esym = new ERR_no_T_enum_phrase;
+ goto error_fnd;
+ }
+ gps = ph;
+ ph = O2_ERROR_PHASE;
+ if(ph == 0){
+ esym = new ERR_no_errors_phrase;
+ goto error_fnd;
+ }
+ gps = ph;
+ ph = O2_RC_PHASE;
+ if(ph == 0){
+ esym = new ERR_no_rc_phrase;
+ goto error_fnd;
+ }
+ gps = ph;
+ ph = O2_LRK_PHASE;
+ if(ph == 0){
+ esym = new ERR_no_lrk_phrase;
+ goto error_fnd;
+ }
+ gps = ph;
+ ph = O2_T_PHASE;
+ if(ph == 0){
+ esym = new ERR_no_terminals_phrase;
+ goto error_fnd;
+ }
+ all_phases_ok:
+ enum_phrase_ = O2_T_ENUM_PHASE;
+ return;
+ error_fnd:
+ parser__->add_token_to_error_queue(*esym);
+ if(gps != 0) // anchor error against previously good phase
+ esym->set_rc(*gps,__FILE__,__LINE__);
+ parser__->set_abort_parse(true);
+ return;
+ ***
+ constructor
+ START_OF_RULES_ENUM = 0;
+ enum_phrase_ = 0;
+ ***
+}
+,fsm-version "1.0",fsm-date "9 Aug. 2005",fsm-debug "false"
+,fsm-comments "Enumerate grammar's terminal symbols: \na 0 and a 1, ... the oracle for parsing lookups.")
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Renumerate_T_alphabet (){
+ -> Renum_lrk Renum_rc Renum_T Renum_err{
+/@
+ As START\_OF\_RULES\_ENUM is the next enumerate value to use
+ and the enumeration starts from 0,
+ it is more efficient to use this value instead of
+ suming all the totals per terminal type: lrk, rc, err, T
+ now if i was paranoid, maybe the comparison of the calculated against
+ the traversal value would be asserted
+@/
+ op
+ Cenumerate_T_alphabet* fsm = (Cenumerate_T_alphabet*)rule_info__.parser__->fsm_tbl__;
+ fsm->enum_phrase_->total_enumerate(START_OF_RULES_ENUM);
+ lrclog << "Total symbols: " << START_OF_RULES_ENUM << std::endl;
+ ***
+ }
+}
+
+Renum_lrk (){
+ -> {
+ op
+ Cenumerate_T_alphabet* fsm = (Cenumerate_T_alphabet*)rule_info__.parser__->fsm_tbl__;
+ T_lr1_k_phrase* lr_ph = O2_LRK_PHASE;
+ std::vector<T_terminal_def*>* order = lr_ph->crt_order();
+ std::vector<T_terminal_def*>::iterator i = order->begin();
+ std::vector<T_terminal_def*>::iterator ie = order->end();
+ for(fsm->enum_phrase_->start_lrk_enumerate(START_OF_RULES_ENUM);
+ i!=ie;++i,++START_OF_RULES_ENUM){
+ T_terminal_def* tdef = *i;
+ tdef->enum_id(START_OF_RULES_ENUM);
+ }
+ fsm->enum_phrase_->stop_lrk_enumerate(START_OF_RULES_ENUM-1);
+ fsm->enum_phrase_->
+ total_lrk_enumerate
+ (fsm->enum_phrase_->stop_lrk_enumerate()
+ - fsm->enum_phrase_->start_lrk_enumerate() + 1);
+ lrclog << "Total lrk symbols: "
+ << fsm->enum_phrase_->total_lrk_enumerate() << std::endl;
+ lrclog << "Start lrk symbol: "
+ << fsm->enum_phrase_->start_lrk_enumerate()
+ << " Stop lrk symbol: "
+ << fsm->enum_phrase_->stop_lrk_enumerate() << std::endl;
+ ***
+ }
+}
+Renum_rc (){
+ -> {
+ op
+ Cenumerate_T_alphabet* fsm =
+ (Cenumerate_T_alphabet*)rule_info__.parser__->fsm_tbl__;
+ T_rc_phrase* lr_ph = O2_RC_PHASE;
+
+ std::vector<T_terminal_def*>* order = lr_ph->crt_order();
+ std::vector<T_terminal_def*>::iterator i = order->begin();
+ std::vector<T_terminal_def*>::iterator ie = order->end();
+ for(fsm->enum_phrase_->start_rc_enumerate
+ (START_OF_RULES_ENUM);i!=ie;++i,++START_OF_RULES_ENUM){
+ T_terminal_def* tdef = *i;
+ tdef->enum_id(START_OF_RULES_ENUM);
+ }
+ fsm->enum_phrase_->stop_rc_enumerate(START_OF_RULES_ENUM-1);
+ fsm->enum_phrase_->
+ total_rc_enumerate
+ (fsm->enum_phrase_->stop_rc_enumerate()
+ - fsm->enum_phrase_->start_rc_enumerate() + 1);
+ lrclog << "Total rc symbols: "
+ << fsm->enum_phrase_->total_rc_enumerate() << std::endl;
+ lrclog << "Start rc symbol: "
+ << fsm->enum_phrase_->start_rc_enumerate()
+ << " Stop rc symbol: "
+ << fsm->enum_phrase_->stop_rc_enumerate() << std::endl;
+ ***
+ }
+}
+Renum_T (){
+ -> {
+ op
+ Cenumerate_T_alphabet* fsm = (Cenumerate_T_alphabet*)rule_info__.parser__->fsm_tbl__;
+ T_terminals_phrase* lr_ph = O2_T_PHASE;
+
+ std::vector<T_terminal_def*>* order = lr_ph->crt_order();
+ std::vector<T_terminal_def*>::iterator i = order->begin();
+ std::vector<T_terminal_def*>::iterator ie = order->end();
+ for(fsm->enum_phrase_->start_T_enumerate(START_OF_RULES_ENUM);
+ i!=ie;++i,++START_OF_RULES_ENUM){
+ T_terminal_def* tdef = *i;
+ tdef->enum_id(START_OF_RULES_ENUM);
+ }
+ fsm->enum_phrase_->stop_T_enumerate(START_OF_RULES_ENUM-1);
+ fsm->enum_phrase_->
+ total_T_enumerate
+ (fsm->enum_phrase_->stop_T_enumerate()
+ - fsm->enum_phrase_->start_T_enumerate() + 1);
+ lrclog << "Total T symbols: "
+ << fsm->enum_phrase_->total_T_enumerate() << std::endl;
+ lrclog << "Start T symbol: "
+ << fsm->enum_phrase_->start_T_enumerate()
+ << " Stop T symbol: "
+ << fsm->enum_phrase_->stop_T_enumerate() << std::endl;
+ ***
+ }
+}
+Renum_err (){
+ -> {
+ op
+ Cenumerate_T_alphabet* fsm = (Cenumerate_T_alphabet*)rule_info__.parser__->fsm_tbl__;
+ T_error_symbols_phrase* lr_ph = O2_ERROR_PHASE;
+
+ std::vector<T_terminal_def*>* order = lr_ph->crt_order();
+ std::vector<T_terminal_def*>::iterator i = order->begin();
+ std::vector<T_terminal_def*>::iterator ie = order->end();
+ for(fsm->enum_phrase_->start_err_enumerate(START_OF_RULES_ENUM);
+ i!=ie;++i,++START_OF_RULES_ENUM){
+ T_terminal_def* tdef = *i;
+ tdef->enum_id(START_OF_RULES_ENUM);
+ }
+ fsm->enum_phrase_->stop_err_enumerate(START_OF_RULES_ENUM-1);
+ fsm->enum_phrase_->
+ total_err_enumerate
+ (fsm->enum_phrase_->stop_err_enumerate()
+ - fsm->enum_phrase_->start_err_enumerate() + 1);
+ lrclog << "Total error symbols: "
+ << fsm->enum_phrase_->total_err_enumerate() << std::endl;
+ lrclog << "Start error symbol: "
+ << fsm->enum_phrase_->start_err_enumerate()
+ << " Stop error symbol: "
+ << fsm->enum_phrase_->stop_err_enumerate() << std::endl;
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/enumerate_T_alphabetsym.cpp b/web/yacco2/compiler/grammars/enumerate_T_alphabetsym.cpp
new file mode 100644
index 0000000000..8ddef20f45
--- /dev/null
+++ b/web/yacco2/compiler/grammars/enumerate_T_alphabetsym.cpp
@@ -0,0 +1,102 @@
+/*
+ File: enumerate_T_alphabetsym.cpp
+ Date and Time: Fri Jan 30 18:55:09 2015
+*/
+#include "enumerate_T_alphabet.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_enumerate_T_alphabet;// grammar's ns
+// first set terminals
+// monolithic grammar --- no thread
+void
+Cenumerate_T_alphabet::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Renumerate_T_alphabet_:{
+ Renumerate_T_alphabet* sym;
+ if(re->rule_ == 0){
+ sym = new Renumerate_T_alphabet(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Renumerate_T_alphabet*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 4;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Renum_lrk_:{
+ Renum_lrk* sym;
+ if(re->rule_ == 0){
+ sym = new Renum_lrk(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Renum_lrk*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Renum_rc_:{
+ Renum_rc* sym;
+ if(re->rule_ == 0){
+ sym = new Renum_rc(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Renum_rc*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Renum_T_:{
+ Renum_T* sym;
+ if(re->rule_ == 0){
+ sym = new Renum_T(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Renum_T*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Renum_err_:{
+ Renum_err* sym;
+ if(re->rule_ == 0){
+ sym = new Renum_err(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Renum_err*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ sym->sr1();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/enumerate_T_alphabettbl.cpp b/web/yacco2/compiler/grammars/enumerate_T_alphabettbl.cpp
new file mode 100644
index 0000000000..7b471371f5
--- /dev/null
+++ b/web/yacco2/compiler/grammars/enumerate_T_alphabettbl.cpp
@@ -0,0 +1,138 @@
+/*
+ File: enumerate_T_alphabettbl.cpp
+ Date and Time: Fri Jan 30 18:55:09 2015
+*/
+#include "enumerate_T_alphabet.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_enumerate_T_alphabet;// grammar's ns
+// first set terminals
+// LR1_eolr
+yacco2::UCHAR LA1_Cenumerate_T_alphabet[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Cenumerate_T_alphabet;
+extern yacco2::State S2_Cenumerate_T_alphabet;
+extern yacco2::State S3_Cenumerate_T_alphabet;
+extern yacco2::State S4_Cenumerate_T_alphabet;
+extern yacco2::State S5_Cenumerate_T_alphabet;
+struct S1std_Cenumerate_T_alphabet{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S1std_Cenumerate_T_alphabet S1st_Cenumerate_T_alphabet = {
+ 2
+ ,
+ {// start of table
+ {569,(State*)&S1_Cenumerate_T_alphabet} // accept sym: Renumerate_T_alphabet
+ ,{570,(State*)&S2_Cenumerate_T_alphabet} // shift sym: Renum_lrk
+ }// end of shift table
+};
+struct S1rtd_Cenumerate_T_alphabet{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S1rtd_Cenumerate_T_alphabet S1rt_Cenumerate_T_alphabet = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cenumerate_T_alphabet,Cenumerate_T_alphabet::rhs1_Renum_lrk_}
+ }// end of reduce table
+};
+yacco2::State S1_Cenumerate_T_alphabet = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Cenumerate_T_alphabet,(Reduce_tbl*)&S1rt_Cenumerate_T_alphabet,0,0,0};
+struct S2std_Cenumerate_T_alphabet{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S2std_Cenumerate_T_alphabet S2st_Cenumerate_T_alphabet = {
+ 1
+ ,
+ {// start of table
+ {571,(State*)&S3_Cenumerate_T_alphabet} // shift sym: Renum_rc
+ }// end of shift table
+};
+struct S2rtd_Cenumerate_T_alphabet{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Cenumerate_T_alphabet S2rt_Cenumerate_T_alphabet = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cenumerate_T_alphabet,Cenumerate_T_alphabet::rhs1_Renum_rc_}
+ }// end of reduce table
+};
+yacco2::State S2_Cenumerate_T_alphabet = //State's vectored into symbol: "Renum_lrk"
+{2
+,0,0,0,0,(Shift_tbl*)&S2st_Cenumerate_T_alphabet,(Reduce_tbl*)&S2rt_Cenumerate_T_alphabet,0,0,0};
+struct S3std_Cenumerate_T_alphabet{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S3std_Cenumerate_T_alphabet S3st_Cenumerate_T_alphabet = {
+ 1
+ ,
+ {// start of table
+ {572,(State*)&S4_Cenumerate_T_alphabet} // shift sym: Renum_T
+ }// end of shift table
+};
+struct S3rtd_Cenumerate_T_alphabet{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Cenumerate_T_alphabet S3rt_Cenumerate_T_alphabet = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cenumerate_T_alphabet,Cenumerate_T_alphabet::rhs1_Renum_T_}
+ }// end of reduce table
+};
+yacco2::State S3_Cenumerate_T_alphabet = //State's vectored into symbol: "Renum_rc"
+{3
+,0,0,0,0,(Shift_tbl*)&S3st_Cenumerate_T_alphabet,(Reduce_tbl*)&S3rt_Cenumerate_T_alphabet,0,0,0};
+struct S4std_Cenumerate_T_alphabet{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S4std_Cenumerate_T_alphabet S4st_Cenumerate_T_alphabet = {
+ 1
+ ,
+ {// start of table
+ {573,(State*)&S5_Cenumerate_T_alphabet} // shift sym: Renum_err
+ }// end of shift table
+};
+struct S4rtd_Cenumerate_T_alphabet{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Cenumerate_T_alphabet S4rt_Cenumerate_T_alphabet = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cenumerate_T_alphabet,Cenumerate_T_alphabet::rhs1_Renum_err_}
+ }// end of reduce table
+};
+yacco2::State S4_Cenumerate_T_alphabet = //State's vectored into symbol: "Renum_T"
+{4
+,0,0,0,0,(Shift_tbl*)&S4st_Cenumerate_T_alphabet,(Reduce_tbl*)&S4rt_Cenumerate_T_alphabet,0,0,0};
+struct S5rtd_Cenumerate_T_alphabet{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Cenumerate_T_alphabet S5rt_Cenumerate_T_alphabet = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cenumerate_T_alphabet,Cenumerate_T_alphabet::rhs1_Renumerate_T_alphabet_}
+ }// end of reduce table
+};
+yacco2::State S5_Cenumerate_T_alphabet = //State's vectored into symbol: "Renum_err"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Cenumerate_T_alphabet,0,0,0};
diff --git a/web/yacco2/compiler/grammars/enumerate_grammar.cpp b/web/yacco2/compiler/grammars/enumerate_grammar.cpp
new file mode 100644
index 0000000000..8ad5491278
--- /dev/null
+++ b/web/yacco2/compiler/grammars/enumerate_grammar.cpp
@@ -0,0 +1,255 @@
+/*
+ File: enumerate_grammar.cpp
+ Date and Time: Fri Jan 30 18:55:09 2015
+*/
+#include "enumerate_grammar.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_enumerate_grammar;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 9;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[4] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[5] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[6] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[7] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[8] = new Per_rule_s_reuse_table();
+}
+ Cenumerate_grammar::
+ Cenumerate_grammar()
+ :yacco2::CAbs_fsm
+ ("enumerate_grammar.lex"
+ ,"1.0"
+ ,"26 sept. 2005"
+ ,false
+ ,"Dump aid: Enumerate grammar's components"
+ ,"Fri Jan 30 18:55:09 2015 "
+ ,S1_Cenumerate_grammar){
+
+ }
+
+Cenumerate_grammar::~Cenumerate_grammar(){
+
+ for(int x = 0;x < 9;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cenumerate_grammar::failed(){
+ return false;
+ }
+ void Cenumerate_grammar::op(){
+ rule_no_ = 0;
+ subrule_no_ = 0;
+ elem_no_ = 0;
+ enum_subrule_no_ = 0;
+
+}
+int Cenumerate_grammar::rhs_to_rules_mapping_[17] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,2 // subrule 4 for rule 3
+ ,3 // subrule 5 for rule 4
+ ,4 // subrule 6 for rule 5
+ ,4 // subrule 7 for rule 5
+ ,5 // subrule 8 for rule 6
+ ,6 // subrule 9 for rule 7
+ ,7 // subrule 10 for rule 8
+ ,7 // subrule 11 for rule 8
+ ,8 // subrule 12 for rule 9
+ ,8 // subrule 13 for rule 9
+ ,8 // subrule 14 for rule 9
+ ,8 // subrule 15 for rule 9
+ ,8 // subrule 16 for rule 9
+};
+Rfirst_set_rules::Rfirst_set_rules(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfirst_set_rules",0,Cenumerate_grammar::R_Rfirst_set_rules_,P,false,false){
+}
+
+Rrules::Rrules(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrules",0,Cenumerate_grammar::R_Rrules_,P,false,false){
+}
+
+Rrule::Rrule(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrule",0,Cenumerate_grammar::R_Rrule_,P,false,false){
+}
+
+Rrule_def::Rrule_def(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrule_def",0,Cenumerate_grammar::R_Rrule_def_,P,false,false){
+}
+
+void Rrule_def::sr1(){
+ struct SF{
+ rule_def* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cenumerate_grammar* fsm = (Cenumerate_grammar*)rule_info__.parser__->fsm_tbl__;
+ fsm->subrule_no_ = 0;
+ fsm->elem_no_ = 0;
+ ++fsm->rule_no_;
+ char buf[128];
+ KCHARP rule_no = "%i";
+ sprintf(buf,rule_no,fsm->rule_no_);
+ sf->p1__->grammar_s_enumerate(buf);
+
+}
+
+Rsubrules::Rsubrules(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsubrules",0,Cenumerate_grammar::R_Rsubrules_,P,false,false){
+}
+
+Rsubrule::Rsubrule(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsubrule",0,Cenumerate_grammar::R_Rsubrule_,P,false,false){
+}
+
+Rsubrule_def::Rsubrule_def(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsubrule_def",0,Cenumerate_grammar::R_Rsubrule_def_,P,false,false){
+}
+
+void Rsubrule_def::sr1(){
+ struct SF{
+ T_subrule_def* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cenumerate_grammar* fsm = (Cenumerate_grammar*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->subrule_no_;
+ ++fsm->enum_subrule_no_;
+ sf->p1__->its_grammar_s_pos(fsm->enum_subrule_no_);
+ fsm->elem_no_ = 0;
+ char buf[128];
+ KCHARP subrule_no = "%i.%i";
+ sprintf(buf,subrule_no,fsm->rule_no_,fsm->subrule_no_);
+ sf->p1__->grammar_s_enumerate(buf);
+
+}
+
+Relements::Relements(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Relements",0,Cenumerate_grammar::R_Relements_,P,false,false){
+}
+
+Relement::Relement(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Relement",0,Cenumerate_grammar::R_Relement_,P,false,false){
+}
+
+void Relement::sr1(){
+ struct SF{
+ refered_rule* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cenumerate_grammar* fsm = (Cenumerate_grammar*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ char buf[128];
+ KCHARP elem_no = "%i.%i.%i";
+ sprintf(buf,elem_no,fsm->rule_no_,fsm->subrule_no_,fsm->elem_no_);
+ sf->p1__->grammar_s_enumerate(buf);
+ sf->p1__->element_pos(fsm->elem_no_);
+
+}
+
+void Relement::sr2(){
+ struct SF{
+ refered_T* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cenumerate_grammar* fsm = (Cenumerate_grammar*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ char buf[128];
+ KCHARP elem_no = "%i.%i.%i";
+ sprintf(buf,elem_no,fsm->rule_no_,fsm->subrule_no_,fsm->elem_no_);
+ sf->p1__->grammar_s_enumerate(buf);
+ sf->p1__->element_pos(fsm->elem_no_);
+
+}
+
+void Relement::sr3(){
+ struct SF{
+ T_eosubrule* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cenumerate_grammar* fsm = (Cenumerate_grammar*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ char buf[128];
+ KCHARP elem_no = "%i.%i.%i";
+ sprintf(buf,elem_no,fsm->rule_no_,fsm->subrule_no_,fsm->elem_no_);
+ sf->p1__->grammar_s_enumerate(buf);
+ sf->p1__->element_pos(fsm->elem_no_);
+
+}
+
+void Relement::sr4(){
+ struct SF{
+ T_called_thread_eosubrule* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cenumerate_grammar* fsm = (Cenumerate_grammar*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ char buf[128];
+ KCHARP elem_no = "%i.%i.%i";
+ sprintf(buf,elem_no,fsm->rule_no_,fsm->subrule_no_,fsm->elem_no_);
+ sf->p1__->grammar_s_enumerate(buf);
+ sf->p1__->element_pos(fsm->elem_no_);
+
+}
+
+void Relement::sr5(){
+ struct SF{
+ T_null_call_thread_eosubrule* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cenumerate_grammar* fsm = (Cenumerate_grammar*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ char buf[128];
+ KCHARP elem_no = "%i.%i.%i";
+ sprintf(buf,elem_no,fsm->rule_no_,fsm->subrule_no_,fsm->elem_no_);
+ sf->p1__->grammar_s_enumerate(buf);
+ sf->p1__->element_pos(fsm->elem_no_);
+
+}
+
diff --git a/web/yacco2/compiler/grammars/enumerate_grammar.fsc b/web/yacco2/compiler/grammars/enumerate_grammar.fsc
new file mode 100644
index 0000000000..f624b371ca
--- /dev/null
+++ b/web/yacco2/compiler/grammars/enumerate_grammar.fsc
@@ -0,0 +1,20 @@
+/*
+ File: enumerate_grammar.fsc
+ Date and Time: Fri Jan 30 18:55:09 2015
+*/
+transitive n
+grammar-name "enumerate_grammar"
+name-space "NS_enumerate_grammar"
+thread-name "Cenumerate_grammar"
+monolithic y
+file-name "enumerate_grammar.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ rule_def
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"Dump aid: Enumerate grammar's components"
diff --git a/web/yacco2/compiler/grammars/enumerate_grammar.h b/web/yacco2/compiler/grammars/enumerate_grammar.h
new file mode 100644
index 0000000000..d5860f148a
--- /dev/null
+++ b/web/yacco2/compiler/grammars/enumerate_grammar.h
@@ -0,0 +1,137 @@
+/*
+ File: enumerate_grammar.h
+ Date and Time: Fri Jan 30 18:55:09 2015
+*/
+#ifndef __enumerate_grammar_h__
+#define __enumerate_grammar_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "o2_externs.h"
+
+// monolithic grammar: no thread
+extern yacco2::State S1_Cenumerate_grammar;
+namespace NS_enumerate_grammar {
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[9];
+};
+class Cenumerate_grammar: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rfirst_set_rules_ = 569//start_of_rule_list + 0
+ ,rhs1_Rfirst_set_rules_ = 1
+ ,R_Rrules_ = 570//start_of_rule_list + 2
+ ,rhs1_Rrules_ = 2
+ ,rhs2_Rrules_ = 3
+ ,R_Rrule_ = 571//start_of_rule_list + 4
+ ,rhs1_Rrule_ = 4
+ ,R_Rrule_def_ = 572//start_of_rule_list + 6
+ ,rhs1_Rrule_def_ = 5
+ ,R_Rsubrules_ = 573//start_of_rule_list + 8
+ ,rhs1_Rsubrules_ = 6
+ ,rhs2_Rsubrules_ = 7
+ ,R_Rsubrule_ = 574//start_of_rule_list + 10
+ ,rhs1_Rsubrule_ = 8
+ ,R_Rsubrule_def_ = 575//start_of_rule_list + 12
+ ,rhs1_Rsubrule_def_ = 9
+ ,R_Relements_ = 576//start_of_rule_list + 14
+ ,rhs1_Relements_ = 10
+ ,rhs2_Relements_ = 11
+ ,R_Relement_ = 577//start_of_rule_list + 16
+ ,rhs1_Relement_ = 12
+ ,rhs2_Relement_ = 13
+ ,rhs3_Relement_ = 14
+ ,rhs4_Relement_ = 15
+ ,rhs5_Relement_ = 16
+ };
+ //no of la sets = 6
+ //no of states = 20
+ Cenumerate_grammar();
+ ~Cenumerate_grammar();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[17];
+
+ public:
+ int rule_no_;
+ int subrule_no_;
+ int enum_subrule_no_;
+ int elem_no_;
+
+ };
+struct Rfirst_set_rules;
+struct Rrules;
+struct Rrule;
+struct Rrule_def;
+struct Rsubrules;
+struct Rsubrule;
+struct Rsubrule_def;
+struct Relements;
+struct Relement;
+struct Rfirst_set_rules:public yacco2::CAbs_lr1_sym {
+ Rfirst_set_rules(yacco2::Parser* P);
+ public:
+};
+
+struct Rrules:public yacco2::CAbs_lr1_sym {
+ Rrules(yacco2::Parser* P);
+ public:
+};
+
+struct Rrule:public yacco2::CAbs_lr1_sym {
+ Rrule(yacco2::Parser* P);
+ public:
+};
+
+struct Rrule_def:public yacco2::CAbs_lr1_sym {
+ Rrule_def(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rsubrules:public yacco2::CAbs_lr1_sym {
+ Rsubrules(yacco2::Parser* P);
+ public:
+};
+
+struct Rsubrule:public yacco2::CAbs_lr1_sym {
+ Rsubrule(yacco2::Parser* P);
+ public:
+};
+
+struct Rsubrule_def:public yacco2::CAbs_lr1_sym {
+ Rsubrule_def(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Relements:public yacco2::CAbs_lr1_sym {
+ Relements(yacco2::Parser* P);
+ public:
+};
+
+struct Relement:public yacco2::CAbs_lr1_sym {
+ Relement(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+ void sr5();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/enumerate_grammar.lex b/web/yacco2/compiler/grammars/enumerate_grammar.lex
new file mode 100644
index 0000000000..7ea0be8ee0
--- /dev/null
+++ b/web/yacco2/compiler/grammars/enumerate_grammar.lex
@@ -0,0 +1,164 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: enumerate_grammar.lex
+Dates: 23 Sept. 2005
+Purpose: determine first set per rule.
+How: Read the grammar's components in prefix order filtering out:
+ excluding ``rules-phrase''
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |enumerate_grammar| grammar.\fbreak
+Enumerate a grammar's components.
+Each component: ``rule-def'', ''subrule-def'', ``refered-rule'', ``refered-T''
+and ``eosubrule'' contains a string that receives its enumerate literal.
+This reference will be used throughout the outputed document giving
+a GPS to the reader.
+@/
+
+fsm
+(fsm-id "enumerate_grammar.lex"
+,fsm-filename enumerate_grammar
+,fsm-namespace NS_enumerate_grammar
+,fsm-class Cenumerate_grammar{
+ user-prefix-declaration
+#include "o2_externs.h"
+ ***
+ user-declaration
+ public:
+ int rule_no_;
+ int subrule_no_;
+ int enum_subrule_no_;
+ int elem_no_;
+ ***
+ op
+ rule_no_ = 0;
+ subrule_no_ = 0;
+ elem_no_ = 0;
+ enum_subrule_no_ = 0;
+ ***
+}
+,fsm-version "1.0",fsm-date "26 sept. 2005",fsm-debug "false"
+,fsm-comments "Dump aid: Enumerate grammar's components")
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rfirst_set_rules
+(){
+ -> Rrules eog
+}
+
+Rrules (){
+ -> Rrule
+ -> Rrules Rrule
+}
+
+Rrule (){
+ -> Rrule_def Rsubrules
+}
+
+Rrule_def (){
+ -> "rule-def" {
+ op
+ Cenumerate_grammar* fsm = (Cenumerate_grammar*)rule_info__.parser__->fsm_tbl__;
+ fsm->subrule_no_ = 0;
+ fsm->elem_no_ = 0;
+ ++fsm->rule_no_;
+ char buf[128];
+ KCHARP rule_no = "%i";
+ sprintf(buf,rule_no,fsm->rule_no_);
+ sf->p1__->grammar_s_enumerate(buf);
+ ***
+ }
+}
+Rsubrules (){
+ -> Rsubrule
+ -> Rsubrules Rsubrule
+}
+
+Rsubrule (){
+ -> Rsubrule_def Relements
+}
+
+Rsubrule_def (){
+ -> "subrule-def" {
+ op
+ Cenumerate_grammar* fsm = (Cenumerate_grammar*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->subrule_no_;
+ ++fsm->enum_subrule_no_;
+ sf->p1__->its_grammar_s_pos(fsm->enum_subrule_no_);
+ fsm->elem_no_ = 0;
+ char buf[128];
+ KCHARP subrule_no = "%i.%i";
+ sprintf(buf,subrule_no,fsm->rule_no_,fsm->subrule_no_);
+ sf->p1__->grammar_s_enumerate(buf);
+ ***
+ }
+}
+
+Relements (){
+ -> Relement
+ -> Relements Relement
+}
+Relement (){
+ -> "refered-rule" {
+ op
+ Cenumerate_grammar* fsm = (Cenumerate_grammar*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ char buf[128];
+ KCHARP elem_no = "%i.%i.%i";
+ sprintf(buf,elem_no,fsm->rule_no_,fsm->subrule_no_,fsm->elem_no_);
+ sf->p1__->grammar_s_enumerate(buf);
+ sf->p1__->element_pos(fsm->elem_no_);
+ ***
+ }
+ -> "refered-T" {
+ op
+ Cenumerate_grammar* fsm = (Cenumerate_grammar*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ char buf[128];
+ KCHARP elem_no = "%i.%i.%i";
+ sprintf(buf,elem_no,fsm->rule_no_,fsm->subrule_no_,fsm->elem_no_);
+ sf->p1__->grammar_s_enumerate(buf);
+ sf->p1__->element_pos(fsm->elem_no_);
+ ***
+ }
+ -> "eosubrule" {
+ op
+ Cenumerate_grammar* fsm = (Cenumerate_grammar*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ char buf[128];
+ KCHARP elem_no = "%i.%i.%i";
+ sprintf(buf,elem_no,fsm->rule_no_,fsm->subrule_no_,fsm->elem_no_);
+ sf->p1__->grammar_s_enumerate(buf);
+ sf->p1__->element_pos(fsm->elem_no_);
+ ***
+ }
+ -> "called thread eosubrule" {
+ op
+ Cenumerate_grammar* fsm = (Cenumerate_grammar*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ char buf[128];
+ KCHARP elem_no = "%i.%i.%i";
+ sprintf(buf,elem_no,fsm->rule_no_,fsm->subrule_no_,fsm->elem_no_);
+ sf->p1__->grammar_s_enumerate(buf);
+ sf->p1__->element_pos(fsm->elem_no_);
+ ***
+ }
+ -> "null call thread eosubrule" {
+ op
+ Cenumerate_grammar* fsm = (Cenumerate_grammar*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ char buf[128];
+ KCHARP elem_no = "%i.%i.%i";
+ sprintf(buf,elem_no,fsm->rule_no_,fsm->subrule_no_,fsm->elem_no_);
+ sf->p1__->grammar_s_enumerate(buf);
+ sf->p1__->element_pos(fsm->elem_no_);
+ ***
+ }
+}
+
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/enumerate_grammarsym.cpp b/web/yacco2/compiler/grammars/enumerate_grammarsym.cpp
new file mode 100644
index 0000000000..ea98b16447
--- /dev/null
+++ b/web/yacco2/compiler/grammars/enumerate_grammarsym.cpp
@@ -0,0 +1,258 @@
+/*
+ File: enumerate_grammarsym.cpp
+ Date and Time: Fri Jan 30 18:55:09 2015
+*/
+#include "enumerate_grammar.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_enumerate_grammar;// grammar's ns
+// first set terminals
+// monolithic grammar --- no thread
+void
+Cenumerate_grammar::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rfirst_set_rules_:{
+ Rfirst_set_rules* sym;
+ if(re->rule_ == 0){
+ sym = new Rfirst_set_rules(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfirst_set_rules*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rrules_:{
+ Rrules* sym;
+ if(re->rule_ == 0){
+ sym = new Rrules(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrules*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rrules_:{
+ Rrules* sym;
+ if(re->rule_ == 0){
+ sym = new Rrules(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrules*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rrule_:{
+ Rrule* sym;
+ if(re->rule_ == 0){
+ sym = new Rrule(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrule*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rrule_def_:{
+ Rrule_def* sym;
+ if(re->rule_ == 0){
+ sym = new Rrule_def(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrule_def*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rsubrules_:{
+ Rsubrules* sym;
+ if(re->rule_ == 0){
+ sym = new Rsubrules(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsubrules*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rsubrules_:{
+ Rsubrules* sym;
+ if(re->rule_ == 0){
+ sym = new Rsubrules(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsubrules*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rsubrule_:{
+ Rsubrule* sym;
+ if(re->rule_ == 0){
+ sym = new Rsubrule(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsubrule*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rsubrule_def_:{
+ Rsubrule_def* sym;
+ if(re->rule_ == 0){
+ sym = new Rsubrule_def(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsubrule_def*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Relements_:{
+ Relements* sym;
+ if(re->rule_ == 0){
+ sym = new Relements(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Relements*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Relements_:{
+ Relements* sym;
+ if(re->rule_ == 0){
+ sym = new Relements(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Relements*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Relement_:{
+ Relement* sym;
+ if(re->rule_ == 0){
+ sym = new Relement(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Relement*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Relement_:{
+ Relement* sym;
+ if(re->rule_ == 0){
+ sym = new Relement(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Relement*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Relement_:{
+ Relement* sym;
+ if(re->rule_ == 0){
+ sym = new Relement(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Relement*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Relement_:{
+ Relement* sym;
+ if(re->rule_ == 0){
+ sym = new Relement(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Relement*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr4();
+ return;}
+ case rhs5_Relement_:{
+ Relement* sym;
+ if(re->rule_ == 0){
+ sym = new Relement(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Relement*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr5();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/enumerate_grammartbl.cpp b/web/yacco2/compiler/grammars/enumerate_grammartbl.cpp
new file mode 100644
index 0000000000..75cb6a19e8
--- /dev/null
+++ b/web/yacco2/compiler/grammars/enumerate_grammartbl.cpp
@@ -0,0 +1,408 @@
+/*
+ File: enumerate_grammartbl.cpp
+ Date and Time: Fri Jan 30 18:55:09 2015
+*/
+#include "enumerate_grammar.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_enumerate_grammar;// grammar's ns
+// first set terminals
+// T_subrule_def
+yacco2::UCHAR LA1_Cenumerate_grammar[] ={
+1
+,42,64
+};
+// LR1_eolr
+yacco2::UCHAR LA2_Cenumerate_grammar[] ={
+1
+,0,4
+};
+// LR1_eog
+// rule_def
+yacco2::UCHAR LA3_Cenumerate_grammar[] ={
+2
+,0,2
+,42,16
+};
+// refered_T
+// refered_rule
+// T_eosubrule
+// T_called_thread_eosubrule
+// T_null_call_thread_eosubrule
+yacco2::UCHAR LA4_Cenumerate_grammar[] ={
+2
+,43,10
+,46,14
+};
+// LR1_eog
+// rule_def
+// T_subrule_def
+yacco2::UCHAR LA5_Cenumerate_grammar[] ={
+2
+,0,2
+,42,80
+};
+// LR1_eog
+// rule_def
+// T_subrule_def
+// refered_T
+// refered_rule
+// T_eosubrule
+// T_called_thread_eosubrule
+// T_null_call_thread_eosubrule
+yacco2::UCHAR LA6_Cenumerate_grammar[] ={
+4
+,0,2
+,42,80
+,43,10
+,46,14
+};
+extern yacco2::State S1_Cenumerate_grammar;
+extern yacco2::State S2_Cenumerate_grammar;
+extern yacco2::State S3_Cenumerate_grammar;
+extern yacco2::State S4_Cenumerate_grammar;
+extern yacco2::State S5_Cenumerate_grammar;
+extern yacco2::State S6_Cenumerate_grammar;
+extern yacco2::State S7_Cenumerate_grammar;
+extern yacco2::State S8_Cenumerate_grammar;
+extern yacco2::State S9_Cenumerate_grammar;
+extern yacco2::State S10_Cenumerate_grammar;
+extern yacco2::State S11_Cenumerate_grammar;
+extern yacco2::State S12_Cenumerate_grammar;
+extern yacco2::State S13_Cenumerate_grammar;
+extern yacco2::State S14_Cenumerate_grammar;
+extern yacco2::State S15_Cenumerate_grammar;
+extern yacco2::State S16_Cenumerate_grammar;
+extern yacco2::State S17_Cenumerate_grammar;
+extern yacco2::State S18_Cenumerate_grammar;
+extern yacco2::State S19_Cenumerate_grammar;
+extern yacco2::State S20_Cenumerate_grammar;
+struct S1std_Cenumerate_grammar{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S1std_Cenumerate_grammar S1st_Cenumerate_grammar = {
+ 5
+ ,
+ {// start of table
+ {340,(State*)&S2_Cenumerate_grammar} // shift sym: rule_def
+ ,{569,(State*)&S1_Cenumerate_grammar} // accept sym: Rfirst_set_rules
+ ,{570,(State*)&S3_Cenumerate_grammar} // shift sym: Rrules
+ ,{571,(State*)&S20_Cenumerate_grammar} // shift sym: Rrule
+ ,{572,(State*)&S6_Cenumerate_grammar} // shift sym: Rrule_def
+ }// end of shift table
+};
+yacco2::State S1_Cenumerate_grammar = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Cenumerate_grammar,0,0,0,0};
+struct S2rtd_Cenumerate_grammar{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Cenumerate_grammar S2rt_Cenumerate_grammar = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cenumerate_grammar,Cenumerate_grammar::rhs1_Rrule_def_}
+ }// end of reduce table
+};
+yacco2::State S2_Cenumerate_grammar = //State's vectored into symbol: "rule-def"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Cenumerate_grammar,0,0,0};
+struct S3std_Cenumerate_grammar{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S3std_Cenumerate_grammar S3st_Cenumerate_grammar = {
+ 4
+ ,
+ {// start of table
+ {1,(State*)&S4_Cenumerate_grammar} // shift sym: LR1_eog
+ ,{340,(State*)&S2_Cenumerate_grammar} // shift sym: rule_def
+ ,{571,(State*)&S5_Cenumerate_grammar} // shift sym: Rrule
+ ,{572,(State*)&S6_Cenumerate_grammar} // shift sym: Rrule_def
+ }// end of shift table
+};
+yacco2::State S3_Cenumerate_grammar = //State's vectored into symbol: "Rrules"
+{3
+,0,0,0,0,(Shift_tbl*)&S3st_Cenumerate_grammar,0,0,0,0};
+struct S4rtd_Cenumerate_grammar{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Cenumerate_grammar S4rt_Cenumerate_grammar = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cenumerate_grammar,Cenumerate_grammar::rhs1_Rfirst_set_rules_}
+ }// end of reduce table
+};
+yacco2::State S4_Cenumerate_grammar = //State's vectored into symbol: "eog"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Cenumerate_grammar,0,0,0};
+struct S5rtd_Cenumerate_grammar{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Cenumerate_grammar S5rt_Cenumerate_grammar = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cenumerate_grammar,Cenumerate_grammar::rhs2_Rrules_}
+ }// end of reduce table
+};
+yacco2::State S5_Cenumerate_grammar = //State's vectored into symbol: "Rrule"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Cenumerate_grammar,0,0,0};
+struct S6std_Cenumerate_grammar{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S6std_Cenumerate_grammar S6st_Cenumerate_grammar = {
+ 4
+ ,
+ {// start of table
+ {342,(State*)&S7_Cenumerate_grammar} // shift sym: T_subrule_def
+ ,{573,(State*)&S8_Cenumerate_grammar} // shift sym: Rsubrules
+ ,{574,(State*)&S19_Cenumerate_grammar} // shift sym: Rsubrule
+ ,{575,(State*)&S10_Cenumerate_grammar} // shift sym: Rsubrule_def
+ }// end of shift table
+};
+yacco2::State S6_Cenumerate_grammar = //State's vectored into symbol: "Rrule_def"
+{6
+,0,0,0,0,(Shift_tbl*)&S6st_Cenumerate_grammar,0,0,0,0};
+struct S7rtd_Cenumerate_grammar{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Cenumerate_grammar S7rt_Cenumerate_grammar = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cenumerate_grammar,Cenumerate_grammar::rhs1_Rsubrule_def_}
+ }// end of reduce table
+};
+yacco2::State S7_Cenumerate_grammar = //State's vectored into symbol: "subrule-def"
+{7
+,0,0,0,0,0,(Reduce_tbl*)&S7rt_Cenumerate_grammar,0,0,0};
+struct S8std_Cenumerate_grammar{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S8std_Cenumerate_grammar S8st_Cenumerate_grammar = {
+ 3
+ ,
+ {// start of table
+ {342,(State*)&S7_Cenumerate_grammar} // shift sym: T_subrule_def
+ ,{574,(State*)&S9_Cenumerate_grammar} // shift sym: Rsubrule
+ ,{575,(State*)&S10_Cenumerate_grammar} // shift sym: Rsubrule_def
+ }// end of shift table
+};
+struct S8rtd_Cenumerate_grammar{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S8rtd_Cenumerate_grammar S8rt_Cenumerate_grammar = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cenumerate_grammar,Cenumerate_grammar::rhs1_Rrule_}
+ }// end of reduce table
+};
+yacco2::State S8_Cenumerate_grammar = //State's vectored into symbol: "Rsubrules"
+{8
+,0,0,0,0,(Shift_tbl*)&S8st_Cenumerate_grammar,(Reduce_tbl*)&S8rt_Cenumerate_grammar,0,0,0};
+struct S9rtd_Cenumerate_grammar{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Cenumerate_grammar S9rt_Cenumerate_grammar = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cenumerate_grammar,Cenumerate_grammar::rhs2_Rsubrules_}
+ }// end of reduce table
+};
+yacco2::State S9_Cenumerate_grammar = //State's vectored into symbol: "Rsubrule"
+{9
+,0,0,0,0,0,(Reduce_tbl*)&S9rt_Cenumerate_grammar,0,0,0};
+struct S10std_Cenumerate_grammar{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[7];
+};
+S10std_Cenumerate_grammar S10st_Cenumerate_grammar = {
+ 7
+ ,
+ {// start of table
+ {345,(State*)&S11_Cenumerate_grammar} // shift sym: refered_T
+ ,{347,(State*)&S12_Cenumerate_grammar} // shift sym: refered_rule
+ ,{369,(State*)&S13_Cenumerate_grammar} // shift sym: T_eosubrule
+ ,{370,(State*)&S14_Cenumerate_grammar} // shift sym: T_called_thread_eosubrule
+ ,{371,(State*)&S15_Cenumerate_grammar} // shift sym: T_null_call_thread_eosubrule
+ ,{576,(State*)&S16_Cenumerate_grammar} // shift sym: Relements
+ ,{577,(State*)&S18_Cenumerate_grammar} // shift sym: Relement
+ }// end of shift table
+};
+yacco2::State S10_Cenumerate_grammar = //State's vectored into symbol: "Rsubrule_def"
+{10
+,0,0,0,0,(Shift_tbl*)&S10st_Cenumerate_grammar,0,0,0,0};
+struct S11rtd_Cenumerate_grammar{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Cenumerate_grammar S11rt_Cenumerate_grammar = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cenumerate_grammar,Cenumerate_grammar::rhs2_Relement_}
+ }// end of reduce table
+};
+yacco2::State S11_Cenumerate_grammar = //State's vectored into symbol: "refered-T"
+{11
+,0,0,0,0,0,(Reduce_tbl*)&S11rt_Cenumerate_grammar,0,0,0};
+struct S12rtd_Cenumerate_grammar{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S12rtd_Cenumerate_grammar S12rt_Cenumerate_grammar = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cenumerate_grammar,Cenumerate_grammar::rhs1_Relement_}
+ }// end of reduce table
+};
+yacco2::State S12_Cenumerate_grammar = //State's vectored into symbol: "refered-rule"
+{12
+,0,0,0,0,0,(Reduce_tbl*)&S12rt_Cenumerate_grammar,0,0,0};
+struct S13rtd_Cenumerate_grammar{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S13rtd_Cenumerate_grammar S13rt_Cenumerate_grammar = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cenumerate_grammar,Cenumerate_grammar::rhs3_Relement_}
+ }// end of reduce table
+};
+yacco2::State S13_Cenumerate_grammar = //State's vectored into symbol: "eosubrule"
+{13
+,0,0,0,0,0,(Reduce_tbl*)&S13rt_Cenumerate_grammar,0,0,0};
+struct S14rtd_Cenumerate_grammar{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S14rtd_Cenumerate_grammar S14rt_Cenumerate_grammar = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cenumerate_grammar,Cenumerate_grammar::rhs4_Relement_}
+ }// end of reduce table
+};
+yacco2::State S14_Cenumerate_grammar = //State's vectored into symbol: "called thread eosubrule"
+{14
+,0,0,0,0,0,(Reduce_tbl*)&S14rt_Cenumerate_grammar,0,0,0};
+struct S15rtd_Cenumerate_grammar{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S15rtd_Cenumerate_grammar S15rt_Cenumerate_grammar = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cenumerate_grammar,Cenumerate_grammar::rhs5_Relement_}
+ }// end of reduce table
+};
+yacco2::State S15_Cenumerate_grammar = //State's vectored into symbol: "null call thread eosubrule"
+{15
+,0,0,0,0,0,(Reduce_tbl*)&S15rt_Cenumerate_grammar,0,0,0};
+struct S16std_Cenumerate_grammar{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[6];
+};
+S16std_Cenumerate_grammar S16st_Cenumerate_grammar = {
+ 6
+ ,
+ {// start of table
+ {345,(State*)&S11_Cenumerate_grammar} // shift sym: refered_T
+ ,{347,(State*)&S12_Cenumerate_grammar} // shift sym: refered_rule
+ ,{369,(State*)&S13_Cenumerate_grammar} // shift sym: T_eosubrule
+ ,{370,(State*)&S14_Cenumerate_grammar} // shift sym: T_called_thread_eosubrule
+ ,{371,(State*)&S15_Cenumerate_grammar} // shift sym: T_null_call_thread_eosubrule
+ ,{577,(State*)&S17_Cenumerate_grammar} // shift sym: Relement
+ }// end of shift table
+};
+struct S16rtd_Cenumerate_grammar{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S16rtd_Cenumerate_grammar S16rt_Cenumerate_grammar = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cenumerate_grammar,Cenumerate_grammar::rhs1_Rsubrule_}
+ }// end of reduce table
+};
+yacco2::State S16_Cenumerate_grammar = //State's vectored into symbol: "Relements"
+{16
+,0,0,0,0,(Shift_tbl*)&S16st_Cenumerate_grammar,(Reduce_tbl*)&S16rt_Cenumerate_grammar,0,0,0};
+struct S17rtd_Cenumerate_grammar{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S17rtd_Cenumerate_grammar S17rt_Cenumerate_grammar = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cenumerate_grammar,Cenumerate_grammar::rhs2_Relements_}
+ }// end of reduce table
+};
+yacco2::State S17_Cenumerate_grammar = //State's vectored into symbol: "Relement"
+{17
+,0,0,0,0,0,(Reduce_tbl*)&S17rt_Cenumerate_grammar,0,0,0};
+struct S18rtd_Cenumerate_grammar{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S18rtd_Cenumerate_grammar S18rt_Cenumerate_grammar = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cenumerate_grammar,Cenumerate_grammar::rhs1_Relements_}
+ }// end of reduce table
+};
+yacco2::State S18_Cenumerate_grammar = //State's vectored into symbol: "Relement"
+{18
+,0,0,0,0,0,(Reduce_tbl*)&S18rt_Cenumerate_grammar,0,0,0};
+struct S19rtd_Cenumerate_grammar{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S19rtd_Cenumerate_grammar S19rt_Cenumerate_grammar = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cenumerate_grammar,Cenumerate_grammar::rhs1_Rsubrules_}
+ }// end of reduce table
+};
+yacco2::State S19_Cenumerate_grammar = //State's vectored into symbol: "Rsubrule"
+{19
+,0,0,0,0,0,(Reduce_tbl*)&S19rt_Cenumerate_grammar,0,0,0};
+struct S20rtd_Cenumerate_grammar{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S20rtd_Cenumerate_grammar S20rt_Cenumerate_grammar = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cenumerate_grammar,Cenumerate_grammar::rhs1_Rrules_}
+ }// end of reduce table
+};
+yacco2::State S20_Cenumerate_grammar = //State's vectored into symbol: "Rrule"
+{20
+,0,0,0,0,0,(Reduce_tbl*)&S20rt_Cenumerate_grammar,0,0,0};
diff --git a/web/yacco2/compiler/grammars/eol.cpp b/web/yacco2/compiler/grammars/eol.cpp
new file mode 100644
index 0000000000..bb98b1208b
--- /dev/null
+++ b/web/yacco2/compiler/grammars/eol.cpp
@@ -0,0 +1,68 @@
+/*
+ File: eol.cpp
+ Date and Time: Fri Jan 30 18:55:09 2015
+*/
+#include "eol.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_eol;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 2;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+}
+ Ceol::
+ Ceol()
+ :yacco2::CAbs_fsm
+ ("eol.lex"
+ ,"1.0"
+ ,"17 Juin 2003"
+ ,false
+ ,"end-of-line recognizer --- Unix, Mac, and Microsoft supported styles."
+ ,"Fri Jan 30 18:55:09 2015 "
+ ,S1_Ceol){
+
+ }
+
+Ceol::~Ceol(){
+
+ for(int x = 0;x < 2;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Ceol::failed(){
+ return false;
+ }
+ void Ceol::op(){
+}
+int Ceol::rhs_to_rules_mapping_[5] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,1 // subrule 4 for rule 2
+};
+Reol::Reol(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Reol",0,Ceol::R_Reol_,P,false,false){
+}
+
+void Reol::sr1(){
+
+ CAbs_lr1_sym* sym = NS_yacco2_terminals::PTR_eol__;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+
+}
+
+Rdelimiters::Rdelimiters(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rdelimiters",0,Ceol::R_Rdelimiters_,P,false,false){
+}
+
diff --git a/web/yacco2/compiler/grammars/eol.fsc b/web/yacco2/compiler/grammars/eol.fsc
new file mode 100644
index 0000000000..a73904886b
--- /dev/null
+++ b/web/yacco2/compiler/grammars/eol.fsc
@@ -0,0 +1,21 @@
+/*
+ File: eol.fsc
+ Date and Time: Fri Jan 30 18:55:09 2015
+*/
+transitive n
+grammar-name "eol"
+name-space "NS_eol"
+thread-name "TH_eol"
+monolithic n
+file-name "eol.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 2
+ raw_lf
+ raw_cr
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"end-of-line recognizer --- Unix, Mac, and Microsoft supported styles."
diff --git a/web/yacco2/compiler/grammars/eol.h b/web/yacco2/compiler/grammars/eol.h
new file mode 100644
index 0000000000..2062f55e35
--- /dev/null
+++ b/web/yacco2/compiler/grammars/eol.h
@@ -0,0 +1,65 @@
+/*
+ File: eol.h
+ Date and Time: Fri Jan 30 18:55:09 2015
+*/
+#ifndef __eol_h__
+#define __eol_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+extern yacco2::Thread_entry ITH_eol;
+
+extern yacco2::State S1_Ceol;
+namespace NS_eol {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_eol(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_eol(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[2];
+};
+class Ceol: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Reol_ = 569//start_of_rule_list + 0
+ ,rhs1_Reol_ = 1
+ ,R_Rdelimiters_ = 570//start_of_rule_list + 2
+ ,rhs1_Rdelimiters_ = 2
+ ,rhs2_Rdelimiters_ = 3
+ ,rhs3_Rdelimiters_ = 4
+ };
+ //no of la sets = 1
+ //no of states = 6
+ Ceol();
+ ~Ceol();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[5];
+ };
+struct Reol;
+struct Rdelimiters;
+struct Reol:public yacco2::CAbs_lr1_sym {
+ Reol(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rdelimiters:public yacco2::CAbs_lr1_sym {
+ Rdelimiters(yacco2::Parser* P);
+ public:
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/eol.lex b/web/yacco2/compiler/grammars/eol.lex
new file mode 100644
index 0000000000..5e10045e86
--- /dev/null
+++ b/web/yacco2/compiler/grammars/eol.lex
@@ -0,0 +1,98 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: eol.lex
+Dates: 17 Juin 2003
+Purpose: end-of-line recognizer
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** Eol Thread.\fbreak
+This thread's claim-to-fame is its end-of-line matching for
+ Unix, Mac, or Windows variants.
+ See |Rdelimiters| rule for the variant in end-of-line recognition.
+The other thing of interest is its use of the meta terminal \invisibleshift.
+Without it in the subrule, the traditional way is to subtract ``x0a''
+from |eolr| representing ``all terminals'' in the Terminal alphabet within the lookahead
+expression of ``parallel-thread-function''
+ to prevent a shift / reduce conflict due to the ``xod'' common prefix subrules.
+ This works but is very inefficient in the size of the lookahead set
+ generated caused by the number of terminals in the Terminal alphabet.
+ The \invisibleshift approach adds a shift in the subrule
+ but only ``eolr'' in its reduce set whereas the traditional way has to binary search thru
+ the lookahead set of approximately .5k terminals to see if the current token is a member.
+ Under current set implementation, this is expensive as the partition number
+ is binary searched first followed by the element within the 8 member set.
+
+ How does \invisibleshift work? Being a meta-terminal, it is not part of
+ the token stream. It is one of the parsing conditionals tested for by its presence within
+ the finite automaton's current state. \allshift is another such meta terminal example.
+
+Use a global pointer to it as it is just an indicator.
+The new / delete cycle is too expensive.
+
+@/
+fsm
+(fsm-id "eol.lex",fsm-filename eol,fsm-namespace NS_eol
+,fsm-class Ceol
+,fsm-version "1.0" ,fsm-date "17 Juin 2003",fsm-debug "false"
+,fsm-comments "end-of-line recognizer --- Unix, Mac, and Microsoft supported styles.")
+parallel-parser
+(
+ parallel-thread-function
+ TH_eol
+ ***
+ parallel-la-boundary
+ eolr
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+/@
+@** Rules.\fbreak
+@/
+rules{
+Reol (){
+ -> Rdelimiters {
+ /@
+ Return the |eol| token back to the caller.
+ @/
+ op
+ CAbs_lr1_sym* sym = NS_yacco2_terminals::PTR_eol__;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ ***
+ }
+}
+
+/@
+@** |Rdelimiters| rule.\fbreak
+@/
+
+Rdelimiters
+/@The comments indicate the associated end-of-line variants.
+The Mac subrule shows the use of the \invisibleshift to
+escape from a shift / reduce conflict due to the common prefix ``x0d''.
+As it is not in the token stream, it is a very effective way to
+deal with this type of conflict.
+@/
+()
+{
+ ->
+/@ lf: Unix\fbreak@/
+"x0a"
+ ->
+ /@ cr: Mac.
+ Note use of the \invisibleshift to remove the shift / reduce
+ conflict.
+ This is caused by the general lookahead boundary of |eolr|.
+ \fbreak
+ @/
+
+"x0d" |.|
+ -> /@ cr:lf Windows\fbreak@/ "x0d" "x0a"
+}
+}// end of rules
+
diff --git a/web/yacco2/compiler/grammars/eolsym.cpp b/web/yacco2/compiler/grammars/eolsym.cpp
new file mode 100644
index 0000000000..24de1965d3
--- /dev/null
+++ b/web/yacco2/compiler/grammars/eolsym.cpp
@@ -0,0 +1,105 @@
+/*
+ File: eolsym.cpp
+ Date and Time: Fri Jan 30 18:55:09 2015
+*/
+#include "eol.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_eol;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_eol::TH_eol(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_eol;
+ NS_eol::Ceol Ceol_;// parallel-parser's parse table
+#define ssPARSE_TABLE Ceol_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_eol::PROC_TH_eol(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_eol";
+ static bool one_time(false);
+ static NS_eol::Ceol* NS_eol_Ceol_(0);// parallel-parser's fsm table
+ static Parser* NS_eol_Ceol_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_eol_Ceol_ = new NS_eol::Ceol();// parallel-parser's fsm table
+ NS_eol_Ceol_parser = new Parser(*NS_eol_Ceol_,Caller_pp);
+ }
+ proc_parser = NS_eol_Ceol_parser;
+#include "wproc_pp_core.h"
+}
+void
+Ceol::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Reol_:{
+ Reol* sym;
+ if(re->rule_ == 0){
+ sym = new Reol(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Reol*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rdelimiters_:{
+ Rdelimiters* sym;
+ if(re->rule_ == 0){
+ sym = new Rdelimiters(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdelimiters*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rdelimiters_:{
+ Rdelimiters* sym;
+ if(re->rule_ == 0){
+ sym = new Rdelimiters(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdelimiters*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs3_Rdelimiters_:{
+ Rdelimiters* sym;
+ if(re->rule_ == 0){
+ sym = new Rdelimiters(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdelimiters*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/eoltbl.cpp b/web/yacco2/compiler/grammars/eoltbl.cpp
new file mode 100644
index 0000000000..2e22aaf77b
--- /dev/null
+++ b/web/yacco2/compiler/grammars/eoltbl.cpp
@@ -0,0 +1,114 @@
+/*
+ File: eoltbl.cpp
+ Date and Time: Fri Jan 30 18:55:09 2015
+*/
+#include "eol.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_eol;// grammar's ns
+// first set terminals
+// LR1_eolr
+yacco2::UCHAR LA1_Ceol[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Ceol;
+extern yacco2::State S2_Ceol;
+extern yacco2::State S3_Ceol;
+extern yacco2::State S4_Ceol;
+extern yacco2::State S5_Ceol;
+extern yacco2::State S6_Ceol;
+struct S1std_Ceol{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S1std_Ceol S1st_Ceol = {
+ 4
+ ,
+ {// start of table
+ {18,(State*)&S2_Ceol} // shift sym: raw_lf
+ ,{21,(State*)&S3_Ceol} // shift sym: raw_cr
+ ,{569,(State*)&S1_Ceol} // accept sym: Reol
+ ,{570,(State*)&S6_Ceol} // shift sym: Rdelimiters
+ }// end of shift table
+};
+yacco2::State S1_Ceol = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Ceol,0,0,0,0};
+struct S2rtd_Ceol{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Ceol S2rt_Ceol = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ceol,Ceol::rhs1_Rdelimiters_}
+ }// end of reduce table
+};
+yacco2::State S2_Ceol = //State's vectored into symbol: "x0a"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Ceol,0,0,0};
+struct S3std_Ceol{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S3std_Ceol S3st_Ceol = {
+ 2
+ ,
+ {// start of table
+ {5,(State*)&S4_Ceol} // shift sym: LR1_invisible_shift_operator
+ ,{18,(State*)&S5_Ceol} // shift sym: raw_lf
+ }// end of shift table
+};
+yacco2::Shift_entry S3ise_Ceol = {5,(State*)&S4_Ceol};
+yacco2::State S3_Ceol = //State's vectored into symbol: "x0d"
+{3
+,0,0,(Shift_entry*)&S3ise_Ceol
+,0,(Shift_tbl*)&S3st_Ceol,0,0,0,0};
+struct S4rtd_Ceol{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Ceol S4rt_Ceol = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ceol,Ceol::rhs2_Rdelimiters_}
+ }// end of reduce table
+};
+yacco2::State S4_Ceol = //State's vectored into symbol: "|.|"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Ceol,0,0,0};
+struct S5rtd_Ceol{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Ceol S5rt_Ceol = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ceol,Ceol::rhs3_Rdelimiters_}
+ }// end of reduce table
+};
+yacco2::State S5_Ceol = //State's vectored into symbol: "x0a"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Ceol,0,0,0};
+struct S6rtd_Ceol{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Ceol S6rt_Ceol = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ceol,Ceol::rhs1_Reol_}
+ }// end of reduce table
+};
+yacco2::State S6_Ceol = //State's vectored into symbol: "Rdelimiters"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Ceol,0,0,0};
diff --git a/web/yacco2/compiler/grammars/epsilon_rules.cpp b/web/yacco2/compiler/grammars/epsilon_rules.cpp
new file mode 100644
index 0000000000..d8eecf98a3
--- /dev/null
+++ b/web/yacco2/compiler/grammars/epsilon_rules.cpp
@@ -0,0 +1,283 @@
+/*
+ File: epsilon_rules.cpp
+ Date and Time: Fri Jan 30 18:55:10 2015
+*/
+#include "epsilon_rules.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_epsilon_rules;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 7;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[4] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[5] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[6] = new Per_rule_s_reuse_table();
+}
+ Cepsilon_rules::
+ Cepsilon_rules()
+ :yacco2::CAbs_fsm
+ ("epsilon_rules.lex"
+ ,"1.0"
+ ,"26 sept. 2005"
+ ,false
+ ,"Determine whether rules are epsilon, derive T, or are pathological."
+ ,"Fri Jan 30 18:55:10 2015 "
+ ,S1_Cepsilon_rules){
+
+ }
+
+Cepsilon_rules::~Cepsilon_rules(){
+
+ for(int x = 0;x < 7;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cepsilon_rules::failed(){
+ return false;
+ }
+ void Cepsilon_rules::op(){
+ rule_def_ = 0;
+ subrule_def_ = 0;
+ elem_t_ = 0;
+ ip_can_ = (tok_can< AST* >*)parser__->token_supplier__;
+
+}
+int Cepsilon_rules::rhs_to_rules_mapping_[10] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,2 // subrule 4 for rule 3
+ ,3 // subrule 5 for rule 4
+ ,4 // subrule 6 for rule 5
+ ,4 // subrule 7 for rule 5
+ ,5 // subrule 8 for rule 6
+ ,6 // subrule 9 for rule 7
+};
+
+ AST* Cepsilon_rules::advance_element(AST* Elemt){
+ AST* nxt_t = AST::brother(*Elemt);// next element
+ for(;;){// bypass thread expression: go to jail ... eosubrule
+ using namespace NS_yacco2_T_enum;
+ CAbs_lr1_sym* sym = AST::content(*nxt_t);
+ switch(sym->enumerated_id__){
+ case T_Enum::T_T_identifier_: break;
+ case T_Enum::T_T_2colon_: break;
+ case T_Enum::T_T_NULL_: break;
+ case T_Enum::T_T_cweb_marker_: break;
+ case T_Enum::T_T_cweb_comment_: break;
+ default: return nxt_t;
+ }
+ nxt_t = AST::brother(*nxt_t);// skip thread expr: next element
+ }
+ }
+ void Cepsilon_rules::deal_with_derives_list(){
+ // force cweave to
+ using namespace NS_yacco2_T_enum;
+ bool has_list_chged(false);
+ std::list<elem_list_type >::iterator i;
+ Read_list:;
+ i = derives_list_.begin();
+ if(i == derives_list_.end()) return;
+ for(;i != derives_list_.end();){ // force cweave
+ elem_list_type& el = *i;
+ CAbs_lr1_sym* rteos = AST::content(*el.elem_t_);// force cweave
+ switch(rteos->enumerated_id__){// force cweave
+ case T_Enum::T_refered_rule_:{
+ refered_rule* rr = (refered_rule*)rteos;
+ rule_in_stbl* rstbl = rr->Rule_in_stbl();
+ using namespace yacco2_stbl;
+ T_sym_tbl_report_card report_card;
+ get_sym_entry_by_sub(report_card,rstbl->stbl_idx());
+ if(report_card.status_ == T_sym_tbl_report_card::failure){
+ report_card.err_entry_->set_rc(*rr,__FILE__,__LINE__);
+ parser__->add_token_to_error_queue(*report_card.err_entry_);
+ return;// caused by problem with sym. tbl
+ }
+ if(report_card.tbl_entry_->defined_ == false){
+ CAbs_lr1_sym* sym = new Err_used_rule_but_undefined;
+ sym->set_rc(*rr,__FILE__,__LINE__);
+ parser__->add_token_to_error_queue(*sym);
+ // keep pouring them into the error queue
+ has_list_chged = true;// go to next element
+ el.elem_t_ = advance_element(el.elem_t_);
+ ++i;// next sr in derive list
+ break;
+ }
+ rule_def* r = rr->Rule_in_stbl()->r_def();
+ if(r->epsilon() == YES){
+ has_list_chged = true;
+ el.elem_t_ = advance_element(el.elem_t_);
+ ++i;// next sr in derive list
+ if(el.gen_epsilon_ != EPSILON_NO){
+ el.gen_epsilon_ = EPSILON_MAYBE;
+ }
+ break;
+ }
+ if(r->derive_t() == YES){
+ has_list_chged = true;
+ el.elem_t_ = advance_element(el.elem_t_);
+ el.gen_epsilon_ = EPSILON_NO;
+ ++i;// next sr in derive list
+ break;
+ }
+ ++i;// indeterminate spot: next pass might free it up so next sr
+ break;
+ }
+ case T_Enum::T_T_eosubrule_:{
+ if(el.gen_epsilon_!= EPSILON_NO){
+ el.rule_->epsilon(YES);
+ el.subrule_->epsilon(YES);
+ }else{
+ el.subrule_->epsilon(NO);
+ el.rule_->derive_t(YES);
+ }
+ has_list_chged = true;
+ i = derives_list_.erase(i);// finished with sr
+ break;
+ }
+ case T_Enum::T_T_null_call_thread_eosubrule_:{
+ el.gen_epsilon_ = EPSILON_NO;
+ el.subrule_->epsilon(NO);
+ el.rule_->derive_t(YES);
+ has_list_chged = true;
+ i = derives_list_.erase(i);// finished with sr
+ break;
+ }
+ case T_Enum::T_T_called_thread_eosubrule_:{
+ el.gen_epsilon_ = EPSILON_NO;
+ el.subrule_->epsilon(NO);
+ el.rule_->derive_t(YES);
+ has_list_chged = true;
+ i = derives_list_.erase(i);// finished with sr
+ break;
+ }
+ case T_Enum::T_refered_T_:{
+ el.gen_epsilon_ = EPSILON_NO;
+ el.subrule_->epsilon(NO);
+ has_list_chged = true;
+ el.elem_t_ = advance_element(el.elem_t_);
+ ++i;// next sr in derive list
+ refered_T* rt = (refered_T*)rteos;
+ break;
+ }
+ default:{ // lr k
+ el.gen_epsilon_ = EPSILON_NO;
+ el.subrule_->epsilon(NO);
+ has_list_chged = true;
+ el.elem_t_ = advance_element(el.elem_t_);
+ ++i;// next sr in derive list
+ break;
+ }
+ }
+
+ }
+ if(derives_list_.empty() == true) return;// kosher grammar
+ if(has_list_chged == true){// still o/s but going forward
+ has_list_chged = false;
+ goto Read_list;
+ }
+}
+ void Cepsilon_rules::deal_with_undecided_derives_list(){
+ // chk if undefined rules were found: yes out damn spot
+ if(parser__->error_queue()->empty() != true) return;
+ // errors: pathological grammar
+ std::list<elem_list_type >::iterator
+ i = derives_list_.begin();
+ if(i == derives_list_.end()) return;
+ for(;i != derives_list_.end();++i){
+ elem_list_type& el = *i;
+ CAbs_lr1_sym* elem = AST::content(*el.elem_t_);
+ CAbs_lr1_sym* sym = new ERR_sick_grammar;
+ sym->set_rc(*elem,__FILE__,__LINE__);
+ parser__->add_token_to_error_queue(*sym);
+ }
+ }
+
+
+Repsilon_rules::Repsilon_rules(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Repsilon_rules",0,Cepsilon_rules::R_Repsilon_rules_,P,false,false){
+}
+
+void Repsilon_rules::sr1(){
+
+ Cepsilon_rules* fsm = (Cepsilon_rules*)rule_info__.parser__->fsm_tbl__;
+ fsm->deal_with_derives_list();
+ if(fsm->derives_list_.empty() != true){
+ fsm->deal_with_undecided_derives_list();
+ }
+
+}
+
+Rrules::Rrules(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrules",0,Cepsilon_rules::R_Rrules_,P,false,false){
+}
+
+Rrule::Rrule(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrule",0,Cepsilon_rules::R_Rrule_,P,false,false){
+}
+
+Rrule_def::Rrule_def(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrule_def",0,Cepsilon_rules::R_Rrule_def_,P,false,false){
+}
+
+void Rrule_def::sr1(){
+ struct SF{
+ rule_def* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cepsilon_rules* fsm = (Cepsilon_rules*)rule_info__.parser__->fsm_tbl__;
+ fsm->rule_def_ = sf->p1__;
+
+}
+
+Rsubrules::Rsubrules(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsubrules",0,Cepsilon_rules::R_Rsubrules_,P,false,false){
+}
+
+Rsubrule::Rsubrule(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsubrule",0,Cepsilon_rules::R_Rsubrule_,P,false,false){
+}
+
+Rsubrule_def::Rsubrule_def(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsubrule_def",0,Cepsilon_rules::R_Rsubrule_def_,P,false,false){
+}
+
+void Rsubrule_def::sr1(){
+ struct SF{
+ T_subrule_def* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cepsilon_rules* fsm = (Cepsilon_rules*)rule_info__.parser__->fsm_tbl__;
+ fsm->subrule_def_ = sf->p1__;
+ AST* sr_t = fsm->subrule_def_->subrule_s_tree();
+ AST* et = AST::get_spec_child(*sr_t,1);
+ fsm->derives_list_.push_back
+ (elem_list_type(fsm->rule_def_,fsm->subrule_def_,et));
+
+}
+
diff --git a/web/yacco2/compiler/grammars/epsilon_rules.fsc b/web/yacco2/compiler/grammars/epsilon_rules.fsc
new file mode 100644
index 0000000000..04a18a9cde
--- /dev/null
+++ b/web/yacco2/compiler/grammars/epsilon_rules.fsc
@@ -0,0 +1,20 @@
+/*
+ File: epsilon_rules.fsc
+ Date and Time: Fri Jan 30 18:55:10 2015
+*/
+transitive n
+grammar-name "epsilon_rules"
+name-space "NS_epsilon_rules"
+thread-name "Cepsilon_rules"
+monolithic y
+file-name "epsilon_rules.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ rule_def
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"Determine whether rules are epsilon, derive T, or are pathological."
diff --git a/web/yacco2/compiler/grammars/epsilon_rules.h b/web/yacco2/compiler/grammars/epsilon_rules.h
new file mode 100644
index 0000000000..8b1d918e28
--- /dev/null
+++ b/web/yacco2/compiler/grammars/epsilon_rules.h
@@ -0,0 +1,146 @@
+/*
+ File: epsilon_rules.h
+ Date and Time: Fri Jan 30 18:55:10 2015
+*/
+#ifndef __epsilon_rules_h__
+#define __epsilon_rules_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "yacco2_stbl.h"
+using namespace NS_yacco2_terminals;
+#define EPSILON_YES 0
+#define EPSILON_NO 1
+#define EPSILON_DONT_KNOW 2
+#define EPSILON_MAYBE 3
+
+struct elem_list_type{
+ rule_def* rule_;
+ T_subrule_def* subrule_;
+ AST* elem_t_;
+ int gen_epsilon_;
+ int gen_t_;
+ elem_list_type
+ (rule_def* Rule
+ ,T_subrule_def* Subrule
+ ,AST* Elem_t){
+ rule_ = Rule;
+ subrule_ = Subrule;
+ elem_t_ = Elem_t;
+ gen_epsilon_ = EPSILON_DONT_KNOW;
+ gen_t_ = false;
+ };
+ elem_list_type(){
+ rule_ = 0;
+ subrule_ = 0;
+ elem_t_ = 0;
+ gen_epsilon_ = false;
+ gen_t_ = false;
+ };
+};
+
+// monolithic grammar: no thread
+extern yacco2::State S1_Cepsilon_rules;
+namespace NS_epsilon_rules {
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[7];
+};
+class Cepsilon_rules: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Repsilon_rules_ = 569//start_of_rule_list + 0
+ ,rhs1_Repsilon_rules_ = 1
+ ,R_Rrules_ = 570//start_of_rule_list + 2
+ ,rhs1_Rrules_ = 2
+ ,rhs2_Rrules_ = 3
+ ,R_Rrule_ = 571//start_of_rule_list + 4
+ ,rhs1_Rrule_ = 4
+ ,R_Rrule_def_ = 572//start_of_rule_list + 6
+ ,rhs1_Rrule_def_ = 5
+ ,R_Rsubrules_ = 573//start_of_rule_list + 8
+ ,rhs1_Rsubrules_ = 6
+ ,rhs2_Rsubrules_ = 7
+ ,R_Rsubrule_ = 574//start_of_rule_list + 10
+ ,rhs1_Rsubrule_ = 8
+ ,R_Rsubrule_def_ = 575//start_of_rule_list + 12
+ ,rhs1_Rsubrule_def_ = 9
+ };
+ //no of la sets = 4
+ //no of states = 12
+ Cepsilon_rules();
+ ~Cepsilon_rules();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[10];
+
+ public:
+ std::list<elem_list_type > derives_list_;
+ rule_def* rule_def_;
+ T_subrule_def* subrule_def_;
+ AST* elem_t_;
+ tok_can< AST* > * ip_can_;
+ void deal_with_derives_list();
+ void deal_with_undecided_derives_list();
+ AST* advance_element(AST* Elemt);
+
+ };
+struct Repsilon_rules;
+struct Rrules;
+struct Rrule;
+struct Rrule_def;
+struct Rsubrules;
+struct Rsubrule;
+struct Rsubrule_def;
+struct Repsilon_rules:public yacco2::CAbs_lr1_sym {
+ Repsilon_rules(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rrules:public yacco2::CAbs_lr1_sym {
+ Rrules(yacco2::Parser* P);
+ public:
+};
+
+struct Rrule:public yacco2::CAbs_lr1_sym {
+ Rrule(yacco2::Parser* P);
+ public:
+};
+
+struct Rrule_def:public yacco2::CAbs_lr1_sym {
+ Rrule_def(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rsubrules:public yacco2::CAbs_lr1_sym {
+ Rsubrules(yacco2::Parser* P);
+ public:
+};
+
+struct Rsubrule:public yacco2::CAbs_lr1_sym {
+ Rsubrule(yacco2::Parser* P);
+ public:
+};
+
+struct Rsubrule_def:public yacco2::CAbs_lr1_sym {
+ Rsubrule_def(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/epsilon_rules.lex b/web/yacco2/compiler/grammars/epsilon_rules.lex
new file mode 100644
index 0000000000..73b8c73c42
--- /dev/null
+++ b/web/yacco2/compiler/grammars/epsilon_rules.lex
@@ -0,0 +1,414 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: epsilon_rules.lex
+Dates: 23 Sept. 2005
+Purpose: determine epsilon rules.
+How: Read the rules' tree in prefix order filtering out:
+ ::, rules-phrase, identifier, NULL
+ adding rules to yes or no piles or maybe list
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |epsilon_rules| grammar.\fbreak
+Determine and check for the following:\fbreak
+\ptindent{1: epsilon rules}
+\ptindent{2: rules not deriving any string}
+\ptindent{3: referenced rules are defined}
+\ptindent{4: recursion cycling deriving only epsilon}
+\ptindent{5: ambiguous subrules caused by multiple recursion cycling}
+\fbreak
+Epsilon definition:\fbreak
+A rule having a subrule with no grammar symbols present:
+ie, it derives an empty symbol string.
+This is explicit epsilon.
+A second condition is when a rule's subrule
+has all its symbols as rules and they are
+all epsiloned. I call this transient epsilon. It doesn't matter
+how the condition is arrived at.
+Now a third condition is the ``invisible-shift'' operator usuage.
+Though it's not part of the token stream per say it is normally used
+to get out of ambigous situations and so is part of the lookahead set.
+Once apon a time i thought this was an implicit epsilon: IT IS NOT.\fbreak
+\fbreak
+Some epsilon terminalogy:\fbreak
+Noun: epsilon represents the empty string of symbols.
+The Greek flavour ($\epsilon$) represents it visually.\fbreak
+Adjective: epsilonable - has the empty symbol string condition
+and non-epsilonable generates terminal strings.\fbreak
+Verb: shake and bake the tenses.\fbreak
+Verbal: epsiloned.\fbreak
+\fbreak
+This grammar demonstrates the elegance of flow control.
+Review of a grammar's flow control:\fbreak
+This depends on how the grammar tree
+is walked. This grammar receives its
+tokens in prefix formation:
+a ``rule-def'' token is processed before
+its ``subrule-def''.
+Using sentences, a subrule's expression will be processed before its left-handside rule.
+This means the dependencies are in bottom-up left-to-right order of
+token recognition.
+One can use the prefix order to initialize the various conditions, and
+postfix the results from the bottom-up order.
+A grammar of no tokens can be programmed using all epsiloned rules
+whereby the rules act as logic triggers.
+In this paricular example, the grammar was originally
+written to detect ``epsilon'' rules.
+Now it detects whether all rules derive T. The grammar recognition
+just loads up into a 2 dimensional list the rule x subrule x element.
+Once the language is accepted, it then traverses the list to derive
+the terminal strings per subrule.\fbreak
+\fbreak
+The Algorithm.\fbreak
+Pass one: fill up the derives list\fbreak
+Fill up the triplet list of all subrules: rule $\otimes$ subrule $\otimes$ element.
+One can view it as a 2 dimensional array where the row is subrule dominent
+with its subordinent element columns. The rule just tags along providing
+the parental anchor.
+The grammar tree is walked top-down (prefix order) to
+load up the derives list.
+Only the ``rule-def'' and ``subrule-def'' come in as tokens
+while the elements are filtered out.
+This was done for efficiency reasons.
+Within the grammar at the ``subrule-def'' logic point,
+the ``subrule-def'' start element is fetched by
+syntax directed code.
+\fbreak
+\fbreak
+Pass 2: derive T for each subrule\fbreak
+Try to derive terminal strings for each indeterminate subrule.
+This stage does multilpe passes thru the derives list
+whereby each
+pass is predicated on the fact that the previous pass
+has a change in the status of a subrule
+--- advance to the next element or
+the subrule's elements have been consumed.
+How is this a 2 dimensional walk?
+The subrules in the list are the dominant axis while its elements are the
+secondary axis. This is a dynamic grid of points being consumned.
+The final outcome is either the grammar's subrules all derive
+terminal strings and the derives list is empty
+or the remainder of items are
+the pathological subrules.\fbreak
+\fbreak
+Examples of Pathological conditions:\fbreak
+Rule {\bf A} calls itself or
+a variation of {\bf A} calls {\bf B} calls {\bf A} without
+any terminal strings in their subrules.\fbreak
+\fbreak
+Please look at the following test grammars that exercise the pathos...\fbreak
+\ptindent{1: |ts_path1.lex|}
+\ptindent{2: |ts_path1a.lex|}
+\ptindent{3: |ts_path2.lex|}
+\ptindent{4: |ts_path3.lex|}
+\ptindent{5: |ts_path4.lex|}
+\ptindent{6: |ts_path5.lex|}
+\ptindent{7: |ts_path6.lex|}
+\ptindent{8: |ts_path7.lex|}
+They are exercised by |qa_alltests.bat| batch command file.
+@*2 Recursion and derives a string.\fbreak
+Derives:\fbreak
+Greek symbols are used to denote a mixed string of symbol(s) drawn from
+the nonterminal, terminal vocabularies. The empty string is
+represented by $\epsilon$.
+Derives is a relationship that starts with a string of symbols and substitutes
+ equivalent strings of symbols until eventually nomore substitutions can take place.
+ The resulting string is either empty or a string of terminals.
+ The order of substitution will be from left to right.
+The $\longrightarrow$ symbol represents the derives relation.
+Sometimes i will subscript the greek symbol
+with $\epsilon$ denoting that it derives the empty string.
+The $\not\longrightarrow$\ symbol represents ``no derives'' takes place.
+I use this where a specific subrule pattern is being
+discussed and the greek symbol is not present.
+
+
+\fbreak
+Left recursion: A \subrule \ A $\beta${} \fbreak
+As shown, the rule {\bf A} calls itself from the left part of its subrule.
+$\beta${} represents strings of Rules and Terminals\fbreak
+\fbreak
+Right recursion: A \subrule \ $\alpha${} \ A \fbreak
+The rule {\bf A} calls itself from the end of the subrule as shown.
+$\alpha${} represents strings of Rules and Terminals.\fbreak
+
+@*2 Pathological Grammars.\fbreak
+The below pictures grids the good the bad and the ugly.
+\fbreak
+Note: the emitted code contains some imperfections caused by |cweave|.
+When i have time i'll deal with |cweave|. Reader beware.
+\fbreak
+\fbreak
+@/
+
+fsm
+(fsm-id "epsilon_rules.lex"
+,fsm-filename epsilon_rules
+,fsm-namespace NS_epsilon_rules
+,fsm-class Cepsilon_rules{
+ user-prefix-declaration
+#include "yacco2_stbl.h"
+using namespace NS_yacco2_terminals;
+#define EPSILON_YES 0
+#define EPSILON_NO 1
+#define EPSILON_DONT_KNOW 2
+#define EPSILON_MAYBE 3
+
+struct elem_list_type{
+ rule_def* rule_;
+ T_subrule_def* subrule_;
+ AST* elem_t_;
+ int gen_epsilon_;
+ int gen_t_;
+ elem_list_type
+ (rule_def* Rule
+ ,T_subrule_def* Subrule
+ ,AST* Elem_t){
+ rule_ = Rule;
+ subrule_ = Subrule;
+ elem_t_ = Elem_t;
+ gen_epsilon_ = EPSILON_DONT_KNOW;
+ gen_t_ = false;
+ };
+ elem_list_type(){
+ rule_ = 0;
+ subrule_ = 0;
+ elem_t_ = 0;
+ gen_epsilon_ = false;
+ gen_t_ = false;
+ };
+};
+ ***
+ user-declaration
+ public:
+ std::list<elem_list_type > derives_list_;
+ rule_def* rule_def_;
+ T_subrule_def* subrule_def_;
+ AST* elem_t_;
+ tok_can< AST* > * ip_can_;
+ void deal_with_derives_list();
+ void deal_with_undecided_derives_list();
+ AST* advance_element(AST* Elemt);
+ ***
+ user-implementation
+ AST* Cepsilon_rules::advance_element(AST* Elemt){
+ AST* nxt_t = AST::brother(*Elemt);// next element
+ for(;;){// bypass thread expression: go to jail ... eosubrule
+ using namespace NS_yacco2_T_enum;
+ CAbs_lr1_sym* sym = AST::content(*nxt_t);
+ switch(sym->enumerated_id__){
+ case T_Enum::T_T_identifier_: break;
+ case T_Enum::T_T_2colon_: break;
+ case T_Enum::T_T_NULL_: break;
+ case T_Enum::T_T_cweb_marker_: break;
+ case T_Enum::T_T_cweb_comment_: break;
+ default: return nxt_t;
+ }
+ nxt_t = AST::brother(*nxt_t);// skip thread expr: next element
+ }
+ }
+ void Cepsilon_rules::deal_with_derives_list(){
+ // force cweave to
+ using namespace NS_yacco2_T_enum;
+ bool has_list_chged(false);
+ std::list<elem_list_type >::iterator i;
+ Read_list:;
+ i = derives_list_.begin();
+ if(i == derives_list_.end()) return;
+ for(;i != derives_list_.end();){ // force cweave
+ elem_list_type& el = *i;
+ CAbs_lr1_sym* rteos = AST::content(*el.elem_t_);// force cweave
+ switch(rteos->enumerated_id__){// force cweave
+ case T_Enum::T_refered_rule_:{
+ refered_rule* rr = (refered_rule*)rteos;
+ rule_in_stbl* rstbl = rr->Rule_in_stbl();
+ using namespace yacco2_stbl;
+ T_sym_tbl_report_card report_card;
+ get_sym_entry_by_sub(report_card,rstbl->stbl_idx());
+ if(report_card.status_ == T_sym_tbl_report_card::failure){
+ report_card.err_entry_->set_rc(*rr,__FILE__,__LINE__);
+ parser__->add_token_to_error_queue(*report_card.err_entry_);
+ return;// caused by problem with sym. tbl
+ }
+ if(report_card.tbl_entry_->defined_ == false){
+ CAbs_lr1_sym* sym = new Err_used_rule_but_undefined;
+ sym->set_rc(*rr,__FILE__,__LINE__);
+ parser__->add_token_to_error_queue(*sym);
+ // keep pouring them into the error queue
+ has_list_chged = true;// go to next element
+ el.elem_t_ = advance_element(el.elem_t_);
+ ++i;// next sr in derive list
+ break;
+ }
+ rule_def* r = rr->Rule_in_stbl()->r_def();
+ if(r->epsilon() == YES){
+ has_list_chged = true;
+ el.elem_t_ = advance_element(el.elem_t_);
+ ++i;// next sr in derive list
+ if(el.gen_epsilon_ != EPSILON_NO){
+ el.gen_epsilon_ = EPSILON_MAYBE;
+ }
+ break;
+ }
+ if(r->derive_t() == YES){
+ has_list_chged = true;
+ el.elem_t_ = advance_element(el.elem_t_);
+ el.gen_epsilon_ = EPSILON_NO;
+ ++i;// next sr in derive list
+ break;
+ }
+ ++i;// indeterminate spot: next pass might free it up so next sr
+ break;
+ }
+ case T_Enum::T_T_eosubrule_:{
+ if(el.gen_epsilon_!= EPSILON_NO){
+ el.rule_->epsilon(YES);
+ el.subrule_->epsilon(YES);
+ }else{
+ el.subrule_->epsilon(NO);
+ el.rule_->derive_t(YES);
+ }
+ has_list_chged = true;
+ i = derives_list_.erase(i);// finished with sr
+ break;
+ }
+ case T_Enum::T_T_null_call_thread_eosubrule_:{
+ el.gen_epsilon_ = EPSILON_NO;
+ el.subrule_->epsilon(NO);
+ el.rule_->derive_t(YES);
+ has_list_chged = true;
+ i = derives_list_.erase(i);// finished with sr
+ break;
+ }
+ case T_Enum::T_T_called_thread_eosubrule_:{
+ el.gen_epsilon_ = EPSILON_NO;
+ el.subrule_->epsilon(NO);
+ el.rule_->derive_t(YES);
+ has_list_chged = true;
+ i = derives_list_.erase(i);// finished with sr
+ break;
+ }
+ case T_Enum::T_refered_T_:{
+ el.gen_epsilon_ = EPSILON_NO;
+ el.subrule_->epsilon(NO);
+ has_list_chged = true;
+ el.elem_t_ = advance_element(el.elem_t_);
+ ++i;// next sr in derive list
+ refered_T* rt = (refered_T*)rteos;
+ break;
+ }
+ default:{ // lr k
+ el.gen_epsilon_ = EPSILON_NO;
+ el.subrule_->epsilon(NO);
+ has_list_chged = true;
+ el.elem_t_ = advance_element(el.elem_t_);
+ ++i;// next sr in derive list
+ break;
+ }
+ }
+
+ }
+ if(derives_list_.empty() == true) return;// kosher grammar
+ if(has_list_chged == true){// still o/s but going forward
+ has_list_chged = false;
+ goto Read_list;
+ }
+}
+ void Cepsilon_rules::deal_with_undecided_derives_list(){
+ // chk if undefined rules were found: yes out damn spot
+ if(parser__->error_queue()->empty() != true) return;
+ // errors: pathological grammar
+ std::list<elem_list_type >::iterator
+ i = derives_list_.begin();
+ if(i == derives_list_.end()) return;
+ for(;i != derives_list_.end();++i){
+ elem_list_type& el = *i;
+ CAbs_lr1_sym* elem = AST::content(*el.elem_t_);
+ CAbs_lr1_sym* sym = new ERR_sick_grammar;
+ sym->set_rc(*elem,__FILE__,__LINE__);
+ parser__->add_token_to_error_queue(*sym);
+ }
+ }
+
+ ***
+ op
+ rule_def_ = 0;
+ subrule_def_ = 0;
+ elem_t_ = 0;
+ ip_can_ = (tok_can< AST* >*)parser__->token_supplier__;
+ ***
+}
+,fsm-version "1.0",fsm-date "26 sept. 2005",fsm-debug "false"
+,fsm-comments "Determine whether rules are epsilon, derive T, or are pathological.")
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Repsilon_rules
+(){
+ -> Rrules eog {
+/@
+Pass 2 and greater.
+@/
+ op
+ Cepsilon_rules* fsm = (Cepsilon_rules*)rule_info__.parser__->fsm_tbl__;
+ fsm->deal_with_derives_list();
+ if(fsm->derives_list_.empty() != true){
+ fsm->deal_with_undecided_derives_list();
+ }
+ ***
+ }
+}
+
+Rrules (){
+ -> Rrule
+ -> Rrules Rrule
+}
+
+Rrule (){
+ -> Rrule_def Rsubrules
+}
+
+Rrule_def (){
+ -> "rule-def" {
+ /@
+ Initialize for its subrule findings.
+ @/
+ op
+ Cepsilon_rules* fsm = (Cepsilon_rules*)rule_info__.parser__->fsm_tbl__;
+ fsm->rule_def_ = sf->p1__;
+ ***
+ }
+}
+
+Rsubrules (){
+ -> Rsubrule
+ -> Rsubrules Rsubrule
+}
+
+Rsubrule (){
+ -> Rsubrule_def
+}
+
+Rsubrule_def (){
+ -> "subrule-def" {
+ /@
+ Create the entry within the |derives_list_|.
+ This will be walked until either
+ all the subrules' elements are derived or they are pathological.
+ @/
+
+ op
+ Cepsilon_rules* fsm = (Cepsilon_rules*)rule_info__.parser__->fsm_tbl__;
+ fsm->subrule_def_ = sf->p1__;
+ AST* sr_t = fsm->subrule_def_->subrule_s_tree();
+ AST* et = AST::get_spec_child(*sr_t,1);
+ fsm->derives_list_.push_back
+ (elem_list_type(fsm->rule_def_,fsm->subrule_def_,et));
+ ***
+ }
+}
+
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/epsilon_rulessym.cpp b/web/yacco2/compiler/grammars/epsilon_rulessym.cpp
new file mode 100644
index 0000000000..ef828463b5
--- /dev/null
+++ b/web/yacco2/compiler/grammars/epsilon_rulessym.cpp
@@ -0,0 +1,156 @@
+/*
+ File: epsilon_rulessym.cpp
+ Date and Time: Fri Jan 30 18:55:10 2015
+*/
+#include "epsilon_rules.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_epsilon_rules;// grammar's ns
+// first set terminals
+// monolithic grammar --- no thread
+void
+Cepsilon_rules::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Repsilon_rules_:{
+ Repsilon_rules* sym;
+ if(re->rule_ == 0){
+ sym = new Repsilon_rules(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Repsilon_rules*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rrules_:{
+ Rrules* sym;
+ if(re->rule_ == 0){
+ sym = new Rrules(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrules*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rrules_:{
+ Rrules* sym;
+ if(re->rule_ == 0){
+ sym = new Rrules(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrules*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rrule_:{
+ Rrule* sym;
+ if(re->rule_ == 0){
+ sym = new Rrule(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrule*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rrule_def_:{
+ Rrule_def* sym;
+ if(re->rule_ == 0){
+ sym = new Rrule_def(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrule_def*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rsubrules_:{
+ Rsubrules* sym;
+ if(re->rule_ == 0){
+ sym = new Rsubrules(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsubrules*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rsubrules_:{
+ Rsubrules* sym;
+ if(re->rule_ == 0){
+ sym = new Rsubrules(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsubrules*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rsubrule_:{
+ Rsubrule* sym;
+ if(re->rule_ == 0){
+ sym = new Rsubrule(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsubrule*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rsubrule_def_:{
+ Rsubrule_def* sym;
+ if(re->rule_ == 0){
+ sym = new Rsubrule_def(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsubrule_def*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/epsilon_rulestbl.cpp b/web/yacco2/compiler/grammars/epsilon_rulestbl.cpp
new file mode 100644
index 0000000000..e93715da20
--- /dev/null
+++ b/web/yacco2/compiler/grammars/epsilon_rulestbl.cpp
@@ -0,0 +1,241 @@
+/*
+ File: epsilon_rulestbl.cpp
+ Date and Time: Fri Jan 30 18:55:10 2015
+*/
+#include "epsilon_rules.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_epsilon_rules;// grammar's ns
+// first set terminals
+// T_subrule_def
+yacco2::UCHAR LA1_Cepsilon_rules[] ={
+1
+,42,64
+};
+// LR1_eolr
+yacco2::UCHAR LA2_Cepsilon_rules[] ={
+1
+,0,4
+};
+// LR1_eog
+// rule_def
+yacco2::UCHAR LA3_Cepsilon_rules[] ={
+2
+,0,2
+,42,16
+};
+// LR1_eog
+// rule_def
+// T_subrule_def
+yacco2::UCHAR LA4_Cepsilon_rules[] ={
+2
+,0,2
+,42,80
+};
+extern yacco2::State S1_Cepsilon_rules;
+extern yacco2::State S2_Cepsilon_rules;
+extern yacco2::State S3_Cepsilon_rules;
+extern yacco2::State S4_Cepsilon_rules;
+extern yacco2::State S5_Cepsilon_rules;
+extern yacco2::State S6_Cepsilon_rules;
+extern yacco2::State S7_Cepsilon_rules;
+extern yacco2::State S8_Cepsilon_rules;
+extern yacco2::State S9_Cepsilon_rules;
+extern yacco2::State S10_Cepsilon_rules;
+extern yacco2::State S11_Cepsilon_rules;
+extern yacco2::State S12_Cepsilon_rules;
+struct S1std_Cepsilon_rules{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S1std_Cepsilon_rules S1st_Cepsilon_rules = {
+ 5
+ ,
+ {// start of table
+ {340,(State*)&S2_Cepsilon_rules} // shift sym: rule_def
+ ,{569,(State*)&S1_Cepsilon_rules} // accept sym: Repsilon_rules
+ ,{570,(State*)&S3_Cepsilon_rules} // shift sym: Rrules
+ ,{571,(State*)&S12_Cepsilon_rules} // shift sym: Rrule
+ ,{572,(State*)&S6_Cepsilon_rules} // shift sym: Rrule_def
+ }// end of shift table
+};
+yacco2::State S1_Cepsilon_rules = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Cepsilon_rules,0,0,0,0};
+struct S2rtd_Cepsilon_rules{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Cepsilon_rules S2rt_Cepsilon_rules = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cepsilon_rules,Cepsilon_rules::rhs1_Rrule_def_}
+ }// end of reduce table
+};
+yacco2::State S2_Cepsilon_rules = //State's vectored into symbol: "rule-def"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Cepsilon_rules,0,0,0};
+struct S3std_Cepsilon_rules{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S3std_Cepsilon_rules S3st_Cepsilon_rules = {
+ 4
+ ,
+ {// start of table
+ {1,(State*)&S4_Cepsilon_rules} // shift sym: LR1_eog
+ ,{340,(State*)&S2_Cepsilon_rules} // shift sym: rule_def
+ ,{571,(State*)&S5_Cepsilon_rules} // shift sym: Rrule
+ ,{572,(State*)&S6_Cepsilon_rules} // shift sym: Rrule_def
+ }// end of shift table
+};
+yacco2::State S3_Cepsilon_rules = //State's vectored into symbol: "Rrules"
+{3
+,0,0,0,0,(Shift_tbl*)&S3st_Cepsilon_rules,0,0,0,0};
+struct S4rtd_Cepsilon_rules{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Cepsilon_rules S4rt_Cepsilon_rules = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cepsilon_rules,Cepsilon_rules::rhs1_Repsilon_rules_}
+ }// end of reduce table
+};
+yacco2::State S4_Cepsilon_rules = //State's vectored into symbol: "eog"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Cepsilon_rules,0,0,0};
+struct S5rtd_Cepsilon_rules{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Cepsilon_rules S5rt_Cepsilon_rules = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cepsilon_rules,Cepsilon_rules::rhs2_Rrules_}
+ }// end of reduce table
+};
+yacco2::State S5_Cepsilon_rules = //State's vectored into symbol: "Rrule"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Cepsilon_rules,0,0,0};
+struct S6std_Cepsilon_rules{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S6std_Cepsilon_rules S6st_Cepsilon_rules = {
+ 4
+ ,
+ {// start of table
+ {342,(State*)&S7_Cepsilon_rules} // shift sym: T_subrule_def
+ ,{573,(State*)&S8_Cepsilon_rules} // shift sym: Rsubrules
+ ,{574,(State*)&S11_Cepsilon_rules} // shift sym: Rsubrule
+ ,{575,(State*)&S10_Cepsilon_rules} // shift sym: Rsubrule_def
+ }// end of shift table
+};
+yacco2::State S6_Cepsilon_rules = //State's vectored into symbol: "Rrule_def"
+{6
+,0,0,0,0,(Shift_tbl*)&S6st_Cepsilon_rules,0,0,0,0};
+struct S7rtd_Cepsilon_rules{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Cepsilon_rules S7rt_Cepsilon_rules = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cepsilon_rules,Cepsilon_rules::rhs1_Rsubrule_def_}
+ }// end of reduce table
+};
+yacco2::State S7_Cepsilon_rules = //State's vectored into symbol: "subrule-def"
+{7
+,0,0,0,0,0,(Reduce_tbl*)&S7rt_Cepsilon_rules,0,0,0};
+struct S8std_Cepsilon_rules{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S8std_Cepsilon_rules S8st_Cepsilon_rules = {
+ 3
+ ,
+ {// start of table
+ {342,(State*)&S7_Cepsilon_rules} // shift sym: T_subrule_def
+ ,{574,(State*)&S9_Cepsilon_rules} // shift sym: Rsubrule
+ ,{575,(State*)&S10_Cepsilon_rules} // shift sym: Rsubrule_def
+ }// end of shift table
+};
+struct S8rtd_Cepsilon_rules{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S8rtd_Cepsilon_rules S8rt_Cepsilon_rules = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cepsilon_rules,Cepsilon_rules::rhs1_Rrule_}
+ }// end of reduce table
+};
+yacco2::State S8_Cepsilon_rules = //State's vectored into symbol: "Rsubrules"
+{8
+,0,0,0,0,(Shift_tbl*)&S8st_Cepsilon_rules,(Reduce_tbl*)&S8rt_Cepsilon_rules,0,0,0};
+struct S9rtd_Cepsilon_rules{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Cepsilon_rules S9rt_Cepsilon_rules = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cepsilon_rules,Cepsilon_rules::rhs2_Rsubrules_}
+ }// end of reduce table
+};
+yacco2::State S9_Cepsilon_rules = //State's vectored into symbol: "Rsubrule"
+{9
+,0,0,0,0,0,(Reduce_tbl*)&S9rt_Cepsilon_rules,0,0,0};
+struct S10rtd_Cepsilon_rules{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S10rtd_Cepsilon_rules S10rt_Cepsilon_rules = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cepsilon_rules,Cepsilon_rules::rhs1_Rsubrule_}
+ }// end of reduce table
+};
+yacco2::State S10_Cepsilon_rules = //State's vectored into symbol: "Rsubrule_def"
+{10
+,0,0,0,0,0,(Reduce_tbl*)&S10rt_Cepsilon_rules,0,0,0};
+struct S11rtd_Cepsilon_rules{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Cepsilon_rules S11rt_Cepsilon_rules = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cepsilon_rules,Cepsilon_rules::rhs1_Rsubrules_}
+ }// end of reduce table
+};
+yacco2::State S11_Cepsilon_rules = //State's vectored into symbol: "Rsubrule"
+{11
+,0,0,0,0,0,(Reduce_tbl*)&S11rt_Cepsilon_rules,0,0,0};
+struct S12rtd_Cepsilon_rules{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S12rtd_Cepsilon_rules S12rt_Cepsilon_rules = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cepsilon_rules,Cepsilon_rules::rhs1_Rrules_}
+ }// end of reduce table
+};
+yacco2::State S12_Cepsilon_rules = //State's vectored into symbol: "Rrule"
+{12
+,0,0,0,0,0,(Reduce_tbl*)&S12rt_Cepsilon_rules,0,0,0};
diff --git a/web/yacco2/compiler/grammars/err_symbols_ph.cpp b/web/yacco2/compiler/grammars/err_symbols_ph.cpp
new file mode 100644
index 0000000000..fbd542ea79
--- /dev/null
+++ b/web/yacco2/compiler/grammars/err_symbols_ph.cpp
@@ -0,0 +1,109 @@
+/*
+ File: err_symbols_ph.cpp
+ Date and Time: Fri Jan 30 18:55:10 2015
+*/
+#include "err_symbols_ph.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_err_symbols_ph;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 2;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+}
+ Cerr_symbols_ph::
+ Cerr_symbols_ph()
+ :yacco2::CAbs_fsm
+ ("err_symbols_ph.lex"
+ ,"1.0"
+ ,"23 mar 2004"
+ ,false
+ ,"Dispatcher to parse ``error-symbols'' vocabulary."
+ ,"Fri Jan 30 18:55:10 2015 "
+ ,S1_Cerr_symbols_ph){
+
+ cweb_marker__ = 0;
+
+ }
+
+Cerr_symbols_ph::~Cerr_symbols_ph(){
+
+ for(int x = 0;x < 2;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cerr_symbols_ph::failed(){
+ return false;
+ }
+ void Cerr_symbols_ph::op(){
+ if(CWEB_MARKER != 0){
+ cweb_marker__ = CWEB_MARKER;
+ CWEB_MARKER=0;
+ }
+
+}
+int Cerr_symbols_ph::rhs_to_rules_mapping_[5] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,1 // subrule 4 for rule 2
+};
+Rerror_symbols_phrase::Rerror_symbols_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rerror_symbols_phrase",0,Cerr_symbols_ph::R_Rerror_symbols_phrase_,P,false,false){
+}
+
+Rphrase::Rphrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rphrase",0,Cerr_symbols_ph::R_Rphrase_,P,false,false){
+}
+
+void Rphrase::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_error_symbols_phrase* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rphrase::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+
+}
+
+void Rphrase::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_open_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+
+}
+
diff --git a/web/yacco2/compiler/grammars/err_symbols_ph.fsc b/web/yacco2/compiler/grammars/err_symbols_ph.fsc
new file mode 100644
index 0000000000..12c901b71f
--- /dev/null
+++ b/web/yacco2/compiler/grammars/err_symbols_ph.fsc
@@ -0,0 +1,22 @@
+/*
+ File: err_symbols_ph.fsc
+ Date and Time: Fri Jan 30 18:55:10 2015
+*/
+transitive y
+grammar-name "err_symbols_ph"
+name-space "NS_err_symbols_ph"
+thread-name "Cerr_symbols_ph"
+monolithic y
+file-name "err_symbols_ph.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ LR1_questionable_shift_operator
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 1
+ NS_err_symbols_ph_th::TH_err_symbols_ph_th
+end-list-of-transitive-threads
+list-of-used-threads 1
+ NS_err_symbols_ph_th::TH_err_symbols_ph_th
+end-list-of-used-threads
+fsm-comments
+"Dispatcher to parse ``error-symbols'' vocabulary."
diff --git a/web/yacco2/compiler/grammars/err_symbols_ph.h b/web/yacco2/compiler/grammars/err_symbols_ph.h
new file mode 100644
index 0000000000..0d7d80727a
--- /dev/null
+++ b/web/yacco2/compiler/grammars/err_symbols_ph.h
@@ -0,0 +1,70 @@
+/*
+ File: err_symbols_ph.h
+ Date and Time: Fri Jan 30 18:55:10 2015
+*/
+#ifndef __err_symbols_ph_h__
+#define __err_symbols_ph_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "err_symbols_ph_th.h"
+#include "o2_externs.h"
+using namespace NS_yacco2_terminals;
+
+// monolithic grammar: no thread
+extern yacco2::State S1_Cerr_symbols_ph;
+namespace NS_err_symbols_ph {
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[2];
+};
+class Cerr_symbols_ph: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rerror_symbols_phrase_ = 569//start_of_rule_list + 0
+ ,rhs1_Rerror_symbols_phrase_ = 1
+ ,R_Rphrase_ = 570//start_of_rule_list + 2
+ ,rhs1_Rphrase_ = 2
+ ,rhs2_Rphrase_ = 3
+ ,rhs3_Rphrase_ = 4
+ };
+ //no of la sets = 1
+ //no of states = 6
+ Cerr_symbols_ph();
+ ~Cerr_symbols_ph();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[5];
+
+ public: yacco2::AST* cweb_marker__;
+
+ };
+struct Rerror_symbols_phrase;
+struct Rphrase;
+struct Rerror_symbols_phrase:public yacco2::CAbs_lr1_sym {
+ Rerror_symbols_phrase(yacco2::Parser* P);
+ public:
+};
+
+struct Rphrase:public yacco2::CAbs_lr1_sym {
+ Rphrase(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/err_symbols_ph.lex b/web/yacco2/compiler/grammars/err_symbols_ph.lex
new file mode 100644
index 0000000000..9d360b17f6
--- /dev/null
+++ b/web/yacco2/compiler/grammars/err_symbols_ph.lex
@@ -0,0 +1,78 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: err_symbols_ph.lex
+Dates: 23 Mar 2004
+Purpose: parse error-symbols alphabet
+Grammar being parsed:
+ error-symbols
+ (file-name yacco2_error_symbols
+ ,name-space NS_yacco2_error_symbols)
+ {
+ 1+ terminal definitions where def is
+ terminal-key [AD AB attributes](sym-class C++ name)
+ or
+ terminal-key [AD AB attributes]
+ (sym-class C++ name {C++ directives block} )
+ }
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |err_symbols_ph| grammar.\fbreak
+Dispatcher to parse the Error vocabulary.
+@/
+fsm
+(fsm-id "err_symbols_ph.lex"
+,fsm-filename err_symbols_ph
+,fsm-namespace NS_err_symbols_ph
+,fsm-class Cerr_symbols_ph{
+ user-prefix-declaration
+#include "err_symbols_ph_th.h"
+#include "o2_externs.h"
+using namespace NS_yacco2_terminals;
+ ***
+ user-declaration
+ public: yacco2::AST* cweb_marker__;
+ ***
+ op
+ if(CWEB_MARKER != 0){
+ cweb_marker__ = CWEB_MARKER;
+ CWEB_MARKER=0;
+ }
+ ***
+ constructor
+ cweb_marker__ = 0;
+ ***
+}
+,fsm-version "1.0",fsm-date "23 mar 2004",fsm-debug "false"
+,fsm-comments "Dispatcher to parse ``error-symbols'' vocabulary.")
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rerror_symbols_phrase (){
+ -> Rphrase
+}
+
+Rphrase (){
+ -> ||| "error-symbols-phrase"
+ NS_err_symbols_ph_th::TH_err_symbols_ph_th {
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_open_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/err_symbols_ph_th.cpp b/web/yacco2/compiler/grammars/err_symbols_ph_th.cpp
new file mode 100644
index 0000000000..b5454bef39
--- /dev/null
+++ b/web/yacco2/compiler/grammars/err_symbols_ph_th.cpp
@@ -0,0 +1,624 @@
+/*
+ File: err_symbols_ph_th.cpp
+ Date and Time: Fri Jan 30 18:55:10 2015
+*/
+#include "err_symbols_ph_th.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_err_symbols_ph_th;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 17;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[4] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[5] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[6] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[7] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[8] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[9] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[10] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[11] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[12] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[13] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[14] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[15] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[16] = new Per_rule_s_reuse_table();
+}
+ Cerr_symbols_ph_th::
+ Cerr_symbols_ph_th()
+ :yacco2::CAbs_fsm
+ ("err_symbols_ph_th.lex"
+ ,"1.0"
+ ,"22 mar 2004"
+ ,false
+ ,"Parse Error vocabulary."
+ ,"Fri Jan 30 18:55:10 2015 "
+ ,S1_Cerr_symbols_ph_th){
+
+ error_symbols_phrase_ = 0;
+
+ }
+
+Cerr_symbols_ph_th::~Cerr_symbols_ph_th(){
+
+ for(int x = 0;x < 17;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cerr_symbols_ph_th::failed(){
+ return false;
+ }
+ void Cerr_symbols_ph_th::op(){
+ if(error_symbols_phrase_ != 0){
+ delete error_symbols_phrase_;
+ error_symbols_phrase_ = 0;
+ }
+ error_symbols_phrase_ = new T_error_symbols_phrase;
+ error_symbols_phrase_->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ AST* t = new AST(*error_symbols_phrase_);
+ error_symbols_phrase_->phrase_tree(t);
+
+}
+int Cerr_symbols_ph_th::rhs_to_rules_mapping_[42] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,2 // subrule 4 for rule 3
+ ,2 // subrule 5 for rule 3
+ ,3 // subrule 6 for rule 4
+ ,4 // subrule 7 for rule 5
+ ,5 // subrule 8 for rule 6
+ ,5 // subrule 9 for rule 6
+ ,5 // subrule 10 for rule 6
+ ,6 // subrule 11 for rule 7
+ ,6 // subrule 12 for rule 7
+ ,6 // subrule 13 for rule 7
+ ,7 // subrule 14 for rule 8
+ ,7 // subrule 15 for rule 8
+ ,8 // subrule 16 for rule 9
+ ,8 // subrule 17 for rule 9
+ ,8 // subrule 18 for rule 9
+ ,9 // subrule 19 for rule 10
+ ,9 // subrule 20 for rule 10
+ ,9 // subrule 21 for rule 10
+ ,10 // subrule 22 for rule 11
+ ,11 // subrule 23 for rule 12
+ ,11 // subrule 24 for rule 12
+ ,12 // subrule 25 for rule 13
+ ,12 // subrule 26 for rule 13
+ ,12 // subrule 27 for rule 13
+ ,12 // subrule 28 for rule 13
+ ,12 // subrule 29 for rule 13
+ ,12 // subrule 30 for rule 13
+ ,13 // subrule 31 for rule 14
+ ,13 // subrule 32 for rule 14
+ ,13 // subrule 33 for rule 14
+ ,13 // subrule 34 for rule 14
+ ,13 // subrule 35 for rule 14
+ ,14 // subrule 36 for rule 15
+ ,14 // subrule 37 for rule 15
+ ,15 // subrule 38 for rule 16
+ ,15 // subrule 39 for rule 16
+ ,16 // subrule 40 for rule 17
+ ,16 // subrule 41 for rule 17
+};
+Rerror_symbols_phrase::Rerror_symbols_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rerror_symbols_phrase",0,Cerr_symbols_ph_th::R_Rerror_symbols_phrase_,P,false,false){
+}
+
+void Rerror_symbols_phrase::sr1(){
+
+ Cerr_symbols_ph_th* fsm = (Cerr_symbols_ph_th*)rule_info__.parser__->fsm_tbl__;
+ RSVP(fsm->error_symbols_phrase_);
+ fsm->error_symbols_phrase_ = 0;
+
+}
+
+Ropen_par::Ropen_par(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Ropen_par",0,Cerr_symbols_ph_th::R_Ropen_par_,P,false,false){
+}
+
+void Ropen_par::sr1(){
+
+ CAbs_lr1_sym* sym = new Err_no_open_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rclose_par::Rclose_par(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rclose_par",0,Cerr_symbols_ph_th::R_Rclose_par_,P,false,false){
+}
+
+void Rclose_par::sr1(){
+
+ CAbs_lr1_sym* sym = new Err_no_close_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rparameters::Rparameters(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rparameters",0,Cerr_symbols_ph_th::R_Rparameters_,P,false,false){
+}
+
+Rfilename_phrase::Rfilename_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfilename_phrase",0,Cerr_symbols_ph_th::R_Rfilename_phrase_,P,false,false){
+}
+
+Rfilename::Rfilename(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfilename",0,Cerr_symbols_ph_th::R_Rfilename_,P,false,false){
+}
+
+void Rfilename::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_filename_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rfilename::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_filename_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rfilename_id::Rfilename_id(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfilename_id",0,Cerr_symbols_ph_th::R_Rfilename_id_,P,false,false){
+}
+
+void Rfilename_id::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_identifier* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cerr_symbols_ph_th* fsm = (Cerr_symbols_ph_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->error_symbols_phrase_->filename_id(sf->p2__);
+
+}
+
+void Rfilename_id::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_filename_id_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rfilename_id::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_filename_id_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rnamespace_phrase::Rnamespace_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rnamespace_phrase",0,Cerr_symbols_ph_th::R_Rnamespace_phrase_,P,false,false){
+}
+
+void Rnamespace_phrase::sr2(){
+
+ CAbs_lr1_sym* sym = new Err_no_comma_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rnamespace::Rnamespace(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rnamespace",0,Cerr_symbols_ph_th::R_Rnamespace_,P,false,false){
+}
+
+void Rnamespace::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_namespace_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rnamespace::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_namespace_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rnamespace_id::Rnamespace_id(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rnamespace_id",0,Cerr_symbols_ph_th::R_Rnamespace_id_,P,false,false){
+}
+
+void Rnamespace_id::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_identifier* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cerr_symbols_ph_th* fsm = (Cerr_symbols_ph_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->error_symbols_phrase_->namespace_id(sf->p2__);
+
+}
+
+void Rnamespace_id::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_namespace_id_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rnamespace_id::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_namespace_id_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rsym_defs_phrase::Rsym_defs_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsym_defs_phrase",0,Cerr_symbols_ph_th::R_Rsym_defs_phrase_,P,false,false){
+}
+
+Rsym_defs::Rsym_defs(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsym_defs",0,Cerr_symbols_ph_th::R_Rsym_defs_,P,false,false){
+}
+
+Rsym_def::Rsym_def(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsym_def",0,Cerr_symbols_ph_th::R_Rsym_def_,P,false,false){
+}
+
+void Rsym_def::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_terminal_def* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cerr_symbols_ph_th* fsm = (Cerr_symbols_ph_th*)rule_info__.parser__->fsm_tbl__;
+ sf->p2__->classification(T_terminal_def::err);
+ CAbs_lr1_sym* r =
+ fsm->error_symbols_phrase_->add_t_to_alphabet(sf->p2__,rule_info__.parser__);
+ if(r == 0) return;
+ RSVP(r);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rsym_def::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rsym_def::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_lrk_sufx* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_improper_directive;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rsym_def::sr4(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_terminals_refs* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_improper_directive;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rsym_def::sr5(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_terminals_sufx* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_improper_directive;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rsym_def::sr6(){
+
+ CAbs_lr1_sym* sym = new Err_no_sym_defs_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rsym_def1::Rsym_def1(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsym_def1",0,Cerr_symbols_ph_th::R_Rsym_def1_,P,false,false){
+}
+
+void Rsym_def1::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_terminal_def* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cerr_symbols_ph_th* fsm = (Cerr_symbols_ph_th*)rule_info__.parser__->fsm_tbl__;
+ sf->p2__->classification(T_terminal_def::err);
+ CAbs_lr1_sym* r =
+ fsm->error_symbols_phrase_->add_t_to_alphabet(sf->p2__,rule_info__.parser__);
+ if(r == 0) return;
+ RSVP(r);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rsym_def1::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_lrk_sufx* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_improper_directive;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rsym_def1::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_terminals_refs* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_improper_directive;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rsym_def1::sr4(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_terminals_sufx* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_improper_directive;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rsym_def1::sr5(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Ropen_brace::Ropen_brace(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Ropen_brace",0,Cerr_symbols_ph_th::R_Ropen_brace_,P,false,false){
+}
+
+void Ropen_brace::sr1(){
+
+ CAbs_lr1_sym* sym = new Err_no_open_brace;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rclose_brace::Rclose_brace(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rclose_brace",0,Cerr_symbols_ph_th::R_Rclose_brace_,P,false,false){
+}
+
+void Rclose_brace::sr1(){
+
+ CAbs_lr1_sym* sym = new Err_no_close_brace;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rlint::Rlint(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlint",0,Cerr_symbols_ph_th::R_Rlint_,P,false,false){
+}
+
diff --git a/web/yacco2/compiler/grammars/err_symbols_ph_th.fsc b/web/yacco2/compiler/grammars/err_symbols_ph_th.fsc
new file mode 100644
index 0000000000..abcb79af72
--- /dev/null
+++ b/web/yacco2/compiler/grammars/err_symbols_ph_th.fsc
@@ -0,0 +1,25 @@
+/*
+ File: err_symbols_ph_th.fsc
+ Date and Time: Fri Jan 30 18:55:10 2015
+*/
+transitive y
+grammar-name "err_symbols_ph_th"
+name-space "NS_err_symbols_ph_th"
+thread-name "TH_err_symbols_ph_th"
+monolithic n
+file-name "err_symbols_ph_th.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 2
+ LR1_questionable_shift_operator
+ raw_open_bracket
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 1
+ NS_lint_balls::TH_lint_balls
+end-list-of-transitive-threads
+list-of-used-threads 3
+ NS_identifier::TH_identifier
+ NS_lint_balls::TH_lint_balls
+ NS_term_def_ph::TH_term_def_ph
+end-list-of-used-threads
+fsm-comments
+"Parse Error vocabulary."
diff --git a/web/yacco2/compiler/grammars/err_symbols_ph_th.h b/web/yacco2/compiler/grammars/err_symbols_ph_th.h
new file mode 100644
index 0000000000..c469dc1acb
--- /dev/null
+++ b/web/yacco2/compiler/grammars/err_symbols_ph_th.h
@@ -0,0 +1,247 @@
+/*
+ File: err_symbols_ph_th.h
+ Date and Time: Fri Jan 30 18:55:10 2015
+*/
+#ifndef __err_symbols_ph_th_h__
+#define __err_symbols_ph_th_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+using namespace NS_yacco2_terminals;
+#include "lint_balls.h"
+#include "identifier.h"
+#include "term_def_ph.h"
+#include "c_string.h"
+
+extern yacco2::Thread_entry ITH_err_symbols_ph_th;
+
+extern yacco2::State S1_Cerr_symbols_ph_th;
+namespace NS_err_symbols_ph_th {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_err_symbols_ph_th(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_err_symbols_ph_th(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[17];
+};
+class Cerr_symbols_ph_th: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rerror_symbols_phrase_ = 569//start_of_rule_list + 0
+ ,rhs1_Rerror_symbols_phrase_ = 1
+ ,R_Ropen_par_ = 570//start_of_rule_list + 2
+ ,rhs1_Ropen_par_ = 2
+ ,rhs2_Ropen_par_ = 3
+ ,R_Rclose_par_ = 571//start_of_rule_list + 4
+ ,rhs1_Rclose_par_ = 4
+ ,rhs2_Rclose_par_ = 5
+ ,R_Rparameters_ = 572//start_of_rule_list + 6
+ ,rhs1_Rparameters_ = 6
+ ,R_Rfilename_phrase_ = 573//start_of_rule_list + 8
+ ,rhs1_Rfilename_phrase_ = 7
+ ,R_Rfilename_ = 574//start_of_rule_list + 10
+ ,rhs1_Rfilename_ = 8
+ ,rhs2_Rfilename_ = 9
+ ,rhs3_Rfilename_ = 10
+ ,R_Rfilename_id_ = 575//start_of_rule_list + 12
+ ,rhs1_Rfilename_id_ = 11
+ ,rhs2_Rfilename_id_ = 12
+ ,rhs3_Rfilename_id_ = 13
+ ,R_Rnamespace_phrase_ = 576//start_of_rule_list + 14
+ ,rhs1_Rnamespace_phrase_ = 14
+ ,rhs2_Rnamespace_phrase_ = 15
+ ,R_Rnamespace_ = 577//start_of_rule_list + 16
+ ,rhs1_Rnamespace_ = 16
+ ,rhs2_Rnamespace_ = 17
+ ,rhs3_Rnamespace_ = 18
+ ,R_Rnamespace_id_ = 578//start_of_rule_list + 18
+ ,rhs1_Rnamespace_id_ = 19
+ ,rhs2_Rnamespace_id_ = 20
+ ,rhs3_Rnamespace_id_ = 21
+ ,R_Rsym_defs_phrase_ = 579//start_of_rule_list + 20
+ ,rhs1_Rsym_defs_phrase_ = 22
+ ,R_Rsym_defs_ = 580//start_of_rule_list + 22
+ ,rhs1_Rsym_defs_ = 23
+ ,rhs2_Rsym_defs_ = 24
+ ,R_Rsym_def_ = 581//start_of_rule_list + 24
+ ,rhs1_Rsym_def_ = 25
+ ,rhs2_Rsym_def_ = 26
+ ,rhs3_Rsym_def_ = 27
+ ,rhs4_Rsym_def_ = 28
+ ,rhs5_Rsym_def_ = 29
+ ,rhs6_Rsym_def_ = 30
+ ,R_Rsym_def1_ = 582//start_of_rule_list + 26
+ ,rhs1_Rsym_def1_ = 31
+ ,rhs2_Rsym_def1_ = 32
+ ,rhs3_Rsym_def1_ = 33
+ ,rhs4_Rsym_def1_ = 34
+ ,rhs5_Rsym_def1_ = 35
+ ,R_Ropen_brace_ = 583//start_of_rule_list + 28
+ ,rhs1_Ropen_brace_ = 36
+ ,rhs2_Ropen_brace_ = 37
+ ,R_Rclose_brace_ = 584//start_of_rule_list + 30
+ ,rhs1_Rclose_brace_ = 38
+ ,rhs2_Rclose_brace_ = 39
+ ,R_Rlint_ = 585//start_of_rule_list + 32
+ ,rhs1_Rlint_ = 40
+ ,rhs2_Rlint_ = 41
+ };
+ //no of la sets = 9
+ //no of states = 69
+ Cerr_symbols_ph_th();
+ ~Cerr_symbols_ph_th();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[42];
+
+ public:
+ T_error_symbols_phrase* error_symbols_phrase_;
+
+ };
+struct Rerror_symbols_phrase;
+struct Ropen_par;
+struct Rclose_par;
+struct Rparameters;
+struct Rfilename_phrase;
+struct Rfilename;
+struct Rfilename_id;
+struct Rnamespace_phrase;
+struct Rnamespace;
+struct Rnamespace_id;
+struct Rsym_defs_phrase;
+struct Rsym_defs;
+struct Rsym_def;
+struct Rsym_def1;
+struct Ropen_brace;
+struct Rclose_brace;
+struct Rlint;
+struct Rerror_symbols_phrase:public yacco2::CAbs_lr1_sym {
+ Rerror_symbols_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Ropen_par:public yacco2::CAbs_lr1_sym {
+ Ropen_par(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rclose_par:public yacco2::CAbs_lr1_sym {
+ Rclose_par(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rparameters:public yacco2::CAbs_lr1_sym {
+ Rparameters(yacco2::Parser* P);
+ public:
+};
+
+struct Rfilename_phrase:public yacco2::CAbs_lr1_sym {
+ Rfilename_phrase(yacco2::Parser* P);
+
+public:T_file_name* filename_;
+
+ public:
+};
+
+struct Rfilename:public yacco2::CAbs_lr1_sym {
+ Rfilename(yacco2::Parser* P);
+ public:
+ void sr2();
+ void sr3();
+};
+
+struct Rfilename_id:public yacco2::CAbs_lr1_sym {
+ Rfilename_id(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Rnamespace_phrase:public yacco2::CAbs_lr1_sym {
+ Rnamespace_phrase(yacco2::Parser* P);
+ public:
+ void sr2();
+};
+
+struct Rnamespace:public yacco2::CAbs_lr1_sym {
+ Rnamespace(yacco2::Parser* P);
+ public:
+ void sr2();
+ void sr3();
+};
+
+struct Rnamespace_id:public yacco2::CAbs_lr1_sym {
+ Rnamespace_id(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Rsym_defs_phrase:public yacco2::CAbs_lr1_sym {
+ Rsym_defs_phrase(yacco2::Parser* P);
+ public:
+};
+
+struct Rsym_defs:public yacco2::CAbs_lr1_sym {
+ Rsym_defs(yacco2::Parser* P);
+ public:
+};
+
+struct Rsym_def:public yacco2::CAbs_lr1_sym {
+ Rsym_def(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+ void sr5();
+ void sr6();
+};
+
+struct Rsym_def1:public yacco2::CAbs_lr1_sym {
+ Rsym_def1(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+ void sr5();
+};
+
+struct Ropen_brace:public yacco2::CAbs_lr1_sym {
+ Ropen_brace(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rclose_brace:public yacco2::CAbs_lr1_sym {
+ Rclose_brace(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rlint:public yacco2::CAbs_lr1_sym {
+ Rlint(yacco2::Parser* P);
+ public:
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/err_symbols_ph_th.lex b/web/yacco2/compiler/grammars/err_symbols_ph_th.lex
new file mode 100644
index 0000000000..b7573b4ba6
--- /dev/null
+++ b/web/yacco2/compiler/grammars/err_symbols_ph_th.lex
@@ -0,0 +1,380 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: err_symbols_ph_th.lex
+Dates: 23 Mar 2004
+Purpose: parse error-symbols phrase
+ The keeps its own local symbol table: map and list.
+ The term_def_ph adds symbol to Yacco2's
+ global symbol table.
+Output: error_symbols_phrase
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |err_symbols_ph_th| Thread.\fbreak
+Parse the error terminal definitions.
+As all terminal vocabulary symbols have the same source template,
+|TH_term_def_ph| is used to parse
+individually each symbol.
+\fbreak
+Example of an error vocabulary to parse:\fbreak
+\listing{"/usr/local/yacco2/diagrams+etc/errsym.txt"}
+
+@/
+fsm
+(fsm-id "err_symbols_ph_th.lex"
+,fsm-filename err_symbols_ph_th
+,fsm-namespace NS_err_symbols_ph_th
+,fsm-class Cerr_symbols_ph_th{
+ user-prefix-declaration
+using namespace NS_yacco2_terminals;
+#include "lint_balls.h"
+#include "identifier.h"
+#include "term_def_ph.h"
+#include "c_string.h"
+ ***
+ user-declaration
+ public:
+ T_error_symbols_phrase* error_symbols_phrase_;
+ ***
+ constructor
+ error_symbols_phrase_ = 0;
+ ***
+ op
+ if(error_symbols_phrase_ != 0){
+ delete error_symbols_phrase_;
+ error_symbols_phrase_ = 0;
+ }
+ error_symbols_phrase_ = new T_error_symbols_phrase;
+ error_symbols_phrase_->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ AST* t = new AST(*error_symbols_phrase_);
+ error_symbols_phrase_->phrase_tree(t);
+ ***
+}
+,fsm-version "1.0",fsm-date "22 mar 2004",fsm-debug "false"
+,fsm-comments "Parse Error vocabulary.")
+parallel-parser
+(
+ parallel-thread-function
+ TH_err_symbols_ph_th
+ ***
+ parallel-la-boundary
+ eolr
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rerror_symbols_phrase (){
+ -> Rlint
+ Ropen_par
+ Rparameters
+ Rclose_par
+ Rlint
+ Rsym_defs_phrase
+ Rlint {
+ op
+ Cerr_symbols_ph_th* fsm = (Cerr_symbols_ph_th*)rule_info__.parser__->fsm_tbl__;
+ RSVP(fsm->error_symbols_phrase_);
+ fsm->error_symbols_phrase_ = 0;
+ ***
+ }
+}
+
+Ropen_par (){
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_open_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> "("
+}
+
+Rclose_par (){
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_close_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ")"
+}
+
+Rparameters (){
+ -> Rlint
+ Rfilename_phrase Rlint
+ Rnamespace_phrase Rlint
+}
+
+Rfilename_phrase (
+lhs{
+user-declaration
+public:T_file_name* filename_;
+***
+}
+){
+ -> Rfilename Rlint Rfilename_id
+}
+
+Rfilename (){
+ -> ||| "#file-name" NS_identifier::TH_identifier
+ -> ||| |+| NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_filename_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_filename_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rfilename_id (){
+ -> ||| identifier NS_identifier::TH_identifier {
+ op
+ Cerr_symbols_ph_th* fsm = (Cerr_symbols_ph_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->error_symbols_phrase_->filename_id(sf->p2__);
+ ***
+ }
+ -> ||| |+| NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_filename_id_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_filename_id_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rnamespace_phrase (
+lhs
+){
+ -> "," Rlint Rnamespace Rlint Rnamespace_id
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_comma_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rnamespace (){
+ -> ||| "#name-space" NS_identifier::TH_identifier
+ -> ||| |+| NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_namespace_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_namespace_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rnamespace_id (){
+ -> ||| identifier NS_identifier::TH_identifier {
+ op
+ Cerr_symbols_ph_th* fsm = (Cerr_symbols_ph_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->error_symbols_phrase_->namespace_id(sf->p2__);
+ ***
+ }
+ -> ||| |+| NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_namespace_id_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_namespace_id_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rsym_defs_phrase (){
+ -> Ropen_brace Rlint
+ Rsym_defs
+ Rclose_brace
+}
+
+Rsym_defs (){
+ -> Rsym_def Rlint
+ -> Rsym_defs Rsym_def1 Rlint
+}
+
+Rsym_def
+/@
+Note: trapped explicitly are directives that are improper
+within this context.
+@/
+(){
+ -> ||| "terminal-def" NS_term_def_ph::TH_term_def_ph {
+ op
+ Cerr_symbols_ph_th* fsm = (Cerr_symbols_ph_th*)rule_info__.parser__->fsm_tbl__;
+ sf->p2__->classification(T_terminal_def::err);
+ CAbs_lr1_sym* r =
+ fsm->error_symbols_phrase_->add_t_to_alphabet(sf->p2__,rule_info__.parser__);
+ if(r == 0) return;
+ RSVP(r);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| |+| NULL {
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| "#lrk-sufx" NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_improper_directive;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| "#terminals-refs" NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_improper_directive;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| "#terminals-sufx" NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_improper_directive;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_sym_defs_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rsym_def1 (){
+ -> ||| "terminal-def" NS_term_def_ph::TH_term_def_ph {
+ op
+ Cerr_symbols_ph_th* fsm = (Cerr_symbols_ph_th*)rule_info__.parser__->fsm_tbl__;
+ sf->p2__->classification(T_terminal_def::err);
+ CAbs_lr1_sym* r =
+ fsm->error_symbols_phrase_->add_t_to_alphabet(sf->p2__,rule_info__.parser__);
+ if(r == 0) return;
+ RSVP(r);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| "#lrk-sufx" NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_improper_directive;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| "#terminals-refs" NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_improper_directive;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| "#terminals-sufx" NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_improper_directive;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| |+| NULL {
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Ropen_brace (){
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_open_brace;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> "{"
+}
+
+Rclose_brace (){
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_close_brace;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> "}"
+}
+
+Rlint (){
+ -> ||| lint NS_lint_balls::TH_lint_balls
+ ->
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/err_symbols_ph_thsym.cpp b/web/yacco2/compiler/grammars/err_symbols_ph_thsym.cpp
new file mode 100644
index 0000000000..ed46cd7228
--- /dev/null
+++ b/web/yacco2/compiler/grammars/err_symbols_ph_thsym.cpp
@@ -0,0 +1,649 @@
+/*
+ File: err_symbols_ph_thsym.cpp
+ Date and Time: Fri Jan 30 18:55:10 2015
+*/
+#include "err_symbols_ph_th.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_err_symbols_ph_th;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_err_symbols_ph_th::TH_err_symbols_ph_th(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_err_symbols_ph_th;
+ NS_err_symbols_ph_th::Cerr_symbols_ph_th Cerr_symbols_ph_th_;// parallel-parser's parse table
+#define ssPARSE_TABLE Cerr_symbols_ph_th_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_err_symbols_ph_th::PROC_TH_err_symbols_ph_th(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_err_symbols_ph_th";
+ static bool one_time(false);
+ static NS_err_symbols_ph_th::Cerr_symbols_ph_th* NS_err_symbols_ph_th_Cerr_symbols_ph_th_(0);// parallel-parser's fsm table
+ static Parser* NS_err_symbols_ph_th_Cerr_symbols_ph_th_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_err_symbols_ph_th_Cerr_symbols_ph_th_ = new NS_err_symbols_ph_th::Cerr_symbols_ph_th();// parallel-parser's fsm table
+ NS_err_symbols_ph_th_Cerr_symbols_ph_th_parser = new Parser(*NS_err_symbols_ph_th_Cerr_symbols_ph_th_,Caller_pp);
+ }
+ proc_parser = NS_err_symbols_ph_th_Cerr_symbols_ph_th_parser;
+#include "wproc_pp_core.h"
+}
+void
+Cerr_symbols_ph_th::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rerror_symbols_phrase_:{
+ Rerror_symbols_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rerror_symbols_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rerror_symbols_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 7;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Ropen_par_:{
+ Ropen_par* sym;
+ if(re->rule_ == 0){
+ sym = new Ropen_par(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ropen_par*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Ropen_par_:{
+ Ropen_par* sym;
+ if(re->rule_ == 0){
+ sym = new Ropen_par(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ropen_par*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rclose_par_:{
+ Rclose_par* sym;
+ if(re->rule_ == 0){
+ sym = new Rclose_par(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclose_par*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rclose_par_:{
+ Rclose_par* sym;
+ if(re->rule_ == 0){
+ sym = new Rclose_par(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclose_par*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rparameters_:{
+ Rparameters* sym;
+ if(re->rule_ == 0){
+ sym = new Rparameters(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rparameters*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ return;}
+ case rhs1_Rfilename_phrase_:{
+ Rfilename_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rfilename_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfilename_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ return;}
+ case rhs1_Rfilename_:{
+ Rfilename* sym;
+ if(re->rule_ == 0){
+ sym = new Rfilename(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfilename*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rfilename_:{
+ Rfilename* sym;
+ if(re->rule_ == 0){
+ sym = new Rfilename(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfilename*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rfilename_:{
+ Rfilename* sym;
+ if(re->rule_ == 0){
+ sym = new Rfilename(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfilename*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rfilename_id_:{
+ Rfilename_id* sym;
+ if(re->rule_ == 0){
+ sym = new Rfilename_id(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfilename_id*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rfilename_id_:{
+ Rfilename_id* sym;
+ if(re->rule_ == 0){
+ sym = new Rfilename_id(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfilename_id*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rfilename_id_:{
+ Rfilename_id* sym;
+ if(re->rule_ == 0){
+ sym = new Rfilename_id(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfilename_id*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rnamespace_phrase_:{
+ Rnamespace_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ return;}
+ case rhs2_Rnamespace_phrase_:{
+ Rnamespace_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rnamespace_:{
+ Rnamespace* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rnamespace_:{
+ Rnamespace* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rnamespace_:{
+ Rnamespace* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rnamespace_id_:{
+ Rnamespace_id* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace_id(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace_id*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rnamespace_id_:{
+ Rnamespace_id* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace_id(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace_id*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rnamespace_id_:{
+ Rnamespace_id* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace_id(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace_id*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rsym_defs_phrase_:{
+ Rsym_defs_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_defs_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_defs_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 4;
+
+
+ return;}
+ case rhs1_Rsym_defs_:{
+ Rsym_defs* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_defs(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_defs*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rsym_defs_:{
+ Rsym_defs* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_defs(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_defs*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ return;}
+ case rhs1_Rsym_def_:{
+ Rsym_def* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_def(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_def*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rsym_def_:{
+ Rsym_def* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_def(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_def*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rsym_def_:{
+ Rsym_def* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_def(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_def*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rsym_def_:{
+ Rsym_def* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_def(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_def*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr4();
+ return;}
+ case rhs5_Rsym_def_:{
+ Rsym_def* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_def(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_def*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr5();
+ return;}
+ case rhs6_Rsym_def_:{
+ Rsym_def* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_def(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_def*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr6();
+ return;}
+ case rhs1_Rsym_def1_:{
+ Rsym_def1* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_def1(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_def1*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rsym_def1_:{
+ Rsym_def1* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_def1(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_def1*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rsym_def1_:{
+ Rsym_def1* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_def1(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_def1*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rsym_def1_:{
+ Rsym_def1* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_def1(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_def1*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr4();
+ return;}
+ case rhs5_Rsym_def1_:{
+ Rsym_def1* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_def1(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_def1*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr5();
+ return;}
+ case rhs1_Ropen_brace_:{
+ Ropen_brace* sym;
+ if(re->rule_ == 0){
+ sym = new Ropen_brace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ropen_brace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Ropen_brace_:{
+ Ropen_brace* sym;
+ if(re->rule_ == 0){
+ sym = new Ropen_brace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ropen_brace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rclose_brace_:{
+ Rclose_brace* sym;
+ if(re->rule_ == 0){
+ sym = new Rclose_brace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclose_brace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rclose_brace_:{
+ Rclose_brace* sym;
+ if(re->rule_ == 0){
+ sym = new Rclose_brace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclose_brace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rlint_:{
+ Rlint* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rlint_:{
+ Rlint* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/err_symbols_ph_thtbl.cpp b/web/yacco2/compiler/grammars/err_symbols_ph_thtbl.cpp
new file mode 100644
index 0000000000..39e31931ff
--- /dev/null
+++ b/web/yacco2/compiler/grammars/err_symbols_ph_thtbl.cpp
@@ -0,0 +1,1429 @@
+/*
+ File: err_symbols_ph_thtbl.cpp
+ Date and Time: Fri Jan 30 18:55:10 2015
+*/
+#include "err_symbols_ph_th.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_err_symbols_ph_th;// grammar's ns
+// first set terminals
+// LR1_eolr
+yacco2::UCHAR LA1_Cerr_symbols_ph_th[] ={
+1
+,0,4
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+yacco2::UCHAR LA2_Cerr_symbols_ph_th[] ={
+1
+,0,17
+};
+// LR1_questionable_shift_operator
+// raw_open_brace
+yacco2::UCHAR LA3_Cerr_symbols_ph_th[] ={
+2
+,0,1
+,16,8
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+// raw_close_brace
+yacco2::UCHAR LA4_Cerr_symbols_ph_th[] ={
+2
+,0,17
+,16,32
+};
+// LR1_questionable_shift_operator
+// raw_comma
+yacco2::UCHAR LA5_Cerr_symbols_ph_th[] ={
+2
+,0,1
+,6,16
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+// raw_close_bracket
+yacco2::UCHAR LA6_Cerr_symbols_ph_th[] ={
+2
+,0,17
+,6,2
+};
+// LR1_questionable_shift_operator
+// raw_close_bracket
+yacco2::UCHAR LA7_Cerr_symbols_ph_th[] ={
+2
+,0,1
+,6,2
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+// raw_open_brace
+yacco2::UCHAR LA8_Cerr_symbols_ph_th[] ={
+2
+,0,17
+,16,8
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+// raw_comma
+yacco2::UCHAR LA9_Cerr_symbols_ph_th[] ={
+2
+,0,17
+,6,16
+};
+extern yacco2::State S1_Cerr_symbols_ph_th;
+extern yacco2::State S2_Cerr_symbols_ph_th;
+struct S2ttd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S2ttd_Cerr_symbols_ph_th S2tt_Cerr_symbols_ph_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_lint_balls
+};
+extern yacco2::State S3_Cerr_symbols_ph_th;
+extern yacco2::State S4_Cerr_symbols_ph_th;
+extern yacco2::State S5_Cerr_symbols_ph_th;
+extern yacco2::State S6_Cerr_symbols_ph_th;
+extern yacco2::State S7_Cerr_symbols_ph_th;
+extern yacco2::State S8_Cerr_symbols_ph_th;
+extern yacco2::State S9_Cerr_symbols_ph_th;
+extern yacco2::State S10_Cerr_symbols_ph_th;
+extern yacco2::State S11_Cerr_symbols_ph_th;
+extern yacco2::State S12_Cerr_symbols_ph_th;
+extern yacco2::State S13_Cerr_symbols_ph_th;
+extern yacco2::State S14_Cerr_symbols_ph_th;
+extern yacco2::State S15_Cerr_symbols_ph_th;
+extern yacco2::State S16_Cerr_symbols_ph_th;
+extern yacco2::State S17_Cerr_symbols_ph_th;
+struct S17ttd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S17ttd_Cerr_symbols_ph_th S17tt_Cerr_symbols_ph_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_term_def_ph
+};
+extern yacco2::State S18_Cerr_symbols_ph_th;
+extern yacco2::State S19_Cerr_symbols_ph_th;
+extern yacco2::State S20_Cerr_symbols_ph_th;
+extern yacco2::State S21_Cerr_symbols_ph_th;
+extern yacco2::State S22_Cerr_symbols_ph_th;
+extern yacco2::State S23_Cerr_symbols_ph_th;
+extern yacco2::State S24_Cerr_symbols_ph_th;
+extern yacco2::State S25_Cerr_symbols_ph_th;
+extern yacco2::State S26_Cerr_symbols_ph_th;
+extern yacco2::State S27_Cerr_symbols_ph_th;
+extern yacco2::State S28_Cerr_symbols_ph_th;
+extern yacco2::State S29_Cerr_symbols_ph_th;
+extern yacco2::State S30_Cerr_symbols_ph_th;
+extern yacco2::State S31_Cerr_symbols_ph_th;
+extern yacco2::State S32_Cerr_symbols_ph_th;
+extern yacco2::State S33_Cerr_symbols_ph_th;
+extern yacco2::State S34_Cerr_symbols_ph_th;
+extern yacco2::State S35_Cerr_symbols_ph_th;
+extern yacco2::State S36_Cerr_symbols_ph_th;
+struct S36ttd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S36ttd_Cerr_symbols_ph_th S36tt_Cerr_symbols_ph_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S37_Cerr_symbols_ph_th;
+extern yacco2::State S38_Cerr_symbols_ph_th;
+extern yacco2::State S39_Cerr_symbols_ph_th;
+extern yacco2::State S40_Cerr_symbols_ph_th;
+extern yacco2::State S41_Cerr_symbols_ph_th;
+extern yacco2::State S42_Cerr_symbols_ph_th;
+extern yacco2::State S43_Cerr_symbols_ph_th;
+extern yacco2::State S44_Cerr_symbols_ph_th;
+extern yacco2::State S45_Cerr_symbols_ph_th;
+struct S45ttd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S45ttd_Cerr_symbols_ph_th S45tt_Cerr_symbols_ph_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_term_def_ph
+};
+extern yacco2::State S46_Cerr_symbols_ph_th;
+extern yacco2::State S47_Cerr_symbols_ph_th;
+extern yacco2::State S48_Cerr_symbols_ph_th;
+extern yacco2::State S49_Cerr_symbols_ph_th;
+extern yacco2::State S50_Cerr_symbols_ph_th;
+extern yacco2::State S51_Cerr_symbols_ph_th;
+extern yacco2::State S52_Cerr_symbols_ph_th;
+extern yacco2::State S53_Cerr_symbols_ph_th;
+extern yacco2::State S54_Cerr_symbols_ph_th;
+extern yacco2::State S55_Cerr_symbols_ph_th;
+extern yacco2::State S56_Cerr_symbols_ph_th;
+struct S56ttd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S56ttd_Cerr_symbols_ph_th S56tt_Cerr_symbols_ph_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S57_Cerr_symbols_ph_th;
+extern yacco2::State S58_Cerr_symbols_ph_th;
+extern yacco2::State S59_Cerr_symbols_ph_th;
+extern yacco2::State S60_Cerr_symbols_ph_th;
+extern yacco2::State S61_Cerr_symbols_ph_th;
+extern yacco2::State S62_Cerr_symbols_ph_th;
+struct S62ttd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S62ttd_Cerr_symbols_ph_th S62tt_Cerr_symbols_ph_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S63_Cerr_symbols_ph_th;
+extern yacco2::State S64_Cerr_symbols_ph_th;
+extern yacco2::State S65_Cerr_symbols_ph_th;
+extern yacco2::State S66_Cerr_symbols_ph_th;
+extern yacco2::State S67_Cerr_symbols_ph_th;
+struct S67ttd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S67ttd_Cerr_symbols_ph_th S67tt_Cerr_symbols_ph_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S68_Cerr_symbols_ph_th;
+extern yacco2::State S69_Cerr_symbols_ph_th;
+struct S1std_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S1std_Cerr_symbols_ph_th S1st_Cerr_symbols_ph_th = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S2_Cerr_symbols_ph_th} // shift sym: LR1_parallel_operator
+ ,{569,(State*)&S1_Cerr_symbols_ph_th} // accept sym: Rerror_symbols_phrase
+ ,{585,(State*)&S4_Cerr_symbols_ph_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S1pse_Cerr_symbols_ph_th = {3,(State*)&S2_Cerr_symbols_ph_th};
+struct S1rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S1rtd_Cerr_symbols_ph_th S1rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S1_Cerr_symbols_ph_th = //State's vectored into symbol: " No symbol"
+{1
+,(Shift_entry*)&S1pse_Cerr_symbols_ph_th,0,0,0,(Shift_tbl*)&S1st_Cerr_symbols_ph_th,(Reduce_tbl*)&S1rt_Cerr_symbols_ph_th,(State_s_thread_tbl*)&S2tt_Cerr_symbols_ph_th,0,0};
+struct S2std_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S2std_Cerr_symbols_ph_th S2st_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {375,(State*)&S3_Cerr_symbols_ph_th} // shift sym: T_lint
+ }// end of shift table
+};
+yacco2::State S2_Cerr_symbols_ph_th = //State's vectored into symbol: "|||"
+{2
+,0,0,0,0,(Shift_tbl*)&S2st_Cerr_symbols_ph_th,0,0,0,0};
+struct S3rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Cerr_symbols_ph_th S3rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs1_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S3_Cerr_symbols_ph_th = //State's vectored into symbol: "lint"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_Cerr_symbols_ph_th,0,0,0};
+struct S4std_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S4std_Cerr_symbols_ph_th S4st_Cerr_symbols_ph_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S25_Cerr_symbols_ph_th} // shift sym: LR1_questionable_shift_operator
+ ,{48,(State*)&S26_Cerr_symbols_ph_th} // shift sym: raw_open_bracket
+ ,{570,(State*)&S5_Cerr_symbols_ph_th} // shift sym: Ropen_par
+ }// end of shift table
+};
+yacco2::Shift_entry S4qse_Cerr_symbols_ph_th = {0,(State*)&S25_Cerr_symbols_ph_th};
+yacco2::State S4_Cerr_symbols_ph_th = //State's vectored into symbol: "Rlint"
+{4
+,0,0,0,0,(Shift_tbl*)&S4st_Cerr_symbols_ph_th,0,0,0,(Shift_entry*)&S4qse_Cerr_symbols_ph_th
+};
+struct S5std_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S5std_Cerr_symbols_ph_th S5st_Cerr_symbols_ph_th = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S2_Cerr_symbols_ph_th} // shift sym: LR1_parallel_operator
+ ,{572,(State*)&S6_Cerr_symbols_ph_th} // shift sym: Rparameters
+ ,{585,(State*)&S27_Cerr_symbols_ph_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S5pse_Cerr_symbols_ph_th = {3,(State*)&S2_Cerr_symbols_ph_th};
+struct S5rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Cerr_symbols_ph_th S5rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S5_Cerr_symbols_ph_th = //State's vectored into symbol: "Ropen_par"
+{5
+,(Shift_entry*)&S5pse_Cerr_symbols_ph_th,0,0,0,(Shift_tbl*)&S5st_Cerr_symbols_ph_th,(Reduce_tbl*)&S5rt_Cerr_symbols_ph_th,(State_s_thread_tbl*)&S2tt_Cerr_symbols_ph_th,0,0};
+struct S6std_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S6std_Cerr_symbols_ph_th S6st_Cerr_symbols_ph_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S42_Cerr_symbols_ph_th} // shift sym: LR1_questionable_shift_operator
+ ,{49,(State*)&S43_Cerr_symbols_ph_th} // shift sym: raw_close_bracket
+ ,{571,(State*)&S7_Cerr_symbols_ph_th} // shift sym: Rclose_par
+ }// end of shift table
+};
+yacco2::Shift_entry S6qse_Cerr_symbols_ph_th = {0,(State*)&S42_Cerr_symbols_ph_th};
+yacco2::State S6_Cerr_symbols_ph_th = //State's vectored into symbol: "Rparameters"
+{6
+,0,0,0,0,(Shift_tbl*)&S6st_Cerr_symbols_ph_th,0,0,0,(Shift_entry*)&S6qse_Cerr_symbols_ph_th
+};
+struct S7std_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S7std_Cerr_symbols_ph_th S7st_Cerr_symbols_ph_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Cerr_symbols_ph_th} // shift sym: LR1_parallel_operator
+ ,{585,(State*)&S8_Cerr_symbols_ph_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S7pse_Cerr_symbols_ph_th = {3,(State*)&S2_Cerr_symbols_ph_th};
+struct S7rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Cerr_symbols_ph_th S7rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S7_Cerr_symbols_ph_th = //State's vectored into symbol: "Rclose_par"
+{7
+,(Shift_entry*)&S7pse_Cerr_symbols_ph_th,0,0,0,(Shift_tbl*)&S7st_Cerr_symbols_ph_th,(Reduce_tbl*)&S7rt_Cerr_symbols_ph_th,(State_s_thread_tbl*)&S2tt_Cerr_symbols_ph_th,0,0};
+struct S8std_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S8std_Cerr_symbols_ph_th S8st_Cerr_symbols_ph_th = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S9_Cerr_symbols_ph_th} // shift sym: LR1_questionable_shift_operator
+ ,{131,(State*)&S10_Cerr_symbols_ph_th} // shift sym: raw_open_brace
+ ,{579,(State*)&S11_Cerr_symbols_ph_th} // shift sym: Rsym_defs_phrase
+ ,{583,(State*)&S13_Cerr_symbols_ph_th} // shift sym: Ropen_brace
+ }// end of shift table
+};
+yacco2::Shift_entry S8qse_Cerr_symbols_ph_th = {0,(State*)&S9_Cerr_symbols_ph_th};
+yacco2::State S8_Cerr_symbols_ph_th = //State's vectored into symbol: "Rlint"
+{8
+,0,0,0,0,(Shift_tbl*)&S8st_Cerr_symbols_ph_th,0,0,0,(Shift_entry*)&S8qse_Cerr_symbols_ph_th
+};
+struct S9rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Cerr_symbols_ph_th S9rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs1_Ropen_brace_}
+ }// end of reduce table
+};
+yacco2::State S9_Cerr_symbols_ph_th = //State's vectored into symbol: "|?|"
+{9
+,0,0,0,0,0,(Reduce_tbl*)&S9rt_Cerr_symbols_ph_th,0,0,0};
+struct S10rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S10rtd_Cerr_symbols_ph_th S10rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs2_Ropen_brace_}
+ }// end of reduce table
+};
+yacco2::State S10_Cerr_symbols_ph_th = //State's vectored into symbol: "{"
+{10
+,0,0,0,0,0,(Reduce_tbl*)&S10rt_Cerr_symbols_ph_th,0,0,0};
+struct S11std_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S11std_Cerr_symbols_ph_th S11st_Cerr_symbols_ph_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Cerr_symbols_ph_th} // shift sym: LR1_parallel_operator
+ ,{585,(State*)&S12_Cerr_symbols_ph_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S11pse_Cerr_symbols_ph_th = {3,(State*)&S2_Cerr_symbols_ph_th};
+struct S11rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Cerr_symbols_ph_th S11rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S11_Cerr_symbols_ph_th = //State's vectored into symbol: "Rsym_defs_phrase"
+{11
+,(Shift_entry*)&S11pse_Cerr_symbols_ph_th,0,0,0,(Shift_tbl*)&S11st_Cerr_symbols_ph_th,(Reduce_tbl*)&S11rt_Cerr_symbols_ph_th,(State_s_thread_tbl*)&S2tt_Cerr_symbols_ph_th,0,0};
+struct S12rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S12rtd_Cerr_symbols_ph_th S12rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs1_Rerror_symbols_phrase_}
+ }// end of reduce table
+};
+yacco2::State S12_Cerr_symbols_ph_th = //State's vectored into symbol: "Rlint"
+{12
+,0,0,0,0,0,(Reduce_tbl*)&S12rt_Cerr_symbols_ph_th,0,0,0};
+struct S13std_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S13std_Cerr_symbols_ph_th S13st_Cerr_symbols_ph_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Cerr_symbols_ph_th} // shift sym: LR1_parallel_operator
+ ,{585,(State*)&S14_Cerr_symbols_ph_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S13pse_Cerr_symbols_ph_th = {3,(State*)&S2_Cerr_symbols_ph_th};
+struct S13rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S13rtd_Cerr_symbols_ph_th S13rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S13_Cerr_symbols_ph_th = //State's vectored into symbol: "Ropen_brace"
+{13
+,(Shift_entry*)&S13pse_Cerr_symbols_ph_th,0,0,0,(Shift_tbl*)&S13st_Cerr_symbols_ph_th,(Reduce_tbl*)&S13rt_Cerr_symbols_ph_th,(State_s_thread_tbl*)&S2tt_Cerr_symbols_ph_th,0,0};
+struct S14std_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S14std_Cerr_symbols_ph_th S14st_Cerr_symbols_ph_th = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S44_Cerr_symbols_ph_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S45_Cerr_symbols_ph_th} // shift sym: LR1_parallel_operator
+ ,{580,(State*)&S15_Cerr_symbols_ph_th} // shift sym: Rsym_defs
+ ,{581,(State*)&S53_Cerr_symbols_ph_th} // shift sym: Rsym_def
+ }// end of shift table
+};
+yacco2::Shift_entry S14pse_Cerr_symbols_ph_th = {3,(State*)&S45_Cerr_symbols_ph_th};
+yacco2::Shift_entry S14qse_Cerr_symbols_ph_th = {0,(State*)&S44_Cerr_symbols_ph_th};
+yacco2::State S14_Cerr_symbols_ph_th = //State's vectored into symbol: "Rlint"
+{14
+,(Shift_entry*)&S14pse_Cerr_symbols_ph_th,0,0,0,(Shift_tbl*)&S14st_Cerr_symbols_ph_th,0,(State_s_thread_tbl*)&S45tt_Cerr_symbols_ph_th,0,(Shift_entry*)&S14qse_Cerr_symbols_ph_th
+};
+struct S15std_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S15std_Cerr_symbols_ph_th S15st_Cerr_symbols_ph_th = {
+ 5
+ ,
+ {// start of table
+ {0,(State*)&S16_Cerr_symbols_ph_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S17_Cerr_symbols_ph_th} // shift sym: LR1_parallel_operator
+ ,{133,(State*)&S23_Cerr_symbols_ph_th} // shift sym: raw_close_brace
+ ,{582,(State*)&S51_Cerr_symbols_ph_th} // shift sym: Rsym_def1
+ ,{584,(State*)&S24_Cerr_symbols_ph_th} // shift sym: Rclose_brace
+ }// end of shift table
+};
+yacco2::Shift_entry S15pse_Cerr_symbols_ph_th = {3,(State*)&S17_Cerr_symbols_ph_th};
+yacco2::Shift_entry S15qse_Cerr_symbols_ph_th = {0,(State*)&S16_Cerr_symbols_ph_th};
+yacco2::State S15_Cerr_symbols_ph_th = //State's vectored into symbol: "Rsym_defs"
+{15
+,(Shift_entry*)&S15pse_Cerr_symbols_ph_th,0,0,0,(Shift_tbl*)&S15st_Cerr_symbols_ph_th,0,(State_s_thread_tbl*)&S17tt_Cerr_symbols_ph_th,0,(Shift_entry*)&S15qse_Cerr_symbols_ph_th
+};
+struct S16rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S16rtd_Cerr_symbols_ph_th S16rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs1_Rclose_brace_}
+ }// end of reduce table
+};
+yacco2::State S16_Cerr_symbols_ph_th = //State's vectored into symbol: "|?|"
+{16
+,0,0,0,0,0,(Reduce_tbl*)&S16rt_Cerr_symbols_ph_th,0,0,0};
+struct S17std_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S17std_Cerr_symbols_ph_th S17st_Cerr_symbols_ph_th = {
+ 5
+ ,
+ {// start of table
+ {6,(State*)&S18_Cerr_symbols_ph_th} // shift sym: LR1_all_shift_operator
+ ,{319,(State*)&S19_Cerr_symbols_ph_th} // shift sym: T_terminals_refs
+ ,{320,(State*)&S20_Cerr_symbols_ph_th} // shift sym: T_terminals_sufx
+ ,{321,(State*)&S21_Cerr_symbols_ph_th} // shift sym: T_lrk_sufx
+ ,{331,(State*)&S22_Cerr_symbols_ph_th} // shift sym: T_terminal_def
+ }// end of shift table
+};
+yacco2::Shift_entry S17ase_Cerr_symbols_ph_th = {6,(State*)&S18_Cerr_symbols_ph_th};
+yacco2::State S17_Cerr_symbols_ph_th = //State's vectored into symbol: "|||"
+{17
+,0,(Shift_entry*)&S17ase_Cerr_symbols_ph_th
+,0,0,(Shift_tbl*)&S17st_Cerr_symbols_ph_th,0,0,0,0};
+struct S18rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S18rtd_Cerr_symbols_ph_th S18rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs5_Rsym_def1_}
+ }// end of reduce table
+};
+yacco2::State S18_Cerr_symbols_ph_th = //State's vectored into symbol: "|+|"
+{18
+,0,0,0,0,0,(Reduce_tbl*)&S18rt_Cerr_symbols_ph_th,0,0,0};
+struct S19rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S19rtd_Cerr_symbols_ph_th S19rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs3_Rsym_def1_}
+ }// end of reduce table
+};
+yacco2::State S19_Cerr_symbols_ph_th = //State's vectored into symbol: "#terminals-refs"
+{19
+,0,0,0,0,0,(Reduce_tbl*)&S19rt_Cerr_symbols_ph_th,0,0,0};
+struct S20rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S20rtd_Cerr_symbols_ph_th S20rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs4_Rsym_def1_}
+ }// end of reduce table
+};
+yacco2::State S20_Cerr_symbols_ph_th = //State's vectored into symbol: "#terminals-sufx"
+{20
+,0,0,0,0,0,(Reduce_tbl*)&S20rt_Cerr_symbols_ph_th,0,0,0};
+struct S21rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S21rtd_Cerr_symbols_ph_th S21rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs2_Rsym_def1_}
+ }// end of reduce table
+};
+yacco2::State S21_Cerr_symbols_ph_th = //State's vectored into symbol: "#lrk-sufx"
+{21
+,0,0,0,0,0,(Reduce_tbl*)&S21rt_Cerr_symbols_ph_th,0,0,0};
+struct S22rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S22rtd_Cerr_symbols_ph_th S22rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs1_Rsym_def1_}
+ }// end of reduce table
+};
+yacco2::State S22_Cerr_symbols_ph_th = //State's vectored into symbol: "terminal-def"
+{22
+,0,0,0,0,0,(Reduce_tbl*)&S22rt_Cerr_symbols_ph_th,0,0,0};
+struct S23rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S23rtd_Cerr_symbols_ph_th S23rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs2_Rclose_brace_}
+ }// end of reduce table
+};
+yacco2::State S23_Cerr_symbols_ph_th = //State's vectored into symbol: "}"
+{23
+,0,0,0,0,0,(Reduce_tbl*)&S23rt_Cerr_symbols_ph_th,0,0,0};
+struct S24rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S24rtd_Cerr_symbols_ph_th S24rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs1_Rsym_defs_phrase_}
+ }// end of reduce table
+};
+yacco2::State S24_Cerr_symbols_ph_th = //State's vectored into symbol: "Rclose_brace"
+{24
+,0,0,0,0,0,(Reduce_tbl*)&S24rt_Cerr_symbols_ph_th,0,0,0};
+struct S25rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S25rtd_Cerr_symbols_ph_th S25rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs1_Ropen_par_}
+ }// end of reduce table
+};
+yacco2::State S25_Cerr_symbols_ph_th = //State's vectored into symbol: "|?|"
+{25
+,0,0,0,0,0,(Reduce_tbl*)&S25rt_Cerr_symbols_ph_th,0,0,0};
+struct S26rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S26rtd_Cerr_symbols_ph_th S26rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs2_Ropen_par_}
+ }// end of reduce table
+};
+yacco2::State S26_Cerr_symbols_ph_th = //State's vectored into symbol: "("
+{26
+,0,0,0,0,0,(Reduce_tbl*)&S26rt_Cerr_symbols_ph_th,0,0,0};
+struct S27std_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S27std_Cerr_symbols_ph_th S27st_Cerr_symbols_ph_th = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S55_Cerr_symbols_ph_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S56_Cerr_symbols_ph_th} // shift sym: LR1_parallel_operator
+ ,{573,(State*)&S28_Cerr_symbols_ph_th} // shift sym: Rfilename_phrase
+ ,{574,(State*)&S59_Cerr_symbols_ph_th} // shift sym: Rfilename
+ }// end of shift table
+};
+yacco2::Shift_entry S27pse_Cerr_symbols_ph_th = {3,(State*)&S56_Cerr_symbols_ph_th};
+yacco2::Shift_entry S27qse_Cerr_symbols_ph_th = {0,(State*)&S55_Cerr_symbols_ph_th};
+yacco2::State S27_Cerr_symbols_ph_th = //State's vectored into symbol: "Rlint"
+{27
+,(Shift_entry*)&S27pse_Cerr_symbols_ph_th,0,0,0,(Shift_tbl*)&S27st_Cerr_symbols_ph_th,0,(State_s_thread_tbl*)&S56tt_Cerr_symbols_ph_th,0,(Shift_entry*)&S27qse_Cerr_symbols_ph_th
+};
+struct S28std_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S28std_Cerr_symbols_ph_th S28st_Cerr_symbols_ph_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Cerr_symbols_ph_th} // shift sym: LR1_parallel_operator
+ ,{585,(State*)&S29_Cerr_symbols_ph_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S28pse_Cerr_symbols_ph_th = {3,(State*)&S2_Cerr_symbols_ph_th};
+struct S28rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S28rtd_Cerr_symbols_ph_th S28rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S28_Cerr_symbols_ph_th = //State's vectored into symbol: "Rfilename_phrase"
+{28
+,(Shift_entry*)&S28pse_Cerr_symbols_ph_th,0,0,0,(Shift_tbl*)&S28st_Cerr_symbols_ph_th,(Reduce_tbl*)&S28rt_Cerr_symbols_ph_th,(State_s_thread_tbl*)&S2tt_Cerr_symbols_ph_th,0,0};
+struct S29std_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S29std_Cerr_symbols_ph_th S29st_Cerr_symbols_ph_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S30_Cerr_symbols_ph_th} // shift sym: LR1_questionable_shift_operator
+ ,{52,(State*)&S31_Cerr_symbols_ph_th} // shift sym: raw_comma
+ ,{576,(State*)&S40_Cerr_symbols_ph_th} // shift sym: Rnamespace_phrase
+ }// end of shift table
+};
+yacco2::Shift_entry S29qse_Cerr_symbols_ph_th = {0,(State*)&S30_Cerr_symbols_ph_th};
+yacco2::State S29_Cerr_symbols_ph_th = //State's vectored into symbol: "Rlint"
+{29
+,0,0,0,0,(Shift_tbl*)&S29st_Cerr_symbols_ph_th,0,0,0,(Shift_entry*)&S29qse_Cerr_symbols_ph_th
+};
+struct S30rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S30rtd_Cerr_symbols_ph_th S30rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs2_Rnamespace_phrase_}
+ }// end of reduce table
+};
+yacco2::State S30_Cerr_symbols_ph_th = //State's vectored into symbol: "|?|"
+{30
+,0,0,0,0,0,(Reduce_tbl*)&S30rt_Cerr_symbols_ph_th,0,0,0};
+struct S31std_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S31std_Cerr_symbols_ph_th S31st_Cerr_symbols_ph_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Cerr_symbols_ph_th} // shift sym: LR1_parallel_operator
+ ,{585,(State*)&S32_Cerr_symbols_ph_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S31pse_Cerr_symbols_ph_th = {3,(State*)&S2_Cerr_symbols_ph_th};
+struct S31rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S31rtd_Cerr_symbols_ph_th S31rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S31_Cerr_symbols_ph_th = //State's vectored into symbol: ","
+{31
+,(Shift_entry*)&S31pse_Cerr_symbols_ph_th,0,0,0,(Shift_tbl*)&S31st_Cerr_symbols_ph_th,(Reduce_tbl*)&S31rt_Cerr_symbols_ph_th,(State_s_thread_tbl*)&S2tt_Cerr_symbols_ph_th,0,0};
+struct S32std_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S32std_Cerr_symbols_ph_th S32st_Cerr_symbols_ph_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S66_Cerr_symbols_ph_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S67_Cerr_symbols_ph_th} // shift sym: LR1_parallel_operator
+ ,{577,(State*)&S33_Cerr_symbols_ph_th} // shift sym: Rnamespace
+ }// end of shift table
+};
+yacco2::Shift_entry S32pse_Cerr_symbols_ph_th = {3,(State*)&S67_Cerr_symbols_ph_th};
+yacco2::Shift_entry S32qse_Cerr_symbols_ph_th = {0,(State*)&S66_Cerr_symbols_ph_th};
+yacco2::State S32_Cerr_symbols_ph_th = //State's vectored into symbol: "Rlint"
+{32
+,(Shift_entry*)&S32pse_Cerr_symbols_ph_th,0,0,0,(Shift_tbl*)&S32st_Cerr_symbols_ph_th,0,(State_s_thread_tbl*)&S67tt_Cerr_symbols_ph_th,0,(Shift_entry*)&S32qse_Cerr_symbols_ph_th
+};
+struct S33std_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S33std_Cerr_symbols_ph_th S33st_Cerr_symbols_ph_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Cerr_symbols_ph_th} // shift sym: LR1_parallel_operator
+ ,{585,(State*)&S34_Cerr_symbols_ph_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S33pse_Cerr_symbols_ph_th = {3,(State*)&S2_Cerr_symbols_ph_th};
+struct S33rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S33rtd_Cerr_symbols_ph_th S33rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S33_Cerr_symbols_ph_th = //State's vectored into symbol: "Rnamespace"
+{33
+,(Shift_entry*)&S33pse_Cerr_symbols_ph_th,0,0,0,(Shift_tbl*)&S33st_Cerr_symbols_ph_th,(Reduce_tbl*)&S33rt_Cerr_symbols_ph_th,(State_s_thread_tbl*)&S2tt_Cerr_symbols_ph_th,0,0};
+struct S34std_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S34std_Cerr_symbols_ph_th S34st_Cerr_symbols_ph_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S35_Cerr_symbols_ph_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S36_Cerr_symbols_ph_th} // shift sym: LR1_parallel_operator
+ ,{578,(State*)&S39_Cerr_symbols_ph_th} // shift sym: Rnamespace_id
+ }// end of shift table
+};
+yacco2::Shift_entry S34pse_Cerr_symbols_ph_th = {3,(State*)&S36_Cerr_symbols_ph_th};
+yacco2::Shift_entry S34qse_Cerr_symbols_ph_th = {0,(State*)&S35_Cerr_symbols_ph_th};
+yacco2::State S34_Cerr_symbols_ph_th = //State's vectored into symbol: "Rlint"
+{34
+,(Shift_entry*)&S34pse_Cerr_symbols_ph_th,0,0,0,(Shift_tbl*)&S34st_Cerr_symbols_ph_th,0,(State_s_thread_tbl*)&S36tt_Cerr_symbols_ph_th,0,(Shift_entry*)&S34qse_Cerr_symbols_ph_th
+};
+struct S35rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S35rtd_Cerr_symbols_ph_th S35rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs3_Rnamespace_id_}
+ }// end of reduce table
+};
+yacco2::State S35_Cerr_symbols_ph_th = //State's vectored into symbol: "|?|"
+{35
+,0,0,0,0,0,(Reduce_tbl*)&S35rt_Cerr_symbols_ph_th,0,0,0};
+struct S36std_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S36std_Cerr_symbols_ph_th S36st_Cerr_symbols_ph_th = {
+ 2
+ ,
+ {// start of table
+ {6,(State*)&S37_Cerr_symbols_ph_th} // shift sym: LR1_all_shift_operator
+ ,{279,(State*)&S38_Cerr_symbols_ph_th} // shift sym: T_identifier
+ }// end of shift table
+};
+yacco2::Shift_entry S36ase_Cerr_symbols_ph_th = {6,(State*)&S37_Cerr_symbols_ph_th};
+yacco2::State S36_Cerr_symbols_ph_th = //State's vectored into symbol: "|||"
+{36
+,0,(Shift_entry*)&S36ase_Cerr_symbols_ph_th
+,0,0,(Shift_tbl*)&S36st_Cerr_symbols_ph_th,0,0,0,0};
+struct S37rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S37rtd_Cerr_symbols_ph_th S37rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs2_Rnamespace_id_}
+ }// end of reduce table
+};
+yacco2::State S37_Cerr_symbols_ph_th = //State's vectored into symbol: "|+|"
+{37
+,0,0,0,0,0,(Reduce_tbl*)&S37rt_Cerr_symbols_ph_th,0,0,0};
+struct S38rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S38rtd_Cerr_symbols_ph_th S38rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs1_Rnamespace_id_}
+ }// end of reduce table
+};
+yacco2::State S38_Cerr_symbols_ph_th = //State's vectored into symbol: "identifier"
+{38
+,0,0,0,0,0,(Reduce_tbl*)&S38rt_Cerr_symbols_ph_th,0,0,0};
+struct S39rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S39rtd_Cerr_symbols_ph_th S39rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs1_Rnamespace_phrase_}
+ }// end of reduce table
+};
+yacco2::State S39_Cerr_symbols_ph_th = //State's vectored into symbol: "Rnamespace_id"
+{39
+,0,0,0,0,0,(Reduce_tbl*)&S39rt_Cerr_symbols_ph_th,0,0,0};
+struct S40std_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S40std_Cerr_symbols_ph_th S40st_Cerr_symbols_ph_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Cerr_symbols_ph_th} // shift sym: LR1_parallel_operator
+ ,{585,(State*)&S41_Cerr_symbols_ph_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S40pse_Cerr_symbols_ph_th = {3,(State*)&S2_Cerr_symbols_ph_th};
+struct S40rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S40rtd_Cerr_symbols_ph_th S40rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S40_Cerr_symbols_ph_th = //State's vectored into symbol: "Rnamespace_phrase"
+{40
+,(Shift_entry*)&S40pse_Cerr_symbols_ph_th,0,0,0,(Shift_tbl*)&S40st_Cerr_symbols_ph_th,(Reduce_tbl*)&S40rt_Cerr_symbols_ph_th,(State_s_thread_tbl*)&S2tt_Cerr_symbols_ph_th,0,0};
+struct S41rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S41rtd_Cerr_symbols_ph_th S41rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs1_Rparameters_}
+ }// end of reduce table
+};
+yacco2::State S41_Cerr_symbols_ph_th = //State's vectored into symbol: "Rlint"
+{41
+,0,0,0,0,0,(Reduce_tbl*)&S41rt_Cerr_symbols_ph_th,0,0,0};
+struct S42rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S42rtd_Cerr_symbols_ph_th S42rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA8_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs1_Rclose_par_}
+ }// end of reduce table
+};
+yacco2::State S42_Cerr_symbols_ph_th = //State's vectored into symbol: "|?|"
+{42
+,0,0,0,0,0,(Reduce_tbl*)&S42rt_Cerr_symbols_ph_th,0,0,0};
+struct S43rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S43rtd_Cerr_symbols_ph_th S43rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA8_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs2_Rclose_par_}
+ }// end of reduce table
+};
+yacco2::State S43_Cerr_symbols_ph_th = //State's vectored into symbol: ")"
+{43
+,0,0,0,0,0,(Reduce_tbl*)&S43rt_Cerr_symbols_ph_th,0,0,0};
+struct S44rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S44rtd_Cerr_symbols_ph_th S44rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs6_Rsym_def_}
+ }// end of reduce table
+};
+yacco2::State S44_Cerr_symbols_ph_th = //State's vectored into symbol: "|?|"
+{44
+,0,0,0,0,0,(Reduce_tbl*)&S44rt_Cerr_symbols_ph_th,0,0,0};
+struct S45std_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S45std_Cerr_symbols_ph_th S45st_Cerr_symbols_ph_th = {
+ 5
+ ,
+ {// start of table
+ {6,(State*)&S46_Cerr_symbols_ph_th} // shift sym: LR1_all_shift_operator
+ ,{319,(State*)&S47_Cerr_symbols_ph_th} // shift sym: T_terminals_refs
+ ,{320,(State*)&S48_Cerr_symbols_ph_th} // shift sym: T_terminals_sufx
+ ,{321,(State*)&S49_Cerr_symbols_ph_th} // shift sym: T_lrk_sufx
+ ,{331,(State*)&S50_Cerr_symbols_ph_th} // shift sym: T_terminal_def
+ }// end of shift table
+};
+yacco2::Shift_entry S45ase_Cerr_symbols_ph_th = {6,(State*)&S46_Cerr_symbols_ph_th};
+yacco2::State S45_Cerr_symbols_ph_th = //State's vectored into symbol: "|||"
+{45
+,0,(Shift_entry*)&S45ase_Cerr_symbols_ph_th
+,0,0,(Shift_tbl*)&S45st_Cerr_symbols_ph_th,0,0,0,0};
+struct S46rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S46rtd_Cerr_symbols_ph_th S46rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs2_Rsym_def_}
+ }// end of reduce table
+};
+yacco2::State S46_Cerr_symbols_ph_th = //State's vectored into symbol: "|+|"
+{46
+,0,0,0,0,0,(Reduce_tbl*)&S46rt_Cerr_symbols_ph_th,0,0,0};
+struct S47rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S47rtd_Cerr_symbols_ph_th S47rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs4_Rsym_def_}
+ }// end of reduce table
+};
+yacco2::State S47_Cerr_symbols_ph_th = //State's vectored into symbol: "#terminals-refs"
+{47
+,0,0,0,0,0,(Reduce_tbl*)&S47rt_Cerr_symbols_ph_th,0,0,0};
+struct S48rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S48rtd_Cerr_symbols_ph_th S48rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs5_Rsym_def_}
+ }// end of reduce table
+};
+yacco2::State S48_Cerr_symbols_ph_th = //State's vectored into symbol: "#terminals-sufx"
+{48
+,0,0,0,0,0,(Reduce_tbl*)&S48rt_Cerr_symbols_ph_th,0,0,0};
+struct S49rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S49rtd_Cerr_symbols_ph_th S49rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs3_Rsym_def_}
+ }// end of reduce table
+};
+yacco2::State S49_Cerr_symbols_ph_th = //State's vectored into symbol: "#lrk-sufx"
+{49
+,0,0,0,0,0,(Reduce_tbl*)&S49rt_Cerr_symbols_ph_th,0,0,0};
+struct S50rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S50rtd_Cerr_symbols_ph_th S50rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs1_Rsym_def_}
+ }// end of reduce table
+};
+yacco2::State S50_Cerr_symbols_ph_th = //State's vectored into symbol: "terminal-def"
+{50
+,0,0,0,0,0,(Reduce_tbl*)&S50rt_Cerr_symbols_ph_th,0,0,0};
+struct S51std_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S51std_Cerr_symbols_ph_th S51st_Cerr_symbols_ph_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Cerr_symbols_ph_th} // shift sym: LR1_parallel_operator
+ ,{585,(State*)&S52_Cerr_symbols_ph_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S51pse_Cerr_symbols_ph_th = {3,(State*)&S2_Cerr_symbols_ph_th};
+struct S51rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S51rtd_Cerr_symbols_ph_th S51rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S51_Cerr_symbols_ph_th = //State's vectored into symbol: "Rsym_def1"
+{51
+,(Shift_entry*)&S51pse_Cerr_symbols_ph_th,0,0,0,(Shift_tbl*)&S51st_Cerr_symbols_ph_th,(Reduce_tbl*)&S51rt_Cerr_symbols_ph_th,(State_s_thread_tbl*)&S2tt_Cerr_symbols_ph_th,0,0};
+struct S52rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S52rtd_Cerr_symbols_ph_th S52rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs2_Rsym_defs_}
+ }// end of reduce table
+};
+yacco2::State S52_Cerr_symbols_ph_th = //State's vectored into symbol: "Rlint"
+{52
+,0,0,0,0,0,(Reduce_tbl*)&S52rt_Cerr_symbols_ph_th,0,0,0};
+struct S53std_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S53std_Cerr_symbols_ph_th S53st_Cerr_symbols_ph_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Cerr_symbols_ph_th} // shift sym: LR1_parallel_operator
+ ,{585,(State*)&S54_Cerr_symbols_ph_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S53pse_Cerr_symbols_ph_th = {3,(State*)&S2_Cerr_symbols_ph_th};
+struct S53rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S53rtd_Cerr_symbols_ph_th S53rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S53_Cerr_symbols_ph_th = //State's vectored into symbol: "Rsym_def"
+{53
+,(Shift_entry*)&S53pse_Cerr_symbols_ph_th,0,0,0,(Shift_tbl*)&S53st_Cerr_symbols_ph_th,(Reduce_tbl*)&S53rt_Cerr_symbols_ph_th,(State_s_thread_tbl*)&S2tt_Cerr_symbols_ph_th,0,0};
+struct S54rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S54rtd_Cerr_symbols_ph_th S54rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs1_Rsym_defs_}
+ }// end of reduce table
+};
+yacco2::State S54_Cerr_symbols_ph_th = //State's vectored into symbol: "Rlint"
+{54
+,0,0,0,0,0,(Reduce_tbl*)&S54rt_Cerr_symbols_ph_th,0,0,0};
+struct S55rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S55rtd_Cerr_symbols_ph_th S55rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs3_Rfilename_}
+ }// end of reduce table
+};
+yacco2::State S55_Cerr_symbols_ph_th = //State's vectored into symbol: "|?|"
+{55
+,0,0,0,0,0,(Reduce_tbl*)&S55rt_Cerr_symbols_ph_th,0,0,0};
+struct S56std_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S56std_Cerr_symbols_ph_th S56st_Cerr_symbols_ph_th = {
+ 2
+ ,
+ {// start of table
+ {6,(State*)&S57_Cerr_symbols_ph_th} // shift sym: LR1_all_shift_operator
+ ,{303,(State*)&S58_Cerr_symbols_ph_th} // shift sym: T_file_name
+ }// end of shift table
+};
+yacco2::Shift_entry S56ase_Cerr_symbols_ph_th = {6,(State*)&S57_Cerr_symbols_ph_th};
+yacco2::State S56_Cerr_symbols_ph_th = //State's vectored into symbol: "|||"
+{56
+,0,(Shift_entry*)&S56ase_Cerr_symbols_ph_th
+,0,0,(Shift_tbl*)&S56st_Cerr_symbols_ph_th,0,0,0,0};
+struct S57rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S57rtd_Cerr_symbols_ph_th S57rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs2_Rfilename_}
+ }// end of reduce table
+};
+yacco2::State S57_Cerr_symbols_ph_th = //State's vectored into symbol: "|+|"
+{57
+,0,0,0,0,0,(Reduce_tbl*)&S57rt_Cerr_symbols_ph_th,0,0,0};
+struct S58rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S58rtd_Cerr_symbols_ph_th S58rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs1_Rfilename_}
+ }// end of reduce table
+};
+yacco2::State S58_Cerr_symbols_ph_th = //State's vectored into symbol: "#file-name"
+{58
+,0,0,0,0,0,(Reduce_tbl*)&S58rt_Cerr_symbols_ph_th,0,0,0};
+struct S59std_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S59std_Cerr_symbols_ph_th S59st_Cerr_symbols_ph_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Cerr_symbols_ph_th} // shift sym: LR1_parallel_operator
+ ,{585,(State*)&S60_Cerr_symbols_ph_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S59pse_Cerr_symbols_ph_th = {3,(State*)&S2_Cerr_symbols_ph_th};
+struct S59rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S59rtd_Cerr_symbols_ph_th S59rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S59_Cerr_symbols_ph_th = //State's vectored into symbol: "Rfilename"
+{59
+,(Shift_entry*)&S59pse_Cerr_symbols_ph_th,0,0,0,(Shift_tbl*)&S59st_Cerr_symbols_ph_th,(Reduce_tbl*)&S59rt_Cerr_symbols_ph_th,(State_s_thread_tbl*)&S2tt_Cerr_symbols_ph_th,0,0};
+struct S60std_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S60std_Cerr_symbols_ph_th S60st_Cerr_symbols_ph_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S61_Cerr_symbols_ph_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S62_Cerr_symbols_ph_th} // shift sym: LR1_parallel_operator
+ ,{575,(State*)&S65_Cerr_symbols_ph_th} // shift sym: Rfilename_id
+ }// end of shift table
+};
+yacco2::Shift_entry S60pse_Cerr_symbols_ph_th = {3,(State*)&S62_Cerr_symbols_ph_th};
+yacco2::Shift_entry S60qse_Cerr_symbols_ph_th = {0,(State*)&S61_Cerr_symbols_ph_th};
+yacco2::State S60_Cerr_symbols_ph_th = //State's vectored into symbol: "Rlint"
+{60
+,(Shift_entry*)&S60pse_Cerr_symbols_ph_th,0,0,0,(Shift_tbl*)&S60st_Cerr_symbols_ph_th,0,(State_s_thread_tbl*)&S62tt_Cerr_symbols_ph_th,0,(Shift_entry*)&S60qse_Cerr_symbols_ph_th
+};
+struct S61rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S61rtd_Cerr_symbols_ph_th S61rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA9_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs3_Rfilename_id_}
+ }// end of reduce table
+};
+yacco2::State S61_Cerr_symbols_ph_th = //State's vectored into symbol: "|?|"
+{61
+,0,0,0,0,0,(Reduce_tbl*)&S61rt_Cerr_symbols_ph_th,0,0,0};
+struct S62std_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S62std_Cerr_symbols_ph_th S62st_Cerr_symbols_ph_th = {
+ 2
+ ,
+ {// start of table
+ {6,(State*)&S63_Cerr_symbols_ph_th} // shift sym: LR1_all_shift_operator
+ ,{279,(State*)&S64_Cerr_symbols_ph_th} // shift sym: T_identifier
+ }// end of shift table
+};
+yacco2::Shift_entry S62ase_Cerr_symbols_ph_th = {6,(State*)&S63_Cerr_symbols_ph_th};
+yacco2::State S62_Cerr_symbols_ph_th = //State's vectored into symbol: "|||"
+{62
+,0,(Shift_entry*)&S62ase_Cerr_symbols_ph_th
+,0,0,(Shift_tbl*)&S62st_Cerr_symbols_ph_th,0,0,0,0};
+struct S63rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S63rtd_Cerr_symbols_ph_th S63rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA9_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs2_Rfilename_id_}
+ }// end of reduce table
+};
+yacco2::State S63_Cerr_symbols_ph_th = //State's vectored into symbol: "|+|"
+{63
+,0,0,0,0,0,(Reduce_tbl*)&S63rt_Cerr_symbols_ph_th,0,0,0};
+struct S64rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S64rtd_Cerr_symbols_ph_th S64rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA9_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs1_Rfilename_id_}
+ }// end of reduce table
+};
+yacco2::State S64_Cerr_symbols_ph_th = //State's vectored into symbol: "identifier"
+{64
+,0,0,0,0,0,(Reduce_tbl*)&S64rt_Cerr_symbols_ph_th,0,0,0};
+struct S65rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S65rtd_Cerr_symbols_ph_th S65rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA9_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs1_Rfilename_phrase_}
+ }// end of reduce table
+};
+yacco2::State S65_Cerr_symbols_ph_th = //State's vectored into symbol: "Rfilename_id"
+{65
+,0,0,0,0,0,(Reduce_tbl*)&S65rt_Cerr_symbols_ph_th,0,0,0};
+struct S66rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S66rtd_Cerr_symbols_ph_th S66rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs3_Rnamespace_}
+ }// end of reduce table
+};
+yacco2::State S66_Cerr_symbols_ph_th = //State's vectored into symbol: "|?|"
+{66
+,0,0,0,0,0,(Reduce_tbl*)&S66rt_Cerr_symbols_ph_th,0,0,0};
+struct S67std_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S67std_Cerr_symbols_ph_th S67st_Cerr_symbols_ph_th = {
+ 2
+ ,
+ {// start of table
+ {6,(State*)&S68_Cerr_symbols_ph_th} // shift sym: LR1_all_shift_operator
+ ,{304,(State*)&S69_Cerr_symbols_ph_th} // shift sym: T_name_space
+ }// end of shift table
+};
+yacco2::Shift_entry S67ase_Cerr_symbols_ph_th = {6,(State*)&S68_Cerr_symbols_ph_th};
+yacco2::State S67_Cerr_symbols_ph_th = //State's vectored into symbol: "|||"
+{67
+,0,(Shift_entry*)&S67ase_Cerr_symbols_ph_th
+,0,0,(Shift_tbl*)&S67st_Cerr_symbols_ph_th,0,0,0,0};
+struct S68rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S68rtd_Cerr_symbols_ph_th S68rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs2_Rnamespace_}
+ }// end of reduce table
+};
+yacco2::State S68_Cerr_symbols_ph_th = //State's vectored into symbol: "|+|"
+{68
+,0,0,0,0,0,(Reduce_tbl*)&S68rt_Cerr_symbols_ph_th,0,0,0};
+struct S69rtd_Cerr_symbols_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S69rtd_Cerr_symbols_ph_th S69rt_Cerr_symbols_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cerr_symbols_ph_th,Cerr_symbols_ph_th::rhs1_Rnamespace_}
+ }// end of reduce table
+};
+yacco2::State S69_Cerr_symbols_ph_th = //State's vectored into symbol: "#name-space"
+{69
+,0,0,0,0,0,(Reduce_tbl*)&S69rt_Cerr_symbols_ph_th,0,0,0};
diff --git a/web/yacco2/compiler/grammars/err_symbols_phsym.cpp b/web/yacco2/compiler/grammars/err_symbols_phsym.cpp
new file mode 100644
index 0000000000..c206022556
--- /dev/null
+++ b/web/yacco2/compiler/grammars/err_symbols_phsym.cpp
@@ -0,0 +1,86 @@
+/*
+ File: err_symbols_phsym.cpp
+ Date and Time: Fri Jan 30 18:55:10 2015
+*/
+#include "err_symbols_ph.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_err_symbols_ph;// grammar's ns
+// first set terminals
+// monolithic grammar --- no thread
+void
+Cerr_symbols_ph::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rerror_symbols_phrase_:{
+ Rerror_symbols_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rerror_symbols_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rerror_symbols_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rphrase_:{
+ Rphrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rphrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rphrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rphrase_:{
+ Rphrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rphrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rphrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rphrase_:{
+ Rphrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rphrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rphrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/err_symbols_phtbl.cpp b/web/yacco2/compiler/grammars/err_symbols_phtbl.cpp
new file mode 100644
index 0000000000..b705a7eebd
--- /dev/null
+++ b/web/yacco2/compiler/grammars/err_symbols_phtbl.cpp
@@ -0,0 +1,129 @@
+/*
+ File: err_symbols_phtbl.cpp
+ Date and Time: Fri Jan 30 18:55:10 2015
+*/
+#include "err_symbols_ph.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_err_symbols_ph;// grammar's ns
+// first set terminals
+// LR1_eolr
+yacco2::UCHAR LA1_Cerr_symbols_ph[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Cerr_symbols_ph;
+extern yacco2::State S2_Cerr_symbols_ph;
+extern yacco2::State S3_Cerr_symbols_ph;
+struct S3ttd_Cerr_symbols_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S3ttd_Cerr_symbols_ph S3tt_Cerr_symbols_ph = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_err_symbols_ph_th
+};
+extern yacco2::State S4_Cerr_symbols_ph;
+extern yacco2::State S5_Cerr_symbols_ph;
+extern yacco2::State S6_Cerr_symbols_ph;
+struct S1std_Cerr_symbols_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S1std_Cerr_symbols_ph S1st_Cerr_symbols_ph = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S2_Cerr_symbols_ph} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S3_Cerr_symbols_ph} // shift sym: LR1_parallel_operator
+ ,{569,(State*)&S1_Cerr_symbols_ph} // accept sym: Rerror_symbols_phrase
+ ,{570,(State*)&S6_Cerr_symbols_ph} // shift sym: Rphrase
+ }// end of shift table
+};
+yacco2::Shift_entry S1pse_Cerr_symbols_ph = {3,(State*)&S3_Cerr_symbols_ph};
+yacco2::Shift_entry S1qse_Cerr_symbols_ph = {0,(State*)&S2_Cerr_symbols_ph};
+yacco2::State S1_Cerr_symbols_ph = //State's vectored into symbol: " No symbol"
+{1
+,(Shift_entry*)&S1pse_Cerr_symbols_ph,0,0,0,(Shift_tbl*)&S1st_Cerr_symbols_ph,0,(State_s_thread_tbl*)&S3tt_Cerr_symbols_ph,0,(Shift_entry*)&S1qse_Cerr_symbols_ph
+};
+struct S2rtd_Cerr_symbols_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Cerr_symbols_ph S2rt_Cerr_symbols_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cerr_symbols_ph,Cerr_symbols_ph::rhs3_Rphrase_}
+ }// end of reduce table
+};
+yacco2::State S2_Cerr_symbols_ph = //State's vectored into symbol: "|?|"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Cerr_symbols_ph,0,0,0};
+struct S3std_Cerr_symbols_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S3std_Cerr_symbols_ph S3st_Cerr_symbols_ph = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S4_Cerr_symbols_ph} // shift sym: LR1_questionable_shift_operator
+ ,{335,(State*)&S5_Cerr_symbols_ph} // shift sym: T_error_symbols_phrase
+ }// end of shift table
+};
+yacco2::Shift_entry S3qse_Cerr_symbols_ph = {0,(State*)&S4_Cerr_symbols_ph};
+yacco2::State S3_Cerr_symbols_ph = //State's vectored into symbol: "|||"
+{3
+,0,0,0,0,(Shift_tbl*)&S3st_Cerr_symbols_ph,0,0,0,(Shift_entry*)&S3qse_Cerr_symbols_ph
+};
+struct S4rtd_Cerr_symbols_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Cerr_symbols_ph S4rt_Cerr_symbols_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cerr_symbols_ph,Cerr_symbols_ph::rhs2_Rphrase_}
+ }// end of reduce table
+};
+yacco2::State S4_Cerr_symbols_ph = //State's vectored into symbol: "|?|"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Cerr_symbols_ph,0,0,0};
+struct S5rtd_Cerr_symbols_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Cerr_symbols_ph S5rt_Cerr_symbols_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cerr_symbols_ph,Cerr_symbols_ph::rhs1_Rphrase_}
+ }// end of reduce table
+};
+yacco2::State S5_Cerr_symbols_ph = //State's vectored into symbol: "error-symbols-phrase"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Cerr_symbols_ph,0,0,0};
+struct S6rtd_Cerr_symbols_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Cerr_symbols_ph S6rt_Cerr_symbols_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cerr_symbols_ph,Cerr_symbols_ph::rhs1_Rerror_symbols_phrase_}
+ }// end of reduce table
+};
+yacco2::State S6_Cerr_symbols_ph = //State's vectored into symbol: "Rphrase"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Cerr_symbols_ph,0,0,0};
diff --git a/web/yacco2/compiler/grammars/esc_seq.cpp b/web/yacco2/compiler/grammars/esc_seq.cpp
new file mode 100644
index 0000000000..7fed3a7ac2
--- /dev/null
+++ b/web/yacco2/compiler/grammars/esc_seq.cpp
@@ -0,0 +1,432 @@
+/*
+ File: esc_seq.cpp
+ Date and Time: Fri Jan 30 18:55:11 2015
+*/
+#include "esc_seq.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_esc_seq;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 17;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[4] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[5] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[6] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[7] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[8] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[9] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[10] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[11] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[12] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[13] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[14] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[15] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[16] = new Per_rule_s_reuse_table();
+}
+ Cesc_seq::
+ Cesc_seq()
+ :yacco2::CAbs_fsm
+ ("esc_seq.lex"
+ ,"1.0"
+ ,"25 Juin 2003"
+ ,false
+ ,"C type escape sequence recognizer."
+ ,"Fri Jan 30 18:55:11 2015 "
+ ,S1_Cesc_seq){
+
+ }
+
+Cesc_seq::~Cesc_seq(){
+
+ for(int x = 0;x < 17;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cesc_seq::failed(){
+ return false;
+ }
+ void Cesc_seq::op(){
+ parser__->set_use_all_shift_on();
+ data_.clear();
+
+}
+int Cesc_seq::rhs_to_rules_mapping_[65] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,0 // subrule 2 for rule 1
+ ,0 // subrule 3 for rule 1
+ ,0 // subrule 4 for rule 1
+ ,0 // subrule 5 for rule 1
+ ,1 // subrule 6 for rule 2
+ ,2 // subrule 7 for rule 3
+ ,2 // subrule 8 for rule 3
+ ,2 // subrule 9 for rule 3
+ ,2 // subrule 10 for rule 3
+ ,2 // subrule 11 for rule 3
+ ,2 // subrule 12 for rule 3
+ ,2 // subrule 13 for rule 3
+ ,2 // subrule 14 for rule 3
+ ,2 // subrule 15 for rule 3
+ ,2 // subrule 16 for rule 3
+ ,2 // subrule 17 for rule 3
+ ,2 // subrule 18 for rule 3
+ ,3 // subrule 19 for rule 4
+ ,4 // subrule 20 for rule 5
+ ,5 // subrule 21 for rule 6
+ ,6 // subrule 22 for rule 7
+ ,7 // subrule 23 for rule 8
+ ,8 // subrule 24 for rule 9
+ ,8 // subrule 25 for rule 9
+ ,9 // subrule 26 for rule 10
+ ,10 // subrule 27 for rule 11
+ ,11 // subrule 28 for rule 12
+ ,11 // subrule 29 for rule 12
+ ,12 // subrule 30 for rule 13
+ ,12 // subrule 31 for rule 13
+ ,13 // subrule 32 for rule 14
+ ,13 // subrule 33 for rule 14
+ ,13 // subrule 34 for rule 14
+ ,13 // subrule 35 for rule 14
+ ,13 // subrule 36 for rule 14
+ ,13 // subrule 37 for rule 14
+ ,13 // subrule 38 for rule 14
+ ,13 // subrule 39 for rule 14
+ ,13 // subrule 40 for rule 14
+ ,13 // subrule 41 for rule 14
+ ,14 // subrule 42 for rule 15
+ ,14 // subrule 43 for rule 15
+ ,14 // subrule 44 for rule 15
+ ,14 // subrule 45 for rule 15
+ ,14 // subrule 46 for rule 15
+ ,14 // subrule 47 for rule 15
+ ,14 // subrule 48 for rule 15
+ ,14 // subrule 49 for rule 15
+ ,14 // subrule 50 for rule 15
+ ,14 // subrule 51 for rule 15
+ ,14 // subrule 52 for rule 15
+ ,14 // subrule 53 for rule 15
+ ,15 // subrule 54 for rule 16
+ ,15 // subrule 55 for rule 16
+ ,15 // subrule 56 for rule 16
+ ,16 // subrule 57 for rule 17
+ ,16 // subrule 58 for rule 17
+ ,16 // subrule 59 for rule 17
+ ,16 // subrule 60 for rule 17
+ ,16 // subrule 61 for rule 17
+ ,16 // subrule 62 for rule 17
+ ,16 // subrule 63 for rule 17
+ ,16 // subrule 64 for rule 17
+};
+
+ yacco2::CAbs_lr1_sym* Cesc_seq::chk_for_overrun(){
+ switch (parser__->current_token()->enumerated_id__){
+ case T_Enum::T_raw_lf_: break;
+ case T_Enum::T_raw_cr_: break;
+ case T_Enum::T_T_eol_: break;
+ case T_Enum::T_LR1_eog_: break;
+ default: return 0;
+ }
+ CAbs_lr1_sym* sym = new Err_bad_eos;
+ sym->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ parser__->set_use_all_shift_off();
+ return sym;
+ }
+
+Resc_seq::Resc_seq(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Resc_seq",0,Cesc_seq::R_Resc_seq_,P,false,false){
+}
+
+void Resc_seq::op(){
+ sstrace_rulesss
+
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* sym = new T_esc_seq(fsm->data_.c_str());
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ sym->set_line_no_and_pos_in_line(*rule_info__.parser__->start_token__);
+ RSVP(sym);
+
+}
+void Resc_seq::sr2(){
+
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ fsm->data_ += '\\';
+ fsm->data_ += fsm->octal_data_.c_str();
+
+}
+
+void Resc_seq::sr3(){
+
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ fsm->data_ += fsm->hex_data_.c_str();
+
+}
+
+Rslash::Rslash(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rslash",0,Cesc_seq::R_Rslash_,P,false,false){
+}
+
+void Rslash::sr1(){
+
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* sym = fsm->chk_for_overrun();
+ if(sym == 0) return;
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rliteral::Rliteral(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rliteral",0,Cesc_seq::R_Rliteral_,P,false,false){
+}
+
+void Rliteral::sr1(){
+
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ fsm->data_ += "\\";
+ fsm->data_ += 'n';
+
+}
+
+void Rliteral::sr2(){
+
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ fsm->data_ += "\\";
+ fsm->data_+='t';
+
+}
+
+void Rliteral::sr3(){
+
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ fsm->data_ += "\\";
+ fsm->data_+='v';
+
+}
+
+void Rliteral::sr4(){
+
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ fsm->data_ += "\\";
+ fsm->data_+='b';
+
+}
+
+void Rliteral::sr5(){
+
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ fsm->data_ += "\\";
+ fsm->data_+='r';
+
+}
+
+void Rliteral::sr6(){
+
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ fsm->data_ += "\\";
+ fsm->data_+='f';
+
+}
+
+void Rliteral::sr7(){
+
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ fsm->data_ += "\\";
+ fsm->data_+='a';
+
+}
+
+void Rliteral::sr8(){
+
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ fsm->data_ += "\\";
+ fsm->data_+="\\";
+
+}
+
+void Rliteral::sr9(){
+
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ fsm->data_ += "\\";
+ fsm->data_+='?';
+
+}
+
+void Rliteral::sr10(){
+
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ fsm->data_ += "\\";
+ fsm->data_+="'";
+
+}
+
+void Rliteral::sr11(){
+
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ fsm->data_ += "\\";
+ fsm->data_+='"';
+
+}
+
+void Rliteral::sr12(){
+
+ CAbs_lr1_sym* sym = new Err_bad_esc;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ sym->set_line_no_and_pos_in_line(*rule_info__.parser__->start_token__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Ruhex::Ruhex(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Ruhex",0,Cesc_seq::R_Ruhex_,P,false,false){
+}
+
+Ru::Ru(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Ru",0,Cesc_seq::R_Ru_,P,false,false){
+}
+
+void Ru::sr1(){
+
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ fsm->data_ += "\\";
+ fsm->data_+= 'u';
+
+}
+
+RU::RU(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("RU",0,Cesc_seq::R_RU_,P,false,false){
+}
+
+void RU::sr1(){
+
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ fsm->data_ += "\\";
+ fsm->data_+= 'U';
+
+}
+
+Rx::Rx(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rx",0,Cesc_seq::R_Rx_,P,false,false){
+}
+
+void Rx::sr1(){
+
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ fsm->data_ += "\\";
+ fsm->data_+= 'x';
+
+}
+
+RUhex::RUhex(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("RUhex",0,Cesc_seq::R_RUhex_,P,false,false){
+}
+
+Rmhex_no::Rmhex_no(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rmhex_no",0,Cesc_seq::R_Rmhex_no_,P,false,false){
+}
+
+void Rmhex_no::sr2(){
+
+ CAbs_lr1_sym* sym = new Err_bad_esc;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rcalc_hex_char::Rcalc_hex_char(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rcalc_hex_char",0,Cesc_seq::R_Rcalc_hex_char_,P,false,false){
+}
+
+void Rcalc_hex_char::sr1(){
+
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ unsigned long usl = strtoul(fsm->hex_data_.c_str(),0,16);
+ unsigned char c = usl;
+ fsm->data_ += "\\x";
+ fsm->data_ += c;
+ fsm->hex_data_.clear();
+
+}
+
+Rhex::Rhex(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rhex",0,Cesc_seq::R_Rhex_,P,false,false){
+}
+
+Rhex_nos::Rhex_nos(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rhex_nos",0,Cesc_seq::R_Rhex_nos_,P,false,false){
+}
+
+Rhex_no::Rhex_no(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rhex_no",0,Cesc_seq::R_Rhex_no_,P,false,false){
+}
+
+Rhex_no_digit::Rhex_no_digit(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rhex_no_digit",0,Cesc_seq::R_Rhex_no_digit_,P,false,false){
+}
+
+void Rhex_no_digit::op(){
+ sstrace_rulesss
+
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ size_t pos = rule_info__.parser__->parse_stack__.top_sub__ - 1;
+ CAbs_lr1_sym* sym = rule_info__.parser__->get_spec_stack_token(pos);
+ fsm->hex_data_ += sym->id__;
+
+}
+Rhex_no_letter::Rhex_no_letter(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rhex_no_letter",0,Cesc_seq::R_Rhex_no_letter_,P,false,false){
+}
+
+void Rhex_no_letter::op(){
+ sstrace_rulesss
+
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ size_t pos = rule_info__.parser__->parse_stack__.top_sub__ - 1;
+ CAbs_lr1_sym* sym = rule_info__.parser__->get_spec_stack_token(pos);
+ fsm->hex_data_ += sym->id__;
+
+}
+Roctal::Roctal(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Roctal",0,Cesc_seq::R_Roctal_,P,false,false){
+}
+
+Roctal_no::Roctal_no(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Roctal_no",0,Cesc_seq::R_Roctal_no_,P,false,false){
+}
+
+void Roctal_no::op(){
+ sstrace_rulesss
+
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ size_t pos = rule_info__.parser__->parse_stack__.top_sub__ - 1;
+ CAbs_lr1_sym* sym = rule_info__.parser__->get_spec_stack_token(pos);
+ fsm->octal_data_ += sym->id__;
+
+}
diff --git a/web/yacco2/compiler/grammars/esc_seq.fsc b/web/yacco2/compiler/grammars/esc_seq.fsc
new file mode 100644
index 0000000000..4c513da3ed
--- /dev/null
+++ b/web/yacco2/compiler/grammars/esc_seq.fsc
@@ -0,0 +1,20 @@
+/*
+ File: esc_seq.fsc
+ Date and Time: Fri Jan 30 18:55:11 2015
+*/
+transitive n
+grammar-name "esc_seq"
+name-space "NS_esc_seq"
+thread-name "TH_esc_seq"
+monolithic n
+file-name "esc_seq.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ raw_back_slash
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"C type escape sequence recognizer."
diff --git a/web/yacco2/compiler/grammars/esc_seq.h b/web/yacco2/compiler/grammars/esc_seq.h
new file mode 100644
index 0000000000..ea249f188a
--- /dev/null
+++ b/web/yacco2/compiler/grammars/esc_seq.h
@@ -0,0 +1,263 @@
+/*
+ File: esc_seq.h
+ Date and Time: Fri Jan 30 18:55:11 2015
+*/
+#ifndef __esc_seq_h__
+#define __esc_seq_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "stdlib.h"
+
+extern yacco2::Thread_entry ITH_esc_seq;
+
+extern yacco2::State S1_Cesc_seq;
+namespace NS_esc_seq {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_esc_seq(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_esc_seq(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[17];
+};
+class Cesc_seq: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Resc_seq_ = 569//start_of_rule_list + 0
+ ,rhs1_Resc_seq_ = 1
+ ,rhs2_Resc_seq_ = 2
+ ,rhs3_Resc_seq_ = 3
+ ,rhs4_Resc_seq_ = 4
+ ,rhs5_Resc_seq_ = 5
+ ,R_Rslash_ = 570//start_of_rule_list + 2
+ ,rhs1_Rslash_ = 6
+ ,R_Rliteral_ = 571//start_of_rule_list + 4
+ ,rhs1_Rliteral_ = 7
+ ,rhs2_Rliteral_ = 8
+ ,rhs3_Rliteral_ = 9
+ ,rhs4_Rliteral_ = 10
+ ,rhs5_Rliteral_ = 11
+ ,rhs6_Rliteral_ = 12
+ ,rhs7_Rliteral_ = 13
+ ,rhs8_Rliteral_ = 14
+ ,rhs9_Rliteral_ = 15
+ ,rhs10_Rliteral_ = 16
+ ,rhs11_Rliteral_ = 17
+ ,rhs12_Rliteral_ = 18
+ ,R_Ruhex_ = 572//start_of_rule_list + 6
+ ,rhs1_Ruhex_ = 19
+ ,R_Ru_ = 573//start_of_rule_list + 8
+ ,rhs1_Ru_ = 20
+ ,R_RU_ = 574//start_of_rule_list + 10
+ ,rhs1_RU_ = 21
+ ,R_Rx_ = 575//start_of_rule_list + 12
+ ,rhs1_Rx_ = 22
+ ,R_RUhex_ = 576//start_of_rule_list + 14
+ ,rhs1_RUhex_ = 23
+ ,R_Rmhex_no_ = 577//start_of_rule_list + 16
+ ,rhs1_Rmhex_no_ = 24
+ ,rhs2_Rmhex_no_ = 25
+ ,R_Rcalc_hex_char_ = 578//start_of_rule_list + 18
+ ,rhs1_Rcalc_hex_char_ = 26
+ ,R_Rhex_ = 579//start_of_rule_list + 20
+ ,rhs1_Rhex_ = 27
+ ,R_Rhex_nos_ = 580//start_of_rule_list + 22
+ ,rhs1_Rhex_nos_ = 28
+ ,rhs2_Rhex_nos_ = 29
+ ,R_Rhex_no_ = 581//start_of_rule_list + 24
+ ,rhs1_Rhex_no_ = 30
+ ,rhs2_Rhex_no_ = 31
+ ,R_Rhex_no_digit_ = 582//start_of_rule_list + 26
+ ,rhs1_Rhex_no_digit_ = 32
+ ,rhs2_Rhex_no_digit_ = 33
+ ,rhs3_Rhex_no_digit_ = 34
+ ,rhs4_Rhex_no_digit_ = 35
+ ,rhs5_Rhex_no_digit_ = 36
+ ,rhs6_Rhex_no_digit_ = 37
+ ,rhs7_Rhex_no_digit_ = 38
+ ,rhs8_Rhex_no_digit_ = 39
+ ,rhs9_Rhex_no_digit_ = 40
+ ,rhs10_Rhex_no_digit_ = 41
+ ,R_Rhex_no_letter_ = 583//start_of_rule_list + 28
+ ,rhs1_Rhex_no_letter_ = 42
+ ,rhs2_Rhex_no_letter_ = 43
+ ,rhs3_Rhex_no_letter_ = 44
+ ,rhs4_Rhex_no_letter_ = 45
+ ,rhs5_Rhex_no_letter_ = 46
+ ,rhs6_Rhex_no_letter_ = 47
+ ,rhs7_Rhex_no_letter_ = 48
+ ,rhs8_Rhex_no_letter_ = 49
+ ,rhs9_Rhex_no_letter_ = 50
+ ,rhs10_Rhex_no_letter_ = 51
+ ,rhs11_Rhex_no_letter_ = 52
+ ,rhs12_Rhex_no_letter_ = 53
+ ,R_Roctal_ = 584//start_of_rule_list + 30
+ ,rhs1_Roctal_ = 54
+ ,rhs2_Roctal_ = 55
+ ,rhs3_Roctal_ = 56
+ ,R_Roctal_no_ = 585//start_of_rule_list + 32
+ ,rhs1_Roctal_no_ = 57
+ ,rhs2_Roctal_no_ = 58
+ ,rhs3_Roctal_no_ = 59
+ ,rhs4_Roctal_no_ = 60
+ ,rhs5_Roctal_no_ = 61
+ ,rhs6_Roctal_no_ = 62
+ ,rhs7_Roctal_no_ = 63
+ ,rhs8_Roctal_no_ = 64
+ };
+ //no of la sets = 7
+ //no of states = 88
+ Cesc_seq();
+ ~Cesc_seq();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[65];
+
+ public:
+ yacco2::CAbs_lr1_sym* chk_for_overrun();
+ std::string data_;
+ std::string hex_data_;
+ std::string octal_data_;
+
+ };
+struct Resc_seq;
+struct Rslash;
+struct Rliteral;
+struct Ruhex;
+struct Ru;
+struct RU;
+struct Rx;
+struct RUhex;
+struct Rmhex_no;
+struct Rcalc_hex_char;
+struct Rhex;
+struct Rhex_nos;
+struct Rhex_no;
+struct Rhex_no_digit;
+struct Rhex_no_letter;
+struct Roctal;
+struct Roctal_no;
+struct Resc_seq:public yacco2::CAbs_lr1_sym {
+ Resc_seq(yacco2::Parser* P);
+ void op();
+ public:
+ void sr2();
+ void sr3();
+};
+
+struct Rslash:public yacco2::CAbs_lr1_sym {
+ Rslash(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rliteral:public yacco2::CAbs_lr1_sym {
+ Rliteral(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+ void sr5();
+ void sr6();
+ void sr7();
+ void sr8();
+ void sr9();
+ void sr10();
+ void sr11();
+ void sr12();
+};
+
+struct Ruhex:public yacco2::CAbs_lr1_sym {
+ Ruhex(yacco2::Parser* P);
+ public:
+};
+
+struct Ru:public yacco2::CAbs_lr1_sym {
+ Ru(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct RU:public yacco2::CAbs_lr1_sym {
+ RU(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rx:public yacco2::CAbs_lr1_sym {
+ Rx(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct RUhex:public yacco2::CAbs_lr1_sym {
+ RUhex(yacco2::Parser* P);
+ public:
+};
+
+struct Rmhex_no:public yacco2::CAbs_lr1_sym {
+ Rmhex_no(yacco2::Parser* P);
+ public:
+ void sr2();
+};
+
+struct Rcalc_hex_char:public yacco2::CAbs_lr1_sym {
+ Rcalc_hex_char(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rhex:public yacco2::CAbs_lr1_sym {
+ Rhex(yacco2::Parser* P);
+ public:
+};
+
+struct Rhex_nos:public yacco2::CAbs_lr1_sym {
+ Rhex_nos(yacco2::Parser* P);
+ public:
+};
+
+struct Rhex_no:public yacco2::CAbs_lr1_sym {
+ Rhex_no(yacco2::Parser* P);
+ public:
+};
+
+struct Rhex_no_digit:public yacco2::CAbs_lr1_sym {
+ Rhex_no_digit(yacco2::Parser* P);
+ void op();
+ public:
+};
+
+struct Rhex_no_letter:public yacco2::CAbs_lr1_sym {
+ Rhex_no_letter(yacco2::Parser* P);
+ void op();
+ public:
+};
+
+struct Roctal:public yacco2::CAbs_lr1_sym {
+ Roctal(yacco2::Parser* P);
+ public:
+};
+
+struct Roctal_no:public yacco2::CAbs_lr1_sym {
+ Roctal_no(yacco2::Parser* P);
+ void op();
+ public:
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/esc_seq.lex b/web/yacco2/compiler/grammars/esc_seq.lex
new file mode 100644
index 0000000000..91f7389177
--- /dev/null
+++ b/web/yacco2/compiler/grammars/esc_seq.lex
@@ -0,0 +1,361 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: esc_seq.lex
+Dates: 25 Juin 2003
+Purpose: escape sequence
+ Eg. \n or octal escape \127 or hex escape \xhhh... where h is a hex digit.
+Modified: 13 June 2005 - fully array of escape sequences including
+ \uhhhh, and \Uhhhhhhhh
+Returned: T_esc_seq
+ Err_bad_esc - bad escape sequence.
+ See Stroustrup - The C++ Programming Language P. 830
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |esc_seq| Thread.\fbreak
+Evaluates escape sequences but does not convert
+them into their binary form.
+The data is passed back as text for the caller to deal with it.
+For myself i'm dealing in text format not binary.
+The finite state tables are also
+emitted in c++ text form for a c++ compiler to digest.
+The variants cover the normal c++ backslash character literal like
+n or b, the octal and hexidecimal variations, and the unicode types.
+@/
+fsm
+(fsm-id "esc_seq.lex",fsm-filename esc_seq,fsm-namespace NS_esc_seq
+,fsm-class Cesc_seq {
+ user-prefix-declaration
+#include "stdlib.h"
+ ***
+ user-declaration
+ public:
+ yacco2::CAbs_lr1_sym* chk_for_overrun();
+ std::string data_;
+ std::string hex_data_;
+ std::string octal_data_;
+ ***
+ user-implementation
+ yacco2::CAbs_lr1_sym* Cesc_seq::chk_for_overrun(){
+ switch (parser__->current_token()->enumerated_id__){
+ case T_Enum::T_raw_lf_: break;
+ case T_Enum::T_raw_cr_: break;
+ case T_Enum::T_T_eol_: break;
+ case T_Enum::T_LR1_eog_: break;
+ default: return 0;
+ }
+ CAbs_lr1_sym* sym = new Err_bad_eos;
+ sym->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ parser__->set_use_all_shift_off();
+ return sym;
+ }
+ ***
+ op
+ parser__->set_use_all_shift_on();
+ data_.clear();
+ ***
+}
+,fsm-version "1.0" ,fsm-date "25 Juin 2003"
+,fsm-debug "false" ,fsm-comments "C type escape sequence recognizer.")
+parallel-parser
+(
+ parallel-thread-function
+ TH_esc_seq
+ ***
+ parallel-la-boundary
+ eolr
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Resc_seq (
+lhs{
+ op
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* sym = new T_esc_seq(fsm->data_.c_str());
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ sym->set_line_no_and_pos_in_line(*rule_info__.parser__->start_token__);
+ RSVP(sym);
+ ***
+ }
+){
+ -> Rslash Rliteral
+ -> Rslash Roctal |.| {
+ op
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ fsm->data_ += '\\';
+ fsm->data_ += fsm->octal_data_.c_str();
+ ***
+ }
+ -> Rslash Rhex |.| {
+ op
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ fsm->data_ += fsm->hex_data_.c_str();
+ ***
+ }
+ -> Rslash Ruhex |.|
+ -> Rslash RUhex |.|
+}
+
+Rslash () {
+ -> "\\" {
+ op
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* sym = fsm->chk_for_overrun();
+ if(sym == 0) return;
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rliteral (){
+ -> "n" {
+ /@
+ New line.
+ @/
+ op
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ fsm->data_ += "\\";
+ fsm->data_ += 'n';
+ ***
+ }
+ -> "t" {
+ /@
+ Horizontal tab.
+ @/
+ op
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ fsm->data_ += "\\";
+ fsm->data_+='t';
+ ***
+ }
+ -> "v" {
+ /@
+ Vertical tab.
+ @/
+ op
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ fsm->data_ += "\\";
+ fsm->data_+='v';
+ ***
+ }
+ -> "b" {
+ /@
+ Backspace.
+ @/
+ op
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ fsm->data_ += "\\";
+ fsm->data_+='b';
+ ***
+ }
+ -> "r" {
+ /@
+ Carriage return.
+ @/
+ op
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ fsm->data_ += "\\";
+ fsm->data_+='r';
+ ***
+ }
+ -> "f" {
+ /@
+ Form feed.
+ @/
+ op
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ fsm->data_ += "\\";
+ fsm->data_+='f';
+ ***
+ }
+ -> "a" {
+ /@
+ Alert or bell.
+ @/
+ op
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ fsm->data_ += "\\";
+ fsm->data_+='a';
+ ***
+ }
+ -> "\\" {
+ /@
+ Backslash --- escaping the escape.
+ @/
+ op
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ fsm->data_ += "\\";
+ fsm->data_+="\\";
+ ***
+ }
+ -> "?" {
+ /@
+ Question mark.
+ @/
+ op
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ fsm->data_ += "\\";
+ fsm->data_+='?';
+ ***
+ }
+ -> "'" {
+ /@
+ Single quote.
+ @/
+ op
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ fsm->data_ += "\\";
+ fsm->data_+="'";
+ ***
+ }
+ -> "\"" {
+ /@
+ Double quote.
+ @/
+ op
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ fsm->data_ += "\\";
+ fsm->data_+='"';
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_bad_esc;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ sym->set_line_no_and_pos_in_line(*rule_info__.parser__->start_token__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Ruhex () {
+ -> Ru Rmhex_no Rmhex_no Rcalc_hex_char
+ Rmhex_no Rmhex_no Rcalc_hex_char
+}
+
+Ru () {
+ -> "u" {
+ op
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ fsm->data_ += "\\";
+ fsm->data_+= 'u';
+ ***
+ }
+}
+
+RU () {
+ -> "U" {
+ op
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ fsm->data_ += "\\";
+ fsm->data_+= 'U';
+ ***
+ }
+}
+
+Rx () {
+ -> "x" {
+ op
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ fsm->data_ += "\\";
+ fsm->data_+= 'x';
+ ***
+ }
+}
+
+RUhex () {
+ -> RU Rmhex_no Rmhex_no Rcalc_hex_char
+ Rmhex_no Rmhex_no Rcalc_hex_char
+ Rmhex_no Rmhex_no Rcalc_hex_char
+ Rmhex_no Rmhex_no Rcalc_hex_char
+}
+Rmhex_no () {
+ -> Rhex_no
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_bad_esc;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+Rcalc_hex_char () {
+ -> {
+ op
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ unsigned long usl = strtoul(fsm->hex_data_.c_str(),0,16);
+ unsigned char c = usl;
+ fsm->data_ += "\\x";
+ fsm->data_ += c;
+ fsm->hex_data_.clear();
+ ***
+ }
+}
+
+Rhex () {
+ -> Rx Rhex_nos
+}
+
+Rhex_nos () {
+ -> Rmhex_no
+ -> Rhex_nos Rhex_no
+}
+
+Rhex_no () {
+ -> Rhex_no_digit
+ -> Rhex_no_letter
+}
+
+Rhex_no_digit (
+lhs{
+ op
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ size_t pos = rule_info__.parser__->parse_stack__.top_sub__ - 1;
+ CAbs_lr1_sym* sym = rule_info__.parser__->get_spec_stack_token(pos);
+ fsm->hex_data_ += sym->id__;
+ ***
+}
+) {
+ -> 0 -> 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8 -> 9
+}
+Rhex_no_letter (
+lhs{
+ op
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ size_t pos = rule_info__.parser__->parse_stack__.top_sub__ - 1;
+ CAbs_lr1_sym* sym = rule_info__.parser__->get_spec_stack_token(pos);
+ fsm->hex_data_ += sym->id__;
+ ***
+}
+) {
+ -> a -> b -> c -> d -> e -> f
+ -> A -> B -> C -> D -> E -> F
+}
+
+Roctal () {
+ -> Roctal_no
+ -> Roctal_no Roctal_no
+ -> Roctal_no Roctal_no Roctal_no
+}
+
+Roctal_no (
+lhs{
+ op
+ Cesc_seq* fsm = (Cesc_seq*) rule_info__.parser__->fsm_tbl__;
+ size_t pos = rule_info__.parser__->parse_stack__.top_sub__ - 1;
+ CAbs_lr1_sym* sym = rule_info__.parser__->get_spec_stack_token(pos);
+ fsm->octal_data_ += sym->id__;
+ ***
+}
+) {
+ -> 0 -> 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/esc_seqsym.cpp b/web/yacco2/compiler/grammars/esc_seqsym.cpp
new file mode 100644
index 0000000000..0c843270ba
--- /dev/null
+++ b/web/yacco2/compiler/grammars/esc_seqsym.cpp
@@ -0,0 +1,999 @@
+/*
+ File: esc_seqsym.cpp
+ Date and Time: Fri Jan 30 18:55:11 2015
+*/
+#include "esc_seq.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_esc_seq;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_esc_seq::TH_esc_seq(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_esc_seq;
+ NS_esc_seq::Cesc_seq Cesc_seq_;// parallel-parser's parse table
+#define ssPARSE_TABLE Cesc_seq_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_esc_seq::PROC_TH_esc_seq(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_esc_seq";
+ static bool one_time(false);
+ static NS_esc_seq::Cesc_seq* NS_esc_seq_Cesc_seq_(0);// parallel-parser's fsm table
+ static Parser* NS_esc_seq_Cesc_seq_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_esc_seq_Cesc_seq_ = new NS_esc_seq::Cesc_seq();// parallel-parser's fsm table
+ NS_esc_seq_Cesc_seq_parser = new Parser(*NS_esc_seq_Cesc_seq_,Caller_pp);
+ }
+ proc_parser = NS_esc_seq_Cesc_seq_parser;
+#include "wproc_pp_core.h"
+}
+void
+Cesc_seq::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Resc_seq_:{
+ Resc_seq* sym;
+ if(re->rule_ == 0){
+ sym = new Resc_seq(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Resc_seq*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->op();
+ return;}
+ case rhs2_Resc_seq_:{
+ Resc_seq* sym;
+ if(re->rule_ == 0){
+ sym = new Resc_seq(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Resc_seq*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ sym->sr2();
+ sym->op();
+ return;}
+ case rhs3_Resc_seq_:{
+ Resc_seq* sym;
+ if(re->rule_ == 0){
+ sym = new Resc_seq(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Resc_seq*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ sym->sr3();
+ sym->op();
+ return;}
+ case rhs4_Resc_seq_:{
+ Resc_seq* sym;
+ if(re->rule_ == 0){
+ sym = new Resc_seq(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Resc_seq*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ sym->op();
+ return;}
+ case rhs5_Resc_seq_:{
+ Resc_seq* sym;
+ if(re->rule_ == 0){
+ sym = new Resc_seq(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Resc_seq*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ sym->op();
+ return;}
+ case rhs1_Rslash_:{
+ Rslash* sym;
+ if(re->rule_ == 0){
+ sym = new Rslash(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rslash*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rliteral_:{
+ Rliteral* sym;
+ if(re->rule_ == 0){
+ sym = new Rliteral(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rliteral*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rliteral_:{
+ Rliteral* sym;
+ if(re->rule_ == 0){
+ sym = new Rliteral(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rliteral*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rliteral_:{
+ Rliteral* sym;
+ if(re->rule_ == 0){
+ sym = new Rliteral(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rliteral*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rliteral_:{
+ Rliteral* sym;
+ if(re->rule_ == 0){
+ sym = new Rliteral(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rliteral*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr4();
+ return;}
+ case rhs5_Rliteral_:{
+ Rliteral* sym;
+ if(re->rule_ == 0){
+ sym = new Rliteral(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rliteral*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr5();
+ return;}
+ case rhs6_Rliteral_:{
+ Rliteral* sym;
+ if(re->rule_ == 0){
+ sym = new Rliteral(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rliteral*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr6();
+ return;}
+ case rhs7_Rliteral_:{
+ Rliteral* sym;
+ if(re->rule_ == 0){
+ sym = new Rliteral(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rliteral*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr7();
+ return;}
+ case rhs8_Rliteral_:{
+ Rliteral* sym;
+ if(re->rule_ == 0){
+ sym = new Rliteral(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rliteral*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr8();
+ return;}
+ case rhs9_Rliteral_:{
+ Rliteral* sym;
+ if(re->rule_ == 0){
+ sym = new Rliteral(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rliteral*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr9();
+ return;}
+ case rhs10_Rliteral_:{
+ Rliteral* sym;
+ if(re->rule_ == 0){
+ sym = new Rliteral(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rliteral*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr10();
+ return;}
+ case rhs11_Rliteral_:{
+ Rliteral* sym;
+ if(re->rule_ == 0){
+ sym = new Rliteral(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rliteral*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr11();
+ return;}
+ case rhs12_Rliteral_:{
+ Rliteral* sym;
+ if(re->rule_ == 0){
+ sym = new Rliteral(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rliteral*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr12();
+ return;}
+ case rhs1_Ruhex_:{
+ Ruhex* sym;
+ if(re->rule_ == 0){
+ sym = new Ruhex(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ruhex*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 7;
+
+
+ return;}
+ case rhs1_Ru_:{
+ Ru* sym;
+ if(re->rule_ == 0){
+ sym = new Ru(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ru*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_RU_:{
+ RU* sym;
+ if(re->rule_ == 0){
+ sym = new RU(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RU*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rx_:{
+ Rx* sym;
+ if(re->rule_ == 0){
+ sym = new Rx(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rx*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_RUhex_:{
+ RUhex* sym;
+ if(re->rule_ == 0){
+ sym = new RUhex(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUhex*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 13;
+
+
+ return;}
+ case rhs1_Rmhex_no_:{
+ Rmhex_no* sym;
+ if(re->rule_ == 0){
+ sym = new Rmhex_no(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmhex_no*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rmhex_no_:{
+ Rmhex_no* sym;
+ if(re->rule_ == 0){
+ sym = new Rmhex_no(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmhex_no*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rcalc_hex_char_:{
+ Rcalc_hex_char* sym;
+ if(re->rule_ == 0){
+ sym = new Rcalc_hex_char(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rcalc_hex_char*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rhex_:{
+ Rhex* sym;
+ if(re->rule_ == 0){
+ sym = new Rhex(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rhex*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rhex_nos_:{
+ Rhex_nos* sym;
+ if(re->rule_ == 0){
+ sym = new Rhex_nos(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rhex_nos*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rhex_nos_:{
+ Rhex_nos* sym;
+ if(re->rule_ == 0){
+ sym = new Rhex_nos(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rhex_nos*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rhex_no_:{
+ Rhex_no* sym;
+ if(re->rule_ == 0){
+ sym = new Rhex_no(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rhex_no*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rhex_no_:{
+ Rhex_no* sym;
+ if(re->rule_ == 0){
+ sym = new Rhex_no(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rhex_no*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rhex_no_digit_:{
+ Rhex_no_digit* sym;
+ if(re->rule_ == 0){
+ sym = new Rhex_no_digit(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rhex_no_digit*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs2_Rhex_no_digit_:{
+ Rhex_no_digit* sym;
+ if(re->rule_ == 0){
+ sym = new Rhex_no_digit(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rhex_no_digit*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs3_Rhex_no_digit_:{
+ Rhex_no_digit* sym;
+ if(re->rule_ == 0){
+ sym = new Rhex_no_digit(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rhex_no_digit*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs4_Rhex_no_digit_:{
+ Rhex_no_digit* sym;
+ if(re->rule_ == 0){
+ sym = new Rhex_no_digit(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rhex_no_digit*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs5_Rhex_no_digit_:{
+ Rhex_no_digit* sym;
+ if(re->rule_ == 0){
+ sym = new Rhex_no_digit(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rhex_no_digit*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs6_Rhex_no_digit_:{
+ Rhex_no_digit* sym;
+ if(re->rule_ == 0){
+ sym = new Rhex_no_digit(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rhex_no_digit*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs7_Rhex_no_digit_:{
+ Rhex_no_digit* sym;
+ if(re->rule_ == 0){
+ sym = new Rhex_no_digit(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rhex_no_digit*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs8_Rhex_no_digit_:{
+ Rhex_no_digit* sym;
+ if(re->rule_ == 0){
+ sym = new Rhex_no_digit(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rhex_no_digit*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs9_Rhex_no_digit_:{
+ Rhex_no_digit* sym;
+ if(re->rule_ == 0){
+ sym = new Rhex_no_digit(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rhex_no_digit*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs10_Rhex_no_digit_:{
+ Rhex_no_digit* sym;
+ if(re->rule_ == 0){
+ sym = new Rhex_no_digit(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rhex_no_digit*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs1_Rhex_no_letter_:{
+ Rhex_no_letter* sym;
+ if(re->rule_ == 0){
+ sym = new Rhex_no_letter(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rhex_no_letter*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs2_Rhex_no_letter_:{
+ Rhex_no_letter* sym;
+ if(re->rule_ == 0){
+ sym = new Rhex_no_letter(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rhex_no_letter*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs3_Rhex_no_letter_:{
+ Rhex_no_letter* sym;
+ if(re->rule_ == 0){
+ sym = new Rhex_no_letter(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rhex_no_letter*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs4_Rhex_no_letter_:{
+ Rhex_no_letter* sym;
+ if(re->rule_ == 0){
+ sym = new Rhex_no_letter(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rhex_no_letter*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs5_Rhex_no_letter_:{
+ Rhex_no_letter* sym;
+ if(re->rule_ == 0){
+ sym = new Rhex_no_letter(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rhex_no_letter*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs6_Rhex_no_letter_:{
+ Rhex_no_letter* sym;
+ if(re->rule_ == 0){
+ sym = new Rhex_no_letter(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rhex_no_letter*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs7_Rhex_no_letter_:{
+ Rhex_no_letter* sym;
+ if(re->rule_ == 0){
+ sym = new Rhex_no_letter(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rhex_no_letter*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs8_Rhex_no_letter_:{
+ Rhex_no_letter* sym;
+ if(re->rule_ == 0){
+ sym = new Rhex_no_letter(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rhex_no_letter*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs9_Rhex_no_letter_:{
+ Rhex_no_letter* sym;
+ if(re->rule_ == 0){
+ sym = new Rhex_no_letter(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rhex_no_letter*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs10_Rhex_no_letter_:{
+ Rhex_no_letter* sym;
+ if(re->rule_ == 0){
+ sym = new Rhex_no_letter(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rhex_no_letter*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs11_Rhex_no_letter_:{
+ Rhex_no_letter* sym;
+ if(re->rule_ == 0){
+ sym = new Rhex_no_letter(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rhex_no_letter*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs12_Rhex_no_letter_:{
+ Rhex_no_letter* sym;
+ if(re->rule_ == 0){
+ sym = new Rhex_no_letter(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rhex_no_letter*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs1_Roctal_:{
+ Roctal* sym;
+ if(re->rule_ == 0){
+ sym = new Roctal(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Roctal*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Roctal_:{
+ Roctal* sym;
+ if(re->rule_ == 0){
+ sym = new Roctal(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Roctal*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs3_Roctal_:{
+ Roctal* sym;
+ if(re->rule_ == 0){
+ sym = new Roctal(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Roctal*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ return;}
+ case rhs1_Roctal_no_:{
+ Roctal_no* sym;
+ if(re->rule_ == 0){
+ sym = new Roctal_no(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Roctal_no*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs2_Roctal_no_:{
+ Roctal_no* sym;
+ if(re->rule_ == 0){
+ sym = new Roctal_no(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Roctal_no*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs3_Roctal_no_:{
+ Roctal_no* sym;
+ if(re->rule_ == 0){
+ sym = new Roctal_no(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Roctal_no*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs4_Roctal_no_:{
+ Roctal_no* sym;
+ if(re->rule_ == 0){
+ sym = new Roctal_no(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Roctal_no*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs5_Roctal_no_:{
+ Roctal_no* sym;
+ if(re->rule_ == 0){
+ sym = new Roctal_no(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Roctal_no*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs6_Roctal_no_:{
+ Roctal_no* sym;
+ if(re->rule_ == 0){
+ sym = new Roctal_no(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Roctal_no*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs7_Roctal_no_:{
+ Roctal_no* sym;
+ if(re->rule_ == 0){
+ sym = new Roctal_no(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Roctal_no*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs8_Roctal_no_:{
+ Roctal_no* sym;
+ if(re->rule_ == 0){
+ sym = new Roctal_no(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Roctal_no*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/esc_seqtbl.cpp b/web/yacco2/compiler/grammars/esc_seqtbl.cpp
new file mode 100644
index 0000000000..9ca5928b4a
--- /dev/null
+++ b/web/yacco2/compiler/grammars/esc_seqtbl.cpp
@@ -0,0 +1,2034 @@
+/*
+ File: esc_seqtbl.cpp
+ Date and Time: Fri Jan 30 18:55:11 2015
+*/
+#include "esc_seq.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_esc_seq;// grammar's ns
+// first set terminals
+// LR1_questionable_shift_operator
+// raw_dbl_quote
+// raw_right_quote
+// raw_0
+// raw_1
+// raw_2
+// raw_3
+// raw_4
+// raw_5
+// raw_6
+// raw_7
+// raw_question_mark
+// raw_U
+// raw_back_slash
+// raw_a
+// raw_b
+// raw_f
+// raw_n
+// raw_r
+// raw_t
+// raw_u
+// raw_v
+// raw_x
+yacco2::UCHAR LA1_Cesc_seq[] ={
+10
+,0,1
+,5,132
+,7,255
+,8,128
+,11,32
+,12,16
+,13,70
+,14,64
+,15,116
+,16,1
+};
+// LR1_eolr
+yacco2::UCHAR LA2_Cesc_seq[] ={
+1
+,0,4
+};
+// LR1_invisible_shift_operator
+// raw_0
+// raw_1
+// raw_2
+// raw_3
+// raw_4
+// raw_5
+// raw_6
+// raw_7
+yacco2::UCHAR LA3_Cesc_seq[] ={
+2
+,0,32
+,7,255
+};
+// LR1_questionable_shift_operator
+// raw_0
+// raw_1
+// raw_2
+// raw_3
+// raw_4
+// raw_5
+// raw_6
+// raw_7
+// raw_8
+// raw_9
+// raw_A
+// raw_B
+// raw_C
+// raw_D
+// raw_E
+// raw_F
+// raw_a
+// raw_b
+// raw_c
+// raw_d
+// raw_e
+// raw_f
+yacco2::UCHAR LA4_Cesc_seq[] ={
+5
+,0,1
+,7,255
+,8,3
+,9,126
+,13,126
+};
+// LR1_questionable_shift_operator
+// LR1_invisible_shift_operator
+// raw_0
+// raw_1
+// raw_2
+// raw_3
+// raw_4
+// raw_5
+// raw_6
+// raw_7
+// raw_8
+// raw_9
+// raw_A
+// raw_B
+// raw_C
+// raw_D
+// raw_E
+// raw_F
+// raw_a
+// raw_b
+// raw_c
+// raw_d
+// raw_e
+// raw_f
+yacco2::UCHAR LA5_Cesc_seq[] ={
+5
+,0,33
+,7,255
+,8,3
+,9,126
+,13,126
+};
+// LR1_invisible_shift_operator
+yacco2::UCHAR LA6_Cesc_seq[] ={
+1
+,0,32
+};
+// LR1_invisible_shift_operator
+// raw_0
+// raw_1
+// raw_2
+// raw_3
+// raw_4
+// raw_5
+// raw_6
+// raw_7
+// raw_8
+// raw_9
+// raw_A
+// raw_B
+// raw_C
+// raw_D
+// raw_E
+// raw_F
+// raw_a
+// raw_b
+// raw_c
+// raw_d
+// raw_e
+// raw_f
+yacco2::UCHAR LA7_Cesc_seq[] ={
+5
+,0,32
+,7,255
+,8,3
+,9,126
+,13,126
+};
+extern yacco2::State S1_Cesc_seq;
+extern yacco2::State S2_Cesc_seq;
+extern yacco2::State S3_Cesc_seq;
+extern yacco2::State S4_Cesc_seq;
+extern yacco2::State S5_Cesc_seq;
+extern yacco2::State S6_Cesc_seq;
+extern yacco2::State S7_Cesc_seq;
+extern yacco2::State S8_Cesc_seq;
+extern yacco2::State S9_Cesc_seq;
+extern yacco2::State S10_Cesc_seq;
+extern yacco2::State S11_Cesc_seq;
+extern yacco2::State S12_Cesc_seq;
+extern yacco2::State S13_Cesc_seq;
+extern yacco2::State S14_Cesc_seq;
+extern yacco2::State S15_Cesc_seq;
+extern yacco2::State S16_Cesc_seq;
+extern yacco2::State S17_Cesc_seq;
+extern yacco2::State S18_Cesc_seq;
+extern yacco2::State S19_Cesc_seq;
+extern yacco2::State S20_Cesc_seq;
+extern yacco2::State S21_Cesc_seq;
+extern yacco2::State S22_Cesc_seq;
+extern yacco2::State S23_Cesc_seq;
+extern yacco2::State S24_Cesc_seq;
+extern yacco2::State S25_Cesc_seq;
+extern yacco2::State S26_Cesc_seq;
+extern yacco2::State S27_Cesc_seq;
+extern yacco2::State S28_Cesc_seq;
+extern yacco2::State S29_Cesc_seq;
+extern yacco2::State S30_Cesc_seq;
+extern yacco2::State S31_Cesc_seq;
+extern yacco2::State S32_Cesc_seq;
+extern yacco2::State S33_Cesc_seq;
+extern yacco2::State S34_Cesc_seq;
+extern yacco2::State S35_Cesc_seq;
+extern yacco2::State S36_Cesc_seq;
+extern yacco2::State S37_Cesc_seq;
+extern yacco2::State S38_Cesc_seq;
+extern yacco2::State S39_Cesc_seq;
+extern yacco2::State S40_Cesc_seq;
+extern yacco2::State S41_Cesc_seq;
+extern yacco2::State S42_Cesc_seq;
+extern yacco2::State S43_Cesc_seq;
+extern yacco2::State S44_Cesc_seq;
+extern yacco2::State S45_Cesc_seq;
+extern yacco2::State S46_Cesc_seq;
+extern yacco2::State S47_Cesc_seq;
+extern yacco2::State S48_Cesc_seq;
+extern yacco2::State S49_Cesc_seq;
+extern yacco2::State S50_Cesc_seq;
+extern yacco2::State S51_Cesc_seq;
+extern yacco2::State S52_Cesc_seq;
+extern yacco2::State S53_Cesc_seq;
+extern yacco2::State S54_Cesc_seq;
+extern yacco2::State S55_Cesc_seq;
+extern yacco2::State S56_Cesc_seq;
+extern yacco2::State S57_Cesc_seq;
+extern yacco2::State S58_Cesc_seq;
+extern yacco2::State S59_Cesc_seq;
+extern yacco2::State S60_Cesc_seq;
+extern yacco2::State S61_Cesc_seq;
+extern yacco2::State S62_Cesc_seq;
+extern yacco2::State S63_Cesc_seq;
+extern yacco2::State S64_Cesc_seq;
+extern yacco2::State S65_Cesc_seq;
+extern yacco2::State S66_Cesc_seq;
+extern yacco2::State S67_Cesc_seq;
+extern yacco2::State S68_Cesc_seq;
+extern yacco2::State S69_Cesc_seq;
+extern yacco2::State S70_Cesc_seq;
+extern yacco2::State S71_Cesc_seq;
+extern yacco2::State S72_Cesc_seq;
+extern yacco2::State S73_Cesc_seq;
+extern yacco2::State S74_Cesc_seq;
+extern yacco2::State S75_Cesc_seq;
+extern yacco2::State S76_Cesc_seq;
+extern yacco2::State S77_Cesc_seq;
+extern yacco2::State S78_Cesc_seq;
+extern yacco2::State S79_Cesc_seq;
+extern yacco2::State S80_Cesc_seq;
+extern yacco2::State S81_Cesc_seq;
+extern yacco2::State S82_Cesc_seq;
+extern yacco2::State S83_Cesc_seq;
+extern yacco2::State S84_Cesc_seq;
+extern yacco2::State S85_Cesc_seq;
+extern yacco2::State S86_Cesc_seq;
+extern yacco2::State S87_Cesc_seq;
+extern yacco2::State S88_Cesc_seq;
+struct S1std_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S1std_Cesc_seq S1st_Cesc_seq = {
+ 3
+ ,
+ {// start of table
+ {100,(State*)&S2_Cesc_seq} // shift sym: raw_back_slash
+ ,{569,(State*)&S1_Cesc_seq} // accept sym: Resc_seq
+ ,{570,(State*)&S3_Cesc_seq} // shift sym: Rslash
+ }// end of shift table
+};
+yacco2::State S1_Cesc_seq = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Cesc_seq,0,0,0,0};
+struct S2rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Cesc_seq S2rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cesc_seq,Cesc_seq::rhs1_Rslash_}
+ }// end of reduce table
+};
+yacco2::State S2_Cesc_seq = //State's vectored into symbol: "\\"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Cesc_seq,0,0,0};
+struct S3std_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[32];
+};
+S3std_Cesc_seq S3st_Cesc_seq = {
+ 32
+ ,
+ {// start of table
+ {0,(State*)&S4_Cesc_seq} // shift sym: LR1_questionable_shift_operator
+ ,{42,(State*)&S5_Cesc_seq} // shift sym: raw_dbl_quote
+ ,{47,(State*)&S6_Cesc_seq} // shift sym: raw_right_quote
+ ,{56,(State*)&S7_Cesc_seq} // shift sym: raw_0
+ ,{57,(State*)&S8_Cesc_seq} // shift sym: raw_1
+ ,{58,(State*)&S9_Cesc_seq} // shift sym: raw_2
+ ,{59,(State*)&S10_Cesc_seq} // shift sym: raw_3
+ ,{60,(State*)&S11_Cesc_seq} // shift sym: raw_4
+ ,{61,(State*)&S12_Cesc_seq} // shift sym: raw_5
+ ,{62,(State*)&S13_Cesc_seq} // shift sym: raw_6
+ ,{63,(State*)&S14_Cesc_seq} // shift sym: raw_7
+ ,{71,(State*)&S15_Cesc_seq} // shift sym: raw_question_mark
+ ,{93,(State*)&S16_Cesc_seq} // shift sym: raw_U
+ ,{100,(State*)&S17_Cesc_seq} // shift sym: raw_back_slash
+ ,{105,(State*)&S18_Cesc_seq} // shift sym: raw_a
+ ,{106,(State*)&S19_Cesc_seq} // shift sym: raw_b
+ ,{110,(State*)&S20_Cesc_seq} // shift sym: raw_f
+ ,{118,(State*)&S21_Cesc_seq} // shift sym: raw_n
+ ,{122,(State*)&S22_Cesc_seq} // shift sym: raw_r
+ ,{124,(State*)&S23_Cesc_seq} // shift sym: raw_t
+ ,{125,(State*)&S24_Cesc_seq} // shift sym: raw_u
+ ,{126,(State*)&S25_Cesc_seq} // shift sym: raw_v
+ ,{128,(State*)&S26_Cesc_seq} // shift sym: raw_x
+ ,{571,(State*)&S27_Cesc_seq} // shift sym: Rliteral
+ ,{572,(State*)&S28_Cesc_seq} // shift sym: Ruhex
+ ,{573,(State*)&S30_Cesc_seq} // shift sym: Ru
+ ,{574,(State*)&S63_Cesc_seq} // shift sym: RU
+ ,{575,(State*)&S76_Cesc_seq} // shift sym: Rx
+ ,{576,(State*)&S80_Cesc_seq} // shift sym: RUhex
+ ,{579,(State*)&S82_Cesc_seq} // shift sym: Rhex
+ ,{584,(State*)&S84_Cesc_seq} // shift sym: Roctal
+ ,{585,(State*)&S86_Cesc_seq} // shift sym: Roctal_no
+ }// end of shift table
+};
+yacco2::Shift_entry S3qse_Cesc_seq = {0,(State*)&S4_Cesc_seq};
+yacco2::State S3_Cesc_seq = //State's vectored into symbol: "Rslash"
+{3
+,0,0,0,0,(Shift_tbl*)&S3st_Cesc_seq,0,0,0,(Shift_entry*)&S3qse_Cesc_seq
+};
+struct S4rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Cesc_seq S4rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cesc_seq,Cesc_seq::rhs12_Rliteral_}
+ }// end of reduce table
+};
+yacco2::State S4_Cesc_seq = //State's vectored into symbol: "|?|"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Cesc_seq,0,0,0};
+struct S5rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Cesc_seq S5rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cesc_seq,Cesc_seq::rhs11_Rliteral_}
+ }// end of reduce table
+};
+yacco2::State S5_Cesc_seq = //State's vectored into symbol: "\""
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Cesc_seq,0,0,0};
+struct S6rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Cesc_seq S6rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cesc_seq,Cesc_seq::rhs10_Rliteral_}
+ }// end of reduce table
+};
+yacco2::State S6_Cesc_seq = //State's vectored into symbol: "'"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Cesc_seq,0,0,0};
+struct S7rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Cesc_seq S7rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cesc_seq,Cesc_seq::rhs1_Roctal_no_}
+ }// end of reduce table
+};
+yacco2::State S7_Cesc_seq = //State's vectored into symbol: "0"
+{7
+,0,0,0,0,0,(Reduce_tbl*)&S7rt_Cesc_seq,0,0,0};
+struct S8rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S8rtd_Cesc_seq S8rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cesc_seq,Cesc_seq::rhs2_Roctal_no_}
+ }// end of reduce table
+};
+yacco2::State S8_Cesc_seq = //State's vectored into symbol: "1"
+{8
+,0,0,0,0,0,(Reduce_tbl*)&S8rt_Cesc_seq,0,0,0};
+struct S9rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Cesc_seq S9rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cesc_seq,Cesc_seq::rhs3_Roctal_no_}
+ }// end of reduce table
+};
+yacco2::State S9_Cesc_seq = //State's vectored into symbol: "2"
+{9
+,0,0,0,0,0,(Reduce_tbl*)&S9rt_Cesc_seq,0,0,0};
+struct S10rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S10rtd_Cesc_seq S10rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cesc_seq,Cesc_seq::rhs4_Roctal_no_}
+ }// end of reduce table
+};
+yacco2::State S10_Cesc_seq = //State's vectored into symbol: "3"
+{10
+,0,0,0,0,0,(Reduce_tbl*)&S10rt_Cesc_seq,0,0,0};
+struct S11rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Cesc_seq S11rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cesc_seq,Cesc_seq::rhs5_Roctal_no_}
+ }// end of reduce table
+};
+yacco2::State S11_Cesc_seq = //State's vectored into symbol: "4"
+{11
+,0,0,0,0,0,(Reduce_tbl*)&S11rt_Cesc_seq,0,0,0};
+struct S12rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S12rtd_Cesc_seq S12rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cesc_seq,Cesc_seq::rhs6_Roctal_no_}
+ }// end of reduce table
+};
+yacco2::State S12_Cesc_seq = //State's vectored into symbol: "5"
+{12
+,0,0,0,0,0,(Reduce_tbl*)&S12rt_Cesc_seq,0,0,0};
+struct S13rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S13rtd_Cesc_seq S13rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cesc_seq,Cesc_seq::rhs7_Roctal_no_}
+ }// end of reduce table
+};
+yacco2::State S13_Cesc_seq = //State's vectored into symbol: "6"
+{13
+,0,0,0,0,0,(Reduce_tbl*)&S13rt_Cesc_seq,0,0,0};
+struct S14rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S14rtd_Cesc_seq S14rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cesc_seq,Cesc_seq::rhs8_Roctal_no_}
+ }// end of reduce table
+};
+yacco2::State S14_Cesc_seq = //State's vectored into symbol: "7"
+{14
+,0,0,0,0,0,(Reduce_tbl*)&S14rt_Cesc_seq,0,0,0};
+struct S15rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S15rtd_Cesc_seq S15rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cesc_seq,Cesc_seq::rhs9_Rliteral_}
+ }// end of reduce table
+};
+yacco2::State S15_Cesc_seq = //State's vectored into symbol: "?"
+{15
+,0,0,0,0,0,(Reduce_tbl*)&S15rt_Cesc_seq,0,0,0};
+struct S16rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S16rtd_Cesc_seq S16rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cesc_seq,Cesc_seq::rhs1_RU_}
+ }// end of reduce table
+};
+yacco2::State S16_Cesc_seq = //State's vectored into symbol: "U"
+{16
+,0,0,0,0,0,(Reduce_tbl*)&S16rt_Cesc_seq,0,0,0};
+struct S17rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S17rtd_Cesc_seq S17rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cesc_seq,Cesc_seq::rhs8_Rliteral_}
+ }// end of reduce table
+};
+yacco2::State S17_Cesc_seq = //State's vectored into symbol: "\\"
+{17
+,0,0,0,0,0,(Reduce_tbl*)&S17rt_Cesc_seq,0,0,0};
+struct S18rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S18rtd_Cesc_seq S18rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cesc_seq,Cesc_seq::rhs7_Rliteral_}
+ }// end of reduce table
+};
+yacco2::State S18_Cesc_seq = //State's vectored into symbol: "a"
+{18
+,0,0,0,0,0,(Reduce_tbl*)&S18rt_Cesc_seq,0,0,0};
+struct S19rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S19rtd_Cesc_seq S19rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cesc_seq,Cesc_seq::rhs4_Rliteral_}
+ }// end of reduce table
+};
+yacco2::State S19_Cesc_seq = //State's vectored into symbol: "b"
+{19
+,0,0,0,0,0,(Reduce_tbl*)&S19rt_Cesc_seq,0,0,0};
+struct S20rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S20rtd_Cesc_seq S20rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cesc_seq,Cesc_seq::rhs6_Rliteral_}
+ }// end of reduce table
+};
+yacco2::State S20_Cesc_seq = //State's vectored into symbol: "f"
+{20
+,0,0,0,0,0,(Reduce_tbl*)&S20rt_Cesc_seq,0,0,0};
+struct S21rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S21rtd_Cesc_seq S21rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cesc_seq,Cesc_seq::rhs1_Rliteral_}
+ }// end of reduce table
+};
+yacco2::State S21_Cesc_seq = //State's vectored into symbol: "n"
+{21
+,0,0,0,0,0,(Reduce_tbl*)&S21rt_Cesc_seq,0,0,0};
+struct S22rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S22rtd_Cesc_seq S22rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cesc_seq,Cesc_seq::rhs5_Rliteral_}
+ }// end of reduce table
+};
+yacco2::State S22_Cesc_seq = //State's vectored into symbol: "r"
+{22
+,0,0,0,0,0,(Reduce_tbl*)&S22rt_Cesc_seq,0,0,0};
+struct S23rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S23rtd_Cesc_seq S23rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cesc_seq,Cesc_seq::rhs2_Rliteral_}
+ }// end of reduce table
+};
+yacco2::State S23_Cesc_seq = //State's vectored into symbol: "t"
+{23
+,0,0,0,0,0,(Reduce_tbl*)&S23rt_Cesc_seq,0,0,0};
+struct S24rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S24rtd_Cesc_seq S24rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cesc_seq,Cesc_seq::rhs1_Ru_}
+ }// end of reduce table
+};
+yacco2::State S24_Cesc_seq = //State's vectored into symbol: "u"
+{24
+,0,0,0,0,0,(Reduce_tbl*)&S24rt_Cesc_seq,0,0,0};
+struct S25rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S25rtd_Cesc_seq S25rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cesc_seq,Cesc_seq::rhs3_Rliteral_}
+ }// end of reduce table
+};
+yacco2::State S25_Cesc_seq = //State's vectored into symbol: "v"
+{25
+,0,0,0,0,0,(Reduce_tbl*)&S25rt_Cesc_seq,0,0,0};
+struct S26rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S26rtd_Cesc_seq S26rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cesc_seq,Cesc_seq::rhs1_Rx_}
+ }// end of reduce table
+};
+yacco2::State S26_Cesc_seq = //State's vectored into symbol: "x"
+{26
+,0,0,0,0,0,(Reduce_tbl*)&S26rt_Cesc_seq,0,0,0};
+struct S27rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S27rtd_Cesc_seq S27rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cesc_seq,Cesc_seq::rhs1_Resc_seq_}
+ }// end of reduce table
+};
+yacco2::State S27_Cesc_seq = //State's vectored into symbol: "Rliteral"
+{27
+,0,0,0,0,0,(Reduce_tbl*)&S27rt_Cesc_seq,0,0,0};
+struct S28std_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S28std_Cesc_seq S28st_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {5,(State*)&S29_Cesc_seq} // shift sym: LR1_invisible_shift_operator
+ }// end of shift table
+};
+yacco2::Shift_entry S28ise_Cesc_seq = {5,(State*)&S29_Cesc_seq};
+yacco2::State S28_Cesc_seq = //State's vectored into symbol: "Ruhex"
+{28
+,0,0,(Shift_entry*)&S28ise_Cesc_seq
+,0,(Shift_tbl*)&S28st_Cesc_seq,0,0,0,0};
+struct S29rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S29rtd_Cesc_seq S29rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cesc_seq,Cesc_seq::rhs4_Resc_seq_}
+ }// end of reduce table
+};
+yacco2::State S29_Cesc_seq = //State's vectored into symbol: "|.|"
+{29
+,0,0,0,0,0,(Reduce_tbl*)&S29rt_Cesc_seq,0,0,0};
+struct S30std_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[27];
+};
+S30std_Cesc_seq S30st_Cesc_seq = {
+ 27
+ ,
+ {// start of table
+ {0,(State*)&S35_Cesc_seq} // shift sym: LR1_questionable_shift_operator
+ ,{56,(State*)&S36_Cesc_seq} // shift sym: raw_0
+ ,{57,(State*)&S37_Cesc_seq} // shift sym: raw_1
+ ,{58,(State*)&S38_Cesc_seq} // shift sym: raw_2
+ ,{59,(State*)&S39_Cesc_seq} // shift sym: raw_3
+ ,{60,(State*)&S40_Cesc_seq} // shift sym: raw_4
+ ,{61,(State*)&S41_Cesc_seq} // shift sym: raw_5
+ ,{62,(State*)&S42_Cesc_seq} // shift sym: raw_6
+ ,{63,(State*)&S43_Cesc_seq} // shift sym: raw_7
+ ,{64,(State*)&S44_Cesc_seq} // shift sym: raw_8
+ ,{65,(State*)&S45_Cesc_seq} // shift sym: raw_9
+ ,{73,(State*)&S46_Cesc_seq} // shift sym: raw_A
+ ,{74,(State*)&S47_Cesc_seq} // shift sym: raw_B
+ ,{75,(State*)&S48_Cesc_seq} // shift sym: raw_C
+ ,{76,(State*)&S49_Cesc_seq} // shift sym: raw_D
+ ,{77,(State*)&S50_Cesc_seq} // shift sym: raw_E
+ ,{78,(State*)&S51_Cesc_seq} // shift sym: raw_F
+ ,{105,(State*)&S52_Cesc_seq} // shift sym: raw_a
+ ,{106,(State*)&S53_Cesc_seq} // shift sym: raw_b
+ ,{107,(State*)&S54_Cesc_seq} // shift sym: raw_c
+ ,{108,(State*)&S55_Cesc_seq} // shift sym: raw_d
+ ,{109,(State*)&S56_Cesc_seq} // shift sym: raw_e
+ ,{110,(State*)&S57_Cesc_seq} // shift sym: raw_f
+ ,{577,(State*)&S31_Cesc_seq} // shift sym: Rmhex_no
+ ,{581,(State*)&S60_Cesc_seq} // shift sym: Rhex_no
+ ,{582,(State*)&S61_Cesc_seq} // shift sym: Rhex_no_digit
+ ,{583,(State*)&S62_Cesc_seq} // shift sym: Rhex_no_letter
+ }// end of shift table
+};
+yacco2::Shift_entry S30qse_Cesc_seq = {0,(State*)&S35_Cesc_seq};
+yacco2::State S30_Cesc_seq = //State's vectored into symbol: "Ru"
+{30
+,0,0,0,0,(Shift_tbl*)&S30st_Cesc_seq,0,0,0,(Shift_entry*)&S30qse_Cesc_seq
+};
+struct S31std_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[27];
+};
+S31std_Cesc_seq S31st_Cesc_seq = {
+ 27
+ ,
+ {// start of table
+ {0,(State*)&S35_Cesc_seq} // shift sym: LR1_questionable_shift_operator
+ ,{56,(State*)&S36_Cesc_seq} // shift sym: raw_0
+ ,{57,(State*)&S37_Cesc_seq} // shift sym: raw_1
+ ,{58,(State*)&S38_Cesc_seq} // shift sym: raw_2
+ ,{59,(State*)&S39_Cesc_seq} // shift sym: raw_3
+ ,{60,(State*)&S40_Cesc_seq} // shift sym: raw_4
+ ,{61,(State*)&S41_Cesc_seq} // shift sym: raw_5
+ ,{62,(State*)&S42_Cesc_seq} // shift sym: raw_6
+ ,{63,(State*)&S43_Cesc_seq} // shift sym: raw_7
+ ,{64,(State*)&S44_Cesc_seq} // shift sym: raw_8
+ ,{65,(State*)&S45_Cesc_seq} // shift sym: raw_9
+ ,{73,(State*)&S46_Cesc_seq} // shift sym: raw_A
+ ,{74,(State*)&S47_Cesc_seq} // shift sym: raw_B
+ ,{75,(State*)&S48_Cesc_seq} // shift sym: raw_C
+ ,{76,(State*)&S49_Cesc_seq} // shift sym: raw_D
+ ,{77,(State*)&S50_Cesc_seq} // shift sym: raw_E
+ ,{78,(State*)&S51_Cesc_seq} // shift sym: raw_F
+ ,{105,(State*)&S52_Cesc_seq} // shift sym: raw_a
+ ,{106,(State*)&S53_Cesc_seq} // shift sym: raw_b
+ ,{107,(State*)&S54_Cesc_seq} // shift sym: raw_c
+ ,{108,(State*)&S55_Cesc_seq} // shift sym: raw_d
+ ,{109,(State*)&S56_Cesc_seq} // shift sym: raw_e
+ ,{110,(State*)&S57_Cesc_seq} // shift sym: raw_f
+ ,{577,(State*)&S32_Cesc_seq} // shift sym: Rmhex_no
+ ,{581,(State*)&S60_Cesc_seq} // shift sym: Rhex_no
+ ,{582,(State*)&S61_Cesc_seq} // shift sym: Rhex_no_digit
+ ,{583,(State*)&S62_Cesc_seq} // shift sym: Rhex_no_letter
+ }// end of shift table
+};
+yacco2::Shift_entry S31qse_Cesc_seq = {0,(State*)&S35_Cesc_seq};
+yacco2::State S31_Cesc_seq = //State's vectored into symbol: "Rmhex_no"
+{31
+,0,0,0,0,(Shift_tbl*)&S31st_Cesc_seq,0,0,0,(Shift_entry*)&S31qse_Cesc_seq
+};
+struct S32std_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S32std_Cesc_seq S32st_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {578,(State*)&S33_Cesc_seq} // shift sym: Rcalc_hex_char
+ }// end of shift table
+};
+struct S32rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S32rtd_Cesc_seq S32rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cesc_seq,Cesc_seq::rhs1_Rcalc_hex_char_}
+ }// end of reduce table
+};
+yacco2::State S32_Cesc_seq = //State's vectored into symbol: "Rmhex_no"
+{32
+,0,0,0,0,(Shift_tbl*)&S32st_Cesc_seq,(Reduce_tbl*)&S32rt_Cesc_seq,0,0,0};
+struct S33std_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[27];
+};
+S33std_Cesc_seq S33st_Cesc_seq = {
+ 27
+ ,
+ {// start of table
+ {0,(State*)&S35_Cesc_seq} // shift sym: LR1_questionable_shift_operator
+ ,{56,(State*)&S36_Cesc_seq} // shift sym: raw_0
+ ,{57,(State*)&S37_Cesc_seq} // shift sym: raw_1
+ ,{58,(State*)&S38_Cesc_seq} // shift sym: raw_2
+ ,{59,(State*)&S39_Cesc_seq} // shift sym: raw_3
+ ,{60,(State*)&S40_Cesc_seq} // shift sym: raw_4
+ ,{61,(State*)&S41_Cesc_seq} // shift sym: raw_5
+ ,{62,(State*)&S42_Cesc_seq} // shift sym: raw_6
+ ,{63,(State*)&S43_Cesc_seq} // shift sym: raw_7
+ ,{64,(State*)&S44_Cesc_seq} // shift sym: raw_8
+ ,{65,(State*)&S45_Cesc_seq} // shift sym: raw_9
+ ,{73,(State*)&S46_Cesc_seq} // shift sym: raw_A
+ ,{74,(State*)&S47_Cesc_seq} // shift sym: raw_B
+ ,{75,(State*)&S48_Cesc_seq} // shift sym: raw_C
+ ,{76,(State*)&S49_Cesc_seq} // shift sym: raw_D
+ ,{77,(State*)&S50_Cesc_seq} // shift sym: raw_E
+ ,{78,(State*)&S51_Cesc_seq} // shift sym: raw_F
+ ,{105,(State*)&S52_Cesc_seq} // shift sym: raw_a
+ ,{106,(State*)&S53_Cesc_seq} // shift sym: raw_b
+ ,{107,(State*)&S54_Cesc_seq} // shift sym: raw_c
+ ,{108,(State*)&S55_Cesc_seq} // shift sym: raw_d
+ ,{109,(State*)&S56_Cesc_seq} // shift sym: raw_e
+ ,{110,(State*)&S57_Cesc_seq} // shift sym: raw_f
+ ,{577,(State*)&S34_Cesc_seq} // shift sym: Rmhex_no
+ ,{581,(State*)&S60_Cesc_seq} // shift sym: Rhex_no
+ ,{582,(State*)&S61_Cesc_seq} // shift sym: Rhex_no_digit
+ ,{583,(State*)&S62_Cesc_seq} // shift sym: Rhex_no_letter
+ }// end of shift table
+};
+yacco2::Shift_entry S33qse_Cesc_seq = {0,(State*)&S35_Cesc_seq};
+yacco2::State S33_Cesc_seq = //State's vectored into symbol: "Rcalc_hex_char"
+{33
+,0,0,0,0,(Shift_tbl*)&S33st_Cesc_seq,0,0,0,(Shift_entry*)&S33qse_Cesc_seq
+};
+struct S34std_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[27];
+};
+S34std_Cesc_seq S34st_Cesc_seq = {
+ 27
+ ,
+ {// start of table
+ {0,(State*)&S35_Cesc_seq} // shift sym: LR1_questionable_shift_operator
+ ,{56,(State*)&S36_Cesc_seq} // shift sym: raw_0
+ ,{57,(State*)&S37_Cesc_seq} // shift sym: raw_1
+ ,{58,(State*)&S38_Cesc_seq} // shift sym: raw_2
+ ,{59,(State*)&S39_Cesc_seq} // shift sym: raw_3
+ ,{60,(State*)&S40_Cesc_seq} // shift sym: raw_4
+ ,{61,(State*)&S41_Cesc_seq} // shift sym: raw_5
+ ,{62,(State*)&S42_Cesc_seq} // shift sym: raw_6
+ ,{63,(State*)&S43_Cesc_seq} // shift sym: raw_7
+ ,{64,(State*)&S44_Cesc_seq} // shift sym: raw_8
+ ,{65,(State*)&S45_Cesc_seq} // shift sym: raw_9
+ ,{73,(State*)&S46_Cesc_seq} // shift sym: raw_A
+ ,{74,(State*)&S47_Cesc_seq} // shift sym: raw_B
+ ,{75,(State*)&S48_Cesc_seq} // shift sym: raw_C
+ ,{76,(State*)&S49_Cesc_seq} // shift sym: raw_D
+ ,{77,(State*)&S50_Cesc_seq} // shift sym: raw_E
+ ,{78,(State*)&S51_Cesc_seq} // shift sym: raw_F
+ ,{105,(State*)&S52_Cesc_seq} // shift sym: raw_a
+ ,{106,(State*)&S53_Cesc_seq} // shift sym: raw_b
+ ,{107,(State*)&S54_Cesc_seq} // shift sym: raw_c
+ ,{108,(State*)&S55_Cesc_seq} // shift sym: raw_d
+ ,{109,(State*)&S56_Cesc_seq} // shift sym: raw_e
+ ,{110,(State*)&S57_Cesc_seq} // shift sym: raw_f
+ ,{577,(State*)&S58_Cesc_seq} // shift sym: Rmhex_no
+ ,{581,(State*)&S60_Cesc_seq} // shift sym: Rhex_no
+ ,{582,(State*)&S61_Cesc_seq} // shift sym: Rhex_no_digit
+ ,{583,(State*)&S62_Cesc_seq} // shift sym: Rhex_no_letter
+ }// end of shift table
+};
+yacco2::Shift_entry S34qse_Cesc_seq = {0,(State*)&S35_Cesc_seq};
+yacco2::State S34_Cesc_seq = //State's vectored into symbol: "Rmhex_no"
+{34
+,0,0,0,0,(Shift_tbl*)&S34st_Cesc_seq,0,0,0,(Shift_entry*)&S34qse_Cesc_seq
+};
+struct S35rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S35rtd_Cesc_seq S35rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cesc_seq,Cesc_seq::rhs2_Rmhex_no_}
+ }// end of reduce table
+};
+yacco2::State S35_Cesc_seq = //State's vectored into symbol: "|?|"
+{35
+,0,0,0,0,0,(Reduce_tbl*)&S35rt_Cesc_seq,0,0,0};
+struct S36rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S36rtd_Cesc_seq S36rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cesc_seq,Cesc_seq::rhs1_Rhex_no_digit_}
+ }// end of reduce table
+};
+yacco2::State S36_Cesc_seq = //State's vectored into symbol: "0"
+{36
+,0,0,0,0,0,(Reduce_tbl*)&S36rt_Cesc_seq,0,0,0};
+struct S37rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S37rtd_Cesc_seq S37rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cesc_seq,Cesc_seq::rhs2_Rhex_no_digit_}
+ }// end of reduce table
+};
+yacco2::State S37_Cesc_seq = //State's vectored into symbol: "1"
+{37
+,0,0,0,0,0,(Reduce_tbl*)&S37rt_Cesc_seq,0,0,0};
+struct S38rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S38rtd_Cesc_seq S38rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cesc_seq,Cesc_seq::rhs3_Rhex_no_digit_}
+ }// end of reduce table
+};
+yacco2::State S38_Cesc_seq = //State's vectored into symbol: "2"
+{38
+,0,0,0,0,0,(Reduce_tbl*)&S38rt_Cesc_seq,0,0,0};
+struct S39rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S39rtd_Cesc_seq S39rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cesc_seq,Cesc_seq::rhs4_Rhex_no_digit_}
+ }// end of reduce table
+};
+yacco2::State S39_Cesc_seq = //State's vectored into symbol: "3"
+{39
+,0,0,0,0,0,(Reduce_tbl*)&S39rt_Cesc_seq,0,0,0};
+struct S40rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S40rtd_Cesc_seq S40rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cesc_seq,Cesc_seq::rhs5_Rhex_no_digit_}
+ }// end of reduce table
+};
+yacco2::State S40_Cesc_seq = //State's vectored into symbol: "4"
+{40
+,0,0,0,0,0,(Reduce_tbl*)&S40rt_Cesc_seq,0,0,0};
+struct S41rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S41rtd_Cesc_seq S41rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cesc_seq,Cesc_seq::rhs6_Rhex_no_digit_}
+ }// end of reduce table
+};
+yacco2::State S41_Cesc_seq = //State's vectored into symbol: "5"
+{41
+,0,0,0,0,0,(Reduce_tbl*)&S41rt_Cesc_seq,0,0,0};
+struct S42rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S42rtd_Cesc_seq S42rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cesc_seq,Cesc_seq::rhs7_Rhex_no_digit_}
+ }// end of reduce table
+};
+yacco2::State S42_Cesc_seq = //State's vectored into symbol: "6"
+{42
+,0,0,0,0,0,(Reduce_tbl*)&S42rt_Cesc_seq,0,0,0};
+struct S43rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S43rtd_Cesc_seq S43rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cesc_seq,Cesc_seq::rhs8_Rhex_no_digit_}
+ }// end of reduce table
+};
+yacco2::State S43_Cesc_seq = //State's vectored into symbol: "7"
+{43
+,0,0,0,0,0,(Reduce_tbl*)&S43rt_Cesc_seq,0,0,0};
+struct S44rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S44rtd_Cesc_seq S44rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cesc_seq,Cesc_seq::rhs9_Rhex_no_digit_}
+ }// end of reduce table
+};
+yacco2::State S44_Cesc_seq = //State's vectored into symbol: "8"
+{44
+,0,0,0,0,0,(Reduce_tbl*)&S44rt_Cesc_seq,0,0,0};
+struct S45rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S45rtd_Cesc_seq S45rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cesc_seq,Cesc_seq::rhs10_Rhex_no_digit_}
+ }// end of reduce table
+};
+yacco2::State S45_Cesc_seq = //State's vectored into symbol: "9"
+{45
+,0,0,0,0,0,(Reduce_tbl*)&S45rt_Cesc_seq,0,0,0};
+struct S46rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S46rtd_Cesc_seq S46rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cesc_seq,Cesc_seq::rhs7_Rhex_no_letter_}
+ }// end of reduce table
+};
+yacco2::State S46_Cesc_seq = //State's vectored into symbol: "A"
+{46
+,0,0,0,0,0,(Reduce_tbl*)&S46rt_Cesc_seq,0,0,0};
+struct S47rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S47rtd_Cesc_seq S47rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cesc_seq,Cesc_seq::rhs8_Rhex_no_letter_}
+ }// end of reduce table
+};
+yacco2::State S47_Cesc_seq = //State's vectored into symbol: "B"
+{47
+,0,0,0,0,0,(Reduce_tbl*)&S47rt_Cesc_seq,0,0,0};
+struct S48rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S48rtd_Cesc_seq S48rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cesc_seq,Cesc_seq::rhs9_Rhex_no_letter_}
+ }// end of reduce table
+};
+yacco2::State S48_Cesc_seq = //State's vectored into symbol: "C"
+{48
+,0,0,0,0,0,(Reduce_tbl*)&S48rt_Cesc_seq,0,0,0};
+struct S49rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S49rtd_Cesc_seq S49rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cesc_seq,Cesc_seq::rhs10_Rhex_no_letter_}
+ }// end of reduce table
+};
+yacco2::State S49_Cesc_seq = //State's vectored into symbol: "D"
+{49
+,0,0,0,0,0,(Reduce_tbl*)&S49rt_Cesc_seq,0,0,0};
+struct S50rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S50rtd_Cesc_seq S50rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cesc_seq,Cesc_seq::rhs11_Rhex_no_letter_}
+ }// end of reduce table
+};
+yacco2::State S50_Cesc_seq = //State's vectored into symbol: "E"
+{50
+,0,0,0,0,0,(Reduce_tbl*)&S50rt_Cesc_seq,0,0,0};
+struct S51rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S51rtd_Cesc_seq S51rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cesc_seq,Cesc_seq::rhs12_Rhex_no_letter_}
+ }// end of reduce table
+};
+yacco2::State S51_Cesc_seq = //State's vectored into symbol: "F"
+{51
+,0,0,0,0,0,(Reduce_tbl*)&S51rt_Cesc_seq,0,0,0};
+struct S52rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S52rtd_Cesc_seq S52rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cesc_seq,Cesc_seq::rhs1_Rhex_no_letter_}
+ }// end of reduce table
+};
+yacco2::State S52_Cesc_seq = //State's vectored into symbol: "a"
+{52
+,0,0,0,0,0,(Reduce_tbl*)&S52rt_Cesc_seq,0,0,0};
+struct S53rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S53rtd_Cesc_seq S53rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cesc_seq,Cesc_seq::rhs2_Rhex_no_letter_}
+ }// end of reduce table
+};
+yacco2::State S53_Cesc_seq = //State's vectored into symbol: "b"
+{53
+,0,0,0,0,0,(Reduce_tbl*)&S53rt_Cesc_seq,0,0,0};
+struct S54rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S54rtd_Cesc_seq S54rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cesc_seq,Cesc_seq::rhs3_Rhex_no_letter_}
+ }// end of reduce table
+};
+yacco2::State S54_Cesc_seq = //State's vectored into symbol: "c"
+{54
+,0,0,0,0,0,(Reduce_tbl*)&S54rt_Cesc_seq,0,0,0};
+struct S55rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S55rtd_Cesc_seq S55rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cesc_seq,Cesc_seq::rhs4_Rhex_no_letter_}
+ }// end of reduce table
+};
+yacco2::State S55_Cesc_seq = //State's vectored into symbol: "d"
+{55
+,0,0,0,0,0,(Reduce_tbl*)&S55rt_Cesc_seq,0,0,0};
+struct S56rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S56rtd_Cesc_seq S56rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cesc_seq,Cesc_seq::rhs5_Rhex_no_letter_}
+ }// end of reduce table
+};
+yacco2::State S56_Cesc_seq = //State's vectored into symbol: "e"
+{56
+,0,0,0,0,0,(Reduce_tbl*)&S56rt_Cesc_seq,0,0,0};
+struct S57rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S57rtd_Cesc_seq S57rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cesc_seq,Cesc_seq::rhs6_Rhex_no_letter_}
+ }// end of reduce table
+};
+yacco2::State S57_Cesc_seq = //State's vectored into symbol: "f"
+{57
+,0,0,0,0,0,(Reduce_tbl*)&S57rt_Cesc_seq,0,0,0};
+struct S58std_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S58std_Cesc_seq S58st_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {578,(State*)&S59_Cesc_seq} // shift sym: Rcalc_hex_char
+ }// end of shift table
+};
+struct S58rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S58rtd_Cesc_seq S58rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cesc_seq,Cesc_seq::rhs1_Rcalc_hex_char_}
+ }// end of reduce table
+};
+yacco2::State S58_Cesc_seq = //State's vectored into symbol: "Rmhex_no"
+{58
+,0,0,0,0,(Shift_tbl*)&S58st_Cesc_seq,(Reduce_tbl*)&S58rt_Cesc_seq,0,0,0};
+struct S59rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S59rtd_Cesc_seq S59rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cesc_seq,Cesc_seq::rhs1_Ruhex_}
+ }// end of reduce table
+};
+yacco2::State S59_Cesc_seq = //State's vectored into symbol: "Rcalc_hex_char"
+{59
+,0,0,0,0,0,(Reduce_tbl*)&S59rt_Cesc_seq,0,0,0};
+struct S60rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S60rtd_Cesc_seq S60rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cesc_seq,Cesc_seq::rhs1_Rmhex_no_}
+ }// end of reduce table
+};
+yacco2::State S60_Cesc_seq = //State's vectored into symbol: "Rhex_no"
+{60
+,0,0,0,0,0,(Reduce_tbl*)&S60rt_Cesc_seq,0,0,0};
+struct S61rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S61rtd_Cesc_seq S61rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cesc_seq,Cesc_seq::rhs1_Rhex_no_}
+ }// end of reduce table
+};
+yacco2::State S61_Cesc_seq = //State's vectored into symbol: "Rhex_no_digit"
+{61
+,0,0,0,0,0,(Reduce_tbl*)&S61rt_Cesc_seq,0,0,0};
+struct S62rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S62rtd_Cesc_seq S62rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cesc_seq,Cesc_seq::rhs2_Rhex_no_}
+ }// end of reduce table
+};
+yacco2::State S62_Cesc_seq = //State's vectored into symbol: "Rhex_no_letter"
+{62
+,0,0,0,0,0,(Reduce_tbl*)&S62rt_Cesc_seq,0,0,0};
+struct S63std_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[27];
+};
+S63std_Cesc_seq S63st_Cesc_seq = {
+ 27
+ ,
+ {// start of table
+ {0,(State*)&S35_Cesc_seq} // shift sym: LR1_questionable_shift_operator
+ ,{56,(State*)&S36_Cesc_seq} // shift sym: raw_0
+ ,{57,(State*)&S37_Cesc_seq} // shift sym: raw_1
+ ,{58,(State*)&S38_Cesc_seq} // shift sym: raw_2
+ ,{59,(State*)&S39_Cesc_seq} // shift sym: raw_3
+ ,{60,(State*)&S40_Cesc_seq} // shift sym: raw_4
+ ,{61,(State*)&S41_Cesc_seq} // shift sym: raw_5
+ ,{62,(State*)&S42_Cesc_seq} // shift sym: raw_6
+ ,{63,(State*)&S43_Cesc_seq} // shift sym: raw_7
+ ,{64,(State*)&S44_Cesc_seq} // shift sym: raw_8
+ ,{65,(State*)&S45_Cesc_seq} // shift sym: raw_9
+ ,{73,(State*)&S46_Cesc_seq} // shift sym: raw_A
+ ,{74,(State*)&S47_Cesc_seq} // shift sym: raw_B
+ ,{75,(State*)&S48_Cesc_seq} // shift sym: raw_C
+ ,{76,(State*)&S49_Cesc_seq} // shift sym: raw_D
+ ,{77,(State*)&S50_Cesc_seq} // shift sym: raw_E
+ ,{78,(State*)&S51_Cesc_seq} // shift sym: raw_F
+ ,{105,(State*)&S52_Cesc_seq} // shift sym: raw_a
+ ,{106,(State*)&S53_Cesc_seq} // shift sym: raw_b
+ ,{107,(State*)&S54_Cesc_seq} // shift sym: raw_c
+ ,{108,(State*)&S55_Cesc_seq} // shift sym: raw_d
+ ,{109,(State*)&S56_Cesc_seq} // shift sym: raw_e
+ ,{110,(State*)&S57_Cesc_seq} // shift sym: raw_f
+ ,{577,(State*)&S64_Cesc_seq} // shift sym: Rmhex_no
+ ,{581,(State*)&S60_Cesc_seq} // shift sym: Rhex_no
+ ,{582,(State*)&S61_Cesc_seq} // shift sym: Rhex_no_digit
+ ,{583,(State*)&S62_Cesc_seq} // shift sym: Rhex_no_letter
+ }// end of shift table
+};
+yacco2::Shift_entry S63qse_Cesc_seq = {0,(State*)&S35_Cesc_seq};
+yacco2::State S63_Cesc_seq = //State's vectored into symbol: "RU"
+{63
+,0,0,0,0,(Shift_tbl*)&S63st_Cesc_seq,0,0,0,(Shift_entry*)&S63qse_Cesc_seq
+};
+struct S64std_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[27];
+};
+S64std_Cesc_seq S64st_Cesc_seq = {
+ 27
+ ,
+ {// start of table
+ {0,(State*)&S35_Cesc_seq} // shift sym: LR1_questionable_shift_operator
+ ,{56,(State*)&S36_Cesc_seq} // shift sym: raw_0
+ ,{57,(State*)&S37_Cesc_seq} // shift sym: raw_1
+ ,{58,(State*)&S38_Cesc_seq} // shift sym: raw_2
+ ,{59,(State*)&S39_Cesc_seq} // shift sym: raw_3
+ ,{60,(State*)&S40_Cesc_seq} // shift sym: raw_4
+ ,{61,(State*)&S41_Cesc_seq} // shift sym: raw_5
+ ,{62,(State*)&S42_Cesc_seq} // shift sym: raw_6
+ ,{63,(State*)&S43_Cesc_seq} // shift sym: raw_7
+ ,{64,(State*)&S44_Cesc_seq} // shift sym: raw_8
+ ,{65,(State*)&S45_Cesc_seq} // shift sym: raw_9
+ ,{73,(State*)&S46_Cesc_seq} // shift sym: raw_A
+ ,{74,(State*)&S47_Cesc_seq} // shift sym: raw_B
+ ,{75,(State*)&S48_Cesc_seq} // shift sym: raw_C
+ ,{76,(State*)&S49_Cesc_seq} // shift sym: raw_D
+ ,{77,(State*)&S50_Cesc_seq} // shift sym: raw_E
+ ,{78,(State*)&S51_Cesc_seq} // shift sym: raw_F
+ ,{105,(State*)&S52_Cesc_seq} // shift sym: raw_a
+ ,{106,(State*)&S53_Cesc_seq} // shift sym: raw_b
+ ,{107,(State*)&S54_Cesc_seq} // shift sym: raw_c
+ ,{108,(State*)&S55_Cesc_seq} // shift sym: raw_d
+ ,{109,(State*)&S56_Cesc_seq} // shift sym: raw_e
+ ,{110,(State*)&S57_Cesc_seq} // shift sym: raw_f
+ ,{577,(State*)&S65_Cesc_seq} // shift sym: Rmhex_no
+ ,{581,(State*)&S60_Cesc_seq} // shift sym: Rhex_no
+ ,{582,(State*)&S61_Cesc_seq} // shift sym: Rhex_no_digit
+ ,{583,(State*)&S62_Cesc_seq} // shift sym: Rhex_no_letter
+ }// end of shift table
+};
+yacco2::Shift_entry S64qse_Cesc_seq = {0,(State*)&S35_Cesc_seq};
+yacco2::State S64_Cesc_seq = //State's vectored into symbol: "Rmhex_no"
+{64
+,0,0,0,0,(Shift_tbl*)&S64st_Cesc_seq,0,0,0,(Shift_entry*)&S64qse_Cesc_seq
+};
+struct S65std_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S65std_Cesc_seq S65st_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {578,(State*)&S66_Cesc_seq} // shift sym: Rcalc_hex_char
+ }// end of shift table
+};
+struct S65rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S65rtd_Cesc_seq S65rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cesc_seq,Cesc_seq::rhs1_Rcalc_hex_char_}
+ }// end of reduce table
+};
+yacco2::State S65_Cesc_seq = //State's vectored into symbol: "Rmhex_no"
+{65
+,0,0,0,0,(Shift_tbl*)&S65st_Cesc_seq,(Reduce_tbl*)&S65rt_Cesc_seq,0,0,0};
+struct S66std_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[27];
+};
+S66std_Cesc_seq S66st_Cesc_seq = {
+ 27
+ ,
+ {// start of table
+ {0,(State*)&S35_Cesc_seq} // shift sym: LR1_questionable_shift_operator
+ ,{56,(State*)&S36_Cesc_seq} // shift sym: raw_0
+ ,{57,(State*)&S37_Cesc_seq} // shift sym: raw_1
+ ,{58,(State*)&S38_Cesc_seq} // shift sym: raw_2
+ ,{59,(State*)&S39_Cesc_seq} // shift sym: raw_3
+ ,{60,(State*)&S40_Cesc_seq} // shift sym: raw_4
+ ,{61,(State*)&S41_Cesc_seq} // shift sym: raw_5
+ ,{62,(State*)&S42_Cesc_seq} // shift sym: raw_6
+ ,{63,(State*)&S43_Cesc_seq} // shift sym: raw_7
+ ,{64,(State*)&S44_Cesc_seq} // shift sym: raw_8
+ ,{65,(State*)&S45_Cesc_seq} // shift sym: raw_9
+ ,{73,(State*)&S46_Cesc_seq} // shift sym: raw_A
+ ,{74,(State*)&S47_Cesc_seq} // shift sym: raw_B
+ ,{75,(State*)&S48_Cesc_seq} // shift sym: raw_C
+ ,{76,(State*)&S49_Cesc_seq} // shift sym: raw_D
+ ,{77,(State*)&S50_Cesc_seq} // shift sym: raw_E
+ ,{78,(State*)&S51_Cesc_seq} // shift sym: raw_F
+ ,{105,(State*)&S52_Cesc_seq} // shift sym: raw_a
+ ,{106,(State*)&S53_Cesc_seq} // shift sym: raw_b
+ ,{107,(State*)&S54_Cesc_seq} // shift sym: raw_c
+ ,{108,(State*)&S55_Cesc_seq} // shift sym: raw_d
+ ,{109,(State*)&S56_Cesc_seq} // shift sym: raw_e
+ ,{110,(State*)&S57_Cesc_seq} // shift sym: raw_f
+ ,{577,(State*)&S67_Cesc_seq} // shift sym: Rmhex_no
+ ,{581,(State*)&S60_Cesc_seq} // shift sym: Rhex_no
+ ,{582,(State*)&S61_Cesc_seq} // shift sym: Rhex_no_digit
+ ,{583,(State*)&S62_Cesc_seq} // shift sym: Rhex_no_letter
+ }// end of shift table
+};
+yacco2::Shift_entry S66qse_Cesc_seq = {0,(State*)&S35_Cesc_seq};
+yacco2::State S66_Cesc_seq = //State's vectored into symbol: "Rcalc_hex_char"
+{66
+,0,0,0,0,(Shift_tbl*)&S66st_Cesc_seq,0,0,0,(Shift_entry*)&S66qse_Cesc_seq
+};
+struct S67std_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[27];
+};
+S67std_Cesc_seq S67st_Cesc_seq = {
+ 27
+ ,
+ {// start of table
+ {0,(State*)&S35_Cesc_seq} // shift sym: LR1_questionable_shift_operator
+ ,{56,(State*)&S36_Cesc_seq} // shift sym: raw_0
+ ,{57,(State*)&S37_Cesc_seq} // shift sym: raw_1
+ ,{58,(State*)&S38_Cesc_seq} // shift sym: raw_2
+ ,{59,(State*)&S39_Cesc_seq} // shift sym: raw_3
+ ,{60,(State*)&S40_Cesc_seq} // shift sym: raw_4
+ ,{61,(State*)&S41_Cesc_seq} // shift sym: raw_5
+ ,{62,(State*)&S42_Cesc_seq} // shift sym: raw_6
+ ,{63,(State*)&S43_Cesc_seq} // shift sym: raw_7
+ ,{64,(State*)&S44_Cesc_seq} // shift sym: raw_8
+ ,{65,(State*)&S45_Cesc_seq} // shift sym: raw_9
+ ,{73,(State*)&S46_Cesc_seq} // shift sym: raw_A
+ ,{74,(State*)&S47_Cesc_seq} // shift sym: raw_B
+ ,{75,(State*)&S48_Cesc_seq} // shift sym: raw_C
+ ,{76,(State*)&S49_Cesc_seq} // shift sym: raw_D
+ ,{77,(State*)&S50_Cesc_seq} // shift sym: raw_E
+ ,{78,(State*)&S51_Cesc_seq} // shift sym: raw_F
+ ,{105,(State*)&S52_Cesc_seq} // shift sym: raw_a
+ ,{106,(State*)&S53_Cesc_seq} // shift sym: raw_b
+ ,{107,(State*)&S54_Cesc_seq} // shift sym: raw_c
+ ,{108,(State*)&S55_Cesc_seq} // shift sym: raw_d
+ ,{109,(State*)&S56_Cesc_seq} // shift sym: raw_e
+ ,{110,(State*)&S57_Cesc_seq} // shift sym: raw_f
+ ,{577,(State*)&S68_Cesc_seq} // shift sym: Rmhex_no
+ ,{581,(State*)&S60_Cesc_seq} // shift sym: Rhex_no
+ ,{582,(State*)&S61_Cesc_seq} // shift sym: Rhex_no_digit
+ ,{583,(State*)&S62_Cesc_seq} // shift sym: Rhex_no_letter
+ }// end of shift table
+};
+yacco2::Shift_entry S67qse_Cesc_seq = {0,(State*)&S35_Cesc_seq};
+yacco2::State S67_Cesc_seq = //State's vectored into symbol: "Rmhex_no"
+{67
+,0,0,0,0,(Shift_tbl*)&S67st_Cesc_seq,0,0,0,(Shift_entry*)&S67qse_Cesc_seq
+};
+struct S68std_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S68std_Cesc_seq S68st_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {578,(State*)&S69_Cesc_seq} // shift sym: Rcalc_hex_char
+ }// end of shift table
+};
+struct S68rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S68rtd_Cesc_seq S68rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cesc_seq,Cesc_seq::rhs1_Rcalc_hex_char_}
+ }// end of reduce table
+};
+yacco2::State S68_Cesc_seq = //State's vectored into symbol: "Rmhex_no"
+{68
+,0,0,0,0,(Shift_tbl*)&S68st_Cesc_seq,(Reduce_tbl*)&S68rt_Cesc_seq,0,0,0};
+struct S69std_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[27];
+};
+S69std_Cesc_seq S69st_Cesc_seq = {
+ 27
+ ,
+ {// start of table
+ {0,(State*)&S35_Cesc_seq} // shift sym: LR1_questionable_shift_operator
+ ,{56,(State*)&S36_Cesc_seq} // shift sym: raw_0
+ ,{57,(State*)&S37_Cesc_seq} // shift sym: raw_1
+ ,{58,(State*)&S38_Cesc_seq} // shift sym: raw_2
+ ,{59,(State*)&S39_Cesc_seq} // shift sym: raw_3
+ ,{60,(State*)&S40_Cesc_seq} // shift sym: raw_4
+ ,{61,(State*)&S41_Cesc_seq} // shift sym: raw_5
+ ,{62,(State*)&S42_Cesc_seq} // shift sym: raw_6
+ ,{63,(State*)&S43_Cesc_seq} // shift sym: raw_7
+ ,{64,(State*)&S44_Cesc_seq} // shift sym: raw_8
+ ,{65,(State*)&S45_Cesc_seq} // shift sym: raw_9
+ ,{73,(State*)&S46_Cesc_seq} // shift sym: raw_A
+ ,{74,(State*)&S47_Cesc_seq} // shift sym: raw_B
+ ,{75,(State*)&S48_Cesc_seq} // shift sym: raw_C
+ ,{76,(State*)&S49_Cesc_seq} // shift sym: raw_D
+ ,{77,(State*)&S50_Cesc_seq} // shift sym: raw_E
+ ,{78,(State*)&S51_Cesc_seq} // shift sym: raw_F
+ ,{105,(State*)&S52_Cesc_seq} // shift sym: raw_a
+ ,{106,(State*)&S53_Cesc_seq} // shift sym: raw_b
+ ,{107,(State*)&S54_Cesc_seq} // shift sym: raw_c
+ ,{108,(State*)&S55_Cesc_seq} // shift sym: raw_d
+ ,{109,(State*)&S56_Cesc_seq} // shift sym: raw_e
+ ,{110,(State*)&S57_Cesc_seq} // shift sym: raw_f
+ ,{577,(State*)&S70_Cesc_seq} // shift sym: Rmhex_no
+ ,{581,(State*)&S60_Cesc_seq} // shift sym: Rhex_no
+ ,{582,(State*)&S61_Cesc_seq} // shift sym: Rhex_no_digit
+ ,{583,(State*)&S62_Cesc_seq} // shift sym: Rhex_no_letter
+ }// end of shift table
+};
+yacco2::Shift_entry S69qse_Cesc_seq = {0,(State*)&S35_Cesc_seq};
+yacco2::State S69_Cesc_seq = //State's vectored into symbol: "Rcalc_hex_char"
+{69
+,0,0,0,0,(Shift_tbl*)&S69st_Cesc_seq,0,0,0,(Shift_entry*)&S69qse_Cesc_seq
+};
+struct S70std_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[27];
+};
+S70std_Cesc_seq S70st_Cesc_seq = {
+ 27
+ ,
+ {// start of table
+ {0,(State*)&S35_Cesc_seq} // shift sym: LR1_questionable_shift_operator
+ ,{56,(State*)&S36_Cesc_seq} // shift sym: raw_0
+ ,{57,(State*)&S37_Cesc_seq} // shift sym: raw_1
+ ,{58,(State*)&S38_Cesc_seq} // shift sym: raw_2
+ ,{59,(State*)&S39_Cesc_seq} // shift sym: raw_3
+ ,{60,(State*)&S40_Cesc_seq} // shift sym: raw_4
+ ,{61,(State*)&S41_Cesc_seq} // shift sym: raw_5
+ ,{62,(State*)&S42_Cesc_seq} // shift sym: raw_6
+ ,{63,(State*)&S43_Cesc_seq} // shift sym: raw_7
+ ,{64,(State*)&S44_Cesc_seq} // shift sym: raw_8
+ ,{65,(State*)&S45_Cesc_seq} // shift sym: raw_9
+ ,{73,(State*)&S46_Cesc_seq} // shift sym: raw_A
+ ,{74,(State*)&S47_Cesc_seq} // shift sym: raw_B
+ ,{75,(State*)&S48_Cesc_seq} // shift sym: raw_C
+ ,{76,(State*)&S49_Cesc_seq} // shift sym: raw_D
+ ,{77,(State*)&S50_Cesc_seq} // shift sym: raw_E
+ ,{78,(State*)&S51_Cesc_seq} // shift sym: raw_F
+ ,{105,(State*)&S52_Cesc_seq} // shift sym: raw_a
+ ,{106,(State*)&S53_Cesc_seq} // shift sym: raw_b
+ ,{107,(State*)&S54_Cesc_seq} // shift sym: raw_c
+ ,{108,(State*)&S55_Cesc_seq} // shift sym: raw_d
+ ,{109,(State*)&S56_Cesc_seq} // shift sym: raw_e
+ ,{110,(State*)&S57_Cesc_seq} // shift sym: raw_f
+ ,{577,(State*)&S71_Cesc_seq} // shift sym: Rmhex_no
+ ,{581,(State*)&S60_Cesc_seq} // shift sym: Rhex_no
+ ,{582,(State*)&S61_Cesc_seq} // shift sym: Rhex_no_digit
+ ,{583,(State*)&S62_Cesc_seq} // shift sym: Rhex_no_letter
+ }// end of shift table
+};
+yacco2::Shift_entry S70qse_Cesc_seq = {0,(State*)&S35_Cesc_seq};
+yacco2::State S70_Cesc_seq = //State's vectored into symbol: "Rmhex_no"
+{70
+,0,0,0,0,(Shift_tbl*)&S70st_Cesc_seq,0,0,0,(Shift_entry*)&S70qse_Cesc_seq
+};
+struct S71std_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S71std_Cesc_seq S71st_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {578,(State*)&S72_Cesc_seq} // shift sym: Rcalc_hex_char
+ }// end of shift table
+};
+struct S71rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S71rtd_Cesc_seq S71rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cesc_seq,Cesc_seq::rhs1_Rcalc_hex_char_}
+ }// end of reduce table
+};
+yacco2::State S71_Cesc_seq = //State's vectored into symbol: "Rmhex_no"
+{71
+,0,0,0,0,(Shift_tbl*)&S71st_Cesc_seq,(Reduce_tbl*)&S71rt_Cesc_seq,0,0,0};
+struct S72std_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[27];
+};
+S72std_Cesc_seq S72st_Cesc_seq = {
+ 27
+ ,
+ {// start of table
+ {0,(State*)&S35_Cesc_seq} // shift sym: LR1_questionable_shift_operator
+ ,{56,(State*)&S36_Cesc_seq} // shift sym: raw_0
+ ,{57,(State*)&S37_Cesc_seq} // shift sym: raw_1
+ ,{58,(State*)&S38_Cesc_seq} // shift sym: raw_2
+ ,{59,(State*)&S39_Cesc_seq} // shift sym: raw_3
+ ,{60,(State*)&S40_Cesc_seq} // shift sym: raw_4
+ ,{61,(State*)&S41_Cesc_seq} // shift sym: raw_5
+ ,{62,(State*)&S42_Cesc_seq} // shift sym: raw_6
+ ,{63,(State*)&S43_Cesc_seq} // shift sym: raw_7
+ ,{64,(State*)&S44_Cesc_seq} // shift sym: raw_8
+ ,{65,(State*)&S45_Cesc_seq} // shift sym: raw_9
+ ,{73,(State*)&S46_Cesc_seq} // shift sym: raw_A
+ ,{74,(State*)&S47_Cesc_seq} // shift sym: raw_B
+ ,{75,(State*)&S48_Cesc_seq} // shift sym: raw_C
+ ,{76,(State*)&S49_Cesc_seq} // shift sym: raw_D
+ ,{77,(State*)&S50_Cesc_seq} // shift sym: raw_E
+ ,{78,(State*)&S51_Cesc_seq} // shift sym: raw_F
+ ,{105,(State*)&S52_Cesc_seq} // shift sym: raw_a
+ ,{106,(State*)&S53_Cesc_seq} // shift sym: raw_b
+ ,{107,(State*)&S54_Cesc_seq} // shift sym: raw_c
+ ,{108,(State*)&S55_Cesc_seq} // shift sym: raw_d
+ ,{109,(State*)&S56_Cesc_seq} // shift sym: raw_e
+ ,{110,(State*)&S57_Cesc_seq} // shift sym: raw_f
+ ,{577,(State*)&S73_Cesc_seq} // shift sym: Rmhex_no
+ ,{581,(State*)&S60_Cesc_seq} // shift sym: Rhex_no
+ ,{582,(State*)&S61_Cesc_seq} // shift sym: Rhex_no_digit
+ ,{583,(State*)&S62_Cesc_seq} // shift sym: Rhex_no_letter
+ }// end of shift table
+};
+yacco2::Shift_entry S72qse_Cesc_seq = {0,(State*)&S35_Cesc_seq};
+yacco2::State S72_Cesc_seq = //State's vectored into symbol: "Rcalc_hex_char"
+{72
+,0,0,0,0,(Shift_tbl*)&S72st_Cesc_seq,0,0,0,(Shift_entry*)&S72qse_Cesc_seq
+};
+struct S73std_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[27];
+};
+S73std_Cesc_seq S73st_Cesc_seq = {
+ 27
+ ,
+ {// start of table
+ {0,(State*)&S35_Cesc_seq} // shift sym: LR1_questionable_shift_operator
+ ,{56,(State*)&S36_Cesc_seq} // shift sym: raw_0
+ ,{57,(State*)&S37_Cesc_seq} // shift sym: raw_1
+ ,{58,(State*)&S38_Cesc_seq} // shift sym: raw_2
+ ,{59,(State*)&S39_Cesc_seq} // shift sym: raw_3
+ ,{60,(State*)&S40_Cesc_seq} // shift sym: raw_4
+ ,{61,(State*)&S41_Cesc_seq} // shift sym: raw_5
+ ,{62,(State*)&S42_Cesc_seq} // shift sym: raw_6
+ ,{63,(State*)&S43_Cesc_seq} // shift sym: raw_7
+ ,{64,(State*)&S44_Cesc_seq} // shift sym: raw_8
+ ,{65,(State*)&S45_Cesc_seq} // shift sym: raw_9
+ ,{73,(State*)&S46_Cesc_seq} // shift sym: raw_A
+ ,{74,(State*)&S47_Cesc_seq} // shift sym: raw_B
+ ,{75,(State*)&S48_Cesc_seq} // shift sym: raw_C
+ ,{76,(State*)&S49_Cesc_seq} // shift sym: raw_D
+ ,{77,(State*)&S50_Cesc_seq} // shift sym: raw_E
+ ,{78,(State*)&S51_Cesc_seq} // shift sym: raw_F
+ ,{105,(State*)&S52_Cesc_seq} // shift sym: raw_a
+ ,{106,(State*)&S53_Cesc_seq} // shift sym: raw_b
+ ,{107,(State*)&S54_Cesc_seq} // shift sym: raw_c
+ ,{108,(State*)&S55_Cesc_seq} // shift sym: raw_d
+ ,{109,(State*)&S56_Cesc_seq} // shift sym: raw_e
+ ,{110,(State*)&S57_Cesc_seq} // shift sym: raw_f
+ ,{577,(State*)&S74_Cesc_seq} // shift sym: Rmhex_no
+ ,{581,(State*)&S60_Cesc_seq} // shift sym: Rhex_no
+ ,{582,(State*)&S61_Cesc_seq} // shift sym: Rhex_no_digit
+ ,{583,(State*)&S62_Cesc_seq} // shift sym: Rhex_no_letter
+ }// end of shift table
+};
+yacco2::Shift_entry S73qse_Cesc_seq = {0,(State*)&S35_Cesc_seq};
+yacco2::State S73_Cesc_seq = //State's vectored into symbol: "Rmhex_no"
+{73
+,0,0,0,0,(Shift_tbl*)&S73st_Cesc_seq,0,0,0,(Shift_entry*)&S73qse_Cesc_seq
+};
+struct S74std_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S74std_Cesc_seq S74st_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {578,(State*)&S75_Cesc_seq} // shift sym: Rcalc_hex_char
+ }// end of shift table
+};
+struct S74rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S74rtd_Cesc_seq S74rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cesc_seq,Cesc_seq::rhs1_Rcalc_hex_char_}
+ }// end of reduce table
+};
+yacco2::State S74_Cesc_seq = //State's vectored into symbol: "Rmhex_no"
+{74
+,0,0,0,0,(Shift_tbl*)&S74st_Cesc_seq,(Reduce_tbl*)&S74rt_Cesc_seq,0,0,0};
+struct S75rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S75rtd_Cesc_seq S75rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cesc_seq,Cesc_seq::rhs1_RUhex_}
+ }// end of reduce table
+};
+yacco2::State S75_Cesc_seq = //State's vectored into symbol: "Rcalc_hex_char"
+{75
+,0,0,0,0,0,(Reduce_tbl*)&S75rt_Cesc_seq,0,0,0};
+struct S76std_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[28];
+};
+S76std_Cesc_seq S76st_Cesc_seq = {
+ 28
+ ,
+ {// start of table
+ {0,(State*)&S35_Cesc_seq} // shift sym: LR1_questionable_shift_operator
+ ,{56,(State*)&S36_Cesc_seq} // shift sym: raw_0
+ ,{57,(State*)&S37_Cesc_seq} // shift sym: raw_1
+ ,{58,(State*)&S38_Cesc_seq} // shift sym: raw_2
+ ,{59,(State*)&S39_Cesc_seq} // shift sym: raw_3
+ ,{60,(State*)&S40_Cesc_seq} // shift sym: raw_4
+ ,{61,(State*)&S41_Cesc_seq} // shift sym: raw_5
+ ,{62,(State*)&S42_Cesc_seq} // shift sym: raw_6
+ ,{63,(State*)&S43_Cesc_seq} // shift sym: raw_7
+ ,{64,(State*)&S44_Cesc_seq} // shift sym: raw_8
+ ,{65,(State*)&S45_Cesc_seq} // shift sym: raw_9
+ ,{73,(State*)&S46_Cesc_seq} // shift sym: raw_A
+ ,{74,(State*)&S47_Cesc_seq} // shift sym: raw_B
+ ,{75,(State*)&S48_Cesc_seq} // shift sym: raw_C
+ ,{76,(State*)&S49_Cesc_seq} // shift sym: raw_D
+ ,{77,(State*)&S50_Cesc_seq} // shift sym: raw_E
+ ,{78,(State*)&S51_Cesc_seq} // shift sym: raw_F
+ ,{105,(State*)&S52_Cesc_seq} // shift sym: raw_a
+ ,{106,(State*)&S53_Cesc_seq} // shift sym: raw_b
+ ,{107,(State*)&S54_Cesc_seq} // shift sym: raw_c
+ ,{108,(State*)&S55_Cesc_seq} // shift sym: raw_d
+ ,{109,(State*)&S56_Cesc_seq} // shift sym: raw_e
+ ,{110,(State*)&S57_Cesc_seq} // shift sym: raw_f
+ ,{577,(State*)&S77_Cesc_seq} // shift sym: Rmhex_no
+ ,{580,(State*)&S78_Cesc_seq} // shift sym: Rhex_nos
+ ,{581,(State*)&S60_Cesc_seq} // shift sym: Rhex_no
+ ,{582,(State*)&S61_Cesc_seq} // shift sym: Rhex_no_digit
+ ,{583,(State*)&S62_Cesc_seq} // shift sym: Rhex_no_letter
+ }// end of shift table
+};
+yacco2::Shift_entry S76qse_Cesc_seq = {0,(State*)&S35_Cesc_seq};
+yacco2::State S76_Cesc_seq = //State's vectored into symbol: "Rx"
+{76
+,0,0,0,0,(Shift_tbl*)&S76st_Cesc_seq,0,0,0,(Shift_entry*)&S76qse_Cesc_seq
+};
+struct S77rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S77rtd_Cesc_seq S77rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cesc_seq,Cesc_seq::rhs1_Rhex_nos_}
+ }// end of reduce table
+};
+yacco2::State S77_Cesc_seq = //State's vectored into symbol: "Rmhex_no"
+{77
+,0,0,0,0,0,(Reduce_tbl*)&S77rt_Cesc_seq,0,0,0};
+struct S78std_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[25];
+};
+S78std_Cesc_seq S78st_Cesc_seq = {
+ 25
+ ,
+ {// start of table
+ {56,(State*)&S36_Cesc_seq} // shift sym: raw_0
+ ,{57,(State*)&S37_Cesc_seq} // shift sym: raw_1
+ ,{58,(State*)&S38_Cesc_seq} // shift sym: raw_2
+ ,{59,(State*)&S39_Cesc_seq} // shift sym: raw_3
+ ,{60,(State*)&S40_Cesc_seq} // shift sym: raw_4
+ ,{61,(State*)&S41_Cesc_seq} // shift sym: raw_5
+ ,{62,(State*)&S42_Cesc_seq} // shift sym: raw_6
+ ,{63,(State*)&S43_Cesc_seq} // shift sym: raw_7
+ ,{64,(State*)&S44_Cesc_seq} // shift sym: raw_8
+ ,{65,(State*)&S45_Cesc_seq} // shift sym: raw_9
+ ,{73,(State*)&S46_Cesc_seq} // shift sym: raw_A
+ ,{74,(State*)&S47_Cesc_seq} // shift sym: raw_B
+ ,{75,(State*)&S48_Cesc_seq} // shift sym: raw_C
+ ,{76,(State*)&S49_Cesc_seq} // shift sym: raw_D
+ ,{77,(State*)&S50_Cesc_seq} // shift sym: raw_E
+ ,{78,(State*)&S51_Cesc_seq} // shift sym: raw_F
+ ,{105,(State*)&S52_Cesc_seq} // shift sym: raw_a
+ ,{106,(State*)&S53_Cesc_seq} // shift sym: raw_b
+ ,{107,(State*)&S54_Cesc_seq} // shift sym: raw_c
+ ,{108,(State*)&S55_Cesc_seq} // shift sym: raw_d
+ ,{109,(State*)&S56_Cesc_seq} // shift sym: raw_e
+ ,{110,(State*)&S57_Cesc_seq} // shift sym: raw_f
+ ,{581,(State*)&S79_Cesc_seq} // shift sym: Rhex_no
+ ,{582,(State*)&S61_Cesc_seq} // shift sym: Rhex_no_digit
+ ,{583,(State*)&S62_Cesc_seq} // shift sym: Rhex_no_letter
+ }// end of shift table
+};
+struct S78rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S78rtd_Cesc_seq S78rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cesc_seq,Cesc_seq::rhs1_Rhex_}
+ }// end of reduce table
+};
+yacco2::State S78_Cesc_seq = //State's vectored into symbol: "Rhex_nos"
+{78
+,0,0,0,0,(Shift_tbl*)&S78st_Cesc_seq,(Reduce_tbl*)&S78rt_Cesc_seq,0,0,0};
+struct S79rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S79rtd_Cesc_seq S79rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cesc_seq,Cesc_seq::rhs2_Rhex_nos_}
+ }// end of reduce table
+};
+yacco2::State S79_Cesc_seq = //State's vectored into symbol: "Rhex_no"
+{79
+,0,0,0,0,0,(Reduce_tbl*)&S79rt_Cesc_seq,0,0,0};
+struct S80std_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S80std_Cesc_seq S80st_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {5,(State*)&S81_Cesc_seq} // shift sym: LR1_invisible_shift_operator
+ }// end of shift table
+};
+yacco2::Shift_entry S80ise_Cesc_seq = {5,(State*)&S81_Cesc_seq};
+yacco2::State S80_Cesc_seq = //State's vectored into symbol: "RUhex"
+{80
+,0,0,(Shift_entry*)&S80ise_Cesc_seq
+,0,(Shift_tbl*)&S80st_Cesc_seq,0,0,0,0};
+struct S81rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S81rtd_Cesc_seq S81rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cesc_seq,Cesc_seq::rhs5_Resc_seq_}
+ }// end of reduce table
+};
+yacco2::State S81_Cesc_seq = //State's vectored into symbol: "|.|"
+{81
+,0,0,0,0,0,(Reduce_tbl*)&S81rt_Cesc_seq,0,0,0};
+struct S82std_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S82std_Cesc_seq S82st_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {5,(State*)&S83_Cesc_seq} // shift sym: LR1_invisible_shift_operator
+ }// end of shift table
+};
+yacco2::Shift_entry S82ise_Cesc_seq = {5,(State*)&S83_Cesc_seq};
+yacco2::State S82_Cesc_seq = //State's vectored into symbol: "Rhex"
+{82
+,0,0,(Shift_entry*)&S82ise_Cesc_seq
+,0,(Shift_tbl*)&S82st_Cesc_seq,0,0,0,0};
+struct S83rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S83rtd_Cesc_seq S83rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cesc_seq,Cesc_seq::rhs3_Resc_seq_}
+ }// end of reduce table
+};
+yacco2::State S83_Cesc_seq = //State's vectored into symbol: "|.|"
+{83
+,0,0,0,0,0,(Reduce_tbl*)&S83rt_Cesc_seq,0,0,0};
+struct S84std_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S84std_Cesc_seq S84st_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {5,(State*)&S85_Cesc_seq} // shift sym: LR1_invisible_shift_operator
+ }// end of shift table
+};
+yacco2::Shift_entry S84ise_Cesc_seq = {5,(State*)&S85_Cesc_seq};
+yacco2::State S84_Cesc_seq = //State's vectored into symbol: "Roctal"
+{84
+,0,0,(Shift_entry*)&S84ise_Cesc_seq
+,0,(Shift_tbl*)&S84st_Cesc_seq,0,0,0,0};
+struct S85rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S85rtd_Cesc_seq S85rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cesc_seq,Cesc_seq::rhs2_Resc_seq_}
+ }// end of reduce table
+};
+yacco2::State S85_Cesc_seq = //State's vectored into symbol: "|.|"
+{85
+,0,0,0,0,0,(Reduce_tbl*)&S85rt_Cesc_seq,0,0,0};
+struct S86std_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[9];
+};
+S86std_Cesc_seq S86st_Cesc_seq = {
+ 9
+ ,
+ {// start of table
+ {56,(State*)&S7_Cesc_seq} // shift sym: raw_0
+ ,{57,(State*)&S8_Cesc_seq} // shift sym: raw_1
+ ,{58,(State*)&S9_Cesc_seq} // shift sym: raw_2
+ ,{59,(State*)&S10_Cesc_seq} // shift sym: raw_3
+ ,{60,(State*)&S11_Cesc_seq} // shift sym: raw_4
+ ,{61,(State*)&S12_Cesc_seq} // shift sym: raw_5
+ ,{62,(State*)&S13_Cesc_seq} // shift sym: raw_6
+ ,{63,(State*)&S14_Cesc_seq} // shift sym: raw_7
+ ,{585,(State*)&S87_Cesc_seq} // shift sym: Roctal_no
+ }// end of shift table
+};
+struct S86rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S86rtd_Cesc_seq S86rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cesc_seq,Cesc_seq::rhs1_Roctal_}
+ }// end of reduce table
+};
+yacco2::State S86_Cesc_seq = //State's vectored into symbol: "Roctal_no"
+{86
+,0,0,0,0,(Shift_tbl*)&S86st_Cesc_seq,(Reduce_tbl*)&S86rt_Cesc_seq,0,0,0};
+struct S87std_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[9];
+};
+S87std_Cesc_seq S87st_Cesc_seq = {
+ 9
+ ,
+ {// start of table
+ {56,(State*)&S7_Cesc_seq} // shift sym: raw_0
+ ,{57,(State*)&S8_Cesc_seq} // shift sym: raw_1
+ ,{58,(State*)&S9_Cesc_seq} // shift sym: raw_2
+ ,{59,(State*)&S10_Cesc_seq} // shift sym: raw_3
+ ,{60,(State*)&S11_Cesc_seq} // shift sym: raw_4
+ ,{61,(State*)&S12_Cesc_seq} // shift sym: raw_5
+ ,{62,(State*)&S13_Cesc_seq} // shift sym: raw_6
+ ,{63,(State*)&S14_Cesc_seq} // shift sym: raw_7
+ ,{585,(State*)&S88_Cesc_seq} // shift sym: Roctal_no
+ }// end of shift table
+};
+struct S87rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S87rtd_Cesc_seq S87rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cesc_seq,Cesc_seq::rhs2_Roctal_}
+ }// end of reduce table
+};
+yacco2::State S87_Cesc_seq = //State's vectored into symbol: "Roctal_no"
+{87
+,0,0,0,0,(Shift_tbl*)&S87st_Cesc_seq,(Reduce_tbl*)&S87rt_Cesc_seq,0,0,0};
+struct S88rtd_Cesc_seq{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S88rtd_Cesc_seq S88rt_Cesc_seq = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cesc_seq,Cesc_seq::rhs3_Roctal_}
+ }// end of reduce table
+};
+yacco2::State S88_Cesc_seq = //State's vectored into symbol: "Roctal_no"
+{88
+,0,0,0,0,0,(Reduce_tbl*)&S88rt_Cesc_seq,0,0,0};
diff --git a/web/yacco2/compiler/grammars/eval_phrases.cpp b/web/yacco2/compiler/grammars/eval_phrases.cpp
new file mode 100644
index 0000000000..22047b9e3f
--- /dev/null
+++ b/web/yacco2/compiler/grammars/eval_phrases.cpp
@@ -0,0 +1,365 @@
+/*
+ File: eval_phrases.cpp
+ Date and Time: Fri Jan 30 18:55:11 2015
+*/
+#include "eval_phrases.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_eval_phrases;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 9;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[4] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[5] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[6] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[7] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[8] = new Per_rule_s_reuse_table();
+}
+ Ceval_phrases::
+ Ceval_phrases()
+ :yacco2::CAbs_fsm
+ ("eval_phrases.lex"
+ ,"1.0"
+ ,"8 Mar. 2006"
+ ,true
+ ,"Evaluate parse phrase sequencer: \n as i use a top / down approach to dispatching the various phrases."
+ ,"Fri Jan 30 18:55:11 2015 "
+ ,S1_Ceval_phrases){
+
+ }
+
+Ceval_phrases::~Ceval_phrases(){
+
+ for(int x = 0;x < 9;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Ceval_phrases::failed(){
+ return false;
+ }
+ void Ceval_phrases::op(){
+ gps_=0;
+
+}
+int Ceval_phrases::rhs_to_rules_mapping_[19] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,0 // subrule 2 for rule 1
+ ,1 // subrule 3 for rule 2
+ ,1 // subrule 4 for rule 2
+ ,2 // subrule 5 for rule 3
+ ,2 // subrule 6 for rule 3
+ ,3 // subrule 7 for rule 4
+ ,3 // subrule 8 for rule 4
+ ,4 // subrule 9 for rule 5
+ ,4 // subrule 10 for rule 5
+ ,5 // subrule 11 for rule 6
+ ,5 // subrule 12 for rule 6
+ ,6 // subrule 13 for rule 7
+ ,6 // subrule 14 for rule 7
+ ,7 // subrule 15 for rule 8
+ ,7 // subrule 16 for rule 8
+ ,8 // subrule 17 for rule 9
+ ,8 // subrule 18 for rule 9
+};
+
+ void Ceval_phrases::post_error(CAbs_lr1_sym* Err){
+ using namespace NS_yacco2_T_enum;
+ Err->set_rc(*gps_,__FILE__,__LINE__);
+ if(gps_->enumerated_id__ == T_Enum::T_LR1_eog_){
+ Err->set_line_no_and_pos_in_line(1,1);
+ }
+ parser__->add_token_to_error_queue(*Err);
+ parser__->set_abort_parse(true);
+ }
+
+ void Ceval_phrases::post_gps(CAbs_lr1_sym* Sym){
+ gps_ = Sym;
+ }
+
+Reval_phrases::Reval_phrases(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Reval_phrases",0,Ceval_phrases::R_Reval_phrases_,P,false,false){
+}
+
+void Reval_phrases::sr2(){
+ struct SF{
+ LR1_eog* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ceval_phrases* fsm = (Ceval_phrases*) rule_info__.parser__->fsm_tbl__;
+ fsm->post_error(new Err_empty_file);
+ fsm->post_gps(sf->p1__);
+
+}
+
+Rfsm_phrase::Rfsm_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfsm_phrase",0,Ceval_phrases::R_Rfsm_phrase_,P,false,false){
+}
+
+void Rfsm_phrase::sr1(){
+ struct SF{
+ T_fsm_phrase* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ceval_phrases* fsm = (Ceval_phrases*) rule_info__.parser__->fsm_tbl__;
+ fsm->post_gps(sf->p1__);
+
+}
+
+void Rfsm_phrase::sr2(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ceval_phrases* fsm = (Ceval_phrases*) rule_info__.parser__->fsm_tbl__;
+ fsm->post_gps(sf->p1__);
+ fsm->post_error(new ERR_no_fsm_phrase);
+
+}
+
+Rparallel_phrase::Rparallel_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rparallel_phrase",0,Ceval_phrases::R_Rparallel_phrase_,P,false,false){
+}
+
+void Rparallel_phrase::sr1(){
+ struct SF{
+ T_parallel_parser_phrase* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ceval_phrases* fsm = (Ceval_phrases*) rule_info__.parser__->fsm_tbl__;
+ fsm->post_gps(sf->p1__);
+
+}
+
+RT_enum_phrase::RT_enum_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("RT_enum_phrase",0,Ceval_phrases::R_RT_enum_phrase_,P,false,false){
+}
+
+void RT_enum_phrase::sr1(){
+ struct SF{
+ T_enum_phrase* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ceval_phrases* fsm = (Ceval_phrases*) rule_info__.parser__->fsm_tbl__;
+ fsm->post_gps(sf->p1__);
+
+}
+
+void RT_enum_phrase::sr2(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ceval_phrases* fsm = (Ceval_phrases*) rule_info__.parser__->fsm_tbl__;
+ fsm->post_gps(sf->p1__);
+ fsm->post_error(new ERR_no_T_enum_phrase);
+
+}
+
+Rerr_sym_phrase::Rerr_sym_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rerr_sym_phrase",0,Ceval_phrases::R_Rerr_sym_phrase_,P,false,false){
+}
+
+void Rerr_sym_phrase::sr1(){
+ struct SF{
+ T_error_symbols_phrase* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ceval_phrases* fsm = (Ceval_phrases*) rule_info__.parser__->fsm_tbl__;
+ fsm->post_gps(sf->p1__);
+
+}
+
+void Rerr_sym_phrase::sr2(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ceval_phrases* fsm = (Ceval_phrases*) rule_info__.parser__->fsm_tbl__;
+ fsm->post_gps(sf->p1__);
+ fsm->post_error(new ERR_no_errors_phrase);
+
+}
+
+Rrc_phrase::Rrc_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrc_phrase",0,Ceval_phrases::R_Rrc_phrase_,P,false,false){
+}
+
+void Rrc_phrase::sr1(){
+ struct SF{
+ T_rc_phrase* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ceval_phrases* fsm = (Ceval_phrases*) rule_info__.parser__->fsm_tbl__;
+ fsm->post_gps(sf->p1__);
+
+}
+
+void Rrc_phrase::sr2(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ceval_phrases* fsm = (Ceval_phrases*) rule_info__.parser__->fsm_tbl__;
+ fsm->post_gps(sf->p1__);
+ fsm->post_error(new ERR_no_rc_phrase);
+
+}
+
+Rlr1_k_phrase::Rlr1_k_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlr1_k_phrase",0,Ceval_phrases::R_Rlr1_k_phrase_,P,false,false){
+}
+
+void Rlr1_k_phrase::sr1(){
+ struct SF{
+ T_lr1_k_phrase* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ceval_phrases* fsm = (Ceval_phrases*) rule_info__.parser__->fsm_tbl__;
+ fsm->post_gps(sf->p1__);
+
+}
+
+void Rlr1_k_phrase::sr2(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ceval_phrases* fsm = (Ceval_phrases*) rule_info__.parser__->fsm_tbl__;
+ fsm->post_gps(sf->p1__);
+ fsm->post_error(new ERR_no_lrk_phrase);
+
+}
+
+Rterms_phrase::Rterms_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rterms_phrase",0,Ceval_phrases::R_Rterms_phrase_,P,false,false){
+}
+
+void Rterms_phrase::sr1(){
+ struct SF{
+ T_terminals_phrase* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ceval_phrases* fsm = (Ceval_phrases*) rule_info__.parser__->fsm_tbl__;
+ fsm->post_gps(sf->p1__);
+
+}
+
+void Rterms_phrase::sr2(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ceval_phrases* fsm = (Ceval_phrases*) rule_info__.parser__->fsm_tbl__;
+ fsm->post_gps(sf->p1__);
+ fsm->post_error(new ERR_no_terminals_phrase);
+
+}
+
+Rrules_phrase::Rrules_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrules_phrase",0,Ceval_phrases::R_Rrules_phrase_,P,false,false){
+}
+
+void Rrules_phrase::sr1(){
+ struct SF{
+ T_rules_phrase* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ceval_phrases* fsm = (Ceval_phrases*) rule_info__.parser__->fsm_tbl__;
+ fsm->post_gps(sf->p1__);
+
+}
+
+void Rrules_phrase::sr2(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ceval_phrases* fsm = (Ceval_phrases*) rule_info__.parser__->fsm_tbl__;
+ fsm->post_gps(sf->p1__);
+ fsm->post_error(new ERR_no_rules_phrase);
+
+}
+
diff --git a/web/yacco2/compiler/grammars/eval_phrases.fsc b/web/yacco2/compiler/grammars/eval_phrases.fsc
new file mode 100644
index 0000000000..be6b86cbf5
--- /dev/null
+++ b/web/yacco2/compiler/grammars/eval_phrases.fsc
@@ -0,0 +1,22 @@
+/*
+ File: eval_phrases.fsc
+ Date and Time: Fri Jan 30 18:55:11 2015
+*/
+transitive n
+grammar-name "eval_phrases"
+name-space "NS_eval_phrases"
+thread-name "Ceval_phrases"
+monolithic y
+file-name "eval_phrases.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 3
+ LR1_questionable_shift_operator
+ LR1_eog
+ T_fsm_phrase
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"Evaluate parse phrase sequencer: \n as i use a top / down approach to dispatching the various phrases."
diff --git a/web/yacco2/compiler/grammars/eval_phrases.h b/web/yacco2/compiler/grammars/eval_phrases.h
new file mode 100644
index 0000000000..19697c1c18
--- /dev/null
+++ b/web/yacco2/compiler/grammars/eval_phrases.h
@@ -0,0 +1,144 @@
+/*
+ File: eval_phrases.h
+ Date and Time: Fri Jan 30 18:55:11 2015
+*/
+#ifndef __eval_phrases_h__
+#define __eval_phrases_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+// monolithic grammar: no thread
+extern yacco2::State S1_Ceval_phrases;
+namespace NS_eval_phrases {
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[9];
+};
+class Ceval_phrases: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Reval_phrases_ = 569//start_of_rule_list + 0
+ ,rhs1_Reval_phrases_ = 1
+ ,rhs2_Reval_phrases_ = 2
+ ,R_Rfsm_phrase_ = 570//start_of_rule_list + 2
+ ,rhs1_Rfsm_phrase_ = 3
+ ,rhs2_Rfsm_phrase_ = 4
+ ,R_Rparallel_phrase_ = 571//start_of_rule_list + 4
+ ,rhs1_Rparallel_phrase_ = 5
+ ,rhs2_Rparallel_phrase_ = 6
+ ,R_RT_enum_phrase_ = 572//start_of_rule_list + 6
+ ,rhs1_RT_enum_phrase_ = 7
+ ,rhs2_RT_enum_phrase_ = 8
+ ,R_Rerr_sym_phrase_ = 573//start_of_rule_list + 8
+ ,rhs1_Rerr_sym_phrase_ = 9
+ ,rhs2_Rerr_sym_phrase_ = 10
+ ,R_Rrc_phrase_ = 574//start_of_rule_list + 10
+ ,rhs1_Rrc_phrase_ = 11
+ ,rhs2_Rrc_phrase_ = 12
+ ,R_Rlr1_k_phrase_ = 575//start_of_rule_list + 12
+ ,rhs1_Rlr1_k_phrase_ = 13
+ ,rhs2_Rlr1_k_phrase_ = 14
+ ,R_Rterms_phrase_ = 576//start_of_rule_list + 14
+ ,rhs1_Rterms_phrase_ = 15
+ ,rhs2_Rterms_phrase_ = 16
+ ,R_Rrules_phrase_ = 577//start_of_rule_list + 16
+ ,rhs1_Rrules_phrase_ = 17
+ ,rhs2_Rrules_phrase_ = 18
+ };
+ //no of la sets = 9
+ //no of states = 26
+ Ceval_phrases();
+ ~Ceval_phrases();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[19];
+
+ public:
+ CAbs_lr1_sym* gps_;
+ void post_error(CAbs_lr1_sym* Err);
+ void post_gps(CAbs_lr1_sym* Sym);
+
+ };
+struct Reval_phrases;
+struct Rfsm_phrase;
+struct Rparallel_phrase;
+struct RT_enum_phrase;
+struct Rerr_sym_phrase;
+struct Rrc_phrase;
+struct Rlr1_k_phrase;
+struct Rterms_phrase;
+struct Rrules_phrase;
+struct Reval_phrases:public yacco2::CAbs_lr1_sym {
+ Reval_phrases(yacco2::Parser* P);
+ public:
+ void sr2();
+};
+
+struct Rfsm_phrase:public yacco2::CAbs_lr1_sym {
+ Rfsm_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rparallel_phrase:public yacco2::CAbs_lr1_sym {
+ Rparallel_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct RT_enum_phrase:public yacco2::CAbs_lr1_sym {
+ RT_enum_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rerr_sym_phrase:public yacco2::CAbs_lr1_sym {
+ Rerr_sym_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rrc_phrase:public yacco2::CAbs_lr1_sym {
+ Rrc_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rlr1_k_phrase:public yacco2::CAbs_lr1_sym {
+ Rlr1_k_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rterms_phrase:public yacco2::CAbs_lr1_sym {
+ Rterms_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rrules_phrase:public yacco2::CAbs_lr1_sym {
+ Rrules_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/eval_phrases.lex b/web/yacco2/compiler/grammars/eval_phrases.lex
new file mode 100644
index 0000000000..7411397142
--- /dev/null
+++ b/web/yacco2/compiler/grammars/eval_phrases.lex
@@ -0,0 +1,214 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: eval_phrases.lex
+Dates: 7 Mar. 2006
+Purpose: Make sure all the phrases are properly parsed.
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |eval_phrases| Grammar.\fbreak
+Make sure all the grammar phases are properly parsed.
+This is due to my not programming a grammar sequencer
+to explicitly define the syntax of a grammar.
+I wanted to parse each phrase separately
+by keyword triggering a descent procedure.\fbreak
+\fbreak
+Question: What source GPS do u align the error against?
+i just place it to the beginning of the grammar file
+if there is no
+previous phase seen.
+A previous phase becomes the reference point to
+the source file. If i was energetic, i should
+get the last token of that phase
+to be more accurate but today i'm lazy.
+The message is adequate to correct the problem.
+@/
+fsm
+(fsm-id "eval_phrases.lex",fsm-filename eval_phrases,fsm-namespace NS_eval_phrases
+,fsm-class Ceval_phrases{
+ user-declaration
+ public:
+ CAbs_lr1_sym* gps_;
+ void post_error(CAbs_lr1_sym* Err);
+ void post_gps(CAbs_lr1_sym* Sym);
+ ***
+ user-implementation
+ void Ceval_phrases::post_error(CAbs_lr1_sym* Err){
+ using namespace NS_yacco2_T_enum;
+ Err->set_rc(*gps_,__FILE__,__LINE__);
+ if(gps_->enumerated_id__ == T_Enum::T_LR1_eog_){
+ Err->set_line_no_and_pos_in_line(1,1);
+ }
+ parser__->add_token_to_error_queue(*Err);
+ parser__->set_abort_parse(true);
+ }
+/@
+@*3 |post_gps|.
+@/
+ void Ceval_phrases::post_gps(CAbs_lr1_sym* Sym){
+ gps_ = Sym;
+ }
+ ***
+ op
+ gps_=0;
+ ***
+}
+,fsm-version "1.0",fsm-date "8 Mar. 2006",fsm-debug "true"
+,fsm-comments "Evaluate parse phrase sequencer: \n as i use a top / down approach to dispatching the various phrases.")
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Reval_phrases
+
+/@
+Use the property of Rule's sequencing
+within a production to determine whether the
+parsed phrases were missed or out of sequence.
+Report them as errors.
+@/
+(){
+ ->
+ Rfsm_phrase
+ Rparallel_phrase
+ RT_enum_phrase
+ Rlr1_k_phrase
+ Rrc_phrase
+ Rterms_phrase
+ Rerr_sym_phrase
+ Rrules_phrase
+ eog
+ -> eog{
+ op
+ Ceval_phrases* fsm = (Ceval_phrases*) rule_info__.parser__->fsm_tbl__;
+ fsm->post_error(new Err_empty_file);
+ fsm->post_gps(sf->p1__);
+ ***
+ }
+}
+
+
+Rfsm_phrase (){
+ -> "fsm-phrase" {
+ op
+ Ceval_phrases* fsm = (Ceval_phrases*) rule_info__.parser__->fsm_tbl__;
+ fsm->post_gps(sf->p1__);
+ ***
+ }
+ -> |?|{
+ op
+ Ceval_phrases* fsm = (Ceval_phrases*) rule_info__.parser__->fsm_tbl__;
+ fsm->post_gps(sf->p1__);
+ fsm->post_error(new ERR_no_fsm_phrase);
+ ***
+ }
+}
+
+Rparallel_phrase (){
+ -> "parallel-parser-phrase" {
+ op
+ Ceval_phrases* fsm = (Ceval_phrases*) rule_info__.parser__->fsm_tbl__;
+ fsm->post_gps(sf->p1__);
+ ***
+ }
+ ->
+}
+
+RT_enum_phrase (){
+ -> "T-enum-phrase" {
+ op
+ Ceval_phrases* fsm = (Ceval_phrases*) rule_info__.parser__->fsm_tbl__;
+ fsm->post_gps(sf->p1__);
+ ***
+ }
+ -> |?|{
+ op
+ Ceval_phrases* fsm = (Ceval_phrases*) rule_info__.parser__->fsm_tbl__;
+ fsm->post_gps(sf->p1__);
+ fsm->post_error(new ERR_no_T_enum_phrase);
+ ***
+ }
+}
+
+Rerr_sym_phrase (){
+ -> "error-symbols-phrase" {
+ op
+ Ceval_phrases* fsm = (Ceval_phrases*) rule_info__.parser__->fsm_tbl__;
+ fsm->post_gps(sf->p1__);
+ ***
+ }
+ -> |?|{
+ op
+ Ceval_phrases* fsm = (Ceval_phrases*) rule_info__.parser__->fsm_tbl__;
+ fsm->post_gps(sf->p1__);
+ fsm->post_error(new ERR_no_errors_phrase);
+ ***
+ }
+}
+
+Rrc_phrase (){
+ -> "rc-phrase" {
+ op
+ Ceval_phrases* fsm = (Ceval_phrases*) rule_info__.parser__->fsm_tbl__;
+ fsm->post_gps(sf->p1__);
+ ***
+ }
+ -> |?|{
+ op
+ Ceval_phrases* fsm = (Ceval_phrases*) rule_info__.parser__->fsm_tbl__;
+ fsm->post_gps(sf->p1__);
+ fsm->post_error(new ERR_no_rc_phrase);
+ ***
+ }
+}
+
+Rlr1_k_phrase (){
+ -> "lr1-k-phrase" {
+ op
+ Ceval_phrases* fsm = (Ceval_phrases*) rule_info__.parser__->fsm_tbl__;
+ fsm->post_gps(sf->p1__);
+ ***
+ }
+ -> |?|{
+ op
+ Ceval_phrases* fsm = (Ceval_phrases*) rule_info__.parser__->fsm_tbl__;
+ fsm->post_gps(sf->p1__);
+ fsm->post_error(new ERR_no_lrk_phrase);
+ ***
+ }
+}
+
+Rterms_phrase (){
+ -> "terminals-phrase" {
+ op
+ Ceval_phrases* fsm = (Ceval_phrases*) rule_info__.parser__->fsm_tbl__;
+ fsm->post_gps(sf->p1__);
+ ***
+ }
+ -> |?|{
+ op
+ Ceval_phrases* fsm = (Ceval_phrases*) rule_info__.parser__->fsm_tbl__;
+ fsm->post_gps(sf->p1__);
+ fsm->post_error(new ERR_no_terminals_phrase);
+ ***
+ }
+}
+
+Rrules_phrase (){
+ -> "rules-phrase" {
+ op
+ Ceval_phrases* fsm = (Ceval_phrases*) rule_info__.parser__->fsm_tbl__;
+ fsm->post_gps(sf->p1__);
+ ***
+ }
+ -> |?| {
+ op
+ Ceval_phrases* fsm = (Ceval_phrases*) rule_info__.parser__->fsm_tbl__;
+ fsm->post_gps(sf->p1__);
+ fsm->post_error(new ERR_no_rules_phrase);
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/eval_phrasessym.cpp b/web/yacco2/compiler/grammars/eval_phrasessym.cpp
new file mode 100644
index 0000000000..51ccdf2173
--- /dev/null
+++ b/web/yacco2/compiler/grammars/eval_phrasessym.cpp
@@ -0,0 +1,295 @@
+/*
+ File: eval_phrasessym.cpp
+ Date and Time: Fri Jan 30 18:55:11 2015
+*/
+#include "eval_phrases.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_eval_phrases;// grammar's ns
+// first set terminals
+// monolithic grammar --- no thread
+void
+Ceval_phrases::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Reval_phrases_:{
+ Reval_phrases* sym;
+ if(re->rule_ == 0){
+ sym = new Reval_phrases(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Reval_phrases*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 9;
+
+
+ return;}
+ case rhs2_Reval_phrases_:{
+ Reval_phrases* sym;
+ if(re->rule_ == 0){
+ sym = new Reval_phrases(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Reval_phrases*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rfsm_phrase_:{
+ Rfsm_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rfsm_phrase_:{
+ Rfsm_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rparallel_phrase_:{
+ Rparallel_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rparallel_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rparallel_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rparallel_phrase_:{
+ Rparallel_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rparallel_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rparallel_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs1_RT_enum_phrase_:{
+ RT_enum_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new RT_enum_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RT_enum_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_RT_enum_phrase_:{
+ RT_enum_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new RT_enum_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RT_enum_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rerr_sym_phrase_:{
+ Rerr_sym_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rerr_sym_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rerr_sym_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rerr_sym_phrase_:{
+ Rerr_sym_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rerr_sym_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rerr_sym_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rrc_phrase_:{
+ Rrc_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rrc_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrc_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rrc_phrase_:{
+ Rrc_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rrc_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrc_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rlr1_k_phrase_:{
+ Rlr1_k_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rlr1_k_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlr1_k_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rlr1_k_phrase_:{
+ Rlr1_k_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rlr1_k_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlr1_k_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rterms_phrase_:{
+ Rterms_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rterms_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rterms_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rterms_phrase_:{
+ Rterms_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rterms_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rterms_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rrules_phrase_:{
+ Rrules_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rrules_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrules_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rrules_phrase_:{
+ Rrules_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rrules_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrules_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/eval_phrasestbl.cpp b/web/yacco2/compiler/grammars/eval_phrasestbl.cpp
new file mode 100644
index 0000000000..d27d237dd8
--- /dev/null
+++ b/web/yacco2/compiler/grammars/eval_phrasestbl.cpp
@@ -0,0 +1,505 @@
+/*
+ File: eval_phrasestbl.cpp
+ Date and Time: Fri Jan 30 18:55:11 2015
+*/
+#include "eval_phrases.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_eval_phrases;// grammar's ns
+// first set terminals
+// LR1_questionable_shift_operator
+// T_parallel_parser_phrase
+// T_enum_phrase
+yacco2::UCHAR LA1_Ceval_phrases[] ={
+2
+,0,1
+,41,6
+};
+// LR1_eolr
+yacco2::UCHAR LA2_Ceval_phrases[] ={
+1
+,0,4
+};
+// LR1_questionable_shift_operator
+// T_enum_phrase
+yacco2::UCHAR LA3_Ceval_phrases[] ={
+2
+,0,1
+,41,4
+};
+// LR1_questionable_shift_operator
+// T_lr1_k_phrase
+yacco2::UCHAR LA4_Ceval_phrases[] ={
+2
+,0,1
+,42,1
+};
+// LR1_questionable_shift_operator
+// T_rc_phrase
+yacco2::UCHAR LA5_Ceval_phrases[] ={
+2
+,0,1
+,42,2
+};
+// LR1_questionable_shift_operator
+// T_terminals_phrase
+yacco2::UCHAR LA6_Ceval_phrases[] ={
+2
+,0,1
+,41,64
+};
+// LR1_questionable_shift_operator
+// T_error_symbols_phrase
+yacco2::UCHAR LA7_Ceval_phrases[] ={
+2
+,0,1
+,41,128
+};
+// LR1_questionable_shift_operator
+// T_rules_phrase
+yacco2::UCHAR LA8_Ceval_phrases[] ={
+2
+,0,1
+,42,32
+};
+// LR1_eog
+yacco2::UCHAR LA9_Ceval_phrases[] ={
+1
+,0,2
+};
+extern yacco2::State S1_Ceval_phrases;
+extern yacco2::State S2_Ceval_phrases;
+extern yacco2::State S3_Ceval_phrases;
+extern yacco2::State S4_Ceval_phrases;
+extern yacco2::State S5_Ceval_phrases;
+extern yacco2::State S6_Ceval_phrases;
+extern yacco2::State S7_Ceval_phrases;
+extern yacco2::State S8_Ceval_phrases;
+extern yacco2::State S9_Ceval_phrases;
+extern yacco2::State S10_Ceval_phrases;
+extern yacco2::State S11_Ceval_phrases;
+extern yacco2::State S12_Ceval_phrases;
+extern yacco2::State S13_Ceval_phrases;
+extern yacco2::State S14_Ceval_phrases;
+extern yacco2::State S15_Ceval_phrases;
+extern yacco2::State S16_Ceval_phrases;
+extern yacco2::State S17_Ceval_phrases;
+extern yacco2::State S18_Ceval_phrases;
+extern yacco2::State S19_Ceval_phrases;
+extern yacco2::State S20_Ceval_phrases;
+extern yacco2::State S21_Ceval_phrases;
+extern yacco2::State S22_Ceval_phrases;
+extern yacco2::State S23_Ceval_phrases;
+extern yacco2::State S24_Ceval_phrases;
+extern yacco2::State S25_Ceval_phrases;
+extern yacco2::State S26_Ceval_phrases;
+struct S1std_Ceval_phrases{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S1std_Ceval_phrases S1st_Ceval_phrases = {
+ 5
+ ,
+ {// start of table
+ {0,(State*)&S2_Ceval_phrases} // shift sym: LR1_questionable_shift_operator
+ ,{1,(State*)&S3_Ceval_phrases} // shift sym: LR1_eog
+ ,{328,(State*)&S4_Ceval_phrases} // shift sym: T_fsm_phrase
+ ,{569,(State*)&S1_Ceval_phrases} // accept sym: Reval_phrases
+ ,{570,(State*)&S5_Ceval_phrases} // shift sym: Rfsm_phrase
+ }// end of shift table
+};
+yacco2::Shift_entry S1qse_Ceval_phrases = {0,(State*)&S2_Ceval_phrases};
+yacco2::State S1_Ceval_phrases = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Ceval_phrases,0,0,0,(Shift_entry*)&S1qse_Ceval_phrases
+};
+struct S2rtd_Ceval_phrases{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Ceval_phrases S2rt_Ceval_phrases = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ceval_phrases,Ceval_phrases::rhs2_Rfsm_phrase_}
+ }// end of reduce table
+};
+yacco2::State S2_Ceval_phrases = //State's vectored into symbol: "|?|"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Ceval_phrases,0,0,0};
+struct S3rtd_Ceval_phrases{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Ceval_phrases S3rt_Ceval_phrases = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ceval_phrases,Ceval_phrases::rhs2_Reval_phrases_}
+ }// end of reduce table
+};
+yacco2::State S3_Ceval_phrases = //State's vectored into symbol: "eog"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_Ceval_phrases,0,0,0};
+struct S4rtd_Ceval_phrases{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Ceval_phrases S4rt_Ceval_phrases = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ceval_phrases,Ceval_phrases::rhs1_Rfsm_phrase_}
+ }// end of reduce table
+};
+yacco2::State S4_Ceval_phrases = //State's vectored into symbol: "fsm-phrase"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Ceval_phrases,0,0,0};
+struct S5std_Ceval_phrases{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S5std_Ceval_phrases S5st_Ceval_phrases = {
+ 2
+ ,
+ {// start of table
+ {329,(State*)&S14_Ceval_phrases} // shift sym: T_parallel_parser_phrase
+ ,{571,(State*)&S6_Ceval_phrases} // shift sym: Rparallel_phrase
+ }// end of shift table
+};
+struct S5rtd_Ceval_phrases{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Ceval_phrases S5rt_Ceval_phrases = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Ceval_phrases,Ceval_phrases::rhs2_Rparallel_phrase_}
+ }// end of reduce table
+};
+yacco2::State S5_Ceval_phrases = //State's vectored into symbol: "Rfsm_phrase"
+{5
+,0,0,0,0,(Shift_tbl*)&S5st_Ceval_phrases,(Reduce_tbl*)&S5rt_Ceval_phrases,0,0,0};
+struct S6std_Ceval_phrases{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S6std_Ceval_phrases S6st_Ceval_phrases = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S15_Ceval_phrases} // shift sym: LR1_questionable_shift_operator
+ ,{330,(State*)&S16_Ceval_phrases} // shift sym: T_enum_phrase
+ ,{572,(State*)&S7_Ceval_phrases} // shift sym: RT_enum_phrase
+ }// end of shift table
+};
+yacco2::Shift_entry S6qse_Ceval_phrases = {0,(State*)&S15_Ceval_phrases};
+yacco2::State S6_Ceval_phrases = //State's vectored into symbol: "Rparallel_phrase"
+{6
+,0,0,0,0,(Shift_tbl*)&S6st_Ceval_phrases,0,0,0,(Shift_entry*)&S6qse_Ceval_phrases
+};
+struct S7std_Ceval_phrases{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S7std_Ceval_phrases S7st_Ceval_phrases = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S17_Ceval_phrases} // shift sym: LR1_questionable_shift_operator
+ ,{336,(State*)&S18_Ceval_phrases} // shift sym: T_lr1_k_phrase
+ ,{575,(State*)&S8_Ceval_phrases} // shift sym: Rlr1_k_phrase
+ }// end of shift table
+};
+yacco2::Shift_entry S7qse_Ceval_phrases = {0,(State*)&S17_Ceval_phrases};
+yacco2::State S7_Ceval_phrases = //State's vectored into symbol: "RT_enum_phrase"
+{7
+,0,0,0,0,(Shift_tbl*)&S7st_Ceval_phrases,0,0,0,(Shift_entry*)&S7qse_Ceval_phrases
+};
+struct S8std_Ceval_phrases{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S8std_Ceval_phrases S8st_Ceval_phrases = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S19_Ceval_phrases} // shift sym: LR1_questionable_shift_operator
+ ,{337,(State*)&S20_Ceval_phrases} // shift sym: T_rc_phrase
+ ,{574,(State*)&S9_Ceval_phrases} // shift sym: Rrc_phrase
+ }// end of shift table
+};
+yacco2::Shift_entry S8qse_Ceval_phrases = {0,(State*)&S19_Ceval_phrases};
+yacco2::State S8_Ceval_phrases = //State's vectored into symbol: "Rlr1_k_phrase"
+{8
+,0,0,0,0,(Shift_tbl*)&S8st_Ceval_phrases,0,0,0,(Shift_entry*)&S8qse_Ceval_phrases
+};
+struct S9std_Ceval_phrases{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S9std_Ceval_phrases S9st_Ceval_phrases = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S21_Ceval_phrases} // shift sym: LR1_questionable_shift_operator
+ ,{334,(State*)&S22_Ceval_phrases} // shift sym: T_terminals_phrase
+ ,{576,(State*)&S10_Ceval_phrases} // shift sym: Rterms_phrase
+ }// end of shift table
+};
+yacco2::Shift_entry S9qse_Ceval_phrases = {0,(State*)&S21_Ceval_phrases};
+yacco2::State S9_Ceval_phrases = //State's vectored into symbol: "Rrc_phrase"
+{9
+,0,0,0,0,(Shift_tbl*)&S9st_Ceval_phrases,0,0,0,(Shift_entry*)&S9qse_Ceval_phrases
+};
+struct S10std_Ceval_phrases{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S10std_Ceval_phrases S10st_Ceval_phrases = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S23_Ceval_phrases} // shift sym: LR1_questionable_shift_operator
+ ,{335,(State*)&S24_Ceval_phrases} // shift sym: T_error_symbols_phrase
+ ,{573,(State*)&S11_Ceval_phrases} // shift sym: Rerr_sym_phrase
+ }// end of shift table
+};
+yacco2::Shift_entry S10qse_Ceval_phrases = {0,(State*)&S23_Ceval_phrases};
+yacco2::State S10_Ceval_phrases = //State's vectored into symbol: "Rterms_phrase"
+{10
+,0,0,0,0,(Shift_tbl*)&S10st_Ceval_phrases,0,0,0,(Shift_entry*)&S10qse_Ceval_phrases
+};
+struct S11std_Ceval_phrases{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S11std_Ceval_phrases S11st_Ceval_phrases = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S25_Ceval_phrases} // shift sym: LR1_questionable_shift_operator
+ ,{341,(State*)&S26_Ceval_phrases} // shift sym: T_rules_phrase
+ ,{577,(State*)&S12_Ceval_phrases} // shift sym: Rrules_phrase
+ }// end of shift table
+};
+yacco2::Shift_entry S11qse_Ceval_phrases = {0,(State*)&S25_Ceval_phrases};
+yacco2::State S11_Ceval_phrases = //State's vectored into symbol: "Rerr_sym_phrase"
+{11
+,0,0,0,0,(Shift_tbl*)&S11st_Ceval_phrases,0,0,0,(Shift_entry*)&S11qse_Ceval_phrases
+};
+struct S12std_Ceval_phrases{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S12std_Ceval_phrases S12st_Ceval_phrases = {
+ 1
+ ,
+ {// start of table
+ {1,(State*)&S13_Ceval_phrases} // shift sym: LR1_eog
+ }// end of shift table
+};
+yacco2::State S12_Ceval_phrases = //State's vectored into symbol: "Rrules_phrase"
+{12
+,0,0,0,0,(Shift_tbl*)&S12st_Ceval_phrases,0,0,0,0};
+struct S13rtd_Ceval_phrases{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S13rtd_Ceval_phrases S13rt_Ceval_phrases = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ceval_phrases,Ceval_phrases::rhs1_Reval_phrases_}
+ }// end of reduce table
+};
+yacco2::State S13_Ceval_phrases = //State's vectored into symbol: "eog"
+{13
+,0,0,0,0,0,(Reduce_tbl*)&S13rt_Ceval_phrases,0,0,0};
+struct S14rtd_Ceval_phrases{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S14rtd_Ceval_phrases S14rt_Ceval_phrases = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Ceval_phrases,Ceval_phrases::rhs1_Rparallel_phrase_}
+ }// end of reduce table
+};
+yacco2::State S14_Ceval_phrases = //State's vectored into symbol: "parallel-parser-phrase"
+{14
+,0,0,0,0,0,(Reduce_tbl*)&S14rt_Ceval_phrases,0,0,0};
+struct S15rtd_Ceval_phrases{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S15rtd_Ceval_phrases S15rt_Ceval_phrases = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Ceval_phrases,Ceval_phrases::rhs2_RT_enum_phrase_}
+ }// end of reduce table
+};
+yacco2::State S15_Ceval_phrases = //State's vectored into symbol: "|?|"
+{15
+,0,0,0,0,0,(Reduce_tbl*)&S15rt_Ceval_phrases,0,0,0};
+struct S16rtd_Ceval_phrases{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S16rtd_Ceval_phrases S16rt_Ceval_phrases = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Ceval_phrases,Ceval_phrases::rhs1_RT_enum_phrase_}
+ }// end of reduce table
+};
+yacco2::State S16_Ceval_phrases = //State's vectored into symbol: "T-enum-phrase"
+{16
+,0,0,0,0,0,(Reduce_tbl*)&S16rt_Ceval_phrases,0,0,0};
+struct S17rtd_Ceval_phrases{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S17rtd_Ceval_phrases S17rt_Ceval_phrases = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Ceval_phrases,Ceval_phrases::rhs2_Rlr1_k_phrase_}
+ }// end of reduce table
+};
+yacco2::State S17_Ceval_phrases = //State's vectored into symbol: "|?|"
+{17
+,0,0,0,0,0,(Reduce_tbl*)&S17rt_Ceval_phrases,0,0,0};
+struct S18rtd_Ceval_phrases{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S18rtd_Ceval_phrases S18rt_Ceval_phrases = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Ceval_phrases,Ceval_phrases::rhs1_Rlr1_k_phrase_}
+ }// end of reduce table
+};
+yacco2::State S18_Ceval_phrases = //State's vectored into symbol: "lr1-k-phrase"
+{18
+,0,0,0,0,0,(Reduce_tbl*)&S18rt_Ceval_phrases,0,0,0};
+struct S19rtd_Ceval_phrases{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S19rtd_Ceval_phrases S19rt_Ceval_phrases = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Ceval_phrases,Ceval_phrases::rhs2_Rrc_phrase_}
+ }// end of reduce table
+};
+yacco2::State S19_Ceval_phrases = //State's vectored into symbol: "|?|"
+{19
+,0,0,0,0,0,(Reduce_tbl*)&S19rt_Ceval_phrases,0,0,0};
+struct S20rtd_Ceval_phrases{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S20rtd_Ceval_phrases S20rt_Ceval_phrases = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Ceval_phrases,Ceval_phrases::rhs1_Rrc_phrase_}
+ }// end of reduce table
+};
+yacco2::State S20_Ceval_phrases = //State's vectored into symbol: "rc-phrase"
+{20
+,0,0,0,0,0,(Reduce_tbl*)&S20rt_Ceval_phrases,0,0,0};
+struct S21rtd_Ceval_phrases{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S21rtd_Ceval_phrases S21rt_Ceval_phrases = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Ceval_phrases,Ceval_phrases::rhs2_Rterms_phrase_}
+ }// end of reduce table
+};
+yacco2::State S21_Ceval_phrases = //State's vectored into symbol: "|?|"
+{21
+,0,0,0,0,0,(Reduce_tbl*)&S21rt_Ceval_phrases,0,0,0};
+struct S22rtd_Ceval_phrases{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S22rtd_Ceval_phrases S22rt_Ceval_phrases = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Ceval_phrases,Ceval_phrases::rhs1_Rterms_phrase_}
+ }// end of reduce table
+};
+yacco2::State S22_Ceval_phrases = //State's vectored into symbol: "terminals-phrase"
+{22
+,0,0,0,0,0,(Reduce_tbl*)&S22rt_Ceval_phrases,0,0,0};
+struct S23rtd_Ceval_phrases{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S23rtd_Ceval_phrases S23rt_Ceval_phrases = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA8_Ceval_phrases,Ceval_phrases::rhs2_Rerr_sym_phrase_}
+ }// end of reduce table
+};
+yacco2::State S23_Ceval_phrases = //State's vectored into symbol: "|?|"
+{23
+,0,0,0,0,0,(Reduce_tbl*)&S23rt_Ceval_phrases,0,0,0};
+struct S24rtd_Ceval_phrases{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S24rtd_Ceval_phrases S24rt_Ceval_phrases = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA8_Ceval_phrases,Ceval_phrases::rhs1_Rerr_sym_phrase_}
+ }// end of reduce table
+};
+yacco2::State S24_Ceval_phrases = //State's vectored into symbol: "error-symbols-phrase"
+{24
+,0,0,0,0,0,(Reduce_tbl*)&S24rt_Ceval_phrases,0,0,0};
+struct S25rtd_Ceval_phrases{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S25rtd_Ceval_phrases S25rt_Ceval_phrases = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA9_Ceval_phrases,Ceval_phrases::rhs2_Rrules_phrase_}
+ }// end of reduce table
+};
+yacco2::State S25_Ceval_phrases = //State's vectored into symbol: "|?|"
+{25
+,0,0,0,0,0,(Reduce_tbl*)&S25rt_Ceval_phrases,0,0,0};
+struct S26rtd_Ceval_phrases{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S26rtd_Ceval_phrases S26rt_Ceval_phrases = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA9_Ceval_phrases,Ceval_phrases::rhs1_Rrules_phrase_}
+ }// end of reduce table
+};
+yacco2::State S26_Ceval_phrases = //State's vectored into symbol: "rules-phrase"
+{26
+,0,0,0,0,0,(Reduce_tbl*)&S26rt_Ceval_phrases,0,0,0};
diff --git a/web/yacco2/compiler/grammars/first_set_rules.cpp b/web/yacco2/compiler/grammars/first_set_rules.cpp
new file mode 100644
index 0000000000..d0f4cab1ab
--- /dev/null
+++ b/web/yacco2/compiler/grammars/first_set_rules.cpp
@@ -0,0 +1,96 @@
+/*
+ File: first_set_rules.cpp
+ Date and Time: Fri Jan 30 18:55:11 2015
+*/
+#include "first_set_rules.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_first_set_rules;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 4;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+}
+ Cfirst_set_rules::
+ Cfirst_set_rules()
+ :yacco2::CAbs_fsm
+ ("first_set_rules.lex"
+ ,"1.0"
+ ,"26 sept. 2005"
+ ,false
+ ,"Determine first set per rule."
+ ,"Fri Jan 30 18:55:11 2015 "
+ ,S1_Cfirst_set_rules){
+
+ }
+
+Cfirst_set_rules::~Cfirst_set_rules(){
+
+ for(int x = 0;x < 4;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cfirst_set_rules::failed(){
+ return false;
+ }
+ void Cfirst_set_rules::op(){
+ rule_def_ = 0;
+
+}
+int Cfirst_set_rules::rhs_to_rules_mapping_[6] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,2 // subrule 4 for rule 3
+ ,3 // subrule 5 for rule 4
+};
+Rfirst_set_rules::Rfirst_set_rules(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfirst_set_rules",0,Cfirst_set_rules::R_Rfirst_set_rules_,P,false,false){
+}
+
+Rrules::Rrules(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrules",0,Cfirst_set_rules::R_Rrules_,P,false,false){
+}
+
+Rrule::Rrule(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrule",0,Cfirst_set_rules::R_Rrule_,P,false,false){
+}
+
+void Rrule::sr1(){
+
+ Cfirst_set_rules* fsm = (Cfirst_set_rules*)rule_info__.parser__->fsm_tbl__;
+ GEN_FS_OF_RULE(fsm->rule_def_);
+
+}
+
+Rrule_def::Rrule_def(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrule_def",0,Cfirst_set_rules::R_Rrule_def_,P,false,false){
+}
+
+void Rrule_def::sr1(){
+ struct SF{
+ rule_def* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cfirst_set_rules* fsm = (Cfirst_set_rules*)rule_info__.parser__->fsm_tbl__;
+ fsm->rule_def_ = sf->p1__;
+
+}
+
diff --git a/web/yacco2/compiler/grammars/first_set_rules.fsc b/web/yacco2/compiler/grammars/first_set_rules.fsc
new file mode 100644
index 0000000000..a06adaa286
--- /dev/null
+++ b/web/yacco2/compiler/grammars/first_set_rules.fsc
@@ -0,0 +1,20 @@
+/*
+ File: first_set_rules.fsc
+ Date and Time: Fri Jan 30 18:55:11 2015
+*/
+transitive n
+grammar-name "first_set_rules"
+name-space "NS_first_set_rules"
+thread-name "Cfirst_set_rules"
+monolithic y
+file-name "first_set_rules.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ rule_def
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"Determine first set per rule."
diff --git a/web/yacco2/compiler/grammars/first_set_rules.h b/web/yacco2/compiler/grammars/first_set_rules.h
new file mode 100644
index 0000000000..77246bcbe8
--- /dev/null
+++ b/web/yacco2/compiler/grammars/first_set_rules.h
@@ -0,0 +1,83 @@
+/*
+ File: first_set_rules.h
+ Date and Time: Fri Jan 30 18:55:11 2015
+*/
+#ifndef __first_set_rules_h__
+#define __first_set_rules_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "o2_externs.h"
+
+// monolithic grammar: no thread
+extern yacco2::State S1_Cfirst_set_rules;
+namespace NS_first_set_rules {
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[4];
+};
+class Cfirst_set_rules: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rfirst_set_rules_ = 569//start_of_rule_list + 0
+ ,rhs1_Rfirst_set_rules_ = 1
+ ,R_Rrules_ = 570//start_of_rule_list + 2
+ ,rhs1_Rrules_ = 2
+ ,rhs2_Rrules_ = 3
+ ,R_Rrule_ = 571//start_of_rule_list + 4
+ ,rhs1_Rrule_ = 4
+ ,R_Rrule_def_ = 572//start_of_rule_list + 6
+ ,rhs1_Rrule_def_ = 5
+ };
+ //no of la sets = 2
+ //no of states = 7
+ Cfirst_set_rules();
+ ~Cfirst_set_rules();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[6];
+
+ public:
+ rule_def* rule_def_;
+
+ };
+struct Rfirst_set_rules;
+struct Rrules;
+struct Rrule;
+struct Rrule_def;
+struct Rfirst_set_rules:public yacco2::CAbs_lr1_sym {
+ Rfirst_set_rules(yacco2::Parser* P);
+ public:
+};
+
+struct Rrules:public yacco2::CAbs_lr1_sym {
+ Rrules(yacco2::Parser* P);
+ public:
+};
+
+struct Rrule:public yacco2::CAbs_lr1_sym {
+ Rrule(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rrule_def:public yacco2::CAbs_lr1_sym {
+ Rrule_def(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/first_set_rules.lex b/web/yacco2/compiler/grammars/first_set_rules.lex
new file mode 100644
index 0000000000..c88119b719
--- /dev/null
+++ b/web/yacco2/compiler/grammars/first_set_rules.lex
@@ -0,0 +1,158 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: first_set_rules.lex
+Dates: 23 Sept. 2005
+Purpose: determine first set per rule.
+How: Read the rules' tree in prefix order filtering out:
+ accepting only rule-def and subrule-def tokens.
+ all other tokens with the grammar tree are bypassed
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |first_set_rules| grammar.\fbreak
+Create a rule's first set by building a closure-only
+state. The terminals within this state are its first set.
+Each rule's first set within the grammar is built this way including the ``start rule''
+of the grammar and possibly rules used only in a
+ ``parallel-la-boundary'' expression.
+
+The difference between this first set calculation and the one described in
+``The Theory of Parsing, Translation,
+and Compiling Volume 1: Parsing'' by Aho and Ullman on
+Page 300 is mine only evaluates the terminal(s) within
+the state while theirs ``derives'' the terminal string with all their
+ substitutions
+to arrive at a set of terminals.
+{\bf Theirs is correct} as i did not completely walk
+the rule's subsubrules when evaluating a partially epsiloned string
+at follow set calculation --- it assumed that the rule's first set was already
+calculated: $\alpha$ string is made up of an epsiloned rule Ra$_{\epsilon}$
+ followed by $\beta$ string of rules or terminals.
+The first set was not filled in properly composed of FS($\alpha$) and FS($\beta$)
+but only the first string FS($\alpha$).
+When the follow set was calculated, it did not
+explode the follow set string into its symbol composites.
+Boy i'm dumb. Lets look at the short of it: the original
+first set calculation was for efficiency at the expense (when viewed now)
+to explode per follow string its composite first sets.
+What a dumb idea --- as all mistakes are!
+So now its a closure only state with interior symbols added due to epsilon rules.
+The first set view is all the terminals brought in from the rule's subrules.
+As other rules can be brought in due to closure, their subrules are added to the state.
+Now epsilon rules that start the subrule's symbol string
+are the camillions. They add their own teminals
+ to the first set but also disappear
+and allow their next right symbol to be included in the state.
+This is recursive as these partially consumed subrules are then evaluated
+as above.
+
+Below is my then thought process and its assumptions:\fbreak
+So what's the difference on k = 1 symbol lookahead? Epsilon rules.
+I do not pursue the lookahead terminal string that would be derived.
+For the record, this gets done when the {\bf follow set} of a
+symbol string is calculated.
+The First set of a rule is used with an epsilon check to determine whether
+the next symbol in the string should be followed.
+Why advance if it is an epsilon rule?
+Epsilon is like a window where u see past the rule into its neighbour's setting;
+one can view it another way, an epsilon rule plays 2 parts: it provides
+its first set and provides its to-its-right string.
+When the follow set calculation hits the end-of-the-string --- i call this right-bounded condition,
+the remaining follow set is found from the Follow set of its spawning rule(s).
+This is transitive as the spawning rule's follow set calculation could
+also hit the end-of-string condition.
+Now where are these follow set strings found? --- in the state that spawned them.
+Each state contains the rule's follow set graph.
+\fbreak
+\fbreak
+Definition of First set:\fbreak
+Terminals that start all substrings generated by the rule's productions.
+The grammar tree
+is walked in prefix formation accepting only ``rule-def'' followed by its
+``subrule-def'' terminals.
+Each rule within the grammar follows this pattern:
+ ie, the start-rule is the first to be evaluated.
+ Though it is never referenced in a subrule i still create its first set.
+\fbreak
+\fbreak
+The Algorithm.\fbreak
+ The grammar reads each individual rule-def and all its subrule-def(s).
+ Using its bottom-up recognition, |Rsubrule_def| adds the 1st element
+ of the subrule
+ into the |fs_list_|.
+ |Rrule| processes the |fs_list_|
+ as a closure-only state
+ generating the rule's first set.
+ In generating the first set, the elements in |fs_list_| are consumed
+ as they are evaluated by removal from the list.
+ Referenced terminals are added to the rule's
+ first set.
+ For 1st time referenced rules, their subrules are added at the end of |fs_list_|
+ for eventual consumption.
+ The neat thing about this algorithm is the 1st element in the |fs_list_| is
+ only visited!
+ It's a singular point of evaluation that is thrown out to be replaced by its
+ next in line element: ahh the bank queue and the teller.\fbreak
+ \fbreak
+ Due to |cweave| irregularities in formatting C++ code of this grammar,
+ please see |o2externs| documentation
+ where the routines |GEN_FS_OF_RULE| is coded an external
+to overcome this deficiency.
+@/
+
+fsm
+(fsm-id "first_set_rules.lex"
+,fsm-filename first_set_rules
+,fsm-namespace NS_first_set_rules
+,fsm-class Cfirst_set_rules{
+ user-prefix-declaration
+#include "o2_externs.h"
+ ***
+ user-declaration
+ public:
+ rule_def* rule_def_;
+ ***
+ op
+ rule_def_ = 0;
+ ***
+}
+,fsm-version "1.0",fsm-date "26 sept. 2005",fsm-debug "false"
+,fsm-comments "Determine first set per rule.")
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rfirst_set_rules
+(){
+ -> Rrules eog
+}
+
+Rrules (){
+ -> Rrule
+ -> Rrules Rrule
+}
+
+Rrule (){
+ -> Rrule_def {
+ op
+ Cfirst_set_rules* fsm = (Cfirst_set_rules*)rule_info__.parser__->fsm_tbl__;
+ GEN_FS_OF_RULE(fsm->rule_def_);
+ ***
+ }
+}
+
+Rrule_def (){
+ -> "rule-def" {
+ /@
+ Initialize for its subrule findings.
+ @/
+ op
+ Cfirst_set_rules* fsm = (Cfirst_set_rules*)rule_info__.parser__->fsm_tbl__;
+ fsm->rule_def_ = sf->p1__;
+ ***
+ }
+}
+
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/first_set_rulessym.cpp b/web/yacco2/compiler/grammars/first_set_rulessym.cpp
new file mode 100644
index 0000000000..fdde41f2d1
--- /dev/null
+++ b/web/yacco2/compiler/grammars/first_set_rulessym.cpp
@@ -0,0 +1,99 @@
+/*
+ File: first_set_rulessym.cpp
+ Date and Time: Fri Jan 30 18:55:11 2015
+*/
+#include "first_set_rules.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_first_set_rules;// grammar's ns
+// first set terminals
+// monolithic grammar --- no thread
+void
+Cfirst_set_rules::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rfirst_set_rules_:{
+ Rfirst_set_rules* sym;
+ if(re->rule_ == 0){
+ sym = new Rfirst_set_rules(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfirst_set_rules*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rrules_:{
+ Rrules* sym;
+ if(re->rule_ == 0){
+ sym = new Rrules(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrules*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rrules_:{
+ Rrules* sym;
+ if(re->rule_ == 0){
+ sym = new Rrules(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrules*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rrule_:{
+ Rrule* sym;
+ if(re->rule_ == 0){
+ sym = new Rrule(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrule*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rrule_def_:{
+ Rrule_def* sym;
+ if(re->rule_ == 0){
+ sym = new Rrule_def(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrule_def*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/first_set_rulestbl.cpp b/web/yacco2/compiler/grammars/first_set_rulestbl.cpp
new file mode 100644
index 0000000000..b9bce1c2f2
--- /dev/null
+++ b/web/yacco2/compiler/grammars/first_set_rulestbl.cpp
@@ -0,0 +1,137 @@
+/*
+ File: first_set_rulestbl.cpp
+ Date and Time: Fri Jan 30 18:55:11 2015
+*/
+#include "first_set_rules.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_first_set_rules;// grammar's ns
+// first set terminals
+// LR1_eog
+// rule_def
+yacco2::UCHAR LA1_Cfirst_set_rules[] ={
+2
+,0,2
+,42,16
+};
+// LR1_eolr
+yacco2::UCHAR LA2_Cfirst_set_rules[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Cfirst_set_rules;
+extern yacco2::State S2_Cfirst_set_rules;
+extern yacco2::State S3_Cfirst_set_rules;
+extern yacco2::State S4_Cfirst_set_rules;
+extern yacco2::State S5_Cfirst_set_rules;
+extern yacco2::State S6_Cfirst_set_rules;
+extern yacco2::State S7_Cfirst_set_rules;
+struct S1std_Cfirst_set_rules{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S1std_Cfirst_set_rules S1st_Cfirst_set_rules = {
+ 5
+ ,
+ {// start of table
+ {340,(State*)&S2_Cfirst_set_rules} // shift sym: rule_def
+ ,{569,(State*)&S1_Cfirst_set_rules} // accept sym: Rfirst_set_rules
+ ,{570,(State*)&S3_Cfirst_set_rules} // shift sym: Rrules
+ ,{571,(State*)&S7_Cfirst_set_rules} // shift sym: Rrule
+ ,{572,(State*)&S6_Cfirst_set_rules} // shift sym: Rrule_def
+ }// end of shift table
+};
+yacco2::State S1_Cfirst_set_rules = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Cfirst_set_rules,0,0,0,0};
+struct S2rtd_Cfirst_set_rules{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Cfirst_set_rules S2rt_Cfirst_set_rules = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cfirst_set_rules,Cfirst_set_rules::rhs1_Rrule_def_}
+ }// end of reduce table
+};
+yacco2::State S2_Cfirst_set_rules = //State's vectored into symbol: "rule-def"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Cfirst_set_rules,0,0,0};
+struct S3std_Cfirst_set_rules{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S3std_Cfirst_set_rules S3st_Cfirst_set_rules = {
+ 4
+ ,
+ {// start of table
+ {1,(State*)&S4_Cfirst_set_rules} // shift sym: LR1_eog
+ ,{340,(State*)&S2_Cfirst_set_rules} // shift sym: rule_def
+ ,{571,(State*)&S5_Cfirst_set_rules} // shift sym: Rrule
+ ,{572,(State*)&S6_Cfirst_set_rules} // shift sym: Rrule_def
+ }// end of shift table
+};
+yacco2::State S3_Cfirst_set_rules = //State's vectored into symbol: "Rrules"
+{3
+,0,0,0,0,(Shift_tbl*)&S3st_Cfirst_set_rules,0,0,0,0};
+struct S4rtd_Cfirst_set_rules{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Cfirst_set_rules S4rt_Cfirst_set_rules = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfirst_set_rules,Cfirst_set_rules::rhs1_Rfirst_set_rules_}
+ }// end of reduce table
+};
+yacco2::State S4_Cfirst_set_rules = //State's vectored into symbol: "eog"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Cfirst_set_rules,0,0,0};
+struct S5rtd_Cfirst_set_rules{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Cfirst_set_rules S5rt_Cfirst_set_rules = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cfirst_set_rules,Cfirst_set_rules::rhs2_Rrules_}
+ }// end of reduce table
+};
+yacco2::State S5_Cfirst_set_rules = //State's vectored into symbol: "Rrule"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Cfirst_set_rules,0,0,0};
+struct S6rtd_Cfirst_set_rules{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Cfirst_set_rules S6rt_Cfirst_set_rules = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cfirst_set_rules,Cfirst_set_rules::rhs1_Rrule_}
+ }// end of reduce table
+};
+yacco2::State S6_Cfirst_set_rules = //State's vectored into symbol: "Rrule_def"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Cfirst_set_rules,0,0,0};
+struct S7rtd_Cfirst_set_rules{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Cfirst_set_rules S7rt_Cfirst_set_rules = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cfirst_set_rules,Cfirst_set_rules::rhs1_Rrules_}
+ }// end of reduce table
+};
+yacco2::State S7_Cfirst_set_rules = //State's vectored into symbol: "Rrule"
+{7
+,0,0,0,0,0,(Reduce_tbl*)&S7rt_Cfirst_set_rules,0,0,0};
diff --git a/web/yacco2/compiler/grammars/fsc_file.cpp b/web/yacco2/compiler/grammars/fsc_file.cpp
new file mode 100644
index 0000000000..e4585d0f9b
--- /dev/null
+++ b/web/yacco2/compiler/grammars/fsc_file.cpp
@@ -0,0 +1,1227 @@
+/*
+ File: fsc_file.cpp
+ Date and Time: Fri Jan 30 18:55:11 2015
+*/
+#include "fsc_file.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_fsc_file;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 46;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[4] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[5] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[6] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[7] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[8] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[9] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[10] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[11] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[12] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[13] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[14] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[15] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[16] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[17] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[18] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[19] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[20] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[21] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[22] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[23] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[24] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[25] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[26] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[27] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[28] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[29] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[30] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[31] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[32] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[33] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[34] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[35] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[36] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[37] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[38] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[39] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[40] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[41] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[42] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[43] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[44] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[45] = new Per_rule_s_reuse_table();
+}
+ Cfsc_file::
+ Cfsc_file()
+ :yacco2::CAbs_fsm
+ ("fsc_file.lex"
+ ,"1.0"
+ ,"11 Mar 2005"
+ ,false
+ ,"\\Olinker's ``fsc'' control file parser."
+ ,"Fri Jan 30 18:55:11 2015 "
+ ,S1_Cfsc_file){
+
+ }
+
+Cfsc_file::~Cfsc_file(){
+
+ for(int x = 0;x < 46;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cfsc_file::failed(){
+ return false;
+ }
+ void Cfsc_file::op(){
+}
+int Cfsc_file::rhs_to_rules_mapping_[79] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,2 // subrule 3 for rule 3
+ ,2 // subrule 4 for rule 3
+ ,3 // subrule 5 for rule 4
+ ,3 // subrule 6 for rule 4
+ ,4 // subrule 7 for rule 5
+ ,5 // subrule 8 for rule 6
+ ,5 // subrule 9 for rule 6
+ ,6 // subrule 10 for rule 7
+ ,6 // subrule 11 for rule 7
+ ,7 // subrule 12 for rule 8
+ ,8 // subrule 13 for rule 9
+ ,8 // subrule 14 for rule 9
+ ,9 // subrule 15 for rule 10
+ ,9 // subrule 16 for rule 10
+ ,10 // subrule 17 for rule 11
+ ,11 // subrule 18 for rule 12
+ ,11 // subrule 19 for rule 12
+ ,12 // subrule 20 for rule 13
+ ,12 // subrule 21 for rule 13
+ ,13 // subrule 22 for rule 14
+ ,14 // subrule 23 for rule 15
+ ,14 // subrule 24 for rule 15
+ ,15 // subrule 25 for rule 16
+ ,15 // subrule 26 for rule 16
+ ,16 // subrule 27 for rule 17
+ ,17 // subrule 28 for rule 18
+ ,17 // subrule 29 for rule 18
+ ,18 // subrule 30 for rule 19
+ ,18 // subrule 31 for rule 19
+ ,19 // subrule 32 for rule 20
+ ,20 // subrule 33 for rule 21
+ ,20 // subrule 34 for rule 21
+ ,21 // subrule 35 for rule 22
+ ,21 // subrule 36 for rule 22
+ ,22 // subrule 37 for rule 23
+ ,23 // subrule 38 for rule 24
+ ,23 // subrule 39 for rule 24
+ ,24 // subrule 40 for rule 25
+ ,24 // subrule 41 for rule 25
+ ,25 // subrule 42 for rule 26
+ ,25 // subrule 43 for rule 26
+ ,26 // subrule 44 for rule 27
+ ,26 // subrule 45 for rule 27
+ ,27 // subrule 46 for rule 28
+ ,27 // subrule 47 for rule 28
+ ,28 // subrule 48 for rule 29
+ ,28 // subrule 49 for rule 29
+ ,29 // subrule 50 for rule 30
+ ,30 // subrule 51 for rule 31
+ ,30 // subrule 52 for rule 31
+ ,31 // subrule 53 for rule 32
+ ,31 // subrule 54 for rule 32
+ ,32 // subrule 55 for rule 33
+ ,32 // subrule 56 for rule 33
+ ,33 // subrule 57 for rule 34
+ ,33 // subrule 58 for rule 34
+ ,34 // subrule 59 for rule 35
+ ,34 // subrule 60 for rule 35
+ ,35 // subrule 61 for rule 36
+ ,35 // subrule 62 for rule 36
+ ,36 // subrule 63 for rule 37
+ ,37 // subrule 64 for rule 38
+ ,37 // subrule 65 for rule 38
+ ,38 // subrule 66 for rule 39
+ ,38 // subrule 67 for rule 39
+ ,39 // subrule 68 for rule 40
+ ,39 // subrule 69 for rule 40
+ ,40 // subrule 70 for rule 41
+ ,40 // subrule 71 for rule 41
+ ,41 // subrule 72 for rule 42
+ ,41 // subrule 73 for rule 42
+ ,42 // subrule 74 for rule 43
+ ,42 // subrule 75 for rule 43
+ ,43 // subrule 76 for rule 44
+ ,44 // subrule 77 for rule 45
+ ,45 // subrule 78 for rule 46
+};
+Rfsc_file::Rfsc_file(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfsc_file",0,Cfsc_file::R_Rfsc_file_,P,false,false){
+}
+
+void Rfsc_file::op(){
+ sstrace_rulesss
+
+ Cfsc_file* fsm = (Cfsc_file*) rule_info__.parser__->fsm_tbl__;
+ using namespace NS_yacco2_k_symbols;
+ int no_T = fsm->no_native_T_->no();
+ int sze_T = fsm->list_of_Ts_.size();
+ if(sze_T !=no_T){
+ CAbs_lr1_sym* sym = new Err_no_of_native_Ts_in_list_not_equal(sze_T);
+ sym->set_rc(*fsm->no_native_T_,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ return;
+ }
+ int no_th = fsm->no_threads_->no();
+ int sze_th = fsm->list_of_transitive_threads_.size();
+ if(sze_th != no_th){
+ CAbs_lr1_sym* sym = new Err_no_of_threads_in_list_not_equal(sze_th);
+ sym->set_rc(*fsm->no_threads_,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ return;
+ }
+ if(fsm->monolithic_ == 'n'){// pass epsilon pass thru: thread grammar only
+ if((no_T == 0) && (no_th == 0)){
+ CAbs_lr1_sym* sym = new Err_epsilon_pass_thru;
+ sym->set_rc(*fsm->no_native_T_,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ if((no_T == 1) && (no_th == 0)){
+ int transience = fsm->list_of_Ts_[0];
+ if(transience == 7){// \transienceoperator operator
+ CAbs_lr1_sym* sym = new Err_epsilon_pass_thru_no_Ts;
+ sym->set_rc(*fsm->no_native_T_,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ }
+ }
+
+ using namespace yacco2_stbl;
+ T_sym_tbl_report_card report_card;
+ find_sym_in_stbl(report_card,*fsm->fully_qualified_th_name_.c_str());
+ if(report_card.action_ == T_sym_tbl_report_card::fnd){// crted by another fsc file
+ if(report_card.tbl_entry_->defined_ == true){// probably dup fsc file
+ CAbs_lr1_sym* sym = new Err_already_defined_in_fsc_file;
+ sym->set_rc(*fsm->thread_name_,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ report_card.tbl_entry_->defined_ = true;
+ th_in_stbl* th_in_tbl = (th_in_stbl*)report_card.tbl_entry_->symbol_;
+ thread_attributes* th_entry = th_in_tbl->thread_in_stbl();
+ th_entry->transitive_ = fsm->transitive_;
+ th_entry->grammar_file_name_ = fsm->grammar_file_name_;
+ th_entry->name_space_name_ = fsm->name_space_name_;
+ th_entry->thread_name_ = fsm->thread_name_;
+ th_entry->monolithic_ = fsm->monolithic_;
+ th_entry->file_name_ = fsm->file_name_;
+ th_entry->fsm_comments_ = fsm->fsm_comments_;
+ if(!fsm->list_of_Ts_.empty())
+ copy(fsm->list_of_Ts_.begin()
+ ,fsm->list_of_Ts_.end()
+ ,back_inserter(th_entry->list_of_Ts_));
+ if(!fsm->list_of_transitive_threads_.empty())
+ copy(fsm->list_of_transitive_threads_.begin()
+ ,fsm->list_of_transitive_threads_.end()
+ ,back_inserter(th_entry->list_of_transitive_threads_));
+ return;
+ }
+ thread_attributes* th_id =
+ new thread_attributes(fsm->fully_qualified_th_name_.c_str()
+ ,fsm->transitive_
+ ,fsm->grammar_file_name_
+ ,fsm->name_space_name_
+ ,fsm->thread_name_
+ ,fsm->monolithic_
+ ,fsm->file_name_
+ ,fsm->list_of_Ts_
+ ,fsm->list_of_transitive_threads_
+ ,fsm->fsm_comments_);
+ th_in_stbl* t = new th_in_stbl(th_id);
+ add_sym_to_stbl(report_card
+ ,*fsm->fully_qualified_th_name_.c_str()
+ ,*t
+ ,table_entry::defed
+ ,table_entry::thread);
+ if(report_card.status_ != T_sym_tbl_report_card::okay){
+ t->stbl_idx(report_card.pos_);
+ report_card.err_entry_->set_rc(*th_id,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*report_card.err_entry_);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ GRAMMAR_DICTIONARY.push_back(report_card.tbl_entry_);
+ th_id->th_enum_ = GRAMMAR_DICTIONARY.size()-1;
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*yacco2::PTR_LR1_eog__);
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*yacco2::PTR_LR1_eog__);
+
+}
+Rtransitive_phrase::Rtransitive_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rtransitive_phrase",0,Cfsc_file::R_Rtransitive_phrase_,P,false,false){
+}
+
+Rtransitive::Rtransitive(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rtransitive",0,Cfsc_file::R_Rtransitive_,P,false,false){
+}
+
+void Rtransitive::sr2(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_transitive_kw_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rtransitive_value::Rtransitive_value(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rtransitive_value",0,Cfsc_file::R_Rtransitive_value_,P,false,false){
+}
+
+void Rtransitive_value::sr1(){
+ struct SF{
+ T_identifier* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cfsc_file* fsm = (Cfsc_file*) rule_info__.parser__->fsm_tbl__;
+ T_identifier* k = sf->p1__;
+ if(k->identifier()->size() != 1){
+ CAbs_lr1_sym* sym = new Err_transitive_value_bad;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ char c = (*k->identifier())[0];
+ if(c == 'n' || c == 'y'){
+ fsm->transitive_ = c;
+ return;
+ }
+ CAbs_lr1_sym* sym = new Err_transitive_value_bad;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rtransitive_value::sr2(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_transitive_value_bad;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rgrammar_name_phrase::Rgrammar_name_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rgrammar_name_phrase",0,Cfsc_file::R_Rgrammar_name_phrase_,P,false,false){
+}
+
+Rgrammar_name::Rgrammar_name(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rgrammar_name",0,Cfsc_file::R_Rgrammar_name_,P,false,false){
+}
+
+void Rgrammar_name::sr2(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_grammar_name_kw_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rgrammar_name_value::Rgrammar_name_value(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rgrammar_name_value",0,Cfsc_file::R_Rgrammar_name_value_,P,false,false){
+}
+
+void Rgrammar_name_value::sr1(){
+ struct SF{
+ T_c_string* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cfsc_file* fsm = (Cfsc_file*) rule_info__.parser__->fsm_tbl__;
+ fsm->grammar_file_name_ = sf->p1__;
+
+}
+
+void Rgrammar_name_value::sr2(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_grammar_name_value_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rnamespace_phrase::Rnamespace_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rnamespace_phrase",0,Cfsc_file::R_Rnamespace_phrase_,P,false,false){
+}
+
+Rnamespace::Rnamespace(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rnamespace",0,Cfsc_file::R_Rnamespace_,P,false,false){
+}
+
+void Rnamespace::sr2(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_namespace_kw_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rnamespace_value::Rnamespace_value(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rnamespace_value",0,Cfsc_file::R_Rnamespace_value_,P,false,false){
+}
+
+void Rnamespace_value::sr1(){
+ struct SF{
+ T_c_string* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cfsc_file* fsm = (Cfsc_file*) rule_info__.parser__->fsm_tbl__;
+ fsm->name_space_name_ = sf->p1__;
+
+}
+
+void Rnamespace_value::sr2(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_namespace_value_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rthreadname_phrase::Rthreadname_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rthreadname_phrase",0,Cfsc_file::R_Rthreadname_phrase_,P,false,false){
+}
+
+Rthreadname::Rthreadname(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rthreadname",0,Cfsc_file::R_Rthreadname_,P,false,false){
+}
+
+void Rthreadname::sr2(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_threadname_kw_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rthreadname_value::Rthreadname_value(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rthreadname_value",0,Cfsc_file::R_Rthreadname_value_,P,false,false){
+}
+
+void Rthreadname_value::sr1(){
+ struct SF{
+ T_c_string* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cfsc_file* fsm = (Cfsc_file*) rule_info__.parser__->fsm_tbl__;
+ fsm->thread_name_ = sf->p1__;
+ fsm->fully_qualified_th_name_+= fsm->name_space_name_->c_string()->c_str();
+ fsm->fully_qualified_th_name_ += "::";
+ fsm->fully_qualified_th_name_ += fsm->thread_name_->c_string()->c_str();
+ T_identifier* th_id = new T_identifier(fsm->fully_qualified_th_name_.c_str());
+ th_id->set_rc(*fsm->thread_name_,__FILE__,__LINE__);
+ string gnm(sf->p1__->c_string()->c_str());
+ USED_THREADS_LIST[gnm] = std::vector<string>();
+ std::map<std::string, std::vector<std::string> >::iterator i = USED_THREADS_LIST.find(gnm);
+ fsm->used_threads_ = &i->second;
+
+}
+
+void Rthreadname_value::sr2(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_threadname_value_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rmonolithic_phrase::Rmonolithic_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rmonolithic_phrase",0,Cfsc_file::R_Rmonolithic_phrase_,P,false,false){
+}
+
+Rmonolithic::Rmonolithic(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rmonolithic",0,Cfsc_file::R_Rmonolithic_,P,false,false){
+}
+
+void Rmonolithic::sr2(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_monolithic_kw_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rmonolithic_value::Rmonolithic_value(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rmonolithic_value",0,Cfsc_file::R_Rmonolithic_value_,P,false,false){
+}
+
+void Rmonolithic_value::sr1(){
+ struct SF{
+ T_identifier* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cfsc_file* fsm = (Cfsc_file*) rule_info__.parser__->fsm_tbl__;
+ T_identifier* k = sf->p1__;
+ if(k->identifier()->size() != 1){
+ CAbs_lr1_sym* sym = new Err_monolithic_value_bad;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ char c = (*k->identifier())[0];
+ if(c == 'n' || c == 'y'){
+ fsm->monolithic_ = c;
+ return;
+ }
+ CAbs_lr1_sym* sym = new Err_monolithic_value_bad;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rmonolithic_value::sr2(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_monolithic_value_bad;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rfilename_phrase::Rfilename_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfilename_phrase",0,Cfsc_file::R_Rfilename_phrase_,P,false,false){
+}
+
+Rfilename::Rfilename(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfilename",0,Cfsc_file::R_Rfilename_,P,false,false){
+}
+
+void Rfilename::sr2(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_filename_kw_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rfilename_value::Rfilename_value(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfilename_value",0,Cfsc_file::R_Rfilename_value_,P,false,false){
+}
+
+void Rfilename_value::sr1(){
+ struct SF{
+ T_c_string* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cfsc_file* fsm = (Cfsc_file*) rule_info__.parser__->fsm_tbl__;
+ fsm->file_name_ = sf->p1__;
+
+}
+
+void Rfilename_value::sr2(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_filename_value_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rno_of_T_phrase::Rno_of_T_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rno_of_T_phrase",0,Cfsc_file::R_Rno_of_T_phrase_,P,false,false){
+}
+
+Rno_of_T::Rno_of_T(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rno_of_T",0,Cfsc_file::R_Rno_of_T_,P,false,false){
+}
+
+void Rno_of_T::sr2(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_no_of_T_kw_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rno_of_T_value::Rno_of_T_value(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rno_of_T_value",0,Cfsc_file::R_Rno_of_T_value_,P,false,false){
+}
+
+void Rno_of_T_value::sr1(){
+ struct SF{
+ T_int_no* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cfsc_file* fsm = (Cfsc_file*) rule_info__.parser__->fsm_tbl__;
+ fsm->no_of_T_ = sf->p1__;
+ // not eq make as a warning but continue parsing
+ if(T_DICTIONARY.size() != sf->p1__->no()){
+ CAbs_lr1_sym* sym = new Err_bad_T_alphabet;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ }
+
+}
+
+void Rno_of_T_value::sr2(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_no_of_T_value_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rlist_of_native_terminals_phrase::Rlist_of_native_terminals_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlist_of_native_terminals_phrase",0,Cfsc_file::R_Rlist_of_native_terminals_phrase_,P,false,false){
+}
+
+Rlist_of_native_fset_terminals::Rlist_of_native_fset_terminals(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlist_of_native_fset_terminals",0,Cfsc_file::R_Rlist_of_native_fset_terminals_,P,false,false){
+}
+
+void Rlist_of_native_fset_terminals::sr2(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_list_of_terminals_kw_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rno_of_native_fset_terminals::Rno_of_native_fset_terminals(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rno_of_native_fset_terminals",0,Cfsc_file::R_Rno_of_native_fset_terminals_,P,false,false){
+}
+
+void Rno_of_native_fset_terminals::sr1(){
+ struct SF{
+ T_int_no* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cfsc_file* fsm = (Cfsc_file*) rule_info__.parser__->fsm_tbl__;
+ fsm->no_native_T_ = sf->p1__;
+
+}
+
+void Rno_of_native_fset_terminals::sr2(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_no_of_terminals_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rfset_terminals_epi::Rfset_terminals_epi(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfset_terminals_epi",0,Cfsc_file::R_Rfset_terminals_epi_,P,false,false){
+}
+
+Rfset_terminals::Rfset_terminals(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfset_terminals",0,Cfsc_file::R_Rfset_terminals_,P,false,false){
+}
+
+Ra_T::Ra_T(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Ra_T",0,Cfsc_file::R_Ra_T_,P,false,false){
+}
+
+void Ra_T::sr1(){
+ struct SF{
+ T_identifier* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ T_identifier* k = sf->p1__;
+ CAbs_lr1_sym* sym = new Err_bad_T_in_list;
+ sym->set_rc(*k,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Ra_T::sr2(){
+ struct SF{
+ tth_in_stbl* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cfsc_file* fsm = (Cfsc_file*) rule_info__.parser__->fsm_tbl__;
+ tth_in_stbl* k = sf->p1__;
+ T_attributes* T_att = k->t_in_stbl();
+ fsm->list_of_Ts_.push_back(T_att->T_enum_);
+
+}
+
+Rend_list_of_native_fset_terminals::Rend_list_of_native_fset_terminals(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rend_list_of_native_fset_terminals",0,Cfsc_file::R_Rend_list_of_native_fset_terminals_,P,false,false){
+}
+
+void Rend_list_of_native_fset_terminals::sr2(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_end_list_native_T_kw_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rlist_of_transitive_threads_phrase::Rlist_of_transitive_threads_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlist_of_transitive_threads_phrase",0,Cfsc_file::R_Rlist_of_transitive_threads_phrase_,P,false,false){
+}
+
+Rlist_of_transitive_threads::Rlist_of_transitive_threads(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlist_of_transitive_threads",0,Cfsc_file::R_Rlist_of_transitive_threads_,P,false,false){
+}
+
+void Rlist_of_transitive_threads::sr2(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_no_list_of_trans_threads_kw;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rno_of_transitive_threads::Rno_of_transitive_threads(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rno_of_transitive_threads",0,Cfsc_file::R_Rno_of_transitive_threads_,P,false,false){
+}
+
+void Rno_of_transitive_threads::sr1(){
+ struct SF{
+ T_int_no* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cfsc_file* fsm = (Cfsc_file*) rule_info__.parser__->fsm_tbl__;
+ fsm->no_threads_ = sf->p1__;
+
+}
+
+void Rno_of_transitive_threads::sr2(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_no_of_threads_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rtransitive_threads_epi::Rtransitive_threads_epi(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rtransitive_threads_epi",0,Cfsc_file::R_Rtransitive_threads_epi_,P,false,false){
+}
+
+Rtransitive_threads::Rtransitive_threads(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rtransitive_threads",0,Cfsc_file::R_Rtransitive_threads_,P,false,false){
+}
+
+Ra_th::Ra_th(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Ra_th",0,Cfsc_file::R_Ra_th_,P,false,false){
+}
+
+void Ra_th::sr1(){
+ struct SF{
+ T_identifier* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cfsc_file* fsm = (Cfsc_file*) rule_info__.parser__->fsm_tbl__;
+ T_identifier* k = sf->p1__;
+
+ using namespace yacco2_stbl;
+ T_sym_tbl_report_card report_card;
+ thread_attributes* th = new thread_attributes(k->identifier()->c_str());
+ th->set_rc(*k,__FILE__,__LINE__);
+ fsm->list_of_transitive_threads_.push_back(th);
+ th_in_stbl* t = new th_in_stbl(th);
+ add_sym_to_stbl(report_card
+ ,*k->identifier()->c_str()
+ ,*t
+ ,table_entry::used
+ ,table_entry::thread);
+ if(report_card.status_ != T_sym_tbl_report_card::okay){
+ t->stbl_idx(report_card.pos_);
+ report_card.err_entry_->set_rc(*k,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*report_card.err_entry_);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ GRAMMAR_DICTIONARY.push_back(report_card.tbl_entry_);
+ th->th_enum_ = GRAMMAR_DICTIONARY.size()-1;
+
+
+}
+
+void Ra_th::sr2(){
+ struct SF{
+ th_in_stbl* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cfsc_file* fsm = (Cfsc_file*) rule_info__.parser__->fsm_tbl__;
+ th_in_stbl* k = sf->p1__;
+ thread_attributes* th = k->thread_in_stbl();
+ fsm->list_of_transitive_threads_.push_back(th);
+
+ using namespace yacco2_stbl;
+ T_sym_tbl_report_card report_card;
+ find_sym_in_stbl(report_card,*th->fully_qualified_th_name_.c_str());
+ if(report_card.status_ != T_sym_tbl_report_card::okay){
+ report_card.err_entry_->set_rc(*k,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*report_card.err_entry_);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ if(report_card.action_ == T_sym_tbl_report_card::fnd){// crted by another fsc file
+ report_card.tbl_entry_->used_ = true;
+ return;
+ }
+ if(report_card.action_ == T_sym_tbl_report_card::not_fnd){
+ CAbs_lr1_sym* sym = new Err_no_sym_defs_present;
+ sym->set_rc(*k,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+
+}
+
+Rend_list_of_transitive_threads::Rend_list_of_transitive_threads(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rend_list_of_transitive_threads",0,Cfsc_file::R_Rend_list_of_transitive_threads_,P,false,false){
+}
+
+void Rend_list_of_transitive_threads::sr2(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_end_list_of_transitive_threads_kw_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rlist_of_used_threads_phrase::Rlist_of_used_threads_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlist_of_used_threads_phrase",0,Cfsc_file::R_Rlist_of_used_threads_phrase_,P,false,false){
+}
+
+Rlist_of_used_threads::Rlist_of_used_threads(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlist_of_used_threads",0,Cfsc_file::R_Rlist_of_used_threads_,P,false,false){
+}
+
+void Rlist_of_used_threads::sr2(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_no_list_of_trans_threads_kw;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rno_of_used_threads::Rno_of_used_threads(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rno_of_used_threads",0,Cfsc_file::R_Rno_of_used_threads_,P,false,false){
+}
+
+void Rno_of_used_threads::sr1(){
+ struct SF{
+ T_int_no* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cfsc_file* fsm = (Cfsc_file*) rule_info__.parser__->fsm_tbl__;
+ fsm->used_no_threads_ = sf->p1__;
+
+}
+
+void Rno_of_used_threads::sr2(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_no_of_threads_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rused_threads_epi::Rused_threads_epi(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rused_threads_epi",0,Cfsc_file::R_Rused_threads_epi_,P,false,false){
+}
+
+Rused_threads::Rused_threads(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rused_threads",0,Cfsc_file::R_Rused_threads_,P,false,false){
+}
+
+Rb_th::Rb_th(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rb_th",0,Cfsc_file::R_Rb_th_,P,false,false){
+}
+
+void Rb_th::sr1(){
+ struct SF{
+ T_identifier* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cfsc_file* fsm = (Cfsc_file*) rule_info__.parser__->fsm_tbl__;
+ T_identifier* k = sf->p1__;
+
+ using namespace yacco2_stbl;
+ T_sym_tbl_report_card report_card;
+ thread_attributes* th = new thread_attributes(k->identifier()->c_str());
+ th->set_rc(*k,__FILE__,__LINE__);
+ fsm->list_of_used_threads_.push_back(th);
+ std::string::size_type x = th->fully_qualified_th_name_.find("::");
+ string tnm;
+ string& fqn = th->fully_qualified_th_name_;
+ for(int xx=x+2;xx< fqn.size();++xx){
+ tnm += fqn[xx];
+ }
+ fsm->used_threads_->push_back(tnm);
+
+}
+
+void Rb_th::sr2(){
+ struct SF{
+ th_in_stbl* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cfsc_file* fsm = (Cfsc_file*) rule_info__.parser__->fsm_tbl__;
+ th_in_stbl* k = sf->p1__;
+ thread_attributes* th = k->thread_in_stbl();
+ fsm->list_of_used_threads_.push_back(th);
+ std::string::size_type x = th->fully_qualified_th_name_.find("::");
+ string tnm;
+ string& fqn = th->fully_qualified_th_name_;
+ for(int xx=x+2;xx< fqn.size();++xx){
+ tnm += fqn[xx];
+ }
+ fsm->used_threads_->push_back(tnm);
+
+}
+
+Rend_list_of_used_threads::Rend_list_of_used_threads(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rend_list_of_used_threads",0,Cfsc_file::R_Rend_list_of_used_threads_,P,false,false){
+}
+
+void Rend_list_of_used_threads::sr2(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_end_list_of_transitive_threads_kw_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rfsm_comments_phrase::Rfsm_comments_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfsm_comments_phrase",0,Cfsc_file::R_Rfsm_comments_phrase_,P,false,false){
+}
+
+Rfsm_comments::Rfsm_comments(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfsm_comments",0,Cfsc_file::R_Rfsm_comments_,P,false,false){
+}
+
+Rfsm_comments_value::Rfsm_comments_value(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfsm_comments_value",0,Cfsc_file::R_Rfsm_comments_value_,P,false,false){
+}
+
+void Rfsm_comments_value::sr1(){
+ struct SF{
+ T_c_string* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cfsc_file* fsm = (Cfsc_file*) rule_info__.parser__->fsm_tbl__;
+ fsm->fsm_comments_ = sf->p1__;
+
+}
+
diff --git a/web/yacco2/compiler/grammars/fsc_file.fsc b/web/yacco2/compiler/grammars/fsc_file.fsc
new file mode 100644
index 0000000000..d47651a325
--- /dev/null
+++ b/web/yacco2/compiler/grammars/fsc_file.fsc
@@ -0,0 +1,21 @@
+/*
+ File: fsc_file.fsc
+ Date and Time: Fri Jan 30 18:55:11 2015
+*/
+transitive n
+grammar-name "fsc_file"
+name-space "NS_fsc_file"
+thread-name "Cfsc_file"
+monolithic y
+file-name "fsc_file.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 2
+ LR1_questionable_shift_operator
+ T_transitive
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"\\Olinker's ``fsc'' control file parser."
diff --git a/web/yacco2/compiler/grammars/fsc_file.h b/web/yacco2/compiler/grammars/fsc_file.h
new file mode 100644
index 0000000000..abe990dbea
--- /dev/null
+++ b/web/yacco2/compiler/grammars/fsc_file.h
@@ -0,0 +1,507 @@
+/*
+ File: fsc_file.h
+ Date and Time: Fri Jan 30 18:55:11 2015
+*/
+#ifndef __fsc_file_h__
+#define __fsc_file_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "yacco2_stbl.h"
+extern std::vector<NS_yacco2_terminals::table_entry*> GRAMMAR_DICTIONARY;
+extern std::vector<NS_yacco2_terminals::table_entry*> T_DICTIONARY;
+extern std::map<std::string, std::vector<std::string> > USED_THREADS_LIST;
+
+// monolithic grammar: no thread
+extern yacco2::State S1_Cfsc_file;
+namespace NS_fsc_file {
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[46];
+};
+class Cfsc_file: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rfsc_file_ = 569//start_of_rule_list + 0
+ ,rhs1_Rfsc_file_ = 1
+ ,R_Rtransitive_phrase_ = 570//start_of_rule_list + 2
+ ,rhs1_Rtransitive_phrase_ = 2
+ ,R_Rtransitive_ = 571//start_of_rule_list + 4
+ ,rhs1_Rtransitive_ = 3
+ ,rhs2_Rtransitive_ = 4
+ ,R_Rtransitive_value_ = 572//start_of_rule_list + 6
+ ,rhs1_Rtransitive_value_ = 5
+ ,rhs2_Rtransitive_value_ = 6
+ ,R_Rgrammar_name_phrase_ = 573//start_of_rule_list + 8
+ ,rhs1_Rgrammar_name_phrase_ = 7
+ ,R_Rgrammar_name_ = 574//start_of_rule_list + 10
+ ,rhs1_Rgrammar_name_ = 8
+ ,rhs2_Rgrammar_name_ = 9
+ ,R_Rgrammar_name_value_ = 575//start_of_rule_list + 12
+ ,rhs1_Rgrammar_name_value_ = 10
+ ,rhs2_Rgrammar_name_value_ = 11
+ ,R_Rnamespace_phrase_ = 576//start_of_rule_list + 14
+ ,rhs1_Rnamespace_phrase_ = 12
+ ,R_Rnamespace_ = 577//start_of_rule_list + 16
+ ,rhs1_Rnamespace_ = 13
+ ,rhs2_Rnamespace_ = 14
+ ,R_Rnamespace_value_ = 578//start_of_rule_list + 18
+ ,rhs1_Rnamespace_value_ = 15
+ ,rhs2_Rnamespace_value_ = 16
+ ,R_Rthreadname_phrase_ = 579//start_of_rule_list + 20
+ ,rhs1_Rthreadname_phrase_ = 17
+ ,R_Rthreadname_ = 580//start_of_rule_list + 22
+ ,rhs1_Rthreadname_ = 18
+ ,rhs2_Rthreadname_ = 19
+ ,R_Rthreadname_value_ = 581//start_of_rule_list + 24
+ ,rhs1_Rthreadname_value_ = 20
+ ,rhs2_Rthreadname_value_ = 21
+ ,R_Rmonolithic_phrase_ = 582//start_of_rule_list + 26
+ ,rhs1_Rmonolithic_phrase_ = 22
+ ,R_Rmonolithic_ = 583//start_of_rule_list + 28
+ ,rhs1_Rmonolithic_ = 23
+ ,rhs2_Rmonolithic_ = 24
+ ,R_Rmonolithic_value_ = 584//start_of_rule_list + 30
+ ,rhs1_Rmonolithic_value_ = 25
+ ,rhs2_Rmonolithic_value_ = 26
+ ,R_Rfilename_phrase_ = 585//start_of_rule_list + 32
+ ,rhs1_Rfilename_phrase_ = 27
+ ,R_Rfilename_ = 586//start_of_rule_list + 34
+ ,rhs1_Rfilename_ = 28
+ ,rhs2_Rfilename_ = 29
+ ,R_Rfilename_value_ = 587//start_of_rule_list + 36
+ ,rhs1_Rfilename_value_ = 30
+ ,rhs2_Rfilename_value_ = 31
+ ,R_Rno_of_T_phrase_ = 588//start_of_rule_list + 38
+ ,rhs1_Rno_of_T_phrase_ = 32
+ ,R_Rno_of_T_ = 589//start_of_rule_list + 40
+ ,rhs1_Rno_of_T_ = 33
+ ,rhs2_Rno_of_T_ = 34
+ ,R_Rno_of_T_value_ = 590//start_of_rule_list + 42
+ ,rhs1_Rno_of_T_value_ = 35
+ ,rhs2_Rno_of_T_value_ = 36
+ ,R_Rlist_of_native_terminals_phrase_ = 591//start_of_rule_list + 44
+ ,rhs1_Rlist_of_native_terminals_phrase_ = 37
+ ,R_Rlist_of_native_fset_terminals_ = 592//start_of_rule_list + 46
+ ,rhs1_Rlist_of_native_fset_terminals_ = 38
+ ,rhs2_Rlist_of_native_fset_terminals_ = 39
+ ,R_Rno_of_native_fset_terminals_ = 593//start_of_rule_list + 48
+ ,rhs1_Rno_of_native_fset_terminals_ = 40
+ ,rhs2_Rno_of_native_fset_terminals_ = 41
+ ,R_Rfset_terminals_epi_ = 594//start_of_rule_list + 50
+ ,rhs1_Rfset_terminals_epi_ = 42
+ ,rhs2_Rfset_terminals_epi_ = 43
+ ,R_Rfset_terminals_ = 595//start_of_rule_list + 52
+ ,rhs1_Rfset_terminals_ = 44
+ ,rhs2_Rfset_terminals_ = 45
+ ,R_Ra_T_ = 596//start_of_rule_list + 54
+ ,rhs1_Ra_T_ = 46
+ ,rhs2_Ra_T_ = 47
+ ,R_Rend_list_of_native_fset_terminals_ = 597//start_of_rule_list + 56
+ ,rhs1_Rend_list_of_native_fset_terminals_ = 48
+ ,rhs2_Rend_list_of_native_fset_terminals_ = 49
+ ,R_Rlist_of_transitive_threads_phrase_ = 598//start_of_rule_list + 58
+ ,rhs1_Rlist_of_transitive_threads_phrase_ = 50
+ ,R_Rlist_of_transitive_threads_ = 599//start_of_rule_list + 60
+ ,rhs1_Rlist_of_transitive_threads_ = 51
+ ,rhs2_Rlist_of_transitive_threads_ = 52
+ ,R_Rno_of_transitive_threads_ = 600//start_of_rule_list + 62
+ ,rhs1_Rno_of_transitive_threads_ = 53
+ ,rhs2_Rno_of_transitive_threads_ = 54
+ ,R_Rtransitive_threads_epi_ = 601//start_of_rule_list + 64
+ ,rhs1_Rtransitive_threads_epi_ = 55
+ ,rhs2_Rtransitive_threads_epi_ = 56
+ ,R_Rtransitive_threads_ = 602//start_of_rule_list + 66
+ ,rhs1_Rtransitive_threads_ = 57
+ ,rhs2_Rtransitive_threads_ = 58
+ ,R_Ra_th_ = 603//start_of_rule_list + 68
+ ,rhs1_Ra_th_ = 59
+ ,rhs2_Ra_th_ = 60
+ ,R_Rend_list_of_transitive_threads_ = 604//start_of_rule_list + 70
+ ,rhs1_Rend_list_of_transitive_threads_ = 61
+ ,rhs2_Rend_list_of_transitive_threads_ = 62
+ ,R_Rlist_of_used_threads_phrase_ = 605//start_of_rule_list + 72
+ ,rhs1_Rlist_of_used_threads_phrase_ = 63
+ ,R_Rlist_of_used_threads_ = 606//start_of_rule_list + 74
+ ,rhs1_Rlist_of_used_threads_ = 64
+ ,rhs2_Rlist_of_used_threads_ = 65
+ ,R_Rno_of_used_threads_ = 607//start_of_rule_list + 76
+ ,rhs1_Rno_of_used_threads_ = 66
+ ,rhs2_Rno_of_used_threads_ = 67
+ ,R_Rused_threads_epi_ = 608//start_of_rule_list + 78
+ ,rhs1_Rused_threads_epi_ = 68
+ ,rhs2_Rused_threads_epi_ = 69
+ ,R_Rused_threads_ = 609//start_of_rule_list + 80
+ ,rhs1_Rused_threads_ = 70
+ ,rhs2_Rused_threads_ = 71
+ ,R_Rb_th_ = 610//start_of_rule_list + 82
+ ,rhs1_Rb_th_ = 72
+ ,rhs2_Rb_th_ = 73
+ ,R_Rend_list_of_used_threads_ = 611//start_of_rule_list + 84
+ ,rhs1_Rend_list_of_used_threads_ = 74
+ ,rhs2_Rend_list_of_used_threads_ = 75
+ ,R_Rfsm_comments_phrase_ = 612//start_of_rule_list + 86
+ ,rhs1_Rfsm_comments_phrase_ = 76
+ ,R_Rfsm_comments_ = 613//start_of_rule_list + 88
+ ,rhs1_Rfsm_comments_ = 77
+ ,R_Rfsm_comments_value_ = 614//start_of_rule_list + 90
+ ,rhs1_Rfsm_comments_value_ = 78
+ };
+ //no of la sets = 22
+ //no of states = 104
+ Cfsc_file();
+ ~Cfsc_file();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[79];
+
+ public:
+ std::string fully_qualified_th_name_;
+ char transitive_;
+ char monolithic_;
+ NS_yacco2_terminals::T_c_string* grammar_file_name_;
+ NS_yacco2_terminals::T_c_string* name_space_name_;
+ NS_yacco2_terminals::T_c_string* thread_name_;
+ NS_yacco2_terminals::T_c_string* file_name_;
+ NS_yacco2_terminals::T_c_string* fsm_comments_;
+ NS_yacco2_terminals::T_int_no* no_of_T_;
+ std::vector<int> list_of_Ts_;
+ NS_yacco2_terminals::T_int_no* no_native_T_;
+ std::vector<NS_yacco2_terminals::thread_attributes*> list_of_transitive_threads_;
+ std::vector<NS_yacco2_terminals::thread_attributes*> list_of_used_threads_;
+ NS_yacco2_terminals::T_int_no* no_threads_;
+ NS_yacco2_terminals::T_int_no* used_no_threads_;
+ std::vector<std::string>* used_threads_;
+
+ };
+struct Rfsc_file;
+struct Rtransitive_phrase;
+struct Rtransitive;
+struct Rtransitive_value;
+struct Rgrammar_name_phrase;
+struct Rgrammar_name;
+struct Rgrammar_name_value;
+struct Rnamespace_phrase;
+struct Rnamespace;
+struct Rnamespace_value;
+struct Rthreadname_phrase;
+struct Rthreadname;
+struct Rthreadname_value;
+struct Rmonolithic_phrase;
+struct Rmonolithic;
+struct Rmonolithic_value;
+struct Rfilename_phrase;
+struct Rfilename;
+struct Rfilename_value;
+struct Rno_of_T_phrase;
+struct Rno_of_T;
+struct Rno_of_T_value;
+struct Rlist_of_native_terminals_phrase;
+struct Rlist_of_native_fset_terminals;
+struct Rno_of_native_fset_terminals;
+struct Rfset_terminals_epi;
+struct Rfset_terminals;
+struct Ra_T;
+struct Rend_list_of_native_fset_terminals;
+struct Rlist_of_transitive_threads_phrase;
+struct Rlist_of_transitive_threads;
+struct Rno_of_transitive_threads;
+struct Rtransitive_threads_epi;
+struct Rtransitive_threads;
+struct Ra_th;
+struct Rend_list_of_transitive_threads;
+struct Rlist_of_used_threads_phrase;
+struct Rlist_of_used_threads;
+struct Rno_of_used_threads;
+struct Rused_threads_epi;
+struct Rused_threads;
+struct Rb_th;
+struct Rend_list_of_used_threads;
+struct Rfsm_comments_phrase;
+struct Rfsm_comments;
+struct Rfsm_comments_value;
+struct Rfsc_file:public yacco2::CAbs_lr1_sym {
+ Rfsc_file(yacco2::Parser* P);
+ void op();
+ public:
+};
+
+struct Rtransitive_phrase:public yacco2::CAbs_lr1_sym {
+ Rtransitive_phrase(yacco2::Parser* P);
+ public:
+};
+
+struct Rtransitive:public yacco2::CAbs_lr1_sym {
+ Rtransitive(yacco2::Parser* P);
+ public:
+ void sr2();
+};
+
+struct Rtransitive_value:public yacco2::CAbs_lr1_sym {
+ Rtransitive_value(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rgrammar_name_phrase:public yacco2::CAbs_lr1_sym {
+ Rgrammar_name_phrase(yacco2::Parser* P);
+ public:
+};
+
+struct Rgrammar_name:public yacco2::CAbs_lr1_sym {
+ Rgrammar_name(yacco2::Parser* P);
+ public:
+ void sr2();
+};
+
+struct Rgrammar_name_value:public yacco2::CAbs_lr1_sym {
+ Rgrammar_name_value(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rnamespace_phrase:public yacco2::CAbs_lr1_sym {
+ Rnamespace_phrase(yacco2::Parser* P);
+ public:
+};
+
+struct Rnamespace:public yacco2::CAbs_lr1_sym {
+ Rnamespace(yacco2::Parser* P);
+ public:
+ void sr2();
+};
+
+struct Rnamespace_value:public yacco2::CAbs_lr1_sym {
+ Rnamespace_value(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rthreadname_phrase:public yacco2::CAbs_lr1_sym {
+ Rthreadname_phrase(yacco2::Parser* P);
+ public:
+};
+
+struct Rthreadname:public yacco2::CAbs_lr1_sym {
+ Rthreadname(yacco2::Parser* P);
+ public:
+ void sr2();
+};
+
+struct Rthreadname_value:public yacco2::CAbs_lr1_sym {
+ Rthreadname_value(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rmonolithic_phrase:public yacco2::CAbs_lr1_sym {
+ Rmonolithic_phrase(yacco2::Parser* P);
+ public:
+};
+
+struct Rmonolithic:public yacco2::CAbs_lr1_sym {
+ Rmonolithic(yacco2::Parser* P);
+ public:
+ void sr2();
+};
+
+struct Rmonolithic_value:public yacco2::CAbs_lr1_sym {
+ Rmonolithic_value(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rfilename_phrase:public yacco2::CAbs_lr1_sym {
+ Rfilename_phrase(yacco2::Parser* P);
+ public:
+};
+
+struct Rfilename:public yacco2::CAbs_lr1_sym {
+ Rfilename(yacco2::Parser* P);
+ public:
+ void sr2();
+};
+
+struct Rfilename_value:public yacco2::CAbs_lr1_sym {
+ Rfilename_value(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rno_of_T_phrase:public yacco2::CAbs_lr1_sym {
+ Rno_of_T_phrase(yacco2::Parser* P);
+ public:
+};
+
+struct Rno_of_T:public yacco2::CAbs_lr1_sym {
+ Rno_of_T(yacco2::Parser* P);
+ public:
+ void sr2();
+};
+
+struct Rno_of_T_value:public yacco2::CAbs_lr1_sym {
+ Rno_of_T_value(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rlist_of_native_terminals_phrase:public yacco2::CAbs_lr1_sym {
+ Rlist_of_native_terminals_phrase(yacco2::Parser* P);
+ public:
+};
+
+struct Rlist_of_native_fset_terminals:public yacco2::CAbs_lr1_sym {
+ Rlist_of_native_fset_terminals(yacco2::Parser* P);
+ public:
+ void sr2();
+};
+
+struct Rno_of_native_fset_terminals:public yacco2::CAbs_lr1_sym {
+ Rno_of_native_fset_terminals(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rfset_terminals_epi:public yacco2::CAbs_lr1_sym {
+ Rfset_terminals_epi(yacco2::Parser* P);
+ public:
+};
+
+struct Rfset_terminals:public yacco2::CAbs_lr1_sym {
+ Rfset_terminals(yacco2::Parser* P);
+ public:
+};
+
+struct Ra_T:public yacco2::CAbs_lr1_sym {
+ Ra_T(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rend_list_of_native_fset_terminals:public yacco2::CAbs_lr1_sym {
+ Rend_list_of_native_fset_terminals(yacco2::Parser* P);
+ public:
+ void sr2();
+};
+
+struct Rlist_of_transitive_threads_phrase:public yacco2::CAbs_lr1_sym {
+ Rlist_of_transitive_threads_phrase(yacco2::Parser* P);
+ public:
+};
+
+struct Rlist_of_transitive_threads:public yacco2::CAbs_lr1_sym {
+ Rlist_of_transitive_threads(yacco2::Parser* P);
+ public:
+ void sr2();
+};
+
+struct Rno_of_transitive_threads:public yacco2::CAbs_lr1_sym {
+ Rno_of_transitive_threads(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rtransitive_threads_epi:public yacco2::CAbs_lr1_sym {
+ Rtransitive_threads_epi(yacco2::Parser* P);
+ public:
+};
+
+struct Rtransitive_threads:public yacco2::CAbs_lr1_sym {
+ Rtransitive_threads(yacco2::Parser* P);
+ public:
+};
+
+struct Ra_th:public yacco2::CAbs_lr1_sym {
+ Ra_th(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rend_list_of_transitive_threads:public yacco2::CAbs_lr1_sym {
+ Rend_list_of_transitive_threads(yacco2::Parser* P);
+ public:
+ void sr2();
+};
+
+struct Rlist_of_used_threads_phrase:public yacco2::CAbs_lr1_sym {
+ Rlist_of_used_threads_phrase(yacco2::Parser* P);
+ public:
+};
+
+struct Rlist_of_used_threads:public yacco2::CAbs_lr1_sym {
+ Rlist_of_used_threads(yacco2::Parser* P);
+ public:
+ void sr2();
+};
+
+struct Rno_of_used_threads:public yacco2::CAbs_lr1_sym {
+ Rno_of_used_threads(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rused_threads_epi:public yacco2::CAbs_lr1_sym {
+ Rused_threads_epi(yacco2::Parser* P);
+ public:
+};
+
+struct Rused_threads:public yacco2::CAbs_lr1_sym {
+ Rused_threads(yacco2::Parser* P);
+ public:
+};
+
+struct Rb_th:public yacco2::CAbs_lr1_sym {
+ Rb_th(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rend_list_of_used_threads:public yacco2::CAbs_lr1_sym {
+ Rend_list_of_used_threads(yacco2::Parser* P);
+ public:
+ void sr2();
+};
+
+struct Rfsm_comments_phrase:public yacco2::CAbs_lr1_sym {
+ Rfsm_comments_phrase(yacco2::Parser* P);
+ public:
+};
+
+struct Rfsm_comments:public yacco2::CAbs_lr1_sym {
+ Rfsm_comments(yacco2::Parser* P);
+ public:
+};
+
+struct Rfsm_comments_value:public yacco2::CAbs_lr1_sym {
+ Rfsm_comments_value(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/fsc_file.lex b/web/yacco2/compiler/grammars/fsc_file.lex
new file mode 100644
index 0000000000..e386257c88
--- /dev/null
+++ b/web/yacco2/compiler/grammars/fsc_file.lex
@@ -0,0 +1,782 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: fsc_file.lex
+dates: 11 mar. 2005
+Purpose: grammar's fsc file syntax
+ puts grammar's attributes into yacco2's symbol table
+ and into a global dictionary of threads for consolidated processing.
+Note: use of |?| to trap errors: even overruns.
+Possible Errors:
+Err_no_of_native_Ts_in_list_not_equal LR1_err_no_of_threads_in_list_not_equal
+Err_epsilon_pass_thru LR1_err_epsilon_pass_thru_no_Ts
+Err_already_defined_in_fsc_file
+Err_transitive_kw_not_present LR1_err_transitive_value_bad
+symbol table errors
+
+Err_grammar_name_kw_not_present LR1_err_grammar_name_value_not_present
+Err_namespace_kw_not_present LR1_err_namespace_value_not_present
+Err_threadname_kw_not_present LR1_err_threadname_value_not_present
+Err_monolithic_kw_not_present LR1_err_monolithic_value_bad
+Err_filename_kw_not_present LR1_err_filename_value_not_present
+Err_no_of_T_kw_not_present LR1_err_no_of_T_does_not_match_T_alphabet
+Err_no_of_T_value_not_present LR1_err_list_of_terminals_kw_not_present
+Err_no_of_terminals_not_present
+Err_bad_T_in_list LR1_err_end_list_native_T_kw_not_present
+Err_list_of_transitive_threads_kw_not_present
+Err_no_of_threads_not_present
+Err_no_sym_defs_present LR1_err_end_list_of_transitive_threads_kw_not_present
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |fsc_file| stand alone Grammar.\fbreak
+Parses the ``first set control'' files outputed from each grammar.
+This is the fodder of \O2's linker to generate the first sets per thread.
+It puts the grammar's attributes into yacco2's symbol table
+and into a global dictionary of threads for consolidation processing.
+See \O2{}linker documentation on the real lowdown.\fbreak
+\fbreak
+\fbreak
+Linker's control language.\fbreak
+\let\setuplistinghook = \relax
+\listing{"/usr/local/yacco2/diagrams+etc/intro4.txt"}
+\fbreak
+@/
+fsm
+(fsm-id "fsc_file.lex",fsm-filename fsc_file,fsm-namespace NS_fsc_file
+,fsm-class Cfsc_file{
+ user-prefix-declaration
+#include "yacco2_stbl.h"
+extern std::vector<NS_yacco2_terminals::table_entry*> GRAMMAR_DICTIONARY;
+extern std::vector<NS_yacco2_terminals::table_entry*> T_DICTIONARY;
+extern std::map<std::string, std::vector<std::string> > USED_THREADS_LIST;
+ ***
+ user-declaration
+ public:
+ std::string fully_qualified_th_name_;
+ char transitive_;
+ char monolithic_;
+ NS_yacco2_terminals::T_c_string* grammar_file_name_;
+ NS_yacco2_terminals::T_c_string* name_space_name_;
+ NS_yacco2_terminals::T_c_string* thread_name_;
+ NS_yacco2_terminals::T_c_string* file_name_;
+ NS_yacco2_terminals::T_c_string* fsm_comments_;
+ NS_yacco2_terminals::T_int_no* no_of_T_;
+ std::vector<int> list_of_Ts_;
+ NS_yacco2_terminals::T_int_no* no_native_T_;
+ std::vector<NS_yacco2_terminals::thread_attributes*> list_of_transitive_threads_;
+ std::vector<NS_yacco2_terminals::thread_attributes*> list_of_used_threads_;
+ NS_yacco2_terminals::T_int_no* no_threads_;
+ NS_yacco2_terminals::T_int_no* used_no_threads_;
+ std::vector<std::string>* used_threads_;
+ ***
+}
+,fsm-version "1.0",fsm-date "11 Mar 2005",fsm-debug "false"
+,fsm-comments "\\Olinker's ``fsc'' control file parser.")
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rfsc_file (
+lhs{
+ op
+ Cfsc_file* fsm = (Cfsc_file*) rule_info__.parser__->fsm_tbl__;
+ using namespace NS_yacco2_k_symbols;
+ int no_T = fsm->no_native_T_->no();
+ int sze_T = fsm->list_of_Ts_.size();
+ if(sze_T !=no_T){
+ CAbs_lr1_sym* sym = new Err_no_of_native_Ts_in_list_not_equal(sze_T);
+ sym->set_rc(*fsm->no_native_T_,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ return;
+ }
+ int no_th = fsm->no_threads_->no();
+ int sze_th = fsm->list_of_transitive_threads_.size();
+ if(sze_th != no_th){
+ CAbs_lr1_sym* sym = new Err_no_of_threads_in_list_not_equal(sze_th);
+ sym->set_rc(*fsm->no_threads_,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ return;
+ }
+ if(fsm->monolithic_ == 'n'){// pass epsilon pass thru: thread grammar only
+ if((no_T == 0) && (no_th == 0)){
+ CAbs_lr1_sym* sym = new Err_epsilon_pass_thru;
+ sym->set_rc(*fsm->no_native_T_,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ if((no_T == 1) && (no_th == 0)){
+ int transience = fsm->list_of_Ts_[0];
+ if(transience == 7){// \transienceoperator operator
+ CAbs_lr1_sym* sym = new Err_epsilon_pass_thru_no_Ts;
+ sym->set_rc(*fsm->no_native_T_,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ }
+ }
+
+ using namespace yacco2_stbl;
+ T_sym_tbl_report_card report_card;
+ find_sym_in_stbl(report_card,*fsm->fully_qualified_th_name_.c_str());
+ if(report_card.action_ == T_sym_tbl_report_card::fnd){// crted by another fsc file
+ if(report_card.tbl_entry_->defined_ == true){// probably dup fsc file
+ CAbs_lr1_sym* sym = new Err_already_defined_in_fsc_file;
+ sym->set_rc(*fsm->thread_name_,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ report_card.tbl_entry_->defined_ = true;
+ th_in_stbl* th_in_tbl = (th_in_stbl*)report_card.tbl_entry_->symbol_;
+ thread_attributes* th_entry = th_in_tbl->thread_in_stbl();
+ th_entry->transitive_ = fsm->transitive_;
+ th_entry->grammar_file_name_ = fsm->grammar_file_name_;
+ th_entry->name_space_name_ = fsm->name_space_name_;
+ th_entry->thread_name_ = fsm->thread_name_;
+ th_entry->monolithic_ = fsm->monolithic_;
+ th_entry->file_name_ = fsm->file_name_;
+ th_entry->fsm_comments_ = fsm->fsm_comments_;
+ if(!fsm->list_of_Ts_.empty())
+ copy(fsm->list_of_Ts_.begin()
+ ,fsm->list_of_Ts_.end()
+ ,back_inserter(th_entry->list_of_Ts_));
+ if(!fsm->list_of_transitive_threads_.empty())
+ copy(fsm->list_of_transitive_threads_.begin()
+ ,fsm->list_of_transitive_threads_.end()
+ ,back_inserter(th_entry->list_of_transitive_threads_));
+ return;
+ }
+ thread_attributes* th_id =
+ new thread_attributes(fsm->fully_qualified_th_name_.c_str()
+ ,fsm->transitive_
+ ,fsm->grammar_file_name_
+ ,fsm->name_space_name_
+ ,fsm->thread_name_
+ ,fsm->monolithic_
+ ,fsm->file_name_
+ ,fsm->list_of_Ts_
+ ,fsm->list_of_transitive_threads_
+ ,fsm->fsm_comments_);
+ th_in_stbl* t = new th_in_stbl(th_id);
+ add_sym_to_stbl(report_card
+ ,*fsm->fully_qualified_th_name_.c_str()
+ ,*t
+ ,table_entry::defed
+ ,table_entry::thread);
+ if(report_card.status_ != T_sym_tbl_report_card::okay){
+ t->stbl_idx(report_card.pos_);
+ report_card.err_entry_->set_rc(*th_id,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*report_card.err_entry_);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ GRAMMAR_DICTIONARY.push_back(report_card.tbl_entry_);
+ th_id->th_enum_ = GRAMMAR_DICTIONARY.size()-1;
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*yacco2::PTR_LR1_eog__);
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*yacco2::PTR_LR1_eog__);
+ ***
+ }
+){
+ -> Rtransitive_phrase
+ Rgrammar_name_phrase
+ Rnamespace_phrase
+ Rthreadname_phrase
+ Rmonolithic_phrase
+ Rfilename_phrase
+ Rno_of_T_phrase
+ Rlist_of_native_terminals_phrase
+ Rlist_of_transitive_threads_phrase
+ Rlist_of_used_threads_phrase
+ Rfsm_comments_phrase
+ eog
+}
+
+Rtransitive_phrase (){
+ -> Rtransitive Rtransitive_value
+}
+Rtransitive (){
+ -> "transitive"
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_transitive_kw_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rtransitive_value (){
+ -> identifier {
+ op
+ Cfsc_file* fsm = (Cfsc_file*) rule_info__.parser__->fsm_tbl__;
+ T_identifier* k = sf->p1__;
+ if(k->identifier()->size() != 1){
+ CAbs_lr1_sym* sym = new Err_transitive_value_bad;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ char c = (*k->identifier())[0];
+ if(c == 'n' || c == 'y'){
+ fsm->transitive_ = c;
+ return;
+ }
+ CAbs_lr1_sym* sym = new Err_transitive_value_bad;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_transitive_value_bad;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rgrammar_name_phrase (){
+ -> Rgrammar_name Rgrammar_name_value
+}
+
+Rgrammar_name (){
+ -> "grammar-name"
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_grammar_name_kw_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rgrammar_name_value (){
+ -> "c-string" {
+ op
+ Cfsc_file* fsm = (Cfsc_file*) rule_info__.parser__->fsm_tbl__;
+ fsm->grammar_file_name_ = sf->p1__;
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_grammar_name_value_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rnamespace_phrase (){
+ -> Rnamespace Rnamespace_value
+}
+
+Rnamespace (){
+ -> "#name-space"
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_namespace_kw_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rnamespace_value (){
+ -> "c-string" {
+ op
+ Cfsc_file* fsm = (Cfsc_file*) rule_info__.parser__->fsm_tbl__;
+ fsm->name_space_name_ = sf->p1__;
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_namespace_value_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rthreadname_phrase (){
+ -> Rthreadname Rthreadname_value
+}
+
+Rthreadname (){
+ -> "thread-name"
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_threadname_kw_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rthreadname_value (){
+ -> "c-string" {
+ op
+ Cfsc_file* fsm = (Cfsc_file*) rule_info__.parser__->fsm_tbl__;
+ fsm->thread_name_ = sf->p1__;
+ fsm->fully_qualified_th_name_+= fsm->name_space_name_->c_string()->c_str();
+ fsm->fully_qualified_th_name_ += "::";
+ fsm->fully_qualified_th_name_ += fsm->thread_name_->c_string()->c_str();
+ T_identifier* th_id = new T_identifier(fsm->fully_qualified_th_name_.c_str());
+ th_id->set_rc(*fsm->thread_name_,__FILE__,__LINE__);
+ string gnm(sf->p1__->c_string()->c_str());
+ USED_THREADS_LIST[gnm] = std::vector<string>();
+ std::map<std::string, std::vector<std::string> >::iterator i = USED_THREADS_LIST.find(gnm);
+ fsm->used_threads_ = &i->second;
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_threadname_value_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rmonolithic_phrase (){
+ -> Rmonolithic Rmonolithic_value
+}
+
+Rmonolithic (){
+ -> "monolithic"
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_monolithic_kw_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rmonolithic_value (){
+ -> identifier {
+ op
+ Cfsc_file* fsm = (Cfsc_file*) rule_info__.parser__->fsm_tbl__;
+ T_identifier* k = sf->p1__;
+ if(k->identifier()->size() != 1){
+ CAbs_lr1_sym* sym = new Err_monolithic_value_bad;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ char c = (*k->identifier())[0];
+ if(c == 'n' || c == 'y'){
+ fsm->monolithic_ = c;
+ return;
+ }
+ CAbs_lr1_sym* sym = new Err_monolithic_value_bad;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_monolithic_value_bad;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rfilename_phrase (){
+ -> Rfilename Rfilename_value
+}
+
+Rfilename (){
+ -> "#file-name"
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_filename_kw_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rfilename_value (){
+ -> "c-string" {
+ op
+ Cfsc_file* fsm = (Cfsc_file*) rule_info__.parser__->fsm_tbl__;
+ fsm->file_name_ = sf->p1__;
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_filename_value_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rno_of_T_phrase (){
+ -> Rno_of_T Rno_of_T_value
+}
+
+Rno_of_T (){
+ -> "no-of-T"
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_of_T_kw_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rno_of_T_value (){
+ -> "int-no" {
+ op
+ Cfsc_file* fsm = (Cfsc_file*) rule_info__.parser__->fsm_tbl__;
+ fsm->no_of_T_ = sf->p1__;
+ // not eq make as a warning but continue parsing
+ if(T_DICTIONARY.size() != sf->p1__->no()){
+ CAbs_lr1_sym* sym = new Err_bad_T_alphabet;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ }
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_of_T_value_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rlist_of_native_terminals_phrase (){
+ -> Rlist_of_native_fset_terminals
+ Rno_of_native_fset_terminals
+ Rfset_terminals_epi
+ Rend_list_of_native_fset_terminals
+}
+
+Rlist_of_native_fset_terminals (){
+ -> "list-of-native-first-set-terminals"
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_list_of_terminals_kw_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rno_of_native_fset_terminals (){
+ -> "int-no" {
+ op
+ Cfsc_file* fsm = (Cfsc_file*) rule_info__.parser__->fsm_tbl__;
+ fsm->no_native_T_ = sf->p1__;
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_of_terminals_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rfset_terminals_epi (){
+ -> Rfset_terminals
+ ->
+}
+
+Rfset_terminals (){
+ -> Ra_T
+ -> Rfset_terminals Ra_T
+}
+
+Ra_T (){
+ -> identifier{
+ op
+ T_identifier* k = sf->p1__;
+ CAbs_lr1_sym* sym = new Err_bad_T_in_list;
+ sym->set_rc(*k,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> "tth-in-stbl" {
+ op
+ Cfsc_file* fsm = (Cfsc_file*) rule_info__.parser__->fsm_tbl__;
+ tth_in_stbl* k = sf->p1__;
+ T_attributes* T_att = k->t_in_stbl();
+ fsm->list_of_Ts_.push_back(T_att->T_enum_);
+ ***
+ }
+}
+
+Rend_list_of_native_fset_terminals (){
+ -> "end-list-of-native-first-set-terminals"
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_end_list_native_T_kw_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rlist_of_transitive_threads_phrase (){
+ -> Rlist_of_transitive_threads
+ Rno_of_transitive_threads
+ Rtransitive_threads_epi
+ Rend_list_of_transitive_threads
+}
+
+Rlist_of_transitive_threads (){
+ -> "list-of-transitive-threads"
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_list_of_trans_threads_kw;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rno_of_transitive_threads (){
+ -> "int-no" {
+ op
+ Cfsc_file* fsm = (Cfsc_file*) rule_info__.parser__->fsm_tbl__;
+ fsm->no_threads_ = sf->p1__;
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_of_threads_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rtransitive_threads_epi (){
+ -> Rtransitive_threads
+ ->
+}
+
+Rtransitive_threads (){
+ -> Ra_th
+ -> Rtransitive_threads Ra_th
+}
+
+Ra_th (){
+ -> identifier{
+ op
+ Cfsc_file* fsm = (Cfsc_file*) rule_info__.parser__->fsm_tbl__;
+ T_identifier* k = sf->p1__;
+
+ using namespace yacco2_stbl;
+ T_sym_tbl_report_card report_card;
+ thread_attributes* th = new thread_attributes(k->identifier()->c_str());
+ th->set_rc(*k,__FILE__,__LINE__);
+ fsm->list_of_transitive_threads_.push_back(th);
+ th_in_stbl* t = new th_in_stbl(th);
+ add_sym_to_stbl(report_card
+ ,*k->identifier()->c_str()
+ ,*t
+ ,table_entry::used
+ ,table_entry::thread);
+ if(report_card.status_ != T_sym_tbl_report_card::okay){
+ t->stbl_idx(report_card.pos_);
+ report_card.err_entry_->set_rc(*k,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*report_card.err_entry_);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ GRAMMAR_DICTIONARY.push_back(report_card.tbl_entry_);
+ th->th_enum_ = GRAMMAR_DICTIONARY.size()-1;
+
+ ***
+ }
+ -> "th-in-stbl"{
+ op
+ Cfsc_file* fsm = (Cfsc_file*) rule_info__.parser__->fsm_tbl__;
+ th_in_stbl* k = sf->p1__;
+ thread_attributes* th = k->thread_in_stbl();
+ fsm->list_of_transitive_threads_.push_back(th);
+
+ using namespace yacco2_stbl;
+ T_sym_tbl_report_card report_card;
+ find_sym_in_stbl(report_card,*th->fully_qualified_th_name_.c_str());
+ if(report_card.status_ != T_sym_tbl_report_card::okay){
+ report_card.err_entry_->set_rc(*k,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*report_card.err_entry_);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ if(report_card.action_ == T_sym_tbl_report_card::fnd){// crted by another fsc file
+ report_card.tbl_entry_->used_ = true;
+ return;
+ }
+ if(report_card.action_ == T_sym_tbl_report_card::not_fnd){
+ CAbs_lr1_sym* sym = new Err_no_sym_defs_present;
+ sym->set_rc(*k,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ ***
+ }
+}
+
+Rend_list_of_transitive_threads (){
+ -> "end-list-of-transitive-threads"
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_end_list_of_transitive_threads_kw_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+Rlist_of_used_threads_phrase (){
+ -> Rlist_of_used_threads
+ Rno_of_used_threads
+ Rused_threads_epi
+ Rend_list_of_used_threads
+}
+
+Rlist_of_used_threads (){
+ -> "list-of-used-threads"
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_list_of_trans_threads_kw;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rno_of_used_threads (){
+ -> "int-no" {
+ op
+ Cfsc_file* fsm = (Cfsc_file*) rule_info__.parser__->fsm_tbl__;
+ fsm->used_no_threads_ = sf->p1__;
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_of_threads_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rused_threads_epi (){
+ -> Rused_threads
+ ->
+}
+
+Rused_threads (){
+ -> Rb_th
+ -> Rused_threads Rb_th
+}
+
+Rb_th (){
+ -> identifier{
+ op
+ Cfsc_file* fsm = (Cfsc_file*) rule_info__.parser__->fsm_tbl__;
+ T_identifier* k = sf->p1__;
+
+ using namespace yacco2_stbl;
+ T_sym_tbl_report_card report_card;
+ thread_attributes* th = new thread_attributes(k->identifier()->c_str());
+ th->set_rc(*k,__FILE__,__LINE__);
+ fsm->list_of_used_threads_.push_back(th);
+ std::string::size_type x = th->fully_qualified_th_name_.find("::");
+ string tnm;
+ string& fqn = th->fully_qualified_th_name_;
+ for(int xx=x+2;xx< fqn.size();++xx){
+ tnm += fqn[xx];
+ }
+ fsm->used_threads_->push_back(tnm);
+ ***
+ }
+ -> "th-in-stbl"{
+ op
+ Cfsc_file* fsm = (Cfsc_file*) rule_info__.parser__->fsm_tbl__;
+ th_in_stbl* k = sf->p1__;
+ thread_attributes* th = k->thread_in_stbl();
+ fsm->list_of_used_threads_.push_back(th);
+ std::string::size_type x = th->fully_qualified_th_name_.find("::");
+ string tnm;
+ string& fqn = th->fully_qualified_th_name_;
+ for(int xx=x+2;xx< fqn.size();++xx){
+ tnm += fqn[xx];
+ }
+ fsm->used_threads_->push_back(tnm);
+ ***
+ }
+}
+
+Rend_list_of_used_threads (){
+ -> "end-list-of-used-threads"
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_end_list_of_transitive_threads_kw_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rfsm_comments_phrase (){
+ -> Rfsm_comments Rfsm_comments_value
+}
+Rfsm_comments (){
+ -> "#fsm-comments"
+}
+Rfsm_comments_value (){
+ -> "c-string" {// drain the comment swamp
+ op
+ Cfsc_file* fsm = (Cfsc_file*) rule_info__.parser__->fsm_tbl__;
+ fsm->fsm_comments_ = sf->p1__;
+ ***
+ }
+}
+
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/fsc_filesym.cpp b/web/yacco2/compiler/grammars/fsc_filesym.cpp
new file mode 100644
index 0000000000..668e2c11d1
--- /dev/null
+++ b/web/yacco2/compiler/grammars/fsc_filesym.cpp
@@ -0,0 +1,1160 @@
+/*
+ File: fsc_filesym.cpp
+ Date and Time: Fri Jan 30 18:55:11 2015
+*/
+#include "fsc_file.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_fsc_file;// grammar's ns
+// first set terminals
+// monolithic grammar --- no thread
+void
+Cfsc_file::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rfsc_file_:{
+ Rfsc_file* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsc_file(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsc_file*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 12;
+
+
+ sym->op();
+ return;}
+ case rhs1_Rtransitive_phrase_:{
+ Rtransitive_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rtransitive_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtransitive_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rtransitive_:{
+ Rtransitive* sym;
+ if(re->rule_ == 0){
+ sym = new Rtransitive(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtransitive*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rtransitive_:{
+ Rtransitive* sym;
+ if(re->rule_ == 0){
+ sym = new Rtransitive(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtransitive*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rtransitive_value_:{
+ Rtransitive_value* sym;
+ if(re->rule_ == 0){
+ sym = new Rtransitive_value(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtransitive_value*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rtransitive_value_:{
+ Rtransitive_value* sym;
+ if(re->rule_ == 0){
+ sym = new Rtransitive_value(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtransitive_value*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rgrammar_name_phrase_:{
+ Rgrammar_name_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rgrammar_name_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rgrammar_name_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rgrammar_name_:{
+ Rgrammar_name* sym;
+ if(re->rule_ == 0){
+ sym = new Rgrammar_name(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rgrammar_name*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rgrammar_name_:{
+ Rgrammar_name* sym;
+ if(re->rule_ == 0){
+ sym = new Rgrammar_name(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rgrammar_name*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rgrammar_name_value_:{
+ Rgrammar_name_value* sym;
+ if(re->rule_ == 0){
+ sym = new Rgrammar_name_value(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rgrammar_name_value*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rgrammar_name_value_:{
+ Rgrammar_name_value* sym;
+ if(re->rule_ == 0){
+ sym = new Rgrammar_name_value(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rgrammar_name_value*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rnamespace_phrase_:{
+ Rnamespace_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rnamespace_:{
+ Rnamespace* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rnamespace_:{
+ Rnamespace* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rnamespace_value_:{
+ Rnamespace_value* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace_value(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace_value*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rnamespace_value_:{
+ Rnamespace_value* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace_value(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace_value*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rthreadname_phrase_:{
+ Rthreadname_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rthreadname_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rthreadname_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rthreadname_:{
+ Rthreadname* sym;
+ if(re->rule_ == 0){
+ sym = new Rthreadname(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rthreadname*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rthreadname_:{
+ Rthreadname* sym;
+ if(re->rule_ == 0){
+ sym = new Rthreadname(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rthreadname*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rthreadname_value_:{
+ Rthreadname_value* sym;
+ if(re->rule_ == 0){
+ sym = new Rthreadname_value(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rthreadname_value*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rthreadname_value_:{
+ Rthreadname_value* sym;
+ if(re->rule_ == 0){
+ sym = new Rthreadname_value(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rthreadname_value*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rmonolithic_phrase_:{
+ Rmonolithic_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rmonolithic_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmonolithic_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rmonolithic_:{
+ Rmonolithic* sym;
+ if(re->rule_ == 0){
+ sym = new Rmonolithic(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmonolithic*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rmonolithic_:{
+ Rmonolithic* sym;
+ if(re->rule_ == 0){
+ sym = new Rmonolithic(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmonolithic*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rmonolithic_value_:{
+ Rmonolithic_value* sym;
+ if(re->rule_ == 0){
+ sym = new Rmonolithic_value(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmonolithic_value*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rmonolithic_value_:{
+ Rmonolithic_value* sym;
+ if(re->rule_ == 0){
+ sym = new Rmonolithic_value(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmonolithic_value*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rfilename_phrase_:{
+ Rfilename_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rfilename_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfilename_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rfilename_:{
+ Rfilename* sym;
+ if(re->rule_ == 0){
+ sym = new Rfilename(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfilename*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rfilename_:{
+ Rfilename* sym;
+ if(re->rule_ == 0){
+ sym = new Rfilename(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfilename*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rfilename_value_:{
+ Rfilename_value* sym;
+ if(re->rule_ == 0){
+ sym = new Rfilename_value(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfilename_value*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rfilename_value_:{
+ Rfilename_value* sym;
+ if(re->rule_ == 0){
+ sym = new Rfilename_value(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfilename_value*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rno_of_T_phrase_:{
+ Rno_of_T_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rno_of_T_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rno_of_T_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rno_of_T_:{
+ Rno_of_T* sym;
+ if(re->rule_ == 0){
+ sym = new Rno_of_T(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rno_of_T*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rno_of_T_:{
+ Rno_of_T* sym;
+ if(re->rule_ == 0){
+ sym = new Rno_of_T(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rno_of_T*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rno_of_T_value_:{
+ Rno_of_T_value* sym;
+ if(re->rule_ == 0){
+ sym = new Rno_of_T_value(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rno_of_T_value*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rno_of_T_value_:{
+ Rno_of_T_value* sym;
+ if(re->rule_ == 0){
+ sym = new Rno_of_T_value(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rno_of_T_value*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rlist_of_native_terminals_phrase_:{
+ Rlist_of_native_terminals_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rlist_of_native_terminals_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlist_of_native_terminals_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 4;
+
+
+ return;}
+ case rhs1_Rlist_of_native_fset_terminals_:{
+ Rlist_of_native_fset_terminals* sym;
+ if(re->rule_ == 0){
+ sym = new Rlist_of_native_fset_terminals(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlist_of_native_fset_terminals*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rlist_of_native_fset_terminals_:{
+ Rlist_of_native_fset_terminals* sym;
+ if(re->rule_ == 0){
+ sym = new Rlist_of_native_fset_terminals(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlist_of_native_fset_terminals*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rno_of_native_fset_terminals_:{
+ Rno_of_native_fset_terminals* sym;
+ if(re->rule_ == 0){
+ sym = new Rno_of_native_fset_terminals(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rno_of_native_fset_terminals*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rno_of_native_fset_terminals_:{
+ Rno_of_native_fset_terminals* sym;
+ if(re->rule_ == 0){
+ sym = new Rno_of_native_fset_terminals(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rno_of_native_fset_terminals*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rfset_terminals_epi_:{
+ Rfset_terminals_epi* sym;
+ if(re->rule_ == 0){
+ sym = new Rfset_terminals_epi(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfset_terminals_epi*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rfset_terminals_epi_:{
+ Rfset_terminals_epi* sym;
+ if(re->rule_ == 0){
+ sym = new Rfset_terminals_epi(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfset_terminals_epi*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs1_Rfset_terminals_:{
+ Rfset_terminals* sym;
+ if(re->rule_ == 0){
+ sym = new Rfset_terminals(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfset_terminals*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rfset_terminals_:{
+ Rfset_terminals* sym;
+ if(re->rule_ == 0){
+ sym = new Rfset_terminals(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfset_terminals*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Ra_T_:{
+ Ra_T* sym;
+ if(re->rule_ == 0){
+ sym = new Ra_T(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ra_T*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Ra_T_:{
+ Ra_T* sym;
+ if(re->rule_ == 0){
+ sym = new Ra_T(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ra_T*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rend_list_of_native_fset_terminals_:{
+ Rend_list_of_native_fset_terminals* sym;
+ if(re->rule_ == 0){
+ sym = new Rend_list_of_native_fset_terminals(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rend_list_of_native_fset_terminals*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rend_list_of_native_fset_terminals_:{
+ Rend_list_of_native_fset_terminals* sym;
+ if(re->rule_ == 0){
+ sym = new Rend_list_of_native_fset_terminals(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rend_list_of_native_fset_terminals*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rlist_of_transitive_threads_phrase_:{
+ Rlist_of_transitive_threads_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rlist_of_transitive_threads_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlist_of_transitive_threads_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 4;
+
+
+ return;}
+ case rhs1_Rlist_of_transitive_threads_:{
+ Rlist_of_transitive_threads* sym;
+ if(re->rule_ == 0){
+ sym = new Rlist_of_transitive_threads(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlist_of_transitive_threads*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rlist_of_transitive_threads_:{
+ Rlist_of_transitive_threads* sym;
+ if(re->rule_ == 0){
+ sym = new Rlist_of_transitive_threads(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlist_of_transitive_threads*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rno_of_transitive_threads_:{
+ Rno_of_transitive_threads* sym;
+ if(re->rule_ == 0){
+ sym = new Rno_of_transitive_threads(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rno_of_transitive_threads*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rno_of_transitive_threads_:{
+ Rno_of_transitive_threads* sym;
+ if(re->rule_ == 0){
+ sym = new Rno_of_transitive_threads(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rno_of_transitive_threads*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rtransitive_threads_epi_:{
+ Rtransitive_threads_epi* sym;
+ if(re->rule_ == 0){
+ sym = new Rtransitive_threads_epi(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtransitive_threads_epi*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rtransitive_threads_epi_:{
+ Rtransitive_threads_epi* sym;
+ if(re->rule_ == 0){
+ sym = new Rtransitive_threads_epi(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtransitive_threads_epi*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs1_Rtransitive_threads_:{
+ Rtransitive_threads* sym;
+ if(re->rule_ == 0){
+ sym = new Rtransitive_threads(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtransitive_threads*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rtransitive_threads_:{
+ Rtransitive_threads* sym;
+ if(re->rule_ == 0){
+ sym = new Rtransitive_threads(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtransitive_threads*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Ra_th_:{
+ Ra_th* sym;
+ if(re->rule_ == 0){
+ sym = new Ra_th(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ra_th*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Ra_th_:{
+ Ra_th* sym;
+ if(re->rule_ == 0){
+ sym = new Ra_th(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ra_th*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rend_list_of_transitive_threads_:{
+ Rend_list_of_transitive_threads* sym;
+ if(re->rule_ == 0){
+ sym = new Rend_list_of_transitive_threads(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rend_list_of_transitive_threads*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rend_list_of_transitive_threads_:{
+ Rend_list_of_transitive_threads* sym;
+ if(re->rule_ == 0){
+ sym = new Rend_list_of_transitive_threads(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rend_list_of_transitive_threads*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rlist_of_used_threads_phrase_:{
+ Rlist_of_used_threads_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rlist_of_used_threads_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlist_of_used_threads_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 4;
+
+
+ return;}
+ case rhs1_Rlist_of_used_threads_:{
+ Rlist_of_used_threads* sym;
+ if(re->rule_ == 0){
+ sym = new Rlist_of_used_threads(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlist_of_used_threads*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rlist_of_used_threads_:{
+ Rlist_of_used_threads* sym;
+ if(re->rule_ == 0){
+ sym = new Rlist_of_used_threads(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlist_of_used_threads*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rno_of_used_threads_:{
+ Rno_of_used_threads* sym;
+ if(re->rule_ == 0){
+ sym = new Rno_of_used_threads(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rno_of_used_threads*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rno_of_used_threads_:{
+ Rno_of_used_threads* sym;
+ if(re->rule_ == 0){
+ sym = new Rno_of_used_threads(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rno_of_used_threads*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rused_threads_epi_:{
+ Rused_threads_epi* sym;
+ if(re->rule_ == 0){
+ sym = new Rused_threads_epi(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rused_threads_epi*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rused_threads_epi_:{
+ Rused_threads_epi* sym;
+ if(re->rule_ == 0){
+ sym = new Rused_threads_epi(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rused_threads_epi*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs1_Rused_threads_:{
+ Rused_threads* sym;
+ if(re->rule_ == 0){
+ sym = new Rused_threads(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rused_threads*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rused_threads_:{
+ Rused_threads* sym;
+ if(re->rule_ == 0){
+ sym = new Rused_threads(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rused_threads*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rb_th_:{
+ Rb_th* sym;
+ if(re->rule_ == 0){
+ sym = new Rb_th(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rb_th*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rb_th_:{
+ Rb_th* sym;
+ if(re->rule_ == 0){
+ sym = new Rb_th(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rb_th*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rend_list_of_used_threads_:{
+ Rend_list_of_used_threads* sym;
+ if(re->rule_ == 0){
+ sym = new Rend_list_of_used_threads(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rend_list_of_used_threads*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rend_list_of_used_threads_:{
+ Rend_list_of_used_threads* sym;
+ if(re->rule_ == 0){
+ sym = new Rend_list_of_used_threads(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rend_list_of_used_threads*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rfsm_comments_phrase_:{
+ Rfsm_comments_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_comments_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_comments_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rfsm_comments_:{
+ Rfsm_comments* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_comments(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_comments*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rfsm_comments_value_:{
+ Rfsm_comments_value* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_comments_value(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_comments_value*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/fsc_filetbl.cpp b/web/yacco2/compiler/grammars/fsc_filetbl.cpp
new file mode 100644
index 0000000000..36fcb24451
--- /dev/null
+++ b/web/yacco2/compiler/grammars/fsc_filetbl.cpp
@@ -0,0 +1,1921 @@
+/*
+ File: fsc_filetbl.cpp
+ Date and Time: Fri Jan 30 18:55:11 2015
+*/
+#include "fsc_file.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_fsc_file;// grammar's ns
+// first set terminals
+// LR1_questionable_shift_operator
+// T_identifier
+yacco2::UCHAR LA1_Cfsc_file[] ={
+2
+,0,1
+,34,128
+};
+// LR1_eolr
+yacco2::UCHAR LA2_Cfsc_file[] ={
+1
+,0,4
+};
+// LR1_questionable_shift_operator
+// T_grammar_name
+yacco2::UCHAR LA3_Cfsc_file[] ={
+2
+,0,1
+,43,32
+};
+// LR1_questionable_shift_operator
+// T_c_string
+yacco2::UCHAR LA4_Cfsc_file[] ={
+2
+,0,1
+,34,8
+};
+// LR1_questionable_shift_operator
+// T_name_space
+yacco2::UCHAR LA5_Cfsc_file[] ={
+2
+,0,1
+,38,1
+};
+// LR1_questionable_shift_operator
+// T_thread_name
+yacco2::UCHAR LA6_Cfsc_file[] ={
+2
+,0,1
+,43,64
+};
+// LR1_questionable_shift_operator
+// T_monolithic
+yacco2::UCHAR LA7_Cfsc_file[] ={
+2
+,0,1
+,43,128
+};
+// LR1_questionable_shift_operator
+// T_file_name
+yacco2::UCHAR LA8_Cfsc_file[] ={
+2
+,0,1
+,37,128
+};
+// LR1_questionable_shift_operator
+// T_no_of_T
+yacco2::UCHAR LA9_Cfsc_file[] ={
+2
+,0,1
+,44,1
+};
+// LR1_questionable_shift_operator
+// T_int_no
+yacco2::UCHAR LA10_Cfsc_file[] ={
+2
+,0,1
+,35,1
+};
+// LR1_questionable_shift_operator
+// T_list_of_native_first_set_terminals
+yacco2::UCHAR LA11_Cfsc_file[] ={
+2
+,0,1
+,44,2
+};
+// LR1_questionable_shift_operator
+// T_end_list_of_native_first_set_terminals
+yacco2::UCHAR LA12_Cfsc_file[] ={
+2
+,0,1
+,44,4
+};
+// LR1_questionable_shift_operator
+// T_list_of_transitive_threads
+yacco2::UCHAR LA13_Cfsc_file[] ={
+2
+,0,1
+,44,8
+};
+// LR1_questionable_shift_operator
+// T_end_list_of_transitive_threads
+yacco2::UCHAR LA14_Cfsc_file[] ={
+2
+,0,1
+,44,16
+};
+// LR1_questionable_shift_operator
+// T_list_of_used_threads
+yacco2::UCHAR LA15_Cfsc_file[] ={
+2
+,0,1
+,47,1
+};
+// LR1_questionable_shift_operator
+// T_end_list_of_used_threads
+yacco2::UCHAR LA16_Cfsc_file[] ={
+2
+,0,1
+,47,2
+};
+// T_fsm_comments
+yacco2::UCHAR LA17_Cfsc_file[] ={
+1
+,37,16
+};
+// T_c_string
+yacco2::UCHAR LA18_Cfsc_file[] ={
+1
+,34,8
+};
+// LR1_eog
+yacco2::UCHAR LA19_Cfsc_file[] ={
+1
+,0,2
+};
+// LR1_questionable_shift_operator
+// T_identifier
+// T_end_list_of_native_first_set_terminals
+// tth_in_stbl
+yacco2::UCHAR LA20_Cfsc_file[] ={
+4
+,0,1
+,34,128
+,44,4
+,45,16
+};
+// LR1_questionable_shift_operator
+// T_identifier
+// T_end_list_of_transitive_threads
+// th_in_stbl
+yacco2::UCHAR LA21_Cfsc_file[] ={
+4
+,0,1
+,34,128
+,44,16
+,45,64
+};
+// LR1_questionable_shift_operator
+// T_identifier
+// th_in_stbl
+// T_end_list_of_used_threads
+yacco2::UCHAR LA22_Cfsc_file[] ={
+4
+,0,1
+,34,128
+,45,64
+,47,2
+};
+extern yacco2::State S1_Cfsc_file;
+extern yacco2::State S2_Cfsc_file;
+extern yacco2::State S3_Cfsc_file;
+extern yacco2::State S4_Cfsc_file;
+extern yacco2::State S5_Cfsc_file;
+extern yacco2::State S6_Cfsc_file;
+extern yacco2::State S7_Cfsc_file;
+extern yacco2::State S8_Cfsc_file;
+extern yacco2::State S9_Cfsc_file;
+extern yacco2::State S10_Cfsc_file;
+extern yacco2::State S11_Cfsc_file;
+extern yacco2::State S12_Cfsc_file;
+extern yacco2::State S13_Cfsc_file;
+extern yacco2::State S14_Cfsc_file;
+extern yacco2::State S15_Cfsc_file;
+extern yacco2::State S16_Cfsc_file;
+extern yacco2::State S17_Cfsc_file;
+extern yacco2::State S18_Cfsc_file;
+extern yacco2::State S19_Cfsc_file;
+extern yacco2::State S20_Cfsc_file;
+extern yacco2::State S21_Cfsc_file;
+extern yacco2::State S22_Cfsc_file;
+extern yacco2::State S23_Cfsc_file;
+extern yacco2::State S24_Cfsc_file;
+extern yacco2::State S25_Cfsc_file;
+extern yacco2::State S26_Cfsc_file;
+extern yacco2::State S27_Cfsc_file;
+extern yacco2::State S28_Cfsc_file;
+extern yacco2::State S29_Cfsc_file;
+extern yacco2::State S30_Cfsc_file;
+extern yacco2::State S31_Cfsc_file;
+extern yacco2::State S32_Cfsc_file;
+extern yacco2::State S33_Cfsc_file;
+extern yacco2::State S34_Cfsc_file;
+extern yacco2::State S35_Cfsc_file;
+extern yacco2::State S36_Cfsc_file;
+extern yacco2::State S37_Cfsc_file;
+extern yacco2::State S38_Cfsc_file;
+extern yacco2::State S39_Cfsc_file;
+extern yacco2::State S40_Cfsc_file;
+extern yacco2::State S41_Cfsc_file;
+extern yacco2::State S42_Cfsc_file;
+extern yacco2::State S43_Cfsc_file;
+extern yacco2::State S44_Cfsc_file;
+extern yacco2::State S45_Cfsc_file;
+extern yacco2::State S46_Cfsc_file;
+extern yacco2::State S47_Cfsc_file;
+extern yacco2::State S48_Cfsc_file;
+extern yacco2::State S49_Cfsc_file;
+extern yacco2::State S50_Cfsc_file;
+extern yacco2::State S51_Cfsc_file;
+extern yacco2::State S52_Cfsc_file;
+extern yacco2::State S53_Cfsc_file;
+extern yacco2::State S54_Cfsc_file;
+extern yacco2::State S55_Cfsc_file;
+extern yacco2::State S56_Cfsc_file;
+extern yacco2::State S57_Cfsc_file;
+extern yacco2::State S58_Cfsc_file;
+extern yacco2::State S59_Cfsc_file;
+extern yacco2::State S60_Cfsc_file;
+extern yacco2::State S61_Cfsc_file;
+extern yacco2::State S62_Cfsc_file;
+extern yacco2::State S63_Cfsc_file;
+extern yacco2::State S64_Cfsc_file;
+extern yacco2::State S65_Cfsc_file;
+extern yacco2::State S66_Cfsc_file;
+extern yacco2::State S67_Cfsc_file;
+extern yacco2::State S68_Cfsc_file;
+extern yacco2::State S69_Cfsc_file;
+extern yacco2::State S70_Cfsc_file;
+extern yacco2::State S71_Cfsc_file;
+extern yacco2::State S72_Cfsc_file;
+extern yacco2::State S73_Cfsc_file;
+extern yacco2::State S74_Cfsc_file;
+extern yacco2::State S75_Cfsc_file;
+extern yacco2::State S76_Cfsc_file;
+extern yacco2::State S77_Cfsc_file;
+extern yacco2::State S78_Cfsc_file;
+extern yacco2::State S79_Cfsc_file;
+extern yacco2::State S80_Cfsc_file;
+extern yacco2::State S81_Cfsc_file;
+extern yacco2::State S82_Cfsc_file;
+extern yacco2::State S83_Cfsc_file;
+extern yacco2::State S84_Cfsc_file;
+extern yacco2::State S85_Cfsc_file;
+extern yacco2::State S86_Cfsc_file;
+extern yacco2::State S87_Cfsc_file;
+extern yacco2::State S88_Cfsc_file;
+extern yacco2::State S89_Cfsc_file;
+extern yacco2::State S90_Cfsc_file;
+extern yacco2::State S91_Cfsc_file;
+extern yacco2::State S92_Cfsc_file;
+extern yacco2::State S93_Cfsc_file;
+extern yacco2::State S94_Cfsc_file;
+extern yacco2::State S95_Cfsc_file;
+extern yacco2::State S96_Cfsc_file;
+extern yacco2::State S97_Cfsc_file;
+extern yacco2::State S98_Cfsc_file;
+extern yacco2::State S99_Cfsc_file;
+extern yacco2::State S100_Cfsc_file;
+extern yacco2::State S101_Cfsc_file;
+extern yacco2::State S102_Cfsc_file;
+extern yacco2::State S103_Cfsc_file;
+extern yacco2::State S104_Cfsc_file;
+struct S1std_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S1std_Cfsc_file S1st_Cfsc_file = {
+ 5
+ ,
+ {// start of table
+ {0,(State*)&S2_Cfsc_file} // shift sym: LR1_questionable_shift_operator
+ ,{348,(State*)&S3_Cfsc_file} // shift sym: T_transitive
+ ,{569,(State*)&S1_Cfsc_file} // accept sym: Rfsc_file
+ ,{570,(State*)&S4_Cfsc_file} // shift sym: Rtransitive_phrase
+ ,{571,(State*)&S16_Cfsc_file} // shift sym: Rtransitive
+ }// end of shift table
+};
+yacco2::Shift_entry S1qse_Cfsc_file = {0,(State*)&S2_Cfsc_file};
+yacco2::State S1_Cfsc_file = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Cfsc_file,0,0,0,(Shift_entry*)&S1qse_Cfsc_file
+};
+struct S2rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Cfsc_file S2rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cfsc_file,Cfsc_file::rhs2_Rtransitive_}
+ }// end of reduce table
+};
+yacco2::State S2_Cfsc_file = //State's vectored into symbol: "|?|"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Cfsc_file,0,0,0};
+struct S3rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Cfsc_file S3rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cfsc_file,Cfsc_file::rhs1_Rtransitive_}
+ }// end of reduce table
+};
+yacco2::State S3_Cfsc_file = //State's vectored into symbol: "transitive"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_Cfsc_file,0,0,0};
+struct S4std_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S4std_Cfsc_file S4st_Cfsc_file = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S20_Cfsc_file} // shift sym: LR1_questionable_shift_operator
+ ,{349,(State*)&S21_Cfsc_file} // shift sym: T_grammar_name
+ ,{573,(State*)&S5_Cfsc_file} // shift sym: Rgrammar_name_phrase
+ ,{574,(State*)&S22_Cfsc_file} // shift sym: Rgrammar_name
+ }// end of shift table
+};
+yacco2::Shift_entry S4qse_Cfsc_file = {0,(State*)&S20_Cfsc_file};
+yacco2::State S4_Cfsc_file = //State's vectored into symbol: "Rtransitive_phrase"
+{4
+,0,0,0,0,(Shift_tbl*)&S4st_Cfsc_file,0,0,0,(Shift_entry*)&S4qse_Cfsc_file
+};
+struct S5std_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S5std_Cfsc_file S5st_Cfsc_file = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S26_Cfsc_file} // shift sym: LR1_questionable_shift_operator
+ ,{304,(State*)&S27_Cfsc_file} // shift sym: T_name_space
+ ,{576,(State*)&S6_Cfsc_file} // shift sym: Rnamespace_phrase
+ ,{577,(State*)&S28_Cfsc_file} // shift sym: Rnamespace
+ }// end of shift table
+};
+yacco2::Shift_entry S5qse_Cfsc_file = {0,(State*)&S26_Cfsc_file};
+yacco2::State S5_Cfsc_file = //State's vectored into symbol: "Rgrammar_name_phrase"
+{5
+,0,0,0,0,(Shift_tbl*)&S5st_Cfsc_file,0,0,0,(Shift_entry*)&S5qse_Cfsc_file
+};
+struct S6std_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S6std_Cfsc_file S6st_Cfsc_file = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S32_Cfsc_file} // shift sym: LR1_questionable_shift_operator
+ ,{350,(State*)&S33_Cfsc_file} // shift sym: T_thread_name
+ ,{579,(State*)&S7_Cfsc_file} // shift sym: Rthreadname_phrase
+ ,{580,(State*)&S34_Cfsc_file} // shift sym: Rthreadname
+ }// end of shift table
+};
+yacco2::Shift_entry S6qse_Cfsc_file = {0,(State*)&S32_Cfsc_file};
+yacco2::State S6_Cfsc_file = //State's vectored into symbol: "Rnamespace_phrase"
+{6
+,0,0,0,0,(Shift_tbl*)&S6st_Cfsc_file,0,0,0,(Shift_entry*)&S6qse_Cfsc_file
+};
+struct S7std_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S7std_Cfsc_file S7st_Cfsc_file = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S38_Cfsc_file} // shift sym: LR1_questionable_shift_operator
+ ,{351,(State*)&S39_Cfsc_file} // shift sym: T_monolithic
+ ,{582,(State*)&S8_Cfsc_file} // shift sym: Rmonolithic_phrase
+ ,{583,(State*)&S40_Cfsc_file} // shift sym: Rmonolithic
+ }// end of shift table
+};
+yacco2::Shift_entry S7qse_Cfsc_file = {0,(State*)&S38_Cfsc_file};
+yacco2::State S7_Cfsc_file = //State's vectored into symbol: "Rthreadname_phrase"
+{7
+,0,0,0,0,(Shift_tbl*)&S7st_Cfsc_file,0,0,0,(Shift_entry*)&S7qse_Cfsc_file
+};
+struct S8std_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S8std_Cfsc_file S8st_Cfsc_file = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S44_Cfsc_file} // shift sym: LR1_questionable_shift_operator
+ ,{303,(State*)&S45_Cfsc_file} // shift sym: T_file_name
+ ,{585,(State*)&S9_Cfsc_file} // shift sym: Rfilename_phrase
+ ,{586,(State*)&S46_Cfsc_file} // shift sym: Rfilename
+ }// end of shift table
+};
+yacco2::Shift_entry S8qse_Cfsc_file = {0,(State*)&S44_Cfsc_file};
+yacco2::State S8_Cfsc_file = //State's vectored into symbol: "Rmonolithic_phrase"
+{8
+,0,0,0,0,(Shift_tbl*)&S8st_Cfsc_file,0,0,0,(Shift_entry*)&S8qse_Cfsc_file
+};
+struct S9std_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S9std_Cfsc_file S9st_Cfsc_file = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S50_Cfsc_file} // shift sym: LR1_questionable_shift_operator
+ ,{352,(State*)&S51_Cfsc_file} // shift sym: T_no_of_T
+ ,{588,(State*)&S10_Cfsc_file} // shift sym: Rno_of_T_phrase
+ ,{589,(State*)&S52_Cfsc_file} // shift sym: Rno_of_T
+ }// end of shift table
+};
+yacco2::Shift_entry S9qse_Cfsc_file = {0,(State*)&S50_Cfsc_file};
+yacco2::State S9_Cfsc_file = //State's vectored into symbol: "Rfilename_phrase"
+{9
+,0,0,0,0,(Shift_tbl*)&S9st_Cfsc_file,0,0,0,(Shift_entry*)&S9qse_Cfsc_file
+};
+struct S10std_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S10std_Cfsc_file S10st_Cfsc_file = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S56_Cfsc_file} // shift sym: LR1_questionable_shift_operator
+ ,{353,(State*)&S57_Cfsc_file} // shift sym: T_list_of_native_first_set_terminals
+ ,{591,(State*)&S11_Cfsc_file} // shift sym: Rlist_of_native_terminals_phrase
+ ,{592,(State*)&S58_Cfsc_file} // shift sym: Rlist_of_native_fset_terminals
+ }// end of shift table
+};
+yacco2::Shift_entry S10qse_Cfsc_file = {0,(State*)&S56_Cfsc_file};
+yacco2::State S10_Cfsc_file = //State's vectored into symbol: "Rno_of_T_phrase"
+{10
+,0,0,0,0,(Shift_tbl*)&S10st_Cfsc_file,0,0,0,(Shift_entry*)&S10qse_Cfsc_file
+};
+struct S11std_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S11std_Cfsc_file S11st_Cfsc_file = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S64_Cfsc_file} // shift sym: LR1_questionable_shift_operator
+ ,{355,(State*)&S65_Cfsc_file} // shift sym: T_list_of_transitive_threads
+ ,{598,(State*)&S12_Cfsc_file} // shift sym: Rlist_of_transitive_threads_phrase
+ ,{599,(State*)&S66_Cfsc_file} // shift sym: Rlist_of_transitive_threads
+ }// end of shift table
+};
+yacco2::Shift_entry S11qse_Cfsc_file = {0,(State*)&S64_Cfsc_file};
+yacco2::State S11_Cfsc_file = //State's vectored into symbol: "Rlist_of_native_terminals_phrase"
+{11
+,0,0,0,0,(Shift_tbl*)&S11st_Cfsc_file,0,0,0,(Shift_entry*)&S11qse_Cfsc_file
+};
+struct S12std_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S12std_Cfsc_file S12st_Cfsc_file = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S72_Cfsc_file} // shift sym: LR1_questionable_shift_operator
+ ,{376,(State*)&S73_Cfsc_file} // shift sym: T_list_of_used_threads
+ ,{605,(State*)&S13_Cfsc_file} // shift sym: Rlist_of_used_threads_phrase
+ ,{606,(State*)&S74_Cfsc_file} // shift sym: Rlist_of_used_threads
+ }// end of shift table
+};
+yacco2::Shift_entry S12qse_Cfsc_file = {0,(State*)&S72_Cfsc_file};
+yacco2::State S12_Cfsc_file = //State's vectored into symbol: "Rlist_of_transitive_threads_phrase"
+{12
+,0,0,0,0,(Shift_tbl*)&S12st_Cfsc_file,0,0,0,(Shift_entry*)&S12qse_Cfsc_file
+};
+struct S13std_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S13std_Cfsc_file S13st_Cfsc_file = {
+ 3
+ ,
+ {// start of table
+ {300,(State*)&S80_Cfsc_file} // shift sym: T_fsm_comments
+ ,{612,(State*)&S14_Cfsc_file} // shift sym: Rfsm_comments_phrase
+ ,{613,(State*)&S81_Cfsc_file} // shift sym: Rfsm_comments
+ }// end of shift table
+};
+yacco2::State S13_Cfsc_file = //State's vectored into symbol: "Rlist_of_used_threads_phrase"
+{13
+,0,0,0,0,(Shift_tbl*)&S13st_Cfsc_file,0,0,0,0};
+struct S14std_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S14std_Cfsc_file S14st_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {1,(State*)&S15_Cfsc_file} // shift sym: LR1_eog
+ }// end of shift table
+};
+yacco2::State S14_Cfsc_file = //State's vectored into symbol: "Rfsm_comments_phrase"
+{14
+,0,0,0,0,(Shift_tbl*)&S14st_Cfsc_file,0,0,0,0};
+struct S15rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S15rtd_Cfsc_file S15rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfsc_file,Cfsc_file::rhs1_Rfsc_file_}
+ }// end of reduce table
+};
+yacco2::State S15_Cfsc_file = //State's vectored into symbol: "eog"
+{15
+,0,0,0,0,0,(Reduce_tbl*)&S15rt_Cfsc_file,0,0,0};
+struct S16std_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S16std_Cfsc_file S16st_Cfsc_file = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S17_Cfsc_file} // shift sym: LR1_questionable_shift_operator
+ ,{279,(State*)&S18_Cfsc_file} // shift sym: T_identifier
+ ,{572,(State*)&S19_Cfsc_file} // shift sym: Rtransitive_value
+ }// end of shift table
+};
+yacco2::Shift_entry S16qse_Cfsc_file = {0,(State*)&S17_Cfsc_file};
+yacco2::State S16_Cfsc_file = //State's vectored into symbol: "Rtransitive"
+{16
+,0,0,0,0,(Shift_tbl*)&S16st_Cfsc_file,0,0,0,(Shift_entry*)&S16qse_Cfsc_file
+};
+struct S17rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S17rtd_Cfsc_file S17rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cfsc_file,Cfsc_file::rhs2_Rtransitive_value_}
+ }// end of reduce table
+};
+yacco2::State S17_Cfsc_file = //State's vectored into symbol: "|?|"
+{17
+,0,0,0,0,0,(Reduce_tbl*)&S17rt_Cfsc_file,0,0,0};
+struct S18rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S18rtd_Cfsc_file S18rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cfsc_file,Cfsc_file::rhs1_Rtransitive_value_}
+ }// end of reduce table
+};
+yacco2::State S18_Cfsc_file = //State's vectored into symbol: "identifier"
+{18
+,0,0,0,0,0,(Reduce_tbl*)&S18rt_Cfsc_file,0,0,0};
+struct S19rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S19rtd_Cfsc_file S19rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cfsc_file,Cfsc_file::rhs1_Rtransitive_phrase_}
+ }// end of reduce table
+};
+yacco2::State S19_Cfsc_file = //State's vectored into symbol: "Rtransitive_value"
+{19
+,0,0,0,0,0,(Reduce_tbl*)&S19rt_Cfsc_file,0,0,0};
+struct S20rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S20rtd_Cfsc_file S20rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cfsc_file,Cfsc_file::rhs2_Rgrammar_name_}
+ }// end of reduce table
+};
+yacco2::State S20_Cfsc_file = //State's vectored into symbol: "|?|"
+{20
+,0,0,0,0,0,(Reduce_tbl*)&S20rt_Cfsc_file,0,0,0};
+struct S21rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S21rtd_Cfsc_file S21rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cfsc_file,Cfsc_file::rhs1_Rgrammar_name_}
+ }// end of reduce table
+};
+yacco2::State S21_Cfsc_file = //State's vectored into symbol: "grammar-name"
+{21
+,0,0,0,0,0,(Reduce_tbl*)&S21rt_Cfsc_file,0,0,0};
+struct S22std_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S22std_Cfsc_file S22st_Cfsc_file = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S23_Cfsc_file} // shift sym: LR1_questionable_shift_operator
+ ,{275,(State*)&S24_Cfsc_file} // shift sym: T_c_string
+ ,{575,(State*)&S25_Cfsc_file} // shift sym: Rgrammar_name_value
+ }// end of shift table
+};
+yacco2::Shift_entry S22qse_Cfsc_file = {0,(State*)&S23_Cfsc_file};
+yacco2::State S22_Cfsc_file = //State's vectored into symbol: "Rgrammar_name"
+{22
+,0,0,0,0,(Shift_tbl*)&S22st_Cfsc_file,0,0,0,(Shift_entry*)&S22qse_Cfsc_file
+};
+struct S23rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S23rtd_Cfsc_file S23rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cfsc_file,Cfsc_file::rhs2_Rgrammar_name_value_}
+ }// end of reduce table
+};
+yacco2::State S23_Cfsc_file = //State's vectored into symbol: "|?|"
+{23
+,0,0,0,0,0,(Reduce_tbl*)&S23rt_Cfsc_file,0,0,0};
+struct S24rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S24rtd_Cfsc_file S24rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cfsc_file,Cfsc_file::rhs1_Rgrammar_name_value_}
+ }// end of reduce table
+};
+yacco2::State S24_Cfsc_file = //State's vectored into symbol: "c-string"
+{24
+,0,0,0,0,0,(Reduce_tbl*)&S24rt_Cfsc_file,0,0,0};
+struct S25rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S25rtd_Cfsc_file S25rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cfsc_file,Cfsc_file::rhs1_Rgrammar_name_phrase_}
+ }// end of reduce table
+};
+yacco2::State S25_Cfsc_file = //State's vectored into symbol: "Rgrammar_name_value"
+{25
+,0,0,0,0,0,(Reduce_tbl*)&S25rt_Cfsc_file,0,0,0};
+struct S26rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S26rtd_Cfsc_file S26rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cfsc_file,Cfsc_file::rhs2_Rnamespace_}
+ }// end of reduce table
+};
+yacco2::State S26_Cfsc_file = //State's vectored into symbol: "|?|"
+{26
+,0,0,0,0,0,(Reduce_tbl*)&S26rt_Cfsc_file,0,0,0};
+struct S27rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S27rtd_Cfsc_file S27rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cfsc_file,Cfsc_file::rhs1_Rnamespace_}
+ }// end of reduce table
+};
+yacco2::State S27_Cfsc_file = //State's vectored into symbol: "#name-space"
+{27
+,0,0,0,0,0,(Reduce_tbl*)&S27rt_Cfsc_file,0,0,0};
+struct S28std_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S28std_Cfsc_file S28st_Cfsc_file = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S29_Cfsc_file} // shift sym: LR1_questionable_shift_operator
+ ,{275,(State*)&S30_Cfsc_file} // shift sym: T_c_string
+ ,{578,(State*)&S31_Cfsc_file} // shift sym: Rnamespace_value
+ }// end of shift table
+};
+yacco2::Shift_entry S28qse_Cfsc_file = {0,(State*)&S29_Cfsc_file};
+yacco2::State S28_Cfsc_file = //State's vectored into symbol: "Rnamespace"
+{28
+,0,0,0,0,(Shift_tbl*)&S28st_Cfsc_file,0,0,0,(Shift_entry*)&S28qse_Cfsc_file
+};
+struct S29rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S29rtd_Cfsc_file S29rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cfsc_file,Cfsc_file::rhs2_Rnamespace_value_}
+ }// end of reduce table
+};
+yacco2::State S29_Cfsc_file = //State's vectored into symbol: "|?|"
+{29
+,0,0,0,0,0,(Reduce_tbl*)&S29rt_Cfsc_file,0,0,0};
+struct S30rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S30rtd_Cfsc_file S30rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cfsc_file,Cfsc_file::rhs1_Rnamespace_value_}
+ }// end of reduce table
+};
+yacco2::State S30_Cfsc_file = //State's vectored into symbol: "c-string"
+{30
+,0,0,0,0,0,(Reduce_tbl*)&S30rt_Cfsc_file,0,0,0};
+struct S31rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S31rtd_Cfsc_file S31rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cfsc_file,Cfsc_file::rhs1_Rnamespace_phrase_}
+ }// end of reduce table
+};
+yacco2::State S31_Cfsc_file = //State's vectored into symbol: "Rnamespace_value"
+{31
+,0,0,0,0,0,(Reduce_tbl*)&S31rt_Cfsc_file,0,0,0};
+struct S32rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S32rtd_Cfsc_file S32rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cfsc_file,Cfsc_file::rhs2_Rthreadname_}
+ }// end of reduce table
+};
+yacco2::State S32_Cfsc_file = //State's vectored into symbol: "|?|"
+{32
+,0,0,0,0,0,(Reduce_tbl*)&S32rt_Cfsc_file,0,0,0};
+struct S33rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S33rtd_Cfsc_file S33rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cfsc_file,Cfsc_file::rhs1_Rthreadname_}
+ }// end of reduce table
+};
+yacco2::State S33_Cfsc_file = //State's vectored into symbol: "thread-name"
+{33
+,0,0,0,0,0,(Reduce_tbl*)&S33rt_Cfsc_file,0,0,0};
+struct S34std_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S34std_Cfsc_file S34st_Cfsc_file = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S35_Cfsc_file} // shift sym: LR1_questionable_shift_operator
+ ,{275,(State*)&S36_Cfsc_file} // shift sym: T_c_string
+ ,{581,(State*)&S37_Cfsc_file} // shift sym: Rthreadname_value
+ }// end of shift table
+};
+yacco2::Shift_entry S34qse_Cfsc_file = {0,(State*)&S35_Cfsc_file};
+yacco2::State S34_Cfsc_file = //State's vectored into symbol: "Rthreadname"
+{34
+,0,0,0,0,(Shift_tbl*)&S34st_Cfsc_file,0,0,0,(Shift_entry*)&S34qse_Cfsc_file
+};
+struct S35rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S35rtd_Cfsc_file S35rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsc_file,Cfsc_file::rhs2_Rthreadname_value_}
+ }// end of reduce table
+};
+yacco2::State S35_Cfsc_file = //State's vectored into symbol: "|?|"
+{35
+,0,0,0,0,0,(Reduce_tbl*)&S35rt_Cfsc_file,0,0,0};
+struct S36rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S36rtd_Cfsc_file S36rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsc_file,Cfsc_file::rhs1_Rthreadname_value_}
+ }// end of reduce table
+};
+yacco2::State S36_Cfsc_file = //State's vectored into symbol: "c-string"
+{36
+,0,0,0,0,0,(Reduce_tbl*)&S36rt_Cfsc_file,0,0,0};
+struct S37rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S37rtd_Cfsc_file S37rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsc_file,Cfsc_file::rhs1_Rthreadname_phrase_}
+ }// end of reduce table
+};
+yacco2::State S37_Cfsc_file = //State's vectored into symbol: "Rthreadname_value"
+{37
+,0,0,0,0,0,(Reduce_tbl*)&S37rt_Cfsc_file,0,0,0};
+struct S38rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S38rtd_Cfsc_file S38rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cfsc_file,Cfsc_file::rhs2_Rmonolithic_}
+ }// end of reduce table
+};
+yacco2::State S38_Cfsc_file = //State's vectored into symbol: "|?|"
+{38
+,0,0,0,0,0,(Reduce_tbl*)&S38rt_Cfsc_file,0,0,0};
+struct S39rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S39rtd_Cfsc_file S39rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cfsc_file,Cfsc_file::rhs1_Rmonolithic_}
+ }// end of reduce table
+};
+yacco2::State S39_Cfsc_file = //State's vectored into symbol: "monolithic"
+{39
+,0,0,0,0,0,(Reduce_tbl*)&S39rt_Cfsc_file,0,0,0};
+struct S40std_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S40std_Cfsc_file S40st_Cfsc_file = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S41_Cfsc_file} // shift sym: LR1_questionable_shift_operator
+ ,{279,(State*)&S42_Cfsc_file} // shift sym: T_identifier
+ ,{584,(State*)&S43_Cfsc_file} // shift sym: Rmonolithic_value
+ }// end of shift table
+};
+yacco2::Shift_entry S40qse_Cfsc_file = {0,(State*)&S41_Cfsc_file};
+yacco2::State S40_Cfsc_file = //State's vectored into symbol: "Rmonolithic"
+{40
+,0,0,0,0,(Shift_tbl*)&S40st_Cfsc_file,0,0,0,(Shift_entry*)&S40qse_Cfsc_file
+};
+struct S41rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S41rtd_Cfsc_file S41rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA8_Cfsc_file,Cfsc_file::rhs2_Rmonolithic_value_}
+ }// end of reduce table
+};
+yacco2::State S41_Cfsc_file = //State's vectored into symbol: "|?|"
+{41
+,0,0,0,0,0,(Reduce_tbl*)&S41rt_Cfsc_file,0,0,0};
+struct S42rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S42rtd_Cfsc_file S42rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA8_Cfsc_file,Cfsc_file::rhs1_Rmonolithic_value_}
+ }// end of reduce table
+};
+yacco2::State S42_Cfsc_file = //State's vectored into symbol: "identifier"
+{42
+,0,0,0,0,0,(Reduce_tbl*)&S42rt_Cfsc_file,0,0,0};
+struct S43rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S43rtd_Cfsc_file S43rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA8_Cfsc_file,Cfsc_file::rhs1_Rmonolithic_phrase_}
+ }// end of reduce table
+};
+yacco2::State S43_Cfsc_file = //State's vectored into symbol: "Rmonolithic_value"
+{43
+,0,0,0,0,0,(Reduce_tbl*)&S43rt_Cfsc_file,0,0,0};
+struct S44rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S44rtd_Cfsc_file S44rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cfsc_file,Cfsc_file::rhs2_Rfilename_}
+ }// end of reduce table
+};
+yacco2::State S44_Cfsc_file = //State's vectored into symbol: "|?|"
+{44
+,0,0,0,0,0,(Reduce_tbl*)&S44rt_Cfsc_file,0,0,0};
+struct S45rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S45rtd_Cfsc_file S45rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cfsc_file,Cfsc_file::rhs1_Rfilename_}
+ }// end of reduce table
+};
+yacco2::State S45_Cfsc_file = //State's vectored into symbol: "#file-name"
+{45
+,0,0,0,0,0,(Reduce_tbl*)&S45rt_Cfsc_file,0,0,0};
+struct S46std_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S46std_Cfsc_file S46st_Cfsc_file = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S47_Cfsc_file} // shift sym: LR1_questionable_shift_operator
+ ,{275,(State*)&S48_Cfsc_file} // shift sym: T_c_string
+ ,{587,(State*)&S49_Cfsc_file} // shift sym: Rfilename_value
+ }// end of shift table
+};
+yacco2::Shift_entry S46qse_Cfsc_file = {0,(State*)&S47_Cfsc_file};
+yacco2::State S46_Cfsc_file = //State's vectored into symbol: "Rfilename"
+{46
+,0,0,0,0,(Shift_tbl*)&S46st_Cfsc_file,0,0,0,(Shift_entry*)&S46qse_Cfsc_file
+};
+struct S47rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S47rtd_Cfsc_file S47rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA9_Cfsc_file,Cfsc_file::rhs2_Rfilename_value_}
+ }// end of reduce table
+};
+yacco2::State S47_Cfsc_file = //State's vectored into symbol: "|?|"
+{47
+,0,0,0,0,0,(Reduce_tbl*)&S47rt_Cfsc_file,0,0,0};
+struct S48rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S48rtd_Cfsc_file S48rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA9_Cfsc_file,Cfsc_file::rhs1_Rfilename_value_}
+ }// end of reduce table
+};
+yacco2::State S48_Cfsc_file = //State's vectored into symbol: "c-string"
+{48
+,0,0,0,0,0,(Reduce_tbl*)&S48rt_Cfsc_file,0,0,0};
+struct S49rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S49rtd_Cfsc_file S49rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA9_Cfsc_file,Cfsc_file::rhs1_Rfilename_phrase_}
+ }// end of reduce table
+};
+yacco2::State S49_Cfsc_file = //State's vectored into symbol: "Rfilename_value"
+{49
+,0,0,0,0,0,(Reduce_tbl*)&S49rt_Cfsc_file,0,0,0};
+struct S50rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S50rtd_Cfsc_file S50rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA10_Cfsc_file,Cfsc_file::rhs2_Rno_of_T_}
+ }// end of reduce table
+};
+yacco2::State S50_Cfsc_file = //State's vectored into symbol: "|?|"
+{50
+,0,0,0,0,0,(Reduce_tbl*)&S50rt_Cfsc_file,0,0,0};
+struct S51rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S51rtd_Cfsc_file S51rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA10_Cfsc_file,Cfsc_file::rhs1_Rno_of_T_}
+ }// end of reduce table
+};
+yacco2::State S51_Cfsc_file = //State's vectored into symbol: "no-of-T"
+{51
+,0,0,0,0,0,(Reduce_tbl*)&S51rt_Cfsc_file,0,0,0};
+struct S52std_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S52std_Cfsc_file S52st_Cfsc_file = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S53_Cfsc_file} // shift sym: LR1_questionable_shift_operator
+ ,{280,(State*)&S54_Cfsc_file} // shift sym: T_int_no
+ ,{590,(State*)&S55_Cfsc_file} // shift sym: Rno_of_T_value
+ }// end of shift table
+};
+yacco2::Shift_entry S52qse_Cfsc_file = {0,(State*)&S53_Cfsc_file};
+yacco2::State S52_Cfsc_file = //State's vectored into symbol: "Rno_of_T"
+{52
+,0,0,0,0,(Shift_tbl*)&S52st_Cfsc_file,0,0,0,(Shift_entry*)&S52qse_Cfsc_file
+};
+struct S53rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S53rtd_Cfsc_file S53rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA11_Cfsc_file,Cfsc_file::rhs2_Rno_of_T_value_}
+ }// end of reduce table
+};
+yacco2::State S53_Cfsc_file = //State's vectored into symbol: "|?|"
+{53
+,0,0,0,0,0,(Reduce_tbl*)&S53rt_Cfsc_file,0,0,0};
+struct S54rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S54rtd_Cfsc_file S54rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA11_Cfsc_file,Cfsc_file::rhs1_Rno_of_T_value_}
+ }// end of reduce table
+};
+yacco2::State S54_Cfsc_file = //State's vectored into symbol: "int-no"
+{54
+,0,0,0,0,0,(Reduce_tbl*)&S54rt_Cfsc_file,0,0,0};
+struct S55rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S55rtd_Cfsc_file S55rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA11_Cfsc_file,Cfsc_file::rhs1_Rno_of_T_phrase_}
+ }// end of reduce table
+};
+yacco2::State S55_Cfsc_file = //State's vectored into symbol: "Rno_of_T_value"
+{55
+,0,0,0,0,0,(Reduce_tbl*)&S55rt_Cfsc_file,0,0,0};
+struct S56rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S56rtd_Cfsc_file S56rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA10_Cfsc_file,Cfsc_file::rhs2_Rlist_of_native_fset_terminals_}
+ }// end of reduce table
+};
+yacco2::State S56_Cfsc_file = //State's vectored into symbol: "|?|"
+{56
+,0,0,0,0,0,(Reduce_tbl*)&S56rt_Cfsc_file,0,0,0};
+struct S57rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S57rtd_Cfsc_file S57rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA10_Cfsc_file,Cfsc_file::rhs1_Rlist_of_native_fset_terminals_}
+ }// end of reduce table
+};
+yacco2::State S57_Cfsc_file = //State's vectored into symbol: "list-of-native-first-set-terminals"
+{57
+,0,0,0,0,0,(Reduce_tbl*)&S57rt_Cfsc_file,0,0,0};
+struct S58std_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S58std_Cfsc_file S58st_Cfsc_file = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S84_Cfsc_file} // shift sym: LR1_questionable_shift_operator
+ ,{280,(State*)&S85_Cfsc_file} // shift sym: T_int_no
+ ,{593,(State*)&S59_Cfsc_file} // shift sym: Rno_of_native_fset_terminals
+ }// end of shift table
+};
+yacco2::Shift_entry S58qse_Cfsc_file = {0,(State*)&S84_Cfsc_file};
+yacco2::State S58_Cfsc_file = //State's vectored into symbol: "Rlist_of_native_fset_terminals"
+{58
+,0,0,0,0,(Shift_tbl*)&S58st_Cfsc_file,0,0,0,(Shift_entry*)&S58qse_Cfsc_file
+};
+struct S59std_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S59std_Cfsc_file S59st_Cfsc_file = {
+ 5
+ ,
+ {// start of table
+ {279,(State*)&S86_Cfsc_file} // shift sym: T_identifier
+ ,{364,(State*)&S87_Cfsc_file} // shift sym: tth_in_stbl
+ ,{594,(State*)&S60_Cfsc_file} // shift sym: Rfset_terminals_epi
+ ,{595,(State*)&S88_Cfsc_file} // shift sym: Rfset_terminals
+ ,{596,(State*)&S90_Cfsc_file} // shift sym: Ra_T
+ }// end of shift table
+};
+struct S59rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S59rtd_Cfsc_file S59rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA12_Cfsc_file,Cfsc_file::rhs2_Rfset_terminals_epi_}
+ }// end of reduce table
+};
+yacco2::State S59_Cfsc_file = //State's vectored into symbol: "Rno_of_native_fset_terminals"
+{59
+,0,0,0,0,(Shift_tbl*)&S59st_Cfsc_file,(Reduce_tbl*)&S59rt_Cfsc_file,0,0,0};
+struct S60std_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S60std_Cfsc_file S60st_Cfsc_file = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S61_Cfsc_file} // shift sym: LR1_questionable_shift_operator
+ ,{354,(State*)&S62_Cfsc_file} // shift sym: T_end_list_of_native_first_set_terminals
+ ,{597,(State*)&S63_Cfsc_file} // shift sym: Rend_list_of_native_fset_terminals
+ }// end of shift table
+};
+yacco2::Shift_entry S60qse_Cfsc_file = {0,(State*)&S61_Cfsc_file};
+yacco2::State S60_Cfsc_file = //State's vectored into symbol: "Rfset_terminals_epi"
+{60
+,0,0,0,0,(Shift_tbl*)&S60st_Cfsc_file,0,0,0,(Shift_entry*)&S60qse_Cfsc_file
+};
+struct S61rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S61rtd_Cfsc_file S61rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA13_Cfsc_file,Cfsc_file::rhs2_Rend_list_of_native_fset_terminals_}
+ }// end of reduce table
+};
+yacco2::State S61_Cfsc_file = //State's vectored into symbol: "|?|"
+{61
+,0,0,0,0,0,(Reduce_tbl*)&S61rt_Cfsc_file,0,0,0};
+struct S62rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S62rtd_Cfsc_file S62rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA13_Cfsc_file,Cfsc_file::rhs1_Rend_list_of_native_fset_terminals_}
+ }// end of reduce table
+};
+yacco2::State S62_Cfsc_file = //State's vectored into symbol: "end-list-of-native-first-set-terminals"
+{62
+,0,0,0,0,0,(Reduce_tbl*)&S62rt_Cfsc_file,0,0,0};
+struct S63rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S63rtd_Cfsc_file S63rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA13_Cfsc_file,Cfsc_file::rhs1_Rlist_of_native_terminals_phrase_}
+ }// end of reduce table
+};
+yacco2::State S63_Cfsc_file = //State's vectored into symbol: "Rend_list_of_native_fset_terminals"
+{63
+,0,0,0,0,0,(Reduce_tbl*)&S63rt_Cfsc_file,0,0,0};
+struct S64rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S64rtd_Cfsc_file S64rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA10_Cfsc_file,Cfsc_file::rhs2_Rlist_of_transitive_threads_}
+ }// end of reduce table
+};
+yacco2::State S64_Cfsc_file = //State's vectored into symbol: "|?|"
+{64
+,0,0,0,0,0,(Reduce_tbl*)&S64rt_Cfsc_file,0,0,0};
+struct S65rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S65rtd_Cfsc_file S65rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA10_Cfsc_file,Cfsc_file::rhs1_Rlist_of_transitive_threads_}
+ }// end of reduce table
+};
+yacco2::State S65_Cfsc_file = //State's vectored into symbol: "list-of-transitive-threads"
+{65
+,0,0,0,0,0,(Reduce_tbl*)&S65rt_Cfsc_file,0,0,0};
+struct S66std_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S66std_Cfsc_file S66st_Cfsc_file = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S91_Cfsc_file} // shift sym: LR1_questionable_shift_operator
+ ,{280,(State*)&S92_Cfsc_file} // shift sym: T_int_no
+ ,{600,(State*)&S67_Cfsc_file} // shift sym: Rno_of_transitive_threads
+ }// end of shift table
+};
+yacco2::Shift_entry S66qse_Cfsc_file = {0,(State*)&S91_Cfsc_file};
+yacco2::State S66_Cfsc_file = //State's vectored into symbol: "Rlist_of_transitive_threads"
+{66
+,0,0,0,0,(Shift_tbl*)&S66st_Cfsc_file,0,0,0,(Shift_entry*)&S66qse_Cfsc_file
+};
+struct S67std_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S67std_Cfsc_file S67st_Cfsc_file = {
+ 5
+ ,
+ {// start of table
+ {279,(State*)&S93_Cfsc_file} // shift sym: T_identifier
+ ,{366,(State*)&S94_Cfsc_file} // shift sym: th_in_stbl
+ ,{601,(State*)&S68_Cfsc_file} // shift sym: Rtransitive_threads_epi
+ ,{602,(State*)&S95_Cfsc_file} // shift sym: Rtransitive_threads
+ ,{603,(State*)&S97_Cfsc_file} // shift sym: Ra_th
+ }// end of shift table
+};
+struct S67rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S67rtd_Cfsc_file S67rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA14_Cfsc_file,Cfsc_file::rhs2_Rtransitive_threads_epi_}
+ }// end of reduce table
+};
+yacco2::State S67_Cfsc_file = //State's vectored into symbol: "Rno_of_transitive_threads"
+{67
+,0,0,0,0,(Shift_tbl*)&S67st_Cfsc_file,(Reduce_tbl*)&S67rt_Cfsc_file,0,0,0};
+struct S68std_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S68std_Cfsc_file S68st_Cfsc_file = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S69_Cfsc_file} // shift sym: LR1_questionable_shift_operator
+ ,{356,(State*)&S70_Cfsc_file} // shift sym: T_end_list_of_transitive_threads
+ ,{604,(State*)&S71_Cfsc_file} // shift sym: Rend_list_of_transitive_threads
+ }// end of shift table
+};
+yacco2::Shift_entry S68qse_Cfsc_file = {0,(State*)&S69_Cfsc_file};
+yacco2::State S68_Cfsc_file = //State's vectored into symbol: "Rtransitive_threads_epi"
+{68
+,0,0,0,0,(Shift_tbl*)&S68st_Cfsc_file,0,0,0,(Shift_entry*)&S68qse_Cfsc_file
+};
+struct S69rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S69rtd_Cfsc_file S69rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA15_Cfsc_file,Cfsc_file::rhs2_Rend_list_of_transitive_threads_}
+ }// end of reduce table
+};
+yacco2::State S69_Cfsc_file = //State's vectored into symbol: "|?|"
+{69
+,0,0,0,0,0,(Reduce_tbl*)&S69rt_Cfsc_file,0,0,0};
+struct S70rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S70rtd_Cfsc_file S70rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA15_Cfsc_file,Cfsc_file::rhs1_Rend_list_of_transitive_threads_}
+ }// end of reduce table
+};
+yacco2::State S70_Cfsc_file = //State's vectored into symbol: "end-list-of-transitive-threads"
+{70
+,0,0,0,0,0,(Reduce_tbl*)&S70rt_Cfsc_file,0,0,0};
+struct S71rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S71rtd_Cfsc_file S71rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA15_Cfsc_file,Cfsc_file::rhs1_Rlist_of_transitive_threads_phrase_}
+ }// end of reduce table
+};
+yacco2::State S71_Cfsc_file = //State's vectored into symbol: "Rend_list_of_transitive_threads"
+{71
+,0,0,0,0,0,(Reduce_tbl*)&S71rt_Cfsc_file,0,0,0};
+struct S72rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S72rtd_Cfsc_file S72rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA10_Cfsc_file,Cfsc_file::rhs2_Rlist_of_used_threads_}
+ }// end of reduce table
+};
+yacco2::State S72_Cfsc_file = //State's vectored into symbol: "|?|"
+{72
+,0,0,0,0,0,(Reduce_tbl*)&S72rt_Cfsc_file,0,0,0};
+struct S73rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S73rtd_Cfsc_file S73rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA10_Cfsc_file,Cfsc_file::rhs1_Rlist_of_used_threads_}
+ }// end of reduce table
+};
+yacco2::State S73_Cfsc_file = //State's vectored into symbol: "list-of-used-threads"
+{73
+,0,0,0,0,0,(Reduce_tbl*)&S73rt_Cfsc_file,0,0,0};
+struct S74std_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S74std_Cfsc_file S74st_Cfsc_file = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S98_Cfsc_file} // shift sym: LR1_questionable_shift_operator
+ ,{280,(State*)&S99_Cfsc_file} // shift sym: T_int_no
+ ,{607,(State*)&S75_Cfsc_file} // shift sym: Rno_of_used_threads
+ }// end of shift table
+};
+yacco2::Shift_entry S74qse_Cfsc_file = {0,(State*)&S98_Cfsc_file};
+yacco2::State S74_Cfsc_file = //State's vectored into symbol: "Rlist_of_used_threads"
+{74
+,0,0,0,0,(Shift_tbl*)&S74st_Cfsc_file,0,0,0,(Shift_entry*)&S74qse_Cfsc_file
+};
+struct S75std_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S75std_Cfsc_file S75st_Cfsc_file = {
+ 5
+ ,
+ {// start of table
+ {279,(State*)&S100_Cfsc_file} // shift sym: T_identifier
+ ,{366,(State*)&S101_Cfsc_file} // shift sym: th_in_stbl
+ ,{608,(State*)&S76_Cfsc_file} // shift sym: Rused_threads_epi
+ ,{609,(State*)&S102_Cfsc_file} // shift sym: Rused_threads
+ ,{610,(State*)&S104_Cfsc_file} // shift sym: Rb_th
+ }// end of shift table
+};
+struct S75rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S75rtd_Cfsc_file S75rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA16_Cfsc_file,Cfsc_file::rhs2_Rused_threads_epi_}
+ }// end of reduce table
+};
+yacco2::State S75_Cfsc_file = //State's vectored into symbol: "Rno_of_used_threads"
+{75
+,0,0,0,0,(Shift_tbl*)&S75st_Cfsc_file,(Reduce_tbl*)&S75rt_Cfsc_file,0,0,0};
+struct S76std_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S76std_Cfsc_file S76st_Cfsc_file = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S77_Cfsc_file} // shift sym: LR1_questionable_shift_operator
+ ,{377,(State*)&S78_Cfsc_file} // shift sym: T_end_list_of_used_threads
+ ,{611,(State*)&S79_Cfsc_file} // shift sym: Rend_list_of_used_threads
+ }// end of shift table
+};
+yacco2::Shift_entry S76qse_Cfsc_file = {0,(State*)&S77_Cfsc_file};
+yacco2::State S76_Cfsc_file = //State's vectored into symbol: "Rused_threads_epi"
+{76
+,0,0,0,0,(Shift_tbl*)&S76st_Cfsc_file,0,0,0,(Shift_entry*)&S76qse_Cfsc_file
+};
+struct S77rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S77rtd_Cfsc_file S77rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA17_Cfsc_file,Cfsc_file::rhs2_Rend_list_of_used_threads_}
+ }// end of reduce table
+};
+yacco2::State S77_Cfsc_file = //State's vectored into symbol: "|?|"
+{77
+,0,0,0,0,0,(Reduce_tbl*)&S77rt_Cfsc_file,0,0,0};
+struct S78rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S78rtd_Cfsc_file S78rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA17_Cfsc_file,Cfsc_file::rhs1_Rend_list_of_used_threads_}
+ }// end of reduce table
+};
+yacco2::State S78_Cfsc_file = //State's vectored into symbol: "end-list-of-used-threads"
+{78
+,0,0,0,0,0,(Reduce_tbl*)&S78rt_Cfsc_file,0,0,0};
+struct S79rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S79rtd_Cfsc_file S79rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA17_Cfsc_file,Cfsc_file::rhs1_Rlist_of_used_threads_phrase_}
+ }// end of reduce table
+};
+yacco2::State S79_Cfsc_file = //State's vectored into symbol: "Rend_list_of_used_threads"
+{79
+,0,0,0,0,0,(Reduce_tbl*)&S79rt_Cfsc_file,0,0,0};
+struct S80rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S80rtd_Cfsc_file S80rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA18_Cfsc_file,Cfsc_file::rhs1_Rfsm_comments_}
+ }// end of reduce table
+};
+yacco2::State S80_Cfsc_file = //State's vectored into symbol: "#fsm-comments"
+{80
+,0,0,0,0,0,(Reduce_tbl*)&S80rt_Cfsc_file,0,0,0};
+struct S81std_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S81std_Cfsc_file S81st_Cfsc_file = {
+ 2
+ ,
+ {// start of table
+ {275,(State*)&S82_Cfsc_file} // shift sym: T_c_string
+ ,{614,(State*)&S83_Cfsc_file} // shift sym: Rfsm_comments_value
+ }// end of shift table
+};
+yacco2::State S81_Cfsc_file = //State's vectored into symbol: "Rfsm_comments"
+{81
+,0,0,0,0,(Shift_tbl*)&S81st_Cfsc_file,0,0,0,0};
+struct S82rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S82rtd_Cfsc_file S82rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA19_Cfsc_file,Cfsc_file::rhs1_Rfsm_comments_value_}
+ }// end of reduce table
+};
+yacco2::State S82_Cfsc_file = //State's vectored into symbol: "c-string"
+{82
+,0,0,0,0,0,(Reduce_tbl*)&S82rt_Cfsc_file,0,0,0};
+struct S83rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S83rtd_Cfsc_file S83rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA19_Cfsc_file,Cfsc_file::rhs1_Rfsm_comments_phrase_}
+ }// end of reduce table
+};
+yacco2::State S83_Cfsc_file = //State's vectored into symbol: "Rfsm_comments_value"
+{83
+,0,0,0,0,0,(Reduce_tbl*)&S83rt_Cfsc_file,0,0,0};
+struct S84rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S84rtd_Cfsc_file S84rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA20_Cfsc_file,Cfsc_file::rhs2_Rno_of_native_fset_terminals_}
+ }// end of reduce table
+};
+yacco2::State S84_Cfsc_file = //State's vectored into symbol: "|?|"
+{84
+,0,0,0,0,0,(Reduce_tbl*)&S84rt_Cfsc_file,0,0,0};
+struct S85rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S85rtd_Cfsc_file S85rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA20_Cfsc_file,Cfsc_file::rhs1_Rno_of_native_fset_terminals_}
+ }// end of reduce table
+};
+yacco2::State S85_Cfsc_file = //State's vectored into symbol: "int-no"
+{85
+,0,0,0,0,0,(Reduce_tbl*)&S85rt_Cfsc_file,0,0,0};
+struct S86rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S86rtd_Cfsc_file S86rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA20_Cfsc_file,Cfsc_file::rhs1_Ra_T_}
+ }// end of reduce table
+};
+yacco2::State S86_Cfsc_file = //State's vectored into symbol: "identifier"
+{86
+,0,0,0,0,0,(Reduce_tbl*)&S86rt_Cfsc_file,0,0,0};
+struct S87rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S87rtd_Cfsc_file S87rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA20_Cfsc_file,Cfsc_file::rhs2_Ra_T_}
+ }// end of reduce table
+};
+yacco2::State S87_Cfsc_file = //State's vectored into symbol: "tth-in-stbl"
+{87
+,0,0,0,0,0,(Reduce_tbl*)&S87rt_Cfsc_file,0,0,0};
+struct S88std_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S88std_Cfsc_file S88st_Cfsc_file = {
+ 3
+ ,
+ {// start of table
+ {279,(State*)&S86_Cfsc_file} // shift sym: T_identifier
+ ,{364,(State*)&S87_Cfsc_file} // shift sym: tth_in_stbl
+ ,{596,(State*)&S89_Cfsc_file} // shift sym: Ra_T
+ }// end of shift table
+};
+struct S88rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S88rtd_Cfsc_file S88rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA12_Cfsc_file,Cfsc_file::rhs1_Rfset_terminals_epi_}
+ }// end of reduce table
+};
+yacco2::State S88_Cfsc_file = //State's vectored into symbol: "Rfset_terminals"
+{88
+,0,0,0,0,(Shift_tbl*)&S88st_Cfsc_file,(Reduce_tbl*)&S88rt_Cfsc_file,0,0,0};
+struct S89rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S89rtd_Cfsc_file S89rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA20_Cfsc_file,Cfsc_file::rhs2_Rfset_terminals_}
+ }// end of reduce table
+};
+yacco2::State S89_Cfsc_file = //State's vectored into symbol: "Ra_T"
+{89
+,0,0,0,0,0,(Reduce_tbl*)&S89rt_Cfsc_file,0,0,0};
+struct S90rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S90rtd_Cfsc_file S90rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA20_Cfsc_file,Cfsc_file::rhs1_Rfset_terminals_}
+ }// end of reduce table
+};
+yacco2::State S90_Cfsc_file = //State's vectored into symbol: "Ra_T"
+{90
+,0,0,0,0,0,(Reduce_tbl*)&S90rt_Cfsc_file,0,0,0};
+struct S91rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S91rtd_Cfsc_file S91rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA21_Cfsc_file,Cfsc_file::rhs2_Rno_of_transitive_threads_}
+ }// end of reduce table
+};
+yacco2::State S91_Cfsc_file = //State's vectored into symbol: "|?|"
+{91
+,0,0,0,0,0,(Reduce_tbl*)&S91rt_Cfsc_file,0,0,0};
+struct S92rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S92rtd_Cfsc_file S92rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA21_Cfsc_file,Cfsc_file::rhs1_Rno_of_transitive_threads_}
+ }// end of reduce table
+};
+yacco2::State S92_Cfsc_file = //State's vectored into symbol: "int-no"
+{92
+,0,0,0,0,0,(Reduce_tbl*)&S92rt_Cfsc_file,0,0,0};
+struct S93rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S93rtd_Cfsc_file S93rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA21_Cfsc_file,Cfsc_file::rhs1_Ra_th_}
+ }// end of reduce table
+};
+yacco2::State S93_Cfsc_file = //State's vectored into symbol: "identifier"
+{93
+,0,0,0,0,0,(Reduce_tbl*)&S93rt_Cfsc_file,0,0,0};
+struct S94rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S94rtd_Cfsc_file S94rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA21_Cfsc_file,Cfsc_file::rhs2_Ra_th_}
+ }// end of reduce table
+};
+yacco2::State S94_Cfsc_file = //State's vectored into symbol: "th-in-stbl"
+{94
+,0,0,0,0,0,(Reduce_tbl*)&S94rt_Cfsc_file,0,0,0};
+struct S95std_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S95std_Cfsc_file S95st_Cfsc_file = {
+ 3
+ ,
+ {// start of table
+ {279,(State*)&S93_Cfsc_file} // shift sym: T_identifier
+ ,{366,(State*)&S94_Cfsc_file} // shift sym: th_in_stbl
+ ,{603,(State*)&S96_Cfsc_file} // shift sym: Ra_th
+ }// end of shift table
+};
+struct S95rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S95rtd_Cfsc_file S95rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA14_Cfsc_file,Cfsc_file::rhs1_Rtransitive_threads_epi_}
+ }// end of reduce table
+};
+yacco2::State S95_Cfsc_file = //State's vectored into symbol: "Rtransitive_threads"
+{95
+,0,0,0,0,(Shift_tbl*)&S95st_Cfsc_file,(Reduce_tbl*)&S95rt_Cfsc_file,0,0,0};
+struct S96rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S96rtd_Cfsc_file S96rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA21_Cfsc_file,Cfsc_file::rhs2_Rtransitive_threads_}
+ }// end of reduce table
+};
+yacco2::State S96_Cfsc_file = //State's vectored into symbol: "Ra_th"
+{96
+,0,0,0,0,0,(Reduce_tbl*)&S96rt_Cfsc_file,0,0,0};
+struct S97rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S97rtd_Cfsc_file S97rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA21_Cfsc_file,Cfsc_file::rhs1_Rtransitive_threads_}
+ }// end of reduce table
+};
+yacco2::State S97_Cfsc_file = //State's vectored into symbol: "Ra_th"
+{97
+,0,0,0,0,0,(Reduce_tbl*)&S97rt_Cfsc_file,0,0,0};
+struct S98rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S98rtd_Cfsc_file S98rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA22_Cfsc_file,Cfsc_file::rhs2_Rno_of_used_threads_}
+ }// end of reduce table
+};
+yacco2::State S98_Cfsc_file = //State's vectored into symbol: "|?|"
+{98
+,0,0,0,0,0,(Reduce_tbl*)&S98rt_Cfsc_file,0,0,0};
+struct S99rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S99rtd_Cfsc_file S99rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA22_Cfsc_file,Cfsc_file::rhs1_Rno_of_used_threads_}
+ }// end of reduce table
+};
+yacco2::State S99_Cfsc_file = //State's vectored into symbol: "int-no"
+{99
+,0,0,0,0,0,(Reduce_tbl*)&S99rt_Cfsc_file,0,0,0};
+struct S100rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S100rtd_Cfsc_file S100rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA22_Cfsc_file,Cfsc_file::rhs1_Rb_th_}
+ }// end of reduce table
+};
+yacco2::State S100_Cfsc_file = //State's vectored into symbol: "identifier"
+{100
+,0,0,0,0,0,(Reduce_tbl*)&S100rt_Cfsc_file,0,0,0};
+struct S101rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S101rtd_Cfsc_file S101rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA22_Cfsc_file,Cfsc_file::rhs2_Rb_th_}
+ }// end of reduce table
+};
+yacco2::State S101_Cfsc_file = //State's vectored into symbol: "th-in-stbl"
+{101
+,0,0,0,0,0,(Reduce_tbl*)&S101rt_Cfsc_file,0,0,0};
+struct S102std_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S102std_Cfsc_file S102st_Cfsc_file = {
+ 3
+ ,
+ {// start of table
+ {279,(State*)&S100_Cfsc_file} // shift sym: T_identifier
+ ,{366,(State*)&S101_Cfsc_file} // shift sym: th_in_stbl
+ ,{610,(State*)&S103_Cfsc_file} // shift sym: Rb_th
+ }// end of shift table
+};
+struct S102rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S102rtd_Cfsc_file S102rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA16_Cfsc_file,Cfsc_file::rhs1_Rused_threads_epi_}
+ }// end of reduce table
+};
+yacco2::State S102_Cfsc_file = //State's vectored into symbol: "Rused_threads"
+{102
+,0,0,0,0,(Shift_tbl*)&S102st_Cfsc_file,(Reduce_tbl*)&S102rt_Cfsc_file,0,0,0};
+struct S103rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S103rtd_Cfsc_file S103rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA22_Cfsc_file,Cfsc_file::rhs2_Rused_threads_}
+ }// end of reduce table
+};
+yacco2::State S103_Cfsc_file = //State's vectored into symbol: "Rb_th"
+{103
+,0,0,0,0,0,(Reduce_tbl*)&S103rt_Cfsc_file,0,0,0};
+struct S104rtd_Cfsc_file{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S104rtd_Cfsc_file S104rt_Cfsc_file = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA22_Cfsc_file,Cfsc_file::rhs1_Rused_threads_}
+ }// end of reduce table
+};
+yacco2::State S104_Cfsc_file = //State's vectored into symbol: "Rb_th"
+{104
+,0,0,0,0,0,(Reduce_tbl*)&S104rt_Cfsc_file,0,0,0};
diff --git a/web/yacco2/compiler/grammars/fsm_class_phrase_th.cpp b/web/yacco2/compiler/grammars/fsm_class_phrase_th.cpp
new file mode 100644
index 0000000000..c7e032e40d
--- /dev/null
+++ b/web/yacco2/compiler/grammars/fsm_class_phrase_th.cpp
@@ -0,0 +1,992 @@
+/*
+ File: fsm_class_phrase_th.cpp
+ Date and Time: Fri Jan 30 18:55:12 2015
+*/
+#include "fsm_class_phrase_th.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_fsm_class_phrase_th;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 15;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[4] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[5] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[6] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[7] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[8] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[9] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[10] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[11] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[12] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[13] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[14] = new Per_rule_s_reuse_table();
+}
+ Cfsm_class_phrase_th::
+ Cfsm_class_phrase_th()
+ :yacco2::CAbs_fsm
+ ("fsm_class_phrase_th.lex"
+ ,"1.0"
+ ,"2 mar 2004"
+ ,false
+ ,"Parse the fsm-class grammar construct."
+ ,"Fri Jan 30 18:55:12 2015 "
+ ,S1_Cfsm_class_phrase_th){
+
+ fsm_class_phrase_ = 0;
+
+ }
+
+Cfsm_class_phrase_th::~Cfsm_class_phrase_th(){
+
+ for(int x = 0;x < 15;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cfsm_class_phrase_th::failed(){
+ return false;
+ }
+ void Cfsm_class_phrase_th::op(){
+ if(fsm_class_phrase_ != 0){
+ delete fsm_class_phrase_;
+ fsm_class_phrase_ = 0;
+ }
+ fsm_class_phrase_ = new T_fsm_class_phrase;
+ fsm_class_phrase_->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ AST* t = new AST(*fsm_class_phrase_);
+ fsm_class_phrase_->phrase_tree(t);
+
+}
+int Cfsm_class_phrase_th::rhs_to_rules_mapping_[49] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,1 // subrule 4 for rule 2
+ ,2 // subrule 5 for rule 3
+ ,3 // subrule 6 for rule 4
+ ,3 // subrule 7 for rule 4
+ ,4 // subrule 8 for rule 5
+ ,5 // subrule 9 for rule 6
+ ,5 // subrule 10 for rule 6
+ ,5 // subrule 11 for rule 6
+ ,5 // subrule 12 for rule 6
+ ,5 // subrule 13 for rule 6
+ ,5 // subrule 14 for rule 6
+ ,5 // subrule 15 for rule 6
+ ,5 // subrule 16 for rule 6
+ ,5 // subrule 17 for rule 6
+ ,5 // subrule 18 for rule 6
+ ,5 // subrule 19 for rule 6
+ ,5 // subrule 20 for rule 6
+ ,6 // subrule 21 for rule 7
+ ,6 // subrule 22 for rule 7
+ ,7 // subrule 23 for rule 8
+ ,7 // subrule 24 for rule 8
+ ,8 // subrule 25 for rule 9
+ ,8 // subrule 26 for rule 9
+ ,9 // subrule 27 for rule 10
+ ,9 // subrule 28 for rule 10
+ ,9 // subrule 29 for rule 10
+ ,9 // subrule 30 for rule 10
+ ,9 // subrule 31 for rule 10
+ ,9 // subrule 32 for rule 10
+ ,9 // subrule 33 for rule 10
+ ,9 // subrule 34 for rule 10
+ ,9 // subrule 35 for rule 10
+ ,9 // subrule 36 for rule 10
+ ,9 // subrule 37 for rule 10
+ ,10 // subrule 38 for rule 11
+ ,10 // subrule 39 for rule 11
+ ,11 // subrule 40 for rule 12
+ ,11 // subrule 41 for rule 12
+ ,12 // subrule 42 for rule 13
+ ,12 // subrule 43 for rule 13
+ ,13 // subrule 44 for rule 14
+ ,13 // subrule 45 for rule 14
+ ,13 // subrule 46 for rule 14
+ ,14 // subrule 47 for rule 15
+ ,14 // subrule 48 for rule 15
+};
+
+ void Cfsm_class_phrase_th::remove_directives_from_map(){
+ delete fsm_class_phrase_;
+ fsm_class_phrase_ = 0;
+ }
+
+
+ yacco2::CAbs_lr1_sym* // 0 - ok, or error
+ Cfsm_class_phrase_th::
+ add_directive_to_map(yacco2::CAbs_lr1_sym* Directive){
+ CAbs_lr1_sym* sym =
+ fsm_class_phrase_->add_directive_to_map(Directive,parser__);
+ return sym;
+ }
+
+ void Cfsm_class_phrase_th::
+ add_sdc_to_directive(yacco2::CAbs_lr1_sym* Dr,T_syntax_code* Sdc){
+ using namespace NS_yacco2_T_enum;
+ int eid = Dr->enumerated_id__;
+ switch (eid){
+ case T_Enum::T_T_user_declaration_: {
+ T_user_declaration* k = (T_user_declaration*)Dr;
+ k->syntax_code(Sdc);
+ break;
+ }
+ case T_Enum::T_T_user_prefix_declaration_: {
+ T_user_prefix_declaration* k = (T_user_prefix_declaration*)Dr;
+ k->syntax_code(Sdc);
+ break;
+ }
+ case T_Enum::T_T_user_suffix_declaration_: {
+ T_user_suffix_declaration* k = (T_user_suffix_declaration*)Dr;
+ k->syntax_code(Sdc);
+ break;
+ }
+ case T_Enum::T_T_constructor_: {
+ T_constructor* k = (T_constructor*)Dr;
+ k->syntax_code(Sdc);
+ break;
+ }
+ case T_Enum::T_T_destructor_: {
+ T_destructor* k = (T_destructor*)Dr;
+ k->syntax_code(Sdc);
+ break;
+ }
+ case T_Enum::T_T_op_: {
+ T_op* k = (T_op*)Dr;
+ k->syntax_code(Sdc);
+ break;
+ }
+ case T_Enum::T_T_failed_: {
+ T_failed* k = (T_failed*)Dr;
+ k->syntax_code(Sdc);
+ break;
+ }
+ case T_Enum::T_T_user_implementation_: {
+ T_user_implementation* k = (T_user_implementation*)Dr;
+ k->syntax_code(Sdc);
+ break;
+ }
+ case T_Enum::T_T_user_imp_tbl_: {
+ T_user_imp_tbl* k = (T_user_imp_tbl*)Dr;
+ k->syntax_code(Sdc);
+ break;
+ }
+ case T_Enum::T_T_user_imp_sym_: {
+ T_user_imp_sym* k = (T_user_imp_sym*)Dr;
+ k->syntax_code(Sdc);
+ break;
+ }
+ default: {
+ CAbs_lr1_sym* sym = new Err_improper_directive;
+ sym->set_rc(*Dr,__FILE__,__LINE__);
+ RSVP_FSM(sym);
+ parser__->set_stop_parse(true);
+ }
+ }
+ }
+
+Rfsm_class_phrase_th::Rfsm_class_phrase_th(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfsm_class_phrase_th",0,Cfsm_class_phrase_th::R_Rfsm_class_phrase_th_,P,false,false){
+}
+
+void Rfsm_class_phrase_th::sr1(){
+
+ Cfsm_class_phrase_th* fsm =
+ (Cfsm_class_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ RSVP(fsm->fsm_class_phrase_);
+ fsm->fsm_class_phrase_ = 0;
+
+}
+
+Rid::Rid(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rid",0,Cfsm_class_phrase_th::R_Rid_,P,false,false){
+}
+
+void Rid::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_identifier* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cfsm_class_phrase_th* fsm =
+ (Cfsm_class_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->fsm_class_phrase_->identifier(sf->p2__);
+
+}
+
+void Rid::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_identifier_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rid::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_identifier_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rpotential_code_blk::Rpotential_code_blk(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rpotential_code_blk",0,Cfsm_class_phrase_th::R_Rpotential_code_blk_,P,false,false){
+}
+
+Rpotential_directives::Rpotential_directives(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rpotential_directives",0,Cfsm_class_phrase_th::R_Rpotential_directives_,P,false,false){
+}
+
+Rmust_directive_phrase::Rmust_directive_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rmust_directive_phrase",0,Cfsm_class_phrase_th::R_Rmust_directive_phrase_,P,false,false){
+}
+
+void Rmust_directive_phrase::sr1(){
+ struct SF{
+ Rdirective_cweb_k* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Rlint* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ Rmust_directive* p3__;
+ State* s3__;
+ bool abort3__;
+ Rule_s_reuse_entry* rule_s_reuse_entry3__;
+ Rsyntax_code* p4__;
+ State* s4__;
+ bool abort4__;
+ Rule_s_reuse_entry* rule_s_reuse_entry4__;
+ Rlint* p5__;
+ State* s5__;
+ bool abort5__;
+ Rule_s_reuse_entry* rule_s_reuse_entry5__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(5);
+
+ AST* cwebt = sf->p1__->cweb_t_;
+ Rmust_directive* dir = sf->p3__;
+ Rsyntax_code* sdc = sf->p4__;
+ if(cwebt != 0)
+ sdc->syntax_code_->add_cweb_marker(cwebt);
+ Cfsm_class_phrase_th* fsm =
+ (Cfsm_class_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->add_sdc_to_directive(dir->directive_,sdc->syntax_code_);
+
+}
+
+Rmust_directive::Rmust_directive(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rmust_directive",0,Cfsm_class_phrase_th::R_Rmust_directive_,P,false,false){
+}
+
+void Rmust_directive::op(){
+ sstrace_rulesss
+
+ if(directive_ == 0) return;
+ Cfsm_class_phrase_th* fsm = (
+ Cfsm_class_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* result = fsm->add_directive_to_map(directive_);
+ if(result == 0) return;// ok added
+ directive_->set_auto_delete(true);//dup: delete when popped from stack
+ RSVP(result);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+void Rmust_directive::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_user_declaration* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = sf->p2__;
+
+}
+
+void Rmust_directive::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_user_implementation* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = sf->p2__;
+
+}
+
+void Rmust_directive::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_user_prefix_declaration* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = sf->p2__;
+
+}
+
+void Rmust_directive::sr4(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_user_suffix_declaration* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = sf->p2__;
+
+}
+
+void Rmust_directive::sr5(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_constructor* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = sf->p2__;
+
+}
+
+void Rmust_directive::sr6(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_destructor* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = sf->p2__;
+
+}
+
+void Rmust_directive::sr7(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_op* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = sf->p2__;
+
+}
+
+void Rmust_directive::sr8(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_failed* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = sf->p2__;
+
+}
+
+void Rmust_directive::sr9(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_user_imp_tbl* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = sf->p2__;
+
+}
+
+void Rmust_directive::sr10(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_user_imp_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = sf->p2__;
+
+}
+
+void Rmust_directive::sr11(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = 0;
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_improper_directive;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rmust_directive::sr12(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ directive_ = 0;
+ CAbs_lr1_sym* sym = new Err_no_directive_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rmaybe_more_directives::Rmaybe_more_directives(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rmaybe_more_directives",0,Cfsm_class_phrase_th::R_Rmaybe_more_directives_,P,false,false){
+}
+
+Rmaybe_directive_phrases::Rmaybe_directive_phrases(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rmaybe_directive_phrases",0,Cfsm_class_phrase_th::R_Rmaybe_directive_phrases_,P,false,false){
+}
+
+Rmaybe_directive_phrase::Rmaybe_directive_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rmaybe_directive_phrase",0,Cfsm_class_phrase_th::R_Rmaybe_directive_phrase_,P,false,false){
+}
+
+void Rmaybe_directive_phrase::sr1(){
+ struct SF{
+ Rcweb_k* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Rlint* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ Rdirective* p3__;
+ State* s3__;
+ bool abort3__;
+ Rule_s_reuse_entry* rule_s_reuse_entry3__;
+ Rsyntax_code* p4__;
+ State* s4__;
+ bool abort4__;
+ Rule_s_reuse_entry* rule_s_reuse_entry4__;
+ Rlint* p5__;
+ State* s5__;
+ bool abort5__;
+ Rule_s_reuse_entry* rule_s_reuse_entry5__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(5);
+
+ AST* cwebt = sf->p1__->cweb_t_;
+ Rdirective* dir = sf->p3__;
+ Rsyntax_code* sdc = sf->p4__;
+ if(cwebt != 0)
+ sdc->syntax_code_->add_cweb_marker(cwebt);
+ Cfsm_class_phrase_th* fsm =
+ (Cfsm_class_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->add_sdc_to_directive(dir->directive_,sdc->syntax_code_);
+
+}
+
+void Rmaybe_directive_phrase::sr2(){
+ struct SF{
+ Rdirective* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Rsyntax_code* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ Rlint* p3__;
+ State* s3__;
+ bool abort3__;
+ Rule_s_reuse_entry* rule_s_reuse_entry3__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(3);
+
+ Rdirective* dir = sf->p1__;
+ Rsyntax_code* sdc = sf->p2__;
+ Cfsm_class_phrase_th* fsm =
+ (Cfsm_class_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->add_sdc_to_directive(dir->directive_,sdc->syntax_code_);
+
+}
+
+Rdirective::Rdirective(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rdirective",0,Cfsm_class_phrase_th::R_Rdirective_,P,false,false){
+}
+
+void Rdirective::op(){
+ sstrace_rulesss
+
+ if(directive_ == 0) return;
+ Cfsm_class_phrase_th* fsm = (
+ Cfsm_class_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* result = fsm->add_directive_to_map(directive_);
+ if(result == 0) return;// ok added
+ directive_->set_auto_delete(true);//dup: delete when popped from stack
+ RSVP(result);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+void Rdirective::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_user_declaration* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = sf->p2__;
+
+}
+
+void Rdirective::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_user_implementation* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = sf->p2__;
+
+}
+
+void Rdirective::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_user_prefix_declaration* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = sf->p2__;
+
+}
+
+void Rdirective::sr4(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_user_suffix_declaration* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = sf->p2__;
+
+}
+
+void Rdirective::sr5(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_constructor* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = sf->p2__;
+
+}
+
+void Rdirective::sr6(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_destructor* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = sf->p2__;
+
+}
+
+void Rdirective::sr7(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_op* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = sf->p2__;
+
+}
+
+void Rdirective::sr8(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_failed* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = sf->p2__;
+
+}
+
+void Rdirective::sr9(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_user_imp_tbl* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = sf->p2__;
+
+}
+
+void Rdirective::sr10(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_user_imp_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = sf->p2__;
+
+}
+
+void Rdirective::sr11(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = 0;
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_improper_directive;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rclosing_brace::Rclosing_brace(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rclosing_brace",0,Cfsm_class_phrase_th::R_Rclosing_brace_,P,false,false){
+}
+
+void Rclosing_brace::sr1(){
+
+ CAbs_lr1_sym* sym = new Err_no_close_brace;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rsyntax_code::Rsyntax_code(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsyntax_code",0,Cfsm_class_phrase_th::R_Rsyntax_code_,P,false,false){
+}
+
+void Rsyntax_code::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_syntax_code* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ syntax_code_ = sf->p2__;
+
+}
+
+void Rsyntax_code::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ syntax_code_ = 0;
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rlint::Rlint(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlint",0,Cfsm_class_phrase_th::R_Rlint_,P,false,false){
+}
+
+Rdirective_cweb_k::Rdirective_cweb_k(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rdirective_cweb_k",0,Cfsm_class_phrase_th::R_Rdirective_cweb_k_,P,false,false){
+}
+
+void Rdirective_cweb_k::ctor(){
+
+ cweb_t_ = 0;
+
+}
+void Rdirective_cweb_k::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_cweb_comment* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ T_cweb_comment* k = sf->p2__;
+ AST* cwebk_t_ = new AST(*k);
+ cweb_t_ = new AST();
+ T_cweb_marker* cw = new T_cweb_marker(cweb_t_);
+ AST::set_content(*cweb_t_,*cw);
+
+ cw->set_rc(*k,__FILE__,__LINE__);
+ AST::join_pts(*cweb_t_,*cwebk_t_);
+
+}
+
+void Rdirective_cweb_k::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Err_comment_overrun* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rcweb_k::Rcweb_k(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rcweb_k",0,Cfsm_class_phrase_th::R_Rcweb_k_,P,false,false){
+}
+
+void Rcweb_k::ctor(){
+
+ cweb_t_ = 0;
+
+}
+void Rcweb_k::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_cweb_comment* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ T_cweb_comment* k = sf->p2__;
+ AST* cwebk_t_ = new AST(*k);
+ cweb_t_ = new AST();
+ T_cweb_marker* cw = new T_cweb_marker(cweb_t_);
+ AST::set_content(*cweb_t_,*cw);
+ cw->set_rc(*k,__FILE__,__LINE__);
+ AST::join_pts(*cweb_t_,*cwebk_t_);
+
+}
+
+void Rcweb_k::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Err_comment_overrun* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
diff --git a/web/yacco2/compiler/grammars/fsm_class_phrase_th.fsc b/web/yacco2/compiler/grammars/fsm_class_phrase_th.fsc
new file mode 100644
index 0000000000..b6c65acc77
--- /dev/null
+++ b/web/yacco2/compiler/grammars/fsm_class_phrase_th.fsc
@@ -0,0 +1,25 @@
+/*
+ File: fsm_class_phrase_th.fsc
+ Date and Time: Fri Jan 30 18:55:12 2015
+*/
+transitive y
+grammar-name "fsm_class_phrase_th"
+name-space "NS_fsm_class_phrase_th"
+thread-name "TH_fsm_class_phrase_th"
+monolithic n
+file-name "fsm_class_phrase_th.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ LR1_questionable_shift_operator
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 1
+ NS_identifier::TH_identifier
+end-list-of-transitive-threads
+list-of-used-threads 4
+ NS_cweb_or_c_k::TH_cweb_or_c_k
+ NS_identifier::TH_identifier
+ NS_lint_balls::TH_lint_balls
+ NS_o2_sdc::TH_o2_sdc
+end-list-of-used-threads
+fsm-comments
+"Parse the fsm-class grammar construct."
diff --git a/web/yacco2/compiler/grammars/fsm_class_phrase_th.h b/web/yacco2/compiler/grammars/fsm_class_phrase_th.h
new file mode 100644
index 0000000000..7212e4336d
--- /dev/null
+++ b/web/yacco2/compiler/grammars/fsm_class_phrase_th.h
@@ -0,0 +1,270 @@
+/*
+ File: fsm_class_phrase_th.h
+ Date and Time: Fri Jan 30 18:55:12 2015
+*/
+#ifndef __fsm_class_phrase_th_h__
+#define __fsm_class_phrase_th_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+using namespace NS_yacco2_terminals;
+#include "lint_balls.h"
+#include "cweb_or_c_k.h"
+#include "identifier.h"
+#include "o2_sdc.h"
+
+extern yacco2::Thread_entry ITH_fsm_class_phrase_th;
+
+extern yacco2::State S1_Cfsm_class_phrase_th;
+namespace NS_fsm_class_phrase_th {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_fsm_class_phrase_th(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_fsm_class_phrase_th(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[15];
+};
+class Cfsm_class_phrase_th: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rfsm_class_phrase_th_ = 569//start_of_rule_list + 0
+ ,rhs1_Rfsm_class_phrase_th_ = 1
+ ,R_Rid_ = 570//start_of_rule_list + 2
+ ,rhs1_Rid_ = 2
+ ,rhs2_Rid_ = 3
+ ,rhs3_Rid_ = 4
+ ,R_Rpotential_code_blk_ = 571//start_of_rule_list + 4
+ ,rhs1_Rpotential_code_blk_ = 5
+ ,R_Rpotential_directives_ = 572//start_of_rule_list + 6
+ ,rhs1_Rpotential_directives_ = 6
+ ,rhs2_Rpotential_directives_ = 7
+ ,R_Rmust_directive_phrase_ = 573//start_of_rule_list + 8
+ ,rhs1_Rmust_directive_phrase_ = 8
+ ,R_Rmust_directive_ = 574//start_of_rule_list + 10
+ ,rhs1_Rmust_directive_ = 9
+ ,rhs2_Rmust_directive_ = 10
+ ,rhs3_Rmust_directive_ = 11
+ ,rhs4_Rmust_directive_ = 12
+ ,rhs5_Rmust_directive_ = 13
+ ,rhs6_Rmust_directive_ = 14
+ ,rhs7_Rmust_directive_ = 15
+ ,rhs8_Rmust_directive_ = 16
+ ,rhs9_Rmust_directive_ = 17
+ ,rhs10_Rmust_directive_ = 18
+ ,rhs11_Rmust_directive_ = 19
+ ,rhs12_Rmust_directive_ = 20
+ ,R_Rmaybe_more_directives_ = 575//start_of_rule_list + 12
+ ,rhs1_Rmaybe_more_directives_ = 21
+ ,rhs2_Rmaybe_more_directives_ = 22
+ ,R_Rmaybe_directive_phrases_ = 576//start_of_rule_list + 14
+ ,rhs1_Rmaybe_directive_phrases_ = 23
+ ,rhs2_Rmaybe_directive_phrases_ = 24
+ ,R_Rmaybe_directive_phrase_ = 577//start_of_rule_list + 16
+ ,rhs1_Rmaybe_directive_phrase_ = 25
+ ,rhs2_Rmaybe_directive_phrase_ = 26
+ ,R_Rdirective_ = 578//start_of_rule_list + 18
+ ,rhs1_Rdirective_ = 27
+ ,rhs2_Rdirective_ = 28
+ ,rhs3_Rdirective_ = 29
+ ,rhs4_Rdirective_ = 30
+ ,rhs5_Rdirective_ = 31
+ ,rhs6_Rdirective_ = 32
+ ,rhs7_Rdirective_ = 33
+ ,rhs8_Rdirective_ = 34
+ ,rhs9_Rdirective_ = 35
+ ,rhs10_Rdirective_ = 36
+ ,rhs11_Rdirective_ = 37
+ ,R_Rclosing_brace_ = 579//start_of_rule_list + 20
+ ,rhs1_Rclosing_brace_ = 38
+ ,rhs2_Rclosing_brace_ = 39
+ ,R_Rsyntax_code_ = 580//start_of_rule_list + 22
+ ,rhs1_Rsyntax_code_ = 40
+ ,rhs2_Rsyntax_code_ = 41
+ ,R_Rlint_ = 581//start_of_rule_list + 24
+ ,rhs1_Rlint_ = 42
+ ,rhs2_Rlint_ = 43
+ ,R_Rdirective_cweb_k_ = 582//start_of_rule_list + 26
+ ,rhs1_Rdirective_cweb_k_ = 44
+ ,rhs2_Rdirective_cweb_k_ = 45
+ ,rhs3_Rdirective_cweb_k_ = 46
+ ,R_Rcweb_k_ = 583//start_of_rule_list + 28
+ ,rhs1_Rcweb_k_ = 47
+ ,rhs2_Rcweb_k_ = 48
+ };
+ //no of la sets = 7
+ //no of states = 70
+ Cfsm_class_phrase_th();
+ ~Cfsm_class_phrase_th();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[49];
+
+ public:
+ T_fsm_class_phrase* fsm_class_phrase_;
+ std::map<std::string,yacco2::CAbs_lr1_sym*> directives_map_;
+ void remove_directives_from_map();
+ yacco2::CAbs_lr1_sym* add_directive_to_map(yacco2::CAbs_lr1_sym* Directive);
+ void add_sdc_to_directive(yacco2::CAbs_lr1_sym* Dir,T_syntax_code* Sdc);
+
+ };
+struct Rfsm_class_phrase_th;
+struct Rid;
+struct Rpotential_code_blk;
+struct Rpotential_directives;
+struct Rmust_directive_phrase;
+struct Rmust_directive;
+struct Rmaybe_more_directives;
+struct Rmaybe_directive_phrases;
+struct Rmaybe_directive_phrase;
+struct Rdirective;
+struct Rclosing_brace;
+struct Rsyntax_code;
+struct Rlint;
+struct Rdirective_cweb_k;
+struct Rcweb_k;
+struct Rfsm_class_phrase_th:public yacco2::CAbs_lr1_sym {
+ Rfsm_class_phrase_th(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rid:public yacco2::CAbs_lr1_sym {
+ Rid(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Rpotential_code_blk:public yacco2::CAbs_lr1_sym {
+ Rpotential_code_blk(yacco2::Parser* P);
+ public:
+};
+
+struct Rpotential_directives:public yacco2::CAbs_lr1_sym {
+ Rpotential_directives(yacco2::Parser* P);
+ public:
+};
+
+struct Rmust_directive_phrase:public yacco2::CAbs_lr1_sym {
+ Rmust_directive_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rmust_directive:public yacco2::CAbs_lr1_sym {
+ Rmust_directive(yacco2::Parser* P);
+ void op();
+
+ CAbs_lr1_sym* directive_;
+
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+ void sr5();
+ void sr6();
+ void sr7();
+ void sr8();
+ void sr9();
+ void sr10();
+ void sr11();
+ void sr12();
+};
+
+struct Rmaybe_more_directives:public yacco2::CAbs_lr1_sym {
+ Rmaybe_more_directives(yacco2::Parser* P);
+ public:
+};
+
+struct Rmaybe_directive_phrases:public yacco2::CAbs_lr1_sym {
+ Rmaybe_directive_phrases(yacco2::Parser* P);
+ public:
+};
+
+struct Rmaybe_directive_phrase:public yacco2::CAbs_lr1_sym {
+ Rmaybe_directive_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rdirective:public yacco2::CAbs_lr1_sym {
+ Rdirective(yacco2::Parser* P);
+ void op();
+
+ CAbs_lr1_sym* directive_;
+
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+ void sr5();
+ void sr6();
+ void sr7();
+ void sr8();
+ void sr9();
+ void sr10();
+ void sr11();
+};
+
+struct Rclosing_brace:public yacco2::CAbs_lr1_sym {
+ Rclosing_brace(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rsyntax_code:public yacco2::CAbs_lr1_sym {
+ Rsyntax_code(yacco2::Parser* P);
+
+ T_syntax_code* syntax_code_;
+
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rlint:public yacco2::CAbs_lr1_sym {
+ Rlint(yacco2::Parser* P);
+ public:
+};
+
+struct Rdirective_cweb_k:public yacco2::CAbs_lr1_sym {
+ Rdirective_cweb_k(yacco2::Parser* P);
+ void ctor();
+
+ AST* cweb_t_;
+
+ public:
+ void sr2();
+ void sr3();
+};
+
+struct Rcweb_k:public yacco2::CAbs_lr1_sym {
+ Rcweb_k(yacco2::Parser* P);
+ void ctor();
+
+ AST* cweb_t_;
+
+ public:
+ void sr1();
+ void sr2();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/fsm_class_phrase_th.lex b/web/yacco2/compiler/grammars/fsm_class_phrase_th.lex
new file mode 100644
index 0000000000..e8854c013a
--- /dev/null
+++ b/web/yacco2/compiler/grammars/fsm_class_phrase_th.lex
@@ -0,0 +1,509 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: fsm_class_phrase_th.lex
+Dates: 2 Mar 2004
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |fsm_class_phrase_th| Thread.\fbreak
+Parse fsm-class phrase along with its directives.\fbreak
+\fbreak
+|cweave| coughs so forgive it until i correct |cweave|.\fbreak
+\fbreak
+Example of a fsm's class to parse:\fbreak
+\listing{"/usr/local/yacco2/diagrams+etc/fsmclass.txt"}
+@/
+fsm
+(fsm-id "fsm_class_phrase_th.lex",fsm-filename fsm_class_phrase_th,fsm-namespace NS_fsm_class_phrase_th
+,fsm-class Cfsm_class_phrase_th{
+ user-prefix-declaration
+using namespace NS_yacco2_terminals;
+#include "lint_balls.h"
+#include "cweb_or_c_k.h"
+#include "identifier.h"
+#include "o2_sdc.h"
+ ***
+ user-declaration
+ public:
+ T_fsm_class_phrase* fsm_class_phrase_;
+ std::map<std::string,yacco2::CAbs_lr1_sym*> directives_map_;
+ void remove_directives_from_map();
+ yacco2::CAbs_lr1_sym* add_directive_to_map(yacco2::CAbs_lr1_sym* Directive);
+ void add_sdc_to_directive(yacco2::CAbs_lr1_sym* Dir,T_syntax_code* Sdc);
+ ***
+ constructor
+ fsm_class_phrase_ = 0;
+ ***
+ user-implementation
+ void Cfsm_class_phrase_th::remove_directives_from_map(){
+ delete fsm_class_phrase_;
+ fsm_class_phrase_ = 0;
+ }
+
+/@
+@*3 |add_directive_to_map|.
+@/
+ yacco2::CAbs_lr1_sym* // 0 - ok, or error
+ Cfsm_class_phrase_th::
+ add_directive_to_map(yacco2::CAbs_lr1_sym* Directive){
+ CAbs_lr1_sym* sym =
+ fsm_class_phrase_->add_directive_to_map(Directive,parser__);
+ return sym;
+ }
+/@
+@*3 |add_sdc_to_directive|.
+@/
+ void Cfsm_class_phrase_th::
+ add_sdc_to_directive(yacco2::CAbs_lr1_sym* Dr,T_syntax_code* Sdc){
+ using namespace NS_yacco2_T_enum;
+ int eid = Dr->enumerated_id__;
+ switch (eid){
+ case T_Enum::T_T_user_declaration_: {
+ T_user_declaration* k = (T_user_declaration*)Dr;
+ k->syntax_code(Sdc);
+ break;
+ }
+ case T_Enum::T_T_user_prefix_declaration_: {
+ T_user_prefix_declaration* k = (T_user_prefix_declaration*)Dr;
+ k->syntax_code(Sdc);
+ break;
+ }
+ case T_Enum::T_T_user_suffix_declaration_: {
+ T_user_suffix_declaration* k = (T_user_suffix_declaration*)Dr;
+ k->syntax_code(Sdc);
+ break;
+ }
+ case T_Enum::T_T_constructor_: {
+ T_constructor* k = (T_constructor*)Dr;
+ k->syntax_code(Sdc);
+ break;
+ }
+ case T_Enum::T_T_destructor_: {
+ T_destructor* k = (T_destructor*)Dr;
+ k->syntax_code(Sdc);
+ break;
+ }
+ case T_Enum::T_T_op_: {
+ T_op* k = (T_op*)Dr;
+ k->syntax_code(Sdc);
+ break;
+ }
+ case T_Enum::T_T_failed_: {
+ T_failed* k = (T_failed*)Dr;
+ k->syntax_code(Sdc);
+ break;
+ }
+ case T_Enum::T_T_user_implementation_: {
+ T_user_implementation* k = (T_user_implementation*)Dr;
+ k->syntax_code(Sdc);
+ break;
+ }
+ case T_Enum::T_T_user_imp_tbl_: {
+ T_user_imp_tbl* k = (T_user_imp_tbl*)Dr;
+ k->syntax_code(Sdc);
+ break;
+ }
+ case T_Enum::T_T_user_imp_sym_: {
+ T_user_imp_sym* k = (T_user_imp_sym*)Dr;
+ k->syntax_code(Sdc);
+ break;
+ }
+ default: {
+ CAbs_lr1_sym* sym = new Err_improper_directive;
+ sym->set_rc(*Dr,__FILE__,__LINE__);
+ RSVP_FSM(sym);
+ parser__->set_stop_parse(true);
+ }
+ }
+ }
+ ***
+ op
+ if(fsm_class_phrase_ != 0){
+ delete fsm_class_phrase_;
+ fsm_class_phrase_ = 0;
+ }
+ fsm_class_phrase_ = new T_fsm_class_phrase;
+ fsm_class_phrase_->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ AST* t = new AST(*fsm_class_phrase_);
+ fsm_class_phrase_->phrase_tree(t);
+ ***
+}
+,fsm-version "1.0",fsm-date "2 mar 2004",fsm-debug "false"
+,fsm-comments "Parse the fsm-class grammar construct.")
+parallel-parser
+(
+ parallel-thread-function
+ TH_fsm_class_phrase_th
+ ***
+ parallel-la-boundary
+ eolr
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rfsm_class_phrase_th (){
+ -> Rid Rlint Rpotential_code_blk {
+ op
+ Cfsm_class_phrase_th* fsm =
+ (Cfsm_class_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ RSVP(fsm->fsm_class_phrase_);
+ fsm->fsm_class_phrase_ = 0;
+ ***
+ }
+}
+
+Rid (){
+ -> ||| identifier NS_identifier::TH_identifier {
+ op
+ Cfsm_class_phrase_th* fsm =
+ (Cfsm_class_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->fsm_class_phrase_->identifier(sf->p2__);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_identifier_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_identifier_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rpotential_code_blk (){
+ -> Rpotential_directives
+}
+
+Rpotential_directives (){
+ -> |.|
+ -> "{" Rlint Rmust_directive_phrase
+ Rmaybe_more_directives Rclosing_brace Rlint
+}
+
+Rmust_directive_phrase (){
+ -> Rdirective_cweb_k Rlint Rmust_directive Rsyntax_code Rlint {
+ op
+ AST* cwebt = sf->p1__->cweb_t_;
+ Rmust_directive* dir = sf->p3__;
+ Rsyntax_code* sdc = sf->p4__;
+ if(cwebt != 0)
+ sdc->syntax_code_->add_cweb_marker(cwebt);
+ Cfsm_class_phrase_th* fsm =
+ (Cfsm_class_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->add_sdc_to_directive(dir->directive_,sdc->syntax_code_);
+ ***
+ }
+}
+
+Rmust_directive (
+lhs {
+ user-declaration
+ CAbs_lr1_sym* directive_;
+ ***
+ op
+ if(directive_ == 0) return;
+ Cfsm_class_phrase_th* fsm = (
+ Cfsm_class_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* result = fsm->add_directive_to_map(directive_);
+ if(result == 0) return;// ok added
+ directive_->set_auto_delete(true);//dup: delete when popped from stack
+ RSVP(result);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+){
+ -> ||| "#user-declaration" NS_identifier::TH_identifier {
+ op
+ directive_ = sf->p2__;
+ ***
+ }
+ -> ||| "#user-implementation" NULL {
+ op
+ directive_ = sf->p2__;
+ ***
+ }
+ -> ||| "#user-prefix-declaration" NULL {
+ op
+ directive_ = sf->p2__;
+ ***
+ }
+ -> ||| "#user-suffix-declaration" NULL {
+ op
+ directive_ = sf->p2__;
+ ***
+ }
+ -> ||| "#constructor" NULL {
+ op
+ directive_ = sf->p2__;
+ ***
+ }
+ -> ||| "#destructor" NULL {
+ op
+ directive_ = sf->p2__;
+ ***
+ }
+ -> ||| "#op" NULL {
+ op
+ directive_ = sf->p2__;
+ ***
+ }
+ -> ||| "#failed" NULL {
+ op
+ directive_ = sf->p2__;
+ ***
+ }
+ -> ||| "#user-imp-tbl" NULL {
+ op
+ directive_ = sf->p2__;
+ ***
+ }
+ -> ||| "#user-imp-sym" NULL {
+ op
+ directive_ = sf->p2__;
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ directive_ = 0;
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_improper_directive;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ directive_ = 0;
+ CAbs_lr1_sym* sym = new Err_no_directive_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rmaybe_more_directives (){
+ -> //|+| // force the reduce
+ -> Rmaybe_directive_phrases
+}
+
+Rmaybe_directive_phrases (){
+ -> Rmaybe_directive_phrase
+ -> Rmaybe_directive_phrases Rmaybe_directive_phrase
+}
+
+Rmaybe_directive_phrase (){
+ -> Rcweb_k Rlint Rdirective Rsyntax_code Rlint {
+ op
+ AST* cwebt = sf->p1__->cweb_t_;
+ Rdirective* dir = sf->p3__;
+ Rsyntax_code* sdc = sf->p4__;
+ if(cwebt != 0)
+ sdc->syntax_code_->add_cweb_marker(cwebt);
+ Cfsm_class_phrase_th* fsm =
+ (Cfsm_class_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->add_sdc_to_directive(dir->directive_,sdc->syntax_code_);
+ ***
+ }
+ -> Rdirective Rsyntax_code Rlint {
+ op
+ Rdirective* dir = sf->p1__;
+ Rsyntax_code* sdc = sf->p2__;
+ Cfsm_class_phrase_th* fsm =
+ (Cfsm_class_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->add_sdc_to_directive(dir->directive_,sdc->syntax_code_);
+ ***
+ }
+}
+
+Rdirective (
+lhs {
+ user-declaration
+ CAbs_lr1_sym* directive_;
+ ***
+ op
+ if(directive_ == 0) return;
+ Cfsm_class_phrase_th* fsm = (
+ Cfsm_class_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* result = fsm->add_directive_to_map(directive_);
+ if(result == 0) return;// ok added
+ directive_->set_auto_delete(true);//dup: delete when popped from stack
+ RSVP(result);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+){
+ -> ||| "#user-declaration" NS_identifier::TH_identifier {
+ op
+ directive_ = sf->p2__;
+ ***
+ }
+ -> ||| "#user-implementation" NULL {
+ op
+ directive_ = sf->p2__;
+ ***
+ }
+ -> ||| "#user-prefix-declaration" NULL {
+ op
+ directive_ = sf->p2__;
+ ***
+ }
+ -> ||| "#user-suffix-declaration" NULL {
+ op
+ directive_ = sf->p2__;
+ ***
+ }
+ -> ||| "#constructor" NULL {
+ op
+ directive_ = sf->p2__;
+ ***
+ }
+ -> ||| "#destructor" NULL {
+ op
+ directive_ = sf->p2__;
+ ***
+ }
+ -> ||| "#op" NULL {
+ op
+ directive_ = sf->p2__;
+ ***
+ }
+ -> ||| "#failed" NULL {
+ op
+ directive_ = sf->p2__;
+ ***
+ }
+ -> ||| "#user-imp-tbl" NULL {
+ op
+ directive_ = sf->p2__;
+ ***
+ }
+ -> ||| "#user-imp-sym" NULL {
+ op
+ directive_ = sf->p2__;
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ directive_ = 0;
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_improper_directive;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rclosing_brace (){
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_close_brace;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> "}"
+}
+
+Rsyntax_code (
+lhs {
+ user-declaration
+ T_syntax_code* syntax_code_;
+ ***
+ }
+){
+ -> ||| "syntax-code" NS_o2_sdc::TH_o2_sdc {
+ op
+ syntax_code_ = sf->p2__;
+ ***
+ }
+ -> ||| |?| NULL { // catcher in the Rye? These are errors
+ op
+ syntax_code_ = 0;
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rlint (){
+ -> ||| lint NS_lint_balls::TH_lint_balls
+ ->
+}
+
+Rdirective_cweb_k (
+lhs {
+ user-declaration
+ AST* cweb_t_;
+ ***
+ constructor
+ cweb_t_ = 0;
+ ***
+ }
+){
+ ->
+ -> ||| "cweb-comment" NS_cweb_or_c_k::TH_cweb_or_c_k {
+ op
+ T_cweb_comment* k = sf->p2__;
+ AST* cwebk_t_ = new AST(*k);
+ cweb_t_ = new AST();
+ T_cweb_marker* cw = new T_cweb_marker(cweb_t_);
+ AST::set_content(*cweb_t_,*cw);
+
+ cw->set_rc(*k,__FILE__,__LINE__);
+ AST::join_pts(*cweb_t_,*cwebk_t_);
+ ***
+ }
+ -> ||| "comment-overrun" NULL {
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rcweb_k (
+lhs {
+ user-declaration
+ AST* cweb_t_;
+ ***
+ constructor
+ cweb_t_ = 0;
+ ***
+ }
+){
+ -> ||| "cweb-comment" NS_cweb_or_c_k::TH_cweb_or_c_k {
+ op
+ T_cweb_comment* k = sf->p2__;
+ AST* cwebk_t_ = new AST(*k);
+ cweb_t_ = new AST();
+ T_cweb_marker* cw = new T_cweb_marker(cweb_t_);
+ AST::set_content(*cweb_t_,*cw);
+ cw->set_rc(*k,__FILE__,__LINE__);
+ AST::join_pts(*cweb_t_,*cwebk_t_);
+ ***
+ }
+ -> ||| "comment-overrun" NULL {
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/fsm_class_phrase_thsym.cpp b/web/yacco2/compiler/grammars/fsm_class_phrase_thsym.cpp
new file mode 100644
index 0000000000..043f7904a8
--- /dev/null
+++ b/web/yacco2/compiler/grammars/fsm_class_phrase_thsym.cpp
@@ -0,0 +1,785 @@
+/*
+ File: fsm_class_phrase_thsym.cpp
+ Date and Time: Fri Jan 30 18:55:12 2015
+*/
+#include "fsm_class_phrase_th.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_fsm_class_phrase_th;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_fsm_class_phrase_th::TH_fsm_class_phrase_th(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_fsm_class_phrase_th;
+ NS_fsm_class_phrase_th::Cfsm_class_phrase_th Cfsm_class_phrase_th_;// parallel-parser's parse table
+#define ssPARSE_TABLE Cfsm_class_phrase_th_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_fsm_class_phrase_th::PROC_TH_fsm_class_phrase_th(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_fsm_class_phrase_th";
+ static bool one_time(false);
+ static NS_fsm_class_phrase_th::Cfsm_class_phrase_th* NS_fsm_class_phrase_th_Cfsm_class_phrase_th_(0);// parallel-parser's fsm table
+ static Parser* NS_fsm_class_phrase_th_Cfsm_class_phrase_th_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_fsm_class_phrase_th_Cfsm_class_phrase_th_ = new NS_fsm_class_phrase_th::Cfsm_class_phrase_th();// parallel-parser's fsm table
+ NS_fsm_class_phrase_th_Cfsm_class_phrase_th_parser = new Parser(*NS_fsm_class_phrase_th_Cfsm_class_phrase_th_,Caller_pp);
+ }
+ proc_parser = NS_fsm_class_phrase_th_Cfsm_class_phrase_th_parser;
+#include "wproc_pp_core.h"
+}
+void
+Cfsm_class_phrase_th::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rfsm_class_phrase_th_:{
+ Rfsm_class_phrase_th* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_class_phrase_th(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_class_phrase_th*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rid_:{
+ Rid* sym;
+ if(re->rule_ == 0){
+ sym = new Rid(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rid*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rid_:{
+ Rid* sym;
+ if(re->rule_ == 0){
+ sym = new Rid(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rid*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rid_:{
+ Rid* sym;
+ if(re->rule_ == 0){
+ sym = new Rid(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rid*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rpotential_code_blk_:{
+ Rpotential_code_blk* sym;
+ if(re->rule_ == 0){
+ sym = new Rpotential_code_blk(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rpotential_code_blk*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rpotential_directives_:{
+ Rpotential_directives* sym;
+ if(re->rule_ == 0){
+ sym = new Rpotential_directives(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rpotential_directives*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rpotential_directives_:{
+ Rpotential_directives* sym;
+ if(re->rule_ == 0){
+ sym = new Rpotential_directives(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rpotential_directives*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 6;
+
+
+ return;}
+ case rhs1_Rmust_directive_phrase_:{
+ Rmust_directive_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rmust_directive_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmust_directive_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rmust_directive_:{
+ Rmust_directive* sym;
+ if(re->rule_ == 0){
+ sym = new Rmust_directive(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmust_directive*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ sym->op();
+ return;}
+ case rhs2_Rmust_directive_:{
+ Rmust_directive* sym;
+ if(re->rule_ == 0){
+ sym = new Rmust_directive(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmust_directive*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ sym->op();
+ return;}
+ case rhs3_Rmust_directive_:{
+ Rmust_directive* sym;
+ if(re->rule_ == 0){
+ sym = new Rmust_directive(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmust_directive*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ sym->op();
+ return;}
+ case rhs4_Rmust_directive_:{
+ Rmust_directive* sym;
+ if(re->rule_ == 0){
+ sym = new Rmust_directive(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmust_directive*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr4();
+ sym->op();
+ return;}
+ case rhs5_Rmust_directive_:{
+ Rmust_directive* sym;
+ if(re->rule_ == 0){
+ sym = new Rmust_directive(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmust_directive*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr5();
+ sym->op();
+ return;}
+ case rhs6_Rmust_directive_:{
+ Rmust_directive* sym;
+ if(re->rule_ == 0){
+ sym = new Rmust_directive(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmust_directive*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr6();
+ sym->op();
+ return;}
+ case rhs7_Rmust_directive_:{
+ Rmust_directive* sym;
+ if(re->rule_ == 0){
+ sym = new Rmust_directive(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmust_directive*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr7();
+ sym->op();
+ return;}
+ case rhs8_Rmust_directive_:{
+ Rmust_directive* sym;
+ if(re->rule_ == 0){
+ sym = new Rmust_directive(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmust_directive*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr8();
+ sym->op();
+ return;}
+ case rhs9_Rmust_directive_:{
+ Rmust_directive* sym;
+ if(re->rule_ == 0){
+ sym = new Rmust_directive(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmust_directive*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr9();
+ sym->op();
+ return;}
+ case rhs10_Rmust_directive_:{
+ Rmust_directive* sym;
+ if(re->rule_ == 0){
+ sym = new Rmust_directive(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmust_directive*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr10();
+ sym->op();
+ return;}
+ case rhs11_Rmust_directive_:{
+ Rmust_directive* sym;
+ if(re->rule_ == 0){
+ sym = new Rmust_directive(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmust_directive*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr11();
+ sym->op();
+ return;}
+ case rhs12_Rmust_directive_:{
+ Rmust_directive* sym;
+ if(re->rule_ == 0){
+ sym = new Rmust_directive(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmust_directive*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr12();
+ sym->op();
+ return;}
+ case rhs1_Rmaybe_more_directives_:{
+ Rmaybe_more_directives* sym;
+ if(re->rule_ == 0){
+ sym = new Rmaybe_more_directives(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmaybe_more_directives*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs2_Rmaybe_more_directives_:{
+ Rmaybe_more_directives* sym;
+ if(re->rule_ == 0){
+ sym = new Rmaybe_more_directives(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmaybe_more_directives*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rmaybe_directive_phrases_:{
+ Rmaybe_directive_phrases* sym;
+ if(re->rule_ == 0){
+ sym = new Rmaybe_directive_phrases(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmaybe_directive_phrases*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rmaybe_directive_phrases_:{
+ Rmaybe_directive_phrases* sym;
+ if(re->rule_ == 0){
+ sym = new Rmaybe_directive_phrases(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmaybe_directive_phrases*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rmaybe_directive_phrase_:{
+ Rmaybe_directive_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rmaybe_directive_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmaybe_directive_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rmaybe_directive_phrase_:{
+ Rmaybe_directive_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rmaybe_directive_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmaybe_directive_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ sym->op();
+ return;}
+ case rhs2_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ sym->op();
+ return;}
+ case rhs3_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ sym->op();
+ return;}
+ case rhs4_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr4();
+ sym->op();
+ return;}
+ case rhs5_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr5();
+ sym->op();
+ return;}
+ case rhs6_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr6();
+ sym->op();
+ return;}
+ case rhs7_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr7();
+ sym->op();
+ return;}
+ case rhs8_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr8();
+ sym->op();
+ return;}
+ case rhs9_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr9();
+ sym->op();
+ return;}
+ case rhs10_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr10();
+ sym->op();
+ return;}
+ case rhs11_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr11();
+ sym->op();
+ return;}
+ case rhs1_Rclosing_brace_:{
+ Rclosing_brace* sym;
+ if(re->rule_ == 0){
+ sym = new Rclosing_brace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclosing_brace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rclosing_brace_:{
+ Rclosing_brace* sym;
+ if(re->rule_ == 0){
+ sym = new Rclosing_brace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclosing_brace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rsyntax_code_:{
+ Rsyntax_code* sym;
+ if(re->rule_ == 0){
+ sym = new Rsyntax_code(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsyntax_code*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rsyntax_code_:{
+ Rsyntax_code* sym;
+ if(re->rule_ == 0){
+ sym = new Rsyntax_code(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsyntax_code*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rlint_:{
+ Rlint* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rlint_:{
+ Rlint* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs1_Rdirective_cweb_k_:{
+ Rdirective_cweb_k* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective_cweb_k(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective_cweb_k*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs2_Rdirective_cweb_k_:{
+ Rdirective_cweb_k* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective_cweb_k(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective_cweb_k*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rdirective_cweb_k_:{
+ Rdirective_cweb_k* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective_cweb_k(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective_cweb_k*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rcweb_k_:{
+ Rcweb_k* sym;
+ if(re->rule_ == 0){
+ sym = new Rcweb_k(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rcweb_k*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rcweb_k_:{
+ Rcweb_k* sym;
+ if(re->rule_ == 0){
+ sym = new Rcweb_k(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rcweb_k*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/fsm_class_phrase_thtbl.cpp b/web/yacco2/compiler/grammars/fsm_class_phrase_thtbl.cpp
new file mode 100644
index 0000000000..39e953797f
--- /dev/null
+++ b/web/yacco2/compiler/grammars/fsm_class_phrase_thtbl.cpp
@@ -0,0 +1,1417 @@
+/*
+ File: fsm_class_phrase_thtbl.cpp
+ Date and Time: Fri Jan 30 18:55:12 2015
+*/
+#include "fsm_class_phrase_th.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_fsm_class_phrase_th;// grammar's ns
+// first set terminals
+// LR1_reduce_operator
+// LR1_invisible_shift_operator
+// raw_open_brace
+yacco2::UCHAR LA1_Cfsm_class_phrase_th[] ={
+2
+,0,48
+,16,8
+};
+// LR1_invisible_shift_operator
+// raw_open_brace
+yacco2::UCHAR LA2_Cfsm_class_phrase_th[] ={
+2
+,0,32
+,16,8
+};
+// LR1_eolr
+yacco2::UCHAR LA3_Cfsm_class_phrase_th[] ={
+1
+,0,4
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+yacco2::UCHAR LA4_Cfsm_class_phrase_th[] ={
+1
+,0,17
+};
+// LR1_questionable_shift_operator
+// raw_close_brace
+yacco2::UCHAR LA5_Cfsm_class_phrase_th[] ={
+2
+,0,1
+,16,32
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+// raw_close_brace
+yacco2::UCHAR LA6_Cfsm_class_phrase_th[] ={
+2
+,0,17
+,16,32
+};
+// LR1_reduce_operator
+yacco2::UCHAR LA7_Cfsm_class_phrase_th[] ={
+1
+,0,16
+};
+extern yacco2::State S1_Cfsm_class_phrase_th;
+extern yacco2::State S2_Cfsm_class_phrase_th;
+extern yacco2::State S3_Cfsm_class_phrase_th;
+struct S3ttd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S3ttd_Cfsm_class_phrase_th S3tt_Cfsm_class_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S4_Cfsm_class_phrase_th;
+extern yacco2::State S5_Cfsm_class_phrase_th;
+extern yacco2::State S6_Cfsm_class_phrase_th;
+extern yacco2::State S7_Cfsm_class_phrase_th;
+extern yacco2::State S8_Cfsm_class_phrase_th;
+extern yacco2::State S9_Cfsm_class_phrase_th;
+extern yacco2::State S10_Cfsm_class_phrase_th;
+extern yacco2::State S11_Cfsm_class_phrase_th;
+extern yacco2::State S12_Cfsm_class_phrase_th;
+extern yacco2::State S13_Cfsm_class_phrase_th;
+extern yacco2::State S14_Cfsm_class_phrase_th;
+extern yacco2::State S15_Cfsm_class_phrase_th;
+extern yacco2::State S16_Cfsm_class_phrase_th;
+struct S16ttd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S16ttd_Cfsm_class_phrase_th S16tt_Cfsm_class_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_lint_balls
+};
+extern yacco2::State S17_Cfsm_class_phrase_th;
+extern yacco2::State S18_Cfsm_class_phrase_th;
+extern yacco2::State S19_Cfsm_class_phrase_th;
+extern yacco2::State S20_Cfsm_class_phrase_th;
+extern yacco2::State S21_Cfsm_class_phrase_th;
+struct S21ttd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S21ttd_Cfsm_class_phrase_th S21tt_Cfsm_class_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_cweb_or_c_k
+};
+extern yacco2::State S22_Cfsm_class_phrase_th;
+extern yacco2::State S23_Cfsm_class_phrase_th;
+extern yacco2::State S24_Cfsm_class_phrase_th;
+extern yacco2::State S25_Cfsm_class_phrase_th;
+extern yacco2::State S26_Cfsm_class_phrase_th;
+extern yacco2::State S27_Cfsm_class_phrase_th;
+struct S27ttd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S27ttd_Cfsm_class_phrase_th S27tt_Cfsm_class_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_o2_sdc
+};
+extern yacco2::State S28_Cfsm_class_phrase_th;
+extern yacco2::State S29_Cfsm_class_phrase_th;
+extern yacco2::State S30_Cfsm_class_phrase_th;
+extern yacco2::State S31_Cfsm_class_phrase_th;
+extern yacco2::State S32_Cfsm_class_phrase_th;
+struct S32ttd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[2];
+};
+S32ttd_Cfsm_class_phrase_th S32tt_Cfsm_class_phrase_th = {
+ 2 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+ ,(yacco2::Thread_entry*)&ITH_cweb_or_c_k
+};
+extern yacco2::State S33_Cfsm_class_phrase_th;
+extern yacco2::State S34_Cfsm_class_phrase_th;
+extern yacco2::State S35_Cfsm_class_phrase_th;
+extern yacco2::State S36_Cfsm_class_phrase_th;
+extern yacco2::State S37_Cfsm_class_phrase_th;
+extern yacco2::State S38_Cfsm_class_phrase_th;
+extern yacco2::State S39_Cfsm_class_phrase_th;
+extern yacco2::State S40_Cfsm_class_phrase_th;
+extern yacco2::State S41_Cfsm_class_phrase_th;
+extern yacco2::State S42_Cfsm_class_phrase_th;
+extern yacco2::State S43_Cfsm_class_phrase_th;
+extern yacco2::State S44_Cfsm_class_phrase_th;
+extern yacco2::State S45_Cfsm_class_phrase_th;
+extern yacco2::State S46_Cfsm_class_phrase_th;
+extern yacco2::State S47_Cfsm_class_phrase_th;
+extern yacco2::State S48_Cfsm_class_phrase_th;
+extern yacco2::State S49_Cfsm_class_phrase_th;
+extern yacco2::State S50_Cfsm_class_phrase_th;
+extern yacco2::State S51_Cfsm_class_phrase_th;
+extern yacco2::State S52_Cfsm_class_phrase_th;
+extern yacco2::State S53_Cfsm_class_phrase_th;
+extern yacco2::State S54_Cfsm_class_phrase_th;
+extern yacco2::State S55_Cfsm_class_phrase_th;
+extern yacco2::State S56_Cfsm_class_phrase_th;
+extern yacco2::State S57_Cfsm_class_phrase_th;
+extern yacco2::State S58_Cfsm_class_phrase_th;
+struct S58ttd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S58ttd_Cfsm_class_phrase_th S58tt_Cfsm_class_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S59_Cfsm_class_phrase_th;
+extern yacco2::State S60_Cfsm_class_phrase_th;
+extern yacco2::State S61_Cfsm_class_phrase_th;
+extern yacco2::State S62_Cfsm_class_phrase_th;
+extern yacco2::State S63_Cfsm_class_phrase_th;
+extern yacco2::State S64_Cfsm_class_phrase_th;
+extern yacco2::State S65_Cfsm_class_phrase_th;
+extern yacco2::State S66_Cfsm_class_phrase_th;
+extern yacco2::State S67_Cfsm_class_phrase_th;
+extern yacco2::State S68_Cfsm_class_phrase_th;
+extern yacco2::State S69_Cfsm_class_phrase_th;
+extern yacco2::State S70_Cfsm_class_phrase_th;
+struct S70ttd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S70ttd_Cfsm_class_phrase_th S70tt_Cfsm_class_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+struct S1std_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S1std_Cfsm_class_phrase_th S1st_Cfsm_class_phrase_th = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S2_Cfsm_class_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S3_Cfsm_class_phrase_th} // shift sym: LR1_parallel_operator
+ ,{569,(State*)&S1_Cfsm_class_phrase_th} // accept sym: Rfsm_class_phrase_th
+ ,{570,(State*)&S6_Cfsm_class_phrase_th} // shift sym: Rid
+ }// end of shift table
+};
+yacco2::Shift_entry S1pse_Cfsm_class_phrase_th = {3,(State*)&S3_Cfsm_class_phrase_th};
+yacco2::Shift_entry S1qse_Cfsm_class_phrase_th = {0,(State*)&S2_Cfsm_class_phrase_th};
+yacco2::State S1_Cfsm_class_phrase_th = //State's vectored into symbol: " No symbol"
+{1
+,(Shift_entry*)&S1pse_Cfsm_class_phrase_th,0,0,0,(Shift_tbl*)&S1st_Cfsm_class_phrase_th,0,(State_s_thread_tbl*)&S3tt_Cfsm_class_phrase_th,0,(Shift_entry*)&S1qse_Cfsm_class_phrase_th
+};
+struct S2rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Cfsm_class_phrase_th S2rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs3_Rid_}
+ }// end of reduce table
+};
+yacco2::State S2_Cfsm_class_phrase_th = //State's vectored into symbol: "|?|"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Cfsm_class_phrase_th,0,0,0};
+struct S3std_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S3std_Cfsm_class_phrase_th S3st_Cfsm_class_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S4_Cfsm_class_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{279,(State*)&S5_Cfsm_class_phrase_th} // shift sym: T_identifier
+ }// end of shift table
+};
+yacco2::Shift_entry S3qse_Cfsm_class_phrase_th = {0,(State*)&S4_Cfsm_class_phrase_th};
+yacco2::State S3_Cfsm_class_phrase_th = //State's vectored into symbol: "|||"
+{3
+,0,0,0,0,(Shift_tbl*)&S3st_Cfsm_class_phrase_th,0,0,0,(Shift_entry*)&S3qse_Cfsm_class_phrase_th
+};
+struct S4rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Cfsm_class_phrase_th S4rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs2_Rid_}
+ }// end of reduce table
+};
+yacco2::State S4_Cfsm_class_phrase_th = //State's vectored into symbol: "|?|"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Cfsm_class_phrase_th,0,0,0};
+struct S5rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Cfsm_class_phrase_th S5rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs1_Rid_}
+ }// end of reduce table
+};
+yacco2::State S5_Cfsm_class_phrase_th = //State's vectored into symbol: "identifier"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Cfsm_class_phrase_th,0,0,0};
+struct S6std_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S6std_Cfsm_class_phrase_th S6st_Cfsm_class_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S16_Cfsm_class_phrase_th} // shift sym: LR1_parallel_operator
+ ,{581,(State*)&S7_Cfsm_class_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S6pse_Cfsm_class_phrase_th = {3,(State*)&S16_Cfsm_class_phrase_th};
+struct S6rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Cfsm_class_phrase_th S6rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S6_Cfsm_class_phrase_th = //State's vectored into symbol: "Rid"
+{6
+,(Shift_entry*)&S6pse_Cfsm_class_phrase_th,0,0,0,(Shift_tbl*)&S6st_Cfsm_class_phrase_th,(Reduce_tbl*)&S6rt_Cfsm_class_phrase_th,(State_s_thread_tbl*)&S16tt_Cfsm_class_phrase_th,0,0};
+struct S7std_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S7std_Cfsm_class_phrase_th S7st_Cfsm_class_phrase_th = {
+ 4
+ ,
+ {// start of table
+ {5,(State*)&S8_Cfsm_class_phrase_th} // shift sym: LR1_invisible_shift_operator
+ ,{131,(State*)&S9_Cfsm_class_phrase_th} // shift sym: raw_open_brace
+ ,{571,(State*)&S19_Cfsm_class_phrase_th} // shift sym: Rpotential_code_blk
+ ,{572,(State*)&S20_Cfsm_class_phrase_th} // shift sym: Rpotential_directives
+ }// end of shift table
+};
+yacco2::Shift_entry S7ise_Cfsm_class_phrase_th = {5,(State*)&S8_Cfsm_class_phrase_th};
+yacco2::State S7_Cfsm_class_phrase_th = //State's vectored into symbol: "Rlint"
+{7
+,0,0,(Shift_entry*)&S7ise_Cfsm_class_phrase_th
+,0,(Shift_tbl*)&S7st_Cfsm_class_phrase_th,0,0,0,0};
+struct S8rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S8rtd_Cfsm_class_phrase_th S8rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs1_Rpotential_directives_}
+ }// end of reduce table
+};
+yacco2::State S8_Cfsm_class_phrase_th = //State's vectored into symbol: "|.|"
+{8
+,0,0,0,0,0,(Reduce_tbl*)&S8rt_Cfsm_class_phrase_th,0,0,0};
+struct S9std_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S9std_Cfsm_class_phrase_th S9st_Cfsm_class_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S16_Cfsm_class_phrase_th} // shift sym: LR1_parallel_operator
+ ,{581,(State*)&S10_Cfsm_class_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S9pse_Cfsm_class_phrase_th = {3,(State*)&S16_Cfsm_class_phrase_th};
+struct S9rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Cfsm_class_phrase_th S9rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S9_Cfsm_class_phrase_th = //State's vectored into symbol: "{"
+{9
+,(Shift_entry*)&S9pse_Cfsm_class_phrase_th,0,0,0,(Shift_tbl*)&S9st_Cfsm_class_phrase_th,(Reduce_tbl*)&S9rt_Cfsm_class_phrase_th,(State_s_thread_tbl*)&S16tt_Cfsm_class_phrase_th,0,0};
+struct S10std_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S10std_Cfsm_class_phrase_th S10st_Cfsm_class_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S21_Cfsm_class_phrase_th} // shift sym: LR1_parallel_operator
+ ,{573,(State*)&S11_Cfsm_class_phrase_th} // shift sym: Rmust_directive_phrase
+ ,{582,(State*)&S24_Cfsm_class_phrase_th} // shift sym: Rdirective_cweb_k
+ }// end of shift table
+};
+yacco2::Shift_entry S10pse_Cfsm_class_phrase_th = {3,(State*)&S21_Cfsm_class_phrase_th};
+struct S10rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S10rtd_Cfsm_class_phrase_th S10rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs1_Rdirective_cweb_k_}
+ }// end of reduce table
+};
+yacco2::State S10_Cfsm_class_phrase_th = //State's vectored into symbol: "Rlint"
+{10
+,(Shift_entry*)&S10pse_Cfsm_class_phrase_th,0,0,0,(Shift_tbl*)&S10st_Cfsm_class_phrase_th,(Reduce_tbl*)&S10rt_Cfsm_class_phrase_th,(State_s_thread_tbl*)&S21tt_Cfsm_class_phrase_th,0,0};
+struct S11std_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[6];
+};
+S11std_Cfsm_class_phrase_th S11st_Cfsm_class_phrase_th = {
+ 6
+ ,
+ {// start of table
+ {3,(State*)&S32_Cfsm_class_phrase_th} // shift sym: LR1_parallel_operator
+ ,{575,(State*)&S12_Cfsm_class_phrase_th} // shift sym: Rmaybe_more_directives
+ ,{576,(State*)&S46_Cfsm_class_phrase_th} // shift sym: Rmaybe_directive_phrases
+ ,{577,(State*)&S56_Cfsm_class_phrase_th} // shift sym: Rmaybe_directive_phrase
+ ,{578,(State*)&S48_Cfsm_class_phrase_th} // shift sym: Rdirective
+ ,{583,(State*)&S51_Cfsm_class_phrase_th} // shift sym: Rcweb_k
+ }// end of shift table
+};
+yacco2::Shift_entry S11pse_Cfsm_class_phrase_th = {3,(State*)&S32_Cfsm_class_phrase_th};
+struct S11rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Cfsm_class_phrase_th S11rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs1_Rmaybe_more_directives_}
+ }// end of reduce table
+};
+yacco2::State S11_Cfsm_class_phrase_th = //State's vectored into symbol: "Rmust_directive_phrase"
+{11
+,(Shift_entry*)&S11pse_Cfsm_class_phrase_th,0,0,0,(Shift_tbl*)&S11st_Cfsm_class_phrase_th,(Reduce_tbl*)&S11rt_Cfsm_class_phrase_th,(State_s_thread_tbl*)&S32tt_Cfsm_class_phrase_th,0,0};
+struct S12std_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S12std_Cfsm_class_phrase_th S12st_Cfsm_class_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S13_Cfsm_class_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{133,(State*)&S14_Cfsm_class_phrase_th} // shift sym: raw_close_brace
+ ,{579,(State*)&S15_Cfsm_class_phrase_th} // shift sym: Rclosing_brace
+ }// end of shift table
+};
+yacco2::Shift_entry S12qse_Cfsm_class_phrase_th = {0,(State*)&S13_Cfsm_class_phrase_th};
+yacco2::State S12_Cfsm_class_phrase_th = //State's vectored into symbol: "Rmaybe_more_directives"
+{12
+,0,0,0,0,(Shift_tbl*)&S12st_Cfsm_class_phrase_th,0,0,0,(Shift_entry*)&S12qse_Cfsm_class_phrase_th
+};
+struct S13rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S13rtd_Cfsm_class_phrase_th S13rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs1_Rclosing_brace_}
+ }// end of reduce table
+};
+yacco2::State S13_Cfsm_class_phrase_th = //State's vectored into symbol: "|?|"
+{13
+,0,0,0,0,0,(Reduce_tbl*)&S13rt_Cfsm_class_phrase_th,0,0,0};
+struct S14rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S14rtd_Cfsm_class_phrase_th S14rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs2_Rclosing_brace_}
+ }// end of reduce table
+};
+yacco2::State S14_Cfsm_class_phrase_th = //State's vectored into symbol: "}"
+{14
+,0,0,0,0,0,(Reduce_tbl*)&S14rt_Cfsm_class_phrase_th,0,0,0};
+struct S15std_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S15std_Cfsm_class_phrase_th S15st_Cfsm_class_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S16_Cfsm_class_phrase_th} // shift sym: LR1_parallel_operator
+ ,{581,(State*)&S18_Cfsm_class_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S15pse_Cfsm_class_phrase_th = {3,(State*)&S16_Cfsm_class_phrase_th};
+struct S15rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S15rtd_Cfsm_class_phrase_th S15rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S15_Cfsm_class_phrase_th = //State's vectored into symbol: "Rclosing_brace"
+{15
+,(Shift_entry*)&S15pse_Cfsm_class_phrase_th,0,0,0,(Shift_tbl*)&S15st_Cfsm_class_phrase_th,(Reduce_tbl*)&S15rt_Cfsm_class_phrase_th,(State_s_thread_tbl*)&S16tt_Cfsm_class_phrase_th,0,0};
+struct S16std_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S16std_Cfsm_class_phrase_th S16st_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {375,(State*)&S17_Cfsm_class_phrase_th} // shift sym: T_lint
+ }// end of shift table
+};
+yacco2::State S16_Cfsm_class_phrase_th = //State's vectored into symbol: "|||"
+{16
+,0,0,0,0,(Shift_tbl*)&S16st_Cfsm_class_phrase_th,0,0,0,0};
+struct S17rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S17rtd_Cfsm_class_phrase_th S17rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs1_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S17_Cfsm_class_phrase_th = //State's vectored into symbol: "lint"
+{17
+,0,0,0,0,0,(Reduce_tbl*)&S17rt_Cfsm_class_phrase_th,0,0,0};
+struct S18rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S18rtd_Cfsm_class_phrase_th S18rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs2_Rpotential_directives_}
+ }// end of reduce table
+};
+yacco2::State S18_Cfsm_class_phrase_th = //State's vectored into symbol: "Rlint"
+{18
+,0,0,0,0,0,(Reduce_tbl*)&S18rt_Cfsm_class_phrase_th,0,0,0};
+struct S19rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S19rtd_Cfsm_class_phrase_th S19rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs1_Rfsm_class_phrase_th_}
+ }// end of reduce table
+};
+yacco2::State S19_Cfsm_class_phrase_th = //State's vectored into symbol: "Rpotential_code_blk"
+{19
+,0,0,0,0,0,(Reduce_tbl*)&S19rt_Cfsm_class_phrase_th,0,0,0};
+struct S20rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S20rtd_Cfsm_class_phrase_th S20rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs1_Rpotential_code_blk_}
+ }// end of reduce table
+};
+yacco2::State S20_Cfsm_class_phrase_th = //State's vectored into symbol: "Rpotential_directives"
+{20
+,0,0,0,0,0,(Reduce_tbl*)&S20rt_Cfsm_class_phrase_th,0,0,0};
+struct S21std_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S21std_Cfsm_class_phrase_th S21st_Cfsm_class_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {372,(State*)&S22_Cfsm_class_phrase_th} // shift sym: T_cweb_comment
+ ,{396,(State*)&S23_Cfsm_class_phrase_th} // shift sym: Err_comment_overrun
+ }// end of shift table
+};
+yacco2::State S21_Cfsm_class_phrase_th = //State's vectored into symbol: "|||"
+{21
+,0,0,0,0,(Shift_tbl*)&S21st_Cfsm_class_phrase_th,0,0,0,0};
+struct S22rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S22rtd_Cfsm_class_phrase_th S22rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs2_Rdirective_cweb_k_}
+ }// end of reduce table
+};
+yacco2::State S22_Cfsm_class_phrase_th = //State's vectored into symbol: "cweb-comment"
+{22
+,0,0,0,0,0,(Reduce_tbl*)&S22rt_Cfsm_class_phrase_th,0,0,0};
+struct S23rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S23rtd_Cfsm_class_phrase_th S23rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs3_Rdirective_cweb_k_}
+ }// end of reduce table
+};
+yacco2::State S23_Cfsm_class_phrase_th = //State's vectored into symbol: "comment-overrun"
+{23
+,0,0,0,0,0,(Reduce_tbl*)&S23rt_Cfsm_class_phrase_th,0,0,0};
+struct S24std_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S24std_Cfsm_class_phrase_th S24st_Cfsm_class_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S16_Cfsm_class_phrase_th} // shift sym: LR1_parallel_operator
+ ,{581,(State*)&S25_Cfsm_class_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S24pse_Cfsm_class_phrase_th = {3,(State*)&S16_Cfsm_class_phrase_th};
+struct S24rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S24rtd_Cfsm_class_phrase_th S24rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S24_Cfsm_class_phrase_th = //State's vectored into symbol: "Rdirective_cweb_k"
+{24
+,(Shift_entry*)&S24pse_Cfsm_class_phrase_th,0,0,0,(Shift_tbl*)&S24st_Cfsm_class_phrase_th,(Reduce_tbl*)&S24rt_Cfsm_class_phrase_th,(State_s_thread_tbl*)&S16tt_Cfsm_class_phrase_th,0,0};
+struct S25std_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S25std_Cfsm_class_phrase_th S25st_Cfsm_class_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S57_Cfsm_class_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S58_Cfsm_class_phrase_th} // shift sym: LR1_parallel_operator
+ ,{574,(State*)&S26_Cfsm_class_phrase_th} // shift sym: Rmust_directive
+ }// end of shift table
+};
+yacco2::Shift_entry S25pse_Cfsm_class_phrase_th = {3,(State*)&S58_Cfsm_class_phrase_th};
+yacco2::Shift_entry S25qse_Cfsm_class_phrase_th = {0,(State*)&S57_Cfsm_class_phrase_th};
+yacco2::State S25_Cfsm_class_phrase_th = //State's vectored into symbol: "Rlint"
+{25
+,(Shift_entry*)&S25pse_Cfsm_class_phrase_th,0,0,0,(Shift_tbl*)&S25st_Cfsm_class_phrase_th,0,(State_s_thread_tbl*)&S58tt_Cfsm_class_phrase_th,0,(Shift_entry*)&S25qse_Cfsm_class_phrase_th
+};
+struct S26std_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S26std_Cfsm_class_phrase_th S26st_Cfsm_class_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S27_Cfsm_class_phrase_th} // shift sym: LR1_parallel_operator
+ ,{580,(State*)&S30_Cfsm_class_phrase_th} // shift sym: Rsyntax_code
+ }// end of shift table
+};
+yacco2::Shift_entry S26pse_Cfsm_class_phrase_th = {3,(State*)&S27_Cfsm_class_phrase_th};
+yacco2::State S26_Cfsm_class_phrase_th = //State's vectored into symbol: "Rmust_directive"
+{26
+,(Shift_entry*)&S26pse_Cfsm_class_phrase_th,0,0,0,(Shift_tbl*)&S26st_Cfsm_class_phrase_th,0,(State_s_thread_tbl*)&S27tt_Cfsm_class_phrase_th,0,0};
+struct S27std_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S27std_Cfsm_class_phrase_th S27st_Cfsm_class_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S28_Cfsm_class_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{326,(State*)&S29_Cfsm_class_phrase_th} // shift sym: T_syntax_code
+ }// end of shift table
+};
+yacco2::Shift_entry S27qse_Cfsm_class_phrase_th = {0,(State*)&S28_Cfsm_class_phrase_th};
+yacco2::State S27_Cfsm_class_phrase_th = //State's vectored into symbol: "|||"
+{27
+,0,0,0,0,(Shift_tbl*)&S27st_Cfsm_class_phrase_th,0,0,0,(Shift_entry*)&S27qse_Cfsm_class_phrase_th
+};
+struct S28rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S28rtd_Cfsm_class_phrase_th S28rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs2_Rsyntax_code_}
+ }// end of reduce table
+};
+yacco2::State S28_Cfsm_class_phrase_th = //State's vectored into symbol: "|?|"
+{28
+,0,0,0,0,0,(Reduce_tbl*)&S28rt_Cfsm_class_phrase_th,0,0,0};
+struct S29rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S29rtd_Cfsm_class_phrase_th S29rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs1_Rsyntax_code_}
+ }// end of reduce table
+};
+yacco2::State S29_Cfsm_class_phrase_th = //State's vectored into symbol: "syntax-code"
+{29
+,0,0,0,0,0,(Reduce_tbl*)&S29rt_Cfsm_class_phrase_th,0,0,0};
+struct S30std_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S30std_Cfsm_class_phrase_th S30st_Cfsm_class_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S16_Cfsm_class_phrase_th} // shift sym: LR1_parallel_operator
+ ,{581,(State*)&S31_Cfsm_class_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S30pse_Cfsm_class_phrase_th = {3,(State*)&S16_Cfsm_class_phrase_th};
+struct S30rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S30rtd_Cfsm_class_phrase_th S30rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S30_Cfsm_class_phrase_th = //State's vectored into symbol: "Rsyntax_code"
+{30
+,(Shift_entry*)&S30pse_Cfsm_class_phrase_th,0,0,0,(Shift_tbl*)&S30st_Cfsm_class_phrase_th,(Reduce_tbl*)&S30rt_Cfsm_class_phrase_th,(State_s_thread_tbl*)&S16tt_Cfsm_class_phrase_th,0,0};
+struct S31rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S31rtd_Cfsm_class_phrase_th S31rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs1_Rmust_directive_phrase_}
+ }// end of reduce table
+};
+yacco2::State S31_Cfsm_class_phrase_th = //State's vectored into symbol: "Rlint"
+{31
+,0,0,0,0,0,(Reduce_tbl*)&S31rt_Cfsm_class_phrase_th,0,0,0};
+struct S32std_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[13];
+};
+S32std_Cfsm_class_phrase_th S32st_Cfsm_class_phrase_th = {
+ 13
+ ,
+ {// start of table
+ {0,(State*)&S33_Cfsm_class_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{308,(State*)&S34_Cfsm_class_phrase_th} // shift sym: T_user_declaration
+ ,{309,(State*)&S35_Cfsm_class_phrase_th} // shift sym: T_user_prefix_declaration
+ ,{310,(State*)&S36_Cfsm_class_phrase_th} // shift sym: T_user_suffix_declaration
+ ,{311,(State*)&S37_Cfsm_class_phrase_th} // shift sym: T_constructor
+ ,{312,(State*)&S38_Cfsm_class_phrase_th} // shift sym: T_destructor
+ ,{313,(State*)&S39_Cfsm_class_phrase_th} // shift sym: T_op
+ ,{314,(State*)&S40_Cfsm_class_phrase_th} // shift sym: T_failed
+ ,{315,(State*)&S41_Cfsm_class_phrase_th} // shift sym: T_user_implementation
+ ,{316,(State*)&S42_Cfsm_class_phrase_th} // shift sym: T_user_imp_tbl
+ ,{317,(State*)&S43_Cfsm_class_phrase_th} // shift sym: T_user_imp_sym
+ ,{372,(State*)&S44_Cfsm_class_phrase_th} // shift sym: T_cweb_comment
+ ,{396,(State*)&S45_Cfsm_class_phrase_th} // shift sym: Err_comment_overrun
+ }// end of shift table
+};
+yacco2::Shift_entry S32qse_Cfsm_class_phrase_th = {0,(State*)&S33_Cfsm_class_phrase_th};
+yacco2::State S32_Cfsm_class_phrase_th = //State's vectored into symbol: "|||"
+{32
+,0,0,0,0,(Shift_tbl*)&S32st_Cfsm_class_phrase_th,0,0,0,(Shift_entry*)&S32qse_Cfsm_class_phrase_th
+};
+struct S33rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S33rtd_Cfsm_class_phrase_th S33rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs11_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S33_Cfsm_class_phrase_th = //State's vectored into symbol: "|?|"
+{33
+,0,0,0,0,0,(Reduce_tbl*)&S33rt_Cfsm_class_phrase_th,0,0,0};
+struct S34rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S34rtd_Cfsm_class_phrase_th S34rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs1_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S34_Cfsm_class_phrase_th = //State's vectored into symbol: "#user-declaration"
+{34
+,0,0,0,0,0,(Reduce_tbl*)&S34rt_Cfsm_class_phrase_th,0,0,0};
+struct S35rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S35rtd_Cfsm_class_phrase_th S35rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs3_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S35_Cfsm_class_phrase_th = //State's vectored into symbol: "#user-prefix-declaration"
+{35
+,0,0,0,0,0,(Reduce_tbl*)&S35rt_Cfsm_class_phrase_th,0,0,0};
+struct S36rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S36rtd_Cfsm_class_phrase_th S36rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs4_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S36_Cfsm_class_phrase_th = //State's vectored into symbol: "#user-suffix-declaration"
+{36
+,0,0,0,0,0,(Reduce_tbl*)&S36rt_Cfsm_class_phrase_th,0,0,0};
+struct S37rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S37rtd_Cfsm_class_phrase_th S37rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs5_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S37_Cfsm_class_phrase_th = //State's vectored into symbol: "#constructor"
+{37
+,0,0,0,0,0,(Reduce_tbl*)&S37rt_Cfsm_class_phrase_th,0,0,0};
+struct S38rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S38rtd_Cfsm_class_phrase_th S38rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs6_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S38_Cfsm_class_phrase_th = //State's vectored into symbol: "#destructor"
+{38
+,0,0,0,0,0,(Reduce_tbl*)&S38rt_Cfsm_class_phrase_th,0,0,0};
+struct S39rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S39rtd_Cfsm_class_phrase_th S39rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs7_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S39_Cfsm_class_phrase_th = //State's vectored into symbol: "#op"
+{39
+,0,0,0,0,0,(Reduce_tbl*)&S39rt_Cfsm_class_phrase_th,0,0,0};
+struct S40rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S40rtd_Cfsm_class_phrase_th S40rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs8_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S40_Cfsm_class_phrase_th = //State's vectored into symbol: "#failed"
+{40
+,0,0,0,0,0,(Reduce_tbl*)&S40rt_Cfsm_class_phrase_th,0,0,0};
+struct S41rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S41rtd_Cfsm_class_phrase_th S41rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs2_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S41_Cfsm_class_phrase_th = //State's vectored into symbol: "#user-implementation"
+{41
+,0,0,0,0,0,(Reduce_tbl*)&S41rt_Cfsm_class_phrase_th,0,0,0};
+struct S42rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S42rtd_Cfsm_class_phrase_th S42rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs9_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S42_Cfsm_class_phrase_th = //State's vectored into symbol: "#user-imp-tbl"
+{42
+,0,0,0,0,0,(Reduce_tbl*)&S42rt_Cfsm_class_phrase_th,0,0,0};
+struct S43rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S43rtd_Cfsm_class_phrase_th S43rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs10_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S43_Cfsm_class_phrase_th = //State's vectored into symbol: "#user-imp-sym"
+{43
+,0,0,0,0,0,(Reduce_tbl*)&S43rt_Cfsm_class_phrase_th,0,0,0};
+struct S44rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S44rtd_Cfsm_class_phrase_th S44rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs1_Rcweb_k_}
+ }// end of reduce table
+};
+yacco2::State S44_Cfsm_class_phrase_th = //State's vectored into symbol: "cweb-comment"
+{44
+,0,0,0,0,0,(Reduce_tbl*)&S44rt_Cfsm_class_phrase_th,0,0,0};
+struct S45rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S45rtd_Cfsm_class_phrase_th S45rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs2_Rcweb_k_}
+ }// end of reduce table
+};
+yacco2::State S45_Cfsm_class_phrase_th = //State's vectored into symbol: "comment-overrun"
+{45
+,0,0,0,0,0,(Reduce_tbl*)&S45rt_Cfsm_class_phrase_th,0,0,0};
+struct S46std_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S46std_Cfsm_class_phrase_th S46st_Cfsm_class_phrase_th = {
+ 4
+ ,
+ {// start of table
+ {3,(State*)&S32_Cfsm_class_phrase_th} // shift sym: LR1_parallel_operator
+ ,{577,(State*)&S47_Cfsm_class_phrase_th} // shift sym: Rmaybe_directive_phrase
+ ,{578,(State*)&S48_Cfsm_class_phrase_th} // shift sym: Rdirective
+ ,{583,(State*)&S51_Cfsm_class_phrase_th} // shift sym: Rcweb_k
+ }// end of shift table
+};
+yacco2::Shift_entry S46pse_Cfsm_class_phrase_th = {3,(State*)&S32_Cfsm_class_phrase_th};
+struct S46rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S46rtd_Cfsm_class_phrase_th S46rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs2_Rmaybe_more_directives_}
+ }// end of reduce table
+};
+yacco2::State S46_Cfsm_class_phrase_th = //State's vectored into symbol: "Rmaybe_directive_phrases"
+{46
+,(Shift_entry*)&S46pse_Cfsm_class_phrase_th,0,0,0,(Shift_tbl*)&S46st_Cfsm_class_phrase_th,(Reduce_tbl*)&S46rt_Cfsm_class_phrase_th,(State_s_thread_tbl*)&S32tt_Cfsm_class_phrase_th,0,0};
+struct S47rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S47rtd_Cfsm_class_phrase_th S47rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs2_Rmaybe_directive_phrases_}
+ }// end of reduce table
+};
+yacco2::State S47_Cfsm_class_phrase_th = //State's vectored into symbol: "Rmaybe_directive_phrase"
+{47
+,0,0,0,0,0,(Reduce_tbl*)&S47rt_Cfsm_class_phrase_th,0,0,0};
+struct S48std_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S48std_Cfsm_class_phrase_th S48st_Cfsm_class_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S27_Cfsm_class_phrase_th} // shift sym: LR1_parallel_operator
+ ,{580,(State*)&S49_Cfsm_class_phrase_th} // shift sym: Rsyntax_code
+ }// end of shift table
+};
+yacco2::Shift_entry S48pse_Cfsm_class_phrase_th = {3,(State*)&S27_Cfsm_class_phrase_th};
+yacco2::State S48_Cfsm_class_phrase_th = //State's vectored into symbol: "Rdirective"
+{48
+,(Shift_entry*)&S48pse_Cfsm_class_phrase_th,0,0,0,(Shift_tbl*)&S48st_Cfsm_class_phrase_th,0,(State_s_thread_tbl*)&S27tt_Cfsm_class_phrase_th,0,0};
+struct S49std_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S49std_Cfsm_class_phrase_th S49st_Cfsm_class_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S16_Cfsm_class_phrase_th} // shift sym: LR1_parallel_operator
+ ,{581,(State*)&S50_Cfsm_class_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S49pse_Cfsm_class_phrase_th = {3,(State*)&S16_Cfsm_class_phrase_th};
+struct S49rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S49rtd_Cfsm_class_phrase_th S49rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S49_Cfsm_class_phrase_th = //State's vectored into symbol: "Rsyntax_code"
+{49
+,(Shift_entry*)&S49pse_Cfsm_class_phrase_th,0,0,0,(Shift_tbl*)&S49st_Cfsm_class_phrase_th,(Reduce_tbl*)&S49rt_Cfsm_class_phrase_th,(State_s_thread_tbl*)&S16tt_Cfsm_class_phrase_th,0,0};
+struct S50rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S50rtd_Cfsm_class_phrase_th S50rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs2_Rmaybe_directive_phrase_}
+ }// end of reduce table
+};
+yacco2::State S50_Cfsm_class_phrase_th = //State's vectored into symbol: "Rlint"
+{50
+,0,0,0,0,0,(Reduce_tbl*)&S50rt_Cfsm_class_phrase_th,0,0,0};
+struct S51std_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S51std_Cfsm_class_phrase_th S51st_Cfsm_class_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S16_Cfsm_class_phrase_th} // shift sym: LR1_parallel_operator
+ ,{581,(State*)&S52_Cfsm_class_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S51pse_Cfsm_class_phrase_th = {3,(State*)&S16_Cfsm_class_phrase_th};
+struct S51rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S51rtd_Cfsm_class_phrase_th S51rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S51_Cfsm_class_phrase_th = //State's vectored into symbol: "Rcweb_k"
+{51
+,(Shift_entry*)&S51pse_Cfsm_class_phrase_th,0,0,0,(Shift_tbl*)&S51st_Cfsm_class_phrase_th,(Reduce_tbl*)&S51rt_Cfsm_class_phrase_th,(State_s_thread_tbl*)&S16tt_Cfsm_class_phrase_th,0,0};
+struct S52std_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S52std_Cfsm_class_phrase_th S52st_Cfsm_class_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S70_Cfsm_class_phrase_th} // shift sym: LR1_parallel_operator
+ ,{578,(State*)&S53_Cfsm_class_phrase_th} // shift sym: Rdirective
+ }// end of shift table
+};
+yacco2::Shift_entry S52pse_Cfsm_class_phrase_th = {3,(State*)&S70_Cfsm_class_phrase_th};
+yacco2::State S52_Cfsm_class_phrase_th = //State's vectored into symbol: "Rlint"
+{52
+,(Shift_entry*)&S52pse_Cfsm_class_phrase_th,0,0,0,(Shift_tbl*)&S52st_Cfsm_class_phrase_th,0,(State_s_thread_tbl*)&S70tt_Cfsm_class_phrase_th,0,0};
+struct S53std_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S53std_Cfsm_class_phrase_th S53st_Cfsm_class_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S27_Cfsm_class_phrase_th} // shift sym: LR1_parallel_operator
+ ,{580,(State*)&S54_Cfsm_class_phrase_th} // shift sym: Rsyntax_code
+ }// end of shift table
+};
+yacco2::Shift_entry S53pse_Cfsm_class_phrase_th = {3,(State*)&S27_Cfsm_class_phrase_th};
+yacco2::State S53_Cfsm_class_phrase_th = //State's vectored into symbol: "Rdirective"
+{53
+,(Shift_entry*)&S53pse_Cfsm_class_phrase_th,0,0,0,(Shift_tbl*)&S53st_Cfsm_class_phrase_th,0,(State_s_thread_tbl*)&S27tt_Cfsm_class_phrase_th,0,0};
+struct S54std_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S54std_Cfsm_class_phrase_th S54st_Cfsm_class_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S16_Cfsm_class_phrase_th} // shift sym: LR1_parallel_operator
+ ,{581,(State*)&S55_Cfsm_class_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S54pse_Cfsm_class_phrase_th = {3,(State*)&S16_Cfsm_class_phrase_th};
+struct S54rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S54rtd_Cfsm_class_phrase_th S54rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S54_Cfsm_class_phrase_th = //State's vectored into symbol: "Rsyntax_code"
+{54
+,(Shift_entry*)&S54pse_Cfsm_class_phrase_th,0,0,0,(Shift_tbl*)&S54st_Cfsm_class_phrase_th,(Reduce_tbl*)&S54rt_Cfsm_class_phrase_th,(State_s_thread_tbl*)&S16tt_Cfsm_class_phrase_th,0,0};
+struct S55rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S55rtd_Cfsm_class_phrase_th S55rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs1_Rmaybe_directive_phrase_}
+ }// end of reduce table
+};
+yacco2::State S55_Cfsm_class_phrase_th = //State's vectored into symbol: "Rlint"
+{55
+,0,0,0,0,0,(Reduce_tbl*)&S55rt_Cfsm_class_phrase_th,0,0,0};
+struct S56rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S56rtd_Cfsm_class_phrase_th S56rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs1_Rmaybe_directive_phrases_}
+ }// end of reduce table
+};
+yacco2::State S56_Cfsm_class_phrase_th = //State's vectored into symbol: "Rmaybe_directive_phrase"
+{56
+,0,0,0,0,0,(Reduce_tbl*)&S56rt_Cfsm_class_phrase_th,0,0,0};
+struct S57rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S57rtd_Cfsm_class_phrase_th S57rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs12_Rmust_directive_}
+ }// end of reduce table
+};
+yacco2::State S57_Cfsm_class_phrase_th = //State's vectored into symbol: "|?|"
+{57
+,0,0,0,0,0,(Reduce_tbl*)&S57rt_Cfsm_class_phrase_th,0,0,0};
+struct S58std_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[11];
+};
+S58std_Cfsm_class_phrase_th S58st_Cfsm_class_phrase_th = {
+ 11
+ ,
+ {// start of table
+ {0,(State*)&S59_Cfsm_class_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{308,(State*)&S60_Cfsm_class_phrase_th} // shift sym: T_user_declaration
+ ,{309,(State*)&S61_Cfsm_class_phrase_th} // shift sym: T_user_prefix_declaration
+ ,{310,(State*)&S62_Cfsm_class_phrase_th} // shift sym: T_user_suffix_declaration
+ ,{311,(State*)&S63_Cfsm_class_phrase_th} // shift sym: T_constructor
+ ,{312,(State*)&S64_Cfsm_class_phrase_th} // shift sym: T_destructor
+ ,{313,(State*)&S65_Cfsm_class_phrase_th} // shift sym: T_op
+ ,{314,(State*)&S66_Cfsm_class_phrase_th} // shift sym: T_failed
+ ,{315,(State*)&S67_Cfsm_class_phrase_th} // shift sym: T_user_implementation
+ ,{316,(State*)&S68_Cfsm_class_phrase_th} // shift sym: T_user_imp_tbl
+ ,{317,(State*)&S69_Cfsm_class_phrase_th} // shift sym: T_user_imp_sym
+ }// end of shift table
+};
+yacco2::Shift_entry S58qse_Cfsm_class_phrase_th = {0,(State*)&S59_Cfsm_class_phrase_th};
+yacco2::State S58_Cfsm_class_phrase_th = //State's vectored into symbol: "|||"
+{58
+,0,0,0,0,(Shift_tbl*)&S58st_Cfsm_class_phrase_th,0,0,0,(Shift_entry*)&S58qse_Cfsm_class_phrase_th
+};
+struct S59rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S59rtd_Cfsm_class_phrase_th S59rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs11_Rmust_directive_}
+ }// end of reduce table
+};
+yacco2::State S59_Cfsm_class_phrase_th = //State's vectored into symbol: "|?|"
+{59
+,0,0,0,0,0,(Reduce_tbl*)&S59rt_Cfsm_class_phrase_th,0,0,0};
+struct S60rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S60rtd_Cfsm_class_phrase_th S60rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs1_Rmust_directive_}
+ }// end of reduce table
+};
+yacco2::State S60_Cfsm_class_phrase_th = //State's vectored into symbol: "#user-declaration"
+{60
+,0,0,0,0,0,(Reduce_tbl*)&S60rt_Cfsm_class_phrase_th,0,0,0};
+struct S61rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S61rtd_Cfsm_class_phrase_th S61rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs3_Rmust_directive_}
+ }// end of reduce table
+};
+yacco2::State S61_Cfsm_class_phrase_th = //State's vectored into symbol: "#user-prefix-declaration"
+{61
+,0,0,0,0,0,(Reduce_tbl*)&S61rt_Cfsm_class_phrase_th,0,0,0};
+struct S62rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S62rtd_Cfsm_class_phrase_th S62rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs4_Rmust_directive_}
+ }// end of reduce table
+};
+yacco2::State S62_Cfsm_class_phrase_th = //State's vectored into symbol: "#user-suffix-declaration"
+{62
+,0,0,0,0,0,(Reduce_tbl*)&S62rt_Cfsm_class_phrase_th,0,0,0};
+struct S63rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S63rtd_Cfsm_class_phrase_th S63rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs5_Rmust_directive_}
+ }// end of reduce table
+};
+yacco2::State S63_Cfsm_class_phrase_th = //State's vectored into symbol: "#constructor"
+{63
+,0,0,0,0,0,(Reduce_tbl*)&S63rt_Cfsm_class_phrase_th,0,0,0};
+struct S64rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S64rtd_Cfsm_class_phrase_th S64rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs6_Rmust_directive_}
+ }// end of reduce table
+};
+yacco2::State S64_Cfsm_class_phrase_th = //State's vectored into symbol: "#destructor"
+{64
+,0,0,0,0,0,(Reduce_tbl*)&S64rt_Cfsm_class_phrase_th,0,0,0};
+struct S65rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S65rtd_Cfsm_class_phrase_th S65rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs7_Rmust_directive_}
+ }// end of reduce table
+};
+yacco2::State S65_Cfsm_class_phrase_th = //State's vectored into symbol: "#op"
+{65
+,0,0,0,0,0,(Reduce_tbl*)&S65rt_Cfsm_class_phrase_th,0,0,0};
+struct S66rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S66rtd_Cfsm_class_phrase_th S66rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs8_Rmust_directive_}
+ }// end of reduce table
+};
+yacco2::State S66_Cfsm_class_phrase_th = //State's vectored into symbol: "#failed"
+{66
+,0,0,0,0,0,(Reduce_tbl*)&S66rt_Cfsm_class_phrase_th,0,0,0};
+struct S67rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S67rtd_Cfsm_class_phrase_th S67rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs2_Rmust_directive_}
+ }// end of reduce table
+};
+yacco2::State S67_Cfsm_class_phrase_th = //State's vectored into symbol: "#user-implementation"
+{67
+,0,0,0,0,0,(Reduce_tbl*)&S67rt_Cfsm_class_phrase_th,0,0,0};
+struct S68rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S68rtd_Cfsm_class_phrase_th S68rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs9_Rmust_directive_}
+ }// end of reduce table
+};
+yacco2::State S68_Cfsm_class_phrase_th = //State's vectored into symbol: "#user-imp-tbl"
+{68
+,0,0,0,0,0,(Reduce_tbl*)&S68rt_Cfsm_class_phrase_th,0,0,0};
+struct S69rtd_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S69rtd_Cfsm_class_phrase_th S69rt_Cfsm_class_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_class_phrase_th,Cfsm_class_phrase_th::rhs10_Rmust_directive_}
+ }// end of reduce table
+};
+yacco2::State S69_Cfsm_class_phrase_th = //State's vectored into symbol: "#user-imp-sym"
+{69
+,0,0,0,0,0,(Reduce_tbl*)&S69rt_Cfsm_class_phrase_th,0,0,0};
+struct S70std_Cfsm_class_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[11];
+};
+S70std_Cfsm_class_phrase_th S70st_Cfsm_class_phrase_th = {
+ 11
+ ,
+ {// start of table
+ {0,(State*)&S33_Cfsm_class_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{308,(State*)&S34_Cfsm_class_phrase_th} // shift sym: T_user_declaration
+ ,{309,(State*)&S35_Cfsm_class_phrase_th} // shift sym: T_user_prefix_declaration
+ ,{310,(State*)&S36_Cfsm_class_phrase_th} // shift sym: T_user_suffix_declaration
+ ,{311,(State*)&S37_Cfsm_class_phrase_th} // shift sym: T_constructor
+ ,{312,(State*)&S38_Cfsm_class_phrase_th} // shift sym: T_destructor
+ ,{313,(State*)&S39_Cfsm_class_phrase_th} // shift sym: T_op
+ ,{314,(State*)&S40_Cfsm_class_phrase_th} // shift sym: T_failed
+ ,{315,(State*)&S41_Cfsm_class_phrase_th} // shift sym: T_user_implementation
+ ,{316,(State*)&S42_Cfsm_class_phrase_th} // shift sym: T_user_imp_tbl
+ ,{317,(State*)&S43_Cfsm_class_phrase_th} // shift sym: T_user_imp_sym
+ }// end of shift table
+};
+yacco2::Shift_entry S70qse_Cfsm_class_phrase_th = {0,(State*)&S33_Cfsm_class_phrase_th};
+yacco2::State S70_Cfsm_class_phrase_th = //State's vectored into symbol: "|||"
+{70
+,0,0,0,0,(Shift_tbl*)&S70st_Cfsm_class_phrase_th,0,0,0,(Shift_entry*)&S70qse_Cfsm_class_phrase_th
+};
diff --git a/web/yacco2/compiler/grammars/fsm_phrase.cpp b/web/yacco2/compiler/grammars/fsm_phrase.cpp
new file mode 100644
index 0000000000..1225899a45
--- /dev/null
+++ b/web/yacco2/compiler/grammars/fsm_phrase.cpp
@@ -0,0 +1,104 @@
+/*
+ File: fsm_phrase.cpp
+ Date and Time: Fri Jan 30 18:55:12 2015
+*/
+#include "fsm_phrase.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_fsm_phrase;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 2;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+}
+ Cfsm_phrase::
+ Cfsm_phrase()
+ :yacco2::CAbs_fsm
+ ("fsm_phrase.lex"
+ ,"1.0"
+ ,"4 mar 2004"
+ ,false
+ ,"Dispatcher to parse ``fsm'' construct."
+ ,"Fri Jan 30 18:55:12 2015 "
+ ,S1_Cfsm_phrase){
+
+ }
+
+Cfsm_phrase::~Cfsm_phrase(){
+
+ for(int x = 0;x < 2;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cfsm_phrase::failed(){
+ return false;
+ }
+ void Cfsm_phrase::op(){
+ cweb_marker__ = 0;
+
+}
+int Cfsm_phrase::rhs_to_rules_mapping_[5] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,1 // subrule 4 for rule 2
+};
+Rfsm_phrase::Rfsm_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfsm_phrase",0,Cfsm_phrase::R_Rfsm_phrase_,P,false,false){
+}
+
+Rphrase::Rphrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rphrase",0,Cfsm_phrase::R_Rphrase_,P,false,false){
+}
+
+void Rphrase::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_fsm_phrase* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rphrase::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+
+}
+
+void Rphrase::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_open_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+
+}
+
diff --git a/web/yacco2/compiler/grammars/fsm_phrase.fsc b/web/yacco2/compiler/grammars/fsm_phrase.fsc
new file mode 100644
index 0000000000..79491edf36
--- /dev/null
+++ b/web/yacco2/compiler/grammars/fsm_phrase.fsc
@@ -0,0 +1,22 @@
+/*
+ File: fsm_phrase.fsc
+ Date and Time: Fri Jan 30 18:55:12 2015
+*/
+transitive y
+grammar-name "fsm_phrase"
+name-space "NS_fsm_phrase"
+thread-name "Cfsm_phrase"
+monolithic y
+file-name "fsm_phrase.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ LR1_questionable_shift_operator
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 1
+ NS_fsm_phrase_th::TH_fsm_phrase_th
+end-list-of-transitive-threads
+list-of-used-threads 1
+ NS_fsm_phrase_th::TH_fsm_phrase_th
+end-list-of-used-threads
+fsm-comments
+"Dispatcher to parse ``fsm'' construct."
diff --git a/web/yacco2/compiler/grammars/fsm_phrase.h b/web/yacco2/compiler/grammars/fsm_phrase.h
new file mode 100644
index 0000000000..723c3265bb
--- /dev/null
+++ b/web/yacco2/compiler/grammars/fsm_phrase.h
@@ -0,0 +1,69 @@
+/*
+ File: fsm_phrase.h
+ Date and Time: Fri Jan 30 18:55:12 2015
+*/
+#ifndef __fsm_phrase_h__
+#define __fsm_phrase_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "fsm_phrase_th.h"
+ using namespace NS_yacco2_terminals;
+
+// monolithic grammar: no thread
+extern yacco2::State S1_Cfsm_phrase;
+namespace NS_fsm_phrase {
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[2];
+};
+class Cfsm_phrase: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rfsm_phrase_ = 569//start_of_rule_list + 0
+ ,rhs1_Rfsm_phrase_ = 1
+ ,R_Rphrase_ = 570//start_of_rule_list + 2
+ ,rhs1_Rphrase_ = 2
+ ,rhs2_Rphrase_ = 3
+ ,rhs3_Rphrase_ = 4
+ };
+ //no of la sets = 1
+ //no of states = 6
+ Cfsm_phrase();
+ ~Cfsm_phrase();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[5];
+
+ public: yacco2::AST* cweb_marker__;
+
+ };
+struct Rfsm_phrase;
+struct Rphrase;
+struct Rfsm_phrase:public yacco2::CAbs_lr1_sym {
+ Rfsm_phrase(yacco2::Parser* P);
+ public:
+};
+
+struct Rphrase:public yacco2::CAbs_lr1_sym {
+ Rphrase(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/fsm_phrase.lex b/web/yacco2/compiler/grammars/fsm_phrase.lex
new file mode 100644
index 0000000000..a2487caa6f
--- /dev/null
+++ b/web/yacco2/compiler/grammars/fsm_phrase.lex
@@ -0,0 +1,69 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: fsm_phrase.lex
+Dates: 10 Mar 2004
+Purpose: parse fsm construct
+ Monolithic grammar that launches its thread.
+ Properly handles threads and errors. Starts
+ from a procedure using another parser's
+ token stream from a specific point.
+Note: Use of ||| |?| phrase to catch other returned terminals
+ or errors. In this case, it is errors.
+ One can be selective within various contexts:
+ 1) within arbitration
+ 2) sub-rule level
+ The symbol's enumerated id is the fodder to filter on.
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |fsm_phrase| grammar.\fbreak
+Dispatch grammar to parse the fsm construct.\fbreak
+Gets launched from |PROCESS_KEYWORD_FOR_SYNTAX_CODE|
+external procedure.
+@/
+fsm
+(fsm-id "fsm_phrase.lex",fsm-filename fsm_phrase,fsm-namespace NS_fsm_phrase
+,fsm-class Cfsm_phrase{
+ user-prefix-declaration
+#include "fsm_phrase_th.h"
+ using namespace NS_yacco2_terminals;
+ ***
+ user-declaration
+ public: yacco2::AST* cweb_marker__;
+ ***
+ op
+ cweb_marker__ = 0;
+ ***
+}
+,fsm-version "1.0",fsm-date "4 mar 2004",fsm-debug "false"
+,fsm-comments "Dispatcher to parse ``fsm'' construct.")
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rfsm_phrase (){
+ -> Rphrase
+}
+
+Rphrase (){
+ -> ||| "fsm-phrase" NS_fsm_phrase_th::TH_fsm_phrase_th {
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| |?| NULL { // thread has stop parsing with RSVP error
+ op
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ ***
+ }
+ -> |?| { // error due to no first set to start thread
+ op
+ CAbs_lr1_sym* sym = new Err_no_open_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/fsm_phrase_th.cpp b/web/yacco2/compiler/grammars/fsm_phrase_th.cpp
new file mode 100644
index 0000000000..da9ee53ac4
--- /dev/null
+++ b/web/yacco2/compiler/grammars/fsm_phrase_th.cpp
@@ -0,0 +1,1011 @@
+/*
+ File: fsm_phrase_th.cpp
+ Date and Time: Fri Jan 30 18:55:12 2015
+*/
+#include "fsm_phrase_th.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_fsm_phrase_th;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 30;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[4] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[5] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[6] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[7] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[8] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[9] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[10] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[11] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[12] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[13] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[14] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[15] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[16] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[17] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[18] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[19] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[20] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[21] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[22] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[23] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[24] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[25] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[26] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[27] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[28] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[29] = new Per_rule_s_reuse_table();
+}
+ Cfsm_phrase_th::
+ Cfsm_phrase_th()
+ :yacco2::CAbs_fsm
+ ("fsm_phrase_th.lex"
+ ,"1.0"
+ ,"11 mar 2004"
+ ,false
+ ,"Parse grammar's fsm phrase along with its directives."
+ ,"Fri Jan 30 18:55:12 2015 "
+ ,S1_Cfsm_phrase_th){
+
+ fsm_phrase_ = 0;
+
+ }
+
+Cfsm_phrase_th::~Cfsm_phrase_th(){
+
+ for(int x = 0;x < 30;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cfsm_phrase_th::failed(){
+ return false;
+ }
+ void Cfsm_phrase_th::op(){
+ if(fsm_phrase_ != 0){
+ delete fsm_phrase_;
+ fsm_phrase_ = 0;
+ }
+ fsm_phrase_ = new T_fsm_phrase;
+ fsm_phrase_->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ AST* t = new AST(*fsm_phrase_);
+ fsm_phrase_->phrase_tree(t);
+ if(CWEB_MARKER != 0){
+ fsm_phrase_->add_cweb_marker(CWEB_MARKER);
+ CWEB_MARKER = 0;
+ }
+
+}
+int Cfsm_phrase_th::rhs_to_rules_mapping_[73] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,2 // subrule 4 for rule 3
+ ,2 // subrule 5 for rule 3
+ ,3 // subrule 6 for rule 4
+ ,4 // subrule 7 for rule 5
+ ,5 // subrule 8 for rule 6
+ ,5 // subrule 9 for rule 6
+ ,5 // subrule 10 for rule 6
+ ,6 // subrule 11 for rule 7
+ ,6 // subrule 12 for rule 7
+ ,6 // subrule 13 for rule 7
+ ,7 // subrule 14 for rule 8
+ ,7 // subrule 15 for rule 8
+ ,8 // subrule 16 for rule 9
+ ,8 // subrule 17 for rule 9
+ ,8 // subrule 18 for rule 9
+ ,9 // subrule 19 for rule 10
+ ,9 // subrule 20 for rule 10
+ ,9 // subrule 21 for rule 10
+ ,10 // subrule 22 for rule 11
+ ,10 // subrule 23 for rule 11
+ ,11 // subrule 24 for rule 12
+ ,11 // subrule 25 for rule 12
+ ,11 // subrule 26 for rule 12
+ ,12 // subrule 27 for rule 13
+ ,12 // subrule 28 for rule 13
+ ,12 // subrule 29 for rule 13
+ ,13 // subrule 30 for rule 14
+ ,13 // subrule 31 for rule 14
+ ,14 // subrule 32 for rule 15
+ ,14 // subrule 33 for rule 15
+ ,14 // subrule 34 for rule 15
+ ,15 // subrule 35 for rule 16
+ ,15 // subrule 36 for rule 16
+ ,16 // subrule 37 for rule 17
+ ,16 // subrule 38 for rule 17
+ ,17 // subrule 39 for rule 18
+ ,17 // subrule 40 for rule 18
+ ,17 // subrule 41 for rule 18
+ ,18 // subrule 42 for rule 19
+ ,18 // subrule 43 for rule 19
+ ,18 // subrule 44 for rule 19
+ ,19 // subrule 45 for rule 20
+ ,19 // subrule 46 for rule 20
+ ,20 // subrule 47 for rule 21
+ ,20 // subrule 48 for rule 21
+ ,20 // subrule 49 for rule 21
+ ,21 // subrule 50 for rule 22
+ ,21 // subrule 51 for rule 22
+ ,21 // subrule 52 for rule 22
+ ,22 // subrule 53 for rule 23
+ ,22 // subrule 54 for rule 23
+ ,23 // subrule 55 for rule 24
+ ,23 // subrule 56 for rule 24
+ ,23 // subrule 57 for rule 24
+ ,24 // subrule 58 for rule 25
+ ,24 // subrule 59 for rule 25
+ ,24 // subrule 60 for rule 25
+ ,25 // subrule 61 for rule 26
+ ,25 // subrule 62 for rule 26
+ ,26 // subrule 63 for rule 27
+ ,26 // subrule 64 for rule 27
+ ,26 // subrule 65 for rule 27
+ ,27 // subrule 66 for rule 28
+ ,27 // subrule 67 for rule 28
+ ,27 // subrule 68 for rule 28
+ ,28 // subrule 69 for rule 29
+ ,28 // subrule 70 for rule 29
+ ,29 // subrule 71 for rule 30
+ ,29 // subrule 72 for rule 30
+};
+Rfsm_phrase::Rfsm_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfsm_phrase",0,Cfsm_phrase_th::R_Rfsm_phrase_,P,false,false){
+}
+
+void Rfsm_phrase::sr1(){
+
+ Cfsm_phrase_th* fsm = (Cfsm_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ RSVP(fsm->fsm_phrase_);
+ fsm->fsm_phrase_ = 0;
+
+}
+
+Ropen_par::Ropen_par(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Ropen_par",0,Cfsm_phrase_th::R_Ropen_par_,P,false,false){
+}
+
+void Ropen_par::sr1(){
+
+ CAbs_lr1_sym* sym = new Err_no_open_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rclose_par::Rclose_par(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rclose_par",0,Cfsm_phrase_th::R_Rclose_par_,P,false,false){
+}
+
+void Rclose_par::sr1(){
+
+ CAbs_lr1_sym* sym = new Err_no_close_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rparameters::Rparameters(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rparameters",0,Cfsm_phrase_th::R_Rparameters_,P,false,false){
+}
+
+Rfsm_id_phrase::Rfsm_id_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfsm_id_phrase",0,Cfsm_phrase_th::R_Rfsm_id_phrase_,P,false,false){
+}
+
+Rfsm_id::Rfsm_id(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfsm_id",0,Cfsm_phrase_th::R_Rfsm_id_,P,false,false){
+}
+
+void Rfsm_id::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_fsm_id_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rfsm_id::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_fsm_id_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rfsm_id_name::Rfsm_id_name(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfsm_id_name",0,Cfsm_phrase_th::R_Rfsm_id_name_,P,false,false){
+}
+
+void Rfsm_id_name::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_c_string* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cfsm_phrase_th* fsm = (Cfsm_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->fsm_phrase_->fsm_id(sf->p2__);
+
+}
+
+void Rfsm_id_name::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rfsm_id_name::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_fsm_id_string;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rfsm_filename_phrase::Rfsm_filename_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfsm_filename_phrase",0,Cfsm_phrase_th::R_Rfsm_filename_phrase_,P,false,false){
+}
+
+void Rfsm_filename_phrase::sr2(){
+
+ CAbs_lr1_sym* sym = new Err_no_comma_present;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rfsm_filename::Rfsm_filename(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfsm_filename",0,Cfsm_phrase_th::R_Rfsm_filename_,P,false,false){
+}
+
+void Rfsm_filename::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_fsm_filename_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rfsm_filename::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_fsm_filename_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rfsm_filename_name::Rfsm_filename_name(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfsm_filename_name",0,Cfsm_phrase_th::R_Rfsm_filename_name_,P,false,false){
+}
+
+void Rfsm_filename_name::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_identifier* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cfsm_phrase_th* fsm = (Cfsm_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->fsm_phrase_->filename_id(sf->p2__);
+
+}
+
+void Rfsm_filename_name::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_fsm_filename_id_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rfsm_filename_name::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_fsm_filename_id_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rfsm_namespace_phrase::Rfsm_namespace_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfsm_namespace_phrase",0,Cfsm_phrase_th::R_Rfsm_namespace_phrase_,P,false,false){
+}
+
+void Rfsm_namespace_phrase::sr2(){
+
+ CAbs_lr1_sym* sym = new Err_no_comma_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rfsm_namespace::Rfsm_namespace(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfsm_namespace",0,Cfsm_phrase_th::R_Rfsm_namespace_,P,false,false){
+}
+
+void Rfsm_namespace::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_fsm_namespace_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rfsm_namespace::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_fsm_namespace_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rfsm_namespace_name::Rfsm_namespace_name(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfsm_namespace_name",0,Cfsm_phrase_th::R_Rfsm_namespace_name_,P,false,false){
+}
+
+void Rfsm_namespace_name::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_identifier* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cfsm_phrase_th* fsm = (Cfsm_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->fsm_phrase_->namespace_id(sf->p2__);
+
+}
+
+void Rfsm_namespace_name::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_fsm_namespace_id_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rfsm_namespace_name::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_fsm_namespace_id_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rfsm_class_phrase::Rfsm_class_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfsm_class_phrase",0,Cfsm_phrase_th::R_Rfsm_class_phrase_,P,false,false){
+}
+
+void Rfsm_class_phrase::sr2(){
+
+ CAbs_lr1_sym* sym = new Err_no_comma_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rfsm_class::Rfsm_class(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfsm_class",0,Cfsm_phrase_th::R_Rfsm_class_,P,false,false){
+}
+
+void Rfsm_class::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_fsm_class_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rfsm_class::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_fsm_class_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rfsm_class_name::Rfsm_class_name(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfsm_class_name",0,Cfsm_phrase_th::R_Rfsm_class_name_,P,false,false){
+}
+
+void Rfsm_class_name::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_fsm_class_phrase* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cfsm_phrase_th* fsm = (Cfsm_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->fsm_phrase_->fsm_class_phrase(sf->p2__);
+
+}
+
+void Rfsm_class_name::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rfsm_version_phrase::Rfsm_version_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfsm_version_phrase",0,Cfsm_phrase_th::R_Rfsm_version_phrase_,P,false,false){
+}
+
+void Rfsm_version_phrase::sr2(){
+
+ CAbs_lr1_sym* sym = new Err_no_comma_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rfsm_version::Rfsm_version(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfsm_version",0,Cfsm_phrase_th::R_Rfsm_version_,P,false,false){
+}
+
+void Rfsm_version::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_fsm_version_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rfsm_version::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_fsm_version_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rfsm_version_string::Rfsm_version_string(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfsm_version_string",0,Cfsm_phrase_th::R_Rfsm_version_string_,P,false,false){
+}
+
+void Rfsm_version_string::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_c_string* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cfsm_phrase_th* fsm = (Cfsm_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->fsm_phrase_->version(sf->p2__);
+
+}
+
+void Rfsm_version_string::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rfsm_version_string::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_fsm_version_string;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rfsm_date_phrase::Rfsm_date_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfsm_date_phrase",0,Cfsm_phrase_th::R_Rfsm_date_phrase_,P,false,false){
+}
+
+void Rfsm_date_phrase::sr2(){
+
+ CAbs_lr1_sym* sym = new Err_no_comma_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rfsm_date::Rfsm_date(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfsm_date",0,Cfsm_phrase_th::R_Rfsm_date_,P,false,false){
+}
+
+void Rfsm_date::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_fsm_date_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rfsm_date::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_fsm_date_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rfsm_date_string::Rfsm_date_string(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfsm_date_string",0,Cfsm_phrase_th::R_Rfsm_date_string_,P,false,false){
+}
+
+void Rfsm_date_string::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_c_string* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cfsm_phrase_th* fsm = (Cfsm_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->fsm_phrase_->date(sf->p2__);
+
+}
+
+void Rfsm_date_string::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rfsm_date_string::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_fsm_date_string;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rfsm_debug_phrase::Rfsm_debug_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfsm_debug_phrase",0,Cfsm_phrase_th::R_Rfsm_debug_phrase_,P,false,false){
+}
+
+void Rfsm_debug_phrase::sr2(){
+
+ CAbs_lr1_sym* sym = new Err_no_comma_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rfsm_debug::Rfsm_debug(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfsm_debug",0,Cfsm_phrase_th::R_Rfsm_debug_,P,false,false){
+}
+
+void Rfsm_debug::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_fsm_debug_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rfsm_debug::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_fsm_debug_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rfsm_debug_string::Rfsm_debug_string(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfsm_debug_string",0,Cfsm_phrase_th::R_Rfsm_debug_string_,P,false,false){
+}
+
+void Rfsm_debug_string::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_c_string* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cfsm_phrase_th* fsm = (Cfsm_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ std::string x(sf->p2__->c_string()->c_str());
+ std::string t("true");
+ if(x == t){
+ fsm->fsm_phrase_->debug(sf->p2__);
+ return;
+ }
+ std::string f("false");
+ if(x == f){
+ fsm->fsm_phrase_->debug(sf->p2__);
+ return;
+ }
+ CAbs_lr1_sym* sym = new Err_fsm_debug_string_not_true_or_false;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rfsm_debug_string::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rfsm_debug_string::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_fsm_debug_string;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rfsm_comments_phrase::Rfsm_comments_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfsm_comments_phrase",0,Cfsm_phrase_th::R_Rfsm_comments_phrase_,P,false,false){
+}
+
+void Rfsm_comments_phrase::sr2(){
+
+ CAbs_lr1_sym* sym = new Err_no_comma_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rfsm_comments::Rfsm_comments(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfsm_comments",0,Cfsm_phrase_th::R_Rfsm_comments_,P,false,false){
+}
+
+void Rfsm_comments::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_fsm_comments_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rfsm_comments::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_fsm_comments_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rfsm_comments_string::Rfsm_comments_string(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfsm_comments_string",0,Cfsm_phrase_th::R_Rfsm_comments_string_,P,false,false){
+}
+
+void Rfsm_comments_string::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_c_string* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cfsm_phrase_th* fsm = (Cfsm_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->fsm_phrase_->comment(sf->p2__);
+
+}
+
+void Rfsm_comments_string::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rfsm_comments_string::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_fsm_comments_string;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rlint::Rlint(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlint",0,Cfsm_phrase_th::R_Rlint_,P,false,false){
+}
+
+Rlint_epi::Rlint_epi(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlint_epi",0,Cfsm_phrase_th::R_Rlint_epi_,P,false,false){
+}
+
diff --git a/web/yacco2/compiler/grammars/fsm_phrase_th.fsc b/web/yacco2/compiler/grammars/fsm_phrase_th.fsc
new file mode 100644
index 0000000000..02f8d3d152
--- /dev/null
+++ b/web/yacco2/compiler/grammars/fsm_phrase_th.fsc
@@ -0,0 +1,26 @@
+/*
+ File: fsm_phrase_th.fsc
+ Date and Time: Fri Jan 30 18:55:12 2015
+*/
+transitive y
+grammar-name "fsm_phrase_th"
+name-space "NS_fsm_phrase_th"
+thread-name "TH_fsm_phrase_th"
+monolithic n
+file-name "fsm_phrase_th.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 2
+ LR1_questionable_shift_operator
+ raw_open_bracket
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 1
+ NS_lint_balls::TH_lint_balls
+end-list-of-transitive-threads
+list-of-used-threads 4
+ NS_c_string::TH_c_string
+ NS_fsm_class_phrase_th::TH_fsm_class_phrase_th
+ NS_identifier::TH_identifier
+ NS_lint_balls::TH_lint_balls
+end-list-of-used-threads
+fsm-comments
+"Parse grammar's fsm phrase along with its directives."
diff --git a/web/yacco2/compiler/grammars/fsm_phrase_th.h b/web/yacco2/compiler/grammars/fsm_phrase_th.h
new file mode 100644
index 0000000000..752b2b4e38
--- /dev/null
+++ b/web/yacco2/compiler/grammars/fsm_phrase_th.h
@@ -0,0 +1,388 @@
+/*
+ File: fsm_phrase_th.h
+ Date and Time: Fri Jan 30 18:55:12 2015
+*/
+#ifndef __fsm_phrase_th_h__
+#define __fsm_phrase_th_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "lint_balls.h"
+#include "identifier.h"
+#include "c_string.h"
+#include "fsm_class_phrase_th.h"
+#include "o2_externs.h"
+
+extern yacco2::Thread_entry ITH_fsm_phrase_th;
+
+extern yacco2::State S1_Cfsm_phrase_th;
+namespace NS_fsm_phrase_th {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_fsm_phrase_th(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_fsm_phrase_th(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[30];
+};
+class Cfsm_phrase_th: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rfsm_phrase_ = 569//start_of_rule_list + 0
+ ,rhs1_Rfsm_phrase_ = 1
+ ,R_Ropen_par_ = 570//start_of_rule_list + 2
+ ,rhs1_Ropen_par_ = 2
+ ,rhs2_Ropen_par_ = 3
+ ,R_Rclose_par_ = 571//start_of_rule_list + 4
+ ,rhs1_Rclose_par_ = 4
+ ,rhs2_Rclose_par_ = 5
+ ,R_Rparameters_ = 572//start_of_rule_list + 6
+ ,rhs1_Rparameters_ = 6
+ ,R_Rfsm_id_phrase_ = 573//start_of_rule_list + 8
+ ,rhs1_Rfsm_id_phrase_ = 7
+ ,R_Rfsm_id_ = 574//start_of_rule_list + 10
+ ,rhs1_Rfsm_id_ = 8
+ ,rhs2_Rfsm_id_ = 9
+ ,rhs3_Rfsm_id_ = 10
+ ,R_Rfsm_id_name_ = 575//start_of_rule_list + 12
+ ,rhs1_Rfsm_id_name_ = 11
+ ,rhs2_Rfsm_id_name_ = 12
+ ,rhs3_Rfsm_id_name_ = 13
+ ,R_Rfsm_filename_phrase_ = 576//start_of_rule_list + 14
+ ,rhs1_Rfsm_filename_phrase_ = 14
+ ,rhs2_Rfsm_filename_phrase_ = 15
+ ,R_Rfsm_filename_ = 577//start_of_rule_list + 16
+ ,rhs1_Rfsm_filename_ = 16
+ ,rhs2_Rfsm_filename_ = 17
+ ,rhs3_Rfsm_filename_ = 18
+ ,R_Rfsm_filename_name_ = 578//start_of_rule_list + 18
+ ,rhs1_Rfsm_filename_name_ = 19
+ ,rhs2_Rfsm_filename_name_ = 20
+ ,rhs3_Rfsm_filename_name_ = 21
+ ,R_Rfsm_namespace_phrase_ = 579//start_of_rule_list + 20
+ ,rhs1_Rfsm_namespace_phrase_ = 22
+ ,rhs2_Rfsm_namespace_phrase_ = 23
+ ,R_Rfsm_namespace_ = 580//start_of_rule_list + 22
+ ,rhs1_Rfsm_namespace_ = 24
+ ,rhs2_Rfsm_namespace_ = 25
+ ,rhs3_Rfsm_namespace_ = 26
+ ,R_Rfsm_namespace_name_ = 581//start_of_rule_list + 24
+ ,rhs1_Rfsm_namespace_name_ = 27
+ ,rhs2_Rfsm_namespace_name_ = 28
+ ,rhs3_Rfsm_namespace_name_ = 29
+ ,R_Rfsm_class_phrase_ = 582//start_of_rule_list + 26
+ ,rhs1_Rfsm_class_phrase_ = 30
+ ,rhs2_Rfsm_class_phrase_ = 31
+ ,R_Rfsm_class_ = 583//start_of_rule_list + 28
+ ,rhs1_Rfsm_class_ = 32
+ ,rhs2_Rfsm_class_ = 33
+ ,rhs3_Rfsm_class_ = 34
+ ,R_Rfsm_class_name_ = 584//start_of_rule_list + 30
+ ,rhs1_Rfsm_class_name_ = 35
+ ,rhs2_Rfsm_class_name_ = 36
+ ,R_Rfsm_version_phrase_ = 585//start_of_rule_list + 32
+ ,rhs1_Rfsm_version_phrase_ = 37
+ ,rhs2_Rfsm_version_phrase_ = 38
+ ,R_Rfsm_version_ = 586//start_of_rule_list + 34
+ ,rhs1_Rfsm_version_ = 39
+ ,rhs2_Rfsm_version_ = 40
+ ,rhs3_Rfsm_version_ = 41
+ ,R_Rfsm_version_string_ = 587//start_of_rule_list + 36
+ ,rhs1_Rfsm_version_string_ = 42
+ ,rhs2_Rfsm_version_string_ = 43
+ ,rhs3_Rfsm_version_string_ = 44
+ ,R_Rfsm_date_phrase_ = 588//start_of_rule_list + 38
+ ,rhs1_Rfsm_date_phrase_ = 45
+ ,rhs2_Rfsm_date_phrase_ = 46
+ ,R_Rfsm_date_ = 589//start_of_rule_list + 40
+ ,rhs1_Rfsm_date_ = 47
+ ,rhs2_Rfsm_date_ = 48
+ ,rhs3_Rfsm_date_ = 49
+ ,R_Rfsm_date_string_ = 590//start_of_rule_list + 42
+ ,rhs1_Rfsm_date_string_ = 50
+ ,rhs2_Rfsm_date_string_ = 51
+ ,rhs3_Rfsm_date_string_ = 52
+ ,R_Rfsm_debug_phrase_ = 591//start_of_rule_list + 44
+ ,rhs1_Rfsm_debug_phrase_ = 53
+ ,rhs2_Rfsm_debug_phrase_ = 54
+ ,R_Rfsm_debug_ = 592//start_of_rule_list + 46
+ ,rhs1_Rfsm_debug_ = 55
+ ,rhs2_Rfsm_debug_ = 56
+ ,rhs3_Rfsm_debug_ = 57
+ ,R_Rfsm_debug_string_ = 593//start_of_rule_list + 48
+ ,rhs1_Rfsm_debug_string_ = 58
+ ,rhs2_Rfsm_debug_string_ = 59
+ ,rhs3_Rfsm_debug_string_ = 60
+ ,R_Rfsm_comments_phrase_ = 594//start_of_rule_list + 50
+ ,rhs1_Rfsm_comments_phrase_ = 61
+ ,rhs2_Rfsm_comments_phrase_ = 62
+ ,R_Rfsm_comments_ = 595//start_of_rule_list + 52
+ ,rhs1_Rfsm_comments_ = 63
+ ,rhs2_Rfsm_comments_ = 64
+ ,rhs3_Rfsm_comments_ = 65
+ ,R_Rfsm_comments_string_ = 596//start_of_rule_list + 54
+ ,rhs1_Rfsm_comments_string_ = 66
+ ,rhs2_Rfsm_comments_string_ = 67
+ ,rhs3_Rfsm_comments_string_ = 68
+ ,R_Rlint_ = 597//start_of_rule_list + 56
+ ,rhs1_Rlint_ = 69
+ ,rhs2_Rlint_ = 70
+ ,R_Rlint_epi_ = 598//start_of_rule_list + 58
+ ,rhs1_Rlint_epi_ = 71
+ ,rhs2_Rlint_epi_ = 72
+ };
+ //no of la sets = 8
+ //no of states = 139
+ Cfsm_phrase_th();
+ ~Cfsm_phrase_th();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[73];
+
+ public:
+ T_fsm_phrase* fsm_phrase_;
+
+ };
+struct Rfsm_phrase;
+struct Ropen_par;
+struct Rclose_par;
+struct Rparameters;
+struct Rfsm_id_phrase;
+struct Rfsm_id;
+struct Rfsm_id_name;
+struct Rfsm_filename_phrase;
+struct Rfsm_filename;
+struct Rfsm_filename_name;
+struct Rfsm_namespace_phrase;
+struct Rfsm_namespace;
+struct Rfsm_namespace_name;
+struct Rfsm_class_phrase;
+struct Rfsm_class;
+struct Rfsm_class_name;
+struct Rfsm_version_phrase;
+struct Rfsm_version;
+struct Rfsm_version_string;
+struct Rfsm_date_phrase;
+struct Rfsm_date;
+struct Rfsm_date_string;
+struct Rfsm_debug_phrase;
+struct Rfsm_debug;
+struct Rfsm_debug_string;
+struct Rfsm_comments_phrase;
+struct Rfsm_comments;
+struct Rfsm_comments_string;
+struct Rlint;
+struct Rlint_epi;
+struct Rfsm_phrase:public yacco2::CAbs_lr1_sym {
+ Rfsm_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Ropen_par:public yacco2::CAbs_lr1_sym {
+ Ropen_par(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rclose_par:public yacco2::CAbs_lr1_sym {
+ Rclose_par(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rparameters:public yacco2::CAbs_lr1_sym {
+ Rparameters(yacco2::Parser* P);
+ public:
+};
+
+struct Rfsm_id_phrase:public yacco2::CAbs_lr1_sym {
+ Rfsm_id_phrase(yacco2::Parser* P);
+ public:
+};
+
+struct Rfsm_id:public yacco2::CAbs_lr1_sym {
+ Rfsm_id(yacco2::Parser* P);
+ public:
+ void sr2();
+ void sr3();
+};
+
+struct Rfsm_id_name:public yacco2::CAbs_lr1_sym {
+ Rfsm_id_name(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Rfsm_filename_phrase:public yacco2::CAbs_lr1_sym {
+ Rfsm_filename_phrase(yacco2::Parser* P);
+ public:
+ void sr2();
+};
+
+struct Rfsm_filename:public yacco2::CAbs_lr1_sym {
+ Rfsm_filename(yacco2::Parser* P);
+ public:
+ void sr2();
+ void sr3();
+};
+
+struct Rfsm_filename_name:public yacco2::CAbs_lr1_sym {
+ Rfsm_filename_name(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Rfsm_namespace_phrase:public yacco2::CAbs_lr1_sym {
+ Rfsm_namespace_phrase(yacco2::Parser* P);
+ public:
+ void sr2();
+};
+
+struct Rfsm_namespace:public yacco2::CAbs_lr1_sym {
+ Rfsm_namespace(yacco2::Parser* P);
+ public:
+ void sr2();
+ void sr3();
+};
+
+struct Rfsm_namespace_name:public yacco2::CAbs_lr1_sym {
+ Rfsm_namespace_name(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Rfsm_class_phrase:public yacco2::CAbs_lr1_sym {
+ Rfsm_class_phrase(yacco2::Parser* P);
+ public:
+ void sr2();
+};
+
+struct Rfsm_class:public yacco2::CAbs_lr1_sym {
+ Rfsm_class(yacco2::Parser* P);
+ public:
+ void sr2();
+ void sr3();
+};
+
+struct Rfsm_class_name:public yacco2::CAbs_lr1_sym {
+ Rfsm_class_name(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rfsm_version_phrase:public yacco2::CAbs_lr1_sym {
+ Rfsm_version_phrase(yacco2::Parser* P);
+ public:
+ void sr2();
+};
+
+struct Rfsm_version:public yacco2::CAbs_lr1_sym {
+ Rfsm_version(yacco2::Parser* P);
+ public:
+ void sr2();
+ void sr3();
+};
+
+struct Rfsm_version_string:public yacco2::CAbs_lr1_sym {
+ Rfsm_version_string(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Rfsm_date_phrase:public yacco2::CAbs_lr1_sym {
+ Rfsm_date_phrase(yacco2::Parser* P);
+ public:
+ void sr2();
+};
+
+struct Rfsm_date:public yacco2::CAbs_lr1_sym {
+ Rfsm_date(yacco2::Parser* P);
+ public:
+ void sr2();
+ void sr3();
+};
+
+struct Rfsm_date_string:public yacco2::CAbs_lr1_sym {
+ Rfsm_date_string(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Rfsm_debug_phrase:public yacco2::CAbs_lr1_sym {
+ Rfsm_debug_phrase(yacco2::Parser* P);
+ public:
+ void sr2();
+};
+
+struct Rfsm_debug:public yacco2::CAbs_lr1_sym {
+ Rfsm_debug(yacco2::Parser* P);
+ public:
+ void sr2();
+ void sr3();
+};
+
+struct Rfsm_debug_string:public yacco2::CAbs_lr1_sym {
+ Rfsm_debug_string(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Rfsm_comments_phrase:public yacco2::CAbs_lr1_sym {
+ Rfsm_comments_phrase(yacco2::Parser* P);
+ public:
+ void sr2();
+};
+
+struct Rfsm_comments:public yacco2::CAbs_lr1_sym {
+ Rfsm_comments(yacco2::Parser* P);
+ public:
+ void sr2();
+ void sr3();
+};
+
+struct Rfsm_comments_string:public yacco2::CAbs_lr1_sym {
+ Rfsm_comments_string(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Rlint:public yacco2::CAbs_lr1_sym {
+ Rlint(yacco2::Parser* P);
+ public:
+};
+
+struct Rlint_epi:public yacco2::CAbs_lr1_sym {
+ Rlint_epi(yacco2::Parser* P);
+ public:
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/fsm_phrase_th.lex b/web/yacco2/compiler/grammars/fsm_phrase_th.lex
new file mode 100644
index 0000000000..4c9e3ae6c9
--- /dev/null
+++ b/web/yacco2/compiler/grammars/fsm_phrase_th.lex
@@ -0,0 +1,580 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: fsm_phrase_th.lex
+Dates: 11 Mar 2004
+Purpose: parse fsm phrase
+Output: fsm-phrase
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |fsm_phrase_th| Thread.\fbreak
+Parse fsm phrase along with its directives.\fbreak
+\fbreak
+Example of a fsm construct to parse:\fbreak
+\listing{"/usr/local/yacco2/diagrams+etc/fsm.txt"}
+
+@/
+fsm
+(fsm-id "fsm_phrase_th.lex",fsm-filename fsm_phrase_th,fsm-namespace NS_fsm_phrase_th
+,fsm-class Cfsm_phrase_th{
+ user-prefix-declaration
+#include "lint_balls.h"
+#include "identifier.h"
+#include "c_string.h"
+#include "fsm_class_phrase_th.h"
+#include "o2_externs.h"
+ ***
+ user-declaration
+ public:
+ T_fsm_phrase* fsm_phrase_;
+ ***
+ constructor
+ fsm_phrase_ = 0;
+ ***
+ op
+ if(fsm_phrase_ != 0){
+ delete fsm_phrase_;
+ fsm_phrase_ = 0;
+ }
+ fsm_phrase_ = new T_fsm_phrase;
+ fsm_phrase_->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ AST* t = new AST(*fsm_phrase_);
+ fsm_phrase_->phrase_tree(t);
+ if(CWEB_MARKER != 0){
+ fsm_phrase_->add_cweb_marker(CWEB_MARKER);
+ CWEB_MARKER = 0;
+ }
+ ***
+}
+,fsm-version "1.0",fsm-date "11 mar 2004",fsm-debug "false"
+,fsm-comments "Parse grammar's fsm phrase along with its directives.")
+parallel-parser
+(
+ parallel-thread-function
+ TH_fsm_phrase_th
+ ***
+ parallel-la-boundary
+ eolr
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+rules{
+Rfsm_phrase (){
+ -> Rlint_epi
+ Ropen_par
+ Rparameters
+ Rclose_par
+ Rlint {
+ op
+ Cfsm_phrase_th* fsm = (Cfsm_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ RSVP(fsm->fsm_phrase_);
+ fsm->fsm_phrase_ = 0;
+ ***
+ }
+}
+
+Ropen_par (){
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_open_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> "("
+}
+
+Rclose_par (){
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_close_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ")"
+}
+
+Rparameters (){
+ -> Rlint
+ Rfsm_id_phrase Rlint
+ Rfsm_filename_phrase Rlint
+ Rfsm_namespace_phrase Rlint
+ Rfsm_class_phrase Rlint
+ Rfsm_version_phrase Rlint
+ Rfsm_date_phrase Rlint
+ Rfsm_debug_phrase Rlint
+ Rfsm_comments_phrase Rlint
+}
+
+Rfsm_id_phrase (){
+ -> Rfsm_id Rlint Rfsm_id_name
+}
+
+Rfsm_id (){
+ -> ||| "#fsm-id" NS_identifier::TH_identifier
+ -> ||| |?| NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_fsm_id_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_fsm_id_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rfsm_id_name (){
+ -> ||| "c-string" NS_c_string::TH_c_string {
+ op
+ Cfsm_phrase_th* fsm = (Cfsm_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->fsm_phrase_->fsm_id(sf->p2__);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_fsm_id_string;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rfsm_filename_phrase (){
+ -> "," Rlint Rfsm_filename Rlint Rfsm_filename_name
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_comma_present;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rfsm_filename (){
+ -> ||| "#fsm-filename" NS_identifier::TH_identifier
+ -> ||| |?| NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_fsm_filename_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_fsm_filename_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rfsm_filename_name (){
+ -> ||| identifier NS_identifier::TH_identifier {
+ /@
+Determine if file name properly formed as the
+filename witout the extension
+is used in generating the emitted files and
+the header guard signal.
+ @/
+ op
+ Cfsm_phrase_th* fsm = (Cfsm_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->fsm_phrase_->filename_id(sf->p2__);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_fsm_filename_id_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_fsm_filename_id_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rfsm_namespace_phrase (){
+ -> "," Rlint Rfsm_namespace Rlint Rfsm_namespace_name
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_comma_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rfsm_namespace (){
+ -> ||| "#fsm-namespace" NS_identifier::TH_identifier
+ -> ||| |?| NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_fsm_namespace_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_fsm_namespace_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rfsm_namespace_name (){
+ -> ||| identifier NS_identifier::TH_identifier {
+ op
+ Cfsm_phrase_th* fsm = (Cfsm_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->fsm_phrase_->namespace_id(sf->p2__);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_fsm_namespace_id_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_fsm_namespace_id_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rfsm_class_phrase (){
+ -> "," Rlint Rfsm_class Rlint Rfsm_class_name
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_comma_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rfsm_class (){
+ -> ||| "#fsm-class" NS_identifier::TH_identifier
+ -> ||| |?| NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_fsm_class_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_fsm_class_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rfsm_class_name (){
+ -> ||| "fsm-class-phrase" NS_fsm_class_phrase_th::TH_fsm_class_phrase_th {
+ op
+ Cfsm_phrase_th* fsm = (Cfsm_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->fsm_phrase_->fsm_class_phrase(sf->p2__);
+ ***
+ }
+ -> ||| |?| NULL {// catcher of what?
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rfsm_version_phrase (){
+ -> "," Rlint Rfsm_version Rlint Rfsm_version_string
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_comma_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rfsm_version (){
+ -> ||| "#fsm-version" NS_identifier::TH_identifier
+ -> ||| |?| NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_fsm_version_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_fsm_version_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rfsm_version_string (){
+ -> ||| "c-string" NS_c_string::TH_c_string {
+ op
+ Cfsm_phrase_th* fsm = (Cfsm_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->fsm_phrase_->version(sf->p2__);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_fsm_version_string;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rfsm_date_phrase (){
+ -> "," Rlint Rfsm_date Rlint Rfsm_date_string
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_comma_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rfsm_date (){
+ -> ||| "#fsm-date" NS_identifier::TH_identifier
+ -> ||| |?| NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_fsm_date_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_fsm_date_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rfsm_date_string (){
+ -> ||| "c-string" NS_c_string::TH_c_string {
+ op
+ Cfsm_phrase_th* fsm = (Cfsm_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->fsm_phrase_->date(sf->p2__);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_fsm_date_string;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rfsm_debug_phrase (){
+ -> "," Rlint Rfsm_debug Rlint Rfsm_debug_string
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_comma_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rfsm_debug (){
+ -> ||| "#fsm-debug" NS_identifier::TH_identifier
+ -> ||| |?| NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_fsm_debug_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_fsm_debug_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rfsm_debug_string (){
+ -> ||| "c-string" NS_c_string::TH_c_string {
+ op
+ Cfsm_phrase_th* fsm = (Cfsm_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ std::string x(sf->p2__->c_string()->c_str());
+ std::string t("true");
+ if(x == t){
+ fsm->fsm_phrase_->debug(sf->p2__);
+ return;
+ }
+ std::string f("false");
+ if(x == f){
+ fsm->fsm_phrase_->debug(sf->p2__);
+ return;
+ }
+ CAbs_lr1_sym* sym = new Err_fsm_debug_string_not_true_or_false;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_fsm_debug_string;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rfsm_comments_phrase (){
+ -> "," Rlint Rfsm_comments Rlint Rfsm_comments_string
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_comma_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rfsm_comments (){
+ -> ||| "#fsm-comments" NS_identifier::TH_identifier
+ -> ||| |?| NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_fsm_comments_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_fsm_comments_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rfsm_comments_string (){
+ -> ||| "c-string" NS_c_string::TH_c_string {
+ op
+ Cfsm_phrase_th* fsm = (Cfsm_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->fsm_phrase_->comment(sf->p2__);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_fsm_comments_string;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+Rlint (){
+ -> ||| lint NS_lint_balls::TH_lint_balls
+ -> // force reduce and let other rules determine possible error
+}
+Rlint_epi (){
+ -> ||| lint NS_lint_balls::TH_lint_balls
+ -> // make sure thread's first set sees (
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/fsm_phrase_thsym.cpp b/web/yacco2/compiler/grammars/fsm_phrase_thsym.cpp
new file mode 100644
index 0000000000..fd997d6b44
--- /dev/null
+++ b/web/yacco2/compiler/grammars/fsm_phrase_thsym.cpp
@@ -0,0 +1,1105 @@
+/*
+ File: fsm_phrase_thsym.cpp
+ Date and Time: Fri Jan 30 18:55:12 2015
+*/
+#include "fsm_phrase_th.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_fsm_phrase_th;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_fsm_phrase_th::TH_fsm_phrase_th(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_fsm_phrase_th;
+ NS_fsm_phrase_th::Cfsm_phrase_th Cfsm_phrase_th_;// parallel-parser's parse table
+#define ssPARSE_TABLE Cfsm_phrase_th_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_fsm_phrase_th::PROC_TH_fsm_phrase_th(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_fsm_phrase_th";
+ static bool one_time(false);
+ static NS_fsm_phrase_th::Cfsm_phrase_th* NS_fsm_phrase_th_Cfsm_phrase_th_(0);// parallel-parser's fsm table
+ static Parser* NS_fsm_phrase_th_Cfsm_phrase_th_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_fsm_phrase_th_Cfsm_phrase_th_ = new NS_fsm_phrase_th::Cfsm_phrase_th();// parallel-parser's fsm table
+ NS_fsm_phrase_th_Cfsm_phrase_th_parser = new Parser(*NS_fsm_phrase_th_Cfsm_phrase_th_,Caller_pp);
+ }
+ proc_parser = NS_fsm_phrase_th_Cfsm_phrase_th_parser;
+#include "wproc_pp_core.h"
+}
+void
+Cfsm_phrase_th::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rfsm_phrase_:{
+ Rfsm_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Ropen_par_:{
+ Ropen_par* sym;
+ if(re->rule_ == 0){
+ sym = new Ropen_par(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ropen_par*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Ropen_par_:{
+ Ropen_par* sym;
+ if(re->rule_ == 0){
+ sym = new Ropen_par(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ropen_par*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rclose_par_:{
+ Rclose_par* sym;
+ if(re->rule_ == 0){
+ sym = new Rclose_par(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclose_par*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rclose_par_:{
+ Rclose_par* sym;
+ if(re->rule_ == 0){
+ sym = new Rclose_par(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclose_par*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rparameters_:{
+ Rparameters* sym;
+ if(re->rule_ == 0){
+ sym = new Rparameters(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rparameters*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 17;
+
+
+ return;}
+ case rhs1_Rfsm_id_phrase_:{
+ Rfsm_id_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_id_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_id_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ return;}
+ case rhs1_Rfsm_id_:{
+ Rfsm_id* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_id(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_id*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rfsm_id_:{
+ Rfsm_id* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_id(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_id*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rfsm_id_:{
+ Rfsm_id* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_id(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_id*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rfsm_id_name_:{
+ Rfsm_id_name* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_id_name(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_id_name*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rfsm_id_name_:{
+ Rfsm_id_name* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_id_name(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_id_name*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rfsm_id_name_:{
+ Rfsm_id_name* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_id_name(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_id_name*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rfsm_filename_phrase_:{
+ Rfsm_filename_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_filename_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_filename_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ return;}
+ case rhs2_Rfsm_filename_phrase_:{
+ Rfsm_filename_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_filename_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_filename_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rfsm_filename_:{
+ Rfsm_filename* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_filename(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_filename*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rfsm_filename_:{
+ Rfsm_filename* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_filename(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_filename*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rfsm_filename_:{
+ Rfsm_filename* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_filename(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_filename*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rfsm_filename_name_:{
+ Rfsm_filename_name* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_filename_name(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_filename_name*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rfsm_filename_name_:{
+ Rfsm_filename_name* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_filename_name(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_filename_name*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rfsm_filename_name_:{
+ Rfsm_filename_name* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_filename_name(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_filename_name*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rfsm_namespace_phrase_:{
+ Rfsm_namespace_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_namespace_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_namespace_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ return;}
+ case rhs2_Rfsm_namespace_phrase_:{
+ Rfsm_namespace_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_namespace_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_namespace_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rfsm_namespace_:{
+ Rfsm_namespace* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_namespace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_namespace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rfsm_namespace_:{
+ Rfsm_namespace* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_namespace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_namespace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rfsm_namespace_:{
+ Rfsm_namespace* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_namespace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_namespace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rfsm_namespace_name_:{
+ Rfsm_namespace_name* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_namespace_name(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_namespace_name*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rfsm_namespace_name_:{
+ Rfsm_namespace_name* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_namespace_name(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_namespace_name*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rfsm_namespace_name_:{
+ Rfsm_namespace_name* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_namespace_name(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_namespace_name*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rfsm_class_phrase_:{
+ Rfsm_class_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_class_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_class_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ return;}
+ case rhs2_Rfsm_class_phrase_:{
+ Rfsm_class_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_class_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_class_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rfsm_class_:{
+ Rfsm_class* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_class(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_class*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rfsm_class_:{
+ Rfsm_class* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_class(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_class*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rfsm_class_:{
+ Rfsm_class* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_class(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_class*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rfsm_class_name_:{
+ Rfsm_class_name* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_class_name(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_class_name*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rfsm_class_name_:{
+ Rfsm_class_name* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_class_name(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_class_name*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rfsm_version_phrase_:{
+ Rfsm_version_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_version_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_version_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ return;}
+ case rhs2_Rfsm_version_phrase_:{
+ Rfsm_version_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_version_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_version_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rfsm_version_:{
+ Rfsm_version* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_version(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_version*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rfsm_version_:{
+ Rfsm_version* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_version(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_version*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rfsm_version_:{
+ Rfsm_version* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_version(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_version*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rfsm_version_string_:{
+ Rfsm_version_string* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_version_string(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_version_string*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rfsm_version_string_:{
+ Rfsm_version_string* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_version_string(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_version_string*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rfsm_version_string_:{
+ Rfsm_version_string* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_version_string(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_version_string*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rfsm_date_phrase_:{
+ Rfsm_date_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_date_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_date_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ return;}
+ case rhs2_Rfsm_date_phrase_:{
+ Rfsm_date_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_date_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_date_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rfsm_date_:{
+ Rfsm_date* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_date(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_date*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rfsm_date_:{
+ Rfsm_date* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_date(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_date*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rfsm_date_:{
+ Rfsm_date* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_date(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_date*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rfsm_date_string_:{
+ Rfsm_date_string* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_date_string(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_date_string*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rfsm_date_string_:{
+ Rfsm_date_string* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_date_string(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_date_string*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rfsm_date_string_:{
+ Rfsm_date_string* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_date_string(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_date_string*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rfsm_debug_phrase_:{
+ Rfsm_debug_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_debug_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_debug_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ return;}
+ case rhs2_Rfsm_debug_phrase_:{
+ Rfsm_debug_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_debug_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_debug_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rfsm_debug_:{
+ Rfsm_debug* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_debug(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_debug*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rfsm_debug_:{
+ Rfsm_debug* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_debug(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_debug*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rfsm_debug_:{
+ Rfsm_debug* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_debug(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_debug*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rfsm_debug_string_:{
+ Rfsm_debug_string* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_debug_string(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_debug_string*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rfsm_debug_string_:{
+ Rfsm_debug_string* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_debug_string(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_debug_string*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rfsm_debug_string_:{
+ Rfsm_debug_string* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_debug_string(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_debug_string*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rfsm_comments_phrase_:{
+ Rfsm_comments_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_comments_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_comments_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ return;}
+ case rhs2_Rfsm_comments_phrase_:{
+ Rfsm_comments_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_comments_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_comments_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rfsm_comments_:{
+ Rfsm_comments* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_comments(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_comments*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rfsm_comments_:{
+ Rfsm_comments* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_comments(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_comments*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rfsm_comments_:{
+ Rfsm_comments* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_comments(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_comments*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rfsm_comments_string_:{
+ Rfsm_comments_string* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_comments_string(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_comments_string*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rfsm_comments_string_:{
+ Rfsm_comments_string* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_comments_string(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_comments_string*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rfsm_comments_string_:{
+ Rfsm_comments_string* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_comments_string(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_comments_string*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rlint_:{
+ Rlint* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rlint_:{
+ Rlint* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs1_Rlint_epi_:{
+ Rlint_epi* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint_epi(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint_epi*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rlint_epi_:{
+ Rlint_epi* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint_epi(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint_epi*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/fsm_phrase_thtbl.cpp b/web/yacco2/compiler/grammars/fsm_phrase_thtbl.cpp
new file mode 100644
index 0000000000..74e40a1407
--- /dev/null
+++ b/web/yacco2/compiler/grammars/fsm_phrase_thtbl.cpp
@@ -0,0 +1,2869 @@
+/*
+ File: fsm_phrase_thtbl.cpp
+ Date and Time: Fri Jan 30 18:55:12 2015
+*/
+#include "fsm_phrase_th.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_fsm_phrase_th;// grammar's ns
+// first set terminals
+// LR1_questionable_shift_operator
+// raw_open_bracket
+yacco2::UCHAR LA1_Cfsm_phrase_th[] ={
+2
+,0,1
+,6,1
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+yacco2::UCHAR LA2_Cfsm_phrase_th[] ={
+1
+,0,17
+};
+// LR1_eolr
+yacco2::UCHAR LA3_Cfsm_phrase_th[] ={
+1
+,0,4
+};
+// LR1_questionable_shift_operator
+// raw_comma
+yacco2::UCHAR LA4_Cfsm_phrase_th[] ={
+2
+,0,1
+,6,16
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+// raw_close_bracket
+yacco2::UCHAR LA5_Cfsm_phrase_th[] ={
+2
+,0,17
+,6,2
+};
+// LR1_questionable_shift_operator
+// raw_close_bracket
+yacco2::UCHAR LA6_Cfsm_phrase_th[] ={
+2
+,0,1
+,6,2
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+// raw_comma
+yacco2::UCHAR LA7_Cfsm_phrase_th[] ={
+2
+,0,17
+,6,16
+};
+// LR1_reduce_operator
+yacco2::UCHAR LA8_Cfsm_phrase_th[] ={
+1
+,0,16
+};
+extern yacco2::State S1_Cfsm_phrase_th;
+extern yacco2::State S2_Cfsm_phrase_th;
+struct S2ttd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S2ttd_Cfsm_phrase_th S2tt_Cfsm_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_lint_balls
+};
+extern yacco2::State S3_Cfsm_phrase_th;
+extern yacco2::State S4_Cfsm_phrase_th;
+extern yacco2::State S5_Cfsm_phrase_th;
+extern yacco2::State S6_Cfsm_phrase_th;
+extern yacco2::State S7_Cfsm_phrase_th;
+extern yacco2::State S8_Cfsm_phrase_th;
+extern yacco2::State S9_Cfsm_phrase_th;
+extern yacco2::State S10_Cfsm_phrase_th;
+struct S10ttd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S10ttd_Cfsm_phrase_th S10tt_Cfsm_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_lint_balls
+};
+extern yacco2::State S11_Cfsm_phrase_th;
+extern yacco2::State S12_Cfsm_phrase_th;
+extern yacco2::State S13_Cfsm_phrase_th;
+extern yacco2::State S14_Cfsm_phrase_th;
+extern yacco2::State S15_Cfsm_phrase_th;
+extern yacco2::State S16_Cfsm_phrase_th;
+extern yacco2::State S17_Cfsm_phrase_th;
+extern yacco2::State S18_Cfsm_phrase_th;
+extern yacco2::State S19_Cfsm_phrase_th;
+extern yacco2::State S20_Cfsm_phrase_th;
+extern yacco2::State S21_Cfsm_phrase_th;
+extern yacco2::State S22_Cfsm_phrase_th;
+extern yacco2::State S23_Cfsm_phrase_th;
+extern yacco2::State S24_Cfsm_phrase_th;
+extern yacco2::State S25_Cfsm_phrase_th;
+extern yacco2::State S26_Cfsm_phrase_th;
+extern yacco2::State S27_Cfsm_phrase_th;
+extern yacco2::State S28_Cfsm_phrase_th;
+extern yacco2::State S29_Cfsm_phrase_th;
+extern yacco2::State S30_Cfsm_phrase_th;
+extern yacco2::State S31_Cfsm_phrase_th;
+extern yacco2::State S32_Cfsm_phrase_th;
+extern yacco2::State S33_Cfsm_phrase_th;
+extern yacco2::State S34_Cfsm_phrase_th;
+extern yacco2::State S35_Cfsm_phrase_th;
+extern yacco2::State S36_Cfsm_phrase_th;
+struct S36ttd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S36ttd_Cfsm_phrase_th S36tt_Cfsm_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_c_string
+};
+extern yacco2::State S37_Cfsm_phrase_th;
+extern yacco2::State S38_Cfsm_phrase_th;
+extern yacco2::State S39_Cfsm_phrase_th;
+extern yacco2::State S40_Cfsm_phrase_th;
+extern yacco2::State S41_Cfsm_phrase_th;
+extern yacco2::State S42_Cfsm_phrase_th;
+extern yacco2::State S43_Cfsm_phrase_th;
+struct S43ttd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S43ttd_Cfsm_phrase_th S43tt_Cfsm_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S44_Cfsm_phrase_th;
+extern yacco2::State S45_Cfsm_phrase_th;
+extern yacco2::State S46_Cfsm_phrase_th;
+extern yacco2::State S47_Cfsm_phrase_th;
+extern yacco2::State S48_Cfsm_phrase_th;
+extern yacco2::State S49_Cfsm_phrase_th;
+struct S49ttd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S49ttd_Cfsm_phrase_th S49tt_Cfsm_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_c_string
+};
+extern yacco2::State S50_Cfsm_phrase_th;
+extern yacco2::State S51_Cfsm_phrase_th;
+extern yacco2::State S52_Cfsm_phrase_th;
+extern yacco2::State S53_Cfsm_phrase_th;
+extern yacco2::State S54_Cfsm_phrase_th;
+extern yacco2::State S55_Cfsm_phrase_th;
+extern yacco2::State S56_Cfsm_phrase_th;
+extern yacco2::State S57_Cfsm_phrase_th;
+extern yacco2::State S58_Cfsm_phrase_th;
+extern yacco2::State S59_Cfsm_phrase_th;
+struct S59ttd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S59ttd_Cfsm_phrase_th S59tt_Cfsm_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S60_Cfsm_phrase_th;
+extern yacco2::State S61_Cfsm_phrase_th;
+extern yacco2::State S62_Cfsm_phrase_th;
+extern yacco2::State S63_Cfsm_phrase_th;
+extern yacco2::State S64_Cfsm_phrase_th;
+extern yacco2::State S65_Cfsm_phrase_th;
+extern yacco2::State S66_Cfsm_phrase_th;
+extern yacco2::State S67_Cfsm_phrase_th;
+extern yacco2::State S68_Cfsm_phrase_th;
+extern yacco2::State S69_Cfsm_phrase_th;
+struct S69ttd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S69ttd_Cfsm_phrase_th S69tt_Cfsm_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S70_Cfsm_phrase_th;
+extern yacco2::State S71_Cfsm_phrase_th;
+extern yacco2::State S72_Cfsm_phrase_th;
+extern yacco2::State S73_Cfsm_phrase_th;
+extern yacco2::State S74_Cfsm_phrase_th;
+extern yacco2::State S75_Cfsm_phrase_th;
+extern yacco2::State S76_Cfsm_phrase_th;
+extern yacco2::State S77_Cfsm_phrase_th;
+extern yacco2::State S78_Cfsm_phrase_th;
+struct S78ttd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S78ttd_Cfsm_phrase_th S78tt_Cfsm_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_fsm_class_phrase_th
+};
+extern yacco2::State S79_Cfsm_phrase_th;
+extern yacco2::State S80_Cfsm_phrase_th;
+extern yacco2::State S81_Cfsm_phrase_th;
+extern yacco2::State S82_Cfsm_phrase_th;
+extern yacco2::State S83_Cfsm_phrase_th;
+extern yacco2::State S84_Cfsm_phrase_th;
+extern yacco2::State S85_Cfsm_phrase_th;
+extern yacco2::State S86_Cfsm_phrase_th;
+extern yacco2::State S87_Cfsm_phrase_th;
+extern yacco2::State S88_Cfsm_phrase_th;
+struct S88ttd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S88ttd_Cfsm_phrase_th S88tt_Cfsm_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_c_string
+};
+extern yacco2::State S89_Cfsm_phrase_th;
+extern yacco2::State S90_Cfsm_phrase_th;
+extern yacco2::State S91_Cfsm_phrase_th;
+extern yacco2::State S92_Cfsm_phrase_th;
+extern yacco2::State S93_Cfsm_phrase_th;
+extern yacco2::State S94_Cfsm_phrase_th;
+extern yacco2::State S95_Cfsm_phrase_th;
+extern yacco2::State S96_Cfsm_phrase_th;
+extern yacco2::State S97_Cfsm_phrase_th;
+extern yacco2::State S98_Cfsm_phrase_th;
+struct S98ttd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S98ttd_Cfsm_phrase_th S98tt_Cfsm_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_c_string
+};
+extern yacco2::State S99_Cfsm_phrase_th;
+extern yacco2::State S100_Cfsm_phrase_th;
+extern yacco2::State S101_Cfsm_phrase_th;
+extern yacco2::State S102_Cfsm_phrase_th;
+extern yacco2::State S103_Cfsm_phrase_th;
+extern yacco2::State S104_Cfsm_phrase_th;
+extern yacco2::State S105_Cfsm_phrase_th;
+extern yacco2::State S106_Cfsm_phrase_th;
+extern yacco2::State S107_Cfsm_phrase_th;
+extern yacco2::State S108_Cfsm_phrase_th;
+struct S108ttd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S108ttd_Cfsm_phrase_th S108tt_Cfsm_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_c_string
+};
+extern yacco2::State S109_Cfsm_phrase_th;
+extern yacco2::State S110_Cfsm_phrase_th;
+extern yacco2::State S111_Cfsm_phrase_th;
+extern yacco2::State S112_Cfsm_phrase_th;
+extern yacco2::State S113_Cfsm_phrase_th;
+struct S113ttd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S113ttd_Cfsm_phrase_th S113tt_Cfsm_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S114_Cfsm_phrase_th;
+extern yacco2::State S115_Cfsm_phrase_th;
+extern yacco2::State S116_Cfsm_phrase_th;
+extern yacco2::State S117_Cfsm_phrase_th;
+struct S117ttd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S117ttd_Cfsm_phrase_th S117tt_Cfsm_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S118_Cfsm_phrase_th;
+extern yacco2::State S119_Cfsm_phrase_th;
+extern yacco2::State S120_Cfsm_phrase_th;
+extern yacco2::State S121_Cfsm_phrase_th;
+struct S121ttd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S121ttd_Cfsm_phrase_th S121tt_Cfsm_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S122_Cfsm_phrase_th;
+extern yacco2::State S123_Cfsm_phrase_th;
+extern yacco2::State S124_Cfsm_phrase_th;
+extern yacco2::State S125_Cfsm_phrase_th;
+struct S125ttd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S125ttd_Cfsm_phrase_th S125tt_Cfsm_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S126_Cfsm_phrase_th;
+extern yacco2::State S127_Cfsm_phrase_th;
+extern yacco2::State S128_Cfsm_phrase_th;
+extern yacco2::State S129_Cfsm_phrase_th;
+struct S129ttd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S129ttd_Cfsm_phrase_th S129tt_Cfsm_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S130_Cfsm_phrase_th;
+extern yacco2::State S131_Cfsm_phrase_th;
+extern yacco2::State S132_Cfsm_phrase_th;
+extern yacco2::State S133_Cfsm_phrase_th;
+struct S133ttd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S133ttd_Cfsm_phrase_th S133tt_Cfsm_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S134_Cfsm_phrase_th;
+extern yacco2::State S135_Cfsm_phrase_th;
+extern yacco2::State S136_Cfsm_phrase_th;
+extern yacco2::State S137_Cfsm_phrase_th;
+struct S137ttd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S137ttd_Cfsm_phrase_th S137tt_Cfsm_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S138_Cfsm_phrase_th;
+extern yacco2::State S139_Cfsm_phrase_th;
+struct S1std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S1std_Cfsm_phrase_th S1st_Cfsm_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S2_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{569,(State*)&S1_Cfsm_phrase_th} // accept sym: Rfsm_phrase
+ ,{598,(State*)&S4_Cfsm_phrase_th} // shift sym: Rlint_epi
+ }// end of shift table
+};
+yacco2::Shift_entry S1pse_Cfsm_phrase_th = {3,(State*)&S2_Cfsm_phrase_th};
+struct S1rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S1rtd_Cfsm_phrase_th S1rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rlint_epi_}
+ }// end of reduce table
+};
+yacco2::State S1_Cfsm_phrase_th = //State's vectored into symbol: " No symbol"
+{1
+,(Shift_entry*)&S1pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S1st_Cfsm_phrase_th,(Reduce_tbl*)&S1rt_Cfsm_phrase_th,(State_s_thread_tbl*)&S2tt_Cfsm_phrase_th,0,0};
+struct S2std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S2std_Cfsm_phrase_th S2st_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {375,(State*)&S3_Cfsm_phrase_th} // shift sym: T_lint
+ }// end of shift table
+};
+yacco2::State S2_Cfsm_phrase_th = //State's vectored into symbol: "|||"
+{2
+,0,0,0,0,(Shift_tbl*)&S2st_Cfsm_phrase_th,0,0,0,0};
+struct S3rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Cfsm_phrase_th S3rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cfsm_phrase_th,Cfsm_phrase_th::rhs1_Rlint_epi_}
+ }// end of reduce table
+};
+yacco2::State S3_Cfsm_phrase_th = //State's vectored into symbol: "lint"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_Cfsm_phrase_th,0,0,0};
+struct S4std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S4std_Cfsm_phrase_th S4st_Cfsm_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S13_Cfsm_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{48,(State*)&S14_Cfsm_phrase_th} // shift sym: raw_open_bracket
+ ,{570,(State*)&S5_Cfsm_phrase_th} // shift sym: Ropen_par
+ }// end of shift table
+};
+yacco2::Shift_entry S4qse_Cfsm_phrase_th = {0,(State*)&S13_Cfsm_phrase_th};
+yacco2::State S4_Cfsm_phrase_th = //State's vectored into symbol: "Rlint_epi"
+{4
+,0,0,0,0,(Shift_tbl*)&S4st_Cfsm_phrase_th,0,0,0,(Shift_entry*)&S4qse_Cfsm_phrase_th
+};
+struct S5std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S5std_Cfsm_phrase_th S5st_Cfsm_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S10_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{572,(State*)&S6_Cfsm_phrase_th} // shift sym: Rparameters
+ ,{597,(State*)&S15_Cfsm_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S5pse_Cfsm_phrase_th = {3,(State*)&S10_Cfsm_phrase_th};
+struct S5rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Cfsm_phrase_th S5rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S5_Cfsm_phrase_th = //State's vectored into symbol: "Ropen_par"
+{5
+,(Shift_entry*)&S5pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S5st_Cfsm_phrase_th,(Reduce_tbl*)&S5rt_Cfsm_phrase_th,(State_s_thread_tbl*)&S10tt_Cfsm_phrase_th,0,0};
+struct S6std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S6std_Cfsm_phrase_th S6st_Cfsm_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S7_Cfsm_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{49,(State*)&S8_Cfsm_phrase_th} // shift sym: raw_close_bracket
+ ,{571,(State*)&S9_Cfsm_phrase_th} // shift sym: Rclose_par
+ }// end of shift table
+};
+yacco2::Shift_entry S6qse_Cfsm_phrase_th = {0,(State*)&S7_Cfsm_phrase_th};
+yacco2::State S6_Cfsm_phrase_th = //State's vectored into symbol: "Rparameters"
+{6
+,0,0,0,0,(Shift_tbl*)&S6st_Cfsm_phrase_th,0,0,0,(Shift_entry*)&S6qse_Cfsm_phrase_th
+};
+struct S7rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Cfsm_phrase_th S7rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cfsm_phrase_th,Cfsm_phrase_th::rhs1_Rclose_par_}
+ }// end of reduce table
+};
+yacco2::State S7_Cfsm_phrase_th = //State's vectored into symbol: "|?|"
+{7
+,0,0,0,0,0,(Reduce_tbl*)&S7rt_Cfsm_phrase_th,0,0,0};
+struct S8rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S8rtd_Cfsm_phrase_th S8rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rclose_par_}
+ }// end of reduce table
+};
+yacco2::State S8_Cfsm_phrase_th = //State's vectored into symbol: ")"
+{8
+,0,0,0,0,0,(Reduce_tbl*)&S8rt_Cfsm_phrase_th,0,0,0};
+struct S9std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S9std_Cfsm_phrase_th S9st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S10_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{597,(State*)&S12_Cfsm_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S9pse_Cfsm_phrase_th = {3,(State*)&S10_Cfsm_phrase_th};
+struct S9rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Cfsm_phrase_th S9rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S9_Cfsm_phrase_th = //State's vectored into symbol: "Rclose_par"
+{9
+,(Shift_entry*)&S9pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S9st_Cfsm_phrase_th,(Reduce_tbl*)&S9rt_Cfsm_phrase_th,(State_s_thread_tbl*)&S10tt_Cfsm_phrase_th,0,0};
+struct S10std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S10std_Cfsm_phrase_th S10st_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {375,(State*)&S11_Cfsm_phrase_th} // shift sym: T_lint
+ }// end of shift table
+};
+yacco2::State S10_Cfsm_phrase_th = //State's vectored into symbol: "|||"
+{10
+,0,0,0,0,(Shift_tbl*)&S10st_Cfsm_phrase_th,0,0,0,0};
+struct S11rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Cfsm_phrase_th S11rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cfsm_phrase_th,Cfsm_phrase_th::rhs1_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S11_Cfsm_phrase_th = //State's vectored into symbol: "lint"
+{11
+,0,0,0,0,0,(Reduce_tbl*)&S11rt_Cfsm_phrase_th,0,0,0};
+struct S12rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S12rtd_Cfsm_phrase_th S12rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cfsm_phrase_th,Cfsm_phrase_th::rhs1_Rfsm_phrase_}
+ }// end of reduce table
+};
+yacco2::State S12_Cfsm_phrase_th = //State's vectored into symbol: "Rlint"
+{12
+,0,0,0,0,0,(Reduce_tbl*)&S12rt_Cfsm_phrase_th,0,0,0};
+struct S13rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S13rtd_Cfsm_phrase_th S13rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfsm_phrase_th,Cfsm_phrase_th::rhs1_Ropen_par_}
+ }// end of reduce table
+};
+yacco2::State S13_Cfsm_phrase_th = //State's vectored into symbol: "|?|"
+{13
+,0,0,0,0,0,(Reduce_tbl*)&S13rt_Cfsm_phrase_th,0,0,0};
+struct S14rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S14rtd_Cfsm_phrase_th S14rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Ropen_par_}
+ }// end of reduce table
+};
+yacco2::State S14_Cfsm_phrase_th = //State's vectored into symbol: "("
+{14
+,0,0,0,0,0,(Reduce_tbl*)&S14rt_Cfsm_phrase_th,0,0,0};
+struct S15std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S15std_Cfsm_phrase_th S15st_Cfsm_phrase_th = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S42_Cfsm_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S43_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{573,(State*)&S16_Cfsm_phrase_th} // shift sym: Rfsm_id_phrase
+ ,{574,(State*)&S46_Cfsm_phrase_th} // shift sym: Rfsm_id
+ }// end of shift table
+};
+yacco2::Shift_entry S15pse_Cfsm_phrase_th = {3,(State*)&S43_Cfsm_phrase_th};
+yacco2::Shift_entry S15qse_Cfsm_phrase_th = {0,(State*)&S42_Cfsm_phrase_th};
+yacco2::State S15_Cfsm_phrase_th = //State's vectored into symbol: "Rlint"
+{15
+,(Shift_entry*)&S15pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S15st_Cfsm_phrase_th,0,(State_s_thread_tbl*)&S43tt_Cfsm_phrase_th,0,(Shift_entry*)&S15qse_Cfsm_phrase_th
+};
+struct S16std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S16std_Cfsm_phrase_th S16st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S10_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{597,(State*)&S17_Cfsm_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S16pse_Cfsm_phrase_th = {3,(State*)&S10_Cfsm_phrase_th};
+struct S16rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S16rtd_Cfsm_phrase_th S16rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S16_Cfsm_phrase_th = //State's vectored into symbol: "Rfsm_id_phrase"
+{16
+,(Shift_entry*)&S16pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S16st_Cfsm_phrase_th,(Reduce_tbl*)&S16rt_Cfsm_phrase_th,(State_s_thread_tbl*)&S10tt_Cfsm_phrase_th,0,0};
+struct S17std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S17std_Cfsm_phrase_th S17st_Cfsm_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S53_Cfsm_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{52,(State*)&S54_Cfsm_phrase_th} // shift sym: raw_comma
+ ,{576,(State*)&S18_Cfsm_phrase_th} // shift sym: Rfsm_filename_phrase
+ }// end of shift table
+};
+yacco2::Shift_entry S17qse_Cfsm_phrase_th = {0,(State*)&S53_Cfsm_phrase_th};
+yacco2::State S17_Cfsm_phrase_th = //State's vectored into symbol: "Rlint"
+{17
+,0,0,0,0,(Shift_tbl*)&S17st_Cfsm_phrase_th,0,0,0,(Shift_entry*)&S17qse_Cfsm_phrase_th
+};
+struct S18std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S18std_Cfsm_phrase_th S18st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S10_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{597,(State*)&S19_Cfsm_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S18pse_Cfsm_phrase_th = {3,(State*)&S10_Cfsm_phrase_th};
+struct S18rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S18rtd_Cfsm_phrase_th S18rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S18_Cfsm_phrase_th = //State's vectored into symbol: "Rfsm_filename_phrase"
+{18
+,(Shift_entry*)&S18pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S18st_Cfsm_phrase_th,(Reduce_tbl*)&S18rt_Cfsm_phrase_th,(State_s_thread_tbl*)&S10tt_Cfsm_phrase_th,0,0};
+struct S19std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S19std_Cfsm_phrase_th S19st_Cfsm_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S63_Cfsm_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{52,(State*)&S64_Cfsm_phrase_th} // shift sym: raw_comma
+ ,{579,(State*)&S20_Cfsm_phrase_th} // shift sym: Rfsm_namespace_phrase
+ }// end of shift table
+};
+yacco2::Shift_entry S19qse_Cfsm_phrase_th = {0,(State*)&S63_Cfsm_phrase_th};
+yacco2::State S19_Cfsm_phrase_th = //State's vectored into symbol: "Rlint"
+{19
+,0,0,0,0,(Shift_tbl*)&S19st_Cfsm_phrase_th,0,0,0,(Shift_entry*)&S19qse_Cfsm_phrase_th
+};
+struct S20std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S20std_Cfsm_phrase_th S20st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S10_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{597,(State*)&S21_Cfsm_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S20pse_Cfsm_phrase_th = {3,(State*)&S10_Cfsm_phrase_th};
+struct S20rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S20rtd_Cfsm_phrase_th S20rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S20_Cfsm_phrase_th = //State's vectored into symbol: "Rfsm_namespace_phrase"
+{20
+,(Shift_entry*)&S20pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S20st_Cfsm_phrase_th,(Reduce_tbl*)&S20rt_Cfsm_phrase_th,(State_s_thread_tbl*)&S10tt_Cfsm_phrase_th,0,0};
+struct S21std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S21std_Cfsm_phrase_th S21st_Cfsm_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S73_Cfsm_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{52,(State*)&S74_Cfsm_phrase_th} // shift sym: raw_comma
+ ,{582,(State*)&S22_Cfsm_phrase_th} // shift sym: Rfsm_class_phrase
+ }// end of shift table
+};
+yacco2::Shift_entry S21qse_Cfsm_phrase_th = {0,(State*)&S73_Cfsm_phrase_th};
+yacco2::State S21_Cfsm_phrase_th = //State's vectored into symbol: "Rlint"
+{21
+,0,0,0,0,(Shift_tbl*)&S21st_Cfsm_phrase_th,0,0,0,(Shift_entry*)&S21qse_Cfsm_phrase_th
+};
+struct S22std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S22std_Cfsm_phrase_th S22st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S10_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{597,(State*)&S23_Cfsm_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S22pse_Cfsm_phrase_th = {3,(State*)&S10_Cfsm_phrase_th};
+struct S22rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S22rtd_Cfsm_phrase_th S22rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S22_Cfsm_phrase_th = //State's vectored into symbol: "Rfsm_class_phrase"
+{22
+,(Shift_entry*)&S22pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S22st_Cfsm_phrase_th,(Reduce_tbl*)&S22rt_Cfsm_phrase_th,(State_s_thread_tbl*)&S10tt_Cfsm_phrase_th,0,0};
+struct S23std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S23std_Cfsm_phrase_th S23st_Cfsm_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S82_Cfsm_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{52,(State*)&S83_Cfsm_phrase_th} // shift sym: raw_comma
+ ,{585,(State*)&S24_Cfsm_phrase_th} // shift sym: Rfsm_version_phrase
+ }// end of shift table
+};
+yacco2::Shift_entry S23qse_Cfsm_phrase_th = {0,(State*)&S82_Cfsm_phrase_th};
+yacco2::State S23_Cfsm_phrase_th = //State's vectored into symbol: "Rlint"
+{23
+,0,0,0,0,(Shift_tbl*)&S23st_Cfsm_phrase_th,0,0,0,(Shift_entry*)&S23qse_Cfsm_phrase_th
+};
+struct S24std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S24std_Cfsm_phrase_th S24st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S10_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{597,(State*)&S25_Cfsm_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S24pse_Cfsm_phrase_th = {3,(State*)&S10_Cfsm_phrase_th};
+struct S24rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S24rtd_Cfsm_phrase_th S24rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S24_Cfsm_phrase_th = //State's vectored into symbol: "Rfsm_version_phrase"
+{24
+,(Shift_entry*)&S24pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S24st_Cfsm_phrase_th,(Reduce_tbl*)&S24rt_Cfsm_phrase_th,(State_s_thread_tbl*)&S10tt_Cfsm_phrase_th,0,0};
+struct S25std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S25std_Cfsm_phrase_th S25st_Cfsm_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S92_Cfsm_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{52,(State*)&S93_Cfsm_phrase_th} // shift sym: raw_comma
+ ,{588,(State*)&S26_Cfsm_phrase_th} // shift sym: Rfsm_date_phrase
+ }// end of shift table
+};
+yacco2::Shift_entry S25qse_Cfsm_phrase_th = {0,(State*)&S92_Cfsm_phrase_th};
+yacco2::State S25_Cfsm_phrase_th = //State's vectored into symbol: "Rlint"
+{25
+,0,0,0,0,(Shift_tbl*)&S25st_Cfsm_phrase_th,0,0,0,(Shift_entry*)&S25qse_Cfsm_phrase_th
+};
+struct S26std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S26std_Cfsm_phrase_th S26st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S10_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{597,(State*)&S27_Cfsm_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S26pse_Cfsm_phrase_th = {3,(State*)&S10_Cfsm_phrase_th};
+struct S26rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S26rtd_Cfsm_phrase_th S26rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S26_Cfsm_phrase_th = //State's vectored into symbol: "Rfsm_date_phrase"
+{26
+,(Shift_entry*)&S26pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S26st_Cfsm_phrase_th,(Reduce_tbl*)&S26rt_Cfsm_phrase_th,(State_s_thread_tbl*)&S10tt_Cfsm_phrase_th,0,0};
+struct S27std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S27std_Cfsm_phrase_th S27st_Cfsm_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S102_Cfsm_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{52,(State*)&S103_Cfsm_phrase_th} // shift sym: raw_comma
+ ,{591,(State*)&S28_Cfsm_phrase_th} // shift sym: Rfsm_debug_phrase
+ }// end of shift table
+};
+yacco2::Shift_entry S27qse_Cfsm_phrase_th = {0,(State*)&S102_Cfsm_phrase_th};
+yacco2::State S27_Cfsm_phrase_th = //State's vectored into symbol: "Rlint"
+{27
+,0,0,0,0,(Shift_tbl*)&S27st_Cfsm_phrase_th,0,0,0,(Shift_entry*)&S27qse_Cfsm_phrase_th
+};
+struct S28std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S28std_Cfsm_phrase_th S28st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S10_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{597,(State*)&S29_Cfsm_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S28pse_Cfsm_phrase_th = {3,(State*)&S10_Cfsm_phrase_th};
+struct S28rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S28rtd_Cfsm_phrase_th S28rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S28_Cfsm_phrase_th = //State's vectored into symbol: "Rfsm_debug_phrase"
+{28
+,(Shift_entry*)&S28pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S28st_Cfsm_phrase_th,(Reduce_tbl*)&S28rt_Cfsm_phrase_th,(State_s_thread_tbl*)&S10tt_Cfsm_phrase_th,0,0};
+struct S29std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S29std_Cfsm_phrase_th S29st_Cfsm_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S30_Cfsm_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{52,(State*)&S31_Cfsm_phrase_th} // shift sym: raw_comma
+ ,{594,(State*)&S40_Cfsm_phrase_th} // shift sym: Rfsm_comments_phrase
+ }// end of shift table
+};
+yacco2::Shift_entry S29qse_Cfsm_phrase_th = {0,(State*)&S30_Cfsm_phrase_th};
+yacco2::State S29_Cfsm_phrase_th = //State's vectored into symbol: "Rlint"
+{29
+,0,0,0,0,(Shift_tbl*)&S29st_Cfsm_phrase_th,0,0,0,(Shift_entry*)&S29qse_Cfsm_phrase_th
+};
+struct S30rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S30rtd_Cfsm_phrase_th S30rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rfsm_comments_phrase_}
+ }// end of reduce table
+};
+yacco2::State S30_Cfsm_phrase_th = //State's vectored into symbol: "|?|"
+{30
+,0,0,0,0,0,(Reduce_tbl*)&S30rt_Cfsm_phrase_th,0,0,0};
+struct S31std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S31std_Cfsm_phrase_th S31st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S10_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{597,(State*)&S32_Cfsm_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S31pse_Cfsm_phrase_th = {3,(State*)&S10_Cfsm_phrase_th};
+struct S31rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S31rtd_Cfsm_phrase_th S31rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S31_Cfsm_phrase_th = //State's vectored into symbol: ","
+{31
+,(Shift_entry*)&S31pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S31st_Cfsm_phrase_th,(Reduce_tbl*)&S31rt_Cfsm_phrase_th,(State_s_thread_tbl*)&S10tt_Cfsm_phrase_th,0,0};
+struct S32std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S32std_Cfsm_phrase_th S32st_Cfsm_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S112_Cfsm_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S113_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{595,(State*)&S33_Cfsm_phrase_th} // shift sym: Rfsm_comments
+ }// end of shift table
+};
+yacco2::Shift_entry S32pse_Cfsm_phrase_th = {3,(State*)&S113_Cfsm_phrase_th};
+yacco2::Shift_entry S32qse_Cfsm_phrase_th = {0,(State*)&S112_Cfsm_phrase_th};
+yacco2::State S32_Cfsm_phrase_th = //State's vectored into symbol: "Rlint"
+{32
+,(Shift_entry*)&S32pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S32st_Cfsm_phrase_th,0,(State_s_thread_tbl*)&S113tt_Cfsm_phrase_th,0,(Shift_entry*)&S32qse_Cfsm_phrase_th
+};
+struct S33std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S33std_Cfsm_phrase_th S33st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S10_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{597,(State*)&S34_Cfsm_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S33pse_Cfsm_phrase_th = {3,(State*)&S10_Cfsm_phrase_th};
+struct S33rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S33rtd_Cfsm_phrase_th S33rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S33_Cfsm_phrase_th = //State's vectored into symbol: "Rfsm_comments"
+{33
+,(Shift_entry*)&S33pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S33st_Cfsm_phrase_th,(Reduce_tbl*)&S33rt_Cfsm_phrase_th,(State_s_thread_tbl*)&S10tt_Cfsm_phrase_th,0,0};
+struct S34std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S34std_Cfsm_phrase_th S34st_Cfsm_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S35_Cfsm_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S36_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{596,(State*)&S39_Cfsm_phrase_th} // shift sym: Rfsm_comments_string
+ }// end of shift table
+};
+yacco2::Shift_entry S34pse_Cfsm_phrase_th = {3,(State*)&S36_Cfsm_phrase_th};
+yacco2::Shift_entry S34qse_Cfsm_phrase_th = {0,(State*)&S35_Cfsm_phrase_th};
+yacco2::State S34_Cfsm_phrase_th = //State's vectored into symbol: "Rlint"
+{34
+,(Shift_entry*)&S34pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S34st_Cfsm_phrase_th,0,(State_s_thread_tbl*)&S36tt_Cfsm_phrase_th,0,(Shift_entry*)&S34qse_Cfsm_phrase_th
+};
+struct S35rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S35rtd_Cfsm_phrase_th S35rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cfsm_phrase_th,Cfsm_phrase_th::rhs3_Rfsm_comments_string_}
+ }// end of reduce table
+};
+yacco2::State S35_Cfsm_phrase_th = //State's vectored into symbol: "|?|"
+{35
+,0,0,0,0,0,(Reduce_tbl*)&S35rt_Cfsm_phrase_th,0,0,0};
+struct S36std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S36std_Cfsm_phrase_th S36st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S37_Cfsm_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{275,(State*)&S38_Cfsm_phrase_th} // shift sym: T_c_string
+ }// end of shift table
+};
+yacco2::Shift_entry S36qse_Cfsm_phrase_th = {0,(State*)&S37_Cfsm_phrase_th};
+yacco2::State S36_Cfsm_phrase_th = //State's vectored into symbol: "|||"
+{36
+,0,0,0,0,(Shift_tbl*)&S36st_Cfsm_phrase_th,0,0,0,(Shift_entry*)&S36qse_Cfsm_phrase_th
+};
+struct S37rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S37rtd_Cfsm_phrase_th S37rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rfsm_comments_string_}
+ }// end of reduce table
+};
+yacco2::State S37_Cfsm_phrase_th = //State's vectored into symbol: "|?|"
+{37
+,0,0,0,0,0,(Reduce_tbl*)&S37rt_Cfsm_phrase_th,0,0,0};
+struct S38rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S38rtd_Cfsm_phrase_th S38rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cfsm_phrase_th,Cfsm_phrase_th::rhs1_Rfsm_comments_string_}
+ }// end of reduce table
+};
+yacco2::State S38_Cfsm_phrase_th = //State's vectored into symbol: "c-string"
+{38
+,0,0,0,0,0,(Reduce_tbl*)&S38rt_Cfsm_phrase_th,0,0,0};
+struct S39rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S39rtd_Cfsm_phrase_th S39rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cfsm_phrase_th,Cfsm_phrase_th::rhs1_Rfsm_comments_phrase_}
+ }// end of reduce table
+};
+yacco2::State S39_Cfsm_phrase_th = //State's vectored into symbol: "Rfsm_comments_string"
+{39
+,0,0,0,0,0,(Reduce_tbl*)&S39rt_Cfsm_phrase_th,0,0,0};
+struct S40std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S40std_Cfsm_phrase_th S40st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S10_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{597,(State*)&S41_Cfsm_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S40pse_Cfsm_phrase_th = {3,(State*)&S10_Cfsm_phrase_th};
+struct S40rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S40rtd_Cfsm_phrase_th S40rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S40_Cfsm_phrase_th = //State's vectored into symbol: "Rfsm_comments_phrase"
+{40
+,(Shift_entry*)&S40pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S40st_Cfsm_phrase_th,(Reduce_tbl*)&S40rt_Cfsm_phrase_th,(State_s_thread_tbl*)&S10tt_Cfsm_phrase_th,0,0};
+struct S41rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S41rtd_Cfsm_phrase_th S41rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cfsm_phrase_th,Cfsm_phrase_th::rhs1_Rparameters_}
+ }// end of reduce table
+};
+yacco2::State S41_Cfsm_phrase_th = //State's vectored into symbol: "Rlint"
+{41
+,0,0,0,0,0,(Reduce_tbl*)&S41rt_Cfsm_phrase_th,0,0,0};
+struct S42rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S42rtd_Cfsm_phrase_th S42rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfsm_phrase_th,Cfsm_phrase_th::rhs3_Rfsm_id_}
+ }// end of reduce table
+};
+yacco2::State S42_Cfsm_phrase_th = //State's vectored into symbol: "|?|"
+{42
+,0,0,0,0,0,(Reduce_tbl*)&S42rt_Cfsm_phrase_th,0,0,0};
+struct S43std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S43std_Cfsm_phrase_th S43st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S44_Cfsm_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{293,(State*)&S45_Cfsm_phrase_th} // shift sym: T_fsm_id
+ }// end of shift table
+};
+yacco2::Shift_entry S43qse_Cfsm_phrase_th = {0,(State*)&S44_Cfsm_phrase_th};
+yacco2::State S43_Cfsm_phrase_th = //State's vectored into symbol: "|||"
+{43
+,0,0,0,0,(Shift_tbl*)&S43st_Cfsm_phrase_th,0,0,0,(Shift_entry*)&S43qse_Cfsm_phrase_th
+};
+struct S44rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S44rtd_Cfsm_phrase_th S44rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rfsm_id_}
+ }// end of reduce table
+};
+yacco2::State S44_Cfsm_phrase_th = //State's vectored into symbol: "|?|"
+{44
+,0,0,0,0,0,(Reduce_tbl*)&S44rt_Cfsm_phrase_th,0,0,0};
+struct S45rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S45rtd_Cfsm_phrase_th S45rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfsm_phrase_th,Cfsm_phrase_th::rhs1_Rfsm_id_}
+ }// end of reduce table
+};
+yacco2::State S45_Cfsm_phrase_th = //State's vectored into symbol: "#fsm-id"
+{45
+,0,0,0,0,0,(Reduce_tbl*)&S45rt_Cfsm_phrase_th,0,0,0};
+struct S46std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S46std_Cfsm_phrase_th S46st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S10_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{597,(State*)&S47_Cfsm_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S46pse_Cfsm_phrase_th = {3,(State*)&S10_Cfsm_phrase_th};
+struct S46rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S46rtd_Cfsm_phrase_th S46rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S46_Cfsm_phrase_th = //State's vectored into symbol: "Rfsm_id"
+{46
+,(Shift_entry*)&S46pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S46st_Cfsm_phrase_th,(Reduce_tbl*)&S46rt_Cfsm_phrase_th,(State_s_thread_tbl*)&S10tt_Cfsm_phrase_th,0,0};
+struct S47std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S47std_Cfsm_phrase_th S47st_Cfsm_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S48_Cfsm_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S49_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{575,(State*)&S52_Cfsm_phrase_th} // shift sym: Rfsm_id_name
+ }// end of shift table
+};
+yacco2::Shift_entry S47pse_Cfsm_phrase_th = {3,(State*)&S49_Cfsm_phrase_th};
+yacco2::Shift_entry S47qse_Cfsm_phrase_th = {0,(State*)&S48_Cfsm_phrase_th};
+yacco2::State S47_Cfsm_phrase_th = //State's vectored into symbol: "Rlint"
+{47
+,(Shift_entry*)&S47pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S47st_Cfsm_phrase_th,0,(State_s_thread_tbl*)&S49tt_Cfsm_phrase_th,0,(Shift_entry*)&S47qse_Cfsm_phrase_th
+};
+struct S48rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S48rtd_Cfsm_phrase_th S48rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_phrase_th,Cfsm_phrase_th::rhs3_Rfsm_id_name_}
+ }// end of reduce table
+};
+yacco2::State S48_Cfsm_phrase_th = //State's vectored into symbol: "|?|"
+{48
+,0,0,0,0,0,(Reduce_tbl*)&S48rt_Cfsm_phrase_th,0,0,0};
+struct S49std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S49std_Cfsm_phrase_th S49st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S50_Cfsm_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{275,(State*)&S51_Cfsm_phrase_th} // shift sym: T_c_string
+ }// end of shift table
+};
+yacco2::Shift_entry S49qse_Cfsm_phrase_th = {0,(State*)&S50_Cfsm_phrase_th};
+yacco2::State S49_Cfsm_phrase_th = //State's vectored into symbol: "|||"
+{49
+,0,0,0,0,(Shift_tbl*)&S49st_Cfsm_phrase_th,0,0,0,(Shift_entry*)&S49qse_Cfsm_phrase_th
+};
+struct S50rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S50rtd_Cfsm_phrase_th S50rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rfsm_id_name_}
+ }// end of reduce table
+};
+yacco2::State S50_Cfsm_phrase_th = //State's vectored into symbol: "|?|"
+{50
+,0,0,0,0,0,(Reduce_tbl*)&S50rt_Cfsm_phrase_th,0,0,0};
+struct S51rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S51rtd_Cfsm_phrase_th S51rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_phrase_th,Cfsm_phrase_th::rhs1_Rfsm_id_name_}
+ }// end of reduce table
+};
+yacco2::State S51_Cfsm_phrase_th = //State's vectored into symbol: "c-string"
+{51
+,0,0,0,0,0,(Reduce_tbl*)&S51rt_Cfsm_phrase_th,0,0,0};
+struct S52rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S52rtd_Cfsm_phrase_th S52rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_phrase_th,Cfsm_phrase_th::rhs1_Rfsm_id_phrase_}
+ }// end of reduce table
+};
+yacco2::State S52_Cfsm_phrase_th = //State's vectored into symbol: "Rfsm_id_name"
+{52
+,0,0,0,0,0,(Reduce_tbl*)&S52rt_Cfsm_phrase_th,0,0,0};
+struct S53rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S53rtd_Cfsm_phrase_th S53rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rfsm_filename_phrase_}
+ }// end of reduce table
+};
+yacco2::State S53_Cfsm_phrase_th = //State's vectored into symbol: "|?|"
+{53
+,0,0,0,0,0,(Reduce_tbl*)&S53rt_Cfsm_phrase_th,0,0,0};
+struct S54std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S54std_Cfsm_phrase_th S54st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S10_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{597,(State*)&S55_Cfsm_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S54pse_Cfsm_phrase_th = {3,(State*)&S10_Cfsm_phrase_th};
+struct S54rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S54rtd_Cfsm_phrase_th S54rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S54_Cfsm_phrase_th = //State's vectored into symbol: ","
+{54
+,(Shift_entry*)&S54pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S54st_Cfsm_phrase_th,(Reduce_tbl*)&S54rt_Cfsm_phrase_th,(State_s_thread_tbl*)&S10tt_Cfsm_phrase_th,0,0};
+struct S55std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S55std_Cfsm_phrase_th S55st_Cfsm_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S116_Cfsm_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S117_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{577,(State*)&S56_Cfsm_phrase_th} // shift sym: Rfsm_filename
+ }// end of shift table
+};
+yacco2::Shift_entry S55pse_Cfsm_phrase_th = {3,(State*)&S117_Cfsm_phrase_th};
+yacco2::Shift_entry S55qse_Cfsm_phrase_th = {0,(State*)&S116_Cfsm_phrase_th};
+yacco2::State S55_Cfsm_phrase_th = //State's vectored into symbol: "Rlint"
+{55
+,(Shift_entry*)&S55pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S55st_Cfsm_phrase_th,0,(State_s_thread_tbl*)&S117tt_Cfsm_phrase_th,0,(Shift_entry*)&S55qse_Cfsm_phrase_th
+};
+struct S56std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S56std_Cfsm_phrase_th S56st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S10_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{597,(State*)&S57_Cfsm_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S56pse_Cfsm_phrase_th = {3,(State*)&S10_Cfsm_phrase_th};
+struct S56rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S56rtd_Cfsm_phrase_th S56rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S56_Cfsm_phrase_th = //State's vectored into symbol: "Rfsm_filename"
+{56
+,(Shift_entry*)&S56pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S56st_Cfsm_phrase_th,(Reduce_tbl*)&S56rt_Cfsm_phrase_th,(State_s_thread_tbl*)&S10tt_Cfsm_phrase_th,0,0};
+struct S57std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S57std_Cfsm_phrase_th S57st_Cfsm_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S58_Cfsm_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S59_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{578,(State*)&S62_Cfsm_phrase_th} // shift sym: Rfsm_filename_name
+ }// end of shift table
+};
+yacco2::Shift_entry S57pse_Cfsm_phrase_th = {3,(State*)&S59_Cfsm_phrase_th};
+yacco2::Shift_entry S57qse_Cfsm_phrase_th = {0,(State*)&S58_Cfsm_phrase_th};
+yacco2::State S57_Cfsm_phrase_th = //State's vectored into symbol: "Rlint"
+{57
+,(Shift_entry*)&S57pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S57st_Cfsm_phrase_th,0,(State_s_thread_tbl*)&S59tt_Cfsm_phrase_th,0,(Shift_entry*)&S57qse_Cfsm_phrase_th
+};
+struct S58rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S58rtd_Cfsm_phrase_th S58rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_phrase_th,Cfsm_phrase_th::rhs3_Rfsm_filename_name_}
+ }// end of reduce table
+};
+yacco2::State S58_Cfsm_phrase_th = //State's vectored into symbol: "|?|"
+{58
+,0,0,0,0,0,(Reduce_tbl*)&S58rt_Cfsm_phrase_th,0,0,0};
+struct S59std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S59std_Cfsm_phrase_th S59st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S60_Cfsm_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{279,(State*)&S61_Cfsm_phrase_th} // shift sym: T_identifier
+ }// end of shift table
+};
+yacco2::Shift_entry S59qse_Cfsm_phrase_th = {0,(State*)&S60_Cfsm_phrase_th};
+yacco2::State S59_Cfsm_phrase_th = //State's vectored into symbol: "|||"
+{59
+,0,0,0,0,(Shift_tbl*)&S59st_Cfsm_phrase_th,0,0,0,(Shift_entry*)&S59qse_Cfsm_phrase_th
+};
+struct S60rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S60rtd_Cfsm_phrase_th S60rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rfsm_filename_name_}
+ }// end of reduce table
+};
+yacco2::State S60_Cfsm_phrase_th = //State's vectored into symbol: "|?|"
+{60
+,0,0,0,0,0,(Reduce_tbl*)&S60rt_Cfsm_phrase_th,0,0,0};
+struct S61rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S61rtd_Cfsm_phrase_th S61rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_phrase_th,Cfsm_phrase_th::rhs1_Rfsm_filename_name_}
+ }// end of reduce table
+};
+yacco2::State S61_Cfsm_phrase_th = //State's vectored into symbol: "identifier"
+{61
+,0,0,0,0,0,(Reduce_tbl*)&S61rt_Cfsm_phrase_th,0,0,0};
+struct S62rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S62rtd_Cfsm_phrase_th S62rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_phrase_th,Cfsm_phrase_th::rhs1_Rfsm_filename_phrase_}
+ }// end of reduce table
+};
+yacco2::State S62_Cfsm_phrase_th = //State's vectored into symbol: "Rfsm_filename_name"
+{62
+,0,0,0,0,0,(Reduce_tbl*)&S62rt_Cfsm_phrase_th,0,0,0};
+struct S63rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S63rtd_Cfsm_phrase_th S63rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rfsm_namespace_phrase_}
+ }// end of reduce table
+};
+yacco2::State S63_Cfsm_phrase_th = //State's vectored into symbol: "|?|"
+{63
+,0,0,0,0,0,(Reduce_tbl*)&S63rt_Cfsm_phrase_th,0,0,0};
+struct S64std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S64std_Cfsm_phrase_th S64st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S10_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{597,(State*)&S65_Cfsm_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S64pse_Cfsm_phrase_th = {3,(State*)&S10_Cfsm_phrase_th};
+struct S64rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S64rtd_Cfsm_phrase_th S64rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S64_Cfsm_phrase_th = //State's vectored into symbol: ","
+{64
+,(Shift_entry*)&S64pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S64st_Cfsm_phrase_th,(Reduce_tbl*)&S64rt_Cfsm_phrase_th,(State_s_thread_tbl*)&S10tt_Cfsm_phrase_th,0,0};
+struct S65std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S65std_Cfsm_phrase_th S65st_Cfsm_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S120_Cfsm_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S121_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{580,(State*)&S66_Cfsm_phrase_th} // shift sym: Rfsm_namespace
+ }// end of shift table
+};
+yacco2::Shift_entry S65pse_Cfsm_phrase_th = {3,(State*)&S121_Cfsm_phrase_th};
+yacco2::Shift_entry S65qse_Cfsm_phrase_th = {0,(State*)&S120_Cfsm_phrase_th};
+yacco2::State S65_Cfsm_phrase_th = //State's vectored into symbol: "Rlint"
+{65
+,(Shift_entry*)&S65pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S65st_Cfsm_phrase_th,0,(State_s_thread_tbl*)&S121tt_Cfsm_phrase_th,0,(Shift_entry*)&S65qse_Cfsm_phrase_th
+};
+struct S66std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S66std_Cfsm_phrase_th S66st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S10_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{597,(State*)&S67_Cfsm_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S66pse_Cfsm_phrase_th = {3,(State*)&S10_Cfsm_phrase_th};
+struct S66rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S66rtd_Cfsm_phrase_th S66rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S66_Cfsm_phrase_th = //State's vectored into symbol: "Rfsm_namespace"
+{66
+,(Shift_entry*)&S66pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S66st_Cfsm_phrase_th,(Reduce_tbl*)&S66rt_Cfsm_phrase_th,(State_s_thread_tbl*)&S10tt_Cfsm_phrase_th,0,0};
+struct S67std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S67std_Cfsm_phrase_th S67st_Cfsm_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S68_Cfsm_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S69_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{581,(State*)&S72_Cfsm_phrase_th} // shift sym: Rfsm_namespace_name
+ }// end of shift table
+};
+yacco2::Shift_entry S67pse_Cfsm_phrase_th = {3,(State*)&S69_Cfsm_phrase_th};
+yacco2::Shift_entry S67qse_Cfsm_phrase_th = {0,(State*)&S68_Cfsm_phrase_th};
+yacco2::State S67_Cfsm_phrase_th = //State's vectored into symbol: "Rlint"
+{67
+,(Shift_entry*)&S67pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S67st_Cfsm_phrase_th,0,(State_s_thread_tbl*)&S69tt_Cfsm_phrase_th,0,(Shift_entry*)&S67qse_Cfsm_phrase_th
+};
+struct S68rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S68rtd_Cfsm_phrase_th S68rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_phrase_th,Cfsm_phrase_th::rhs3_Rfsm_namespace_name_}
+ }// end of reduce table
+};
+yacco2::State S68_Cfsm_phrase_th = //State's vectored into symbol: "|?|"
+{68
+,0,0,0,0,0,(Reduce_tbl*)&S68rt_Cfsm_phrase_th,0,0,0};
+struct S69std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S69std_Cfsm_phrase_th S69st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S70_Cfsm_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{279,(State*)&S71_Cfsm_phrase_th} // shift sym: T_identifier
+ }// end of shift table
+};
+yacco2::Shift_entry S69qse_Cfsm_phrase_th = {0,(State*)&S70_Cfsm_phrase_th};
+yacco2::State S69_Cfsm_phrase_th = //State's vectored into symbol: "|||"
+{69
+,0,0,0,0,(Shift_tbl*)&S69st_Cfsm_phrase_th,0,0,0,(Shift_entry*)&S69qse_Cfsm_phrase_th
+};
+struct S70rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S70rtd_Cfsm_phrase_th S70rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rfsm_namespace_name_}
+ }// end of reduce table
+};
+yacco2::State S70_Cfsm_phrase_th = //State's vectored into symbol: "|?|"
+{70
+,0,0,0,0,0,(Reduce_tbl*)&S70rt_Cfsm_phrase_th,0,0,0};
+struct S71rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S71rtd_Cfsm_phrase_th S71rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_phrase_th,Cfsm_phrase_th::rhs1_Rfsm_namespace_name_}
+ }// end of reduce table
+};
+yacco2::State S71_Cfsm_phrase_th = //State's vectored into symbol: "identifier"
+{71
+,0,0,0,0,0,(Reduce_tbl*)&S71rt_Cfsm_phrase_th,0,0,0};
+struct S72rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S72rtd_Cfsm_phrase_th S72rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_phrase_th,Cfsm_phrase_th::rhs1_Rfsm_namespace_phrase_}
+ }// end of reduce table
+};
+yacco2::State S72_Cfsm_phrase_th = //State's vectored into symbol: "Rfsm_namespace_name"
+{72
+,0,0,0,0,0,(Reduce_tbl*)&S72rt_Cfsm_phrase_th,0,0,0};
+struct S73rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S73rtd_Cfsm_phrase_th S73rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rfsm_class_phrase_}
+ }// end of reduce table
+};
+yacco2::State S73_Cfsm_phrase_th = //State's vectored into symbol: "|?|"
+{73
+,0,0,0,0,0,(Reduce_tbl*)&S73rt_Cfsm_phrase_th,0,0,0};
+struct S74std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S74std_Cfsm_phrase_th S74st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S10_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{597,(State*)&S75_Cfsm_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S74pse_Cfsm_phrase_th = {3,(State*)&S10_Cfsm_phrase_th};
+struct S74rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S74rtd_Cfsm_phrase_th S74rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S74_Cfsm_phrase_th = //State's vectored into symbol: ","
+{74
+,(Shift_entry*)&S74pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S74st_Cfsm_phrase_th,(Reduce_tbl*)&S74rt_Cfsm_phrase_th,(State_s_thread_tbl*)&S10tt_Cfsm_phrase_th,0,0};
+struct S75std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S75std_Cfsm_phrase_th S75st_Cfsm_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S124_Cfsm_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S125_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{583,(State*)&S76_Cfsm_phrase_th} // shift sym: Rfsm_class
+ }// end of shift table
+};
+yacco2::Shift_entry S75pse_Cfsm_phrase_th = {3,(State*)&S125_Cfsm_phrase_th};
+yacco2::Shift_entry S75qse_Cfsm_phrase_th = {0,(State*)&S124_Cfsm_phrase_th};
+yacco2::State S75_Cfsm_phrase_th = //State's vectored into symbol: "Rlint"
+{75
+,(Shift_entry*)&S75pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S75st_Cfsm_phrase_th,0,(State_s_thread_tbl*)&S125tt_Cfsm_phrase_th,0,(Shift_entry*)&S75qse_Cfsm_phrase_th
+};
+struct S76std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S76std_Cfsm_phrase_th S76st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S10_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{597,(State*)&S77_Cfsm_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S76pse_Cfsm_phrase_th = {3,(State*)&S10_Cfsm_phrase_th};
+struct S76rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S76rtd_Cfsm_phrase_th S76rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA8_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S76_Cfsm_phrase_th = //State's vectored into symbol: "Rfsm_class"
+{76
+,(Shift_entry*)&S76pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S76st_Cfsm_phrase_th,(Reduce_tbl*)&S76rt_Cfsm_phrase_th,(State_s_thread_tbl*)&S10tt_Cfsm_phrase_th,0,0};
+struct S77std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S77std_Cfsm_phrase_th S77st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S78_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{584,(State*)&S81_Cfsm_phrase_th} // shift sym: Rfsm_class_name
+ }// end of shift table
+};
+yacco2::Shift_entry S77pse_Cfsm_phrase_th = {3,(State*)&S78_Cfsm_phrase_th};
+yacco2::State S77_Cfsm_phrase_th = //State's vectored into symbol: "Rlint"
+{77
+,(Shift_entry*)&S77pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S77st_Cfsm_phrase_th,0,(State_s_thread_tbl*)&S78tt_Cfsm_phrase_th,0,0};
+struct S78std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S78std_Cfsm_phrase_th S78st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S79_Cfsm_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{327,(State*)&S80_Cfsm_phrase_th} // shift sym: T_fsm_class_phrase
+ }// end of shift table
+};
+yacco2::Shift_entry S78qse_Cfsm_phrase_th = {0,(State*)&S79_Cfsm_phrase_th};
+yacco2::State S78_Cfsm_phrase_th = //State's vectored into symbol: "|||"
+{78
+,0,0,0,0,(Shift_tbl*)&S78st_Cfsm_phrase_th,0,0,0,(Shift_entry*)&S78qse_Cfsm_phrase_th
+};
+struct S79rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S79rtd_Cfsm_phrase_th S79rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rfsm_class_name_}
+ }// end of reduce table
+};
+yacco2::State S79_Cfsm_phrase_th = //State's vectored into symbol: "|?|"
+{79
+,0,0,0,0,0,(Reduce_tbl*)&S79rt_Cfsm_phrase_th,0,0,0};
+struct S80rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S80rtd_Cfsm_phrase_th S80rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_phrase_th,Cfsm_phrase_th::rhs1_Rfsm_class_name_}
+ }// end of reduce table
+};
+yacco2::State S80_Cfsm_phrase_th = //State's vectored into symbol: "fsm-class-phrase"
+{80
+,0,0,0,0,0,(Reduce_tbl*)&S80rt_Cfsm_phrase_th,0,0,0};
+struct S81rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S81rtd_Cfsm_phrase_th S81rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_phrase_th,Cfsm_phrase_th::rhs1_Rfsm_class_phrase_}
+ }// end of reduce table
+};
+yacco2::State S81_Cfsm_phrase_th = //State's vectored into symbol: "Rfsm_class_name"
+{81
+,0,0,0,0,0,(Reduce_tbl*)&S81rt_Cfsm_phrase_th,0,0,0};
+struct S82rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S82rtd_Cfsm_phrase_th S82rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rfsm_version_phrase_}
+ }// end of reduce table
+};
+yacco2::State S82_Cfsm_phrase_th = //State's vectored into symbol: "|?|"
+{82
+,0,0,0,0,0,(Reduce_tbl*)&S82rt_Cfsm_phrase_th,0,0,0};
+struct S83std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S83std_Cfsm_phrase_th S83st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S10_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{597,(State*)&S84_Cfsm_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S83pse_Cfsm_phrase_th = {3,(State*)&S10_Cfsm_phrase_th};
+struct S83rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S83rtd_Cfsm_phrase_th S83rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S83_Cfsm_phrase_th = //State's vectored into symbol: ","
+{83
+,(Shift_entry*)&S83pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S83st_Cfsm_phrase_th,(Reduce_tbl*)&S83rt_Cfsm_phrase_th,(State_s_thread_tbl*)&S10tt_Cfsm_phrase_th,0,0};
+struct S84std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S84std_Cfsm_phrase_th S84st_Cfsm_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S128_Cfsm_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S129_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{586,(State*)&S85_Cfsm_phrase_th} // shift sym: Rfsm_version
+ }// end of shift table
+};
+yacco2::Shift_entry S84pse_Cfsm_phrase_th = {3,(State*)&S129_Cfsm_phrase_th};
+yacco2::Shift_entry S84qse_Cfsm_phrase_th = {0,(State*)&S128_Cfsm_phrase_th};
+yacco2::State S84_Cfsm_phrase_th = //State's vectored into symbol: "Rlint"
+{84
+,(Shift_entry*)&S84pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S84st_Cfsm_phrase_th,0,(State_s_thread_tbl*)&S129tt_Cfsm_phrase_th,0,(Shift_entry*)&S84qse_Cfsm_phrase_th
+};
+struct S85std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S85std_Cfsm_phrase_th S85st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S10_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{597,(State*)&S86_Cfsm_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S85pse_Cfsm_phrase_th = {3,(State*)&S10_Cfsm_phrase_th};
+struct S85rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S85rtd_Cfsm_phrase_th S85rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S85_Cfsm_phrase_th = //State's vectored into symbol: "Rfsm_version"
+{85
+,(Shift_entry*)&S85pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S85st_Cfsm_phrase_th,(Reduce_tbl*)&S85rt_Cfsm_phrase_th,(State_s_thread_tbl*)&S10tt_Cfsm_phrase_th,0,0};
+struct S86std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S86std_Cfsm_phrase_th S86st_Cfsm_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S87_Cfsm_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S88_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{587,(State*)&S91_Cfsm_phrase_th} // shift sym: Rfsm_version_string
+ }// end of shift table
+};
+yacco2::Shift_entry S86pse_Cfsm_phrase_th = {3,(State*)&S88_Cfsm_phrase_th};
+yacco2::Shift_entry S86qse_Cfsm_phrase_th = {0,(State*)&S87_Cfsm_phrase_th};
+yacco2::State S86_Cfsm_phrase_th = //State's vectored into symbol: "Rlint"
+{86
+,(Shift_entry*)&S86pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S86st_Cfsm_phrase_th,0,(State_s_thread_tbl*)&S88tt_Cfsm_phrase_th,0,(Shift_entry*)&S86qse_Cfsm_phrase_th
+};
+struct S87rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S87rtd_Cfsm_phrase_th S87rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_phrase_th,Cfsm_phrase_th::rhs3_Rfsm_version_string_}
+ }// end of reduce table
+};
+yacco2::State S87_Cfsm_phrase_th = //State's vectored into symbol: "|?|"
+{87
+,0,0,0,0,0,(Reduce_tbl*)&S87rt_Cfsm_phrase_th,0,0,0};
+struct S88std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S88std_Cfsm_phrase_th S88st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S89_Cfsm_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{275,(State*)&S90_Cfsm_phrase_th} // shift sym: T_c_string
+ }// end of shift table
+};
+yacco2::Shift_entry S88qse_Cfsm_phrase_th = {0,(State*)&S89_Cfsm_phrase_th};
+yacco2::State S88_Cfsm_phrase_th = //State's vectored into symbol: "|||"
+{88
+,0,0,0,0,(Shift_tbl*)&S88st_Cfsm_phrase_th,0,0,0,(Shift_entry*)&S88qse_Cfsm_phrase_th
+};
+struct S89rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S89rtd_Cfsm_phrase_th S89rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rfsm_version_string_}
+ }// end of reduce table
+};
+yacco2::State S89_Cfsm_phrase_th = //State's vectored into symbol: "|?|"
+{89
+,0,0,0,0,0,(Reduce_tbl*)&S89rt_Cfsm_phrase_th,0,0,0};
+struct S90rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S90rtd_Cfsm_phrase_th S90rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_phrase_th,Cfsm_phrase_th::rhs1_Rfsm_version_string_}
+ }// end of reduce table
+};
+yacco2::State S90_Cfsm_phrase_th = //State's vectored into symbol: "c-string"
+{90
+,0,0,0,0,0,(Reduce_tbl*)&S90rt_Cfsm_phrase_th,0,0,0};
+struct S91rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S91rtd_Cfsm_phrase_th S91rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_phrase_th,Cfsm_phrase_th::rhs1_Rfsm_version_phrase_}
+ }// end of reduce table
+};
+yacco2::State S91_Cfsm_phrase_th = //State's vectored into symbol: "Rfsm_version_string"
+{91
+,0,0,0,0,0,(Reduce_tbl*)&S91rt_Cfsm_phrase_th,0,0,0};
+struct S92rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S92rtd_Cfsm_phrase_th S92rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rfsm_date_phrase_}
+ }// end of reduce table
+};
+yacco2::State S92_Cfsm_phrase_th = //State's vectored into symbol: "|?|"
+{92
+,0,0,0,0,0,(Reduce_tbl*)&S92rt_Cfsm_phrase_th,0,0,0};
+struct S93std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S93std_Cfsm_phrase_th S93st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S10_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{597,(State*)&S94_Cfsm_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S93pse_Cfsm_phrase_th = {3,(State*)&S10_Cfsm_phrase_th};
+struct S93rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S93rtd_Cfsm_phrase_th S93rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S93_Cfsm_phrase_th = //State's vectored into symbol: ","
+{93
+,(Shift_entry*)&S93pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S93st_Cfsm_phrase_th,(Reduce_tbl*)&S93rt_Cfsm_phrase_th,(State_s_thread_tbl*)&S10tt_Cfsm_phrase_th,0,0};
+struct S94std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S94std_Cfsm_phrase_th S94st_Cfsm_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S132_Cfsm_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S133_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{589,(State*)&S95_Cfsm_phrase_th} // shift sym: Rfsm_date
+ }// end of shift table
+};
+yacco2::Shift_entry S94pse_Cfsm_phrase_th = {3,(State*)&S133_Cfsm_phrase_th};
+yacco2::Shift_entry S94qse_Cfsm_phrase_th = {0,(State*)&S132_Cfsm_phrase_th};
+yacco2::State S94_Cfsm_phrase_th = //State's vectored into symbol: "Rlint"
+{94
+,(Shift_entry*)&S94pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S94st_Cfsm_phrase_th,0,(State_s_thread_tbl*)&S133tt_Cfsm_phrase_th,0,(Shift_entry*)&S94qse_Cfsm_phrase_th
+};
+struct S95std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S95std_Cfsm_phrase_th S95st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S10_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{597,(State*)&S96_Cfsm_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S95pse_Cfsm_phrase_th = {3,(State*)&S10_Cfsm_phrase_th};
+struct S95rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S95rtd_Cfsm_phrase_th S95rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S95_Cfsm_phrase_th = //State's vectored into symbol: "Rfsm_date"
+{95
+,(Shift_entry*)&S95pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S95st_Cfsm_phrase_th,(Reduce_tbl*)&S95rt_Cfsm_phrase_th,(State_s_thread_tbl*)&S10tt_Cfsm_phrase_th,0,0};
+struct S96std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S96std_Cfsm_phrase_th S96st_Cfsm_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S97_Cfsm_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S98_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{590,(State*)&S101_Cfsm_phrase_th} // shift sym: Rfsm_date_string
+ }// end of shift table
+};
+yacco2::Shift_entry S96pse_Cfsm_phrase_th = {3,(State*)&S98_Cfsm_phrase_th};
+yacco2::Shift_entry S96qse_Cfsm_phrase_th = {0,(State*)&S97_Cfsm_phrase_th};
+yacco2::State S96_Cfsm_phrase_th = //State's vectored into symbol: "Rlint"
+{96
+,(Shift_entry*)&S96pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S96st_Cfsm_phrase_th,0,(State_s_thread_tbl*)&S98tt_Cfsm_phrase_th,0,(Shift_entry*)&S96qse_Cfsm_phrase_th
+};
+struct S97rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S97rtd_Cfsm_phrase_th S97rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_phrase_th,Cfsm_phrase_th::rhs3_Rfsm_date_string_}
+ }// end of reduce table
+};
+yacco2::State S97_Cfsm_phrase_th = //State's vectored into symbol: "|?|"
+{97
+,0,0,0,0,0,(Reduce_tbl*)&S97rt_Cfsm_phrase_th,0,0,0};
+struct S98std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S98std_Cfsm_phrase_th S98st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S99_Cfsm_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{275,(State*)&S100_Cfsm_phrase_th} // shift sym: T_c_string
+ }// end of shift table
+};
+yacco2::Shift_entry S98qse_Cfsm_phrase_th = {0,(State*)&S99_Cfsm_phrase_th};
+yacco2::State S98_Cfsm_phrase_th = //State's vectored into symbol: "|||"
+{98
+,0,0,0,0,(Shift_tbl*)&S98st_Cfsm_phrase_th,0,0,0,(Shift_entry*)&S98qse_Cfsm_phrase_th
+};
+struct S99rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S99rtd_Cfsm_phrase_th S99rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rfsm_date_string_}
+ }// end of reduce table
+};
+yacco2::State S99_Cfsm_phrase_th = //State's vectored into symbol: "|?|"
+{99
+,0,0,0,0,0,(Reduce_tbl*)&S99rt_Cfsm_phrase_th,0,0,0};
+struct S100rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S100rtd_Cfsm_phrase_th S100rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_phrase_th,Cfsm_phrase_th::rhs1_Rfsm_date_string_}
+ }// end of reduce table
+};
+yacco2::State S100_Cfsm_phrase_th = //State's vectored into symbol: "c-string"
+{100
+,0,0,0,0,0,(Reduce_tbl*)&S100rt_Cfsm_phrase_th,0,0,0};
+struct S101rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S101rtd_Cfsm_phrase_th S101rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_phrase_th,Cfsm_phrase_th::rhs1_Rfsm_date_phrase_}
+ }// end of reduce table
+};
+yacco2::State S101_Cfsm_phrase_th = //State's vectored into symbol: "Rfsm_date_string"
+{101
+,0,0,0,0,0,(Reduce_tbl*)&S101rt_Cfsm_phrase_th,0,0,0};
+struct S102rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S102rtd_Cfsm_phrase_th S102rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rfsm_debug_phrase_}
+ }// end of reduce table
+};
+yacco2::State S102_Cfsm_phrase_th = //State's vectored into symbol: "|?|"
+{102
+,0,0,0,0,0,(Reduce_tbl*)&S102rt_Cfsm_phrase_th,0,0,0};
+struct S103std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S103std_Cfsm_phrase_th S103st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S10_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{597,(State*)&S104_Cfsm_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S103pse_Cfsm_phrase_th = {3,(State*)&S10_Cfsm_phrase_th};
+struct S103rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S103rtd_Cfsm_phrase_th S103rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S103_Cfsm_phrase_th = //State's vectored into symbol: ","
+{103
+,(Shift_entry*)&S103pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S103st_Cfsm_phrase_th,(Reduce_tbl*)&S103rt_Cfsm_phrase_th,(State_s_thread_tbl*)&S10tt_Cfsm_phrase_th,0,0};
+struct S104std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S104std_Cfsm_phrase_th S104st_Cfsm_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S136_Cfsm_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S137_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{592,(State*)&S105_Cfsm_phrase_th} // shift sym: Rfsm_debug
+ }// end of shift table
+};
+yacco2::Shift_entry S104pse_Cfsm_phrase_th = {3,(State*)&S137_Cfsm_phrase_th};
+yacco2::Shift_entry S104qse_Cfsm_phrase_th = {0,(State*)&S136_Cfsm_phrase_th};
+yacco2::State S104_Cfsm_phrase_th = //State's vectored into symbol: "Rlint"
+{104
+,(Shift_entry*)&S104pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S104st_Cfsm_phrase_th,0,(State_s_thread_tbl*)&S137tt_Cfsm_phrase_th,0,(Shift_entry*)&S104qse_Cfsm_phrase_th
+};
+struct S105std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S105std_Cfsm_phrase_th S105st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S10_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{597,(State*)&S106_Cfsm_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S105pse_Cfsm_phrase_th = {3,(State*)&S10_Cfsm_phrase_th};
+struct S105rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S105rtd_Cfsm_phrase_th S105rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S105_Cfsm_phrase_th = //State's vectored into symbol: "Rfsm_debug"
+{105
+,(Shift_entry*)&S105pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S105st_Cfsm_phrase_th,(Reduce_tbl*)&S105rt_Cfsm_phrase_th,(State_s_thread_tbl*)&S10tt_Cfsm_phrase_th,0,0};
+struct S106std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S106std_Cfsm_phrase_th S106st_Cfsm_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S107_Cfsm_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S108_Cfsm_phrase_th} // shift sym: LR1_parallel_operator
+ ,{593,(State*)&S111_Cfsm_phrase_th} // shift sym: Rfsm_debug_string
+ }// end of shift table
+};
+yacco2::Shift_entry S106pse_Cfsm_phrase_th = {3,(State*)&S108_Cfsm_phrase_th};
+yacco2::Shift_entry S106qse_Cfsm_phrase_th = {0,(State*)&S107_Cfsm_phrase_th};
+yacco2::State S106_Cfsm_phrase_th = //State's vectored into symbol: "Rlint"
+{106
+,(Shift_entry*)&S106pse_Cfsm_phrase_th,0,0,0,(Shift_tbl*)&S106st_Cfsm_phrase_th,0,(State_s_thread_tbl*)&S108tt_Cfsm_phrase_th,0,(Shift_entry*)&S106qse_Cfsm_phrase_th
+};
+struct S107rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S107rtd_Cfsm_phrase_th S107rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_phrase_th,Cfsm_phrase_th::rhs3_Rfsm_debug_string_}
+ }// end of reduce table
+};
+yacco2::State S107_Cfsm_phrase_th = //State's vectored into symbol: "|?|"
+{107
+,0,0,0,0,0,(Reduce_tbl*)&S107rt_Cfsm_phrase_th,0,0,0};
+struct S108std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S108std_Cfsm_phrase_th S108st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S109_Cfsm_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{275,(State*)&S110_Cfsm_phrase_th} // shift sym: T_c_string
+ }// end of shift table
+};
+yacco2::Shift_entry S108qse_Cfsm_phrase_th = {0,(State*)&S109_Cfsm_phrase_th};
+yacco2::State S108_Cfsm_phrase_th = //State's vectored into symbol: "|||"
+{108
+,0,0,0,0,(Shift_tbl*)&S108st_Cfsm_phrase_th,0,0,0,(Shift_entry*)&S108qse_Cfsm_phrase_th
+};
+struct S109rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S109rtd_Cfsm_phrase_th S109rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rfsm_debug_string_}
+ }// end of reduce table
+};
+yacco2::State S109_Cfsm_phrase_th = //State's vectored into symbol: "|?|"
+{109
+,0,0,0,0,0,(Reduce_tbl*)&S109rt_Cfsm_phrase_th,0,0,0};
+struct S110rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S110rtd_Cfsm_phrase_th S110rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_phrase_th,Cfsm_phrase_th::rhs1_Rfsm_debug_string_}
+ }// end of reduce table
+};
+yacco2::State S110_Cfsm_phrase_th = //State's vectored into symbol: "c-string"
+{110
+,0,0,0,0,0,(Reduce_tbl*)&S110rt_Cfsm_phrase_th,0,0,0};
+struct S111rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S111rtd_Cfsm_phrase_th S111rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cfsm_phrase_th,Cfsm_phrase_th::rhs1_Rfsm_debug_phrase_}
+ }// end of reduce table
+};
+yacco2::State S111_Cfsm_phrase_th = //State's vectored into symbol: "Rfsm_debug_string"
+{111
+,0,0,0,0,0,(Reduce_tbl*)&S111rt_Cfsm_phrase_th,0,0,0};
+struct S112rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S112rtd_Cfsm_phrase_th S112rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfsm_phrase_th,Cfsm_phrase_th::rhs3_Rfsm_comments_}
+ }// end of reduce table
+};
+yacco2::State S112_Cfsm_phrase_th = //State's vectored into symbol: "|?|"
+{112
+,0,0,0,0,0,(Reduce_tbl*)&S112rt_Cfsm_phrase_th,0,0,0};
+struct S113std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S113std_Cfsm_phrase_th S113st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S114_Cfsm_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{300,(State*)&S115_Cfsm_phrase_th} // shift sym: T_fsm_comments
+ }// end of shift table
+};
+yacco2::Shift_entry S113qse_Cfsm_phrase_th = {0,(State*)&S114_Cfsm_phrase_th};
+yacco2::State S113_Cfsm_phrase_th = //State's vectored into symbol: "|||"
+{113
+,0,0,0,0,(Shift_tbl*)&S113st_Cfsm_phrase_th,0,0,0,(Shift_entry*)&S113qse_Cfsm_phrase_th
+};
+struct S114rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S114rtd_Cfsm_phrase_th S114rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rfsm_comments_}
+ }// end of reduce table
+};
+yacco2::State S114_Cfsm_phrase_th = //State's vectored into symbol: "|?|"
+{114
+,0,0,0,0,0,(Reduce_tbl*)&S114rt_Cfsm_phrase_th,0,0,0};
+struct S115rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S115rtd_Cfsm_phrase_th S115rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfsm_phrase_th,Cfsm_phrase_th::rhs1_Rfsm_comments_}
+ }// end of reduce table
+};
+yacco2::State S115_Cfsm_phrase_th = //State's vectored into symbol: "#fsm-comments"
+{115
+,0,0,0,0,0,(Reduce_tbl*)&S115rt_Cfsm_phrase_th,0,0,0};
+struct S116rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S116rtd_Cfsm_phrase_th S116rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfsm_phrase_th,Cfsm_phrase_th::rhs3_Rfsm_filename_}
+ }// end of reduce table
+};
+yacco2::State S116_Cfsm_phrase_th = //State's vectored into symbol: "|?|"
+{116
+,0,0,0,0,0,(Reduce_tbl*)&S116rt_Cfsm_phrase_th,0,0,0};
+struct S117std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S117std_Cfsm_phrase_th S117st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S118_Cfsm_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{294,(State*)&S119_Cfsm_phrase_th} // shift sym: T_fsm_filename
+ }// end of shift table
+};
+yacco2::Shift_entry S117qse_Cfsm_phrase_th = {0,(State*)&S118_Cfsm_phrase_th};
+yacco2::State S117_Cfsm_phrase_th = //State's vectored into symbol: "|||"
+{117
+,0,0,0,0,(Shift_tbl*)&S117st_Cfsm_phrase_th,0,0,0,(Shift_entry*)&S117qse_Cfsm_phrase_th
+};
+struct S118rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S118rtd_Cfsm_phrase_th S118rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rfsm_filename_}
+ }// end of reduce table
+};
+yacco2::State S118_Cfsm_phrase_th = //State's vectored into symbol: "|?|"
+{118
+,0,0,0,0,0,(Reduce_tbl*)&S118rt_Cfsm_phrase_th,0,0,0};
+struct S119rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S119rtd_Cfsm_phrase_th S119rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfsm_phrase_th,Cfsm_phrase_th::rhs1_Rfsm_filename_}
+ }// end of reduce table
+};
+yacco2::State S119_Cfsm_phrase_th = //State's vectored into symbol: "#fsm-filename"
+{119
+,0,0,0,0,0,(Reduce_tbl*)&S119rt_Cfsm_phrase_th,0,0,0};
+struct S120rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S120rtd_Cfsm_phrase_th S120rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfsm_phrase_th,Cfsm_phrase_th::rhs3_Rfsm_namespace_}
+ }// end of reduce table
+};
+yacco2::State S120_Cfsm_phrase_th = //State's vectored into symbol: "|?|"
+{120
+,0,0,0,0,0,(Reduce_tbl*)&S120rt_Cfsm_phrase_th,0,0,0};
+struct S121std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S121std_Cfsm_phrase_th S121st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S122_Cfsm_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{295,(State*)&S123_Cfsm_phrase_th} // shift sym: T_fsm_namespace
+ }// end of shift table
+};
+yacco2::Shift_entry S121qse_Cfsm_phrase_th = {0,(State*)&S122_Cfsm_phrase_th};
+yacco2::State S121_Cfsm_phrase_th = //State's vectored into symbol: "|||"
+{121
+,0,0,0,0,(Shift_tbl*)&S121st_Cfsm_phrase_th,0,0,0,(Shift_entry*)&S121qse_Cfsm_phrase_th
+};
+struct S122rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S122rtd_Cfsm_phrase_th S122rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rfsm_namespace_}
+ }// end of reduce table
+};
+yacco2::State S122_Cfsm_phrase_th = //State's vectored into symbol: "|?|"
+{122
+,0,0,0,0,0,(Reduce_tbl*)&S122rt_Cfsm_phrase_th,0,0,0};
+struct S123rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S123rtd_Cfsm_phrase_th S123rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfsm_phrase_th,Cfsm_phrase_th::rhs1_Rfsm_namespace_}
+ }// end of reduce table
+};
+yacco2::State S123_Cfsm_phrase_th = //State's vectored into symbol: "#fsm-namespace"
+{123
+,0,0,0,0,0,(Reduce_tbl*)&S123rt_Cfsm_phrase_th,0,0,0};
+struct S124rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S124rtd_Cfsm_phrase_th S124rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA8_Cfsm_phrase_th,Cfsm_phrase_th::rhs3_Rfsm_class_}
+ }// end of reduce table
+};
+yacco2::State S124_Cfsm_phrase_th = //State's vectored into symbol: "|?|"
+{124
+,0,0,0,0,0,(Reduce_tbl*)&S124rt_Cfsm_phrase_th,0,0,0};
+struct S125std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S125std_Cfsm_phrase_th S125st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S126_Cfsm_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{296,(State*)&S127_Cfsm_phrase_th} // shift sym: T_fsm_class
+ }// end of shift table
+};
+yacco2::Shift_entry S125qse_Cfsm_phrase_th = {0,(State*)&S126_Cfsm_phrase_th};
+yacco2::State S125_Cfsm_phrase_th = //State's vectored into symbol: "|||"
+{125
+,0,0,0,0,(Shift_tbl*)&S125st_Cfsm_phrase_th,0,0,0,(Shift_entry*)&S125qse_Cfsm_phrase_th
+};
+struct S126rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S126rtd_Cfsm_phrase_th S126rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA8_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rfsm_class_}
+ }// end of reduce table
+};
+yacco2::State S126_Cfsm_phrase_th = //State's vectored into symbol: "|?|"
+{126
+,0,0,0,0,0,(Reduce_tbl*)&S126rt_Cfsm_phrase_th,0,0,0};
+struct S127rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S127rtd_Cfsm_phrase_th S127rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA8_Cfsm_phrase_th,Cfsm_phrase_th::rhs1_Rfsm_class_}
+ }// end of reduce table
+};
+yacco2::State S127_Cfsm_phrase_th = //State's vectored into symbol: "#fsm-class"
+{127
+,0,0,0,0,0,(Reduce_tbl*)&S127rt_Cfsm_phrase_th,0,0,0};
+struct S128rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S128rtd_Cfsm_phrase_th S128rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfsm_phrase_th,Cfsm_phrase_th::rhs3_Rfsm_version_}
+ }// end of reduce table
+};
+yacco2::State S128_Cfsm_phrase_th = //State's vectored into symbol: "|?|"
+{128
+,0,0,0,0,0,(Reduce_tbl*)&S128rt_Cfsm_phrase_th,0,0,0};
+struct S129std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S129std_Cfsm_phrase_th S129st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S130_Cfsm_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{297,(State*)&S131_Cfsm_phrase_th} // shift sym: T_fsm_version
+ }// end of shift table
+};
+yacco2::Shift_entry S129qse_Cfsm_phrase_th = {0,(State*)&S130_Cfsm_phrase_th};
+yacco2::State S129_Cfsm_phrase_th = //State's vectored into symbol: "|||"
+{129
+,0,0,0,0,(Shift_tbl*)&S129st_Cfsm_phrase_th,0,0,0,(Shift_entry*)&S129qse_Cfsm_phrase_th
+};
+struct S130rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S130rtd_Cfsm_phrase_th S130rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rfsm_version_}
+ }// end of reduce table
+};
+yacco2::State S130_Cfsm_phrase_th = //State's vectored into symbol: "|?|"
+{130
+,0,0,0,0,0,(Reduce_tbl*)&S130rt_Cfsm_phrase_th,0,0,0};
+struct S131rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S131rtd_Cfsm_phrase_th S131rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfsm_phrase_th,Cfsm_phrase_th::rhs1_Rfsm_version_}
+ }// end of reduce table
+};
+yacco2::State S131_Cfsm_phrase_th = //State's vectored into symbol: "#fsm-version"
+{131
+,0,0,0,0,0,(Reduce_tbl*)&S131rt_Cfsm_phrase_th,0,0,0};
+struct S132rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S132rtd_Cfsm_phrase_th S132rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfsm_phrase_th,Cfsm_phrase_th::rhs3_Rfsm_date_}
+ }// end of reduce table
+};
+yacco2::State S132_Cfsm_phrase_th = //State's vectored into symbol: "|?|"
+{132
+,0,0,0,0,0,(Reduce_tbl*)&S132rt_Cfsm_phrase_th,0,0,0};
+struct S133std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S133std_Cfsm_phrase_th S133st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S134_Cfsm_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{298,(State*)&S135_Cfsm_phrase_th} // shift sym: T_fsm_date
+ }// end of shift table
+};
+yacco2::Shift_entry S133qse_Cfsm_phrase_th = {0,(State*)&S134_Cfsm_phrase_th};
+yacco2::State S133_Cfsm_phrase_th = //State's vectored into symbol: "|||"
+{133
+,0,0,0,0,(Shift_tbl*)&S133st_Cfsm_phrase_th,0,0,0,(Shift_entry*)&S133qse_Cfsm_phrase_th
+};
+struct S134rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S134rtd_Cfsm_phrase_th S134rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rfsm_date_}
+ }// end of reduce table
+};
+yacco2::State S134_Cfsm_phrase_th = //State's vectored into symbol: "|?|"
+{134
+,0,0,0,0,0,(Reduce_tbl*)&S134rt_Cfsm_phrase_th,0,0,0};
+struct S135rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S135rtd_Cfsm_phrase_th S135rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfsm_phrase_th,Cfsm_phrase_th::rhs1_Rfsm_date_}
+ }// end of reduce table
+};
+yacco2::State S135_Cfsm_phrase_th = //State's vectored into symbol: "#fsm-date"
+{135
+,0,0,0,0,0,(Reduce_tbl*)&S135rt_Cfsm_phrase_th,0,0,0};
+struct S136rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S136rtd_Cfsm_phrase_th S136rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfsm_phrase_th,Cfsm_phrase_th::rhs3_Rfsm_debug_}
+ }// end of reduce table
+};
+yacco2::State S136_Cfsm_phrase_th = //State's vectored into symbol: "|?|"
+{136
+,0,0,0,0,0,(Reduce_tbl*)&S136rt_Cfsm_phrase_th,0,0,0};
+struct S137std_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S137std_Cfsm_phrase_th S137st_Cfsm_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S138_Cfsm_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{299,(State*)&S139_Cfsm_phrase_th} // shift sym: T_fsm_debug
+ }// end of shift table
+};
+yacco2::Shift_entry S137qse_Cfsm_phrase_th = {0,(State*)&S138_Cfsm_phrase_th};
+yacco2::State S137_Cfsm_phrase_th = //State's vectored into symbol: "|||"
+{137
+,0,0,0,0,(Shift_tbl*)&S137st_Cfsm_phrase_th,0,0,0,(Shift_entry*)&S137qse_Cfsm_phrase_th
+};
+struct S138rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S138rtd_Cfsm_phrase_th S138rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfsm_phrase_th,Cfsm_phrase_th::rhs2_Rfsm_debug_}
+ }// end of reduce table
+};
+yacco2::State S138_Cfsm_phrase_th = //State's vectored into symbol: "|?|"
+{138
+,0,0,0,0,0,(Reduce_tbl*)&S138rt_Cfsm_phrase_th,0,0,0};
+struct S139rtd_Cfsm_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S139rtd_Cfsm_phrase_th S139rt_Cfsm_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cfsm_phrase_th,Cfsm_phrase_th::rhs1_Rfsm_debug_}
+ }// end of reduce table
+};
+yacco2::State S139_Cfsm_phrase_th = //State's vectored into symbol: "#fsm-debug"
+{139
+,0,0,0,0,0,(Reduce_tbl*)&S139rt_Cfsm_phrase_th,0,0,0};
diff --git a/web/yacco2/compiler/grammars/fsm_phrasesym.cpp b/web/yacco2/compiler/grammars/fsm_phrasesym.cpp
new file mode 100644
index 0000000000..1a5f22c1c2
--- /dev/null
+++ b/web/yacco2/compiler/grammars/fsm_phrasesym.cpp
@@ -0,0 +1,86 @@
+/*
+ File: fsm_phrasesym.cpp
+ Date and Time: Fri Jan 30 18:55:12 2015
+*/
+#include "fsm_phrase.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_fsm_phrase;// grammar's ns
+// first set terminals
+// monolithic grammar --- no thread
+void
+Cfsm_phrase::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rfsm_phrase_:{
+ Rfsm_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rphrase_:{
+ Rphrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rphrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rphrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rphrase_:{
+ Rphrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rphrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rphrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rphrase_:{
+ Rphrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rphrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rphrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/fsm_phrasetbl.cpp b/web/yacco2/compiler/grammars/fsm_phrasetbl.cpp
new file mode 100644
index 0000000000..174a0acb64
--- /dev/null
+++ b/web/yacco2/compiler/grammars/fsm_phrasetbl.cpp
@@ -0,0 +1,129 @@
+/*
+ File: fsm_phrasetbl.cpp
+ Date and Time: Fri Jan 30 18:55:12 2015
+*/
+#include "fsm_phrase.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_fsm_phrase;// grammar's ns
+// first set terminals
+// LR1_eolr
+yacco2::UCHAR LA1_Cfsm_phrase[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Cfsm_phrase;
+extern yacco2::State S2_Cfsm_phrase;
+extern yacco2::State S3_Cfsm_phrase;
+struct S3ttd_Cfsm_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S3ttd_Cfsm_phrase S3tt_Cfsm_phrase = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_fsm_phrase_th
+};
+extern yacco2::State S4_Cfsm_phrase;
+extern yacco2::State S5_Cfsm_phrase;
+extern yacco2::State S6_Cfsm_phrase;
+struct S1std_Cfsm_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S1std_Cfsm_phrase S1st_Cfsm_phrase = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S2_Cfsm_phrase} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S3_Cfsm_phrase} // shift sym: LR1_parallel_operator
+ ,{569,(State*)&S1_Cfsm_phrase} // accept sym: Rfsm_phrase
+ ,{570,(State*)&S6_Cfsm_phrase} // shift sym: Rphrase
+ }// end of shift table
+};
+yacco2::Shift_entry S1pse_Cfsm_phrase = {3,(State*)&S3_Cfsm_phrase};
+yacco2::Shift_entry S1qse_Cfsm_phrase = {0,(State*)&S2_Cfsm_phrase};
+yacco2::State S1_Cfsm_phrase = //State's vectored into symbol: " No symbol"
+{1
+,(Shift_entry*)&S1pse_Cfsm_phrase,0,0,0,(Shift_tbl*)&S1st_Cfsm_phrase,0,(State_s_thread_tbl*)&S3tt_Cfsm_phrase,0,(Shift_entry*)&S1qse_Cfsm_phrase
+};
+struct S2rtd_Cfsm_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Cfsm_phrase S2rt_Cfsm_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cfsm_phrase,Cfsm_phrase::rhs3_Rphrase_}
+ }// end of reduce table
+};
+yacco2::State S2_Cfsm_phrase = //State's vectored into symbol: "|?|"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Cfsm_phrase,0,0,0};
+struct S3std_Cfsm_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S3std_Cfsm_phrase S3st_Cfsm_phrase = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S4_Cfsm_phrase} // shift sym: LR1_questionable_shift_operator
+ ,{328,(State*)&S5_Cfsm_phrase} // shift sym: T_fsm_phrase
+ }// end of shift table
+};
+yacco2::Shift_entry S3qse_Cfsm_phrase = {0,(State*)&S4_Cfsm_phrase};
+yacco2::State S3_Cfsm_phrase = //State's vectored into symbol: "|||"
+{3
+,0,0,0,0,(Shift_tbl*)&S3st_Cfsm_phrase,0,0,0,(Shift_entry*)&S3qse_Cfsm_phrase
+};
+struct S4rtd_Cfsm_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Cfsm_phrase S4rt_Cfsm_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cfsm_phrase,Cfsm_phrase::rhs2_Rphrase_}
+ }// end of reduce table
+};
+yacco2::State S4_Cfsm_phrase = //State's vectored into symbol: "|?|"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Cfsm_phrase,0,0,0};
+struct S5rtd_Cfsm_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Cfsm_phrase S5rt_Cfsm_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cfsm_phrase,Cfsm_phrase::rhs1_Rphrase_}
+ }// end of reduce table
+};
+yacco2::State S5_Cfsm_phrase = //State's vectored into symbol: "fsm-phrase"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Cfsm_phrase,0,0,0};
+struct S6rtd_Cfsm_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Cfsm_phrase S6rt_Cfsm_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cfsm_phrase,Cfsm_phrase::rhs1_Rfsm_phrase_}
+ }// end of reduce table
+};
+yacco2::State S6_Cfsm_phrase = //State's vectored into symbol: "Rphrase"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Cfsm_phrase,0,0,0};
diff --git a/web/yacco2/compiler/grammars/gen1grammar.sh b/web/yacco2/compiler/grammars/gen1grammar.sh
new file mode 100755
index 0000000000..45111be7a8
--- /dev/null
+++ b/web/yacco2/compiler/grammars/gen1grammar.sh
@@ -0,0 +1,140 @@
+#! /bin/sh
+#file: gen1grammar.bat
+# compile 1 grammar
+# parm 1) grammar name to compile
+# Example:
+# 0) cd /usr/local/yacco2/compiler/grammars
+# 1) . gen1grammar.bat eol.lex # gen c++ for eol.lex
+
+
+#
+# p1 possible switches with grammar file to work with
+# p2 grammar file without the extension
+#
+delete_files=1 # set to delete the various gened files
+parm=""
+cc_lex()
+{
+ echo "==========> Grammar to compile with switches: $1"
+ file_name_only="`basename $2`"
+ if ! eval "$o2 $1"
+ then
+ echo "grammar in error --- exiting";
+ return 1;
+ fi
+ for j in $1
+ do
+ case $j in
+ *p)
+ eval "mpost $file_name_only.mp"
+ eval "cweave $file_name_only.w"
+ eval "pdftex $file_name_only.tex"
+ xref="$file_name_only""_idx"
+ echo "%%%%%%%%%%%%%%%%% index file: $xref to cweave and pdftex"
+ eval "cweave $xref.w"
+ eval "pdftex $xref.tex"
+ ###pdftops "$file_name_only.pdf"
+ ###pdftops "$xref"".pdf"
+ eval "cp $xref\.pdf* $dir_only"; #copy gened docs to its gening folder
+ ###eval "cp $xref\.ps* $dir_only"; #copy gened docs to its gening folder
+ return
+ esac
+ done
+if test $delete_files -eq 1; then
+ for k in `ls -1 * `;
+ do
+ #echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!Casing on $k"
+ case $k in
+ *.cpp|*.h)
+ echo "-----Copying--------> $k to $dir_only/$k"
+ eval "cp $k $dir_only/$k";
+ eval "rm -f $k"
+ ;;
+ *.fsc)
+ echo "-----Copying--------> $k to $dir_only/$k"
+ eval "cp $k $dir_only/$k";
+ eval "rm -f $k" ;;
+ *.scn|*.idx|*.log|*.toc)
+ #echo "-------------> Deleting $k"
+ eval "rm -f $k"
+ ;;
+ Err.w|T.w) # error and terminal documents to be cweave then pdftex printed by xpdf
+ echo "-----Copying--------> $k to $dir_only/$k"
+ eval "cp $k $dir_only/$k";
+ #echo "-------------> Deleting $k"
+ #eval "rm -f $k" eof
+ ;;
+ *.w)
+ #echo "-------------> Deleting $k"
+ eval "rm -f $k"
+ ;;
+ *.tex)
+ #echo "-------------> Deleting $k"
+ eval "rm -f $k"
+ ;;
+ *.mp)
+ #echo "-------------> Deleting $k"
+ eval "rm -f $k"
+ ;;
+ *.tex1)
+ #echo "-------------> Deleting $k"
+ eval "rm -f $k"
+ ;;
+ *.[1-9])
+ echo "-------------> Deleting Mpost diagrams $k"
+ eval "rm -f $k"
+ ;;
+ *.[1-9][0-9]*)
+ echo "-------------> Deleting Mpost diagrams $k"
+ eval "rm -f $k"
+ ;;
+ esac
+ done
+fi
+}
+
+o2=/usr/local/yacco2/bin/o2
+tmp=/tmp/o2
+if [ ! -e "$tmp" ]
+then
+ mkdir $tmp
+fi
+
+file_no_ext=${1%%.*}
+echo "==========> Grammar to compile: $1; file name without extension: $file_no_ext"
+echo "Parameters to use"
+echo " 0) exit script"
+echo " 1) just compile grammar: $1"
+echo " 2) also gen $1 and Tes and Errors vocabularies: -t -err"
+echo " 3) gen $1 documents: -p"
+dir_only=`pwd`
+cd $tmp
+while true; do
+ echo -n "Choose selection no: "
+ read no
+ case $no in
+ 0 )
+ echo "exiting script";
+ break;;
+ 1 )
+ parm=" $dir_only/$1";
+ ;;
+ 2 )
+ parm=" -t -err $dir_only/$1";
+ ;;
+ 3 )
+ parm=" -p $dir_only/$1";
+ ;;
+ * )
+ echo "Please answer 0..3";
+ continue;;
+ esac
+ echo "parm: $parm"
+ if test "$parm" ;
+ then
+ cc_lex "$parm" "$dir_only/$file_no_ext"
+ cd $dir_only
+ break
+ fi
+done
+
diff --git a/web/yacco2/compiler/grammars/identifier.cpp b/web/yacco2/compiler/grammars/identifier.cpp
new file mode 100644
index 0000000000..dac8c04c01
--- /dev/null
+++ b/web/yacco2/compiler/grammars/identifier.cpp
@@ -0,0 +1,374 @@
+/*
+ File: identifier.cpp
+ Date and Time: Fri Jan 30 18:55:12 2015
+*/
+#include "identifier.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_identifier;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 8;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[4] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[5] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[6] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[7] = new Per_rule_s_reuse_table();
+}
+ Cidentifier::
+ Cidentifier()
+ :yacco2::CAbs_fsm
+ ("identifier.lex"
+ ,"1.0"
+ ,"17 Juin 2003"
+ ,false
+ ,"Yacco2 identifiers lexer with symbol table lookup."
+ ,"Fri Jan 30 18:55:12 2015 "
+ ,S1_Cidentifier){
+
+ hyphen_pos_ = -1;
+ hyphen_ = 0;
+ hyphen_idx_ = -1;
+ ddd_idx_ = 0;
+ ddd_[ddd_idx_] = 0;
+
+ }
+
+Cidentifier::~Cidentifier(){
+
+ for(int x = 0;x < 8;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cidentifier::failed(){
+ return false;
+ }
+ void Cidentifier::op(){
+ hyphen_pos_ = -1;
+ hyphen_ = 0;
+ hyphen_idx_ = -1;
+ ddd_idx_ = 0;
+ ddd_[ddd_idx_] = 0;
+
+}
+int Cidentifier::rhs_to_rules_mapping_[70] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,0 // subrule 2 for rule 1
+ ,1 // subrule 3 for rule 2
+ ,2 // subrule 4 for rule 3
+ ,2 // subrule 5 for rule 3
+ ,2 // subrule 6 for rule 3
+ ,2 // subrule 7 for rule 3
+ ,3 // subrule 8 for rule 4
+ ,3 // subrule 9 for rule 4
+ ,3 // subrule 10 for rule 4
+ ,3 // subrule 11 for rule 4
+ ,3 // subrule 12 for rule 4
+ ,3 // subrule 13 for rule 4
+ ,3 // subrule 14 for rule 4
+ ,3 // subrule 15 for rule 4
+ ,3 // subrule 16 for rule 4
+ ,3 // subrule 17 for rule 4
+ ,3 // subrule 18 for rule 4
+ ,3 // subrule 19 for rule 4
+ ,3 // subrule 20 for rule 4
+ ,4 // subrule 21 for rule 5
+ ,4 // subrule 22 for rule 5
+ ,4 // subrule 23 for rule 5
+ ,4 // subrule 24 for rule 5
+ ,4 // subrule 25 for rule 5
+ ,4 // subrule 26 for rule 5
+ ,4 // subrule 27 for rule 5
+ ,4 // subrule 28 for rule 5
+ ,4 // subrule 29 for rule 5
+ ,4 // subrule 30 for rule 5
+ ,4 // subrule 31 for rule 5
+ ,4 // subrule 32 for rule 5
+ ,4 // subrule 33 for rule 5
+ ,5 // subrule 34 for rule 6
+ ,5 // subrule 35 for rule 6
+ ,5 // subrule 36 for rule 6
+ ,5 // subrule 37 for rule 6
+ ,5 // subrule 38 for rule 6
+ ,5 // subrule 39 for rule 6
+ ,5 // subrule 40 for rule 6
+ ,5 // subrule 41 for rule 6
+ ,5 // subrule 42 for rule 6
+ ,5 // subrule 43 for rule 6
+ ,5 // subrule 44 for rule 6
+ ,5 // subrule 45 for rule 6
+ ,5 // subrule 46 for rule 6
+ ,6 // subrule 47 for rule 7
+ ,6 // subrule 48 for rule 7
+ ,6 // subrule 49 for rule 7
+ ,6 // subrule 50 for rule 7
+ ,6 // subrule 51 for rule 7
+ ,6 // subrule 52 for rule 7
+ ,6 // subrule 53 for rule 7
+ ,6 // subrule 54 for rule 7
+ ,6 // subrule 55 for rule 7
+ ,6 // subrule 56 for rule 7
+ ,6 // subrule 57 for rule 7
+ ,6 // subrule 58 for rule 7
+ ,6 // subrule 59 for rule 7
+ ,7 // subrule 60 for rule 8
+ ,7 // subrule 61 for rule 8
+ ,7 // subrule 62 for rule 8
+ ,7 // subrule 63 for rule 8
+ ,7 // subrule 64 for rule 8
+ ,7 // subrule 65 for rule 8
+ ,7 // subrule 66 for rule 8
+ ,7 // subrule 67 for rule 8
+ ,7 // subrule 68 for rule 8
+ ,7 // subrule 69 for rule 8
+};
+Ridentifier::Ridentifier(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Ridentifier",0,Cidentifier::R_Ridentifier_,P,false,false){
+}
+
+void Ridentifier::op(){
+ sstrace_rulesss
+
+ using namespace NS_yacco2_T_enum;
+ using namespace NS_yacco2_terminals;
+ using namespace yacco2_stbl;
+ Cidentifier* fsm = (Cidentifier*) rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* sym(0);
+ T_sym_tbl_report_card report_card;
+ find_sym_in_stbl(report_card,*fsm->ddd_);
+ if(report_card.action_ == T_sym_tbl_report_card::fnd) goto item_in_stbl;
+ // strip out - suffix as in a-b where suffix -b is bktracked
+ if(fsm->hyphen_ != 0){// re-align to - as lookahead
+ rule_info__.parser__->override_current_token(*fsm->hyphen_,fsm->hyphen_pos_);
+ fsm->ddd_[fsm->hyphen_idx_] = 0;
+ }else{
+ sym = new T_identifier((const char*)&fsm->ddd_);
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ return;
+ }
+ find_sym_in_stbl(report_card,*fsm->ddd_);// relook up id without "-" sufx
+ if(report_card.action_ == T_sym_tbl_report_card::fnd) goto item_in_stbl;
+ sym = new T_identifier((const char*)&fsm->ddd_);
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ return;
+
+item_in_stbl:
+ if(report_card.tbl_entry_->type_ != table_entry::keyword){
+ // return xxx-in-stbl where xxx one of rule, T
+ sym = report_card.tbl_entry_->symbol_;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ return;
+ }
+kw_handling:
+ kw_in_stbl* kw_in = (kw_in_stbl*)report_card.tbl_entry_->symbol_;
+ CAbs_lr1_sym* kw = kw_in->keyword_in_stbl();
+ CAbs_lr1_sym* nkw;
+ switch(kw->enumerated_id__){
+ case T_Enum::T_T_raw_characters_:{nkw = new T_raw_characters;break;}
+ case T_Enum::T_T_lr1_constant_symbols_:
+ {nkw = new T_lr1_constant_symbols;break;}
+ case T_Enum::T_T_error_symbols_:{nkw = new T_error_symbols;break;}
+ case T_Enum::T_T_eocode_:{nkw = new T_eocode;break;}
+
+ case T_Enum::T_T_AD_:{nkw = new T_AD;break;}
+ case T_Enum::T_T_AB_:{nkw = new T_AB;break;}
+ case T_Enum::T_T_parallel_la_boundary_:
+ {nkw = new T_parallel_la_boundary;break;}
+ case T_Enum::T_T_arbitrator_code_:{nkw = new T_arbitrator_code;break;}
+
+ case T_Enum::T_T_parallel_parser_:{nkw = new T_parallel_parser;break;}
+ case T_Enum::T_T_parallel_thread_function_:
+ {nkw = new T_parallel_thread_function;break;}
+ case T_Enum::T_T_parallel_control_monitor_:
+ {nkw = new T_parallel_control_monitor;break;}
+ case T_Enum::T_T_fsm_:{nkw = new T_fsm;break;}
+ case T_Enum::T_T_fsm_id_:{nkw = new T_fsm_id;break;}
+ case T_Enum::T_T_fsm_filename_:{nkw = new T_fsm_filename;break;}
+ case T_Enum::T_T_fsm_namespace_:{nkw = new T_fsm_namespace;break;}
+ case T_Enum::T_T_fsm_class_:{nkw = new T_fsm_class;break;}
+ case T_Enum::T_T_fsm_version_:{nkw = new T_fsm_version;break;}
+ case T_Enum::T_T_fsm_date_:{nkw = new T_fsm_date;break;}
+ case T_Enum::T_T_fsm_debug_:{nkw = new T_fsm_debug;break;}
+ case T_Enum::T_T_fsm_comments_:{nkw = new T_fsm_comments;break;}
+ case T_Enum::T_T_terminals_:{nkw = new T_terminals;break;}
+ case T_Enum::T_T_enumeration_:{nkw = new T_enumeration;break;}
+ case T_Enum::T_T_file_name_:{nkw = new T_file_name;break;}
+ case T_Enum::T_T_name_space_:{nkw = new T_name_space;break;}
+ case T_Enum::T_T_sym_class_:{nkw = new T_sym_class;break;}
+ case T_Enum::T_T_rules_:{nkw = new T_rules;break;}
+ case T_Enum::T_T_lhs_:{nkw = new T_lhs;break;}
+ case T_Enum::T_T_user_declaration_:{nkw = new T_user_declaration;break;}
+ case T_Enum::T_T_user_prefix_declaration_:
+ {nkw = new T_user_prefix_declaration;break;}
+ case T_Enum::T_T_user_suffix_declaration_:
+ {nkw = new T_user_suffix_declaration;break;}
+ case T_Enum::T_T_constructor_:{nkw = new T_constructor;break;}
+ case T_Enum::T_T_destructor_:{nkw = new T_destructor;break;}
+ case T_Enum::T_T_op_:{nkw = new T_op;break;}
+ case T_Enum::T_T_failed_:{nkw = new T_failed;break;}
+ case T_Enum::T_T_user_implementation_:
+ {nkw = new T_user_implementation;break;}
+ case T_Enum::T_T_user_imp_tbl_:{nkw = new T_user_imp_tbl;break;}
+ case T_Enum::T_T_user_imp_sym_:{nkw = new T_user_imp_sym;break;}
+ case T_Enum::T_T_constant_defs_:{nkw = new T_constant_defs;break;}
+ case T_Enum::T_T_terminals_refs_:{nkw = new T_terminals_refs;break;}
+ case T_Enum::T_T_terminals_sufx_:{nkw = new T_terminals_sufx;break;}
+ case T_Enum::T_T_lrk_sufx_:{nkw = new T_lrk_sufx;break;}
+ case T_Enum::T_LR1_eog_:{nkw = new LR1_eog;break;}
+ case T_Enum::T_LR1_eolr_:{nkw = new LR1_eolr;break;}
+ case T_Enum::T_T_NULL_:{nkw = new T_NULL;break;}
+ }
+ nkw->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(nkw);
+ return;
+
+}
+Rid_suffix::Rid_suffix(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rid_suffix",0,Cidentifier::R_Rid_suffix_,P,false,false){
+}
+
+void Rid_suffix::sr1(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cidentifier* fsm = (Cidentifier*) rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* sym = sf->p1__;
+ parser()->reset_current_token(parser()->current_token_pos()-1);// bk trk to previous chr which is on stack
+ int id;
+filter_char:
+ id = sym->enumerated_id();
+ if((id >= NS_yacco2_T_enum::T_Enum::T_raw_a_)
+ &&
+ (id <= NS_yacco2_T_enum::T_Enum::T_raw_z_)) goto bld_str;
+ if((id >= NS_yacco2_T_enum::T_Enum::T_raw_A_)
+ &&
+ (id <= NS_yacco2_T_enum::T_Enum::T_raw_Z_)) goto bld_str;
+ if((id >= NS_yacco2_T_enum::T_Enum::T_raw_0_)
+ &&
+ (id <= NS_yacco2_T_enum::T_Enum::T_raw_9_)) goto bld_str;
+ if(id == NS_yacco2_T_enum::T_Enum::T_raw_under_score_) goto bld_str;
+ if(id == NS_yacco2_T_enum::T_Enum::T_raw_minus_){
+ if(fsm->hyphen_ == 0){
+ fsm->hyphen_pos_ = rule_info__.parser__->current_token_pos__-1;
+ fsm->hyphen_ = sym;
+ // note: len rel 1, idx rel 0: "-" not added yet to str, this will be its idx value
+ fsm->hyphen_idx_ = fsm->ddd_idx_;
+ }
+ goto bld_str;
+ }
+ return; // end-of-identifier
+bld_str:
+ fsm->ddd_[fsm->ddd_idx_] = sym->id__[0];
+ ++fsm->ddd_idx_;
+ fsm->ddd_[fsm->ddd_idx_] = 0;
+
+ parser()->get_next_token();// as current token
+ sym = parser()->current_token__;
+ goto filter_char;
+
+}
+
+Rstart_char::Rstart_char(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rstart_char",0,Cidentifier::R_Rstart_char_,P,false,false){
+}
+
+RUPPER_A_M::RUPPER_A_M(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("RUPPER_A_M",0,Cidentifier::R_RUPPER_A_M_,P,false,false){
+}
+
+void RUPPER_A_M::op(){
+ sstrace_rulesss
+
+ Cidentifier* fsm = (Cidentifier*) rule_info__.parser__->fsm_tbl__;
+ size_t pos = rule_info__.parser__->parse_stack__.top_sub__ - 1;
+ CAbs_lr1_sym* sym = rule_info__.parser__->get_spec_stack_token(pos);
+ fsm->ddd_[fsm->ddd_idx_] = sym->id__[0];
+ ++fsm->ddd_idx_;
+ fsm->ddd_[fsm->ddd_idx_] = 0;
+
+}
+RUPPER_N_Z::RUPPER_N_Z(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("RUPPER_N_Z",0,Cidentifier::R_RUPPER_N_Z_,P,false,false){
+}
+
+void RUPPER_N_Z::op(){
+ sstrace_rulesss
+
+ Cidentifier* fsm = (Cidentifier*) rule_info__.parser__->fsm_tbl__;
+ size_t pos = rule_info__.parser__->parse_stack__.top_sub__ - 1;
+ CAbs_lr1_sym* sym = rule_info__.parser__->get_spec_stack_token(pos);
+ fsm->ddd_[fsm->ddd_idx_] = sym->id__[0];
+ ++fsm->ddd_idx_;
+ fsm->ddd_[fsm->ddd_idx_] = 0;
+
+}
+Rlower_a_m::Rlower_a_m(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlower_a_m",0,Cidentifier::R_Rlower_a_m_,P,false,false){
+}
+
+void Rlower_a_m::op(){
+ sstrace_rulesss
+
+ Cidentifier* fsm = (Cidentifier*) rule_info__.parser__->fsm_tbl__;
+ size_t pos = rule_info__.parser__->parse_stack__.top_sub__ - 1;
+ CAbs_lr1_sym* sym = rule_info__.parser__->get_spec_stack_token(pos);
+ fsm->ddd_[fsm->ddd_idx_] = sym->id__[0];
+ ++fsm->ddd_idx_;
+ fsm->ddd_[fsm->ddd_idx_] = 0;
+
+}
+Rlower_n_z::Rlower_n_z(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlower_n_z",0,Cidentifier::R_Rlower_n_z_,P,false,false){
+}
+
+void Rlower_n_z::op(){
+ sstrace_rulesss
+
+ Cidentifier* fsm = (Cidentifier*) rule_info__.parser__->fsm_tbl__;
+ size_t pos = rule_info__.parser__->parse_stack__.top_sub__ - 1;
+ CAbs_lr1_sym* sym = rule_info__.parser__->get_spec_stack_token(pos);
+ fsm->ddd_[fsm->ddd_idx_] = sym->id__[0];
+ ++fsm->ddd_idx_;
+ fsm->ddd_[fsm->ddd_idx_] = 0;
+
+}
+RNUMBERS::RNUMBERS(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("RNUMBERS",0,Cidentifier::R_RNUMBERS_,P,false,false){
+}
+
+void RNUMBERS::op(){
+ sstrace_rulesss
+
+ Cidentifier* fsm = (Cidentifier*) rule_info__.parser__->fsm_tbl__;
+ size_t pos = rule_info__.parser__->parse_stack__.top_sub__ - 1;
+ CAbs_lr1_sym* sym = rule_info__.parser__->get_spec_stack_token(pos);
+ fsm->ddd_[fsm->ddd_idx_] = sym->id__[0];
+ ++fsm->ddd_idx_;
+ fsm->ddd_[fsm->ddd_idx_] = 0;
+
+}
diff --git a/web/yacco2/compiler/grammars/identifier.fsc b/web/yacco2/compiler/grammars/identifier.fsc
new file mode 100644
index 0000000000..c7942c87ad
--- /dev/null
+++ b/web/yacco2/compiler/grammars/identifier.fsc
@@ -0,0 +1,71 @@
+/*
+ File: identifier.fsc
+ Date and Time: Fri Jan 30 18:55:12 2015
+*/
+transitive n
+grammar-name "identifier"
+name-space "NS_identifier"
+thread-name "TH_identifier"
+monolithic n
+file-name "identifier.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 52
+ raw_A
+ raw_B
+ raw_C
+ raw_D
+ raw_E
+ raw_F
+ raw_G
+ raw_H
+ raw_I
+ raw_J
+ raw_K
+ raw_L
+ raw_M
+ raw_N
+ raw_O
+ raw_P
+ raw_Q
+ raw_R
+ raw_S
+ raw_T
+ raw_U
+ raw_V
+ raw_W
+ raw_X
+ raw_Y
+ raw_Z
+ raw_a
+ raw_b
+ raw_c
+ raw_d
+ raw_e
+ raw_f
+ raw_g
+ raw_h
+ raw_i
+ raw_j
+ raw_k
+ raw_l
+ raw_m
+ raw_n
+ raw_o
+ raw_p
+ raw_q
+ raw_r
+ raw_s
+ raw_t
+ raw_u
+ raw_v
+ raw_w
+ raw_x
+ raw_y
+ raw_z
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"Yacco2 identifiers lexer with symbol table lookup."
diff --git a/web/yacco2/compiler/grammars/identifier.h b/web/yacco2/compiler/grammars/identifier.h
new file mode 100644
index 0000000000..3cd55c5a08
--- /dev/null
+++ b/web/yacco2/compiler/grammars/identifier.h
@@ -0,0 +1,189 @@
+/*
+ File: identifier.h
+ Date and Time: Fri Jan 30 18:55:12 2015
+*/
+#ifndef __identifier_h__
+#define __identifier_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "yacco2_stbl.h"
+
+extern yacco2::Thread_entry ITH_identifier;
+
+extern yacco2::State S1_Cidentifier;
+namespace NS_identifier {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_identifier(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_identifier(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[8];
+};
+class Cidentifier: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Ridentifier_ = 569//start_of_rule_list + 0
+ ,rhs1_Ridentifier_ = 1
+ ,rhs2_Ridentifier_ = 2
+ ,R_Rid_suffix_ = 570//start_of_rule_list + 2
+ ,rhs1_Rid_suffix_ = 3
+ ,R_Rstart_char_ = 571//start_of_rule_list + 4
+ ,rhs1_Rstart_char_ = 4
+ ,rhs2_Rstart_char_ = 5
+ ,rhs3_Rstart_char_ = 6
+ ,rhs4_Rstart_char_ = 7
+ ,R_RUPPER_A_M_ = 572//start_of_rule_list + 6
+ ,rhs1_RUPPER_A_M_ = 8
+ ,rhs2_RUPPER_A_M_ = 9
+ ,rhs3_RUPPER_A_M_ = 10
+ ,rhs4_RUPPER_A_M_ = 11
+ ,rhs5_RUPPER_A_M_ = 12
+ ,rhs6_RUPPER_A_M_ = 13
+ ,rhs7_RUPPER_A_M_ = 14
+ ,rhs8_RUPPER_A_M_ = 15
+ ,rhs9_RUPPER_A_M_ = 16
+ ,rhs10_RUPPER_A_M_ = 17
+ ,rhs11_RUPPER_A_M_ = 18
+ ,rhs12_RUPPER_A_M_ = 19
+ ,rhs13_RUPPER_A_M_ = 20
+ ,R_RUPPER_N_Z_ = 573//start_of_rule_list + 8
+ ,rhs1_RUPPER_N_Z_ = 21
+ ,rhs2_RUPPER_N_Z_ = 22
+ ,rhs3_RUPPER_N_Z_ = 23
+ ,rhs4_RUPPER_N_Z_ = 24
+ ,rhs5_RUPPER_N_Z_ = 25
+ ,rhs6_RUPPER_N_Z_ = 26
+ ,rhs7_RUPPER_N_Z_ = 27
+ ,rhs8_RUPPER_N_Z_ = 28
+ ,rhs9_RUPPER_N_Z_ = 29
+ ,rhs10_RUPPER_N_Z_ = 30
+ ,rhs11_RUPPER_N_Z_ = 31
+ ,rhs12_RUPPER_N_Z_ = 32
+ ,rhs13_RUPPER_N_Z_ = 33
+ ,R_Rlower_a_m_ = 574//start_of_rule_list + 10
+ ,rhs1_Rlower_a_m_ = 34
+ ,rhs2_Rlower_a_m_ = 35
+ ,rhs3_Rlower_a_m_ = 36
+ ,rhs4_Rlower_a_m_ = 37
+ ,rhs5_Rlower_a_m_ = 38
+ ,rhs6_Rlower_a_m_ = 39
+ ,rhs7_Rlower_a_m_ = 40
+ ,rhs8_Rlower_a_m_ = 41
+ ,rhs9_Rlower_a_m_ = 42
+ ,rhs10_Rlower_a_m_ = 43
+ ,rhs11_Rlower_a_m_ = 44
+ ,rhs12_Rlower_a_m_ = 45
+ ,rhs13_Rlower_a_m_ = 46
+ ,R_Rlower_n_z_ = 575//start_of_rule_list + 12
+ ,rhs1_Rlower_n_z_ = 47
+ ,rhs2_Rlower_n_z_ = 48
+ ,rhs3_Rlower_n_z_ = 49
+ ,rhs4_Rlower_n_z_ = 50
+ ,rhs5_Rlower_n_z_ = 51
+ ,rhs6_Rlower_n_z_ = 52
+ ,rhs7_Rlower_n_z_ = 53
+ ,rhs8_Rlower_n_z_ = 54
+ ,rhs9_Rlower_n_z_ = 55
+ ,rhs10_Rlower_n_z_ = 56
+ ,rhs11_Rlower_n_z_ = 57
+ ,rhs12_Rlower_n_z_ = 58
+ ,rhs13_Rlower_n_z_ = 59
+ ,R_RNUMBERS_ = 576//start_of_rule_list + 14
+ ,rhs1_RNUMBERS_ = 60
+ ,rhs2_RNUMBERS_ = 61
+ ,rhs3_RNUMBERS_ = 62
+ ,rhs4_RNUMBERS_ = 63
+ ,rhs5_RNUMBERS_ = 64
+ ,rhs6_RNUMBERS_ = 65
+ ,rhs7_RNUMBERS_ = 66
+ ,rhs8_RNUMBERS_ = 67
+ ,rhs9_RNUMBERS_ = 68
+ ,rhs10_RNUMBERS_ = 69
+ };
+ //no of la sets = 1
+ //no of states = 60
+ Cidentifier();
+ ~Cidentifier();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[70];
+
+ public:
+ int hyphen_pos_;
+ int hyphen_idx_;
+ CAbs_lr1_sym* hyphen_;
+ char ddd_[1024];
+ int ddd_idx_;
+
+ };
+struct Ridentifier;
+struct Rid_suffix;
+struct Rstart_char;
+struct RUPPER_A_M;
+struct RUPPER_N_Z;
+struct Rlower_a_m;
+struct Rlower_n_z;
+struct RNUMBERS;
+struct Ridentifier:public yacco2::CAbs_lr1_sym {
+ Ridentifier(yacco2::Parser* P);
+ void op();
+ public:
+};
+
+struct Rid_suffix:public yacco2::CAbs_lr1_sym {
+ Rid_suffix(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rstart_char:public yacco2::CAbs_lr1_sym {
+ Rstart_char(yacco2::Parser* P);
+ public:
+};
+
+struct RUPPER_A_M:public yacco2::CAbs_lr1_sym {
+ RUPPER_A_M(yacco2::Parser* P);
+ void op();
+ public:
+};
+
+struct RUPPER_N_Z:public yacco2::CAbs_lr1_sym {
+ RUPPER_N_Z(yacco2::Parser* P);
+ void op();
+ public:
+};
+
+struct Rlower_a_m:public yacco2::CAbs_lr1_sym {
+ Rlower_a_m(yacco2::Parser* P);
+ void op();
+ public:
+};
+
+struct Rlower_n_z:public yacco2::CAbs_lr1_sym {
+ Rlower_n_z(yacco2::Parser* P);
+ void op();
+ public:
+};
+
+struct RNUMBERS:public yacco2::CAbs_lr1_sym {
+ RNUMBERS(yacco2::Parser* P);
+ void op();
+ public:
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/identifier.lex b/web/yacco2/compiler/grammars/identifier.lex
new file mode 100644
index 0000000000..917d1c1847
--- /dev/null
+++ b/web/yacco2/compiler/grammars/identifier.lex
@@ -0,0 +1,345 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: identifier.lex
+dates: 17 Juin 2003
+Purpose: yacco2 identifier
+Returned: T_identifier
+Mod: include keyword handling that can have embeded "-" - 23 Mar. 2005
+Note: "-" in Rminus_la. This protects the a-b expression in the
+parallel-la-boundary from being considered bad.
+Take 2: use a bktrk strategy. If keyword then return it else see if
+the suffix of "-" needs dropping to produce a shorter identifier.
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |identifier| thread.\fbreak
+Does three things:\fbreak
+1) build up strings starting with letters
+following by alphanumerics, underscore and hyphens\fbreak
+2) determines whether its an identifier, keyword,
+or xxx-in-stbl where xxx one of rule, T.\fbreak
+3) it watches for the possibility of a shortened
+identifier within the lookahead expression.\fbreak
+This is caused by the hyphen being overloaded: within
+the lookahead expression it
+is an operator.
+The default is the longest possible identifier string
+which could be a keyword.
+Barring this it is an identifier up to but excluding
+the first hyphen. This is not pure in its error checking
+as the string could be in error within the
+lookahead expression and the faulty keyword being
+stated checked to the shortened
+identifier.
+Well the undefined identifier should be caught
+when the lookahead expression is postfixed evaluated against the symbol table.
+
+To keep each drawing contained to a page, i broke the rules
+having many subrules like
+|RUPPER| into smaller rules: |RUPPER_A_M| and |RUPPER_N_Z|.
+
+An Optimization:\fbreak
+Bypass the PDA of the grammar and use a FA for the
+tail-gating characters. Dtrace exposes well optimization opportunities.
+2) Optimize: rid use of string to build up symbol name: use a raw buffer.
+Dtrace showed its inefficiencies: strlen, memcpy, and mutex locks.\fbreak
+Nov. 2008.\fbreak
+@/
+fsm
+(fsm-id "identifier.lex",fsm-filename identifier,fsm-namespace NS_identifier
+,fsm-class Cidentifier{
+ user-prefix-declaration
+#include "yacco2_stbl.h"
+ ***
+ user-declaration
+ public:
+ int hyphen_pos_;
+ int hyphen_idx_;
+ CAbs_lr1_sym* hyphen_;
+ char ddd_[1024];
+ int ddd_idx_;
+ ***
+ op
+ hyphen_pos_ = -1;
+ hyphen_ = 0;
+ hyphen_idx_ = -1;
+ ddd_idx_ = 0;
+ ddd_[ddd_idx_] = 0;
+ ***
+ constructor
+ hyphen_pos_ = -1;
+ hyphen_ = 0;
+ hyphen_idx_ = -1;
+ ddd_idx_ = 0;
+ ddd_[ddd_idx_] = 0;
+ ***
+ }
+,fsm-version "1.0",fsm-date "17 Juin 2003",fsm-debug "false"
+,fsm-comments "Yacco2 identifiers lexer with symbol table lookup.")
+parallel-parser
+(
+ parallel-thread-function
+ TH_identifier
+ ***
+ parallel-la-boundary
+ eolr
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Ridentifier (
+lhs {
+/@
+Check if the identifier is a keyword by use of the symbol table
+and if so create the keyword and return it.
+Now return as an identifier with the prefix not containing the hyphen.
+@/
+ op
+ using namespace NS_yacco2_T_enum;
+ using namespace NS_yacco2_terminals;
+ using namespace yacco2_stbl;
+ Cidentifier* fsm = (Cidentifier*) rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* sym(0);
+ T_sym_tbl_report_card report_card;
+ find_sym_in_stbl(report_card,*fsm->ddd_);
+ if(report_card.action_ == T_sym_tbl_report_card::fnd) goto item_in_stbl;
+ // strip out - suffix as in a-b where suffix -b is bktracked
+ if(fsm->hyphen_ != 0){// re-align to - as lookahead
+ rule_info__.parser__->override_current_token(*fsm->hyphen_,fsm->hyphen_pos_);
+ fsm->ddd_[fsm->hyphen_idx_] = 0;
+ }else{
+ sym = new T_identifier((const char*)&fsm->ddd_);
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ return;
+ }
+ find_sym_in_stbl(report_card,*fsm->ddd_);// relook up id without "-" sufx
+ if(report_card.action_ == T_sym_tbl_report_card::fnd) goto item_in_stbl;
+ sym = new T_identifier((const char*)&fsm->ddd_);
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ return;
+
+item_in_stbl:
+ if(report_card.tbl_entry_->type_ != table_entry::keyword){
+ // return xxx-in-stbl where xxx one of rule, T
+ sym = report_card.tbl_entry_->symbol_;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ return;
+ }
+kw_handling:
+ kw_in_stbl* kw_in = (kw_in_stbl*)report_card.tbl_entry_->symbol_;
+ CAbs_lr1_sym* kw = kw_in->keyword_in_stbl();
+ CAbs_lr1_sym* nkw;
+ switch(kw->enumerated_id__){
+ case T_Enum::T_T_raw_characters_:{nkw = new T_raw_characters;break;}
+ case T_Enum::T_T_lr1_constant_symbols_:
+ {nkw = new T_lr1_constant_symbols;break;}
+ case T_Enum::T_T_error_symbols_:{nkw = new T_error_symbols;break;}
+ case T_Enum::T_T_eocode_:{nkw = new T_eocode;break;}
+
+ case T_Enum::T_T_AD_:{nkw = new T_AD;break;}
+ case T_Enum::T_T_AB_:{nkw = new T_AB;break;}
+ case T_Enum::T_T_parallel_la_boundary_:
+ {nkw = new T_parallel_la_boundary;break;}
+ case T_Enum::T_T_arbitrator_code_:{nkw = new T_arbitrator_code;break;}
+
+ case T_Enum::T_T_parallel_parser_:{nkw = new T_parallel_parser;break;}
+ case T_Enum::T_T_parallel_thread_function_:
+ {nkw = new T_parallel_thread_function;break;}
+ case T_Enum::T_T_parallel_control_monitor_:
+ {nkw = new T_parallel_control_monitor;break;}
+ case T_Enum::T_T_fsm_:{nkw = new T_fsm;break;}
+ case T_Enum::T_T_fsm_id_:{nkw = new T_fsm_id;break;}
+ case T_Enum::T_T_fsm_filename_:{nkw = new T_fsm_filename;break;}
+ case T_Enum::T_T_fsm_namespace_:{nkw = new T_fsm_namespace;break;}
+ case T_Enum::T_T_fsm_class_:{nkw = new T_fsm_class;break;}
+ case T_Enum::T_T_fsm_version_:{nkw = new T_fsm_version;break;}
+ case T_Enum::T_T_fsm_date_:{nkw = new T_fsm_date;break;}
+ case T_Enum::T_T_fsm_debug_:{nkw = new T_fsm_debug;break;}
+ case T_Enum::T_T_fsm_comments_:{nkw = new T_fsm_comments;break;}
+ case T_Enum::T_T_terminals_:{nkw = new T_terminals;break;}
+ case T_Enum::T_T_enumeration_:{nkw = new T_enumeration;break;}
+ case T_Enum::T_T_file_name_:{nkw = new T_file_name;break;}
+ case T_Enum::T_T_name_space_:{nkw = new T_name_space;break;}
+ case T_Enum::T_T_sym_class_:{nkw = new T_sym_class;break;}
+ case T_Enum::T_T_rules_:{nkw = new T_rules;break;}
+ case T_Enum::T_T_lhs_:{nkw = new T_lhs;break;}
+ case T_Enum::T_T_user_declaration_:{nkw = new T_user_declaration;break;}
+ case T_Enum::T_T_user_prefix_declaration_:
+ {nkw = new T_user_prefix_declaration;break;}
+ case T_Enum::T_T_user_suffix_declaration_:
+ {nkw = new T_user_suffix_declaration;break;}
+ case T_Enum::T_T_constructor_:{nkw = new T_constructor;break;}
+ case T_Enum::T_T_destructor_:{nkw = new T_destructor;break;}
+ case T_Enum::T_T_op_:{nkw = new T_op;break;}
+ case T_Enum::T_T_failed_:{nkw = new T_failed;break;}
+ case T_Enum::T_T_user_implementation_:
+ {nkw = new T_user_implementation;break;}
+ case T_Enum::T_T_user_imp_tbl_:{nkw = new T_user_imp_tbl;break;}
+ case T_Enum::T_T_user_imp_sym_:{nkw = new T_user_imp_sym;break;}
+ case T_Enum::T_T_constant_defs_:{nkw = new T_constant_defs;break;}
+ case T_Enum::T_T_terminals_refs_:{nkw = new T_terminals_refs;break;}
+ case T_Enum::T_T_terminals_sufx_:{nkw = new T_terminals_sufx;break;}
+ case T_Enum::T_T_lrk_sufx_:{nkw = new T_lrk_sufx;break;}
+ case T_Enum::T_LR1_eog_:{nkw = new LR1_eog;break;}
+ case T_Enum::T_LR1_eolr_:{nkw = new LR1_eolr;break;}
+ case T_Enum::T_T_NULL_:{nkw = new T_NULL;break;}
+ }
+ nkw->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(nkw);
+ return;
+ ***
+ }
+){
+ -> Rstart_char
+ -> Rstart_char Rid_suffix
+}
+
+Rid_suffix () {
+ -> |+| {
+/@
+Pure finite automata for identifier suffix.\fbreak
+Capture the index of where the first hyphen is.
+As length is relative to one, this is its index
+before i add it to the being built up string.
+i could have added the character before and then
+used the length minus one to get its index:
+ahh the off by one count as the array operator is
+of course relative to zero.
+Dave u and your rants...and rolls.
+
+Note the 1st entry character into this rule is on the stack
+which is what the stack frame uses to set the specific symbols.
+The current token for the parser is now the lookahead character.
+This is why I reset the parsing character upon entry
+to the previous token.
+@/
+ op
+ Cidentifier* fsm = (Cidentifier*) rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* sym = sf->p1__;
+ parser()->reset_current_token(parser()->current_token_pos()-1);// bk trk to previous chr which is on stack
+ int id;
+filter_char:
+ id = sym->enumerated_id();
+ if((id >= NS_yacco2_T_enum::T_Enum::T_raw_a_)
+ &&
+ (id <= NS_yacco2_T_enum::T_Enum::T_raw_z_)) goto bld_str;
+ if((id >= NS_yacco2_T_enum::T_Enum::T_raw_A_)
+ &&
+ (id <= NS_yacco2_T_enum::T_Enum::T_raw_Z_)) goto bld_str;
+ if((id >= NS_yacco2_T_enum::T_Enum::T_raw_0_)
+ &&
+ (id <= NS_yacco2_T_enum::T_Enum::T_raw_9_)) goto bld_str;
+ if(id == NS_yacco2_T_enum::T_Enum::T_raw_under_score_) goto bld_str;
+ if(id == NS_yacco2_T_enum::T_Enum::T_raw_minus_){
+ if(fsm->hyphen_ == 0){
+ fsm->hyphen_pos_ = rule_info__.parser__->current_token_pos__-1;
+ fsm->hyphen_ = sym;
+ // note: len rel 1, idx rel 0: "-" not added yet to str, this will be its idx value
+ fsm->hyphen_idx_ = fsm->ddd_idx_;
+ }
+ goto bld_str;
+ }
+ return; // end-of-identifier
+bld_str:
+ fsm->ddd_[fsm->ddd_idx_] = sym->id__[0];
+ ++fsm->ddd_idx_;
+ fsm->ddd_[fsm->ddd_idx_] = 0;
+
+ parser()->get_next_token();// as current token
+ sym = parser()->current_token__;
+ goto filter_char;
+ ***
+ }
+}
+
+Rstart_char () {
+ -> RUPPER_A_M
+ -> RUPPER_N_Z
+ -> Rlower_a_m
+ -> Rlower_n_z
+}
+
+RUPPER_A_M (
+lhs {
+ op
+ Cidentifier* fsm = (Cidentifier*) rule_info__.parser__->fsm_tbl__;
+ size_t pos = rule_info__.parser__->parse_stack__.top_sub__ - 1;
+ CAbs_lr1_sym* sym = rule_info__.parser__->get_spec_stack_token(pos);
+ fsm->ddd_[fsm->ddd_idx_] = sym->id__[0];
+ ++fsm->ddd_idx_;
+ fsm->ddd_[fsm->ddd_idx_] = 0;
+ ***
+ }
+){
+ -> A -> B -> C -> D -> E -> F -> G -> H -> I -> J -> K -> L -> M
+}
+
+RUPPER_N_Z (
+lhs {
+ op
+ Cidentifier* fsm = (Cidentifier*) rule_info__.parser__->fsm_tbl__;
+ size_t pos = rule_info__.parser__->parse_stack__.top_sub__ - 1;
+ CAbs_lr1_sym* sym = rule_info__.parser__->get_spec_stack_token(pos);
+ fsm->ddd_[fsm->ddd_idx_] = sym->id__[0];
+ ++fsm->ddd_idx_;
+ fsm->ddd_[fsm->ddd_idx_] = 0;
+ ***
+ }
+){
+ -> N -> O -> P -> Q
+ -> "R" // considered a Rule when not quoted!
+ -> S -> T -> U -> V -> W -> X -> Y -> Z
+}
+
+Rlower_a_m (
+lhs {
+ op
+ Cidentifier* fsm = (Cidentifier*) rule_info__.parser__->fsm_tbl__;
+ size_t pos = rule_info__.parser__->parse_stack__.top_sub__ - 1;
+ CAbs_lr1_sym* sym = rule_info__.parser__->get_spec_stack_token(pos);
+ fsm->ddd_[fsm->ddd_idx_] = sym->id__[0];
+ ++fsm->ddd_idx_;
+ fsm->ddd_[fsm->ddd_idx_] = 0;
+ ***
+ }
+){
+ -> a -> b -> c -> d -> e -> f -> g -> h -> i -> j -> k -> l -> m
+}
+
+Rlower_n_z (
+lhs {
+ op
+ Cidentifier* fsm = (Cidentifier*) rule_info__.parser__->fsm_tbl__;
+ size_t pos = rule_info__.parser__->parse_stack__.top_sub__ - 1;
+ CAbs_lr1_sym* sym = rule_info__.parser__->get_spec_stack_token(pos);
+ fsm->ddd_[fsm->ddd_idx_] = sym->id__[0];
+ ++fsm->ddd_idx_;
+ fsm->ddd_[fsm->ddd_idx_] = 0;
+ ***
+ }
+){
+ -> n -> o -> p -> q -> r -> s -> t -> u -> v -> w -> x -> y -> z
+}
+
+RNUMBERS (
+lhs {
+ op
+ Cidentifier* fsm = (Cidentifier*) rule_info__.parser__->fsm_tbl__;
+ size_t pos = rule_info__.parser__->parse_stack__.top_sub__ - 1;
+ CAbs_lr1_sym* sym = rule_info__.parser__->get_spec_stack_token(pos);
+ fsm->ddd_[fsm->ddd_idx_] = sym->id__[0];
+ ++fsm->ddd_idx_;
+ fsm->ddd_[fsm->ddd_idx_] = 0;
+ ***
+ }
+){
+ -> 0 -> 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8 -> 9
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/identifiersym.cpp b/web/yacco2/compiler/grammars/identifiersym.cpp
new file mode 100644
index 0000000000..2bb668df1d
--- /dev/null
+++ b/web/yacco2/compiler/grammars/identifiersym.cpp
@@ -0,0 +1,1079 @@
+/*
+ File: identifiersym.cpp
+ Date and Time: Fri Jan 30 18:55:12 2015
+*/
+#include "identifier.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_identifier;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_identifier::TH_identifier(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_identifier;
+ NS_identifier::Cidentifier Cidentifier_;// parallel-parser's parse table
+#define ssPARSE_TABLE Cidentifier_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_identifier::PROC_TH_identifier(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_identifier";
+ static bool one_time(false);
+ static NS_identifier::Cidentifier* NS_identifier_Cidentifier_(0);// parallel-parser's fsm table
+ static Parser* NS_identifier_Cidentifier_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_identifier_Cidentifier_ = new NS_identifier::Cidentifier();// parallel-parser's fsm table
+ NS_identifier_Cidentifier_parser = new Parser(*NS_identifier_Cidentifier_,Caller_pp);
+ }
+ proc_parser = NS_identifier_Cidentifier_parser;
+#include "wproc_pp_core.h"
+}
+void
+Cidentifier::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Ridentifier_:{
+ Ridentifier* sym;
+ if(re->rule_ == 0){
+ sym = new Ridentifier(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ridentifier*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs2_Ridentifier_:{
+ Ridentifier* sym;
+ if(re->rule_ == 0){
+ sym = new Ridentifier(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ridentifier*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->op();
+ return;}
+ case rhs1_Rid_suffix_:{
+ Rid_suffix* sym;
+ if(re->rule_ == 0){
+ sym = new Rid_suffix(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rid_suffix*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rstart_char_:{
+ Rstart_char* sym;
+ if(re->rule_ == 0){
+ sym = new Rstart_char(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rstart_char*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rstart_char_:{
+ Rstart_char* sym;
+ if(re->rule_ == 0){
+ sym = new Rstart_char(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rstart_char*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs3_Rstart_char_:{
+ Rstart_char* sym;
+ if(re->rule_ == 0){
+ sym = new Rstart_char(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rstart_char*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs4_Rstart_char_:{
+ Rstart_char* sym;
+ if(re->rule_ == 0){
+ sym = new Rstart_char(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rstart_char*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs2_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs3_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs4_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs5_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs6_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs7_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs8_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs9_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs10_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs11_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs12_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs13_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs1_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs2_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs3_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs4_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs5_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs6_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs7_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs8_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs9_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs10_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs11_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs12_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs13_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs1_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs2_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs3_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs4_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs5_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs6_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs7_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs8_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs9_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs10_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs11_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs12_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs13_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs1_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs2_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs3_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs4_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs5_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs6_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs7_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs8_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs9_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs10_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs11_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs12_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs13_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs1_RNUMBERS_:{
+ RNUMBERS* sym;
+ if(re->rule_ == 0){
+ sym = new RNUMBERS(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNUMBERS*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs2_RNUMBERS_:{
+ RNUMBERS* sym;
+ if(re->rule_ == 0){
+ sym = new RNUMBERS(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNUMBERS*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs3_RNUMBERS_:{
+ RNUMBERS* sym;
+ if(re->rule_ == 0){
+ sym = new RNUMBERS(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNUMBERS*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs4_RNUMBERS_:{
+ RNUMBERS* sym;
+ if(re->rule_ == 0){
+ sym = new RNUMBERS(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNUMBERS*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs5_RNUMBERS_:{
+ RNUMBERS* sym;
+ if(re->rule_ == 0){
+ sym = new RNUMBERS(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNUMBERS*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs6_RNUMBERS_:{
+ RNUMBERS* sym;
+ if(re->rule_ == 0){
+ sym = new RNUMBERS(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNUMBERS*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs7_RNUMBERS_:{
+ RNUMBERS* sym;
+ if(re->rule_ == 0){
+ sym = new RNUMBERS(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNUMBERS*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs8_RNUMBERS_:{
+ RNUMBERS* sym;
+ if(re->rule_ == 0){
+ sym = new RNUMBERS(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNUMBERS*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs9_RNUMBERS_:{
+ RNUMBERS* sym;
+ if(re->rule_ == 0){
+ sym = new RNUMBERS(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNUMBERS*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs10_RNUMBERS_:{
+ RNUMBERS* sym;
+ if(re->rule_ == 0){
+ sym = new RNUMBERS(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNUMBERS*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/identifiertbl.cpp b/web/yacco2/compiler/grammars/identifiertbl.cpp
new file mode 100644
index 0000000000..629509d903
--- /dev/null
+++ b/web/yacco2/compiler/grammars/identifiertbl.cpp
@@ -0,0 +1,989 @@
+/*
+ File: identifiertbl.cpp
+ Date and Time: Fri Jan 30 18:55:12 2015
+*/
+#include "identifier.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_identifier;// grammar's ns
+// first set terminals
+// LR1_eolr
+yacco2::UCHAR LA1_Cidentifier[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Cidentifier;
+extern yacco2::State S2_Cidentifier;
+extern yacco2::State S3_Cidentifier;
+extern yacco2::State S4_Cidentifier;
+extern yacco2::State S5_Cidentifier;
+extern yacco2::State S6_Cidentifier;
+extern yacco2::State S7_Cidentifier;
+extern yacco2::State S8_Cidentifier;
+extern yacco2::State S9_Cidentifier;
+extern yacco2::State S10_Cidentifier;
+extern yacco2::State S11_Cidentifier;
+extern yacco2::State S12_Cidentifier;
+extern yacco2::State S13_Cidentifier;
+extern yacco2::State S14_Cidentifier;
+extern yacco2::State S15_Cidentifier;
+extern yacco2::State S16_Cidentifier;
+extern yacco2::State S17_Cidentifier;
+extern yacco2::State S18_Cidentifier;
+extern yacco2::State S19_Cidentifier;
+extern yacco2::State S20_Cidentifier;
+extern yacco2::State S21_Cidentifier;
+extern yacco2::State S22_Cidentifier;
+extern yacco2::State S23_Cidentifier;
+extern yacco2::State S24_Cidentifier;
+extern yacco2::State S25_Cidentifier;
+extern yacco2::State S26_Cidentifier;
+extern yacco2::State S27_Cidentifier;
+extern yacco2::State S28_Cidentifier;
+extern yacco2::State S29_Cidentifier;
+extern yacco2::State S30_Cidentifier;
+extern yacco2::State S31_Cidentifier;
+extern yacco2::State S32_Cidentifier;
+extern yacco2::State S33_Cidentifier;
+extern yacco2::State S34_Cidentifier;
+extern yacco2::State S35_Cidentifier;
+extern yacco2::State S36_Cidentifier;
+extern yacco2::State S37_Cidentifier;
+extern yacco2::State S38_Cidentifier;
+extern yacco2::State S39_Cidentifier;
+extern yacco2::State S40_Cidentifier;
+extern yacco2::State S41_Cidentifier;
+extern yacco2::State S42_Cidentifier;
+extern yacco2::State S43_Cidentifier;
+extern yacco2::State S44_Cidentifier;
+extern yacco2::State S45_Cidentifier;
+extern yacco2::State S46_Cidentifier;
+extern yacco2::State S47_Cidentifier;
+extern yacco2::State S48_Cidentifier;
+extern yacco2::State S49_Cidentifier;
+extern yacco2::State S50_Cidentifier;
+extern yacco2::State S51_Cidentifier;
+extern yacco2::State S52_Cidentifier;
+extern yacco2::State S53_Cidentifier;
+extern yacco2::State S54_Cidentifier;
+extern yacco2::State S55_Cidentifier;
+extern yacco2::State S56_Cidentifier;
+extern yacco2::State S57_Cidentifier;
+extern yacco2::State S58_Cidentifier;
+extern yacco2::State S59_Cidentifier;
+extern yacco2::State S60_Cidentifier;
+struct S1std_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[58];
+};
+S1std_Cidentifier S1st_Cidentifier = {
+ 58
+ ,
+ {// start of table
+ {73,(State*)&S2_Cidentifier} // shift sym: raw_A
+ ,{74,(State*)&S3_Cidentifier} // shift sym: raw_B
+ ,{75,(State*)&S4_Cidentifier} // shift sym: raw_C
+ ,{76,(State*)&S5_Cidentifier} // shift sym: raw_D
+ ,{77,(State*)&S6_Cidentifier} // shift sym: raw_E
+ ,{78,(State*)&S7_Cidentifier} // shift sym: raw_F
+ ,{79,(State*)&S8_Cidentifier} // shift sym: raw_G
+ ,{80,(State*)&S9_Cidentifier} // shift sym: raw_H
+ ,{81,(State*)&S10_Cidentifier} // shift sym: raw_I
+ ,{82,(State*)&S11_Cidentifier} // shift sym: raw_J
+ ,{83,(State*)&S12_Cidentifier} // shift sym: raw_K
+ ,{84,(State*)&S13_Cidentifier} // shift sym: raw_L
+ ,{85,(State*)&S14_Cidentifier} // shift sym: raw_M
+ ,{86,(State*)&S15_Cidentifier} // shift sym: raw_N
+ ,{87,(State*)&S16_Cidentifier} // shift sym: raw_O
+ ,{88,(State*)&S17_Cidentifier} // shift sym: raw_P
+ ,{89,(State*)&S18_Cidentifier} // shift sym: raw_Q
+ ,{90,(State*)&S19_Cidentifier} // shift sym: raw_R
+ ,{91,(State*)&S20_Cidentifier} // shift sym: raw_S
+ ,{92,(State*)&S21_Cidentifier} // shift sym: raw_T
+ ,{93,(State*)&S22_Cidentifier} // shift sym: raw_U
+ ,{94,(State*)&S23_Cidentifier} // shift sym: raw_V
+ ,{95,(State*)&S24_Cidentifier} // shift sym: raw_W
+ ,{96,(State*)&S25_Cidentifier} // shift sym: raw_X
+ ,{97,(State*)&S26_Cidentifier} // shift sym: raw_Y
+ ,{98,(State*)&S27_Cidentifier} // shift sym: raw_Z
+ ,{105,(State*)&S28_Cidentifier} // shift sym: raw_a
+ ,{106,(State*)&S29_Cidentifier} // shift sym: raw_b
+ ,{107,(State*)&S30_Cidentifier} // shift sym: raw_c
+ ,{108,(State*)&S31_Cidentifier} // shift sym: raw_d
+ ,{109,(State*)&S32_Cidentifier} // shift sym: raw_e
+ ,{110,(State*)&S33_Cidentifier} // shift sym: raw_f
+ ,{111,(State*)&S34_Cidentifier} // shift sym: raw_g
+ ,{112,(State*)&S35_Cidentifier} // shift sym: raw_h
+ ,{113,(State*)&S36_Cidentifier} // shift sym: raw_i
+ ,{114,(State*)&S37_Cidentifier} // shift sym: raw_j
+ ,{115,(State*)&S38_Cidentifier} // shift sym: raw_k
+ ,{116,(State*)&S39_Cidentifier} // shift sym: raw_l
+ ,{117,(State*)&S40_Cidentifier} // shift sym: raw_m
+ ,{118,(State*)&S41_Cidentifier} // shift sym: raw_n
+ ,{119,(State*)&S42_Cidentifier} // shift sym: raw_o
+ ,{120,(State*)&S43_Cidentifier} // shift sym: raw_p
+ ,{121,(State*)&S44_Cidentifier} // shift sym: raw_q
+ ,{122,(State*)&S45_Cidentifier} // shift sym: raw_r
+ ,{123,(State*)&S46_Cidentifier} // shift sym: raw_s
+ ,{124,(State*)&S47_Cidentifier} // shift sym: raw_t
+ ,{125,(State*)&S48_Cidentifier} // shift sym: raw_u
+ ,{126,(State*)&S49_Cidentifier} // shift sym: raw_v
+ ,{127,(State*)&S50_Cidentifier} // shift sym: raw_w
+ ,{128,(State*)&S51_Cidentifier} // shift sym: raw_x
+ ,{129,(State*)&S52_Cidentifier} // shift sym: raw_y
+ ,{130,(State*)&S53_Cidentifier} // shift sym: raw_z
+ ,{569,(State*)&S1_Cidentifier} // accept sym: Ridentifier
+ ,{571,(State*)&S54_Cidentifier} // shift sym: Rstart_char
+ ,{572,(State*)&S57_Cidentifier} // shift sym: RUPPER_A_M
+ ,{573,(State*)&S58_Cidentifier} // shift sym: RUPPER_N_Z
+ ,{574,(State*)&S59_Cidentifier} // shift sym: Rlower_a_m
+ ,{575,(State*)&S60_Cidentifier} // shift sym: Rlower_n_z
+ }// end of shift table
+};
+yacco2::State S1_Cidentifier = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Cidentifier,0,0,0,0};
+struct S2rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Cidentifier S2rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs1_RUPPER_A_M_}
+ }// end of reduce table
+};
+yacco2::State S2_Cidentifier = //State's vectored into symbol: "A"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Cidentifier,0,0,0};
+struct S3rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Cidentifier S3rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs2_RUPPER_A_M_}
+ }// end of reduce table
+};
+yacco2::State S3_Cidentifier = //State's vectored into symbol: "B"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_Cidentifier,0,0,0};
+struct S4rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Cidentifier S4rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs3_RUPPER_A_M_}
+ }// end of reduce table
+};
+yacco2::State S4_Cidentifier = //State's vectored into symbol: "C"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Cidentifier,0,0,0};
+struct S5rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Cidentifier S5rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs4_RUPPER_A_M_}
+ }// end of reduce table
+};
+yacco2::State S5_Cidentifier = //State's vectored into symbol: "D"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Cidentifier,0,0,0};
+struct S6rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Cidentifier S6rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs5_RUPPER_A_M_}
+ }// end of reduce table
+};
+yacco2::State S6_Cidentifier = //State's vectored into symbol: "E"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Cidentifier,0,0,0};
+struct S7rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Cidentifier S7rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs6_RUPPER_A_M_}
+ }// end of reduce table
+};
+yacco2::State S7_Cidentifier = //State's vectored into symbol: "F"
+{7
+,0,0,0,0,0,(Reduce_tbl*)&S7rt_Cidentifier,0,0,0};
+struct S8rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S8rtd_Cidentifier S8rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs7_RUPPER_A_M_}
+ }// end of reduce table
+};
+yacco2::State S8_Cidentifier = //State's vectored into symbol: "G"
+{8
+,0,0,0,0,0,(Reduce_tbl*)&S8rt_Cidentifier,0,0,0};
+struct S9rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Cidentifier S9rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs8_RUPPER_A_M_}
+ }// end of reduce table
+};
+yacco2::State S9_Cidentifier = //State's vectored into symbol: "H"
+{9
+,0,0,0,0,0,(Reduce_tbl*)&S9rt_Cidentifier,0,0,0};
+struct S10rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S10rtd_Cidentifier S10rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs9_RUPPER_A_M_}
+ }// end of reduce table
+};
+yacco2::State S10_Cidentifier = //State's vectored into symbol: "I"
+{10
+,0,0,0,0,0,(Reduce_tbl*)&S10rt_Cidentifier,0,0,0};
+struct S11rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Cidentifier S11rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs10_RUPPER_A_M_}
+ }// end of reduce table
+};
+yacco2::State S11_Cidentifier = //State's vectored into symbol: "J"
+{11
+,0,0,0,0,0,(Reduce_tbl*)&S11rt_Cidentifier,0,0,0};
+struct S12rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S12rtd_Cidentifier S12rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs11_RUPPER_A_M_}
+ }// end of reduce table
+};
+yacco2::State S12_Cidentifier = //State's vectored into symbol: "K"
+{12
+,0,0,0,0,0,(Reduce_tbl*)&S12rt_Cidentifier,0,0,0};
+struct S13rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S13rtd_Cidentifier S13rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs12_RUPPER_A_M_}
+ }// end of reduce table
+};
+yacco2::State S13_Cidentifier = //State's vectored into symbol: "L"
+{13
+,0,0,0,0,0,(Reduce_tbl*)&S13rt_Cidentifier,0,0,0};
+struct S14rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S14rtd_Cidentifier S14rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs13_RUPPER_A_M_}
+ }// end of reduce table
+};
+yacco2::State S14_Cidentifier = //State's vectored into symbol: "M"
+{14
+,0,0,0,0,0,(Reduce_tbl*)&S14rt_Cidentifier,0,0,0};
+struct S15rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S15rtd_Cidentifier S15rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs1_RUPPER_N_Z_}
+ }// end of reduce table
+};
+yacco2::State S15_Cidentifier = //State's vectored into symbol: "N"
+{15
+,0,0,0,0,0,(Reduce_tbl*)&S15rt_Cidentifier,0,0,0};
+struct S16rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S16rtd_Cidentifier S16rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs2_RUPPER_N_Z_}
+ }// end of reduce table
+};
+yacco2::State S16_Cidentifier = //State's vectored into symbol: "O"
+{16
+,0,0,0,0,0,(Reduce_tbl*)&S16rt_Cidentifier,0,0,0};
+struct S17rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S17rtd_Cidentifier S17rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs3_RUPPER_N_Z_}
+ }// end of reduce table
+};
+yacco2::State S17_Cidentifier = //State's vectored into symbol: "P"
+{17
+,0,0,0,0,0,(Reduce_tbl*)&S17rt_Cidentifier,0,0,0};
+struct S18rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S18rtd_Cidentifier S18rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs4_RUPPER_N_Z_}
+ }// end of reduce table
+};
+yacco2::State S18_Cidentifier = //State's vectored into symbol: "Q"
+{18
+,0,0,0,0,0,(Reduce_tbl*)&S18rt_Cidentifier,0,0,0};
+struct S19rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S19rtd_Cidentifier S19rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs5_RUPPER_N_Z_}
+ }// end of reduce table
+};
+yacco2::State S19_Cidentifier = //State's vectored into symbol: "R"
+{19
+,0,0,0,0,0,(Reduce_tbl*)&S19rt_Cidentifier,0,0,0};
+struct S20rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S20rtd_Cidentifier S20rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs6_RUPPER_N_Z_}
+ }// end of reduce table
+};
+yacco2::State S20_Cidentifier = //State's vectored into symbol: "S"
+{20
+,0,0,0,0,0,(Reduce_tbl*)&S20rt_Cidentifier,0,0,0};
+struct S21rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S21rtd_Cidentifier S21rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs7_RUPPER_N_Z_}
+ }// end of reduce table
+};
+yacco2::State S21_Cidentifier = //State's vectored into symbol: "T"
+{21
+,0,0,0,0,0,(Reduce_tbl*)&S21rt_Cidentifier,0,0,0};
+struct S22rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S22rtd_Cidentifier S22rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs8_RUPPER_N_Z_}
+ }// end of reduce table
+};
+yacco2::State S22_Cidentifier = //State's vectored into symbol: "U"
+{22
+,0,0,0,0,0,(Reduce_tbl*)&S22rt_Cidentifier,0,0,0};
+struct S23rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S23rtd_Cidentifier S23rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs9_RUPPER_N_Z_}
+ }// end of reduce table
+};
+yacco2::State S23_Cidentifier = //State's vectored into symbol: "V"
+{23
+,0,0,0,0,0,(Reduce_tbl*)&S23rt_Cidentifier,0,0,0};
+struct S24rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S24rtd_Cidentifier S24rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs10_RUPPER_N_Z_}
+ }// end of reduce table
+};
+yacco2::State S24_Cidentifier = //State's vectored into symbol: "W"
+{24
+,0,0,0,0,0,(Reduce_tbl*)&S24rt_Cidentifier,0,0,0};
+struct S25rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S25rtd_Cidentifier S25rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs11_RUPPER_N_Z_}
+ }// end of reduce table
+};
+yacco2::State S25_Cidentifier = //State's vectored into symbol: "X"
+{25
+,0,0,0,0,0,(Reduce_tbl*)&S25rt_Cidentifier,0,0,0};
+struct S26rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S26rtd_Cidentifier S26rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs12_RUPPER_N_Z_}
+ }// end of reduce table
+};
+yacco2::State S26_Cidentifier = //State's vectored into symbol: "Y"
+{26
+,0,0,0,0,0,(Reduce_tbl*)&S26rt_Cidentifier,0,0,0};
+struct S27rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S27rtd_Cidentifier S27rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs13_RUPPER_N_Z_}
+ }// end of reduce table
+};
+yacco2::State S27_Cidentifier = //State's vectored into symbol: "Z"
+{27
+,0,0,0,0,0,(Reduce_tbl*)&S27rt_Cidentifier,0,0,0};
+struct S28rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S28rtd_Cidentifier S28rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs1_Rlower_a_m_}
+ }// end of reduce table
+};
+yacco2::State S28_Cidentifier = //State's vectored into symbol: "a"
+{28
+,0,0,0,0,0,(Reduce_tbl*)&S28rt_Cidentifier,0,0,0};
+struct S29rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S29rtd_Cidentifier S29rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs2_Rlower_a_m_}
+ }// end of reduce table
+};
+yacco2::State S29_Cidentifier = //State's vectored into symbol: "b"
+{29
+,0,0,0,0,0,(Reduce_tbl*)&S29rt_Cidentifier,0,0,0};
+struct S30rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S30rtd_Cidentifier S30rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs3_Rlower_a_m_}
+ }// end of reduce table
+};
+yacco2::State S30_Cidentifier = //State's vectored into symbol: "c"
+{30
+,0,0,0,0,0,(Reduce_tbl*)&S30rt_Cidentifier,0,0,0};
+struct S31rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S31rtd_Cidentifier S31rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs4_Rlower_a_m_}
+ }// end of reduce table
+};
+yacco2::State S31_Cidentifier = //State's vectored into symbol: "d"
+{31
+,0,0,0,0,0,(Reduce_tbl*)&S31rt_Cidentifier,0,0,0};
+struct S32rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S32rtd_Cidentifier S32rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs5_Rlower_a_m_}
+ }// end of reduce table
+};
+yacco2::State S32_Cidentifier = //State's vectored into symbol: "e"
+{32
+,0,0,0,0,0,(Reduce_tbl*)&S32rt_Cidentifier,0,0,0};
+struct S33rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S33rtd_Cidentifier S33rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs6_Rlower_a_m_}
+ }// end of reduce table
+};
+yacco2::State S33_Cidentifier = //State's vectored into symbol: "f"
+{33
+,0,0,0,0,0,(Reduce_tbl*)&S33rt_Cidentifier,0,0,0};
+struct S34rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S34rtd_Cidentifier S34rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs7_Rlower_a_m_}
+ }// end of reduce table
+};
+yacco2::State S34_Cidentifier = //State's vectored into symbol: "g"
+{34
+,0,0,0,0,0,(Reduce_tbl*)&S34rt_Cidentifier,0,0,0};
+struct S35rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S35rtd_Cidentifier S35rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs8_Rlower_a_m_}
+ }// end of reduce table
+};
+yacco2::State S35_Cidentifier = //State's vectored into symbol: "h"
+{35
+,0,0,0,0,0,(Reduce_tbl*)&S35rt_Cidentifier,0,0,0};
+struct S36rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S36rtd_Cidentifier S36rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs9_Rlower_a_m_}
+ }// end of reduce table
+};
+yacco2::State S36_Cidentifier = //State's vectored into symbol: "i"
+{36
+,0,0,0,0,0,(Reduce_tbl*)&S36rt_Cidentifier,0,0,0};
+struct S37rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S37rtd_Cidentifier S37rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs10_Rlower_a_m_}
+ }// end of reduce table
+};
+yacco2::State S37_Cidentifier = //State's vectored into symbol: "j"
+{37
+,0,0,0,0,0,(Reduce_tbl*)&S37rt_Cidentifier,0,0,0};
+struct S38rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S38rtd_Cidentifier S38rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs11_Rlower_a_m_}
+ }// end of reduce table
+};
+yacco2::State S38_Cidentifier = //State's vectored into symbol: "k"
+{38
+,0,0,0,0,0,(Reduce_tbl*)&S38rt_Cidentifier,0,0,0};
+struct S39rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S39rtd_Cidentifier S39rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs12_Rlower_a_m_}
+ }// end of reduce table
+};
+yacco2::State S39_Cidentifier = //State's vectored into symbol: "l"
+{39
+,0,0,0,0,0,(Reduce_tbl*)&S39rt_Cidentifier,0,0,0};
+struct S40rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S40rtd_Cidentifier S40rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs13_Rlower_a_m_}
+ }// end of reduce table
+};
+yacco2::State S40_Cidentifier = //State's vectored into symbol: "m"
+{40
+,0,0,0,0,0,(Reduce_tbl*)&S40rt_Cidentifier,0,0,0};
+struct S41rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S41rtd_Cidentifier S41rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs1_Rlower_n_z_}
+ }// end of reduce table
+};
+yacco2::State S41_Cidentifier = //State's vectored into symbol: "n"
+{41
+,0,0,0,0,0,(Reduce_tbl*)&S41rt_Cidentifier,0,0,0};
+struct S42rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S42rtd_Cidentifier S42rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs2_Rlower_n_z_}
+ }// end of reduce table
+};
+yacco2::State S42_Cidentifier = //State's vectored into symbol: "o"
+{42
+,0,0,0,0,0,(Reduce_tbl*)&S42rt_Cidentifier,0,0,0};
+struct S43rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S43rtd_Cidentifier S43rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs3_Rlower_n_z_}
+ }// end of reduce table
+};
+yacco2::State S43_Cidentifier = //State's vectored into symbol: "p"
+{43
+,0,0,0,0,0,(Reduce_tbl*)&S43rt_Cidentifier,0,0,0};
+struct S44rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S44rtd_Cidentifier S44rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs4_Rlower_n_z_}
+ }// end of reduce table
+};
+yacco2::State S44_Cidentifier = //State's vectored into symbol: "q"
+{44
+,0,0,0,0,0,(Reduce_tbl*)&S44rt_Cidentifier,0,0,0};
+struct S45rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S45rtd_Cidentifier S45rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs5_Rlower_n_z_}
+ }// end of reduce table
+};
+yacco2::State S45_Cidentifier = //State's vectored into symbol: "r"
+{45
+,0,0,0,0,0,(Reduce_tbl*)&S45rt_Cidentifier,0,0,0};
+struct S46rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S46rtd_Cidentifier S46rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs6_Rlower_n_z_}
+ }// end of reduce table
+};
+yacco2::State S46_Cidentifier = //State's vectored into symbol: "s"
+{46
+,0,0,0,0,0,(Reduce_tbl*)&S46rt_Cidentifier,0,0,0};
+struct S47rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S47rtd_Cidentifier S47rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs7_Rlower_n_z_}
+ }// end of reduce table
+};
+yacco2::State S47_Cidentifier = //State's vectored into symbol: "t"
+{47
+,0,0,0,0,0,(Reduce_tbl*)&S47rt_Cidentifier,0,0,0};
+struct S48rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S48rtd_Cidentifier S48rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs8_Rlower_n_z_}
+ }// end of reduce table
+};
+yacco2::State S48_Cidentifier = //State's vectored into symbol: "u"
+{48
+,0,0,0,0,0,(Reduce_tbl*)&S48rt_Cidentifier,0,0,0};
+struct S49rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S49rtd_Cidentifier S49rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs9_Rlower_n_z_}
+ }// end of reduce table
+};
+yacco2::State S49_Cidentifier = //State's vectored into symbol: "v"
+{49
+,0,0,0,0,0,(Reduce_tbl*)&S49rt_Cidentifier,0,0,0};
+struct S50rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S50rtd_Cidentifier S50rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs10_Rlower_n_z_}
+ }// end of reduce table
+};
+yacco2::State S50_Cidentifier = //State's vectored into symbol: "w"
+{50
+,0,0,0,0,0,(Reduce_tbl*)&S50rt_Cidentifier,0,0,0};
+struct S51rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S51rtd_Cidentifier S51rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs11_Rlower_n_z_}
+ }// end of reduce table
+};
+yacco2::State S51_Cidentifier = //State's vectored into symbol: "x"
+{51
+,0,0,0,0,0,(Reduce_tbl*)&S51rt_Cidentifier,0,0,0};
+struct S52rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S52rtd_Cidentifier S52rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs12_Rlower_n_z_}
+ }// end of reduce table
+};
+yacco2::State S52_Cidentifier = //State's vectored into symbol: "y"
+{52
+,0,0,0,0,0,(Reduce_tbl*)&S52rt_Cidentifier,0,0,0};
+struct S53rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S53rtd_Cidentifier S53rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs13_Rlower_n_z_}
+ }// end of reduce table
+};
+yacco2::State S53_Cidentifier = //State's vectored into symbol: "z"
+{53
+,0,0,0,0,0,(Reduce_tbl*)&S53rt_Cidentifier,0,0,0};
+struct S54std_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S54std_Cidentifier S54st_Cidentifier = {
+ 2
+ ,
+ {// start of table
+ {6,(State*)&S55_Cidentifier} // shift sym: LR1_all_shift_operator
+ ,{570,(State*)&S56_Cidentifier} // shift sym: Rid_suffix
+ }// end of shift table
+};
+yacco2::Shift_entry S54ase_Cidentifier = {6,(State*)&S55_Cidentifier};
+struct S54rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S54rtd_Cidentifier S54rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs1_Ridentifier_}
+ }// end of reduce table
+};
+yacco2::State S54_Cidentifier = //State's vectored into symbol: "Rstart_char"
+{54
+,0,(Shift_entry*)&S54ase_Cidentifier
+,0,0,(Shift_tbl*)&S54st_Cidentifier,(Reduce_tbl*)&S54rt_Cidentifier,0,0,0};
+struct S55rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S55rtd_Cidentifier S55rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs1_Rid_suffix_}
+ }// end of reduce table
+};
+yacco2::State S55_Cidentifier = //State's vectored into symbol: "|+|"
+{55
+,0,0,0,0,0,(Reduce_tbl*)&S55rt_Cidentifier,0,0,0};
+struct S56rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S56rtd_Cidentifier S56rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs2_Ridentifier_}
+ }// end of reduce table
+};
+yacco2::State S56_Cidentifier = //State's vectored into symbol: "Rid_suffix"
+{56
+,0,0,0,0,0,(Reduce_tbl*)&S56rt_Cidentifier,0,0,0};
+struct S57rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S57rtd_Cidentifier S57rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs1_Rstart_char_}
+ }// end of reduce table
+};
+yacco2::State S57_Cidentifier = //State's vectored into symbol: "RUPPER_A_M"
+{57
+,0,0,0,0,0,(Reduce_tbl*)&S57rt_Cidentifier,0,0,0};
+struct S58rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S58rtd_Cidentifier S58rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs2_Rstart_char_}
+ }// end of reduce table
+};
+yacco2::State S58_Cidentifier = //State's vectored into symbol: "RUPPER_N_Z"
+{58
+,0,0,0,0,0,(Reduce_tbl*)&S58rt_Cidentifier,0,0,0};
+struct S59rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S59rtd_Cidentifier S59rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs3_Rstart_char_}
+ }// end of reduce table
+};
+yacco2::State S59_Cidentifier = //State's vectored into symbol: "Rlower_a_m"
+{59
+,0,0,0,0,0,(Reduce_tbl*)&S59rt_Cidentifier,0,0,0};
+struct S60rtd_Cidentifier{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S60rtd_Cidentifier S60rt_Cidentifier = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cidentifier,Cidentifier::rhs4_Rstart_char_}
+ }// end of reduce table
+};
+yacco2::State S60_Cidentifier = //State's vectored into symbol: "Rlower_n_z"
+{60
+,0,0,0,0,0,(Reduce_tbl*)&S60rt_Cidentifier,0,0,0};
diff --git a/web/yacco2/compiler/grammars/int_no.cpp b/web/yacco2/compiler/grammars/int_no.cpp
new file mode 100644
index 0000000000..2f781b8a96
--- /dev/null
+++ b/web/yacco2/compiler/grammars/int_no.cpp
@@ -0,0 +1,108 @@
+/*
+ File: int_no.cpp
+ Date and Time: Fri Jan 30 18:55:13 2015
+*/
+#include "int_no.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_int_no;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 3;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+}
+ Cint_no::
+ Cint_no()
+ :yacco2::CAbs_fsm
+ ("int_no.lex"
+ ,"1.0"
+ ,"3 mar 2003"
+ ,false
+ ,"Integer number lexer."
+ ,"Fri Jan 30 18:55:13 2015 "
+ ,S1_Cint_no){
+
+ ddd_idx_ = 0;
+ ddd_[ddd_idx_] = 0;
+
+ }
+
+Cint_no::~Cint_no(){
+
+ for(int x = 0;x < 3;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cint_no::failed(){
+ return false;
+ }
+ void Cint_no::op(){
+ ddd_idx_ = 0;
+ ddd_[ddd_idx_] = 0;
+
+}
+int Cint_no::rhs_to_rules_mapping_[14] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,2 // subrule 4 for rule 3
+ ,2 // subrule 5 for rule 3
+ ,2 // subrule 6 for rule 3
+ ,2 // subrule 7 for rule 3
+ ,2 // subrule 8 for rule 3
+ ,2 // subrule 9 for rule 3
+ ,2 // subrule 10 for rule 3
+ ,2 // subrule 11 for rule 3
+ ,2 // subrule 12 for rule 3
+ ,2 // subrule 13 for rule 3
+};
+Rint_no::Rint_no(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rint_no",0,Cint_no::R_Rint_no_,P,false,false){
+}
+
+void Rint_no::sr1(){
+
+ Cint_no* fsm = (Cint_no*)rule_info__.parser__->fsm_tbl__;
+ long lno = strtol(fsm->ddd_,0,10);
+ if (errno == ERANGE){
+ Err_bad_int_no* sym = new Err_bad_int_no;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ }else{
+ T_int_no* sym = new T_int_no(lno);
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ }
+
+}
+
+Rdec_no::Rdec_no(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rdec_no",0,Cint_no::R_Rdec_no_,P,false,false){
+}
+
+Rdigit::Rdigit(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rdigit",0,Cint_no::R_Rdigit_,P,false,false){
+}
+
+void Rdigit::op(){
+ sstrace_rulesss
+
+ Cint_no* fsm = (Cint_no*)rule_info__.parser__->fsm_tbl__;
+ size_t pos = rule_info__.parser__->parse_stack__.top_sub__ - 1;
+ CAbs_lr1_sym* sym = rule_info__.parser__->get_spec_stack_token(pos);
+ fsm->ddd_[fsm->ddd_idx_] = sym->id__[0];
+ ++fsm->ddd_idx_;
+ fsm->ddd_[fsm->ddd_idx_] = 0;
+
+}
diff --git a/web/yacco2/compiler/grammars/int_no.fsc b/web/yacco2/compiler/grammars/int_no.fsc
new file mode 100644
index 0000000000..df2e5da66d
--- /dev/null
+++ b/web/yacco2/compiler/grammars/int_no.fsc
@@ -0,0 +1,29 @@
+/*
+ File: int_no.fsc
+ Date and Time: Fri Jan 30 18:55:13 2015
+*/
+transitive n
+grammar-name "int_no"
+name-space "NS_int_no"
+thread-name "TH_int_no"
+monolithic n
+file-name "int_no.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 10
+ raw_0
+ raw_1
+ raw_2
+ raw_3
+ raw_4
+ raw_5
+ raw_6
+ raw_7
+ raw_8
+ raw_9
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"Integer number lexer."
diff --git a/web/yacco2/compiler/grammars/int_no.h b/web/yacco2/compiler/grammars/int_no.h
new file mode 100644
index 0000000000..acd03dcd82
--- /dev/null
+++ b/web/yacco2/compiler/grammars/int_no.h
@@ -0,0 +1,92 @@
+/*
+ File: int_no.h
+ Date and Time: Fri Jan 30 18:55:13 2015
+*/
+#ifndef __int_no_h__
+#define __int_no_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include <stdlib.h>
+#include <errno.h>
+#include <limits.h>
+
+extern yacco2::Thread_entry ITH_int_no;
+
+extern yacco2::State S1_Cint_no;
+namespace NS_int_no {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_int_no(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_int_no(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[3];
+};
+class Cint_no: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rint_no_ = 569//start_of_rule_list + 0
+ ,rhs1_Rint_no_ = 1
+ ,R_Rdec_no_ = 570//start_of_rule_list + 2
+ ,rhs1_Rdec_no_ = 2
+ ,rhs2_Rdec_no_ = 3
+ ,R_Rdigit_ = 571//start_of_rule_list + 4
+ ,rhs1_Rdigit_ = 4
+ ,rhs2_Rdigit_ = 5
+ ,rhs3_Rdigit_ = 6
+ ,rhs4_Rdigit_ = 7
+ ,rhs5_Rdigit_ = 8
+ ,rhs6_Rdigit_ = 9
+ ,rhs7_Rdigit_ = 10
+ ,rhs8_Rdigit_ = 11
+ ,rhs9_Rdigit_ = 12
+ ,rhs10_Rdigit_ = 13
+ };
+ //no of la sets = 2
+ //no of states = 15
+ Cint_no();
+ ~Cint_no();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[14];
+
+ public:
+ char ddd_[1024*32];
+ int ddd_idx_;
+
+ };
+struct Rint_no;
+struct Rdec_no;
+struct Rdigit;
+struct Rint_no:public yacco2::CAbs_lr1_sym {
+ Rint_no(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rdec_no:public yacco2::CAbs_lr1_sym {
+ Rdec_no(yacco2::Parser* P);
+ public:
+};
+
+struct Rdigit:public yacco2::CAbs_lr1_sym {
+ Rdigit(yacco2::Parser* P);
+ void op();
+ public:
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/int_no.lex b/web/yacco2/compiler/grammars/int_no.lex
new file mode 100644
index 0000000000..ae21f82416
--- /dev/null
+++ b/web/yacco2/compiler/grammars/int_no.lex
@@ -0,0 +1,92 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: int_no.lex
+Dates: 3-mar-2003
+Purpose: recognize long integer
+Returned: T_int_no
+ Err_bad_int_no
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |int_no| thread.\fbreak
+Recognize long integer.
+Does a conversion for validity only.
+Data returned in text form.
+@/
+fsm
+(fsm-id "int_no.lex",fsm-filename int_no,fsm-namespace NS_int_no
+,fsm-class Cint_no{
+ user-prefix-declaration
+#include <stdlib.h>
+#include <errno.h>
+#include <limits.h>
+ ***
+ user-declaration
+ public:
+ char ddd_[1024*32];
+ int ddd_idx_;
+ ***
+ constructor
+ ddd_idx_ = 0;
+ ddd_[ddd_idx_] = 0;
+ ***
+ op
+ ddd_idx_ = 0;
+ ddd_[ddd_idx_] = 0;
+ ***
+}
+,fsm-version "1.0",fsm-date "3 mar 2003",fsm-debug "false"
+,fsm-comments "Integer number lexer.")
+parallel-parser
+(
+ parallel-thread-function
+ TH_int_no
+ ***
+ parallel-la-boundary
+ eolr
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rint_no (){
+ -> Rdec_no |.| {
+ op
+ Cint_no* fsm = (Cint_no*)rule_info__.parser__->fsm_tbl__;
+ long lno = strtol(fsm->ddd_,0,10);
+ if (errno == ERANGE){
+ Err_bad_int_no* sym = new Err_bad_int_no;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ }else{
+ T_int_no* sym = new T_int_no(lno);
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ }
+ ***
+ }
+}
+
+Rdec_no (){
+ -> Rdigit
+ -> Rdec_no Rdigit
+}
+
+Rdigit (
+lhs{
+ op
+ Cint_no* fsm = (Cint_no*)rule_info__.parser__->fsm_tbl__;
+ size_t pos = rule_info__.parser__->parse_stack__.top_sub__ - 1;
+ CAbs_lr1_sym* sym = rule_info__.parser__->get_spec_stack_token(pos);
+ fsm->ddd_[fsm->ddd_idx_] = sym->id__[0];
+ ++fsm->ddd_idx_;
+ fsm->ddd_[fsm->ddd_idx_] = 0;
+ ***
+ }
+){
+ -> 0 -> 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8 -> 9
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/int_nosym.cpp b/web/yacco2/compiler/grammars/int_nosym.cpp
new file mode 100644
index 0000000000..a3e2c16387
--- /dev/null
+++ b/web/yacco2/compiler/grammars/int_nosym.cpp
@@ -0,0 +1,241 @@
+/*
+ File: int_nosym.cpp
+ Date and Time: Fri Jan 30 18:55:13 2015
+*/
+#include "int_no.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_int_no;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_int_no::TH_int_no(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_int_no;
+ NS_int_no::Cint_no Cint_no_;// parallel-parser's parse table
+#define ssPARSE_TABLE Cint_no_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_int_no::PROC_TH_int_no(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_int_no";
+ static bool one_time(false);
+ static NS_int_no::Cint_no* NS_int_no_Cint_no_(0);// parallel-parser's fsm table
+ static Parser* NS_int_no_Cint_no_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_int_no_Cint_no_ = new NS_int_no::Cint_no();// parallel-parser's fsm table
+ NS_int_no_Cint_no_parser = new Parser(*NS_int_no_Cint_no_,Caller_pp);
+ }
+ proc_parser = NS_int_no_Cint_no_parser;
+#include "wproc_pp_core.h"
+}
+void
+Cint_no::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rint_no_:{
+ Rint_no* sym;
+ if(re->rule_ == 0){
+ sym = new Rint_no(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rint_no*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rdec_no_:{
+ Rdec_no* sym;
+ if(re->rule_ == 0){
+ sym = new Rdec_no(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdec_no*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rdec_no_:{
+ Rdec_no* sym;
+ if(re->rule_ == 0){
+ sym = new Rdec_no(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdec_no*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rdigit_:{
+ Rdigit* sym;
+ if(re->rule_ == 0){
+ sym = new Rdigit(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdigit*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs2_Rdigit_:{
+ Rdigit* sym;
+ if(re->rule_ == 0){
+ sym = new Rdigit(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdigit*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs3_Rdigit_:{
+ Rdigit* sym;
+ if(re->rule_ == 0){
+ sym = new Rdigit(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdigit*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs4_Rdigit_:{
+ Rdigit* sym;
+ if(re->rule_ == 0){
+ sym = new Rdigit(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdigit*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs5_Rdigit_:{
+ Rdigit* sym;
+ if(re->rule_ == 0){
+ sym = new Rdigit(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdigit*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs6_Rdigit_:{
+ Rdigit* sym;
+ if(re->rule_ == 0){
+ sym = new Rdigit(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdigit*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs7_Rdigit_:{
+ Rdigit* sym;
+ if(re->rule_ == 0){
+ sym = new Rdigit(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdigit*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs8_Rdigit_:{
+ Rdigit* sym;
+ if(re->rule_ == 0){
+ sym = new Rdigit(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdigit*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs9_Rdigit_:{
+ Rdigit* sym;
+ if(re->rule_ == 0){
+ sym = new Rdigit(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdigit*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs10_Rdigit_:{
+ Rdigit* sym;
+ if(re->rule_ == 0){
+ sym = new Rdigit(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdigit*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/int_notbl.cpp b/web/yacco2/compiler/grammars/int_notbl.cpp
new file mode 100644
index 0000000000..884a4aeba3
--- /dev/null
+++ b/web/yacco2/compiler/grammars/int_notbl.cpp
@@ -0,0 +1,285 @@
+/*
+ File: int_notbl.cpp
+ Date and Time: Fri Jan 30 18:55:13 2015
+*/
+#include "int_no.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_int_no;// grammar's ns
+// first set terminals
+// LR1_invisible_shift_operator
+// raw_0
+// raw_1
+// raw_2
+// raw_3
+// raw_4
+// raw_5
+// raw_6
+// raw_7
+// raw_8
+// raw_9
+yacco2::UCHAR LA1_Cint_no[] ={
+3
+,0,32
+,7,255
+,8,3
+};
+// LR1_eolr
+yacco2::UCHAR LA2_Cint_no[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Cint_no;
+extern yacco2::State S2_Cint_no;
+extern yacco2::State S3_Cint_no;
+extern yacco2::State S4_Cint_no;
+extern yacco2::State S5_Cint_no;
+extern yacco2::State S6_Cint_no;
+extern yacco2::State S7_Cint_no;
+extern yacco2::State S8_Cint_no;
+extern yacco2::State S9_Cint_no;
+extern yacco2::State S10_Cint_no;
+extern yacco2::State S11_Cint_no;
+extern yacco2::State S12_Cint_no;
+extern yacco2::State S13_Cint_no;
+extern yacco2::State S14_Cint_no;
+extern yacco2::State S15_Cint_no;
+struct S1std_Cint_no{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[13];
+};
+S1std_Cint_no S1st_Cint_no = {
+ 13
+ ,
+ {// start of table
+ {56,(State*)&S2_Cint_no} // shift sym: raw_0
+ ,{57,(State*)&S3_Cint_no} // shift sym: raw_1
+ ,{58,(State*)&S4_Cint_no} // shift sym: raw_2
+ ,{59,(State*)&S5_Cint_no} // shift sym: raw_3
+ ,{60,(State*)&S6_Cint_no} // shift sym: raw_4
+ ,{61,(State*)&S7_Cint_no} // shift sym: raw_5
+ ,{62,(State*)&S8_Cint_no} // shift sym: raw_6
+ ,{63,(State*)&S9_Cint_no} // shift sym: raw_7
+ ,{64,(State*)&S10_Cint_no} // shift sym: raw_8
+ ,{65,(State*)&S11_Cint_no} // shift sym: raw_9
+ ,{569,(State*)&S1_Cint_no} // accept sym: Rint_no
+ ,{570,(State*)&S12_Cint_no} // shift sym: Rdec_no
+ ,{571,(State*)&S15_Cint_no} // shift sym: Rdigit
+ }// end of shift table
+};
+yacco2::State S1_Cint_no = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Cint_no,0,0,0,0};
+struct S2rtd_Cint_no{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Cint_no S2rt_Cint_no = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cint_no,Cint_no::rhs1_Rdigit_}
+ }// end of reduce table
+};
+yacco2::State S2_Cint_no = //State's vectored into symbol: "0"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Cint_no,0,0,0};
+struct S3rtd_Cint_no{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Cint_no S3rt_Cint_no = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cint_no,Cint_no::rhs2_Rdigit_}
+ }// end of reduce table
+};
+yacco2::State S3_Cint_no = //State's vectored into symbol: "1"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_Cint_no,0,0,0};
+struct S4rtd_Cint_no{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Cint_no S4rt_Cint_no = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cint_no,Cint_no::rhs3_Rdigit_}
+ }// end of reduce table
+};
+yacco2::State S4_Cint_no = //State's vectored into symbol: "2"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Cint_no,0,0,0};
+struct S5rtd_Cint_no{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Cint_no S5rt_Cint_no = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cint_no,Cint_no::rhs4_Rdigit_}
+ }// end of reduce table
+};
+yacco2::State S5_Cint_no = //State's vectored into symbol: "3"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Cint_no,0,0,0};
+struct S6rtd_Cint_no{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Cint_no S6rt_Cint_no = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cint_no,Cint_no::rhs5_Rdigit_}
+ }// end of reduce table
+};
+yacco2::State S6_Cint_no = //State's vectored into symbol: "4"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Cint_no,0,0,0};
+struct S7rtd_Cint_no{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Cint_no S7rt_Cint_no = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cint_no,Cint_no::rhs6_Rdigit_}
+ }// end of reduce table
+};
+yacco2::State S7_Cint_no = //State's vectored into symbol: "5"
+{7
+,0,0,0,0,0,(Reduce_tbl*)&S7rt_Cint_no,0,0,0};
+struct S8rtd_Cint_no{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S8rtd_Cint_no S8rt_Cint_no = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cint_no,Cint_no::rhs7_Rdigit_}
+ }// end of reduce table
+};
+yacco2::State S8_Cint_no = //State's vectored into symbol: "6"
+{8
+,0,0,0,0,0,(Reduce_tbl*)&S8rt_Cint_no,0,0,0};
+struct S9rtd_Cint_no{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Cint_no S9rt_Cint_no = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cint_no,Cint_no::rhs8_Rdigit_}
+ }// end of reduce table
+};
+yacco2::State S9_Cint_no = //State's vectored into symbol: "7"
+{9
+,0,0,0,0,0,(Reduce_tbl*)&S9rt_Cint_no,0,0,0};
+struct S10rtd_Cint_no{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S10rtd_Cint_no S10rt_Cint_no = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cint_no,Cint_no::rhs9_Rdigit_}
+ }// end of reduce table
+};
+yacco2::State S10_Cint_no = //State's vectored into symbol: "8"
+{10
+,0,0,0,0,0,(Reduce_tbl*)&S10rt_Cint_no,0,0,0};
+struct S11rtd_Cint_no{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Cint_no S11rt_Cint_no = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cint_no,Cint_no::rhs10_Rdigit_}
+ }// end of reduce table
+};
+yacco2::State S11_Cint_no = //State's vectored into symbol: "9"
+{11
+,0,0,0,0,0,(Reduce_tbl*)&S11rt_Cint_no,0,0,0};
+struct S12std_Cint_no{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[12];
+};
+S12std_Cint_no S12st_Cint_no = {
+ 12
+ ,
+ {// start of table
+ {5,(State*)&S13_Cint_no} // shift sym: LR1_invisible_shift_operator
+ ,{56,(State*)&S2_Cint_no} // shift sym: raw_0
+ ,{57,(State*)&S3_Cint_no} // shift sym: raw_1
+ ,{58,(State*)&S4_Cint_no} // shift sym: raw_2
+ ,{59,(State*)&S5_Cint_no} // shift sym: raw_3
+ ,{60,(State*)&S6_Cint_no} // shift sym: raw_4
+ ,{61,(State*)&S7_Cint_no} // shift sym: raw_5
+ ,{62,(State*)&S8_Cint_no} // shift sym: raw_6
+ ,{63,(State*)&S9_Cint_no} // shift sym: raw_7
+ ,{64,(State*)&S10_Cint_no} // shift sym: raw_8
+ ,{65,(State*)&S11_Cint_no} // shift sym: raw_9
+ ,{571,(State*)&S14_Cint_no} // shift sym: Rdigit
+ }// end of shift table
+};
+yacco2::Shift_entry S12ise_Cint_no = {5,(State*)&S13_Cint_no};
+yacco2::State S12_Cint_no = //State's vectored into symbol: "Rdec_no"
+{12
+,0,0,(Shift_entry*)&S12ise_Cint_no
+,0,(Shift_tbl*)&S12st_Cint_no,0,0,0,0};
+struct S13rtd_Cint_no{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S13rtd_Cint_no S13rt_Cint_no = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cint_no,Cint_no::rhs1_Rint_no_}
+ }// end of reduce table
+};
+yacco2::State S13_Cint_no = //State's vectored into symbol: "|.|"
+{13
+,0,0,0,0,0,(Reduce_tbl*)&S13rt_Cint_no,0,0,0};
+struct S14rtd_Cint_no{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S14rtd_Cint_no S14rt_Cint_no = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cint_no,Cint_no::rhs2_Rdec_no_}
+ }// end of reduce table
+};
+yacco2::State S14_Cint_no = //State's vectored into symbol: "Rdigit"
+{14
+,0,0,0,0,0,(Reduce_tbl*)&S14rt_Cint_no,0,0,0};
+struct S15rtd_Cint_no{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S15rtd_Cint_no S15rt_Cint_no = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cint_no,Cint_no::rhs1_Rdec_no_}
+ }// end of reduce table
+};
+yacco2::State S15_Cint_no = //State's vectored into symbol: "Rdigit"
+{15
+,0,0,0,0,0,(Reduce_tbl*)&S15rt_Cint_no,0,0,0};
diff --git a/web/yacco2/compiler/grammars/la_expr.cpp b/web/yacco2/compiler/grammars/la_expr.cpp
new file mode 100644
index 0000000000..0bf85416b8
--- /dev/null
+++ b/web/yacco2/compiler/grammars/la_expr.cpp
@@ -0,0 +1,447 @@
+/*
+ File: la_expr.cpp
+ Date and Time: Fri Jan 30 18:55:13 2015
+*/
+#include "la_expr.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_la_expr;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 6;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[4] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[5] = new Per_rule_s_reuse_table();
+}
+ Cla_expr::
+ Cla_expr()
+ :yacco2::CAbs_fsm
+ ("la_expr.lex"
+ ,"1.0"
+ ,"24 mar 2004"
+ ,false
+ ,"Parse the lookahead expression after chaffe removed."
+ ,"Fri Jan 30 18:55:13 2015 "
+ ,S1_Cla_expr){
+
+ ddd_idx_ = 0;
+ ddd_[ddd_idx_] = 0;
+ gps_for_error_reporting_ = 0;
+
+ }
+
+Cla_expr::~Cla_expr(){
+
+ for(int x = 0;x < 6;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cla_expr::failed(){
+ return false;
+ }
+ void Cla_expr::op(){
+ ddd_idx_ = 0;
+ ddd_[ddd_idx_] = 0;
+ gps_for_error_reporting_ = 0;
+
+}
+int Cla_expr::rhs_to_rules_mapping_[12] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,1 // subrule 4 for rule 2
+ ,1 // subrule 5 for rule 2
+ ,2 // subrule 6 for rule 3
+ ,3 // subrule 7 for rule 4
+ ,3 // subrule 8 for rule 4
+ ,3 // subrule 9 for rule 4
+ ,4 // subrule 10 for rule 5
+ ,5 // subrule 11 for rule 6
+};
+
+ void Cla_expr::copy_str_into_buffer(std::string* Str){
+ const char* y = Str->c_str();
+ int x(0);
+ for(;y[x]!=0;++x,++ddd_idx_)ddd_[ddd_idx_] = y[x];
+ ddd_[ddd_idx_] = 0;
+ }
+ void Cla_expr::copy_kstr_into_buffer(const char* Str){
+ const char* y = Str;
+ int x(0);
+ for(;y[x]!=0;++x,++ddd_idx_)ddd_[ddd_idx_] = y[x];
+ ddd_[ddd_idx_] = 0;
+ }
+ void Cla_expr::unionize_sets(T_IN_STBL_SET_type* Add_to_set
+ ,T_IN_STBL_SET_type* A_set,T_IN_STBL_SET_type* B_set){
+ if(A_set->find(STBL_T_ITEMS[LR1_Eolr]) !=A_set->end()){
+ Add_to_set->insert(A_set->begin(),A_set->end());
+ return;
+ }
+ if(B_set->find(STBL_T_ITEMS[LR1_Eolr]) !=B_set->end()){
+ Add_to_set->insert(B_set->begin(),B_set->end());
+ return;
+ }
+ Add_to_set->insert(A_set->begin(),A_set->end());
+ Add_to_set->insert(B_set->begin(),B_set->end());
+ }
+ void Cla_expr::explode_eolr(T_IN_STBL_SET_type* A_set){
+ A_set->clear();
+ T_enum_phrase* e_p = O2_T_ENUM_PHASE;
+ A_set->insert(STBL_T_ITEMS[LR1_Eog]);// eog
+
+ int tt = e_p->total_enumerate();
+ for(int x=8;x<tt;++x){// balance of meta Ts bypassed. Start from RC
+ A_set->insert(STBL_T_ITEMS[x]);
+ }
+ }
+ void Cla_expr::set_differences(T_IN_STBL_SET_type* Add_to_set
+ ,T_IN_STBL_SET_type* A_set
+ ,T_IN_STBL_SET_type* B_set){
+ if(A_set->find(STBL_T_ITEMS[LR1_Eolr]) !=A_set->end()){
+ explode_eolr(A_set);
+ }
+ if(B_set->find(STBL_T_ITEMS[LR1_Eolr]) !=B_set->end()){
+ explode_eolr(B_set);
+ }
+ if(A_set->empty() == true){
+ CAbs_lr1_sym* sym = new Err_empty_set_removal_in_la_expr;
+ sym->set_rc(*gps_for_error_reporting_,__FILE__,__LINE__);
+ parser__->set_stop_parse(true);
+ ADD_TOKEN_TO_ERROR_QUEUE_FSM(*sym);
+ parser__->set_abort_parse(true);
+ }
+
+ T_IN_STBL_SET_ITER_type Ai = A_set->begin();
+ T_IN_STBL_SET_ITER_type Aie = A_set->end();
+ T_IN_STBL_SET_ITER_type Bie = B_set->end();
+
+ T_IN_STBL_SET_ITER_type AinBi;
+ for(;Ai != Aie;++Ai){
+ AinBi = B_set->find(*Ai);
+ if(AinBi != Bie){
+ continue; // bypass
+ }
+ Add_to_set->insert(*Ai);
+ }
+ }
+ void Cla_expr::add_element_to_set(T_in_stbl* Elem,T_IN_STBL_SET_type* Set_to_add_to){
+ if(Set_to_add_to->find(STBL_T_ITEMS[LR1_Eolr]) != Set_to_add_to->end()) return;
+ if(Elem == STBL_T_ITEMS[LR1_Eolr]){
+ Set_to_add_to->clear();
+ }
+ Set_to_add_to->insert(Elem);
+ }
+
+ void Cla_expr::add_rule_to_set
+ (NS_yacco2_terminals::rule_def* Rule
+ ,T_IN_STBL_SET_type* Set_to_add_to
+ ,std::set<int>* Rules_already_processed){
+ using namespace NS_yacco2_terminals;
+ int r_id = Rule->enum_id();
+ if(Rules_already_processed->find(r_id) !=Rules_already_processed->end()) return;
+ Rules_already_processed->insert(r_id);
+ AST* r_t = Rule->rule_s_tree();
+ set<yacco2::INT> elem_filter;
+ elem_filter.insert(NS_yacco2_T_enum::T_Enum::T_T_subrule_def_);
+ tok_can_ast_functor ast_functor;
+ ast_prefix_wbreadth_only pwbo(*r_t,&ast_functor,&elem_filter,true);
+ tok_can<AST*> tok_can(pwbo);
+ for (int xxx = 0;tok_can.operator[](xxx) != yacco2::PTR_LR1_eog__;++xxx){
+ T_subrule_def* sr_def = (T_subrule_def*)tok_can.operator[](xxx);
+ vector<CAbs_lr1_sym*>* elems_list = sr_def->subrule_elems();
+ CAbs_lr1_sym* sym = (*elems_list)[0];
+ int id = sym->enumerated_id__;
+ switch(id){
+ case NS_yacco2_T_enum::T_Enum::T_T_eosubrule_: break;
+ case NS_yacco2_T_enum::T_Enum::T_refered_T_: {
+ refered_T* rt = (refered_T*)sym;
+ add_element_to_set(rt->t_in_stbl(),Set_to_add_to);
+ break;
+ }
+ case NS_yacco2_T_enum::T_Enum::T_refered_rule_: {
+ refered_rule* rt = (refered_rule*)sym;
+ rule_def* r = rt->Rule_in_stbl()->r_def();
+ add_rule_to_set(r,Set_to_add_to,Rules_already_processed);
+ break;
+ }
+ default:{
+ }
+ }
+
+ }
+ }
+
+Rla_expr::Rla_expr(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rla_expr",0,Cla_expr::R_Rla_expr_,P,false,false){
+}
+
+void Rla_expr::sr1(){
+ struct SF{
+ Re* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ LR1_eog* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cla_expr* fsm = (Cla_expr*)rule_info__.parser__->fsm_tbl__;
+ if(sf->p1__->fset_.empty() == true){
+ CAbs_lr1_sym* sym = new Err_la_expr_calc_empty_set;
+ sym->set_rc(*fsm->gps_for_error_reporting_,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_abort_parse(true);
+ }
+ T_parallel_parser_phrase* la_ph = O2_PP_PHASE;
+ T_parallel_la_boundary* la = la_ph->la_bndry();
+ la->la_first_set(sf->p1__->fset_);
+ la->cweb_la_srce_expr((const char*)&fsm->ddd_);
+
+}
+
+Re::Re(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Re",0,Cla_expr::R_Re_,P,false,false){
+}
+
+void Re::ctor(){
+
+ fset_.clear();
+
+}
+void Re::sr1(){
+ struct SF{
+ Re* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Rplus* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ Rt* p3__;
+ State* s3__;
+ bool abort3__;
+ Rule_s_reuse_entry* rule_s_reuse_entry3__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(3);
+
+ Cla_expr* fsm = (Cla_expr*)rule_info__.parser__->fsm_tbl__;
+ fset_.clear();
+ fsm->unionize_sets(&fset_,&sf->p1__->fset_,&sf->p3__->fset_);
+
+}
+
+void Re::sr2(){
+ struct SF{
+ Re* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Rminus* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ Rt* p3__;
+ State* s3__;
+ bool abort3__;
+ Rule_s_reuse_entry* rule_s_reuse_entry3__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(3);
+
+ Cla_expr* fsm = (Cla_expr*)rule_info__.parser__->fsm_tbl__;
+ fset_.clear();
+ fsm->set_differences(&fset_,&sf->p1__->fset_,&sf->p3__->fset_);
+
+}
+
+void Re::sr4(){
+ struct SF{
+ Rt* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ fset_.clear();
+ fset_.insert(sf->p1__->fset_.begin(),sf->p1__->fset_.end());
+
+}
+
+Rerr_bad_oper::Rerr_bad_oper(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rerr_bad_oper",0,Cla_expr::R_Rerr_bad_oper_,P,false,false){
+}
+
+void Rerr_bad_oper::sr1(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_bad_operator_in_la_expr;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_abort_parse(true);
+
+}
+
+Rt::Rt(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rt",0,Cla_expr::R_Rt_,P,false,false){
+}
+
+void Rt::ctor(){
+
+ fset_.clear();
+
+}
+void Rt::sr1(){
+ struct SF{
+ T_in_stbl* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ fset_.clear();
+ using namespace NS_yacco2_terminals;
+ Cla_expr* fsm = (Cla_expr*)rule_info__.parser__->fsm_tbl__;
+ T_terminal_def* dt = sf->p1__->t_def();
+ fsm->copy_kstr_into_buffer(" ");
+ char xlate_file[Max_cweb_item_size];
+ XLATE_SYMBOLS_FOR_cweave(dt->t_name()->c_str(),xlate_file);
+ fsm->copy_kstr_into_buffer(xlate_file);
+ fset_.clear();
+ fset_.insert(sf->p1__);
+
+}
+
+void Rt::sr2(){
+ struct SF{
+ rule_in_stbl* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ fset_.clear();
+ using namespace NS_yacco2_terminals;
+ Cla_expr* fsm = (Cla_expr*)rule_info__.parser__->fsm_tbl__;
+ rule_def* rt = sf->p1__->r_def();
+ fsm->copy_kstr_into_buffer(" ");
+ char xlate_file[Max_cweb_item_size];
+ XLATE_SYMBOLS_FOR_cweave(rt->rule_name()->c_str(),xlate_file);
+ fsm->copy_kstr_into_buffer(xlate_file);
+
+ std::set<int> already_processed_rules;
+ fsm->add_rule_to_set(rt,&fset_,&already_processed_rules);
+
+}
+
+void Rt::sr3(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ fset_.clear();
+ using namespace NS_yacco2_terminals;
+ int id = sf->p1__->enumerated_id__;
+ switch(id){
+ case T_Enum::T_LR1_all_shift_operator_:{
+ Cla_expr* fsm = (Cla_expr*)rule_info__.parser__->fsm_tbl__;
+ fsm->copy_kstr_into_buffer(" $|+|$");
+ fsm->add_element_to_set(STBL_T_ITEMS[id],&fset_);
+ break;
+ }
+ case T_Enum::T_LR1_invisible_shift_operator_:{
+ Cla_expr* fsm = (Cla_expr*)rule_info__.parser__->fsm_tbl__;
+ fsm->copy_kstr_into_buffer(" $|.|$");
+ fsm->add_element_to_set(STBL_T_ITEMS[id],&fset_);
+ break;
+ }
+ case T_Enum::T_LR1_parallel_operator_:{
+ Cla_expr* fsm = (Cla_expr*)rule_info__.parser__->fsm_tbl__;
+ fsm->copy_kstr_into_buffer(" $|||$");
+ fsm->add_element_to_set(STBL_T_ITEMS[id],&fset_);
+ break;
+ }
+ case T_Enum::T_LR1_fset_transience_operator_:{
+ Cla_expr* fsm = (Cla_expr*)rule_info__.parser__->fsm_tbl__;
+ fsm->copy_kstr_into_buffer(" $|t|$");
+ fsm->add_element_to_set(STBL_T_ITEMS[id],&fset_);
+ break;
+ }
+
+ case T_Enum::T_LR1_reduce_operator_:{
+ Cla_expr* fsm = (Cla_expr*)rule_info__.parser__->fsm_tbl__;
+ fsm->copy_kstr_into_buffer(" $|r|$");
+ fsm->add_element_to_set(STBL_T_ITEMS[id],&fset_);
+ break;
+ }
+ default:{
+ CAbs_lr1_sym* sym = new Err_bad_term_in_la_expr;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ rule_info__.parser__->set_stop_parse(true);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_abort_parse(true);
+ }
+ }
+
+}
+
+Rminus::Rminus(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rminus",0,Cla_expr::R_Rminus_,P,false,false){
+}
+
+void Rminus::sr1(){
+ struct SF{
+ raw_minus* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cla_expr* fsm = (Cla_expr*)rule_info__.parser__->fsm_tbl__;
+ fsm->gps_for_error_reporting_=sf->p1__;
+ fsm->copy_kstr_into_buffer(" $-$");
+
+}
+
+Rplus::Rplus(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rplus",0,Cla_expr::R_Rplus_,P,false,false){
+}
+
+void Rplus::sr1(){
+
+ Cla_expr* fsm = (Cla_expr*)rule_info__.parser__->fsm_tbl__;
+ fsm->copy_kstr_into_buffer(" $+$");
+
+}
+
diff --git a/web/yacco2/compiler/grammars/la_expr.fsc b/web/yacco2/compiler/grammars/la_expr.fsc
new file mode 100644
index 0000000000..b1cd79314d
--- /dev/null
+++ b/web/yacco2/compiler/grammars/la_expr.fsc
@@ -0,0 +1,22 @@
+/*
+ File: la_expr.fsc
+ Date and Time: Fri Jan 30 18:55:13 2015
+*/
+transitive n
+grammar-name "la_expr"
+name-space "NS_la_expr"
+thread-name "Cla_expr"
+monolithic y
+file-name "la_expr.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 3
+ LR1_all_shift_operator
+ T_in_stbl
+ rule_in_stbl
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"Parse the lookahead expression after chaffe removed."
diff --git a/web/yacco2/compiler/grammars/la_expr.h b/web/yacco2/compiler/grammars/la_expr.h
new file mode 100644
index 0000000000..c574838c04
--- /dev/null
+++ b/web/yacco2/compiler/grammars/la_expr.h
@@ -0,0 +1,138 @@
+/*
+ File: la_expr.h
+ Date and Time: Fri Jan 30 18:55:13 2015
+*/
+#ifndef __la_expr_h__
+#define __la_expr_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "o2_externs.h"
+extern void XLATE_SYMBOLS_FOR_cweave(const char* Sym_to_xlate,char* Xlated_sym);
+
+// monolithic grammar: no thread
+extern yacco2::State S1_Cla_expr;
+namespace NS_la_expr {
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[6];
+};
+class Cla_expr: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rla_expr_ = 569//start_of_rule_list + 0
+ ,rhs1_Rla_expr_ = 1
+ ,R_Re_ = 570//start_of_rule_list + 2
+ ,rhs1_Re_ = 2
+ ,rhs2_Re_ = 3
+ ,rhs3_Re_ = 4
+ ,rhs4_Re_ = 5
+ ,R_Rerr_bad_oper_ = 571//start_of_rule_list + 4
+ ,rhs1_Rerr_bad_oper_ = 6
+ ,R_Rt_ = 572//start_of_rule_list + 6
+ ,rhs1_Rt_ = 7
+ ,rhs2_Rt_ = 8
+ ,rhs3_Rt_ = 9
+ ,R_Rminus_ = 573//start_of_rule_list + 8
+ ,rhs1_Rminus_ = 10
+ ,R_Rplus_ = 574//start_of_rule_list + 10
+ ,rhs1_Rplus_ = 11
+ };
+ //no of la sets = 3
+ //no of states = 15
+ Cla_expr();
+ ~Cla_expr();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[12];
+
+ public:
+ char ddd_[1024*32];
+ int ddd_idx_;
+ yacco2::CAbs_lr1_sym* gps_for_error_reporting_;
+ void copy_str_into_buffer(std::string* Str);
+ void copy_kstr_into_buffer(const char* Str);
+ void unionize_sets(T_IN_STBL_SET_type* Add_to_set
+ ,T_IN_STBL_SET_type* A_set
+ ,T_IN_STBL_SET_type* B_set);
+ void set_differences(T_IN_STBL_SET_type* Add_to_set
+ ,T_IN_STBL_SET_type* A_set
+ ,T_IN_STBL_SET_type* B_set);
+ void explode_eolr(T_IN_STBL_SET_type* A_set);
+ void add_element_to_set(T_in_stbl* Elem,T_IN_STBL_SET_type* Set_to_add_to);
+ void add_rule_to_set
+ (NS_yacco2_terminals::rule_def* Rule
+ ,T_IN_STBL_SET_type* Set_to_add_to
+ ,std::set<int>* Rules_already_processed);
+
+ };
+struct Rla_expr;
+struct Re;
+struct Rerr_bad_oper;
+struct Rt;
+struct Rminus;
+struct Rplus;
+struct Rla_expr:public yacco2::CAbs_lr1_sym {
+ Rla_expr(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Re:public yacco2::CAbs_lr1_sym {
+ Re(yacco2::Parser* P);
+ void ctor();
+
+ public:
+ T_IN_STBL_SET_type fset_;
+
+ public:
+ void sr1();
+ void sr2();
+ void sr4();
+};
+
+struct Rerr_bad_oper:public yacco2::CAbs_lr1_sym {
+ Rerr_bad_oper(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rt:public yacco2::CAbs_lr1_sym {
+ Rt(yacco2::Parser* P);
+ void ctor();
+
+ public:
+ T_IN_STBL_SET_type fset_;
+
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Rminus:public yacco2::CAbs_lr1_sym {
+ Rminus(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rplus:public yacco2::CAbs_lr1_sym {
+ Rplus(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/la_expr.lex b/web/yacco2/compiler/grammars/la_expr.lex
new file mode 100644
index 0000000000..d8484a893f
--- /dev/null
+++ b/web/yacco2/compiler/grammars/la_expr.lex
@@ -0,0 +1,443 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: la_expr.lex
+Dates: 20 May 2005
+Purpose: Grammar's look ahead boundary expression syntax
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |la_expr| grammar.\fbreak
+Evaluate the lookahead expression making sure
+that the elements are well formed.
+It's output is a set of enumerated values of Terminals
+that is deposited into |T_parallel_la_boundary|'s |la_first_set_|.
+|la_expr_lexical| creates its input token container.
+As a help to my outputting of the CWEB document,
+i rebuild the source la expression while parsing it
+and also deposit it back into |T_parallel_la_boundary|'s |cweb_la_srce_expr|.
+This source expression gets outputted as part of a thread's cweb doc's banner.
+\fbreak
+Let's review the problem:\fbreak
+There are ``+'' or ``-'' operators that add or remove elements from the set.
+How can the removal operator exist when Terminal elements are played with?
+There are 2 situations that define groups of elements:\fbreak
+\ptindent{1) eolr---a terminal representing all terminals including self}
+\ptindent{2) rule---where 1st element of each subrule is a terminal or a rule}
+The interesting part is recursion of a rule containing a rule.
+Of course recurse is devine.
+A subtlty creeps in on the use of the ``eolr'' terminal.
+It was created to lower fat-city of lookahead sets
+and to save the Carpal Tunnel Syndrome caused by typing.
+If the ``eolr'' is the only terminal present in the lookahead expression
+ then it's singular.
+When operators are applied to it, it deconsolidates all its contents
+minus itself to allow for the operators to become effective.
+For example A - eolr + B is a round about way to just have B in its set.
+This could be taken as an error but i'm in a ``benign state of mind''
+as the song goes.
+
+Let's review what ``eolr'' can stand for.
+If the lookahead boundary takes on all contexts,
+then it represents all terminals:
+no refinement to the run context is needed.
+This is a lookahead(0) context.
+This could be represented by the empty set but
+i didn't want to complicate the parsing algorithm to deal
+with this situation and so it's a xxx(1) lookahead
+where u plug in your favorite
+bottomup algo descriptin in place of the hootch.
+When refinement to the contents within the lookahead
+boundary is required,
+the ``eolr'' is followed
+by the subtraction operator to remove the ambiguous component(s)
+from the boundary: ambiguity only shows up when
+lring the grammar. The ``eolr'' coupled with the removal operator
+ is not a universal rule but is dictated by
+the amount of effort the grammar writer needs
+to declare the lookahead boundary.
+For the explicit coders, each specific terminal can be stated
+by the addition operator
+but as an aid to the grammar writer
+a rule definition can do the same thing and reduce
+the size of the written lookahead expression.
+This coding indirection can be more
+explicit by intent of a well chosen rule's name.
+It costs a bit more in coding a rule definition but it is more flexible
+in modification and in the reading of a grammar.
+A rule definition is allowed where its only purpose is use within
+a lookahead expression.
+One can still define rules and not use them: a bit
+ of junk code or dangling thoughts...
+but to each their own.
+\O2 only honks when an undefined rule is referenced in a subrule.\fbreak
+\fbreak
+Bugs:\fbreak
+The |set_difference| algorithm is buggy with MS.
+So write my own!
+The bugs are:\fbreak
+ \ptindent{1) does not work A $-$ B where B is empty}
+ \ptindent{2) A $-$ B have data and the resulting set is empty}
+Item 2 throws an error: ``map/set iterators are not incrementable'' from VS2005.
+\fbreak
+set\_difference(A\_set$\rightarrow$begin(),A\_set$\rightarrow$end()
+,B\_set$\rightarrow$begin(),B\_set$\rightarrow$end(),fset\_.begin());
+\fbreak
+Another misfortune sequential reading of a set is not gauranteed
+to be in ascending order. So use find probe to determine membership.
+\fbreak
+\fbreak
+Exploding ``eolr'':\fbreak
+It means use-all-terminals.
+What is considered a Terminal?
+Every terminal except itself and the meta terminals:
+\PARshift{}, \ALLshift,\QUEshift{}, \INVshift{}, \REDshift{}, \TRAshift{}.
+In parsing, the metaterminals represent contextual positions within the fsa state
+ that act as action triggers. They only get actioned if they are present within
+ the current fsa's parse state.
+ Their actions are ordered: shifts take precedence over reduce.
+ The first shift tried is the current token in the parse stream.
+ After this the metaterminals are tried in the following order: \fbreak
+ \ptindent{\INVshift{} acts as an epsilon}
+\ptindent{\ALLshift{} as the all shift}
+\ptindent{\REDshift{} represents in a reduced LA set the \PARshift{} operator}
+\ptindent{\TRAshift{} is the transience operator used by \O2's linker}
+\ptindent{\QUEshift{} is the wild error catching operator; the unexpected Tes}
+\fbreak
+Added support for Rule recycling as an new/delete optimization.
+
+As rules are recycled, make sure that any temporary variables are
+initialed properly or the part residues will haunt u.
+Basically cleared the temporary set variable |fset_| in |Rt| and |Ra| rules
+before its use.
+@/
+
+fsm
+(fsm-id "la_expr.lex"
+,fsm-filename la_expr
+,fsm-namespace NS_la_expr
+,fsm-class Cla_expr {
+ user-prefix-declaration
+#include "o2_externs.h"
+extern void XLATE_SYMBOLS_FOR_cweave(const char* Sym_to_xlate,char* Xlated_sym);
+ ***
+ user-declaration
+ public:
+ char ddd_[1024*32];
+ int ddd_idx_;
+ yacco2::CAbs_lr1_sym* gps_for_error_reporting_;
+ void copy_str_into_buffer(std::string* Str);
+ void copy_kstr_into_buffer(const char* Str);
+ void unionize_sets(T_IN_STBL_SET_type* Add_to_set
+ ,T_IN_STBL_SET_type* A_set
+ ,T_IN_STBL_SET_type* B_set);
+ void set_differences(T_IN_STBL_SET_type* Add_to_set
+ ,T_IN_STBL_SET_type* A_set
+ ,T_IN_STBL_SET_type* B_set);
+ void explode_eolr(T_IN_STBL_SET_type* A_set);
+ void add_element_to_set(T_in_stbl* Elem,T_IN_STBL_SET_type* Set_to_add_to);
+ void add_rule_to_set
+ (NS_yacco2_terminals::rule_def* Rule
+ ,T_IN_STBL_SET_type* Set_to_add_to
+ ,std::set<int>* Rules_already_processed);
+ ***
+ user-implementation
+ void Cla_expr::copy_str_into_buffer(std::string* Str){
+ const char* y = Str->c_str();
+ int x(0);
+ for(;y[x]!=0;++x,++ddd_idx_)ddd_[ddd_idx_] = y[x];
+ ddd_[ddd_idx_] = 0;
+ }
+ void Cla_expr::copy_kstr_into_buffer(const char* Str){
+ const char* y = Str;
+ int x(0);
+ for(;y[x]!=0;++x,++ddd_idx_)ddd_[ddd_idx_] = y[x];
+ ddd_[ddd_idx_] = 0;
+ }
+ void Cla_expr::unionize_sets(T_IN_STBL_SET_type* Add_to_set
+ ,T_IN_STBL_SET_type* A_set,T_IN_STBL_SET_type* B_set){
+ if(A_set->find(STBL_T_ITEMS[LR1_Eolr]) !=A_set->end()){
+ Add_to_set->insert(A_set->begin(),A_set->end());
+ return;
+ }
+ if(B_set->find(STBL_T_ITEMS[LR1_Eolr]) !=B_set->end()){
+ Add_to_set->insert(B_set->begin(),B_set->end());
+ return;
+ }
+ Add_to_set->insert(A_set->begin(),A_set->end());
+ Add_to_set->insert(B_set->begin(),B_set->end());
+ }
+ void Cla_expr::explode_eolr(T_IN_STBL_SET_type* A_set){
+ A_set->clear();
+ T_enum_phrase* e_p = O2_T_ENUM_PHASE;
+ A_set->insert(STBL_T_ITEMS[LR1_Eog]);// eog
+
+ int tt = e_p->total_enumerate();
+ for(int x=8;x<tt;++x){// balance of meta Ts bypassed. Start from RC
+ A_set->insert(STBL_T_ITEMS[x]);
+ }
+ }
+ void Cla_expr::set_differences(T_IN_STBL_SET_type* Add_to_set
+ ,T_IN_STBL_SET_type* A_set
+ ,T_IN_STBL_SET_type* B_set){
+ if(A_set->find(STBL_T_ITEMS[LR1_Eolr]) !=A_set->end()){
+ explode_eolr(A_set);
+ }
+ if(B_set->find(STBL_T_ITEMS[LR1_Eolr]) !=B_set->end()){
+ explode_eolr(B_set);
+ }
+ if(A_set->empty() == true){
+ CAbs_lr1_sym* sym = new Err_empty_set_removal_in_la_expr;
+ sym->set_rc(*gps_for_error_reporting_,__FILE__,__LINE__);
+ parser__->set_stop_parse(true);
+ ADD_TOKEN_TO_ERROR_QUEUE_FSM(*sym);
+ parser__->set_abort_parse(true);
+ }
+
+ T_IN_STBL_SET_ITER_type Ai = A_set->begin();
+ T_IN_STBL_SET_ITER_type Aie = A_set->end();
+ T_IN_STBL_SET_ITER_type Bie = B_set->end();
+
+ T_IN_STBL_SET_ITER_type AinBi;
+ for(;Ai != Aie;++Ai){
+ AinBi = B_set->find(*Ai);
+ if(AinBi != Bie){
+ continue; // bypass
+ }
+ Add_to_set->insert(*Ai);
+ }
+ }
+ void Cla_expr::add_element_to_set(T_in_stbl* Elem,T_IN_STBL_SET_type* Set_to_add_to){
+ if(Set_to_add_to->find(STBL_T_ITEMS[LR1_Eolr]) != Set_to_add_to->end()) return;
+ if(Elem == STBL_T_ITEMS[LR1_Eolr]){
+ Set_to_add_to->clear();
+ }
+ Set_to_add_to->insert(Elem);
+ }
+
+ void Cla_expr::add_rule_to_set
+ (NS_yacco2_terminals::rule_def* Rule
+ ,T_IN_STBL_SET_type* Set_to_add_to
+ ,std::set<int>* Rules_already_processed){
+ using namespace NS_yacco2_terminals;
+ int r_id = Rule->enum_id();
+ if(Rules_already_processed->find(r_id) !=Rules_already_processed->end()) return;
+ Rules_already_processed->insert(r_id);
+ AST* r_t = Rule->rule_s_tree();
+ set<yacco2::INT> elem_filter;
+ elem_filter.insert(NS_yacco2_T_enum::T_Enum::T_T_subrule_def_);
+ tok_can_ast_functor ast_functor;
+ ast_prefix_wbreadth_only pwbo(*r_t,&ast_functor,&elem_filter,true);
+ tok_can<AST*> tok_can(pwbo);
+ for (int xxx = 0;tok_can.operator[](xxx) != yacco2::PTR_LR1_eog__;++xxx){
+ T_subrule_def* sr_def = (T_subrule_def*)tok_can.operator[](xxx);
+ vector<CAbs_lr1_sym*>* elems_list = sr_def->subrule_elems();
+ CAbs_lr1_sym* sym = (*elems_list)[0];
+ int id = sym->enumerated_id__;
+ switch(id){
+ case NS_yacco2_T_enum::T_Enum::T_T_eosubrule_: break;
+ case NS_yacco2_T_enum::T_Enum::T_refered_T_: {
+ refered_T* rt = (refered_T*)sym;
+ add_element_to_set(rt->t_in_stbl(),Set_to_add_to);
+ break;
+ }
+ case NS_yacco2_T_enum::T_Enum::T_refered_rule_: {
+ refered_rule* rt = (refered_rule*)sym;
+ rule_def* r = rt->Rule_in_stbl()->r_def();
+ add_rule_to_set(r,Set_to_add_to,Rules_already_processed);
+ break;
+ }
+ default:{
+ }
+ }
+
+ }
+ }
+ ***
+ constructor
+ ddd_idx_ = 0;
+ ddd_[ddd_idx_] = 0;
+ gps_for_error_reporting_ = 0;
+ ***
+ op
+ ddd_idx_ = 0;
+ ddd_[ddd_idx_] = 0;
+ gps_for_error_reporting_ = 0;
+ ***
+}
+,fsm-version "1.0",fsm-date "24 mar 2004",fsm-debug "false"
+,fsm-comments "Parse the lookahead expression after chaffe removed.")
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rla_expr (){
+ -> Re eog {
+ op
+ Cla_expr* fsm = (Cla_expr*)rule_info__.parser__->fsm_tbl__;
+ if(sf->p1__->fset_.empty() == true){
+ CAbs_lr1_sym* sym = new Err_la_expr_calc_empty_set;
+ sym->set_rc(*fsm->gps_for_error_reporting_,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_abort_parse(true);
+ }
+ T_parallel_parser_phrase* la_ph = O2_PP_PHASE;
+ T_parallel_la_boundary* la = la_ph->la_bndry();
+ la->la_first_set(sf->p1__->fset_);
+ la->cweb_la_srce_expr((const char*)&fsm->ddd_);
+ ***
+ }
+}
+
+Re (
+lhs {
+ user-declaration
+ public:
+ T_IN_STBL_SET_type fset_;
+ ***
+ constructor
+ fset_.clear();
+ ***
+ }
+ ){
+ -> Re Rplus Rt {
+ op
+ Cla_expr* fsm = (Cla_expr*)rule_info__.parser__->fsm_tbl__;
+ fset_.clear();
+ fsm->unionize_sets(&fset_,&sf->p1__->fset_,&sf->p3__->fset_);
+ ***
+ }
+ -> Re Rminus Rt {
+ op
+ Cla_expr* fsm = (Cla_expr*)rule_info__.parser__->fsm_tbl__;
+ fset_.clear();
+ fsm->set_differences(&fset_,&sf->p1__->fset_,&sf->p3__->fset_);
+ ***
+ }
+ -> Re Rerr_bad_oper
+ -> Rt {
+ op
+ fset_.clear();
+ fset_.insert(sf->p1__->fset_.begin(),sf->p1__->fset_.end());
+ ***
+ }
+}
+
+Rerr_bad_oper (){
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_bad_operator_in_la_expr;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_abort_parse(true);
+ ***
+ }
+}
+
+Rt (
+lhs {
+ user-declaration
+ public:
+ T_IN_STBL_SET_type fset_;
+ ***
+ constructor
+ fset_.clear();
+ ***
+ }
+){
+ -> "T-in-stbl" {
+ op
+ fset_.clear();
+ using namespace NS_yacco2_terminals;
+ Cla_expr* fsm = (Cla_expr*)rule_info__.parser__->fsm_tbl__;
+ T_terminal_def* dt = sf->p1__->t_def();
+ fsm->copy_kstr_into_buffer(" ");
+ char xlate_file[Max_cweb_item_size];
+ XLATE_SYMBOLS_FOR_cweave(dt->t_name()->c_str(),xlate_file);
+ fsm->copy_kstr_into_buffer(xlate_file);
+ fset_.clear();
+ fset_.insert(sf->p1__);
+ ***
+ }
+ -> "rule-in-stbl" {
+ op
+ fset_.clear();
+ using namespace NS_yacco2_terminals;
+ Cla_expr* fsm = (Cla_expr*)rule_info__.parser__->fsm_tbl__;
+ rule_def* rt = sf->p1__->r_def();
+ fsm->copy_kstr_into_buffer(" ");
+ char xlate_file[Max_cweb_item_size];
+ XLATE_SYMBOLS_FOR_cweave(rt->rule_name()->c_str(),xlate_file);
+ fsm->copy_kstr_into_buffer(xlate_file);
+
+ std::set<int> already_processed_rules;
+ fsm->add_rule_to_set(rt,&fset_,&already_processed_rules);
+ ***
+ }
+ -> |+| {
+ op
+ fset_.clear();
+ using namespace NS_yacco2_terminals;
+ int id = sf->p1__->enumerated_id__;
+ switch(id){
+ case T_Enum::T_LR1_all_shift_operator_:{
+ Cla_expr* fsm = (Cla_expr*)rule_info__.parser__->fsm_tbl__;
+ fsm->copy_kstr_into_buffer(" $|+|$");
+ fsm->add_element_to_set(STBL_T_ITEMS[id],&fset_);
+ break;
+ }
+ case T_Enum::T_LR1_invisible_shift_operator_:{
+ Cla_expr* fsm = (Cla_expr*)rule_info__.parser__->fsm_tbl__;
+ fsm->copy_kstr_into_buffer(" $|.|$");
+ fsm->add_element_to_set(STBL_T_ITEMS[id],&fset_);
+ break;
+ }
+ case T_Enum::T_LR1_parallel_operator_:{
+ Cla_expr* fsm = (Cla_expr*)rule_info__.parser__->fsm_tbl__;
+ fsm->copy_kstr_into_buffer(" $|||$");
+ fsm->add_element_to_set(STBL_T_ITEMS[id],&fset_);
+ break;
+ }
+ case T_Enum::T_LR1_fset_transience_operator_:{
+ Cla_expr* fsm = (Cla_expr*)rule_info__.parser__->fsm_tbl__;
+ fsm->copy_kstr_into_buffer(" $|t|$");
+ fsm->add_element_to_set(STBL_T_ITEMS[id],&fset_);
+ break;
+ }
+
+ case T_Enum::T_LR1_reduce_operator_:{
+ Cla_expr* fsm = (Cla_expr*)rule_info__.parser__->fsm_tbl__;
+ fsm->copy_kstr_into_buffer(" $|r|$");
+ fsm->add_element_to_set(STBL_T_ITEMS[id],&fset_);
+ break;
+ }
+ default:{
+ CAbs_lr1_sym* sym = new Err_bad_term_in_la_expr;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ rule_info__.parser__->set_stop_parse(true);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_abort_parse(true);
+ }
+ }
+ ***
+ }
+}
+Rminus (){
+ -> - {
+ op
+ Cla_expr* fsm = (Cla_expr*)rule_info__.parser__->fsm_tbl__;
+ fsm->gps_for_error_reporting_=sf->p1__;
+ fsm->copy_kstr_into_buffer(" $-$");
+ ***
+ }
+}
+Rplus (){
+ -> + {
+ op
+ Cla_expr* fsm = (Cla_expr*)rule_info__.parser__->fsm_tbl__;
+ fsm->copy_kstr_into_buffer(" $+$");
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/la_expr_lexical.cpp b/web/yacco2/compiler/grammars/la_expr_lexical.cpp
new file mode 100644
index 0000000000..1650e70d37
--- /dev/null
+++ b/web/yacco2/compiler/grammars/la_expr_lexical.cpp
@@ -0,0 +1,187 @@
+/*
+ File: la_expr_lexical.cpp
+ Date and Time: Fri Jan 30 18:55:13 2015
+*/
+#include "la_expr_lexical.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_la_expr_lexical;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 3;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+}
+ Cla_expr_lexical::
+ Cla_expr_lexical()
+ :yacco2::CAbs_fsm
+ ("la_expr_lexical.lex"
+ ,"1.0"
+ ,"24 mar 2004"
+ ,false
+ ,"Lexer: 2nd stage lexing for lookahead: stripper..."
+ ,"Fri Jan 30 18:55:13 2015 "
+ ,S1_Cla_expr_lexical){
+
+ }
+
+Cla_expr_lexical::~Cla_expr_lexical(){
+
+ for(int x = 0;x < 3;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cla_expr_lexical::failed(){
+ return false;
+ }
+ void Cla_expr_lexical::op(){
+}
+int Cla_expr_lexical::rhs_to_rules_mapping_[10] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,2 // subrule 4 for rule 3
+ ,2 // subrule 5 for rule 3
+ ,2 // subrule 6 for rule 3
+ ,2 // subrule 7 for rule 3
+ ,2 // subrule 8 for rule 3
+ ,2 // subrule 9 for rule 3
+};
+Rstripper::Rstripper(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rstripper",0,Cla_expr_lexical::R_Rstripper_,P,false,false){
+}
+
+void Rstripper::op(){
+ sstrace_rulesss
+
+ using namespace NS_yacco2_k_symbols;
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*yacco2::PTR_LR1_eog__);
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*yacco2::PTR_LR1_eog__);
+
+}
+Rtoks::Rtoks(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rtoks",0,Cla_expr_lexical::R_Rtoks_,P,false,false){
+}
+
+Rtok::Rtok(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rtok",0,Cla_expr_lexical::R_Rtok_,P,false,false){
+}
+
+void Rtok::sr1(){
+ struct SF{
+ T_identifier* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ using namespace yacco2_stbl;
+ T_sym_tbl_report_card report_card;
+ find_sym_in_stbl(report_card,*sf->p1__->identifier()->c_str());
+ if(report_card.action_ == T_sym_tbl_report_card::not_fnd){
+ CAbs_lr1_sym* sym = new Err_bad_term_in_la_expr;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*report_card.tbl_entry_->symbol_);
+
+}
+
+void Rtok::sr2(){
+ struct SF{
+ T_c_string* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ using namespace yacco2_stbl;
+ T_sym_tbl_report_card report_card;
+ find_sym_in_stbl(report_card,*sf->p1__->c_string()->c_str());
+ if(report_card.action_ == T_sym_tbl_report_card::not_fnd){
+ CAbs_lr1_sym* sym = new Err_bad_term_in_la_expr;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*report_card.tbl_entry_->symbol_);
+
+}
+
+void Rtok::sr3(){
+ struct SF{
+ T_c_literal* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ using namespace yacco2_stbl;
+ T_sym_tbl_report_card report_card;
+ find_sym_in_stbl(report_card,*sf->p1__->c_literal()->c_str());
+ if(report_card.action_ == T_sym_tbl_report_card::not_fnd){
+ CAbs_lr1_sym* sym = new Err_bad_term_in_la_expr;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*report_card.tbl_entry_->symbol_);
+
+}
+
+void Rtok::sr4(){
+ struct SF{
+ raw_plus* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p1__);
+
+}
+
+void Rtok::sr5(){
+ struct SF{
+ raw_minus* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p1__);
+
+}
+
+void Rtok::sr6(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p1__);
+
+}
+
diff --git a/web/yacco2/compiler/grammars/la_expr_lexical.fsc b/web/yacco2/compiler/grammars/la_expr_lexical.fsc
new file mode 100644
index 0000000000..86f79595e7
--- /dev/null
+++ b/web/yacco2/compiler/grammars/la_expr_lexical.fsc
@@ -0,0 +1,25 @@
+/*
+ File: la_expr_lexical.fsc
+ Date and Time: Fri Jan 30 18:55:13 2015
+*/
+transitive n
+grammar-name "la_expr_lexical"
+name-space "NS_la_expr_lexical"
+thread-name "Cla_expr_lexical"
+monolithic y
+file-name "la_expr_lexical.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 6
+ LR1_all_shift_operator
+ raw_plus
+ raw_minus
+ T_c_literal
+ T_c_string
+ T_identifier
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"Lexer: 2nd stage lexing for lookahead: stripper..."
diff --git a/web/yacco2/compiler/grammars/la_expr_lexical.h b/web/yacco2/compiler/grammars/la_expr_lexical.h
new file mode 100644
index 0000000000..2601dafd7b
--- /dev/null
+++ b/web/yacco2/compiler/grammars/la_expr_lexical.h
@@ -0,0 +1,81 @@
+/*
+ File: la_expr_lexical.h
+ Date and Time: Fri Jan 30 18:55:13 2015
+*/
+#ifndef __la_expr_lexical_h__
+#define __la_expr_lexical_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "yacco2_stbl.h"
+
+// monolithic grammar: no thread
+extern yacco2::State S1_Cla_expr_lexical;
+namespace NS_la_expr_lexical {
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[3];
+};
+class Cla_expr_lexical: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rstripper_ = 569//start_of_rule_list + 0
+ ,rhs1_Rstripper_ = 1
+ ,R_Rtoks_ = 570//start_of_rule_list + 2
+ ,rhs1_Rtoks_ = 2
+ ,rhs2_Rtoks_ = 3
+ ,R_Rtok_ = 571//start_of_rule_list + 4
+ ,rhs1_Rtok_ = 4
+ ,rhs2_Rtok_ = 5
+ ,rhs3_Rtok_ = 6
+ ,rhs4_Rtok_ = 7
+ ,rhs5_Rtok_ = 8
+ ,rhs6_Rtok_ = 9
+ };
+ //no of la sets = 2
+ //no of states = 11
+ Cla_expr_lexical();
+ ~Cla_expr_lexical();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[10];
+ };
+struct Rstripper;
+struct Rtoks;
+struct Rtok;
+struct Rstripper:public yacco2::CAbs_lr1_sym {
+ Rstripper(yacco2::Parser* P);
+ void op();
+ public:
+};
+
+struct Rtoks:public yacco2::CAbs_lr1_sym {
+ Rtoks(yacco2::Parser* P);
+ public:
+};
+
+struct Rtok:public yacco2::CAbs_lr1_sym {
+ Rtok(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+ void sr5();
+ void sr6();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/la_expr_lexical.lex b/web/yacco2/compiler/grammars/la_expr_lexical.lex
new file mode 100644
index 0000000000..49160a2c93
--- /dev/null
+++ b/web/yacco2/compiler/grammars/la_expr_lexical.lex
@@ -0,0 +1,124 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: la_expr_lexical.lex
+Dates: 20 May 2005
+Purpose: Grammar's lookahead boundary expression resolves
+ identifier, c-string and c-literal by the symbol table into
+ a T-in-stbl or rule-in-stbl.
+ The operators '+' and '-' remain as raw characters.
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |la_expr_lexical| grammar.\fbreak
+Verify the tokens ``identifier'', ``c-string'', and ``c-literal''
+against the symbol table using their literal values as keys.
+The found vocabulary symbol is then put into the token container
+for |la_expr| grammar digestion.
+
+Remember, the ``parallel-parser'' construct containing the lookahead expression
+comes before the Grammar's vocabulary definitions.
+These input token scraps are raw lexems without a symbol table translation
+that now need symbol table evaluation.
+@/
+
+fsm
+(fsm-id "la_expr_lexical.lex"
+,fsm-filename la_expr_lexical
+,fsm-namespace NS_la_expr_lexical
+,fsm-class Cla_expr_lexical{
+ user-prefix-declaration
+#include "yacco2_stbl.h"
+ ***
+}
+,fsm-version "1.0",fsm-date "24 mar 2004",fsm-debug "false"
+,fsm-comments "Lexer: 2nd stage lexing for lookahead: stripper...")
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rstripper (
+lhs{
+ op
+ using namespace NS_yacco2_k_symbols;
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*yacco2::PTR_LR1_eog__);
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*yacco2::PTR_LR1_eog__);
+ ***
+ }
+){
+ -> Rtoks eog
+}
+
+Rtoks (){
+ -> Rtok
+ -> Rtoks Rtok
+}
+
+Rtok (){
+ -> "identifier" {
+ op
+ using namespace yacco2_stbl;
+ T_sym_tbl_report_card report_card;
+ find_sym_in_stbl(report_card,*sf->p1__->identifier()->c_str());
+ if(report_card.action_ == T_sym_tbl_report_card::not_fnd){
+ CAbs_lr1_sym* sym = new Err_bad_term_in_la_expr;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*report_card.tbl_entry_->symbol_);
+ ***
+ }
+ -> "c-string" {
+ op
+ using namespace yacco2_stbl;
+ T_sym_tbl_report_card report_card;
+ find_sym_in_stbl(report_card,*sf->p1__->c_string()->c_str());
+ if(report_card.action_ == T_sym_tbl_report_card::not_fnd){
+ CAbs_lr1_sym* sym = new Err_bad_term_in_la_expr;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*report_card.tbl_entry_->symbol_);
+ ***
+ }
+ -> "c-literal" {
+ op
+ using namespace yacco2_stbl;
+ T_sym_tbl_report_card report_card;
+ find_sym_in_stbl(report_card,*sf->p1__->c_literal()->c_str());
+ if(report_card.action_ == T_sym_tbl_report_card::not_fnd){
+ CAbs_lr1_sym* sym = new Err_bad_term_in_la_expr;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*report_card.tbl_entry_->symbol_);
+ ***
+ }
+ -> "+" {
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p1__);
+ ***
+ }
+ -> "-" {
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p1__);
+ ***
+ }
+ -> |+| {
+/@
+ Drain the swamp.
+ Accept the keywords, LR k constants, and raw characters.
+@/
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p1__);
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/la_expr_lexicalsym.cpp b/web/yacco2/compiler/grammars/la_expr_lexicalsym.cpp
new file mode 100644
index 0000000000..1dad063360
--- /dev/null
+++ b/web/yacco2/compiler/grammars/la_expr_lexicalsym.cpp
@@ -0,0 +1,160 @@
+/*
+ File: la_expr_lexicalsym.cpp
+ Date and Time: Fri Jan 30 18:55:13 2015
+*/
+#include "la_expr_lexical.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_la_expr_lexical;// grammar's ns
+// first set terminals
+// monolithic grammar --- no thread
+void
+Cla_expr_lexical::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rstripper_:{
+ Rstripper* sym;
+ if(re->rule_ == 0){
+ sym = new Rstripper(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rstripper*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->op();
+ return;}
+ case rhs1_Rtoks_:{
+ Rtoks* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoks(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoks*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rtoks_:{
+ Rtoks* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoks(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoks*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rtok_:{
+ Rtok* sym;
+ if(re->rule_ == 0){
+ sym = new Rtok(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtok*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rtok_:{
+ Rtok* sym;
+ if(re->rule_ == 0){
+ sym = new Rtok(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtok*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rtok_:{
+ Rtok* sym;
+ if(re->rule_ == 0){
+ sym = new Rtok(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtok*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rtok_:{
+ Rtok* sym;
+ if(re->rule_ == 0){
+ sym = new Rtok(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtok*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr4();
+ return;}
+ case rhs5_Rtok_:{
+ Rtok* sym;
+ if(re->rule_ == 0){
+ sym = new Rtok(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtok*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr5();
+ return;}
+ case rhs6_Rtok_:{
+ Rtok* sym;
+ if(re->rule_ == 0){
+ sym = new Rtok(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtok*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr6();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/la_expr_lexicaltbl.cpp b/web/yacco2/compiler/grammars/la_expr_lexicaltbl.cpp
new file mode 100644
index 0000000000..e100e173e0
--- /dev/null
+++ b/web/yacco2/compiler/grammars/la_expr_lexicaltbl.cpp
@@ -0,0 +1,215 @@
+/*
+ File: la_expr_lexicaltbl.cpp
+ Date and Time: Fri Jan 30 18:55:13 2015
+*/
+#include "la_expr_lexical.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_la_expr_lexical;// grammar's ns
+// first set terminals
+// LR1_eog
+// LR1_all_shift_operator
+// raw_plus
+// raw_minus
+// T_c_literal
+// T_c_string
+// T_identifier
+yacco2::UCHAR LA1_Cla_expr_lexical[] ={
+3
+,0,66
+,6,40
+,34,140
+};
+// LR1_eolr
+yacco2::UCHAR LA2_Cla_expr_lexical[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Cla_expr_lexical;
+extern yacco2::State S2_Cla_expr_lexical;
+extern yacco2::State S3_Cla_expr_lexical;
+extern yacco2::State S4_Cla_expr_lexical;
+extern yacco2::State S5_Cla_expr_lexical;
+extern yacco2::State S6_Cla_expr_lexical;
+extern yacco2::State S7_Cla_expr_lexical;
+extern yacco2::State S8_Cla_expr_lexical;
+extern yacco2::State S9_Cla_expr_lexical;
+extern yacco2::State S10_Cla_expr_lexical;
+extern yacco2::State S11_Cla_expr_lexical;
+struct S1std_Cla_expr_lexical{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[9];
+};
+S1std_Cla_expr_lexical S1st_Cla_expr_lexical = {
+ 9
+ ,
+ {// start of table
+ {6,(State*)&S2_Cla_expr_lexical} // shift sym: LR1_all_shift_operator
+ ,{51,(State*)&S3_Cla_expr_lexical} // shift sym: raw_plus
+ ,{53,(State*)&S4_Cla_expr_lexical} // shift sym: raw_minus
+ ,{274,(State*)&S5_Cla_expr_lexical} // shift sym: T_c_literal
+ ,{275,(State*)&S6_Cla_expr_lexical} // shift sym: T_c_string
+ ,{279,(State*)&S7_Cla_expr_lexical} // shift sym: T_identifier
+ ,{569,(State*)&S1_Cla_expr_lexical} // accept sym: Rstripper
+ ,{570,(State*)&S8_Cla_expr_lexical} // shift sym: Rtoks
+ ,{571,(State*)&S11_Cla_expr_lexical} // shift sym: Rtok
+ }// end of shift table
+};
+yacco2::Shift_entry S1ase_Cla_expr_lexical = {6,(State*)&S2_Cla_expr_lexical};
+yacco2::State S1_Cla_expr_lexical = //State's vectored into symbol: " No symbol"
+{1
+,0,(Shift_entry*)&S1ase_Cla_expr_lexical
+,0,0,(Shift_tbl*)&S1st_Cla_expr_lexical,0,0,0,0};
+struct S2rtd_Cla_expr_lexical{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Cla_expr_lexical S2rt_Cla_expr_lexical = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_expr_lexical,Cla_expr_lexical::rhs6_Rtok_}
+ }// end of reduce table
+};
+yacco2::State S2_Cla_expr_lexical = //State's vectored into symbol: "|+|"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Cla_expr_lexical,0,0,0};
+struct S3rtd_Cla_expr_lexical{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Cla_expr_lexical S3rt_Cla_expr_lexical = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_expr_lexical,Cla_expr_lexical::rhs4_Rtok_}
+ }// end of reduce table
+};
+yacco2::State S3_Cla_expr_lexical = //State's vectored into symbol: "+"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_Cla_expr_lexical,0,0,0};
+struct S4rtd_Cla_expr_lexical{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Cla_expr_lexical S4rt_Cla_expr_lexical = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_expr_lexical,Cla_expr_lexical::rhs5_Rtok_}
+ }// end of reduce table
+};
+yacco2::State S4_Cla_expr_lexical = //State's vectored into symbol: "-"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Cla_expr_lexical,0,0,0};
+struct S5rtd_Cla_expr_lexical{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Cla_expr_lexical S5rt_Cla_expr_lexical = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_expr_lexical,Cla_expr_lexical::rhs3_Rtok_}
+ }// end of reduce table
+};
+yacco2::State S5_Cla_expr_lexical = //State's vectored into symbol: "c-literal"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Cla_expr_lexical,0,0,0};
+struct S6rtd_Cla_expr_lexical{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Cla_expr_lexical S6rt_Cla_expr_lexical = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_expr_lexical,Cla_expr_lexical::rhs2_Rtok_}
+ }// end of reduce table
+};
+yacco2::State S6_Cla_expr_lexical = //State's vectored into symbol: "c-string"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Cla_expr_lexical,0,0,0};
+struct S7rtd_Cla_expr_lexical{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Cla_expr_lexical S7rt_Cla_expr_lexical = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_expr_lexical,Cla_expr_lexical::rhs1_Rtok_}
+ }// end of reduce table
+};
+yacco2::State S7_Cla_expr_lexical = //State's vectored into symbol: "identifier"
+{7
+,0,0,0,0,0,(Reduce_tbl*)&S7rt_Cla_expr_lexical,0,0,0};
+struct S8std_Cla_expr_lexical{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[8];
+};
+S8std_Cla_expr_lexical S8st_Cla_expr_lexical = {
+ 8
+ ,
+ {// start of table
+ {1,(State*)&S9_Cla_expr_lexical} // shift sym: LR1_eog
+ ,{6,(State*)&S2_Cla_expr_lexical} // shift sym: LR1_all_shift_operator
+ ,{51,(State*)&S3_Cla_expr_lexical} // shift sym: raw_plus
+ ,{53,(State*)&S4_Cla_expr_lexical} // shift sym: raw_minus
+ ,{274,(State*)&S5_Cla_expr_lexical} // shift sym: T_c_literal
+ ,{275,(State*)&S6_Cla_expr_lexical} // shift sym: T_c_string
+ ,{279,(State*)&S7_Cla_expr_lexical} // shift sym: T_identifier
+ ,{571,(State*)&S10_Cla_expr_lexical} // shift sym: Rtok
+ }// end of shift table
+};
+yacco2::Shift_entry S8ase_Cla_expr_lexical = {6,(State*)&S2_Cla_expr_lexical};
+yacco2::State S8_Cla_expr_lexical = //State's vectored into symbol: "Rtoks"
+{8
+,0,(Shift_entry*)&S8ase_Cla_expr_lexical
+,0,0,(Shift_tbl*)&S8st_Cla_expr_lexical,0,0,0,0};
+struct S9rtd_Cla_expr_lexical{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Cla_expr_lexical S9rt_Cla_expr_lexical = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cla_expr_lexical,Cla_expr_lexical::rhs1_Rstripper_}
+ }// end of reduce table
+};
+yacco2::State S9_Cla_expr_lexical = //State's vectored into symbol: "eog"
+{9
+,0,0,0,0,0,(Reduce_tbl*)&S9rt_Cla_expr_lexical,0,0,0};
+struct S10rtd_Cla_expr_lexical{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S10rtd_Cla_expr_lexical S10rt_Cla_expr_lexical = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_expr_lexical,Cla_expr_lexical::rhs2_Rtoks_}
+ }// end of reduce table
+};
+yacco2::State S10_Cla_expr_lexical = //State's vectored into symbol: "Rtok"
+{10
+,0,0,0,0,0,(Reduce_tbl*)&S10rt_Cla_expr_lexical,0,0,0};
+struct S11rtd_Cla_expr_lexical{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Cla_expr_lexical S11rt_Cla_expr_lexical = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_expr_lexical,Cla_expr_lexical::rhs1_Rtoks_}
+ }// end of reduce table
+};
+yacco2::State S11_Cla_expr_lexical = //State's vectored into symbol: "Rtok"
+{11
+,0,0,0,0,0,(Reduce_tbl*)&S11rt_Cla_expr_lexical,0,0,0};
diff --git a/web/yacco2/compiler/grammars/la_expr_src.cpp b/web/yacco2/compiler/grammars/la_expr_src.cpp
new file mode 100644
index 0000000000..62e67a68d1
--- /dev/null
+++ b/web/yacco2/compiler/grammars/la_expr_src.cpp
@@ -0,0 +1,303 @@
+/*
+ File: la_expr_src.cpp
+ Date and Time: Fri Jan 30 18:55:13 2015
+*/
+#include "la_expr_src.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_la_expr_src;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 5;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[4] = new Per_rule_s_reuse_table();
+}
+ Cla_expr_src::
+ Cla_expr_src()
+ :yacco2::CAbs_fsm
+ ("la_expr_src.lex"
+ ,"1.0"
+ ,"30 dec 2002"
+ ,false
+ ,"Lexer: 1st stage of Lookahead source expression\n converted into raw character tokens for post evaluation."
+ ,"Fri Jan 30 18:55:13 2015 "
+ ,S1_Cla_expr_src){
+
+ exp_ = 0;
+
+ }
+
+Cla_expr_src::~Cla_expr_src(){
+
+ for(int x = 0;x < 5;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cla_expr_src::failed(){
+ return false;
+ }
+ void Cla_expr_src::op(){
+ exp_ = new T_la_expr_src;
+ exp_->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ parser__->set_use_all_shift_on();
+
+}
+int Cla_expr_src::rhs_to_rules_mapping_[20] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,2 // subrule 4 for rule 3
+ ,2 // subrule 5 for rule 3
+ ,2 // subrule 6 for rule 3
+ ,2 // subrule 7 for rule 3
+ ,2 // subrule 8 for rule 3
+ ,2 // subrule 9 for rule 3
+ ,2 // subrule 10 for rule 3
+ ,2 // subrule 11 for rule 3
+ ,2 // subrule 12 for rule 3
+ ,2 // subrule 13 for rule 3
+ ,2 // subrule 14 for rule 3
+ ,2 // subrule 15 for rule 3
+ ,3 // subrule 16 for rule 4
+ ,3 // subrule 17 for rule 4
+ ,4 // subrule 18 for rule 5
+ ,4 // subrule 19 for rule 5
+};
+Rla_expr_src::Rla_expr_src(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rla_expr_src",0,Cla_expr_src::R_Rla_expr_src_,P,false,false){
+}
+
+Rtoks::Rtoks(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rtoks",0,Cla_expr_src::R_Rtoks_,P,false,false){
+}
+
+Rtok::Rtok(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rtok",0,Cla_expr_src::R_Rtok_,P,false,false){
+}
+
+void Rtok::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_c_string* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cla_expr_src* fsm = (Cla_expr_src*)rule_info__.parser__->fsm_tbl__;
+ fsm->exp_->la_tok_can()->push_back(*sf->p2__);
+
+}
+
+void Rtok::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_c_literal* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cla_expr_src* fsm = (Cla_expr_src*)rule_info__.parser__->fsm_tbl__;
+ fsm->exp_->la_tok_can()->push_back(*sf->p2__);
+
+}
+
+void Rtok::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_eocode* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cla_expr_src* fsm = (Cla_expr_src*)rule_info__.parser__->fsm_tbl__;
+ T_eocode* k = sf->p2__;
+ k->set_auto_delete(true);
+ rule_info__.parser__->set_use_all_shift_off();
+ fsm->exp_->la_tok_can()->push_back(*yacco2::PTR_LR1_eog__);
+ fsm->exp_->la_tok_can()->push_back(*yacco2::PTR_LR1_eog__);
+ RSVP(fsm->exp_);
+ fsm->exp_=0;
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rtok::sr4(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_identifier* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cla_expr_src* fsm = (Cla_expr_src*)rule_info__.parser__->fsm_tbl__;
+ fsm->exp_->la_tok_can()->push_back(*sf->p2__);
+
+}
+
+void Rtok::sr5(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cla_expr_src* fsm = (Cla_expr_src*)rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* la_sym = sf->p1__;
+ using namespace NS_yacco2_T_enum;
+ using namespace NS_yacco2_terminals;
+ int id = la_sym->enumerated_id__;
+ if(id == T_Enum::T_LR1_eog_){
+ CAbs_lr1_sym* sym = new Err_no_end_of_code;
+ sym->set_rc(*la_sym,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ fsm->exp_->la_tok_can()->push_back(*la_sym);
+
+}
+
+void Rtok::sr6(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Err_bad_eos* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rtok::sr7(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Err_bad_esc* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rtok::sr8(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Err_comment_overrun* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rtok::sr9(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cla_expr_src* fsm = (Cla_expr_src*)rule_info__.parser__->fsm_tbl__;
+ fsm->exp_->la_tok_can()->push_back(*sf->p2__);
+
+}
+
+void Rtok::sr10(){
+ struct SF{
+ raw_plus* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cla_expr_src* fsm = (Cla_expr_src*)rule_info__.parser__->fsm_tbl__;
+ fsm->exp_->la_tok_can()->push_back(*sf->p1__);
+
+}
+
+void Rtok::sr11(){
+ struct SF{
+ raw_minus* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cla_expr_src* fsm = (Cla_expr_src*)rule_info__.parser__->fsm_tbl__;
+ fsm->exp_->la_tok_can()->push_back(*sf->p1__);
+
+}
+
+Rlint::Rlint(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlint",0,Cla_expr_src::R_Rlint_,P,false,false){
+}
+
+Rla_minus::Rla_minus(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rla_minus",0,Cla_expr_src::R_Rla_minus_,P,false,false){
+}
+
diff --git a/web/yacco2/compiler/grammars/la_expr_src.fsc b/web/yacco2/compiler/grammars/la_expr_src.fsc
new file mode 100644
index 0000000000..b7376abe2f
--- /dev/null
+++ b/web/yacco2/compiler/grammars/la_expr_src.fsc
@@ -0,0 +1,35 @@
+/*
+ File: la_expr_src.fsc
+ Date and Time: Fri Jan 30 18:55:13 2015
+*/
+transitive y
+grammar-name "la_expr_src"
+name-space "NS_la_expr_src"
+thread-name "TH_la_expr_src"
+monolithic n
+file-name "la_expr_src.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 4
+ LR1_fset_transience_operator
+ LR1_all_shift_operator
+ raw_plus
+ raw_minus
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 6
+ NS_c_literal::TH_c_literal
+ NS_identifier::TH_identifier
+ NS_la_lrk_T::TH_la_lrk_T
+ NS_c_string::TH_c_string
+ NS_o2_code_end::TH_o2_code_end
+ NS_lint_balls::TH_lint_balls
+end-list-of-transitive-threads
+list-of-used-threads 6
+ NS_c_literal::TH_c_literal
+ NS_c_string::TH_c_string
+ NS_identifier::TH_identifier
+ NS_la_lrk_T::TH_la_lrk_T
+ NS_lint_balls::TH_lint_balls
+ NS_o2_code_end::TH_o2_code_end
+end-list-of-used-threads
+fsm-comments
+"Lexer: 1st stage of Lookahead source expression\n converted into raw character tokens for post evaluation."
diff --git a/web/yacco2/compiler/grammars/la_expr_src.h b/web/yacco2/compiler/grammars/la_expr_src.h
new file mode 100644
index 0000000000..13894fb854
--- /dev/null
+++ b/web/yacco2/compiler/grammars/la_expr_src.h
@@ -0,0 +1,125 @@
+/*
+ File: la_expr_src.h
+ Date and Time: Fri Jan 30 18:55:13 2015
+*/
+#ifndef __la_expr_src_h__
+#define __la_expr_src_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "c_string.h"
+#include "identifier.h"
+#include "c_literal.h"
+#include "lint_balls.h"
+#include "o2_code_end.h"
+#include "la_lrk_T.h"
+#include "yacco2_stbl.h"
+using namespace NS_yacco2_terminals;
+
+extern yacco2::Thread_entry ITH_la_expr_src;
+
+extern yacco2::State S1_Cla_expr_src;
+namespace NS_la_expr_src {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_la_expr_src(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_la_expr_src(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[5];
+};
+class Cla_expr_src: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rla_expr_src_ = 569//start_of_rule_list + 0
+ ,rhs1_Rla_expr_src_ = 1
+ ,R_Rtoks_ = 570//start_of_rule_list + 2
+ ,rhs1_Rtoks_ = 2
+ ,rhs2_Rtoks_ = 3
+ ,R_Rtok_ = 571//start_of_rule_list + 4
+ ,rhs1_Rtok_ = 4
+ ,rhs2_Rtok_ = 5
+ ,rhs3_Rtok_ = 6
+ ,rhs4_Rtok_ = 7
+ ,rhs5_Rtok_ = 8
+ ,rhs6_Rtok_ = 9
+ ,rhs7_Rtok_ = 10
+ ,rhs8_Rtok_ = 11
+ ,rhs9_Rtok_ = 12
+ ,rhs10_Rtok_ = 13
+ ,rhs11_Rtok_ = 14
+ ,rhs12_Rtok_ = 15
+ ,R_Rlint_ = 572//start_of_rule_list + 6
+ ,rhs1_Rlint_ = 16
+ ,rhs2_Rlint_ = 17
+ ,R_Rla_minus_ = 573//start_of_rule_list + 8
+ ,rhs1_Rla_minus_ = 18
+ ,rhs2_Rla_minus_ = 19
+ };
+ //no of la sets = 2
+ //no of states = 19
+ Cla_expr_src();
+ ~Cla_expr_src();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[20];
+
+ public:
+ T_la_expr_src* exp_;
+
+ };
+struct Rla_expr_src;
+struct Rtoks;
+struct Rtok;
+struct Rlint;
+struct Rla_minus;
+struct Rla_expr_src:public yacco2::CAbs_lr1_sym {
+ Rla_expr_src(yacco2::Parser* P);
+ public:
+};
+
+struct Rtoks:public yacco2::CAbs_lr1_sym {
+ Rtoks(yacco2::Parser* P);
+ public:
+};
+
+struct Rtok:public yacco2::CAbs_lr1_sym {
+ Rtok(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+ void sr5();
+ void sr6();
+ void sr7();
+ void sr8();
+ void sr9();
+ void sr10();
+ void sr11();
+};
+
+struct Rlint:public yacco2::CAbs_lr1_sym {
+ Rlint(yacco2::Parser* P);
+ public:
+};
+
+struct Rla_minus:public yacco2::CAbs_lr1_sym {
+ Rla_minus(yacco2::Parser* P);
+ public:
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/la_expr_src.lex b/web/yacco2/compiler/grammars/la_expr_src.lex
new file mode 100644
index 0000000000..d84cf0060c
--- /dev/null
+++ b/web/yacco2/compiler/grammars/la_expr_src.lex
@@ -0,0 +1,184 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: la_expr_src.lex
+dates: 20 May 2005
+Purpose: Extract Grammar's lookahead expression
+ chopped up into strings, literals, identifiers, operators
+ and placed into a tok_can container for post compilation.
+errors: Err_no_end_of_code
+ Err_comment_overrun
+ Err_bad_eos
+ Err_bad_esc
+ Err_no_syntax_code_present
+ Err_bad_term_in_la_expr
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |la_expr_src| Thread.\fbreak
+Extract Grammar's lookahead expression
+chopped up into strings, literals, identifiers,
+operators, lr k constants, and keywords to be
+ placed into a |tok_can| container for post compilation.
+ Apart from the keywords and lr k constants,
+ the tokens are processed before the definition of a
+ grammar's vocabulary --- Terminals and Rules.
+ It is only after the grammar is completely parsed that
+ these tokens can be verified against the symbol table.
+
+ The parsed expression is placed into a token container of |T_la_expr_src|
+by |parallel_parser_phrase_th| for post evaluation by
+|la_expr_lexical| and |la_expr| grammars.
+@/
+fsm
+(fsm-id "la_expr_src.lex",fsm-filename la_expr_src,fsm-namespace NS_la_expr_src
+,fsm-class Cla_expr_src{
+ user-prefix-declaration
+#include "c_string.h"
+#include "identifier.h"
+#include "c_literal.h"
+#include "lint_balls.h"
+#include "o2_code_end.h"
+#include "la_lrk_T.h"
+#include "yacco2_stbl.h"
+using namespace NS_yacco2_terminals;
+ ***
+ user-declaration
+ public:
+ T_la_expr_src* exp_;
+ ***
+ op
+ exp_ = new T_la_expr_src;
+ exp_->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ parser__->set_use_all_shift_on();
+ ***
+ constructor
+ exp_ = 0;
+ ***
+ }
+,fsm-version "1.0",fsm-date "30 dec 2002",fsm-debug "false"
+,fsm-comments "Lexer: 1st stage of Lookahead source expression\n converted into raw character tokens for post evaluation.")
+parallel-parser
+(
+ parallel-thread-function
+ TH_la_expr_src
+ ***
+ parallel-la-boundary
+eog
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rla_expr_src (){
+ -> Rtoks
+}
+
+Rtoks (){
+ -> Rtok
+ -> Rtoks Rtok
+}
+
+Rtok (){
+ -> ||| "c-string" NS_c_string::TH_c_string{
+ op
+ Cla_expr_src* fsm = (Cla_expr_src*)rule_info__.parser__->fsm_tbl__;
+ fsm->exp_->la_tok_can()->push_back(*sf->p2__);
+ ***
+ }
+ -> ||| "c-literal" NS_c_literal::TH_c_literal{
+ op
+ Cla_expr_src* fsm = (Cla_expr_src*)rule_info__.parser__->fsm_tbl__;
+ fsm->exp_->la_tok_can()->push_back(*sf->p2__);
+ ***
+ }
+ -> ||| "#***" NS_o2_code_end::TH_o2_code_end{
+ op
+ Cla_expr_src* fsm = (Cla_expr_src*)rule_info__.parser__->fsm_tbl__;
+ T_eocode* k = sf->p2__;
+ k->set_auto_delete(true);
+ rule_info__.parser__->set_use_all_shift_off();
+ fsm->exp_->la_tok_can()->push_back(*yacco2::PTR_LR1_eog__);
+ fsm->exp_->la_tok_can()->push_back(*yacco2::PTR_LR1_eog__);
+ RSVP(fsm->exp_);
+ fsm->exp_=0;
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| identifier NS_identifier::TH_identifier{
+ op
+ Cla_expr_src* fsm = (Cla_expr_src*)rule_info__.parser__->fsm_tbl__;
+ fsm->exp_->la_tok_can()->push_back(*sf->p2__);
+ ***
+ }
+ -> |+| {
+/@
+Watch out for overrun.
+@/
+ op
+ Cla_expr_src* fsm = (Cla_expr_src*)rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* la_sym = sf->p1__;
+ using namespace NS_yacco2_T_enum;
+ using namespace NS_yacco2_terminals;
+ int id = la_sym->enumerated_id__;
+ if(id == T_Enum::T_LR1_eog_){
+ CAbs_lr1_sym* sym = new Err_no_end_of_code;
+ sym->set_rc(*la_sym,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ fsm->exp_->la_tok_can()->push_back(*la_sym);
+ ***
+ }
+ -> ||| "bad eos" NULL {// errors
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| "bad esc" NULL {// errors
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| "comment-overrun" NULL {// errors
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| |+| NS_la_lrk_T::TH_la_lrk_T {
+ op
+ Cla_expr_src* fsm = (Cla_expr_src*)rule_info__.parser__->fsm_tbl__;
+ fsm->exp_->la_tok_can()->push_back(*sf->p2__);
+ ***
+ }
+ -> "+" {
+ op
+ Cla_expr_src* fsm = (Cla_expr_src*)rule_info__.parser__->fsm_tbl__;
+ fsm->exp_->la_tok_can()->push_back(*sf->p1__);
+ ***
+ }
+ -> "-" {
+ op
+ Cla_expr_src* fsm = (Cla_expr_src*)rule_info__.parser__->fsm_tbl__;
+ fsm->exp_->la_tok_can()->push_back(*sf->p1__);
+ ***
+ }
+ -> Rlint
+}
+
+Rlint (){
+ -> ||| lint NS_lint_balls::TH_lint_balls
+ -> |.|
+}
+
+Rla_minus (){
+ -> "+"
+ -> "-"
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/la_expr_srcsym.cpp b/web/yacco2/compiler/grammars/la_expr_srcsym.cpp
new file mode 100644
index 0000000000..4fe6289da5
--- /dev/null
+++ b/web/yacco2/compiler/grammars/la_expr_srcsym.cpp
@@ -0,0 +1,325 @@
+/*
+ File: la_expr_srcsym.cpp
+ Date and Time: Fri Jan 30 18:55:13 2015
+*/
+#include "la_expr_src.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_la_expr_src;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_la_expr_src::TH_la_expr_src(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_la_expr_src;
+ NS_la_expr_src::Cla_expr_src Cla_expr_src_;// parallel-parser's parse table
+#define ssPARSE_TABLE Cla_expr_src_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_la_expr_src::PROC_TH_la_expr_src(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_la_expr_src";
+ static bool one_time(false);
+ static NS_la_expr_src::Cla_expr_src* NS_la_expr_src_Cla_expr_src_(0);// parallel-parser's fsm table
+ static Parser* NS_la_expr_src_Cla_expr_src_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_la_expr_src_Cla_expr_src_ = new NS_la_expr_src::Cla_expr_src();// parallel-parser's fsm table
+ NS_la_expr_src_Cla_expr_src_parser = new Parser(*NS_la_expr_src_Cla_expr_src_,Caller_pp);
+ }
+ proc_parser = NS_la_expr_src_Cla_expr_src_parser;
+#include "wproc_pp_core.h"
+}
+void
+Cla_expr_src::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rla_expr_src_:{
+ Rla_expr_src* sym;
+ if(re->rule_ == 0){
+ sym = new Rla_expr_src(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rla_expr_src*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rtoks_:{
+ Rtoks* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoks(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoks*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rtoks_:{
+ Rtoks* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoks(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoks*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rtok_:{
+ Rtok* sym;
+ if(re->rule_ == 0){
+ sym = new Rtok(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtok*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rtok_:{
+ Rtok* sym;
+ if(re->rule_ == 0){
+ sym = new Rtok(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtok*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rtok_:{
+ Rtok* sym;
+ if(re->rule_ == 0){
+ sym = new Rtok(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtok*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rtok_:{
+ Rtok* sym;
+ if(re->rule_ == 0){
+ sym = new Rtok(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtok*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr4();
+ return;}
+ case rhs5_Rtok_:{
+ Rtok* sym;
+ if(re->rule_ == 0){
+ sym = new Rtok(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtok*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr5();
+ return;}
+ case rhs6_Rtok_:{
+ Rtok* sym;
+ if(re->rule_ == 0){
+ sym = new Rtok(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtok*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr6();
+ return;}
+ case rhs7_Rtok_:{
+ Rtok* sym;
+ if(re->rule_ == 0){
+ sym = new Rtok(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtok*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr7();
+ return;}
+ case rhs8_Rtok_:{
+ Rtok* sym;
+ if(re->rule_ == 0){
+ sym = new Rtok(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtok*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr8();
+ return;}
+ case rhs9_Rtok_:{
+ Rtok* sym;
+ if(re->rule_ == 0){
+ sym = new Rtok(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtok*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr9();
+ return;}
+ case rhs10_Rtok_:{
+ Rtok* sym;
+ if(re->rule_ == 0){
+ sym = new Rtok(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtok*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr10();
+ return;}
+ case rhs11_Rtok_:{
+ Rtok* sym;
+ if(re->rule_ == 0){
+ sym = new Rtok(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtok*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr11();
+ return;}
+ case rhs12_Rtok_:{
+ Rtok* sym;
+ if(re->rule_ == 0){
+ sym = new Rtok(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtok*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rlint_:{
+ Rlint* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rlint_:{
+ Rlint* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rla_minus_:{
+ Rla_minus* sym;
+ if(re->rule_ == 0){
+ sym = new Rla_minus(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rla_minus*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rla_minus_:{
+ Rla_minus* sym;
+ if(re->rule_ == 0){
+ sym = new Rla_minus(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rla_minus*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/la_expr_srctbl.cpp b/web/yacco2/compiler/grammars/la_expr_srctbl.cpp
new file mode 100644
index 0000000000..599d482b00
--- /dev/null
+++ b/web/yacco2/compiler/grammars/la_expr_srctbl.cpp
@@ -0,0 +1,376 @@
+/*
+ File: la_expr_srctbl.cpp
+ Date and Time: Fri Jan 30 18:55:13 2015
+*/
+#include "la_expr_src.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_la_expr_src;// grammar's ns
+// first set terminals
+// LR1_eog
+// LR1_reduce_operator
+// LR1_invisible_shift_operator
+// LR1_all_shift_operator
+// raw_plus
+// raw_minus
+yacco2::UCHAR LA1_Cla_expr_src[] ={
+2
+,0,114
+,6,40
+};
+// LR1_eog
+yacco2::UCHAR LA2_Cla_expr_src[] ={
+1
+,0,2
+};
+extern yacco2::State S1_Cla_expr_src;
+extern yacco2::State S2_Cla_expr_src;
+struct S2ttd_Cla_expr_src{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[6];
+};
+S2ttd_Cla_expr_src S2tt_Cla_expr_src = {
+ 6 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_la_lrk_T
+ ,(yacco2::Thread_entry*)&ITH_c_literal
+ ,(yacco2::Thread_entry*)&ITH_c_string
+ ,(yacco2::Thread_entry*)&ITH_identifier
+ ,(yacco2::Thread_entry*)&ITH_o2_code_end
+ ,(yacco2::Thread_entry*)&ITH_lint_balls
+};
+extern yacco2::State S3_Cla_expr_src;
+extern yacco2::State S4_Cla_expr_src;
+extern yacco2::State S5_Cla_expr_src;
+extern yacco2::State S6_Cla_expr_src;
+extern yacco2::State S7_Cla_expr_src;
+extern yacco2::State S8_Cla_expr_src;
+extern yacco2::State S9_Cla_expr_src;
+extern yacco2::State S10_Cla_expr_src;
+extern yacco2::State S11_Cla_expr_src;
+extern yacco2::State S12_Cla_expr_src;
+extern yacco2::State S13_Cla_expr_src;
+extern yacco2::State S14_Cla_expr_src;
+extern yacco2::State S15_Cla_expr_src;
+extern yacco2::State S16_Cla_expr_src;
+extern yacco2::State S17_Cla_expr_src;
+extern yacco2::State S18_Cla_expr_src;
+extern yacco2::State S19_Cla_expr_src;
+struct S1std_Cla_expr_src{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[9];
+};
+S1std_Cla_expr_src S1st_Cla_expr_src = {
+ 9
+ ,
+ {// start of table
+ {3,(State*)&S2_Cla_expr_src} // shift sym: LR1_parallel_operator
+ ,{5,(State*)&S12_Cla_expr_src} // shift sym: LR1_invisible_shift_operator
+ ,{6,(State*)&S13_Cla_expr_src} // shift sym: LR1_all_shift_operator
+ ,{51,(State*)&S14_Cla_expr_src} // shift sym: raw_plus
+ ,{53,(State*)&S15_Cla_expr_src} // shift sym: raw_minus
+ ,{569,(State*)&S1_Cla_expr_src} // accept sym: Rla_expr_src
+ ,{570,(State*)&S16_Cla_expr_src} // shift sym: Rtoks
+ ,{571,(State*)&S19_Cla_expr_src} // shift sym: Rtok
+ ,{572,(State*)&S18_Cla_expr_src} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S1pse_Cla_expr_src = {3,(State*)&S2_Cla_expr_src};
+yacco2::Shift_entry S1ise_Cla_expr_src = {5,(State*)&S12_Cla_expr_src};
+yacco2::Shift_entry S1ase_Cla_expr_src = {6,(State*)&S13_Cla_expr_src};
+yacco2::State S1_Cla_expr_src = //State's vectored into symbol: " No symbol"
+{1
+,(Shift_entry*)&S1pse_Cla_expr_src,(Shift_entry*)&S1ase_Cla_expr_src
+,(Shift_entry*)&S1ise_Cla_expr_src
+,0,(Shift_tbl*)&S1st_Cla_expr_src,0,(State_s_thread_tbl*)&S2tt_Cla_expr_src,0,0};
+struct S2std_Cla_expr_src{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[9];
+};
+S2std_Cla_expr_src S2st_Cla_expr_src = {
+ 9
+ ,
+ {// start of table
+ {6,(State*)&S3_Cla_expr_src} // shift sym: LR1_all_shift_operator
+ ,{274,(State*)&S4_Cla_expr_src} // shift sym: T_c_literal
+ ,{275,(State*)&S5_Cla_expr_src} // shift sym: T_c_string
+ ,{279,(State*)&S6_Cla_expr_src} // shift sym: T_identifier
+ ,{284,(State*)&S7_Cla_expr_src} // shift sym: T_eocode
+ ,{375,(State*)&S8_Cla_expr_src} // shift sym: T_lint
+ ,{394,(State*)&S9_Cla_expr_src} // shift sym: Err_bad_eos
+ ,{395,(State*)&S10_Cla_expr_src} // shift sym: Err_bad_esc
+ ,{396,(State*)&S11_Cla_expr_src} // shift sym: Err_comment_overrun
+ }// end of shift table
+};
+yacco2::Shift_entry S2ase_Cla_expr_src = {6,(State*)&S3_Cla_expr_src};
+yacco2::State S2_Cla_expr_src = //State's vectored into symbol: "|||"
+{2
+,0,(Shift_entry*)&S2ase_Cla_expr_src
+,0,0,(Shift_tbl*)&S2st_Cla_expr_src,0,0,0,0};
+struct S3rtd_Cla_expr_src{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Cla_expr_src S3rt_Cla_expr_src = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_expr_src,Cla_expr_src::rhs9_Rtok_}
+ }// end of reduce table
+};
+yacco2::State S3_Cla_expr_src = //State's vectored into symbol: "|+|"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_Cla_expr_src,0,0,0};
+struct S4rtd_Cla_expr_src{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Cla_expr_src S4rt_Cla_expr_src = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_expr_src,Cla_expr_src::rhs2_Rtok_}
+ }// end of reduce table
+};
+yacco2::State S4_Cla_expr_src = //State's vectored into symbol: "c-literal"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Cla_expr_src,0,0,0};
+struct S5rtd_Cla_expr_src{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Cla_expr_src S5rt_Cla_expr_src = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_expr_src,Cla_expr_src::rhs1_Rtok_}
+ }// end of reduce table
+};
+yacco2::State S5_Cla_expr_src = //State's vectored into symbol: "c-string"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Cla_expr_src,0,0,0};
+struct S6rtd_Cla_expr_src{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Cla_expr_src S6rt_Cla_expr_src = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_expr_src,Cla_expr_src::rhs4_Rtok_}
+ }// end of reduce table
+};
+yacco2::State S6_Cla_expr_src = //State's vectored into symbol: "identifier"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Cla_expr_src,0,0,0};
+struct S7rtd_Cla_expr_src{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Cla_expr_src S7rt_Cla_expr_src = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_expr_src,Cla_expr_src::rhs3_Rtok_}
+ }// end of reduce table
+};
+yacco2::State S7_Cla_expr_src = //State's vectored into symbol: "#***"
+{7
+,0,0,0,0,0,(Reduce_tbl*)&S7rt_Cla_expr_src,0,0,0};
+struct S8rtd_Cla_expr_src{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S8rtd_Cla_expr_src S8rt_Cla_expr_src = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_expr_src,Cla_expr_src::rhs1_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S8_Cla_expr_src = //State's vectored into symbol: "lint"
+{8
+,0,0,0,0,0,(Reduce_tbl*)&S8rt_Cla_expr_src,0,0,0};
+struct S9rtd_Cla_expr_src{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Cla_expr_src S9rt_Cla_expr_src = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_expr_src,Cla_expr_src::rhs6_Rtok_}
+ }// end of reduce table
+};
+yacco2::State S9_Cla_expr_src = //State's vectored into symbol: "bad eos"
+{9
+,0,0,0,0,0,(Reduce_tbl*)&S9rt_Cla_expr_src,0,0,0};
+struct S10rtd_Cla_expr_src{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S10rtd_Cla_expr_src S10rt_Cla_expr_src = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_expr_src,Cla_expr_src::rhs7_Rtok_}
+ }// end of reduce table
+};
+yacco2::State S10_Cla_expr_src = //State's vectored into symbol: "bad esc"
+{10
+,0,0,0,0,0,(Reduce_tbl*)&S10rt_Cla_expr_src,0,0,0};
+struct S11rtd_Cla_expr_src{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Cla_expr_src S11rt_Cla_expr_src = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_expr_src,Cla_expr_src::rhs8_Rtok_}
+ }// end of reduce table
+};
+yacco2::State S11_Cla_expr_src = //State's vectored into symbol: "comment-overrun"
+{11
+,0,0,0,0,0,(Reduce_tbl*)&S11rt_Cla_expr_src,0,0,0};
+struct S12rtd_Cla_expr_src{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S12rtd_Cla_expr_src S12rt_Cla_expr_src = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_expr_src,Cla_expr_src::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S12_Cla_expr_src = //State's vectored into symbol: "|.|"
+{12
+,0,0,0,0,0,(Reduce_tbl*)&S12rt_Cla_expr_src,0,0,0};
+struct S13rtd_Cla_expr_src{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S13rtd_Cla_expr_src S13rt_Cla_expr_src = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_expr_src,Cla_expr_src::rhs5_Rtok_}
+ }// end of reduce table
+};
+yacco2::State S13_Cla_expr_src = //State's vectored into symbol: "|+|"
+{13
+,0,0,0,0,0,(Reduce_tbl*)&S13rt_Cla_expr_src,0,0,0};
+struct S14rtd_Cla_expr_src{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S14rtd_Cla_expr_src S14rt_Cla_expr_src = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_expr_src,Cla_expr_src::rhs10_Rtok_}
+ }// end of reduce table
+};
+yacco2::State S14_Cla_expr_src = //State's vectored into symbol: "+"
+{14
+,0,0,0,0,0,(Reduce_tbl*)&S14rt_Cla_expr_src,0,0,0};
+struct S15rtd_Cla_expr_src{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S15rtd_Cla_expr_src S15rt_Cla_expr_src = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_expr_src,Cla_expr_src::rhs11_Rtok_}
+ }// end of reduce table
+};
+yacco2::State S15_Cla_expr_src = //State's vectored into symbol: "-"
+{15
+,0,0,0,0,0,(Reduce_tbl*)&S15rt_Cla_expr_src,0,0,0};
+struct S16std_Cla_expr_src{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[7];
+};
+S16std_Cla_expr_src S16st_Cla_expr_src = {
+ 7
+ ,
+ {// start of table
+ {3,(State*)&S2_Cla_expr_src} // shift sym: LR1_parallel_operator
+ ,{5,(State*)&S12_Cla_expr_src} // shift sym: LR1_invisible_shift_operator
+ ,{6,(State*)&S13_Cla_expr_src} // shift sym: LR1_all_shift_operator
+ ,{51,(State*)&S14_Cla_expr_src} // shift sym: raw_plus
+ ,{53,(State*)&S15_Cla_expr_src} // shift sym: raw_minus
+ ,{571,(State*)&S17_Cla_expr_src} // shift sym: Rtok
+ ,{572,(State*)&S18_Cla_expr_src} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S16pse_Cla_expr_src = {3,(State*)&S2_Cla_expr_src};
+yacco2::Shift_entry S16ise_Cla_expr_src = {5,(State*)&S12_Cla_expr_src};
+yacco2::Shift_entry S16ase_Cla_expr_src = {6,(State*)&S13_Cla_expr_src};
+struct S16rtd_Cla_expr_src{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S16rtd_Cla_expr_src S16rt_Cla_expr_src = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cla_expr_src,Cla_expr_src::rhs1_Rla_expr_src_}
+ }// end of reduce table
+};
+yacco2::State S16_Cla_expr_src = //State's vectored into symbol: "Rtoks"
+{16
+,(Shift_entry*)&S16pse_Cla_expr_src,(Shift_entry*)&S16ase_Cla_expr_src
+,(Shift_entry*)&S16ise_Cla_expr_src
+,0,(Shift_tbl*)&S16st_Cla_expr_src,(Reduce_tbl*)&S16rt_Cla_expr_src,(State_s_thread_tbl*)&S2tt_Cla_expr_src,0,0};
+struct S17rtd_Cla_expr_src{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S17rtd_Cla_expr_src S17rt_Cla_expr_src = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_expr_src,Cla_expr_src::rhs2_Rtoks_}
+ }// end of reduce table
+};
+yacco2::State S17_Cla_expr_src = //State's vectored into symbol: "Rtok"
+{17
+,0,0,0,0,0,(Reduce_tbl*)&S17rt_Cla_expr_src,0,0,0};
+struct S18rtd_Cla_expr_src{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S18rtd_Cla_expr_src S18rt_Cla_expr_src = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_expr_src,Cla_expr_src::rhs12_Rtok_}
+ }// end of reduce table
+};
+yacco2::State S18_Cla_expr_src = //State's vectored into symbol: "Rlint"
+{18
+,0,0,0,0,0,(Reduce_tbl*)&S18rt_Cla_expr_src,0,0,0};
+struct S19rtd_Cla_expr_src{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S19rtd_Cla_expr_src S19rt_Cla_expr_src = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_expr_src,Cla_expr_src::rhs1_Rtoks_}
+ }// end of reduce table
+};
+yacco2::State S19_Cla_expr_src = //State's vectored into symbol: "Rtok"
+{19
+,0,0,0,0,0,(Reduce_tbl*)&S19rt_Cla_expr_src,0,0,0};
diff --git a/web/yacco2/compiler/grammars/la_exprsym.cpp b/web/yacco2/compiler/grammars/la_exprsym.cpp
new file mode 100644
index 0000000000..d9bf593b20
--- /dev/null
+++ b/web/yacco2/compiler/grammars/la_exprsym.cpp
@@ -0,0 +1,198 @@
+/*
+ File: la_exprsym.cpp
+ Date and Time: Fri Jan 30 18:55:13 2015
+*/
+#include "la_expr.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_la_expr;// grammar's ns
+// first set terminals
+// monolithic grammar --- no thread
+void
+Cla_expr::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rla_expr_:{
+ Rla_expr* sym;
+ if(re->rule_ == 0){
+ sym = new Rla_expr(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rla_expr*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Re_:{
+ Re* sym;
+ if(re->rule_ == 0){
+ sym = new Re(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Re*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Re_:{
+ Re* sym;
+ if(re->rule_ == 0){
+ sym = new Re(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Re*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Re_:{
+ Re* sym;
+ if(re->rule_ == 0){
+ sym = new Re(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Re*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs4_Re_:{
+ Re* sym;
+ if(re->rule_ == 0){
+ sym = new Re(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Re*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr4();
+ return;}
+ case rhs1_Rerr_bad_oper_:{
+ Rerr_bad_oper* sym;
+ if(re->rule_ == 0){
+ sym = new Rerr_bad_oper(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rerr_bad_oper*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rt_:{
+ Rt* sym;
+ if(re->rule_ == 0){
+ sym = new Rt(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rt*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rt_:{
+ Rt* sym;
+ if(re->rule_ == 0){
+ sym = new Rt(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rt*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rt_:{
+ Rt* sym;
+ if(re->rule_ == 0){
+ sym = new Rt(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rt*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rminus_:{
+ Rminus* sym;
+ if(re->rule_ == 0){
+ sym = new Rminus(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rminus*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rplus_:{
+ Rplus* sym;
+ if(re->rule_ == 0){
+ sym = new Rplus(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rplus*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/la_exprtbl.cpp b/web/yacco2/compiler/grammars/la_exprtbl.cpp
new file mode 100644
index 0000000000..7bb2cee77f
--- /dev/null
+++ b/web/yacco2/compiler/grammars/la_exprtbl.cpp
@@ -0,0 +1,285 @@
+/*
+ File: la_exprtbl.cpp
+ Date and Time: Fri Jan 30 18:55:13 2015
+*/
+#include "la_expr.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_la_expr;// grammar's ns
+// first set terminals
+// LR1_questionable_shift_operator
+// LR1_eog
+// raw_plus
+// raw_minus
+yacco2::UCHAR LA1_Cla_expr[] ={
+2
+,0,3
+,6,40
+};
+// LR1_eolr
+yacco2::UCHAR LA2_Cla_expr[] ={
+1
+,0,4
+};
+// LR1_all_shift_operator
+// T_in_stbl
+// rule_in_stbl
+yacco2::UCHAR LA3_Cla_expr[] ={
+2
+,0,64
+,43,5
+};
+extern yacco2::State S1_Cla_expr;
+extern yacco2::State S2_Cla_expr;
+extern yacco2::State S3_Cla_expr;
+extern yacco2::State S4_Cla_expr;
+extern yacco2::State S5_Cla_expr;
+extern yacco2::State S6_Cla_expr;
+extern yacco2::State S7_Cla_expr;
+extern yacco2::State S8_Cla_expr;
+extern yacco2::State S9_Cla_expr;
+extern yacco2::State S10_Cla_expr;
+extern yacco2::State S11_Cla_expr;
+extern yacco2::State S12_Cla_expr;
+extern yacco2::State S13_Cla_expr;
+extern yacco2::State S14_Cla_expr;
+extern yacco2::State S15_Cla_expr;
+struct S1std_Cla_expr{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[6];
+};
+S1std_Cla_expr S1st_Cla_expr = {
+ 6
+ ,
+ {// start of table
+ {6,(State*)&S2_Cla_expr} // shift sym: LR1_all_shift_operator
+ ,{344,(State*)&S3_Cla_expr} // shift sym: T_in_stbl
+ ,{346,(State*)&S4_Cla_expr} // shift sym: rule_in_stbl
+ ,{569,(State*)&S1_Cla_expr} // accept sym: Rla_expr
+ ,{570,(State*)&S5_Cla_expr} // shift sym: Re
+ ,{572,(State*)&S15_Cla_expr} // shift sym: Rt
+ }// end of shift table
+};
+yacco2::Shift_entry S1ase_Cla_expr = {6,(State*)&S2_Cla_expr};
+yacco2::State S1_Cla_expr = //State's vectored into symbol: " No symbol"
+{1
+,0,(Shift_entry*)&S1ase_Cla_expr
+,0,0,(Shift_tbl*)&S1st_Cla_expr,0,0,0,0};
+struct S2rtd_Cla_expr{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Cla_expr S2rt_Cla_expr = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_expr,Cla_expr::rhs3_Rt_}
+ }// end of reduce table
+};
+yacco2::State S2_Cla_expr = //State's vectored into symbol: "|+|"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Cla_expr,0,0,0};
+struct S3rtd_Cla_expr{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Cla_expr S3rt_Cla_expr = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_expr,Cla_expr::rhs1_Rt_}
+ }// end of reduce table
+};
+yacco2::State S3_Cla_expr = //State's vectored into symbol: "T-in-stbl"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_Cla_expr,0,0,0};
+struct S4rtd_Cla_expr{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Cla_expr S4rt_Cla_expr = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_expr,Cla_expr::rhs2_Rt_}
+ }// end of reduce table
+};
+yacco2::State S4_Cla_expr = //State's vectored into symbol: "rule-in-stbl"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Cla_expr,0,0,0};
+struct S5std_Cla_expr{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[7];
+};
+S5std_Cla_expr S5st_Cla_expr = {
+ 7
+ ,
+ {// start of table
+ {0,(State*)&S6_Cla_expr} // shift sym: LR1_questionable_shift_operator
+ ,{1,(State*)&S7_Cla_expr} // shift sym: LR1_eog
+ ,{51,(State*)&S8_Cla_expr} // shift sym: raw_plus
+ ,{53,(State*)&S9_Cla_expr} // shift sym: raw_minus
+ ,{571,(State*)&S10_Cla_expr} // shift sym: Rerr_bad_oper
+ ,{573,(State*)&S11_Cla_expr} // shift sym: Rminus
+ ,{574,(State*)&S13_Cla_expr} // shift sym: Rplus
+ }// end of shift table
+};
+yacco2::Shift_entry S5qse_Cla_expr = {0,(State*)&S6_Cla_expr};
+yacco2::State S5_Cla_expr = //State's vectored into symbol: "Re"
+{5
+,0,0,0,0,(Shift_tbl*)&S5st_Cla_expr,0,0,0,(Shift_entry*)&S5qse_Cla_expr
+};
+struct S6rtd_Cla_expr{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Cla_expr S6rt_Cla_expr = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_expr,Cla_expr::rhs1_Rerr_bad_oper_}
+ }// end of reduce table
+};
+yacco2::State S6_Cla_expr = //State's vectored into symbol: "|?|"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Cla_expr,0,0,0};
+struct S7rtd_Cla_expr{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Cla_expr S7rt_Cla_expr = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cla_expr,Cla_expr::rhs1_Rla_expr_}
+ }// end of reduce table
+};
+yacco2::State S7_Cla_expr = //State's vectored into symbol: "eog"
+{7
+,0,0,0,0,0,(Reduce_tbl*)&S7rt_Cla_expr,0,0,0};
+struct S8rtd_Cla_expr{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S8rtd_Cla_expr S8rt_Cla_expr = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cla_expr,Cla_expr::rhs1_Rplus_}
+ }// end of reduce table
+};
+yacco2::State S8_Cla_expr = //State's vectored into symbol: "+"
+{8
+,0,0,0,0,0,(Reduce_tbl*)&S8rt_Cla_expr,0,0,0};
+struct S9rtd_Cla_expr{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Cla_expr S9rt_Cla_expr = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cla_expr,Cla_expr::rhs1_Rminus_}
+ }// end of reduce table
+};
+yacco2::State S9_Cla_expr = //State's vectored into symbol: "-"
+{9
+,0,0,0,0,0,(Reduce_tbl*)&S9rt_Cla_expr,0,0,0};
+struct S10rtd_Cla_expr{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S10rtd_Cla_expr S10rt_Cla_expr = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_expr,Cla_expr::rhs3_Re_}
+ }// end of reduce table
+};
+yacco2::State S10_Cla_expr = //State's vectored into symbol: "Rerr_bad_oper"
+{10
+,0,0,0,0,0,(Reduce_tbl*)&S10rt_Cla_expr,0,0,0};
+struct S11std_Cla_expr{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S11std_Cla_expr S11st_Cla_expr = {
+ 4
+ ,
+ {// start of table
+ {6,(State*)&S2_Cla_expr} // shift sym: LR1_all_shift_operator
+ ,{344,(State*)&S3_Cla_expr} // shift sym: T_in_stbl
+ ,{346,(State*)&S4_Cla_expr} // shift sym: rule_in_stbl
+ ,{572,(State*)&S12_Cla_expr} // shift sym: Rt
+ }// end of shift table
+};
+yacco2::Shift_entry S11ase_Cla_expr = {6,(State*)&S2_Cla_expr};
+yacco2::State S11_Cla_expr = //State's vectored into symbol: "Rminus"
+{11
+,0,(Shift_entry*)&S11ase_Cla_expr
+,0,0,(Shift_tbl*)&S11st_Cla_expr,0,0,0,0};
+struct S12rtd_Cla_expr{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S12rtd_Cla_expr S12rt_Cla_expr = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_expr,Cla_expr::rhs2_Re_}
+ }// end of reduce table
+};
+yacco2::State S12_Cla_expr = //State's vectored into symbol: "Rt"
+{12
+,0,0,0,0,0,(Reduce_tbl*)&S12rt_Cla_expr,0,0,0};
+struct S13std_Cla_expr{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S13std_Cla_expr S13st_Cla_expr = {
+ 4
+ ,
+ {// start of table
+ {6,(State*)&S2_Cla_expr} // shift sym: LR1_all_shift_operator
+ ,{344,(State*)&S3_Cla_expr} // shift sym: T_in_stbl
+ ,{346,(State*)&S4_Cla_expr} // shift sym: rule_in_stbl
+ ,{572,(State*)&S14_Cla_expr} // shift sym: Rt
+ }// end of shift table
+};
+yacco2::Shift_entry S13ase_Cla_expr = {6,(State*)&S2_Cla_expr};
+yacco2::State S13_Cla_expr = //State's vectored into symbol: "Rplus"
+{13
+,0,(Shift_entry*)&S13ase_Cla_expr
+,0,0,(Shift_tbl*)&S13st_Cla_expr,0,0,0,0};
+struct S14rtd_Cla_expr{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S14rtd_Cla_expr S14rt_Cla_expr = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_expr,Cla_expr::rhs1_Re_}
+ }// end of reduce table
+};
+yacco2::State S14_Cla_expr = //State's vectored into symbol: "Rt"
+{14
+,0,0,0,0,0,(Reduce_tbl*)&S14rt_Cla_expr,0,0,0};
+struct S15rtd_Cla_expr{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S15rtd_Cla_expr S15rt_Cla_expr = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_expr,Cla_expr::rhs4_Re_}
+ }// end of reduce table
+};
+yacco2::State S15_Cla_expr = //State's vectored into symbol: "Rt"
+{15
+,0,0,0,0,0,(Reduce_tbl*)&S15rt_Cla_expr,0,0,0};
diff --git a/web/yacco2/compiler/grammars/la_lrk_T.cpp b/web/yacco2/compiler/grammars/la_lrk_T.cpp
new file mode 100644
index 0000000000..adef01ff84
--- /dev/null
+++ b/web/yacco2/compiler/grammars/la_lrk_T.cpp
@@ -0,0 +1,185 @@
+/*
+ File: la_lrk_T.cpp
+ Date and Time: Fri Jan 30 18:55:14 2015
+*/
+#include "la_lrk_T.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_la_lrk_T;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 1;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+}
+ Cla_lrk_T::
+ Cla_lrk_T()
+ :yacco2::CAbs_fsm
+ ("la_lrk_T.lex"
+ ,"1.0"
+ ,"17 Juin 2003"
+ ,false
+ ,"Unquoted lookahead source symbol recognizer."
+ ,"Fri Jan 30 18:55:14 2015 "
+ ,S1_Cla_lrk_T){
+
+ }
+
+Cla_lrk_T::~Cla_lrk_T(){
+
+ for(int x = 0;x < 1;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cla_lrk_T::failed(){
+ return false;
+ }
+ void Cla_lrk_T::op(){
+}
+int Cla_lrk_T::rhs_to_rules_mapping_[16] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,0 // subrule 2 for rule 1
+ ,0 // subrule 3 for rule 1
+ ,0 // subrule 4 for rule 1
+ ,0 // subrule 5 for rule 1
+ ,0 // subrule 6 for rule 1
+ ,0 // subrule 7 for rule 1
+ ,0 // subrule 8 for rule 1
+ ,0 // subrule 9 for rule 1
+ ,0 // subrule 10 for rule 1
+ ,0 // subrule 11 for rule 1
+ ,0 // subrule 12 for rule 1
+ ,0 // subrule 13 for rule 1
+ ,0 // subrule 14 for rule 1
+ ,0 // subrule 15 for rule 1
+};
+Rla_lrk_T::Rla_lrk_T(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rla_lrk_T",0,Cla_lrk_T::R_Rla_lrk_T_,P,false,false){
+}
+
+void Rla_lrk_T::sr1(){
+
+ CAbs_lr1_sym* sym = new LR1_parallel_operator;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+
+}
+
+void Rla_lrk_T::sr2(){
+
+ CAbs_lr1_sym* sym = new LR1_parallel_operator;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+
+}
+
+void Rla_lrk_T::sr3(){
+
+ CAbs_lr1_sym* sym = new LR1_parallel_operator;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+
+}
+
+void Rla_lrk_T::sr4(){
+
+ CAbs_lr1_sym* sym = new LR1_all_shift_operator;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+
+}
+
+void Rla_lrk_T::sr5(){
+
+ CAbs_lr1_sym* sym = new LR1_all_shift_operator;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+
+}
+
+void Rla_lrk_T::sr6(){
+
+ CAbs_lr1_sym* sym = new LR1_all_shift_operator;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+
+}
+
+void Rla_lrk_T::sr7(){
+
+ CAbs_lr1_sym* sym = new LR1_invisible_shift_operator;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+
+}
+
+void Rla_lrk_T::sr8(){
+
+ CAbs_lr1_sym* sym = new LR1_invisible_shift_operator;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+
+}
+
+void Rla_lrk_T::sr9(){
+
+ CAbs_lr1_sym* sym = new LR1_invisible_shift_operator;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+
+}
+
+void Rla_lrk_T::sr10(){
+
+ CAbs_lr1_sym* sym = new LR1_reduce_operator;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+
+}
+
+void Rla_lrk_T::sr11(){
+
+ CAbs_lr1_sym* sym = new LR1_reduce_operator;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+
+}
+
+void Rla_lrk_T::sr12(){
+
+ CAbs_lr1_sym* sym = new LR1_reduce_operator;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+
+}
+
+void Rla_lrk_T::sr13(){
+
+ CAbs_lr1_sym* sym = new LR1_fset_transience_operator;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+
+}
+
+void Rla_lrk_T::sr14(){
+
+ CAbs_lr1_sym* sym = new LR1_fset_transience_operator;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+
+}
+
+void Rla_lrk_T::sr15(){
+
+ CAbs_lr1_sym* sym = new LR1_fset_transience_operator;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+
+}
+
diff --git a/web/yacco2/compiler/grammars/la_lrk_T.fsc b/web/yacco2/compiler/grammars/la_lrk_T.fsc
new file mode 100644
index 0000000000..34dc764d55
--- /dev/null
+++ b/web/yacco2/compiler/grammars/la_lrk_T.fsc
@@ -0,0 +1,22 @@
+/*
+ File: la_lrk_T.fsc
+ Date and Time: Fri Jan 30 18:55:14 2015
+*/
+transitive n
+grammar-name "la_lrk_T"
+name-space "NS_la_lrk_T"
+thread-name "TH_la_lrk_T"
+monolithic n
+file-name "la_lrk_T.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 3
+ raw_dbl_quote
+ raw_right_quote
+ raw_vertical_line
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"Unquoted lookahead source symbol recognizer."
diff --git a/web/yacco2/compiler/grammars/la_lrk_T.h b/web/yacco2/compiler/grammars/la_lrk_T.h
new file mode 100644
index 0000000000..5d22111076
--- /dev/null
+++ b/web/yacco2/compiler/grammars/la_lrk_T.h
@@ -0,0 +1,83 @@
+/*
+ File: la_lrk_T.h
+ Date and Time: Fri Jan 30 18:55:14 2015
+*/
+#ifndef __la_lrk_T_h__
+#define __la_lrk_T_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+extern yacco2::Thread_entry ITH_la_lrk_T;
+
+extern yacco2::State S1_Cla_lrk_T;
+namespace NS_la_lrk_T {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_la_lrk_T(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_la_lrk_T(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[1];
+};
+class Cla_lrk_T: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rla_lrk_T_ = 569//start_of_rule_list + 0
+ ,rhs1_Rla_lrk_T_ = 1
+ ,rhs2_Rla_lrk_T_ = 2
+ ,rhs3_Rla_lrk_T_ = 3
+ ,rhs4_Rla_lrk_T_ = 4
+ ,rhs5_Rla_lrk_T_ = 5
+ ,rhs6_Rla_lrk_T_ = 6
+ ,rhs7_Rla_lrk_T_ = 7
+ ,rhs8_Rla_lrk_T_ = 8
+ ,rhs9_Rla_lrk_T_ = 9
+ ,rhs10_Rla_lrk_T_ = 10
+ ,rhs11_Rla_lrk_T_ = 11
+ ,rhs12_Rla_lrk_T_ = 12
+ ,rhs13_Rla_lrk_T_ = 13
+ ,rhs14_Rla_lrk_T_ = 14
+ ,rhs15_Rla_lrk_T_ = 15
+ };
+ //no of la sets = 1
+ //no of states = 46
+ Cla_lrk_T();
+ ~Cla_lrk_T();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[16];
+ };
+struct Rla_lrk_T;
+struct Rla_lrk_T:public yacco2::CAbs_lr1_sym {
+ Rla_lrk_T(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+ void sr5();
+ void sr6();
+ void sr7();
+ void sr8();
+ void sr9();
+ void sr10();
+ void sr11();
+ void sr12();
+ void sr13();
+ void sr14();
+ void sr15();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/la_lrk_T.lex b/web/yacco2/compiler/grammars/la_lrk_T.lex
new file mode 100644
index 0000000000..5f1d11cd1c
--- /dev/null
+++ b/web/yacco2/compiler/grammars/la_lrk_T.lex
@@ -0,0 +1,147 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: la_lrk_T.lex
+dates: 17 Juin 2003
+Purpose: lookahead expression lrk symbols recognizer that are unquoted
+Returned: table entry
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |la_lrk_T| Thread.\fbreak
+Recognize the meta terminals of LR K and returns them.
+These are passed backed to the
+calling grammar |la_expr_src|.
+
+Added wolf in sheep's clothing: single and double quoted lrk strings.
+|la_expr_src| corrected to arbitrate on subset / superset:
+lrk string versus its general quoted string.
+@/
+fsm
+(fsm-id "la_lrk_T.lex",fsm-filename la_lrk_T,fsm-namespace NS_la_lrk_T
+,fsm-class Cla_lrk_T
+,fsm-version "1.0",fsm-date "17 Juin 2003",fsm-debug "false"
+,fsm-comments "Unquoted lookahead source symbol recognizer.")
+parallel-parser
+(
+ parallel-thread-function
+ TH_la_lrk_T
+ ***
+ parallel-la-boundary
+ eolr
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rla_lrk_T () {
+ -> "|" "|" "|" {
+ op
+ CAbs_lr1_sym* sym = new LR1_parallel_operator;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ ***
+ }
+ -> "\"" "|" "|" "|" "\"" {
+ op
+ CAbs_lr1_sym* sym = new LR1_parallel_operator;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ ***
+ }
+ -> "'" "|" "|" "|" "'" {
+ op
+ CAbs_lr1_sym* sym = new LR1_parallel_operator;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ ***
+ }
+ -> "|" "+" "|" {
+ op
+ CAbs_lr1_sym* sym = new LR1_all_shift_operator;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ ***
+ }
+ -> "\"" "|" "+" "|" "\"" {
+ op
+ CAbs_lr1_sym* sym = new LR1_all_shift_operator;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ ***
+ }
+ -> "'" "|" "+" "|" "'" {
+ op
+ CAbs_lr1_sym* sym = new LR1_all_shift_operator;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ ***
+ }
+ -> "|" "." "|" {
+ op
+ CAbs_lr1_sym* sym = new LR1_invisible_shift_operator;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ ***
+ }
+ -> "\"" "|" "." "|" "\"" {
+ op
+ CAbs_lr1_sym* sym = new LR1_invisible_shift_operator;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ ***
+ }
+ -> "'" "|" "." "|" "'" {
+ op
+ CAbs_lr1_sym* sym = new LR1_invisible_shift_operator;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ ***
+ }
+ -> "|" "r" "|" {
+ op
+ CAbs_lr1_sym* sym = new LR1_reduce_operator;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ ***
+ }
+ -> "\"" "|" "r" "|" "\"" {
+ op
+ CAbs_lr1_sym* sym = new LR1_reduce_operator;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ ***
+ }
+ -> "'" "|" "r" "|" "'" {
+ op
+ CAbs_lr1_sym* sym = new LR1_reduce_operator;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ ***
+ }
+
+ -> "|" "t" "|" {
+ op
+ CAbs_lr1_sym* sym = new LR1_fset_transience_operator;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ ***
+ }
+ -> "\"" "|" "t" "|" "\"" {
+ op
+ CAbs_lr1_sym* sym = new LR1_fset_transience_operator;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ ***
+ }
+ -> "'" "|" "t" "|" "'" {
+ op
+ CAbs_lr1_sym* sym = new LR1_fset_transience_operator;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/la_lrk_Tsym.cpp b/web/yacco2/compiler/grammars/la_lrk_Tsym.cpp
new file mode 100644
index 0000000000..75ca280250
--- /dev/null
+++ b/web/yacco2/compiler/grammars/la_lrk_Tsym.cpp
@@ -0,0 +1,273 @@
+/*
+ File: la_lrk_Tsym.cpp
+ Date and Time: Fri Jan 30 18:55:14 2015
+*/
+#include "la_lrk_T.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_la_lrk_T;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_la_lrk_T::TH_la_lrk_T(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_la_lrk_T;
+ NS_la_lrk_T::Cla_lrk_T Cla_lrk_T_;// parallel-parser's parse table
+#define ssPARSE_TABLE Cla_lrk_T_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_la_lrk_T::PROC_TH_la_lrk_T(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_la_lrk_T";
+ static bool one_time(false);
+ static NS_la_lrk_T::Cla_lrk_T* NS_la_lrk_T_Cla_lrk_T_(0);// parallel-parser's fsm table
+ static Parser* NS_la_lrk_T_Cla_lrk_T_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_la_lrk_T_Cla_lrk_T_ = new NS_la_lrk_T::Cla_lrk_T();// parallel-parser's fsm table
+ NS_la_lrk_T_Cla_lrk_T_parser = new Parser(*NS_la_lrk_T_Cla_lrk_T_,Caller_pp);
+ }
+ proc_parser = NS_la_lrk_T_Cla_lrk_T_parser;
+#include "wproc_pp_core.h"
+}
+void
+Cla_lrk_T::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rla_lrk_T_:{
+ Rla_lrk_T* sym;
+ if(re->rule_ == 0){
+ sym = new Rla_lrk_T(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rla_lrk_T*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rla_lrk_T_:{
+ Rla_lrk_T* sym;
+ if(re->rule_ == 0){
+ sym = new Rla_lrk_T(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rla_lrk_T*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rla_lrk_T_:{
+ Rla_lrk_T* sym;
+ if(re->rule_ == 0){
+ sym = new Rla_lrk_T(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rla_lrk_T*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rla_lrk_T_:{
+ Rla_lrk_T* sym;
+ if(re->rule_ == 0){
+ sym = new Rla_lrk_T(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rla_lrk_T*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ sym->sr4();
+ return;}
+ case rhs5_Rla_lrk_T_:{
+ Rla_lrk_T* sym;
+ if(re->rule_ == 0){
+ sym = new Rla_lrk_T(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rla_lrk_T*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ sym->sr5();
+ return;}
+ case rhs6_Rla_lrk_T_:{
+ Rla_lrk_T* sym;
+ if(re->rule_ == 0){
+ sym = new Rla_lrk_T(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rla_lrk_T*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ sym->sr6();
+ return;}
+ case rhs7_Rla_lrk_T_:{
+ Rla_lrk_T* sym;
+ if(re->rule_ == 0){
+ sym = new Rla_lrk_T(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rla_lrk_T*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ sym->sr7();
+ return;}
+ case rhs8_Rla_lrk_T_:{
+ Rla_lrk_T* sym;
+ if(re->rule_ == 0){
+ sym = new Rla_lrk_T(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rla_lrk_T*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ sym->sr8();
+ return;}
+ case rhs9_Rla_lrk_T_:{
+ Rla_lrk_T* sym;
+ if(re->rule_ == 0){
+ sym = new Rla_lrk_T(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rla_lrk_T*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ sym->sr9();
+ return;}
+ case rhs10_Rla_lrk_T_:{
+ Rla_lrk_T* sym;
+ if(re->rule_ == 0){
+ sym = new Rla_lrk_T(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rla_lrk_T*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ sym->sr10();
+ return;}
+ case rhs11_Rla_lrk_T_:{
+ Rla_lrk_T* sym;
+ if(re->rule_ == 0){
+ sym = new Rla_lrk_T(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rla_lrk_T*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ sym->sr11();
+ return;}
+ case rhs12_Rla_lrk_T_:{
+ Rla_lrk_T* sym;
+ if(re->rule_ == 0){
+ sym = new Rla_lrk_T(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rla_lrk_T*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ sym->sr12();
+ return;}
+ case rhs13_Rla_lrk_T_:{
+ Rla_lrk_T* sym;
+ if(re->rule_ == 0){
+ sym = new Rla_lrk_T(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rla_lrk_T*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ sym->sr13();
+ return;}
+ case rhs14_Rla_lrk_T_:{
+ Rla_lrk_T* sym;
+ if(re->rule_ == 0){
+ sym = new Rla_lrk_T(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rla_lrk_T*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ sym->sr14();
+ return;}
+ case rhs15_Rla_lrk_T_:{
+ Rla_lrk_T* sym;
+ if(re->rule_ == 0){
+ sym = new Rla_lrk_T(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rla_lrk_T*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ sym->sr15();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/la_lrk_Ttbl.cpp b/web/yacco2/compiler/grammars/la_lrk_Ttbl.cpp
new file mode 100644
index 0000000000..7b0ce02531
--- /dev/null
+++ b/web/yacco2/compiler/grammars/la_lrk_Ttbl.cpp
@@ -0,0 +1,723 @@
+/*
+ File: la_lrk_Ttbl.cpp
+ Date and Time: Fri Jan 30 18:55:14 2015
+*/
+#include "la_lrk_T.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_la_lrk_T;// grammar's ns
+// first set terminals
+// LR1_eolr
+yacco2::UCHAR LA1_Cla_lrk_T[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Cla_lrk_T;
+extern yacco2::State S2_Cla_lrk_T;
+extern yacco2::State S3_Cla_lrk_T;
+extern yacco2::State S4_Cla_lrk_T;
+extern yacco2::State S5_Cla_lrk_T;
+extern yacco2::State S6_Cla_lrk_T;
+extern yacco2::State S7_Cla_lrk_T;
+extern yacco2::State S8_Cla_lrk_T;
+extern yacco2::State S9_Cla_lrk_T;
+extern yacco2::State S10_Cla_lrk_T;
+extern yacco2::State S11_Cla_lrk_T;
+extern yacco2::State S12_Cla_lrk_T;
+extern yacco2::State S13_Cla_lrk_T;
+extern yacco2::State S14_Cla_lrk_T;
+extern yacco2::State S15_Cla_lrk_T;
+extern yacco2::State S16_Cla_lrk_T;
+extern yacco2::State S17_Cla_lrk_T;
+extern yacco2::State S18_Cla_lrk_T;
+extern yacco2::State S19_Cla_lrk_T;
+extern yacco2::State S20_Cla_lrk_T;
+extern yacco2::State S21_Cla_lrk_T;
+extern yacco2::State S22_Cla_lrk_T;
+extern yacco2::State S23_Cla_lrk_T;
+extern yacco2::State S24_Cla_lrk_T;
+extern yacco2::State S25_Cla_lrk_T;
+extern yacco2::State S26_Cla_lrk_T;
+extern yacco2::State S27_Cla_lrk_T;
+extern yacco2::State S28_Cla_lrk_T;
+extern yacco2::State S29_Cla_lrk_T;
+extern yacco2::State S30_Cla_lrk_T;
+extern yacco2::State S31_Cla_lrk_T;
+extern yacco2::State S32_Cla_lrk_T;
+extern yacco2::State S33_Cla_lrk_T;
+extern yacco2::State S34_Cla_lrk_T;
+extern yacco2::State S35_Cla_lrk_T;
+extern yacco2::State S36_Cla_lrk_T;
+extern yacco2::State S37_Cla_lrk_T;
+extern yacco2::State S38_Cla_lrk_T;
+extern yacco2::State S39_Cla_lrk_T;
+extern yacco2::State S40_Cla_lrk_T;
+extern yacco2::State S41_Cla_lrk_T;
+extern yacco2::State S42_Cla_lrk_T;
+extern yacco2::State S43_Cla_lrk_T;
+extern yacco2::State S44_Cla_lrk_T;
+extern yacco2::State S45_Cla_lrk_T;
+extern yacco2::State S46_Cla_lrk_T;
+struct S1std_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S1std_Cla_lrk_T S1st_Cla_lrk_T = {
+ 4
+ ,
+ {// start of table
+ {42,(State*)&S2_Cla_lrk_T} // shift sym: raw_dbl_quote
+ ,{47,(State*)&S19_Cla_lrk_T} // shift sym: raw_right_quote
+ ,{132,(State*)&S36_Cla_lrk_T} // shift sym: raw_vertical_line
+ ,{569,(State*)&S1_Cla_lrk_T} // accept sym: Rla_lrk_T
+ }// end of shift table
+};
+yacco2::State S1_Cla_lrk_T = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Cla_lrk_T,0,0,0,0};
+struct S2std_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S2std_Cla_lrk_T S2st_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {132,(State*)&S3_Cla_lrk_T} // shift sym: raw_vertical_line
+ }// end of shift table
+};
+yacco2::State S2_Cla_lrk_T = //State's vectored into symbol: "\""
+{2
+,0,0,0,0,(Shift_tbl*)&S2st_Cla_lrk_T,0,0,0,0};
+struct S3std_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S3std_Cla_lrk_T S3st_Cla_lrk_T = {
+ 5
+ ,
+ {// start of table
+ {51,(State*)&S4_Cla_lrk_T} // shift sym: raw_plus
+ ,{54,(State*)&S7_Cla_lrk_T} // shift sym: raw_period
+ ,{122,(State*)&S10_Cla_lrk_T} // shift sym: raw_r
+ ,{124,(State*)&S13_Cla_lrk_T} // shift sym: raw_t
+ ,{132,(State*)&S16_Cla_lrk_T} // shift sym: raw_vertical_line
+ }// end of shift table
+};
+yacco2::State S3_Cla_lrk_T = //State's vectored into symbol: "|"
+{3
+,0,0,0,0,(Shift_tbl*)&S3st_Cla_lrk_T,0,0,0,0};
+struct S4std_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S4std_Cla_lrk_T S4st_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {132,(State*)&S5_Cla_lrk_T} // shift sym: raw_vertical_line
+ }// end of shift table
+};
+yacco2::State S4_Cla_lrk_T = //State's vectored into symbol: "+"
+{4
+,0,0,0,0,(Shift_tbl*)&S4st_Cla_lrk_T,0,0,0,0};
+struct S5std_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S5std_Cla_lrk_T S5st_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {42,(State*)&S6_Cla_lrk_T} // shift sym: raw_dbl_quote
+ }// end of shift table
+};
+yacco2::State S5_Cla_lrk_T = //State's vectored into symbol: "|"
+{5
+,0,0,0,0,(Shift_tbl*)&S5st_Cla_lrk_T,0,0,0,0};
+struct S6rtd_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Cla_lrk_T S6rt_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_lrk_T,Cla_lrk_T::rhs5_Rla_lrk_T_}
+ }// end of reduce table
+};
+yacco2::State S6_Cla_lrk_T = //State's vectored into symbol: "\""
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Cla_lrk_T,0,0,0};
+struct S7std_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S7std_Cla_lrk_T S7st_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {132,(State*)&S8_Cla_lrk_T} // shift sym: raw_vertical_line
+ }// end of shift table
+};
+yacco2::State S7_Cla_lrk_T = //State's vectored into symbol: "."
+{7
+,0,0,0,0,(Shift_tbl*)&S7st_Cla_lrk_T,0,0,0,0};
+struct S8std_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S8std_Cla_lrk_T S8st_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {42,(State*)&S9_Cla_lrk_T} // shift sym: raw_dbl_quote
+ }// end of shift table
+};
+yacco2::State S8_Cla_lrk_T = //State's vectored into symbol: "|"
+{8
+,0,0,0,0,(Shift_tbl*)&S8st_Cla_lrk_T,0,0,0,0};
+struct S9rtd_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Cla_lrk_T S9rt_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_lrk_T,Cla_lrk_T::rhs8_Rla_lrk_T_}
+ }// end of reduce table
+};
+yacco2::State S9_Cla_lrk_T = //State's vectored into symbol: "\""
+{9
+,0,0,0,0,0,(Reduce_tbl*)&S9rt_Cla_lrk_T,0,0,0};
+struct S10std_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S10std_Cla_lrk_T S10st_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {132,(State*)&S11_Cla_lrk_T} // shift sym: raw_vertical_line
+ }// end of shift table
+};
+yacco2::State S10_Cla_lrk_T = //State's vectored into symbol: "r"
+{10
+,0,0,0,0,(Shift_tbl*)&S10st_Cla_lrk_T,0,0,0,0};
+struct S11std_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S11std_Cla_lrk_T S11st_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {42,(State*)&S12_Cla_lrk_T} // shift sym: raw_dbl_quote
+ }// end of shift table
+};
+yacco2::State S11_Cla_lrk_T = //State's vectored into symbol: "|"
+{11
+,0,0,0,0,(Shift_tbl*)&S11st_Cla_lrk_T,0,0,0,0};
+struct S12rtd_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S12rtd_Cla_lrk_T S12rt_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_lrk_T,Cla_lrk_T::rhs11_Rla_lrk_T_}
+ }// end of reduce table
+};
+yacco2::State S12_Cla_lrk_T = //State's vectored into symbol: "\""
+{12
+,0,0,0,0,0,(Reduce_tbl*)&S12rt_Cla_lrk_T,0,0,0};
+struct S13std_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S13std_Cla_lrk_T S13st_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {132,(State*)&S14_Cla_lrk_T} // shift sym: raw_vertical_line
+ }// end of shift table
+};
+yacco2::State S13_Cla_lrk_T = //State's vectored into symbol: "t"
+{13
+,0,0,0,0,(Shift_tbl*)&S13st_Cla_lrk_T,0,0,0,0};
+struct S14std_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S14std_Cla_lrk_T S14st_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {42,(State*)&S15_Cla_lrk_T} // shift sym: raw_dbl_quote
+ }// end of shift table
+};
+yacco2::State S14_Cla_lrk_T = //State's vectored into symbol: "|"
+{14
+,0,0,0,0,(Shift_tbl*)&S14st_Cla_lrk_T,0,0,0,0};
+struct S15rtd_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S15rtd_Cla_lrk_T S15rt_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_lrk_T,Cla_lrk_T::rhs14_Rla_lrk_T_}
+ }// end of reduce table
+};
+yacco2::State S15_Cla_lrk_T = //State's vectored into symbol: "\""
+{15
+,0,0,0,0,0,(Reduce_tbl*)&S15rt_Cla_lrk_T,0,0,0};
+struct S16std_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S16std_Cla_lrk_T S16st_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {132,(State*)&S17_Cla_lrk_T} // shift sym: raw_vertical_line
+ }// end of shift table
+};
+yacco2::State S16_Cla_lrk_T = //State's vectored into symbol: "|"
+{16
+,0,0,0,0,(Shift_tbl*)&S16st_Cla_lrk_T,0,0,0,0};
+struct S17std_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S17std_Cla_lrk_T S17st_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {42,(State*)&S18_Cla_lrk_T} // shift sym: raw_dbl_quote
+ }// end of shift table
+};
+yacco2::State S17_Cla_lrk_T = //State's vectored into symbol: "|"
+{17
+,0,0,0,0,(Shift_tbl*)&S17st_Cla_lrk_T,0,0,0,0};
+struct S18rtd_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S18rtd_Cla_lrk_T S18rt_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_lrk_T,Cla_lrk_T::rhs2_Rla_lrk_T_}
+ }// end of reduce table
+};
+yacco2::State S18_Cla_lrk_T = //State's vectored into symbol: "\""
+{18
+,0,0,0,0,0,(Reduce_tbl*)&S18rt_Cla_lrk_T,0,0,0};
+struct S19std_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S19std_Cla_lrk_T S19st_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {132,(State*)&S20_Cla_lrk_T} // shift sym: raw_vertical_line
+ }// end of shift table
+};
+yacco2::State S19_Cla_lrk_T = //State's vectored into symbol: "'"
+{19
+,0,0,0,0,(Shift_tbl*)&S19st_Cla_lrk_T,0,0,0,0};
+struct S20std_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S20std_Cla_lrk_T S20st_Cla_lrk_T = {
+ 5
+ ,
+ {// start of table
+ {51,(State*)&S21_Cla_lrk_T} // shift sym: raw_plus
+ ,{54,(State*)&S24_Cla_lrk_T} // shift sym: raw_period
+ ,{122,(State*)&S27_Cla_lrk_T} // shift sym: raw_r
+ ,{124,(State*)&S30_Cla_lrk_T} // shift sym: raw_t
+ ,{132,(State*)&S33_Cla_lrk_T} // shift sym: raw_vertical_line
+ }// end of shift table
+};
+yacco2::State S20_Cla_lrk_T = //State's vectored into symbol: "|"
+{20
+,0,0,0,0,(Shift_tbl*)&S20st_Cla_lrk_T,0,0,0,0};
+struct S21std_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S21std_Cla_lrk_T S21st_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {132,(State*)&S22_Cla_lrk_T} // shift sym: raw_vertical_line
+ }// end of shift table
+};
+yacco2::State S21_Cla_lrk_T = //State's vectored into symbol: "+"
+{21
+,0,0,0,0,(Shift_tbl*)&S21st_Cla_lrk_T,0,0,0,0};
+struct S22std_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S22std_Cla_lrk_T S22st_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {47,(State*)&S23_Cla_lrk_T} // shift sym: raw_right_quote
+ }// end of shift table
+};
+yacco2::State S22_Cla_lrk_T = //State's vectored into symbol: "|"
+{22
+,0,0,0,0,(Shift_tbl*)&S22st_Cla_lrk_T,0,0,0,0};
+struct S23rtd_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S23rtd_Cla_lrk_T S23rt_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_lrk_T,Cla_lrk_T::rhs6_Rla_lrk_T_}
+ }// end of reduce table
+};
+yacco2::State S23_Cla_lrk_T = //State's vectored into symbol: "'"
+{23
+,0,0,0,0,0,(Reduce_tbl*)&S23rt_Cla_lrk_T,0,0,0};
+struct S24std_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S24std_Cla_lrk_T S24st_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {132,(State*)&S25_Cla_lrk_T} // shift sym: raw_vertical_line
+ }// end of shift table
+};
+yacco2::State S24_Cla_lrk_T = //State's vectored into symbol: "."
+{24
+,0,0,0,0,(Shift_tbl*)&S24st_Cla_lrk_T,0,0,0,0};
+struct S25std_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S25std_Cla_lrk_T S25st_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {47,(State*)&S26_Cla_lrk_T} // shift sym: raw_right_quote
+ }// end of shift table
+};
+yacco2::State S25_Cla_lrk_T = //State's vectored into symbol: "|"
+{25
+,0,0,0,0,(Shift_tbl*)&S25st_Cla_lrk_T,0,0,0,0};
+struct S26rtd_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S26rtd_Cla_lrk_T S26rt_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_lrk_T,Cla_lrk_T::rhs9_Rla_lrk_T_}
+ }// end of reduce table
+};
+yacco2::State S26_Cla_lrk_T = //State's vectored into symbol: "'"
+{26
+,0,0,0,0,0,(Reduce_tbl*)&S26rt_Cla_lrk_T,0,0,0};
+struct S27std_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S27std_Cla_lrk_T S27st_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {132,(State*)&S28_Cla_lrk_T} // shift sym: raw_vertical_line
+ }// end of shift table
+};
+yacco2::State S27_Cla_lrk_T = //State's vectored into symbol: "r"
+{27
+,0,0,0,0,(Shift_tbl*)&S27st_Cla_lrk_T,0,0,0,0};
+struct S28std_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S28std_Cla_lrk_T S28st_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {47,(State*)&S29_Cla_lrk_T} // shift sym: raw_right_quote
+ }// end of shift table
+};
+yacco2::State S28_Cla_lrk_T = //State's vectored into symbol: "|"
+{28
+,0,0,0,0,(Shift_tbl*)&S28st_Cla_lrk_T,0,0,0,0};
+struct S29rtd_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S29rtd_Cla_lrk_T S29rt_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_lrk_T,Cla_lrk_T::rhs12_Rla_lrk_T_}
+ }// end of reduce table
+};
+yacco2::State S29_Cla_lrk_T = //State's vectored into symbol: "'"
+{29
+,0,0,0,0,0,(Reduce_tbl*)&S29rt_Cla_lrk_T,0,0,0};
+struct S30std_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S30std_Cla_lrk_T S30st_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {132,(State*)&S31_Cla_lrk_T} // shift sym: raw_vertical_line
+ }// end of shift table
+};
+yacco2::State S30_Cla_lrk_T = //State's vectored into symbol: "t"
+{30
+,0,0,0,0,(Shift_tbl*)&S30st_Cla_lrk_T,0,0,0,0};
+struct S31std_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S31std_Cla_lrk_T S31st_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {47,(State*)&S32_Cla_lrk_T} // shift sym: raw_right_quote
+ }// end of shift table
+};
+yacco2::State S31_Cla_lrk_T = //State's vectored into symbol: "|"
+{31
+,0,0,0,0,(Shift_tbl*)&S31st_Cla_lrk_T,0,0,0,0};
+struct S32rtd_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S32rtd_Cla_lrk_T S32rt_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_lrk_T,Cla_lrk_T::rhs15_Rla_lrk_T_}
+ }// end of reduce table
+};
+yacco2::State S32_Cla_lrk_T = //State's vectored into symbol: "'"
+{32
+,0,0,0,0,0,(Reduce_tbl*)&S32rt_Cla_lrk_T,0,0,0};
+struct S33std_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S33std_Cla_lrk_T S33st_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {132,(State*)&S34_Cla_lrk_T} // shift sym: raw_vertical_line
+ }// end of shift table
+};
+yacco2::State S33_Cla_lrk_T = //State's vectored into symbol: "|"
+{33
+,0,0,0,0,(Shift_tbl*)&S33st_Cla_lrk_T,0,0,0,0};
+struct S34std_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S34std_Cla_lrk_T S34st_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {47,(State*)&S35_Cla_lrk_T} // shift sym: raw_right_quote
+ }// end of shift table
+};
+yacco2::State S34_Cla_lrk_T = //State's vectored into symbol: "|"
+{34
+,0,0,0,0,(Shift_tbl*)&S34st_Cla_lrk_T,0,0,0,0};
+struct S35rtd_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S35rtd_Cla_lrk_T S35rt_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_lrk_T,Cla_lrk_T::rhs3_Rla_lrk_T_}
+ }// end of reduce table
+};
+yacco2::State S35_Cla_lrk_T = //State's vectored into symbol: "'"
+{35
+,0,0,0,0,0,(Reduce_tbl*)&S35rt_Cla_lrk_T,0,0,0};
+struct S36std_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S36std_Cla_lrk_T S36st_Cla_lrk_T = {
+ 5
+ ,
+ {// start of table
+ {51,(State*)&S37_Cla_lrk_T} // shift sym: raw_plus
+ ,{54,(State*)&S39_Cla_lrk_T} // shift sym: raw_period
+ ,{122,(State*)&S41_Cla_lrk_T} // shift sym: raw_r
+ ,{124,(State*)&S43_Cla_lrk_T} // shift sym: raw_t
+ ,{132,(State*)&S45_Cla_lrk_T} // shift sym: raw_vertical_line
+ }// end of shift table
+};
+yacco2::State S36_Cla_lrk_T = //State's vectored into symbol: "|"
+{36
+,0,0,0,0,(Shift_tbl*)&S36st_Cla_lrk_T,0,0,0,0};
+struct S37std_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S37std_Cla_lrk_T S37st_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {132,(State*)&S38_Cla_lrk_T} // shift sym: raw_vertical_line
+ }// end of shift table
+};
+yacco2::State S37_Cla_lrk_T = //State's vectored into symbol: "+"
+{37
+,0,0,0,0,(Shift_tbl*)&S37st_Cla_lrk_T,0,0,0,0};
+struct S38rtd_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S38rtd_Cla_lrk_T S38rt_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_lrk_T,Cla_lrk_T::rhs4_Rla_lrk_T_}
+ }// end of reduce table
+};
+yacco2::State S38_Cla_lrk_T = //State's vectored into symbol: "|"
+{38
+,0,0,0,0,0,(Reduce_tbl*)&S38rt_Cla_lrk_T,0,0,0};
+struct S39std_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S39std_Cla_lrk_T S39st_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {132,(State*)&S40_Cla_lrk_T} // shift sym: raw_vertical_line
+ }// end of shift table
+};
+yacco2::State S39_Cla_lrk_T = //State's vectored into symbol: "."
+{39
+,0,0,0,0,(Shift_tbl*)&S39st_Cla_lrk_T,0,0,0,0};
+struct S40rtd_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S40rtd_Cla_lrk_T S40rt_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_lrk_T,Cla_lrk_T::rhs7_Rla_lrk_T_}
+ }// end of reduce table
+};
+yacco2::State S40_Cla_lrk_T = //State's vectored into symbol: "|"
+{40
+,0,0,0,0,0,(Reduce_tbl*)&S40rt_Cla_lrk_T,0,0,0};
+struct S41std_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S41std_Cla_lrk_T S41st_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {132,(State*)&S42_Cla_lrk_T} // shift sym: raw_vertical_line
+ }// end of shift table
+};
+yacco2::State S41_Cla_lrk_T = //State's vectored into symbol: "r"
+{41
+,0,0,0,0,(Shift_tbl*)&S41st_Cla_lrk_T,0,0,0,0};
+struct S42rtd_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S42rtd_Cla_lrk_T S42rt_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_lrk_T,Cla_lrk_T::rhs10_Rla_lrk_T_}
+ }// end of reduce table
+};
+yacco2::State S42_Cla_lrk_T = //State's vectored into symbol: "|"
+{42
+,0,0,0,0,0,(Reduce_tbl*)&S42rt_Cla_lrk_T,0,0,0};
+struct S43std_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S43std_Cla_lrk_T S43st_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {132,(State*)&S44_Cla_lrk_T} // shift sym: raw_vertical_line
+ }// end of shift table
+};
+yacco2::State S43_Cla_lrk_T = //State's vectored into symbol: "t"
+{43
+,0,0,0,0,(Shift_tbl*)&S43st_Cla_lrk_T,0,0,0,0};
+struct S44rtd_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S44rtd_Cla_lrk_T S44rt_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_lrk_T,Cla_lrk_T::rhs13_Rla_lrk_T_}
+ }// end of reduce table
+};
+yacco2::State S44_Cla_lrk_T = //State's vectored into symbol: "|"
+{44
+,0,0,0,0,0,(Reduce_tbl*)&S44rt_Cla_lrk_T,0,0,0};
+struct S45std_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S45std_Cla_lrk_T S45st_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {132,(State*)&S46_Cla_lrk_T} // shift sym: raw_vertical_line
+ }// end of shift table
+};
+yacco2::State S45_Cla_lrk_T = //State's vectored into symbol: "|"
+{45
+,0,0,0,0,(Shift_tbl*)&S45st_Cla_lrk_T,0,0,0,0};
+struct S46rtd_Cla_lrk_T{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S46rtd_Cla_lrk_T S46rt_Cla_lrk_T = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cla_lrk_T,Cla_lrk_T::rhs1_Rla_lrk_T_}
+ }// end of reduce table
+};
+yacco2::State S46_Cla_lrk_T = //State's vectored into symbol: "|"
+{46
+,0,0,0,0,0,(Reduce_tbl*)&S46rt_Cla_lrk_T,0,0,0};
diff --git a/web/yacco2/compiler/grammars/lib/Debug/info.txt b/web/yacco2/compiler/grammars/lib/Debug/info.txt
new file mode 100644
index 0000000000..8b825b8190
--- /dev/null
+++ b/web/yacco2/compiler/grammars/lib/Debug/info.txt
@@ -0,0 +1,14 @@
+0) Debug folder used to hold a debugging library of o2grammars used by programs: o2 and o2linker
+1) U can turn on dynamic tracing facilities of Yacco2 or add your own tracing stuff within these grammars
+2) Regen the grammars using o2grammars.sh
+3) Rebuild the debug o2grammars library using bld_bash_APPLE or other platform scripts.
+ Make sure you put this debug version in this folder
+4) Then rebuild o2 and / or o2linker and link them against this debug library
+
+Please read the bld_bash* scripts where there are appropriate debug comments.
+
+If u suspect Yacco2's grammars are in trouble, then put in your own tracing facilities and rebuild them.
+Have a read of compiler/grammars/makefile_APPLE script or other platforms
+
+Please read o2book.pdf for more comments on tracing facilities.
+
diff --git a/web/yacco2/compiler/grammars/lib/Release/libo2grammars.a b/web/yacco2/compiler/grammars/lib/Release/libo2grammars.a
new file mode 100644
index 0000000000..b3931e76cf
--- /dev/null
+++ b/web/yacco2/compiler/grammars/lib/Release/libo2grammars.a
Binary files differ
diff --git a/web/yacco2/compiler/grammars/link_cleanser.cpp b/web/yacco2/compiler/grammars/link_cleanser.cpp
new file mode 100644
index 0000000000..8bd502d1e0
--- /dev/null
+++ b/web/yacco2/compiler/grammars/link_cleanser.cpp
@@ -0,0 +1,315 @@
+/*
+ File: link_cleanser.cpp
+ Date and Time: Fri Jan 30 18:55:14 2015
+*/
+#include "link_cleanser.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_link_cleanser;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 3;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+}
+ Clink_cleanser::
+ Clink_cleanser()
+ :yacco2::CAbs_fsm
+ ("link_cleanser.lex"
+ ,"1.0"
+ ,"17 Apr 2001"
+ ,false
+ ,"Lexer: \\olinker's cleanser from \n previous lexing to remove chaffe before parsing stage."
+ ,"Fri Jan 30 18:55:14 2015 "
+ ,S1_Clink_cleanser){
+
+ }
+
+Clink_cleanser::~Clink_cleanser(){
+
+ for(int x = 0;x < 3;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Clink_cleanser::failed(){
+ return false;
+ }
+ void Clink_cleanser::op(){
+}
+int Clink_cleanser::rhs_to_rules_mapping_[20] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,0 // subrule 2 for rule 1
+ ,1 // subrule 3 for rule 2
+ ,1 // subrule 4 for rule 2
+ ,2 // subrule 5 for rule 3
+ ,2 // subrule 6 for rule 3
+ ,2 // subrule 7 for rule 3
+ ,2 // subrule 8 for rule 3
+ ,2 // subrule 9 for rule 3
+ ,2 // subrule 10 for rule 3
+ ,2 // subrule 11 for rule 3
+ ,2 // subrule 12 for rule 3
+ ,2 // subrule 13 for rule 3
+ ,2 // subrule 14 for rule 3
+ ,2 // subrule 15 for rule 3
+ ,2 // subrule 16 for rule 3
+ ,2 // subrule 17 for rule 3
+ ,2 // subrule 18 for rule 3
+ ,2 // subrule 19 for rule 3
+};
+Rpass3::Rpass3(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rpass3",0,Clink_cleanser::R_Rpass3_,P,false,false){
+}
+
+void Rpass3::op(){
+ sstrace_rulesss
+
+ using namespace NS_yacco2_k_symbols;
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*yacco2::PTR_LR1_eog__);
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*yacco2::PTR_LR1_eog__);
+
+}
+Relems::Relems(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Relems",0,Clink_cleanser::R_Relems_,P,false,false){
+}
+
+Rtoken::Rtoken(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rtoken",0,Clink_cleanser::R_Rtoken_,P,false,false){
+}
+
+void Rtoken::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_comment* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ T_comment* k = sf->p2__;
+ k->set_auto_delete(true);
+
+}
+
+void Rtoken::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_c_string* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken::sr4(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p1__);
+
+}
+
+void Rtoken::sr5(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Err_bad_eos* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_abort_parse(true);
+
+}
+
+void Rtoken::sr6(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_identifier* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken::sr7(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_int_no* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken::sr8(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Err_comment_overrun* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_abort_parse(true);
+
+}
+
+void Rtoken::sr9(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Err_bad_esc* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_abort_parse(true);
+
+}
+
+void Rtoken::sr11(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Err_bad_char* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Err_bad_char* k = sf->p2__;
+ ADD_TOKEN_TO_ERROR_QUEUE(*k);
+ rule_info__.parser__->set_abort_parse(true);
+
+}
+
+void Rtoken::sr12(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_in_stbl* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken::sr13(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ th_in_stbl* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken::sr14(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ kw_in_stbl* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ kw_in_stbl* kw = sf->p2__;
+ CAbs_lr1_sym* sym = kw->keyword_in_stbl();
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sym);
+
+}
+
+void Rtoken::sr15(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
diff --git a/web/yacco2/compiler/grammars/link_cleanser.fsc b/web/yacco2/compiler/grammars/link_cleanser.fsc
new file mode 100644
index 0000000000..5021a2e9d8
--- /dev/null
+++ b/web/yacco2/compiler/grammars/link_cleanser.fsc
@@ -0,0 +1,35 @@
+/*
+ File: link_cleanser.fsc
+ Date and Time: Fri Jan 30 18:55:14 2015
+*/
+transitive y
+grammar-name "link_cleanser"
+name-space "NS_link_cleanser"
+thread-name "Clink_cleanser"
+monolithic y
+file-name "link_cleanser.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 2
+ LR1_eog
+ LR1_all_shift_operator
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 7
+ NS_ws::TH_ws
+ NS_linker_id::TH_linker_id
+ NS_int_no::TH_int_no
+ NS_eol::TH_eol
+ NS_c_comments::TH_c_comments
+ NS_c_string::TH_c_string
+ NS_bad_char_set::TH_bad_char_set
+end-list-of-transitive-threads
+list-of-used-threads 7
+ NS_bad_char_set::TH_bad_char_set
+ NS_c_comments::TH_c_comments
+ NS_c_string::TH_c_string
+ NS_eol::TH_eol
+ NS_int_no::TH_int_no
+ NS_linker_id::TH_linker_id
+ NS_ws::TH_ws
+end-list-of-used-threads
+fsm-comments
+"Lexer: \\olinker's cleanser from \n previous lexing to remove chaffe before parsing stage."
diff --git a/web/yacco2/compiler/grammars/link_cleanser.h b/web/yacco2/compiler/grammars/link_cleanser.h
new file mode 100644
index 0000000000..18ab7df2fa
--- /dev/null
+++ b/web/yacco2/compiler/grammars/link_cleanser.h
@@ -0,0 +1,104 @@
+/*
+ File: link_cleanser.h
+ Date and Time: Fri Jan 30 18:55:14 2015
+*/
+#ifndef __link_cleanser_h__
+#define __link_cleanser_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "linker_id.h"
+#include "ws.h"
+#include "c_comments.h"
+#include "c_string.h"
+#include "bad_char_set.h"
+#include "eol.h"
+#include "int_no.h"
+
+// monolithic grammar: no thread
+extern yacco2::State S1_Clink_cleanser;
+namespace NS_link_cleanser {
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[3];
+};
+class Clink_cleanser: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rpass3_ = 569//start_of_rule_list + 0
+ ,rhs1_Rpass3_ = 1
+ ,rhs2_Rpass3_ = 2
+ ,R_Relems_ = 570//start_of_rule_list + 2
+ ,rhs1_Relems_ = 3
+ ,rhs2_Relems_ = 4
+ ,R_Rtoken_ = 571//start_of_rule_list + 4
+ ,rhs1_Rtoken_ = 5
+ ,rhs2_Rtoken_ = 6
+ ,rhs3_Rtoken_ = 7
+ ,rhs4_Rtoken_ = 8
+ ,rhs5_Rtoken_ = 9
+ ,rhs6_Rtoken_ = 10
+ ,rhs7_Rtoken_ = 11
+ ,rhs8_Rtoken_ = 12
+ ,rhs9_Rtoken_ = 13
+ ,rhs10_Rtoken_ = 14
+ ,rhs11_Rtoken_ = 15
+ ,rhs12_Rtoken_ = 16
+ ,rhs13_Rtoken_ = 17
+ ,rhs14_Rtoken_ = 18
+ ,rhs15_Rtoken_ = 19
+ };
+ //no of la sets = 2
+ //no of states = 22
+ Clink_cleanser();
+ ~Clink_cleanser();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[20];
+ };
+struct Rpass3;
+struct Relems;
+struct Rtoken;
+struct Rpass3:public yacco2::CAbs_lr1_sym {
+ Rpass3(yacco2::Parser* P);
+ void op();
+ public:
+};
+
+struct Relems:public yacco2::CAbs_lr1_sym {
+ Relems(yacco2::Parser* P);
+ public:
+};
+
+struct Rtoken:public yacco2::CAbs_lr1_sym {
+ Rtoken(yacco2::Parser* P);
+ public:
+ void sr2();
+ void sr3();
+ void sr4();
+ void sr5();
+ void sr6();
+ void sr7();
+ void sr8();
+ void sr9();
+ void sr11();
+ void sr12();
+ void sr13();
+ void sr14();
+ void sr15();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/link_cleanser.lex b/web/yacco2/compiler/grammars/link_cleanser.lex
new file mode 100644
index 0000000000..f525852890
--- /dev/null
+++ b/web/yacco2/compiler/grammars/link_cleanser.lex
@@ -0,0 +1,140 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: link_cleanser.lex
+dates: 15 Mar 2005
+Purpose: Lexical Phase for Linker
+Use: throw out the chaffe like comments eol etc.
+ the downstream phase per language deals with its syntax.
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |link_cleanser| grammar.\fbreak
+Lexical Phase for Linker.
+This is a front end to \O2's linker.
+It throws out the chaffe
+and puts the balance into a holding container for
+parsing.
+This is my old style of parsing
+but now the 2 stages has been brought into 1 stage like |pass3|.
+It use to be |pass1|..|pass3| grammars.
+@/
+
+fsm
+(fsm-id "link_cleanser.lex",fsm-filename link_cleanser,fsm-namespace NS_link_cleanser
+,fsm-class Clink_cleanser{
+ user-prefix-declaration
+#include "linker_id.h"
+#include "ws.h"
+#include "c_comments.h"
+#include "c_string.h"
+#include "bad_char_set.h"
+#include "eol.h"
+#include "int_no.h"
+ ***
+ }
+,fsm-version "1.0",fsm-date "17 Apr 2001",fsm-debug "false"
+,fsm-comments "Lexer: \\olinker's cleanser from \n previous lexing to remove chaffe before parsing stage.")
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rpass3 (
+lhs{
+ op
+ using namespace NS_yacco2_k_symbols;
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*yacco2::PTR_LR1_eog__);
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*yacco2::PTR_LR1_eog__);
+ ***
+ }
+){
+ -> eog
+ -> Relems eog
+}
+
+Relems (){
+ -> Rtoken
+ -> Relems Rtoken
+}
+
+Rtoken (){
+ -> ||| ws NS_ws::TH_ws
+
+ -> ||| "comment" NS_c_comments::TH_c_comments {
+ op
+ T_comment* k = sf->p2__;
+ k->set_auto_delete(true);
+ ***
+ }
+ -> ||| "c-string" NS_c_string::TH_c_string{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> |+| { // add balance of characters to queue Eg. n or y
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p1__);
+ ***
+ }
+ -> ||| "bad eos" NULL { //
+ op
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_abort_parse(true);
+ ***
+ }
+ -> ||| "identifier" NS_linker_id::TH_linker_id{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "int-no" NS_int_no::TH_int_no{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "comment-overrun" NULL{
+ op
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_abort_parse(true);
+ ***
+ }
+ -> ||| "bad esc" NULL{
+ op
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_abort_parse(true);
+ ***
+ }
+ -> ||| eol NS_eol::TH_eol
+ -> ||| "bad char" NS_bad_char_set::TH_bad_char_set{
+ op
+ Err_bad_char* k = sf->p2__;
+ ADD_TOKEN_TO_ERROR_QUEUE(*k);
+ rule_info__.parser__->set_abort_parse(true);
+ ***
+ }
+ -> ||| "T-in-stbl" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "th-in-stbl" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "kw-in-stbl" NULL{
+ op
+ kw_in_stbl* kw = sf->p2__;
+ CAbs_lr1_sym* sym = kw->keyword_in_stbl();
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sym);
+ ***
+ }
+ -> ||| |+| NULL {// keywords
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/link_cleansersym.cpp b/web/yacco2/compiler/grammars/link_cleansersym.cpp
new file mode 100644
index 0000000000..6bc81159c1
--- /dev/null
+++ b/web/yacco2/compiler/grammars/link_cleansersym.cpp
@@ -0,0 +1,308 @@
+/*
+ File: link_cleansersym.cpp
+ Date and Time: Fri Jan 30 18:55:14 2015
+*/
+#include "link_cleanser.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_link_cleanser;// grammar's ns
+// first set terminals
+// monolithic grammar --- no thread
+void
+Clink_cleanser::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rpass3_:{
+ Rpass3* sym;
+ if(re->rule_ == 0){
+ sym = new Rpass3(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rpass3*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs2_Rpass3_:{
+ Rpass3* sym;
+ if(re->rule_ == 0){
+ sym = new Rpass3(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rpass3*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->op();
+ return;}
+ case rhs1_Relems_:{
+ Relems* sym;
+ if(re->rule_ == 0){
+ sym = new Relems(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Relems*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Relems_:{
+ Relems* sym;
+ if(re->rule_ == 0){
+ sym = new Relems(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Relems*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rtoken_:{
+ Rtoken* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rtoken_:{
+ Rtoken* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rtoken_:{
+ Rtoken* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rtoken_:{
+ Rtoken* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr4();
+ return;}
+ case rhs5_Rtoken_:{
+ Rtoken* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr5();
+ return;}
+ case rhs6_Rtoken_:{
+ Rtoken* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr6();
+ return;}
+ case rhs7_Rtoken_:{
+ Rtoken* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr7();
+ return;}
+ case rhs8_Rtoken_:{
+ Rtoken* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr8();
+ return;}
+ case rhs9_Rtoken_:{
+ Rtoken* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr9();
+ return;}
+ case rhs10_Rtoken_:{
+ Rtoken* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs11_Rtoken_:{
+ Rtoken* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr11();
+ return;}
+ case rhs12_Rtoken_:{
+ Rtoken* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr12();
+ return;}
+ case rhs13_Rtoken_:{
+ Rtoken* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr13();
+ return;}
+ case rhs14_Rtoken_:{
+ Rtoken* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr14();
+ return;}
+ case rhs15_Rtoken_:{
+ Rtoken* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr15();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/link_cleansertbl.cpp b/web/yacco2/compiler/grammars/link_cleansertbl.cpp
new file mode 100644
index 0000000000..b7cf2a1768
--- /dev/null
+++ b/web/yacco2/compiler/grammars/link_cleansertbl.cpp
@@ -0,0 +1,402 @@
+/*
+ File: link_cleansertbl.cpp
+ Date and Time: Fri Jan 30 18:55:14 2015
+*/
+#include "link_cleanser.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_link_cleanser;// grammar's ns
+// first set terminals
+// LR1_eolr
+yacco2::UCHAR LA1_Clink_cleanser[] ={
+1
+,0,4
+};
+// LR1_eog
+// LR1_reduce_operator
+// LR1_all_shift_operator
+yacco2::UCHAR LA2_Clink_cleanser[] ={
+1
+,0,82
+};
+extern yacco2::State S1_Clink_cleanser;
+extern yacco2::State S2_Clink_cleanser;
+extern yacco2::State S3_Clink_cleanser;
+struct S3ttd_Clink_cleanser{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[7];
+};
+S3ttd_Clink_cleanser S3tt_Clink_cleanser = {
+ 7 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_eol
+ ,(yacco2::Thread_entry*)&ITH_c_comments
+ ,(yacco2::Thread_entry*)&ITH_ws
+ ,(yacco2::Thread_entry*)&ITH_c_string
+ ,(yacco2::Thread_entry*)&ITH_linker_id
+ ,(yacco2::Thread_entry*)&ITH_int_no
+ ,(yacco2::Thread_entry*)&ITH_bad_char_set
+};
+extern yacco2::State S4_Clink_cleanser;
+extern yacco2::State S5_Clink_cleanser;
+extern yacco2::State S6_Clink_cleanser;
+extern yacco2::State S7_Clink_cleanser;
+extern yacco2::State S8_Clink_cleanser;
+extern yacco2::State S9_Clink_cleanser;
+extern yacco2::State S10_Clink_cleanser;
+extern yacco2::State S11_Clink_cleanser;
+extern yacco2::State S12_Clink_cleanser;
+extern yacco2::State S13_Clink_cleanser;
+extern yacco2::State S14_Clink_cleanser;
+extern yacco2::State S15_Clink_cleanser;
+extern yacco2::State S16_Clink_cleanser;
+extern yacco2::State S17_Clink_cleanser;
+extern yacco2::State S18_Clink_cleanser;
+extern yacco2::State S19_Clink_cleanser;
+extern yacco2::State S20_Clink_cleanser;
+extern yacco2::State S21_Clink_cleanser;
+extern yacco2::State S22_Clink_cleanser;
+struct S1std_Clink_cleanser{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[6];
+};
+S1std_Clink_cleanser S1st_Clink_cleanser = {
+ 6
+ ,
+ {// start of table
+ {1,(State*)&S2_Clink_cleanser} // shift sym: LR1_eog
+ ,{3,(State*)&S3_Clink_cleanser} // shift sym: LR1_parallel_operator
+ ,{6,(State*)&S18_Clink_cleanser} // shift sym: LR1_all_shift_operator
+ ,{569,(State*)&S1_Clink_cleanser} // accept sym: Rpass3
+ ,{570,(State*)&S19_Clink_cleanser} // shift sym: Relems
+ ,{571,(State*)&S22_Clink_cleanser} // shift sym: Rtoken
+ }// end of shift table
+};
+yacco2::Shift_entry S1pse_Clink_cleanser = {3,(State*)&S3_Clink_cleanser};
+yacco2::Shift_entry S1ase_Clink_cleanser = {6,(State*)&S18_Clink_cleanser};
+yacco2::State S1_Clink_cleanser = //State's vectored into symbol: " No symbol"
+{1
+,(Shift_entry*)&S1pse_Clink_cleanser,(Shift_entry*)&S1ase_Clink_cleanser
+,0,0,(Shift_tbl*)&S1st_Clink_cleanser,0,(State_s_thread_tbl*)&S3tt_Clink_cleanser,0,0};
+struct S2rtd_Clink_cleanser{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Clink_cleanser S2rt_Clink_cleanser = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clink_cleanser,Clink_cleanser::rhs1_Rpass3_}
+ }// end of reduce table
+};
+yacco2::State S2_Clink_cleanser = //State's vectored into symbol: "eog"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Clink_cleanser,0,0,0};
+struct S3std_Clink_cleanser{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[14];
+};
+S3std_Clink_cleanser S3st_Clink_cleanser = {
+ 14
+ ,
+ {// start of table
+ {6,(State*)&S4_Clink_cleanser} // shift sym: LR1_all_shift_operator
+ ,{268,(State*)&S5_Clink_cleanser} // shift sym: T_eol
+ ,{271,(State*)&S6_Clink_cleanser} // shift sym: T_comment
+ ,{272,(State*)&S7_Clink_cleanser} // shift sym: T_ws
+ ,{275,(State*)&S8_Clink_cleanser} // shift sym: T_c_string
+ ,{279,(State*)&S9_Clink_cleanser} // shift sym: T_identifier
+ ,{280,(State*)&S10_Clink_cleanser} // shift sym: T_int_no
+ ,{344,(State*)&S11_Clink_cleanser} // shift sym: T_in_stbl
+ ,{366,(State*)&S12_Clink_cleanser} // shift sym: th_in_stbl
+ ,{367,(State*)&S13_Clink_cleanser} // shift sym: kw_in_stbl
+ ,{394,(State*)&S14_Clink_cleanser} // shift sym: Err_bad_eos
+ ,{395,(State*)&S15_Clink_cleanser} // shift sym: Err_bad_esc
+ ,{396,(State*)&S16_Clink_cleanser} // shift sym: Err_comment_overrun
+ ,{397,(State*)&S17_Clink_cleanser} // shift sym: Err_bad_char
+ }// end of shift table
+};
+yacco2::Shift_entry S3ase_Clink_cleanser = {6,(State*)&S4_Clink_cleanser};
+yacco2::State S3_Clink_cleanser = //State's vectored into symbol: "|||"
+{3
+,0,(Shift_entry*)&S3ase_Clink_cleanser
+,0,0,(Shift_tbl*)&S3st_Clink_cleanser,0,0,0,0};
+struct S4rtd_Clink_cleanser{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Clink_cleanser S4rt_Clink_cleanser = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clink_cleanser,Clink_cleanser::rhs15_Rtoken_}
+ }// end of reduce table
+};
+yacco2::State S4_Clink_cleanser = //State's vectored into symbol: "|+|"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Clink_cleanser,0,0,0};
+struct S5rtd_Clink_cleanser{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Clink_cleanser S5rt_Clink_cleanser = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clink_cleanser,Clink_cleanser::rhs10_Rtoken_}
+ }// end of reduce table
+};
+yacco2::State S5_Clink_cleanser = //State's vectored into symbol: "eol"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Clink_cleanser,0,0,0};
+struct S6rtd_Clink_cleanser{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Clink_cleanser S6rt_Clink_cleanser = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clink_cleanser,Clink_cleanser::rhs2_Rtoken_}
+ }// end of reduce table
+};
+yacco2::State S6_Clink_cleanser = //State's vectored into symbol: "comment"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Clink_cleanser,0,0,0};
+struct S7rtd_Clink_cleanser{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Clink_cleanser S7rt_Clink_cleanser = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clink_cleanser,Clink_cleanser::rhs1_Rtoken_}
+ }// end of reduce table
+};
+yacco2::State S7_Clink_cleanser = //State's vectored into symbol: "ws"
+{7
+,0,0,0,0,0,(Reduce_tbl*)&S7rt_Clink_cleanser,0,0,0};
+struct S8rtd_Clink_cleanser{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S8rtd_Clink_cleanser S8rt_Clink_cleanser = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clink_cleanser,Clink_cleanser::rhs3_Rtoken_}
+ }// end of reduce table
+};
+yacco2::State S8_Clink_cleanser = //State's vectored into symbol: "c-string"
+{8
+,0,0,0,0,0,(Reduce_tbl*)&S8rt_Clink_cleanser,0,0,0};
+struct S9rtd_Clink_cleanser{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Clink_cleanser S9rt_Clink_cleanser = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clink_cleanser,Clink_cleanser::rhs6_Rtoken_}
+ }// end of reduce table
+};
+yacco2::State S9_Clink_cleanser = //State's vectored into symbol: "identifier"
+{9
+,0,0,0,0,0,(Reduce_tbl*)&S9rt_Clink_cleanser,0,0,0};
+struct S10rtd_Clink_cleanser{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S10rtd_Clink_cleanser S10rt_Clink_cleanser = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clink_cleanser,Clink_cleanser::rhs7_Rtoken_}
+ }// end of reduce table
+};
+yacco2::State S10_Clink_cleanser = //State's vectored into symbol: "int-no"
+{10
+,0,0,0,0,0,(Reduce_tbl*)&S10rt_Clink_cleanser,0,0,0};
+struct S11rtd_Clink_cleanser{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Clink_cleanser S11rt_Clink_cleanser = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clink_cleanser,Clink_cleanser::rhs12_Rtoken_}
+ }// end of reduce table
+};
+yacco2::State S11_Clink_cleanser = //State's vectored into symbol: "T-in-stbl"
+{11
+,0,0,0,0,0,(Reduce_tbl*)&S11rt_Clink_cleanser,0,0,0};
+struct S12rtd_Clink_cleanser{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S12rtd_Clink_cleanser S12rt_Clink_cleanser = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clink_cleanser,Clink_cleanser::rhs13_Rtoken_}
+ }// end of reduce table
+};
+yacco2::State S12_Clink_cleanser = //State's vectored into symbol: "th-in-stbl"
+{12
+,0,0,0,0,0,(Reduce_tbl*)&S12rt_Clink_cleanser,0,0,0};
+struct S13rtd_Clink_cleanser{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S13rtd_Clink_cleanser S13rt_Clink_cleanser = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clink_cleanser,Clink_cleanser::rhs14_Rtoken_}
+ }// end of reduce table
+};
+yacco2::State S13_Clink_cleanser = //State's vectored into symbol: "kw-in-stbl"
+{13
+,0,0,0,0,0,(Reduce_tbl*)&S13rt_Clink_cleanser,0,0,0};
+struct S14rtd_Clink_cleanser{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S14rtd_Clink_cleanser S14rt_Clink_cleanser = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clink_cleanser,Clink_cleanser::rhs5_Rtoken_}
+ }// end of reduce table
+};
+yacco2::State S14_Clink_cleanser = //State's vectored into symbol: "bad eos"
+{14
+,0,0,0,0,0,(Reduce_tbl*)&S14rt_Clink_cleanser,0,0,0};
+struct S15rtd_Clink_cleanser{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S15rtd_Clink_cleanser S15rt_Clink_cleanser = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clink_cleanser,Clink_cleanser::rhs9_Rtoken_}
+ }// end of reduce table
+};
+yacco2::State S15_Clink_cleanser = //State's vectored into symbol: "bad esc"
+{15
+,0,0,0,0,0,(Reduce_tbl*)&S15rt_Clink_cleanser,0,0,0};
+struct S16rtd_Clink_cleanser{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S16rtd_Clink_cleanser S16rt_Clink_cleanser = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clink_cleanser,Clink_cleanser::rhs8_Rtoken_}
+ }// end of reduce table
+};
+yacco2::State S16_Clink_cleanser = //State's vectored into symbol: "comment-overrun"
+{16
+,0,0,0,0,0,(Reduce_tbl*)&S16rt_Clink_cleanser,0,0,0};
+struct S17rtd_Clink_cleanser{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S17rtd_Clink_cleanser S17rt_Clink_cleanser = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clink_cleanser,Clink_cleanser::rhs11_Rtoken_}
+ }// end of reduce table
+};
+yacco2::State S17_Clink_cleanser = //State's vectored into symbol: "bad char"
+{17
+,0,0,0,0,0,(Reduce_tbl*)&S17rt_Clink_cleanser,0,0,0};
+struct S18rtd_Clink_cleanser{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S18rtd_Clink_cleanser S18rt_Clink_cleanser = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clink_cleanser,Clink_cleanser::rhs4_Rtoken_}
+ }// end of reduce table
+};
+yacco2::State S18_Clink_cleanser = //State's vectored into symbol: "|+|"
+{18
+,0,0,0,0,0,(Reduce_tbl*)&S18rt_Clink_cleanser,0,0,0};
+struct S19std_Clink_cleanser{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S19std_Clink_cleanser S19st_Clink_cleanser = {
+ 4
+ ,
+ {// start of table
+ {1,(State*)&S20_Clink_cleanser} // shift sym: LR1_eog
+ ,{3,(State*)&S3_Clink_cleanser} // shift sym: LR1_parallel_operator
+ ,{6,(State*)&S18_Clink_cleanser} // shift sym: LR1_all_shift_operator
+ ,{571,(State*)&S21_Clink_cleanser} // shift sym: Rtoken
+ }// end of shift table
+};
+yacco2::Shift_entry S19pse_Clink_cleanser = {3,(State*)&S3_Clink_cleanser};
+yacco2::Shift_entry S19ase_Clink_cleanser = {6,(State*)&S18_Clink_cleanser};
+yacco2::State S19_Clink_cleanser = //State's vectored into symbol: "Relems"
+{19
+,(Shift_entry*)&S19pse_Clink_cleanser,(Shift_entry*)&S19ase_Clink_cleanser
+,0,0,(Shift_tbl*)&S19st_Clink_cleanser,0,(State_s_thread_tbl*)&S3tt_Clink_cleanser,0,0};
+struct S20rtd_Clink_cleanser{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S20rtd_Clink_cleanser S20rt_Clink_cleanser = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clink_cleanser,Clink_cleanser::rhs2_Rpass3_}
+ }// end of reduce table
+};
+yacco2::State S20_Clink_cleanser = //State's vectored into symbol: "eog"
+{20
+,0,0,0,0,0,(Reduce_tbl*)&S20rt_Clink_cleanser,0,0,0};
+struct S21rtd_Clink_cleanser{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S21rtd_Clink_cleanser S21rt_Clink_cleanser = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clink_cleanser,Clink_cleanser::rhs2_Relems_}
+ }// end of reduce table
+};
+yacco2::State S21_Clink_cleanser = //State's vectored into symbol: "Rtoken"
+{21
+,0,0,0,0,0,(Reduce_tbl*)&S21rt_Clink_cleanser,0,0,0};
+struct S22rtd_Clink_cleanser{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S22rtd_Clink_cleanser S22rt_Clink_cleanser = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clink_cleanser,Clink_cleanser::rhs1_Relems_}
+ }// end of reduce table
+};
+yacco2::State S22_Clink_cleanser = //State's vectored into symbol: "Rtoken"
+{22
+,0,0,0,0,0,(Reduce_tbl*)&S22rt_Clink_cleanser,0,0,0};
diff --git a/web/yacco2/compiler/grammars/linker_id.cpp b/web/yacco2/compiler/grammars/linker_id.cpp
new file mode 100644
index 0000000000..2be569dfce
--- /dev/null
+++ b/web/yacco2/compiler/grammars/linker_id.cpp
@@ -0,0 +1,359 @@
+/*
+ File: linker_id.cpp
+ Date and Time: Fri Jan 30 18:55:14 2015
+*/
+#include "linker_id.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_linker_id;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 11;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[4] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[5] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[6] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[7] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[8] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[9] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[10] = new Per_rule_s_reuse_table();
+}
+ Clinker_id::
+ Clinker_id()
+ :yacco2::CAbs_fsm
+ ("linker_id.lex"
+ ,"1.0"
+ ,"17 Juin 2003"
+ ,false
+ ,"\\olinker identifiers recognizer: uses symbol table."
+ ,"Fri Jan 30 18:55:14 2015 "
+ ,S1_Clinker_id){
+
+ data_.erase();
+
+ }
+
+Clinker_id::~Clinker_id(){
+
+ for(int x = 0;x < 11;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Clinker_id::failed(){
+ return false;
+ }
+ void Clinker_id::op(){
+ data_.erase();
+
+}
+int Clinker_id::rhs_to_rules_mapping_[87] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,0 // subrule 2 for rule 1
+ ,1 // subrule 3 for rule 2
+ ,1 // subrule 4 for rule 2
+ ,2 // subrule 5 for rule 3
+ ,2 // subrule 6 for rule 3
+ ,2 // subrule 7 for rule 3
+ ,2 // subrule 8 for rule 3
+ ,3 // subrule 9 for rule 4
+ ,3 // subrule 10 for rule 4
+ ,4 // subrule 11 for rule 5
+ ,4 // subrule 12 for rule 5
+ ,4 // subrule 13 for rule 5
+ ,4 // subrule 14 for rule 5
+ ,4 // subrule 15 for rule 5
+ ,5 // subrule 16 for rule 6
+ ,5 // subrule 17 for rule 6
+ ,5 // subrule 18 for rule 6
+ ,5 // subrule 19 for rule 6
+ ,5 // subrule 20 for rule 6
+ ,5 // subrule 21 for rule 6
+ ,5 // subrule 22 for rule 6
+ ,5 // subrule 23 for rule 6
+ ,5 // subrule 24 for rule 6
+ ,6 // subrule 25 for rule 7
+ ,6 // subrule 26 for rule 7
+ ,6 // subrule 27 for rule 7
+ ,6 // subrule 28 for rule 7
+ ,6 // subrule 29 for rule 7
+ ,6 // subrule 30 for rule 7
+ ,6 // subrule 31 for rule 7
+ ,6 // subrule 32 for rule 7
+ ,6 // subrule 33 for rule 7
+ ,6 // subrule 34 for rule 7
+ ,6 // subrule 35 for rule 7
+ ,6 // subrule 36 for rule 7
+ ,6 // subrule 37 for rule 7
+ ,7 // subrule 38 for rule 8
+ ,7 // subrule 39 for rule 8
+ ,7 // subrule 40 for rule 8
+ ,7 // subrule 41 for rule 8
+ ,7 // subrule 42 for rule 8
+ ,7 // subrule 43 for rule 8
+ ,7 // subrule 44 for rule 8
+ ,7 // subrule 45 for rule 8
+ ,7 // subrule 46 for rule 8
+ ,7 // subrule 47 for rule 8
+ ,7 // subrule 48 for rule 8
+ ,7 // subrule 49 for rule 8
+ ,7 // subrule 50 for rule 8
+ ,8 // subrule 51 for rule 9
+ ,8 // subrule 52 for rule 9
+ ,8 // subrule 53 for rule 9
+ ,8 // subrule 54 for rule 9
+ ,8 // subrule 55 for rule 9
+ ,8 // subrule 56 for rule 9
+ ,8 // subrule 57 for rule 9
+ ,8 // subrule 58 for rule 9
+ ,8 // subrule 59 for rule 9
+ ,8 // subrule 60 for rule 9
+ ,8 // subrule 61 for rule 9
+ ,8 // subrule 62 for rule 9
+ ,8 // subrule 63 for rule 9
+ ,9 // subrule 64 for rule 10
+ ,9 // subrule 65 for rule 10
+ ,9 // subrule 66 for rule 10
+ ,9 // subrule 67 for rule 10
+ ,9 // subrule 68 for rule 10
+ ,9 // subrule 69 for rule 10
+ ,9 // subrule 70 for rule 10
+ ,9 // subrule 71 for rule 10
+ ,9 // subrule 72 for rule 10
+ ,9 // subrule 73 for rule 10
+ ,9 // subrule 74 for rule 10
+ ,9 // subrule 75 for rule 10
+ ,9 // subrule 76 for rule 10
+ ,10 // subrule 77 for rule 11
+ ,10 // subrule 78 for rule 11
+ ,10 // subrule 79 for rule 11
+ ,10 // subrule 80 for rule 11
+ ,10 // subrule 81 for rule 11
+ ,10 // subrule 82 for rule 11
+ ,10 // subrule 83 for rule 11
+ ,10 // subrule 84 for rule 11
+ ,10 // subrule 85 for rule 11
+ ,10 // subrule 86 for rule 11
+};
+Rlinker_id::Rlinker_id(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlinker_id",0,Clinker_id::R_Rlinker_id_,P,false,false){
+}
+
+void Rlinker_id::op(){
+ sstrace_rulesss
+
+ Clinker_id* fsm = (Clinker_id*) rule_info__.parser__->fsm_tbl__;
+ T_sym_tbl_report_card report_card;
+ kw_in_stbl* kw_in;
+ using namespace yacco2_stbl;
+
+ find_sym_in_stbl(report_card,*fsm->data_.c_str());
+ if(report_card.action_ == T_sym_tbl_report_card::fnd){
+ if(report_card.tbl_entry_->type_ == table_entry::keyword){
+ kw_in = (kw_in_stbl*)report_card.tbl_entry_->symbol_;
+ CAbs_lr1_sym* kw = kw_in->keyword_in_stbl();
+ CAbs_lr1_sym* nkw;
+ switch(kw->enumerated_id__){
+ case T_Enum::T_T_transitive_:{nkw = new T_transitive;break;}
+ case T_Enum::T_T_grammar_name_:{nkw = new T_grammar_name;break;}
+ case T_Enum::T_T_error_symbols_:{nkw = new T_error_symbols;break;}
+ case T_Enum::T_T_name_space_:{nkw = new T_name_space;break;}
+
+ case T_Enum::T_T_thread_name_:{nkw = new T_thread_name;break;}
+ case T_Enum::T_T_monolithic_:{nkw = new T_monolithic;break;}
+ case T_Enum::T_T_file_name_:{nkw = new T_file_name;break;}
+ case T_Enum::T_T_no_of_T_:{nkw = new T_no_of_T;break;}
+
+ case T_Enum::T_T_list_of_native_first_set_terminals_:
+ {nkw = new T_list_of_native_first_set_terminals;break;}
+ case T_Enum::T_T_end_list_of_native_first_set_terminals_:
+ {nkw = new T_end_list_of_native_first_set_terminals;break;}
+ case T_Enum::T_T_list_of_transitive_threads_:
+ {nkw = new T_list_of_transitive_threads;break;}
+ case T_Enum::T_T_end_list_of_transitive_threads_:
+ {nkw = new T_end_list_of_transitive_threads;break;}
+ case T_Enum::T_T_list_of_used_threads_:
+ {nkw = new T_list_of_used_threads;break;}
+ case T_Enum::T_T_end_list_of_used_threads_:
+ {nkw = new T_end_list_of_used_threads;break;}
+ case T_Enum::T_T_T_alphabet_:{nkw = new T_T_alphabet;break;}
+ case T_Enum::T_T_end_T_alphabet_:{nkw = new T_end_T_alphabet;break;}
+ case T_Enum::T_T_file_of_T_alphabet_:{nkw = new T_file_of_T_alphabet;break;}
+ case T_Enum::T_T_emitfile_:{nkw = new T_emitfile;break;}
+ case T_Enum::T_T_preamble_:{nkw = new T_preamble;break;}
+ case T_Enum::T_T_fsm_comments_:{nkw = new T_fsm_comments;break;}
+ case T_Enum::T_T_end_preamble_:{nkw = new T_end_preamble;break;}
+ }
+ nkw->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(nkw);
+ return;
+ }else{
+ RSVP(report_card.tbl_entry_->symbol_);
+ return;
+ }
+ }
+ T_identifier* id = new T_identifier(fsm->data_.c_str());
+ id->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(id);
+
+}
+Rtail_chars::Rtail_chars(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rtail_chars",0,Clinker_id::R_Rtail_chars_,P,false,false){
+}
+
+Rstart_char::Rstart_char(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rstart_char",0,Clinker_id::R_Rstart_char_,P,false,false){
+}
+
+Rtail_char::Rtail_char(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rtail_char",0,Clinker_id::R_Rtail_char_,P,false,false){
+}
+
+Rno_and_underscore_and_hyphen::Rno_and_underscore_and_hyphen(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rno_and_underscore_and_hyphen",0,Clinker_id::R_Rno_and_underscore_and_hyphen_,P,false,false){
+}
+
+void Rno_and_underscore_and_hyphen::sr1(){
+ struct SF{
+ raw_colon* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Clinker_id* fsm = (Clinker_id*) rule_info__.parser__->fsm_tbl__;
+ fsm->data_ += sf->p1__->id__;
+
+}
+
+void Rno_and_underscore_and_hyphen::sr2(){
+ struct SF{
+ raw_period* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Clinker_id* fsm = (Clinker_id*) rule_info__.parser__->fsm_tbl__;
+ fsm->data_ += sf->p1__->id__;
+
+}
+
+void Rno_and_underscore_and_hyphen::sr3(){
+ struct SF{
+ raw_under_score* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Clinker_id* fsm = (Clinker_id*) rule_info__.parser__->fsm_tbl__;
+ fsm->data_ += sf->p1__->id__;
+
+}
+
+void Rno_and_underscore_and_hyphen::sr4(){
+ struct SF{
+ raw_minus* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Clinker_id* fsm = (Clinker_id*) rule_info__.parser__->fsm_tbl__;
+ fsm->data_ += sf->p1__->id__;
+
+}
+
+Rminus_la::Rminus_la(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rminus_la",0,Clinker_id::R_Rminus_la_,P,false,false){
+}
+
+RUPPER_A_M::RUPPER_A_M(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("RUPPER_A_M",0,Clinker_id::R_RUPPER_A_M_,P,false,false){
+}
+
+void RUPPER_A_M::op(){
+ sstrace_rulesss
+
+ Clinker_id* fsm = (Clinker_id*) rule_info__.parser__->fsm_tbl__;
+ size_t pos = rule_info__.parser__->parse_stack__.top_sub__ - 1;
+ CAbs_lr1_sym* sym = rule_info__.parser__->get_spec_stack_token(pos);
+ fsm->data_ += sym->id__;
+
+}
+RUPPER_N_Z::RUPPER_N_Z(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("RUPPER_N_Z",0,Clinker_id::R_RUPPER_N_Z_,P,false,false){
+}
+
+void RUPPER_N_Z::op(){
+ sstrace_rulesss
+
+ Clinker_id* fsm = (Clinker_id*) rule_info__.parser__->fsm_tbl__;
+ size_t pos = rule_info__.parser__->parse_stack__.top_sub__ - 1;
+ CAbs_lr1_sym* sym = rule_info__.parser__->get_spec_stack_token(pos);
+ fsm->data_ += sym->id__;
+
+}
+Rlower_a_m::Rlower_a_m(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlower_a_m",0,Clinker_id::R_Rlower_a_m_,P,false,false){
+}
+
+void Rlower_a_m::op(){
+ sstrace_rulesss
+
+ Clinker_id* fsm = (Clinker_id*) rule_info__.parser__->fsm_tbl__;
+ size_t pos = rule_info__.parser__->parse_stack__.top_sub__ - 1;
+ CAbs_lr1_sym* sym = rule_info__.parser__->get_spec_stack_token(pos);
+ fsm->data_ += sym->id__;
+
+}
+Rlower_n_z::Rlower_n_z(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlower_n_z",0,Clinker_id::R_Rlower_n_z_,P,false,false){
+}
+
+void Rlower_n_z::op(){
+ sstrace_rulesss
+
+ Clinker_id* fsm = (Clinker_id*) rule_info__.parser__->fsm_tbl__;
+ size_t pos = rule_info__.parser__->parse_stack__.top_sub__ - 1;
+ CAbs_lr1_sym* sym = rule_info__.parser__->get_spec_stack_token(pos);
+ fsm->data_ += sym->id__;
+
+}
+RNUMBERS::RNUMBERS(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("RNUMBERS",0,Clinker_id::R_RNUMBERS_,P,false,false){
+}
+
+void RNUMBERS::op(){
+ sstrace_rulesss
+
+ Clinker_id* fsm = (Clinker_id*) rule_info__.parser__->fsm_tbl__;
+ size_t pos = rule_info__.parser__->parse_stack__.top_sub__ - 1;
+ CAbs_lr1_sym* sym = rule_info__.parser__->get_spec_stack_token(pos);
+ fsm->data_ += sym->id__;
+
+}
diff --git a/web/yacco2/compiler/grammars/linker_id.fsc b/web/yacco2/compiler/grammars/linker_id.fsc
new file mode 100644
index 0000000000..a02fb2966c
--- /dev/null
+++ b/web/yacco2/compiler/grammars/linker_id.fsc
@@ -0,0 +1,71 @@
+/*
+ File: linker_id.fsc
+ Date and Time: Fri Jan 30 18:55:14 2015
+*/
+transitive n
+grammar-name "linker_id"
+name-space "NS_linker_id"
+thread-name "TH_linker_id"
+monolithic n
+file-name "linker_id.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 52
+ raw_A
+ raw_B
+ raw_C
+ raw_D
+ raw_E
+ raw_F
+ raw_G
+ raw_H
+ raw_I
+ raw_J
+ raw_K
+ raw_L
+ raw_M
+ raw_N
+ raw_O
+ raw_P
+ raw_Q
+ raw_R
+ raw_S
+ raw_T
+ raw_U
+ raw_V
+ raw_W
+ raw_X
+ raw_Y
+ raw_Z
+ raw_a
+ raw_b
+ raw_c
+ raw_d
+ raw_e
+ raw_f
+ raw_g
+ raw_h
+ raw_i
+ raw_j
+ raw_k
+ raw_l
+ raw_m
+ raw_n
+ raw_o
+ raw_p
+ raw_q
+ raw_r
+ raw_s
+ raw_t
+ raw_u
+ raw_v
+ raw_w
+ raw_x
+ raw_y
+ raw_z
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"\\olinker identifiers recognizer: uses symbol table."
diff --git a/web/yacco2/compiler/grammars/linker_id.h b/web/yacco2/compiler/grammars/linker_id.h
new file mode 100644
index 0000000000..2c4f23df68
--- /dev/null
+++ b/web/yacco2/compiler/grammars/linker_id.h
@@ -0,0 +1,226 @@
+/*
+ File: linker_id.h
+ Date and Time: Fri Jan 30 18:55:14 2015
+*/
+#ifndef __linker_id_h__
+#define __linker_id_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "yacco2_stbl.h"
+
+extern yacco2::Thread_entry ITH_linker_id;
+
+extern yacco2::State S1_Clinker_id;
+namespace NS_linker_id {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_linker_id(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_linker_id(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[11];
+};
+class Clinker_id: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rlinker_id_ = 569//start_of_rule_list + 0
+ ,rhs1_Rlinker_id_ = 1
+ ,rhs2_Rlinker_id_ = 2
+ ,R_Rtail_chars_ = 570//start_of_rule_list + 2
+ ,rhs1_Rtail_chars_ = 3
+ ,rhs2_Rtail_chars_ = 4
+ ,R_Rstart_char_ = 571//start_of_rule_list + 4
+ ,rhs1_Rstart_char_ = 5
+ ,rhs2_Rstart_char_ = 6
+ ,rhs3_Rstart_char_ = 7
+ ,rhs4_Rstart_char_ = 8
+ ,R_Rtail_char_ = 572//start_of_rule_list + 6
+ ,rhs1_Rtail_char_ = 9
+ ,rhs2_Rtail_char_ = 10
+ ,R_Rno_and_underscore_and_hyphen_ = 573//start_of_rule_list + 8
+ ,rhs1_Rno_and_underscore_and_hyphen_ = 11
+ ,rhs2_Rno_and_underscore_and_hyphen_ = 12
+ ,rhs3_Rno_and_underscore_and_hyphen_ = 13
+ ,rhs4_Rno_and_underscore_and_hyphen_ = 14
+ ,rhs5_Rno_and_underscore_and_hyphen_ = 15
+ ,R_Rminus_la_ = 574//start_of_rule_list + 10
+ ,rhs1_Rminus_la_ = 16
+ ,rhs2_Rminus_la_ = 17
+ ,rhs3_Rminus_la_ = 18
+ ,rhs4_Rminus_la_ = 19
+ ,rhs5_Rminus_la_ = 20
+ ,rhs6_Rminus_la_ = 21
+ ,rhs7_Rminus_la_ = 22
+ ,rhs8_Rminus_la_ = 23
+ ,rhs9_Rminus_la_ = 24
+ ,R_RUPPER_A_M_ = 575//start_of_rule_list + 12
+ ,rhs1_RUPPER_A_M_ = 25
+ ,rhs2_RUPPER_A_M_ = 26
+ ,rhs3_RUPPER_A_M_ = 27
+ ,rhs4_RUPPER_A_M_ = 28
+ ,rhs5_RUPPER_A_M_ = 29
+ ,rhs6_RUPPER_A_M_ = 30
+ ,rhs7_RUPPER_A_M_ = 31
+ ,rhs8_RUPPER_A_M_ = 32
+ ,rhs9_RUPPER_A_M_ = 33
+ ,rhs10_RUPPER_A_M_ = 34
+ ,rhs11_RUPPER_A_M_ = 35
+ ,rhs12_RUPPER_A_M_ = 36
+ ,rhs13_RUPPER_A_M_ = 37
+ ,R_RUPPER_N_Z_ = 576//start_of_rule_list + 14
+ ,rhs1_RUPPER_N_Z_ = 38
+ ,rhs2_RUPPER_N_Z_ = 39
+ ,rhs3_RUPPER_N_Z_ = 40
+ ,rhs4_RUPPER_N_Z_ = 41
+ ,rhs5_RUPPER_N_Z_ = 42
+ ,rhs6_RUPPER_N_Z_ = 43
+ ,rhs7_RUPPER_N_Z_ = 44
+ ,rhs8_RUPPER_N_Z_ = 45
+ ,rhs9_RUPPER_N_Z_ = 46
+ ,rhs10_RUPPER_N_Z_ = 47
+ ,rhs11_RUPPER_N_Z_ = 48
+ ,rhs12_RUPPER_N_Z_ = 49
+ ,rhs13_RUPPER_N_Z_ = 50
+ ,R_Rlower_a_m_ = 577//start_of_rule_list + 16
+ ,rhs1_Rlower_a_m_ = 51
+ ,rhs2_Rlower_a_m_ = 52
+ ,rhs3_Rlower_a_m_ = 53
+ ,rhs4_Rlower_a_m_ = 54
+ ,rhs5_Rlower_a_m_ = 55
+ ,rhs6_Rlower_a_m_ = 56
+ ,rhs7_Rlower_a_m_ = 57
+ ,rhs8_Rlower_a_m_ = 58
+ ,rhs9_Rlower_a_m_ = 59
+ ,rhs10_Rlower_a_m_ = 60
+ ,rhs11_Rlower_a_m_ = 61
+ ,rhs12_Rlower_a_m_ = 62
+ ,rhs13_Rlower_a_m_ = 63
+ ,R_Rlower_n_z_ = 578//start_of_rule_list + 18
+ ,rhs1_Rlower_n_z_ = 64
+ ,rhs2_Rlower_n_z_ = 65
+ ,rhs3_Rlower_n_z_ = 66
+ ,rhs4_Rlower_n_z_ = 67
+ ,rhs5_Rlower_n_z_ = 68
+ ,rhs6_Rlower_n_z_ = 69
+ ,rhs7_Rlower_n_z_ = 70
+ ,rhs8_Rlower_n_z_ = 71
+ ,rhs9_Rlower_n_z_ = 72
+ ,rhs10_Rlower_n_z_ = 73
+ ,rhs11_Rlower_n_z_ = 74
+ ,rhs12_Rlower_n_z_ = 75
+ ,rhs13_Rlower_n_z_ = 76
+ ,R_RNUMBERS_ = 579//start_of_rule_list + 20
+ ,rhs1_RNUMBERS_ = 77
+ ,rhs2_RNUMBERS_ = 78
+ ,rhs3_RNUMBERS_ = 79
+ ,rhs4_RNUMBERS_ = 80
+ ,rhs5_RNUMBERS_ = 81
+ ,rhs6_RNUMBERS_ = 82
+ ,rhs7_RNUMBERS_ = 83
+ ,rhs8_RNUMBERS_ = 84
+ ,rhs9_RNUMBERS_ = 85
+ ,rhs10_RNUMBERS_ = 86
+ };
+ //no of la sets = 2
+ //no of states = 80
+ Clinker_id();
+ ~Clinker_id();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[87];
+
+ public:
+ std::string data_;
+
+ };
+struct Rlinker_id;
+struct Rtail_chars;
+struct Rstart_char;
+struct Rtail_char;
+struct Rno_and_underscore_and_hyphen;
+struct Rminus_la;
+struct RUPPER_A_M;
+struct RUPPER_N_Z;
+struct Rlower_a_m;
+struct Rlower_n_z;
+struct RNUMBERS;
+struct Rlinker_id:public yacco2::CAbs_lr1_sym {
+ Rlinker_id(yacco2::Parser* P);
+ void op();
+ public:
+};
+
+struct Rtail_chars:public yacco2::CAbs_lr1_sym {
+ Rtail_chars(yacco2::Parser* P);
+ public:
+};
+
+struct Rstart_char:public yacco2::CAbs_lr1_sym {
+ Rstart_char(yacco2::Parser* P);
+ public:
+};
+
+struct Rtail_char:public yacco2::CAbs_lr1_sym {
+ Rtail_char(yacco2::Parser* P);
+ public:
+};
+
+struct Rno_and_underscore_and_hyphen:public yacco2::CAbs_lr1_sym {
+ Rno_and_underscore_and_hyphen(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+};
+
+struct Rminus_la:public yacco2::CAbs_lr1_sym {
+ Rminus_la(yacco2::Parser* P);
+ public:
+};
+
+struct RUPPER_A_M:public yacco2::CAbs_lr1_sym {
+ RUPPER_A_M(yacco2::Parser* P);
+ void op();
+ public:
+};
+
+struct RUPPER_N_Z:public yacco2::CAbs_lr1_sym {
+ RUPPER_N_Z(yacco2::Parser* P);
+ void op();
+ public:
+};
+
+struct Rlower_a_m:public yacco2::CAbs_lr1_sym {
+ Rlower_a_m(yacco2::Parser* P);
+ void op();
+ public:
+};
+
+struct Rlower_n_z:public yacco2::CAbs_lr1_sym {
+ Rlower_n_z(yacco2::Parser* P);
+ void op();
+ public:
+};
+
+struct RNUMBERS:public yacco2::CAbs_lr1_sym {
+ RNUMBERS(yacco2::Parser* P);
+ void op();
+ public:
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/linker_id.lex b/web/yacco2/compiler/grammars/linker_id.lex
new file mode 100644
index 0000000000..d6ffa24c27
--- /dev/null
+++ b/web/yacco2/compiler/grammars/linker_id.lex
@@ -0,0 +1,255 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: linker_id.lex
+dates: 14 Mar 2005
+Purpose: linker identifiers
+Returned: T_identifier
+Claim-to-fame: use of yacco2's symbol table to filter out linker's keywords
+and allows the run thru of keyword "-" characters building up an id.
+There are no expressions within Linker, so this extension does not conflict
+with expressions and legitimite ids: a-b.
+
+Extend the id to include unquoted string type recognition.
+This allows the linker's ids to consume the full file name until
+Yacco2 emits these fles as quoted strings thus protecting
+against a legitimate file name having one of Linker's keywords:
+monolithic or transitive.
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |linker_id| thread.\fbreak
+Recognize Linker's identifiers.
+@/
+fsm
+(fsm-id "linker_id.lex",fsm-filename linker_id,fsm-namespace NS_linker_id
+,fsm-class Clinker_id{
+ user-prefix-declaration
+#include "yacco2_stbl.h"
+ ***
+ user-declaration
+ public:
+ std::string data_;
+ ***
+ op
+ data_.erase();
+ ***
+ constructor
+ data_.erase();
+ ***
+ }
+,fsm-version "1.0",fsm-date "17 Juin 2003",fsm-debug "false"
+,fsm-comments "\\olinker identifiers recognizer: uses symbol table.")
+parallel-parser
+(
+ parallel-thread-function
+ TH_linker_id
+ ***
+ parallel-la-boundary
+ eolr - Rminus_la
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rlinker_id (
+lhs{
+ op
+ Clinker_id* fsm = (Clinker_id*) rule_info__.parser__->fsm_tbl__;
+ T_sym_tbl_report_card report_card;
+ kw_in_stbl* kw_in;
+ using namespace yacco2_stbl;
+
+ find_sym_in_stbl(report_card,*fsm->data_.c_str());
+ if(report_card.action_ == T_sym_tbl_report_card::fnd){
+ if(report_card.tbl_entry_->type_ == table_entry::keyword){
+ kw_in = (kw_in_stbl*)report_card.tbl_entry_->symbol_;
+ CAbs_lr1_sym* kw = kw_in->keyword_in_stbl();
+ CAbs_lr1_sym* nkw;
+ switch(kw->enumerated_id__){
+ case T_Enum::T_T_transitive_:{nkw = new T_transitive;break;}
+ case T_Enum::T_T_grammar_name_:{nkw = new T_grammar_name;break;}
+ case T_Enum::T_T_error_symbols_:{nkw = new T_error_symbols;break;}
+ case T_Enum::T_T_name_space_:{nkw = new T_name_space;break;}
+
+ case T_Enum::T_T_thread_name_:{nkw = new T_thread_name;break;}
+ case T_Enum::T_T_monolithic_:{nkw = new T_monolithic;break;}
+ case T_Enum::T_T_file_name_:{nkw = new T_file_name;break;}
+ case T_Enum::T_T_no_of_T_:{nkw = new T_no_of_T;break;}
+
+ case T_Enum::T_T_list_of_native_first_set_terminals_:
+ {nkw = new T_list_of_native_first_set_terminals;break;}
+ case T_Enum::T_T_end_list_of_native_first_set_terminals_:
+ {nkw = new T_end_list_of_native_first_set_terminals;break;}
+ case T_Enum::T_T_list_of_transitive_threads_:
+ {nkw = new T_list_of_transitive_threads;break;}
+ case T_Enum::T_T_end_list_of_transitive_threads_:
+ {nkw = new T_end_list_of_transitive_threads;break;}
+ case T_Enum::T_T_list_of_used_threads_:
+ {nkw = new T_list_of_used_threads;break;}
+ case T_Enum::T_T_end_list_of_used_threads_:
+ {nkw = new T_end_list_of_used_threads;break;}
+ case T_Enum::T_T_T_alphabet_:{nkw = new T_T_alphabet;break;}
+ case T_Enum::T_T_end_T_alphabet_:{nkw = new T_end_T_alphabet;break;}
+ case T_Enum::T_T_file_of_T_alphabet_:{nkw = new T_file_of_T_alphabet;break;}
+ case T_Enum::T_T_emitfile_:{nkw = new T_emitfile;break;}
+ case T_Enum::T_T_preamble_:{nkw = new T_preamble;break;}
+ case T_Enum::T_T_fsm_comments_:{nkw = new T_fsm_comments;break;}
+ case T_Enum::T_T_end_preamble_:{nkw = new T_end_preamble;break;}
+ }
+ nkw->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(nkw);
+ return;
+ }else{
+ RSVP(report_card.tbl_entry_->symbol_);
+ return;
+ }
+ }
+ T_identifier* id = new T_identifier(fsm->data_.c_str());
+ id->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(id);
+ ***
+ }
+)
+{
+ -> Rstart_char |.|
+ -> Rstart_char Rtail_chars |.|
+}
+
+Rtail_chars (){
+ -> Rtail_char
+ -> Rtail_chars Rtail_char
+}
+Rstart_char () {
+ -> RUPPER_A_M
+ -> RUPPER_N_Z
+ -> Rlower_a_m
+ -> Rlower_n_z
+}
+
+Rtail_char () {
+ -> Rstart_char
+ -> Rno_and_underscore_and_hyphen
+}
+
+Rno_and_underscore_and_hyphen () {
+ -> ":" {
+ /@
+ Extend to pull in the threads.
+ @/
+ op
+ Clinker_id* fsm = (Clinker_id*) rule_info__.parser__->fsm_tbl__;
+ fsm->data_ += sf->p1__->id__;
+ ***
+ }
+ -> "." {
+ /@
+ Extend to pull in non-quoted file names with extension.
+ Normally this is generated by the frontend \Yacco2
+ as a quoted string but this extension
+ allows the possible tampering by
+ the compiler writer to play with things
+ when things aren't going well by the front-end.
+ It's a minor relief to help out the compiler writer.
+ @/
+ op
+ Clinker_id* fsm = (Clinker_id*) rule_info__.parser__->fsm_tbl__;
+ fsm->data_ += sf->p1__->id__;
+ ***
+ }
+ -> "_" {
+ op
+ Clinker_id* fsm = (Clinker_id*) rule_info__.parser__->fsm_tbl__;
+ fsm->data_ += sf->p1__->id__;
+ ***
+ }
+ -> "-" {
+ op
+ Clinker_id* fsm = (Clinker_id*) rule_info__.parser__->fsm_tbl__;
+ fsm->data_ += sf->p1__->id__;
+ ***
+ }
+ -> RNUMBERS
+}
+
+Rminus_la () {
+ -> "."
+ -> ":"
+ -> "_"
+ -> "-"
+ -> RUPPER_A_M
+ -> RUPPER_N_Z
+ -> Rlower_a_m
+ -> Rlower_n_z
+ -> RNUMBERS
+}
+
+RUPPER_A_M (
+lhs {
+ op
+ Clinker_id* fsm = (Clinker_id*) rule_info__.parser__->fsm_tbl__;
+ size_t pos = rule_info__.parser__->parse_stack__.top_sub__ - 1;
+ CAbs_lr1_sym* sym = rule_info__.parser__->get_spec_stack_token(pos);
+ fsm->data_ += sym->id__;
+ ***
+ }
+){
+ -> A -> B -> C -> D -> E -> F -> G -> H -> I -> J -> K -> L -> M
+}
+
+RUPPER_N_Z (
+lhs {
+ op
+ Clinker_id* fsm = (Clinker_id*) rule_info__.parser__->fsm_tbl__;
+ size_t pos = rule_info__.parser__->parse_stack__.top_sub__ - 1;
+ CAbs_lr1_sym* sym = rule_info__.parser__->get_spec_stack_token(pos);
+ fsm->data_ += sym->id__;
+ ***
+ }
+){
+ -> N -> O -> P -> Q
+ -> "R" // considered a Rule when not quoted!
+ -> S -> T -> U -> V -> W -> X -> Y -> Z
+}
+
+Rlower_a_m (
+lhs {
+ op
+ Clinker_id* fsm = (Clinker_id*) rule_info__.parser__->fsm_tbl__;
+ size_t pos = rule_info__.parser__->parse_stack__.top_sub__ - 1;
+ CAbs_lr1_sym* sym = rule_info__.parser__->get_spec_stack_token(pos);
+ fsm->data_ += sym->id__;
+ ***
+ }
+){
+ -> a -> b -> c -> d -> e -> f -> g -> h -> i -> j -> k -> l -> m
+}
+
+Rlower_n_z (
+lhs {
+ op
+ Clinker_id* fsm = (Clinker_id*) rule_info__.parser__->fsm_tbl__;
+ size_t pos = rule_info__.parser__->parse_stack__.top_sub__ - 1;
+ CAbs_lr1_sym* sym = rule_info__.parser__->get_spec_stack_token(pos);
+ fsm->data_ += sym->id__;
+ ***
+ }
+){
+ -> n -> o -> p -> q -> r -> s -> t -> u -> v -> w -> x -> y -> z
+}
+
+RNUMBERS (
+lhs {
+ op
+ Clinker_id* fsm = (Clinker_id*) rule_info__.parser__->fsm_tbl__;
+ size_t pos = rule_info__.parser__->parse_stack__.top_sub__ - 1;
+ CAbs_lr1_sym* sym = rule_info__.parser__->get_spec_stack_token(pos);
+ fsm->data_ += sym->id__;
+ ***
+ }
+){
+ -> 0 -> 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8 -> 9
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/linker_idsym.cpp b/web/yacco2/compiler/grammars/linker_idsym.cpp
new file mode 100644
index 0000000000..98ac6bf904
--- /dev/null
+++ b/web/yacco2/compiler/grammars/linker_idsym.cpp
@@ -0,0 +1,1320 @@
+/*
+ File: linker_idsym.cpp
+ Date and Time: Fri Jan 30 18:55:14 2015
+*/
+#include "linker_id.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_linker_id;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_linker_id::TH_linker_id(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_linker_id;
+ NS_linker_id::Clinker_id Clinker_id_;// parallel-parser's parse table
+#define ssPARSE_TABLE Clinker_id_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_linker_id::PROC_TH_linker_id(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_linker_id";
+ static bool one_time(false);
+ static NS_linker_id::Clinker_id* NS_linker_id_Clinker_id_(0);// parallel-parser's fsm table
+ static Parser* NS_linker_id_Clinker_id_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_linker_id_Clinker_id_ = new NS_linker_id::Clinker_id();// parallel-parser's fsm table
+ NS_linker_id_Clinker_id_parser = new Parser(*NS_linker_id_Clinker_id_,Caller_pp);
+ }
+ proc_parser = NS_linker_id_Clinker_id_parser;
+#include "wproc_pp_core.h"
+}
+void
+Clinker_id::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rlinker_id_:{
+ Rlinker_id* sym;
+ if(re->rule_ == 0){
+ sym = new Rlinker_id(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlinker_id*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->op();
+ return;}
+ case rhs2_Rlinker_id_:{
+ Rlinker_id* sym;
+ if(re->rule_ == 0){
+ sym = new Rlinker_id(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlinker_id*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ sym->op();
+ return;}
+ case rhs1_Rtail_chars_:{
+ Rtail_chars* sym;
+ if(re->rule_ == 0){
+ sym = new Rtail_chars(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtail_chars*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rtail_chars_:{
+ Rtail_chars* sym;
+ if(re->rule_ == 0){
+ sym = new Rtail_chars(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtail_chars*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rstart_char_:{
+ Rstart_char* sym;
+ if(re->rule_ == 0){
+ sym = new Rstart_char(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rstart_char*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rstart_char_:{
+ Rstart_char* sym;
+ if(re->rule_ == 0){
+ sym = new Rstart_char(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rstart_char*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs3_Rstart_char_:{
+ Rstart_char* sym;
+ if(re->rule_ == 0){
+ sym = new Rstart_char(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rstart_char*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs4_Rstart_char_:{
+ Rstart_char* sym;
+ if(re->rule_ == 0){
+ sym = new Rstart_char(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rstart_char*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rtail_char_:{
+ Rtail_char* sym;
+ if(re->rule_ == 0){
+ sym = new Rtail_char(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtail_char*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rtail_char_:{
+ Rtail_char* sym;
+ if(re->rule_ == 0){
+ sym = new Rtail_char(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtail_char*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rno_and_underscore_and_hyphen_:{
+ Rno_and_underscore_and_hyphen* sym;
+ if(re->rule_ == 0){
+ sym = new Rno_and_underscore_and_hyphen(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rno_and_underscore_and_hyphen*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rno_and_underscore_and_hyphen_:{
+ Rno_and_underscore_and_hyphen* sym;
+ if(re->rule_ == 0){
+ sym = new Rno_and_underscore_and_hyphen(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rno_and_underscore_and_hyphen*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rno_and_underscore_and_hyphen_:{
+ Rno_and_underscore_and_hyphen* sym;
+ if(re->rule_ == 0){
+ sym = new Rno_and_underscore_and_hyphen(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rno_and_underscore_and_hyphen*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rno_and_underscore_and_hyphen_:{
+ Rno_and_underscore_and_hyphen* sym;
+ if(re->rule_ == 0){
+ sym = new Rno_and_underscore_and_hyphen(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rno_and_underscore_and_hyphen*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr4();
+ return;}
+ case rhs5_Rno_and_underscore_and_hyphen_:{
+ Rno_and_underscore_and_hyphen* sym;
+ if(re->rule_ == 0){
+ sym = new Rno_and_underscore_and_hyphen(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rno_and_underscore_and_hyphen*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rminus_la_:{
+ Rminus_la* sym;
+ if(re->rule_ == 0){
+ sym = new Rminus_la(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rminus_la*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rminus_la_:{
+ Rminus_la* sym;
+ if(re->rule_ == 0){
+ sym = new Rminus_la(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rminus_la*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs3_Rminus_la_:{
+ Rminus_la* sym;
+ if(re->rule_ == 0){
+ sym = new Rminus_la(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rminus_la*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs4_Rminus_la_:{
+ Rminus_la* sym;
+ if(re->rule_ == 0){
+ sym = new Rminus_la(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rminus_la*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs5_Rminus_la_:{
+ Rminus_la* sym;
+ if(re->rule_ == 0){
+ sym = new Rminus_la(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rminus_la*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs6_Rminus_la_:{
+ Rminus_la* sym;
+ if(re->rule_ == 0){
+ sym = new Rminus_la(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rminus_la*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs7_Rminus_la_:{
+ Rminus_la* sym;
+ if(re->rule_ == 0){
+ sym = new Rminus_la(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rminus_la*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs8_Rminus_la_:{
+ Rminus_la* sym;
+ if(re->rule_ == 0){
+ sym = new Rminus_la(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rminus_la*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs9_Rminus_la_:{
+ Rminus_la* sym;
+ if(re->rule_ == 0){
+ sym = new Rminus_la(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rminus_la*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs2_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs3_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs4_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs5_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs6_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs7_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs8_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs9_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs10_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs11_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs12_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs13_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs1_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs2_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs3_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs4_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs5_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs6_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs7_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs8_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs9_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs10_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs11_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs12_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs13_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs1_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs2_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs3_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs4_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs5_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs6_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs7_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs8_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs9_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs10_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs11_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs12_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs13_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs1_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs2_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs3_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs4_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs5_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs6_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs7_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs8_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs9_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs10_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs11_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs12_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs13_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs1_RNUMBERS_:{
+ RNUMBERS* sym;
+ if(re->rule_ == 0){
+ sym = new RNUMBERS(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNUMBERS*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs2_RNUMBERS_:{
+ RNUMBERS* sym;
+ if(re->rule_ == 0){
+ sym = new RNUMBERS(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNUMBERS*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs3_RNUMBERS_:{
+ RNUMBERS* sym;
+ if(re->rule_ == 0){
+ sym = new RNUMBERS(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNUMBERS*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs4_RNUMBERS_:{
+ RNUMBERS* sym;
+ if(re->rule_ == 0){
+ sym = new RNUMBERS(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNUMBERS*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs5_RNUMBERS_:{
+ RNUMBERS* sym;
+ if(re->rule_ == 0){
+ sym = new RNUMBERS(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNUMBERS*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs6_RNUMBERS_:{
+ RNUMBERS* sym;
+ if(re->rule_ == 0){
+ sym = new RNUMBERS(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNUMBERS*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs7_RNUMBERS_:{
+ RNUMBERS* sym;
+ if(re->rule_ == 0){
+ sym = new RNUMBERS(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNUMBERS*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs8_RNUMBERS_:{
+ RNUMBERS* sym;
+ if(re->rule_ == 0){
+ sym = new RNUMBERS(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNUMBERS*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs9_RNUMBERS_:{
+ RNUMBERS* sym;
+ if(re->rule_ == 0){
+ sym = new RNUMBERS(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNUMBERS*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs10_RNUMBERS_:{
+ RNUMBERS* sym;
+ if(re->rule_ == 0){
+ sym = new RNUMBERS(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNUMBERS*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/linker_idtbl.cpp b/web/yacco2/compiler/grammars/linker_idtbl.cpp
new file mode 100644
index 0000000000..1891afa04d
--- /dev/null
+++ b/web/yacco2/compiler/grammars/linker_idtbl.cpp
@@ -0,0 +1,2071 @@
+/*
+ File: linker_idtbl.cpp
+ Date and Time: Fri Jan 30 18:55:14 2015
+*/
+#include "linker_id.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_linker_id;// grammar's ns
+// first set terminals
+// LR1_invisible_shift_operator
+// raw_minus
+// raw_period
+// raw_0
+// raw_1
+// raw_2
+// raw_3
+// raw_4
+// raw_5
+// raw_6
+// raw_7
+// raw_8
+// raw_9
+// raw_colon
+// raw_A
+// raw_B
+// raw_C
+// raw_D
+// raw_E
+// raw_F
+// raw_G
+// raw_H
+// raw_I
+// raw_J
+// raw_K
+// raw_L
+// raw_M
+// raw_N
+// raw_O
+// raw_P
+// raw_Q
+// raw_R
+// raw_S
+// raw_T
+// raw_U
+// raw_V
+// raw_W
+// raw_X
+// raw_Y
+// raw_Z
+// raw_under_score
+// raw_a
+// raw_b
+// raw_c
+// raw_d
+// raw_e
+// raw_f
+// raw_g
+// raw_h
+// raw_i
+// raw_j
+// raw_k
+// raw_l
+// raw_m
+// raw_n
+// raw_o
+// raw_p
+// raw_q
+// raw_r
+// raw_s
+// raw_t
+// raw_u
+// raw_v
+// raw_w
+// raw_x
+// raw_y
+// raw_z
+yacco2::UCHAR LA1_Clinker_id[] ={
+12
+,0,32
+,6,96
+,7,255
+,8,7
+,9,254
+,10,255
+,11,255
+,12,135
+,13,254
+,14,255
+,15,255
+,16,7
+};
+// T_eosubrule
+// T_called_thread_eosubrule
+// T_null_call_thread_eosubrule
+// T_cweb_comment
+// T_grammar_phrase
+// T_cweb_marker
+// T_lint
+// T_list_of_used_threads
+// T_end_list_of_used_threads
+// LR1_eog
+// Err_nested_files_exceeded
+// Err_no_end_of_code
+// Err_no_cmd_lne_data
+// Err_no_filename
+// Err_bad_filename
+// Err_bad_fsmheader_filename
+// Err_bad_fsmcpp_filename
+// Err_bad_fsmsym_filename
+// Err_bad_fsmtbl_filename
+// Err_bad_enum_filename
+// Err_bad_errors_hdrfilename
+// Err_bad_errors_impfilename
+// Err_bad_cmd_lne_opt
+// Err_bad_int_no
+// Err_bad_int_no_range
+// Err_no_int_present
+// Err_bad_eos
+// Err_bad_esc
+// Err_comment_overrun
+// Err_bad_char
+// Err_bad_univ_seq
+// Err_improper_closing_of_rules
+// Err_no_identifier_present
+// Err_no_directive_present
+// Err_duplicate_directive
+// Err_no_syntax_code_present
+// Err_no_open_parenthesis
+// Err_no_close_parenthesis
+// Err_no_fsm_id_present
+// Err_no_fsm_id_string
+// Err_no_fsm_filename_present
+// Err_no_fsm_filename_id_present
+// Err_no_comma_present
+// Err_no_terminal_key_present
+// Err_no_fsm_namespace_present
+// Err_no_fsm_namespace_id_present
+// Err_no_fsm_class_present
+// Err_no_fsm_version_present
+// Err_no_fsm_version_string
+// Err_no_fsm_date_present
+// Err_no_fsm_date_string
+// Err_no_fsm_debug_present
+// Err_no_fsm_debug_string
+// Err_no_fsm_comments_present
+// Err_no_fsm_comments_string
+// Err_fsm_debug_string_not_true_or_false
+// Err_no_pp_thread_function_present
+// Err_no_pp_ctrl_mntor_kw_present
+// Err_no_pp_fnct_id_present
+// Err_no_pp_bndry_present
+// Err_no_pp_la_bndary_expr_present
+// Err_no_syntax_code_end_present
+// Err_no_pp_code_present
+// Err_no_pp_code_stc_present
+// Err_not_arbitration_code_kw
+// Err_no_open_brace
+// Err_no_close_brace
+// Err_no_constant_defs_present
+// Err_no_filename_present
+// Err_no_filename_id_present
+// Err_no_namespace_present
+// Err_no_namespace_id_present
+// Err_no_kdefs_code_present
+// Err_no_kdefs_kw_present
+// Err_no_tdef_code_present
+// Err_no_sym_defs_present
+// Err_dup_entry_in_alphabet
+// Err_already_defined_AB
+// Err_already_defined_AD
+// Err_improper_directive
+// Err_no_sym_class_present
+// Err_no_sym_class_id_present
+// Err_zero_len_sym
+// Err_sym_tbl_full
+// Err_sym_tbl_char_pool_full
+// Err_dup_entry_in_sym_table
+// Err_subscript_out_of_range
+// Err_sym_tbl_nested_scope_stk_overflow
+// Err_sym_tbl_nested_scope_stk_underflow
+// Err_sym_tbl_context_buf_overflow
+// Err_report_card_ptr_0
+// Err_cannot_define_term_after_sufx_dir
+// Err_dup_sufx_directive
+// Err_terminals_refs_def_after_terminals
+// Err_terminals_refs_dup_def
+// Err_no_rule_name_present
+// Err_no_sub_rule_present
+// Err_subrule_use_undefined_T
+// Err_stbl_entry_unknown
+// Err_subrule_overrun
+// Err_stble_has_entry_but_not_a_rule
+// Err_file_of_T_alphabet_kw_not_present
+// Err_emitfile_kw_not_present
+// Err_preamble_kw_not_present
+// Err_preamble_srce_code_not_present
+// Err_end_preamble_kw_not_present
+// Err_cmd_line_chaffe
+// Err_T_alphabet_kw_not_present
+// Err_T_alphabet_file_not_present
+// Err_end_T_alphabet_kw_not_present
+// Err_no_terminals_in_T_alphabet_list
+// Err_rotten_chr_in_T_alphabet
+// Err_transitive_kw_not_present
+// Err_grammar_name_kw_not_present
+// Err_namespace_kw_not_present
+// Err_filename_kw_not_present
+// Err_threadname_kw_not_present
+// Err_monolithic_kw_not_present
+// Err_no_of_T_kw_not_present
+// Err_list_of_terminals_kw_not_present
+// Err_no_list_of_trans_threads_kw
+// Err_no_terminals_present_in_T_alphabet
+// Err_transitive_value_bad
+// Err_monolithic_value_bad
+// Err_grammar_name_value_not_present
+// Err_namespace_value_not_present
+// Err_threadname_value_not_present
+// Err_filename_value_not_present
+// Err_no_of_T_value_not_present
+// Err_no_of_terminals_not_present
+// Err_end_list_native_T_kw_not_present
+// Err_end_list_of_transitive_threads_kw_not_present
+// Err_no_of_native_Ts_in_list_not_equal
+// Err_no_of_threads_in_list_not_equal
+// Err_thread_refed_but_not_defined
+// Err_bad_T_in_list
+// Err_bad_th_in_list
+// Err_already_defined_in_fsc_file
+// Err_bad_thread_subscript
+// Err_not_a_keyword
+// Err_no_of_threads_not_present
+// Err_bad_T_alphabet
+// Err_fsc_file_does_not_exist
+// Err_filename_file_does_not_exist
+// Err_T_alphabet_file_does_not_exist
+// Err_emitfile_file_does_not_exist
+// Err_emitfile_file_not_present
+// Err_fsc_cntl_file_not_present
+// Err_file_of_T_alphabet_not_present
+// Err_epsilon_pass_thru
+// Err_epsilon_pass_thru_no_Ts
+// Err_rule_not_in_stbl
+// Err_T_not_in_stbl
+// Err_bad_directive
+// Err_bad_term_in_la_expr
+// Err_empty_set_removal_in_la_expr
+// Err_bad_operator_in_la_expr
+// Err_not_a_lhs_kw
+// Err_pp_la_boundary_attribute_not_fnd
+// Err_already_processed_fsm_phase
+// Err_already_processed_pp_phase
+// Err_already_processed_T_enum_phase
+// Err_already_processed_error_phase
+// Err_already_processed_rc_phase
+// Err_already_processed_lrk_phase
+// Err_already_processed_T_phase
+// Err_already_processed_rule_phase
+// Err_not_T_for_rtned_token_from_th
+// Err_not_id_for_ns_in_th_stmt
+// Err_not_id_for_th_name_in_th_stmt
+// Err_bad_th_qualifier
+// Err_not_dbl_colon_in_th_stmt
+// Err_not_T_or_R_in_subrule_expr
+// Err_not_T_or_R_or_eos_in_subrule_expr
+// Err_not_eos_in_subrule_expr
+// Err_invalid_logical_name
+// Err_invalid_logical_value
+// Err_duplicate_logical_name
+// Err_missing_terminals_refs_kw
+// Err_missing_terminals_sufx_kw
+// Err_not_a_terminal_definition
+// Err_missing_lrk_sufx_kw
+// ERR_sick_grammar
+// ERR_no_fsm_phrase
+// ERR_no_T_enum_phrase
+// ERR_no_lrk_phrase
+// ERR_no_rc_phrase
+// ERR_no_errors_phrase
+// ERR_no_terminals_phrase
+// ERR_no_rules_phrase
+// Err_used_rule_but_undefined
+// Err_rule_already_defined
+// Err_la_expr_calc_empty_set
+// Err_no_close_brace_ending_rules_defs
+// Err_use_of_T_outside_Rules_construct
+// Err_not_kw_defining_grammar_construct
+// Err_use_of_N_outside_Rules_construct
+// Err_misplaced_or_misspelt_Rule_or_T
+// Err_not_a_Rule
+// Err_empty_file
+// Err_not_lhs_pcnrl_mntr
+// raw_nul
+// raw_soh
+// raw_stx
+// raw_etx
+// raw_eot
+// raw_enq
+// raw_ack
+// raw_bel
+// raw_bs
+// raw_ht
+// raw_lf
+// raw_vt
+// raw_ff
+// raw_cr
+// raw_so
+// raw_si
+// raw_dle
+// raw_dc1
+// raw_dc2
+// raw_dc3
+// raw_dc4
+// raw_nak
+// raw_syn
+// raw_etb
+// raw_can
+// raw_em
+// raw_sub
+// raw_esc
+// raw_fs
+// raw_gs
+// raw_rs
+// raw_us
+// raw_sp
+// raw_exclam
+// raw_dbl_quote
+// raw_no_sign
+// raw_dollar_sign
+// raw_percent
+// raw_ampersign
+// raw_right_quote
+// raw_open_bracket
+// raw_close_bracket
+// raw_asteric
+// raw_plus
+// raw_comma
+// raw_slash
+// raw_semi_colon
+// raw_less_than
+// raw_eq
+// raw_gt_than
+// raw_question_mark
+// raw_at_sign
+// raw_open_sq_bracket
+// raw_back_slash
+// raw_close_sq_bracket
+// raw_up_arrow
+// raw_left_quote
+// raw_open_brace
+// raw_vertical_line
+// raw_close_brace
+// raw_tilde
+// raw_del
+// raw_x80
+// raw_x81
+// raw_x82
+// raw_x83
+// raw_x84
+// raw_x85
+// raw_x86
+// raw_x87
+// raw_x88
+// raw_x89
+// raw_x8a
+// raw_x8b
+// raw_x8c
+// raw_x8d
+// raw_x8e
+// raw_x8f
+// raw_x90
+// raw_x91
+// raw_x92
+// raw_x93
+// raw_x94
+// raw_x95
+// raw_x96
+// raw_x97
+// raw_x98
+// raw_x99
+// raw_x9a
+// raw_x9b
+// raw_x9c
+// raw_x9d
+// raw_x9e
+// raw_x9f
+// raw_xa0
+// raw_xa1
+// raw_xa2
+// raw_xa3
+// raw_xa4
+// raw_xa5
+// raw_xa6
+// raw_xa7
+// raw_xa8
+// raw_xa9
+// raw_xaa
+// raw_xab
+// raw_xac
+// raw_xad
+// raw_xae
+// raw_xaf
+// raw_xb0
+// raw_xb1
+// raw_xb2
+// raw_xb3
+// raw_xb4
+// raw_xb5
+// raw_xb6
+// raw_xb7
+// raw_xb8
+// raw_xb9
+// raw_xba
+// raw_xbb
+// raw_xbc
+// raw_xbd
+// raw_xbe
+// raw_xbf
+// raw_xc0
+// raw_xc1
+// raw_xc2
+// raw_xc3
+// raw_xc4
+// raw_xc5
+// raw_xc6
+// raw_xc7
+// raw_xc8
+// raw_xc9
+// raw_xca
+// raw_xcb
+// raw_xcc
+// raw_xcd
+// raw_xce
+// raw_xcf
+// raw_xd0
+// raw_xd1
+// raw_xd2
+// raw_xd3
+// raw_xd4
+// raw_xd5
+// raw_xd6
+// raw_xd7
+// raw_xd8
+// raw_xd9
+// raw_xda
+// raw_xdb
+// raw_xdc
+// raw_xdd
+// raw_xde
+// raw_xdf
+// raw_xe0
+// raw_xe1
+// raw_xe2
+// raw_xe3
+// raw_xe4
+// raw_xe5
+// raw_xe6
+// raw_xe7
+// raw_xe8
+// raw_xe9
+// raw_xea
+// raw_xeb
+// raw_xec
+// raw_xed
+// raw_xee
+// raw_xef
+// raw_xf0
+// raw_xf1
+// raw_xf2
+// raw_xf3
+// raw_xf4
+// raw_xf5
+// raw_xf6
+// raw_xf7
+// raw_xf8
+// raw_xf9
+// raw_xfa
+// raw_xfb
+// raw_xfc
+// raw_xfd
+// raw_xfe
+// raw_xff
+// T_option_t
+// T_option_p
+// T_option_err
+// T_esc_seq
+// T_eol
+// T_basic_char
+// T_raw_char
+// T_comment
+// T_ws
+// T_angled_string
+// T_c_literal
+// T_c_string
+// T_xc_str
+// T_unquoted_string
+// T_file_inclusion
+// T_identifier
+// T_int_no
+// T_raw_characters
+// T_lr1_constant_symbols
+// T_error_symbols
+// T_eocode
+// T_AD
+// T_AB
+// T_parallel_la_boundary
+// T_arbitrator_code
+// T_parallel_parser
+// T_parallel_thread_function
+// T_parallel_control_monitor
+// T_fsm
+// T_fsm_id
+// T_fsm_filename
+// T_fsm_namespace
+// T_fsm_class
+// T_fsm_version
+// T_fsm_date
+// T_fsm_debug
+// T_fsm_comments
+// T_terminals
+// T_enumeration
+// T_file_name
+// T_name_space
+// T_sym_class
+// T_rules
+// T_lhs
+// T_user_declaration
+// T_user_prefix_declaration
+// T_user_suffix_declaration
+// T_constructor
+// T_destructor
+// T_op
+// T_failed
+// T_user_implementation
+// T_user_imp_tbl
+// T_user_imp_sym
+// T_constant_defs
+// T_terminals_refs
+// T_terminals_sufx
+// T_lrk_sufx
+// T_selector
+// T_NULL
+// T_2colon
+// T_block
+// T_syntax_code
+// T_fsm_class_phrase
+// T_fsm_phrase
+// T_parallel_parser_phrase
+// T_enum_phrase
+// T_terminal_def
+// table_entry
+// T_sym_tbl_report_card
+// T_terminals_phrase
+// T_error_symbols_phrase
+// T_lr1_k_phrase
+// T_rc_phrase
+// T_rule_lhs_phrase
+// T_parallel_monitor_phrase
+// rule_def
+// T_rules_phrase
+// T_subrule_def
+// T_subrules_phrase
+// T_in_stbl
+// refered_T
+// rule_in_stbl
+// refered_rule
+// T_transitive
+// T_grammar_name
+// T_thread_name
+// T_monolithic
+// T_no_of_T
+// T_list_of_native_first_set_terminals
+// T_end_list_of_native_first_set_terminals
+// T_list_of_transitive_threads
+// T_end_list_of_transitive_threads
+// T_emitfile
+// T_preamble
+// T_end_preamble
+// T_T_alphabet
+// T_end_T_alphabet
+// T_file_of_T_alphabet
+// T_attributes
+// tth_in_stbl
+// thread_attributes
+// th_in_stbl
+// kw_in_stbl
+// T_la_expr_src
+yacco2::UCHAR LA2_Clinker_id[] ={
+67
+,0,2
+,1,255
+,2,255
+,3,255
+,4,255
+,5,255
+,6,159
+,8,248
+,9,1
+,12,120
+,13,1
+,16,248
+,17,255
+,18,255
+,19,255
+,20,255
+,21,255
+,22,255
+,23,255
+,24,255
+,25,255
+,26,255
+,27,255
+,28,255
+,29,255
+,30,255
+,31,255
+,32,255
+,33,255
+,34,255
+,35,255
+,36,255
+,37,255
+,38,255
+,39,255
+,40,255
+,41,255
+,42,255
+,43,255
+,44,255
+,45,255
+,46,255
+,47,255
+,48,255
+,49,255
+,50,255
+,51,255
+,52,255
+,53,255
+,54,255
+,55,255
+,56,255
+,57,255
+,58,255
+,59,255
+,60,255
+,61,255
+,62,255
+,63,255
+,64,255
+,65,255
+,66,255
+,67,255
+,68,255
+,69,255
+,70,255
+,71,1
+};
+extern yacco2::State S1_Clinker_id;
+extern yacco2::State S2_Clinker_id;
+extern yacco2::State S3_Clinker_id;
+extern yacco2::State S4_Clinker_id;
+extern yacco2::State S5_Clinker_id;
+extern yacco2::State S6_Clinker_id;
+extern yacco2::State S7_Clinker_id;
+extern yacco2::State S8_Clinker_id;
+extern yacco2::State S9_Clinker_id;
+extern yacco2::State S10_Clinker_id;
+extern yacco2::State S11_Clinker_id;
+extern yacco2::State S12_Clinker_id;
+extern yacco2::State S13_Clinker_id;
+extern yacco2::State S14_Clinker_id;
+extern yacco2::State S15_Clinker_id;
+extern yacco2::State S16_Clinker_id;
+extern yacco2::State S17_Clinker_id;
+extern yacco2::State S18_Clinker_id;
+extern yacco2::State S19_Clinker_id;
+extern yacco2::State S20_Clinker_id;
+extern yacco2::State S21_Clinker_id;
+extern yacco2::State S22_Clinker_id;
+extern yacco2::State S23_Clinker_id;
+extern yacco2::State S24_Clinker_id;
+extern yacco2::State S25_Clinker_id;
+extern yacco2::State S26_Clinker_id;
+extern yacco2::State S27_Clinker_id;
+extern yacco2::State S28_Clinker_id;
+extern yacco2::State S29_Clinker_id;
+extern yacco2::State S30_Clinker_id;
+extern yacco2::State S31_Clinker_id;
+extern yacco2::State S32_Clinker_id;
+extern yacco2::State S33_Clinker_id;
+extern yacco2::State S34_Clinker_id;
+extern yacco2::State S35_Clinker_id;
+extern yacco2::State S36_Clinker_id;
+extern yacco2::State S37_Clinker_id;
+extern yacco2::State S38_Clinker_id;
+extern yacco2::State S39_Clinker_id;
+extern yacco2::State S40_Clinker_id;
+extern yacco2::State S41_Clinker_id;
+extern yacco2::State S42_Clinker_id;
+extern yacco2::State S43_Clinker_id;
+extern yacco2::State S44_Clinker_id;
+extern yacco2::State S45_Clinker_id;
+extern yacco2::State S46_Clinker_id;
+extern yacco2::State S47_Clinker_id;
+extern yacco2::State S48_Clinker_id;
+extern yacco2::State S49_Clinker_id;
+extern yacco2::State S50_Clinker_id;
+extern yacco2::State S51_Clinker_id;
+extern yacco2::State S52_Clinker_id;
+extern yacco2::State S53_Clinker_id;
+extern yacco2::State S54_Clinker_id;
+extern yacco2::State S55_Clinker_id;
+extern yacco2::State S56_Clinker_id;
+extern yacco2::State S57_Clinker_id;
+extern yacco2::State S58_Clinker_id;
+extern yacco2::State S59_Clinker_id;
+extern yacco2::State S60_Clinker_id;
+extern yacco2::State S61_Clinker_id;
+extern yacco2::State S62_Clinker_id;
+extern yacco2::State S63_Clinker_id;
+extern yacco2::State S64_Clinker_id;
+extern yacco2::State S65_Clinker_id;
+extern yacco2::State S66_Clinker_id;
+extern yacco2::State S67_Clinker_id;
+extern yacco2::State S68_Clinker_id;
+extern yacco2::State S69_Clinker_id;
+extern yacco2::State S70_Clinker_id;
+extern yacco2::State S71_Clinker_id;
+extern yacco2::State S72_Clinker_id;
+extern yacco2::State S73_Clinker_id;
+extern yacco2::State S74_Clinker_id;
+extern yacco2::State S75_Clinker_id;
+extern yacco2::State S76_Clinker_id;
+extern yacco2::State S77_Clinker_id;
+extern yacco2::State S78_Clinker_id;
+extern yacco2::State S79_Clinker_id;
+extern yacco2::State S80_Clinker_id;
+struct S1std_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[58];
+};
+S1std_Clinker_id S1st_Clinker_id = {
+ 58
+ ,
+ {// start of table
+ {73,(State*)&S2_Clinker_id} // shift sym: raw_A
+ ,{74,(State*)&S3_Clinker_id} // shift sym: raw_B
+ ,{75,(State*)&S4_Clinker_id} // shift sym: raw_C
+ ,{76,(State*)&S5_Clinker_id} // shift sym: raw_D
+ ,{77,(State*)&S6_Clinker_id} // shift sym: raw_E
+ ,{78,(State*)&S7_Clinker_id} // shift sym: raw_F
+ ,{79,(State*)&S8_Clinker_id} // shift sym: raw_G
+ ,{80,(State*)&S9_Clinker_id} // shift sym: raw_H
+ ,{81,(State*)&S10_Clinker_id} // shift sym: raw_I
+ ,{82,(State*)&S11_Clinker_id} // shift sym: raw_J
+ ,{83,(State*)&S12_Clinker_id} // shift sym: raw_K
+ ,{84,(State*)&S13_Clinker_id} // shift sym: raw_L
+ ,{85,(State*)&S14_Clinker_id} // shift sym: raw_M
+ ,{86,(State*)&S15_Clinker_id} // shift sym: raw_N
+ ,{87,(State*)&S16_Clinker_id} // shift sym: raw_O
+ ,{88,(State*)&S17_Clinker_id} // shift sym: raw_P
+ ,{89,(State*)&S18_Clinker_id} // shift sym: raw_Q
+ ,{90,(State*)&S19_Clinker_id} // shift sym: raw_R
+ ,{91,(State*)&S20_Clinker_id} // shift sym: raw_S
+ ,{92,(State*)&S21_Clinker_id} // shift sym: raw_T
+ ,{93,(State*)&S22_Clinker_id} // shift sym: raw_U
+ ,{94,(State*)&S23_Clinker_id} // shift sym: raw_V
+ ,{95,(State*)&S24_Clinker_id} // shift sym: raw_W
+ ,{96,(State*)&S25_Clinker_id} // shift sym: raw_X
+ ,{97,(State*)&S26_Clinker_id} // shift sym: raw_Y
+ ,{98,(State*)&S27_Clinker_id} // shift sym: raw_Z
+ ,{105,(State*)&S28_Clinker_id} // shift sym: raw_a
+ ,{106,(State*)&S29_Clinker_id} // shift sym: raw_b
+ ,{107,(State*)&S30_Clinker_id} // shift sym: raw_c
+ ,{108,(State*)&S31_Clinker_id} // shift sym: raw_d
+ ,{109,(State*)&S32_Clinker_id} // shift sym: raw_e
+ ,{110,(State*)&S33_Clinker_id} // shift sym: raw_f
+ ,{111,(State*)&S34_Clinker_id} // shift sym: raw_g
+ ,{112,(State*)&S35_Clinker_id} // shift sym: raw_h
+ ,{113,(State*)&S36_Clinker_id} // shift sym: raw_i
+ ,{114,(State*)&S37_Clinker_id} // shift sym: raw_j
+ ,{115,(State*)&S38_Clinker_id} // shift sym: raw_k
+ ,{116,(State*)&S39_Clinker_id} // shift sym: raw_l
+ ,{117,(State*)&S40_Clinker_id} // shift sym: raw_m
+ ,{118,(State*)&S41_Clinker_id} // shift sym: raw_n
+ ,{119,(State*)&S42_Clinker_id} // shift sym: raw_o
+ ,{120,(State*)&S43_Clinker_id} // shift sym: raw_p
+ ,{121,(State*)&S44_Clinker_id} // shift sym: raw_q
+ ,{122,(State*)&S45_Clinker_id} // shift sym: raw_r
+ ,{123,(State*)&S46_Clinker_id} // shift sym: raw_s
+ ,{124,(State*)&S47_Clinker_id} // shift sym: raw_t
+ ,{125,(State*)&S48_Clinker_id} // shift sym: raw_u
+ ,{126,(State*)&S49_Clinker_id} // shift sym: raw_v
+ ,{127,(State*)&S50_Clinker_id} // shift sym: raw_w
+ ,{128,(State*)&S51_Clinker_id} // shift sym: raw_x
+ ,{129,(State*)&S52_Clinker_id} // shift sym: raw_y
+ ,{130,(State*)&S53_Clinker_id} // shift sym: raw_z
+ ,{569,(State*)&S1_Clinker_id} // accept sym: Rlinker_id
+ ,{571,(State*)&S54_Clinker_id} // shift sym: Rstart_char
+ ,{575,(State*)&S75_Clinker_id} // shift sym: RUPPER_A_M
+ ,{576,(State*)&S76_Clinker_id} // shift sym: RUPPER_N_Z
+ ,{577,(State*)&S77_Clinker_id} // shift sym: Rlower_a_m
+ ,{578,(State*)&S78_Clinker_id} // shift sym: Rlower_n_z
+ }// end of shift table
+};
+yacco2::State S1_Clinker_id = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Clinker_id,0,0,0,0};
+struct S2rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Clinker_id S2rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs1_RUPPER_A_M_}
+ }// end of reduce table
+};
+yacco2::State S2_Clinker_id = //State's vectored into symbol: "A"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Clinker_id,0,0,0};
+struct S3rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Clinker_id S3rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs2_RUPPER_A_M_}
+ }// end of reduce table
+};
+yacco2::State S3_Clinker_id = //State's vectored into symbol: "B"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_Clinker_id,0,0,0};
+struct S4rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Clinker_id S4rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs3_RUPPER_A_M_}
+ }// end of reduce table
+};
+yacco2::State S4_Clinker_id = //State's vectored into symbol: "C"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Clinker_id,0,0,0};
+struct S5rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Clinker_id S5rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs4_RUPPER_A_M_}
+ }// end of reduce table
+};
+yacco2::State S5_Clinker_id = //State's vectored into symbol: "D"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Clinker_id,0,0,0};
+struct S6rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Clinker_id S6rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs5_RUPPER_A_M_}
+ }// end of reduce table
+};
+yacco2::State S6_Clinker_id = //State's vectored into symbol: "E"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Clinker_id,0,0,0};
+struct S7rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Clinker_id S7rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs6_RUPPER_A_M_}
+ }// end of reduce table
+};
+yacco2::State S7_Clinker_id = //State's vectored into symbol: "F"
+{7
+,0,0,0,0,0,(Reduce_tbl*)&S7rt_Clinker_id,0,0,0};
+struct S8rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S8rtd_Clinker_id S8rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs7_RUPPER_A_M_}
+ }// end of reduce table
+};
+yacco2::State S8_Clinker_id = //State's vectored into symbol: "G"
+{8
+,0,0,0,0,0,(Reduce_tbl*)&S8rt_Clinker_id,0,0,0};
+struct S9rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Clinker_id S9rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs8_RUPPER_A_M_}
+ }// end of reduce table
+};
+yacco2::State S9_Clinker_id = //State's vectored into symbol: "H"
+{9
+,0,0,0,0,0,(Reduce_tbl*)&S9rt_Clinker_id,0,0,0};
+struct S10rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S10rtd_Clinker_id S10rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs9_RUPPER_A_M_}
+ }// end of reduce table
+};
+yacco2::State S10_Clinker_id = //State's vectored into symbol: "I"
+{10
+,0,0,0,0,0,(Reduce_tbl*)&S10rt_Clinker_id,0,0,0};
+struct S11rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Clinker_id S11rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs10_RUPPER_A_M_}
+ }// end of reduce table
+};
+yacco2::State S11_Clinker_id = //State's vectored into symbol: "J"
+{11
+,0,0,0,0,0,(Reduce_tbl*)&S11rt_Clinker_id,0,0,0};
+struct S12rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S12rtd_Clinker_id S12rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs11_RUPPER_A_M_}
+ }// end of reduce table
+};
+yacco2::State S12_Clinker_id = //State's vectored into symbol: "K"
+{12
+,0,0,0,0,0,(Reduce_tbl*)&S12rt_Clinker_id,0,0,0};
+struct S13rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S13rtd_Clinker_id S13rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs12_RUPPER_A_M_}
+ }// end of reduce table
+};
+yacco2::State S13_Clinker_id = //State's vectored into symbol: "L"
+{13
+,0,0,0,0,0,(Reduce_tbl*)&S13rt_Clinker_id,0,0,0};
+struct S14rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S14rtd_Clinker_id S14rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs13_RUPPER_A_M_}
+ }// end of reduce table
+};
+yacco2::State S14_Clinker_id = //State's vectored into symbol: "M"
+{14
+,0,0,0,0,0,(Reduce_tbl*)&S14rt_Clinker_id,0,0,0};
+struct S15rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S15rtd_Clinker_id S15rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs1_RUPPER_N_Z_}
+ }// end of reduce table
+};
+yacco2::State S15_Clinker_id = //State's vectored into symbol: "N"
+{15
+,0,0,0,0,0,(Reduce_tbl*)&S15rt_Clinker_id,0,0,0};
+struct S16rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S16rtd_Clinker_id S16rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs2_RUPPER_N_Z_}
+ }// end of reduce table
+};
+yacco2::State S16_Clinker_id = //State's vectored into symbol: "O"
+{16
+,0,0,0,0,0,(Reduce_tbl*)&S16rt_Clinker_id,0,0,0};
+struct S17rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S17rtd_Clinker_id S17rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs3_RUPPER_N_Z_}
+ }// end of reduce table
+};
+yacco2::State S17_Clinker_id = //State's vectored into symbol: "P"
+{17
+,0,0,0,0,0,(Reduce_tbl*)&S17rt_Clinker_id,0,0,0};
+struct S18rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S18rtd_Clinker_id S18rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs4_RUPPER_N_Z_}
+ }// end of reduce table
+};
+yacco2::State S18_Clinker_id = //State's vectored into symbol: "Q"
+{18
+,0,0,0,0,0,(Reduce_tbl*)&S18rt_Clinker_id,0,0,0};
+struct S19rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S19rtd_Clinker_id S19rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs5_RUPPER_N_Z_}
+ }// end of reduce table
+};
+yacco2::State S19_Clinker_id = //State's vectored into symbol: "R"
+{19
+,0,0,0,0,0,(Reduce_tbl*)&S19rt_Clinker_id,0,0,0};
+struct S20rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S20rtd_Clinker_id S20rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs6_RUPPER_N_Z_}
+ }// end of reduce table
+};
+yacco2::State S20_Clinker_id = //State's vectored into symbol: "S"
+{20
+,0,0,0,0,0,(Reduce_tbl*)&S20rt_Clinker_id,0,0,0};
+struct S21rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S21rtd_Clinker_id S21rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs7_RUPPER_N_Z_}
+ }// end of reduce table
+};
+yacco2::State S21_Clinker_id = //State's vectored into symbol: "T"
+{21
+,0,0,0,0,0,(Reduce_tbl*)&S21rt_Clinker_id,0,0,0};
+struct S22rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S22rtd_Clinker_id S22rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs8_RUPPER_N_Z_}
+ }// end of reduce table
+};
+yacco2::State S22_Clinker_id = //State's vectored into symbol: "U"
+{22
+,0,0,0,0,0,(Reduce_tbl*)&S22rt_Clinker_id,0,0,0};
+struct S23rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S23rtd_Clinker_id S23rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs9_RUPPER_N_Z_}
+ }// end of reduce table
+};
+yacco2::State S23_Clinker_id = //State's vectored into symbol: "V"
+{23
+,0,0,0,0,0,(Reduce_tbl*)&S23rt_Clinker_id,0,0,0};
+struct S24rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S24rtd_Clinker_id S24rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs10_RUPPER_N_Z_}
+ }// end of reduce table
+};
+yacco2::State S24_Clinker_id = //State's vectored into symbol: "W"
+{24
+,0,0,0,0,0,(Reduce_tbl*)&S24rt_Clinker_id,0,0,0};
+struct S25rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S25rtd_Clinker_id S25rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs11_RUPPER_N_Z_}
+ }// end of reduce table
+};
+yacco2::State S25_Clinker_id = //State's vectored into symbol: "X"
+{25
+,0,0,0,0,0,(Reduce_tbl*)&S25rt_Clinker_id,0,0,0};
+struct S26rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S26rtd_Clinker_id S26rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs12_RUPPER_N_Z_}
+ }// end of reduce table
+};
+yacco2::State S26_Clinker_id = //State's vectored into symbol: "Y"
+{26
+,0,0,0,0,0,(Reduce_tbl*)&S26rt_Clinker_id,0,0,0};
+struct S27rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S27rtd_Clinker_id S27rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs13_RUPPER_N_Z_}
+ }// end of reduce table
+};
+yacco2::State S27_Clinker_id = //State's vectored into symbol: "Z"
+{27
+,0,0,0,0,0,(Reduce_tbl*)&S27rt_Clinker_id,0,0,0};
+struct S28rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S28rtd_Clinker_id S28rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs1_Rlower_a_m_}
+ }// end of reduce table
+};
+yacco2::State S28_Clinker_id = //State's vectored into symbol: "a"
+{28
+,0,0,0,0,0,(Reduce_tbl*)&S28rt_Clinker_id,0,0,0};
+struct S29rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S29rtd_Clinker_id S29rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs2_Rlower_a_m_}
+ }// end of reduce table
+};
+yacco2::State S29_Clinker_id = //State's vectored into symbol: "b"
+{29
+,0,0,0,0,0,(Reduce_tbl*)&S29rt_Clinker_id,0,0,0};
+struct S30rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S30rtd_Clinker_id S30rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs3_Rlower_a_m_}
+ }// end of reduce table
+};
+yacco2::State S30_Clinker_id = //State's vectored into symbol: "c"
+{30
+,0,0,0,0,0,(Reduce_tbl*)&S30rt_Clinker_id,0,0,0};
+struct S31rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S31rtd_Clinker_id S31rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs4_Rlower_a_m_}
+ }// end of reduce table
+};
+yacco2::State S31_Clinker_id = //State's vectored into symbol: "d"
+{31
+,0,0,0,0,0,(Reduce_tbl*)&S31rt_Clinker_id,0,0,0};
+struct S32rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S32rtd_Clinker_id S32rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs5_Rlower_a_m_}
+ }// end of reduce table
+};
+yacco2::State S32_Clinker_id = //State's vectored into symbol: "e"
+{32
+,0,0,0,0,0,(Reduce_tbl*)&S32rt_Clinker_id,0,0,0};
+struct S33rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S33rtd_Clinker_id S33rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs6_Rlower_a_m_}
+ }// end of reduce table
+};
+yacco2::State S33_Clinker_id = //State's vectored into symbol: "f"
+{33
+,0,0,0,0,0,(Reduce_tbl*)&S33rt_Clinker_id,0,0,0};
+struct S34rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S34rtd_Clinker_id S34rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs7_Rlower_a_m_}
+ }// end of reduce table
+};
+yacco2::State S34_Clinker_id = //State's vectored into symbol: "g"
+{34
+,0,0,0,0,0,(Reduce_tbl*)&S34rt_Clinker_id,0,0,0};
+struct S35rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S35rtd_Clinker_id S35rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs8_Rlower_a_m_}
+ }// end of reduce table
+};
+yacco2::State S35_Clinker_id = //State's vectored into symbol: "h"
+{35
+,0,0,0,0,0,(Reduce_tbl*)&S35rt_Clinker_id,0,0,0};
+struct S36rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S36rtd_Clinker_id S36rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs9_Rlower_a_m_}
+ }// end of reduce table
+};
+yacco2::State S36_Clinker_id = //State's vectored into symbol: "i"
+{36
+,0,0,0,0,0,(Reduce_tbl*)&S36rt_Clinker_id,0,0,0};
+struct S37rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S37rtd_Clinker_id S37rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs10_Rlower_a_m_}
+ }// end of reduce table
+};
+yacco2::State S37_Clinker_id = //State's vectored into symbol: "j"
+{37
+,0,0,0,0,0,(Reduce_tbl*)&S37rt_Clinker_id,0,0,0};
+struct S38rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S38rtd_Clinker_id S38rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs11_Rlower_a_m_}
+ }// end of reduce table
+};
+yacco2::State S38_Clinker_id = //State's vectored into symbol: "k"
+{38
+,0,0,0,0,0,(Reduce_tbl*)&S38rt_Clinker_id,0,0,0};
+struct S39rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S39rtd_Clinker_id S39rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs12_Rlower_a_m_}
+ }// end of reduce table
+};
+yacco2::State S39_Clinker_id = //State's vectored into symbol: "l"
+{39
+,0,0,0,0,0,(Reduce_tbl*)&S39rt_Clinker_id,0,0,0};
+struct S40rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S40rtd_Clinker_id S40rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs13_Rlower_a_m_}
+ }// end of reduce table
+};
+yacco2::State S40_Clinker_id = //State's vectored into symbol: "m"
+{40
+,0,0,0,0,0,(Reduce_tbl*)&S40rt_Clinker_id,0,0,0};
+struct S41rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S41rtd_Clinker_id S41rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs1_Rlower_n_z_}
+ }// end of reduce table
+};
+yacco2::State S41_Clinker_id = //State's vectored into symbol: "n"
+{41
+,0,0,0,0,0,(Reduce_tbl*)&S41rt_Clinker_id,0,0,0};
+struct S42rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S42rtd_Clinker_id S42rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs2_Rlower_n_z_}
+ }// end of reduce table
+};
+yacco2::State S42_Clinker_id = //State's vectored into symbol: "o"
+{42
+,0,0,0,0,0,(Reduce_tbl*)&S42rt_Clinker_id,0,0,0};
+struct S43rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S43rtd_Clinker_id S43rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs3_Rlower_n_z_}
+ }// end of reduce table
+};
+yacco2::State S43_Clinker_id = //State's vectored into symbol: "p"
+{43
+,0,0,0,0,0,(Reduce_tbl*)&S43rt_Clinker_id,0,0,0};
+struct S44rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S44rtd_Clinker_id S44rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs4_Rlower_n_z_}
+ }// end of reduce table
+};
+yacco2::State S44_Clinker_id = //State's vectored into symbol: "q"
+{44
+,0,0,0,0,0,(Reduce_tbl*)&S44rt_Clinker_id,0,0,0};
+struct S45rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S45rtd_Clinker_id S45rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs5_Rlower_n_z_}
+ }// end of reduce table
+};
+yacco2::State S45_Clinker_id = //State's vectored into symbol: "r"
+{45
+,0,0,0,0,0,(Reduce_tbl*)&S45rt_Clinker_id,0,0,0};
+struct S46rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S46rtd_Clinker_id S46rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs6_Rlower_n_z_}
+ }// end of reduce table
+};
+yacco2::State S46_Clinker_id = //State's vectored into symbol: "s"
+{46
+,0,0,0,0,0,(Reduce_tbl*)&S46rt_Clinker_id,0,0,0};
+struct S47rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S47rtd_Clinker_id S47rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs7_Rlower_n_z_}
+ }// end of reduce table
+};
+yacco2::State S47_Clinker_id = //State's vectored into symbol: "t"
+{47
+,0,0,0,0,0,(Reduce_tbl*)&S47rt_Clinker_id,0,0,0};
+struct S48rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S48rtd_Clinker_id S48rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs8_Rlower_n_z_}
+ }// end of reduce table
+};
+yacco2::State S48_Clinker_id = //State's vectored into symbol: "u"
+{48
+,0,0,0,0,0,(Reduce_tbl*)&S48rt_Clinker_id,0,0,0};
+struct S49rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S49rtd_Clinker_id S49rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs9_Rlower_n_z_}
+ }// end of reduce table
+};
+yacco2::State S49_Clinker_id = //State's vectored into symbol: "v"
+{49
+,0,0,0,0,0,(Reduce_tbl*)&S49rt_Clinker_id,0,0,0};
+struct S50rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S50rtd_Clinker_id S50rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs10_Rlower_n_z_}
+ }// end of reduce table
+};
+yacco2::State S50_Clinker_id = //State's vectored into symbol: "w"
+{50
+,0,0,0,0,0,(Reduce_tbl*)&S50rt_Clinker_id,0,0,0};
+struct S51rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S51rtd_Clinker_id S51rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs11_Rlower_n_z_}
+ }// end of reduce table
+};
+yacco2::State S51_Clinker_id = //State's vectored into symbol: "x"
+{51
+,0,0,0,0,0,(Reduce_tbl*)&S51rt_Clinker_id,0,0,0};
+struct S52rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S52rtd_Clinker_id S52rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs12_Rlower_n_z_}
+ }// end of reduce table
+};
+yacco2::State S52_Clinker_id = //State's vectored into symbol: "y"
+{52
+,0,0,0,0,0,(Reduce_tbl*)&S52rt_Clinker_id,0,0,0};
+struct S53rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S53rtd_Clinker_id S53rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs13_Rlower_n_z_}
+ }// end of reduce table
+};
+yacco2::State S53_Clinker_id = //State's vectored into symbol: "z"
+{53
+,0,0,0,0,0,(Reduce_tbl*)&S53rt_Clinker_id,0,0,0};
+struct S54std_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[76];
+};
+S54std_Clinker_id S54st_Clinker_id = {
+ 76
+ ,
+ {// start of table
+ {5,(State*)&S55_Clinker_id} // shift sym: LR1_invisible_shift_operator
+ ,{53,(State*)&S56_Clinker_id} // shift sym: raw_minus
+ ,{54,(State*)&S57_Clinker_id} // shift sym: raw_period
+ ,{56,(State*)&S58_Clinker_id} // shift sym: raw_0
+ ,{57,(State*)&S59_Clinker_id} // shift sym: raw_1
+ ,{58,(State*)&S60_Clinker_id} // shift sym: raw_2
+ ,{59,(State*)&S61_Clinker_id} // shift sym: raw_3
+ ,{60,(State*)&S62_Clinker_id} // shift sym: raw_4
+ ,{61,(State*)&S63_Clinker_id} // shift sym: raw_5
+ ,{62,(State*)&S64_Clinker_id} // shift sym: raw_6
+ ,{63,(State*)&S65_Clinker_id} // shift sym: raw_7
+ ,{64,(State*)&S66_Clinker_id} // shift sym: raw_8
+ ,{65,(State*)&S67_Clinker_id} // shift sym: raw_9
+ ,{66,(State*)&S68_Clinker_id} // shift sym: raw_colon
+ ,{73,(State*)&S2_Clinker_id} // shift sym: raw_A
+ ,{74,(State*)&S3_Clinker_id} // shift sym: raw_B
+ ,{75,(State*)&S4_Clinker_id} // shift sym: raw_C
+ ,{76,(State*)&S5_Clinker_id} // shift sym: raw_D
+ ,{77,(State*)&S6_Clinker_id} // shift sym: raw_E
+ ,{78,(State*)&S7_Clinker_id} // shift sym: raw_F
+ ,{79,(State*)&S8_Clinker_id} // shift sym: raw_G
+ ,{80,(State*)&S9_Clinker_id} // shift sym: raw_H
+ ,{81,(State*)&S10_Clinker_id} // shift sym: raw_I
+ ,{82,(State*)&S11_Clinker_id} // shift sym: raw_J
+ ,{83,(State*)&S12_Clinker_id} // shift sym: raw_K
+ ,{84,(State*)&S13_Clinker_id} // shift sym: raw_L
+ ,{85,(State*)&S14_Clinker_id} // shift sym: raw_M
+ ,{86,(State*)&S15_Clinker_id} // shift sym: raw_N
+ ,{87,(State*)&S16_Clinker_id} // shift sym: raw_O
+ ,{88,(State*)&S17_Clinker_id} // shift sym: raw_P
+ ,{89,(State*)&S18_Clinker_id} // shift sym: raw_Q
+ ,{90,(State*)&S19_Clinker_id} // shift sym: raw_R
+ ,{91,(State*)&S20_Clinker_id} // shift sym: raw_S
+ ,{92,(State*)&S21_Clinker_id} // shift sym: raw_T
+ ,{93,(State*)&S22_Clinker_id} // shift sym: raw_U
+ ,{94,(State*)&S23_Clinker_id} // shift sym: raw_V
+ ,{95,(State*)&S24_Clinker_id} // shift sym: raw_W
+ ,{96,(State*)&S25_Clinker_id} // shift sym: raw_X
+ ,{97,(State*)&S26_Clinker_id} // shift sym: raw_Y
+ ,{98,(State*)&S27_Clinker_id} // shift sym: raw_Z
+ ,{103,(State*)&S69_Clinker_id} // shift sym: raw_under_score
+ ,{105,(State*)&S28_Clinker_id} // shift sym: raw_a
+ ,{106,(State*)&S29_Clinker_id} // shift sym: raw_b
+ ,{107,(State*)&S30_Clinker_id} // shift sym: raw_c
+ ,{108,(State*)&S31_Clinker_id} // shift sym: raw_d
+ ,{109,(State*)&S32_Clinker_id} // shift sym: raw_e
+ ,{110,(State*)&S33_Clinker_id} // shift sym: raw_f
+ ,{111,(State*)&S34_Clinker_id} // shift sym: raw_g
+ ,{112,(State*)&S35_Clinker_id} // shift sym: raw_h
+ ,{113,(State*)&S36_Clinker_id} // shift sym: raw_i
+ ,{114,(State*)&S37_Clinker_id} // shift sym: raw_j
+ ,{115,(State*)&S38_Clinker_id} // shift sym: raw_k
+ ,{116,(State*)&S39_Clinker_id} // shift sym: raw_l
+ ,{117,(State*)&S40_Clinker_id} // shift sym: raw_m
+ ,{118,(State*)&S41_Clinker_id} // shift sym: raw_n
+ ,{119,(State*)&S42_Clinker_id} // shift sym: raw_o
+ ,{120,(State*)&S43_Clinker_id} // shift sym: raw_p
+ ,{121,(State*)&S44_Clinker_id} // shift sym: raw_q
+ ,{122,(State*)&S45_Clinker_id} // shift sym: raw_r
+ ,{123,(State*)&S46_Clinker_id} // shift sym: raw_s
+ ,{124,(State*)&S47_Clinker_id} // shift sym: raw_t
+ ,{125,(State*)&S48_Clinker_id} // shift sym: raw_u
+ ,{126,(State*)&S49_Clinker_id} // shift sym: raw_v
+ ,{127,(State*)&S50_Clinker_id} // shift sym: raw_w
+ ,{128,(State*)&S51_Clinker_id} // shift sym: raw_x
+ ,{129,(State*)&S52_Clinker_id} // shift sym: raw_y
+ ,{130,(State*)&S53_Clinker_id} // shift sym: raw_z
+ ,{570,(State*)&S70_Clinker_id} // shift sym: Rtail_chars
+ ,{571,(State*)&S72_Clinker_id} // shift sym: Rstart_char
+ ,{572,(State*)&S80_Clinker_id} // shift sym: Rtail_char
+ ,{573,(State*)&S74_Clinker_id} // shift sym: Rno_and_underscore_and_hyphen
+ ,{575,(State*)&S75_Clinker_id} // shift sym: RUPPER_A_M
+ ,{576,(State*)&S76_Clinker_id} // shift sym: RUPPER_N_Z
+ ,{577,(State*)&S77_Clinker_id} // shift sym: Rlower_a_m
+ ,{578,(State*)&S78_Clinker_id} // shift sym: Rlower_n_z
+ ,{579,(State*)&S79_Clinker_id} // shift sym: RNUMBERS
+ }// end of shift table
+};
+yacco2::Shift_entry S54ise_Clinker_id = {5,(State*)&S55_Clinker_id};
+yacco2::State S54_Clinker_id = //State's vectored into symbol: "Rstart_char"
+{54
+,0,0,(Shift_entry*)&S54ise_Clinker_id
+,0,(Shift_tbl*)&S54st_Clinker_id,0,0,0,0};
+struct S55rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S55rtd_Clinker_id S55rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clinker_id,Clinker_id::rhs1_Rlinker_id_}
+ }// end of reduce table
+};
+yacco2::State S55_Clinker_id = //State's vectored into symbol: "|.|"
+{55
+,0,0,0,0,0,(Reduce_tbl*)&S55rt_Clinker_id,0,0,0};
+struct S56rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S56rtd_Clinker_id S56rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs4_Rno_and_underscore_and_hyphen_}
+ }// end of reduce table
+};
+yacco2::State S56_Clinker_id = //State's vectored into symbol: "-"
+{56
+,0,0,0,0,0,(Reduce_tbl*)&S56rt_Clinker_id,0,0,0};
+struct S57rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S57rtd_Clinker_id S57rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs2_Rno_and_underscore_and_hyphen_}
+ }// end of reduce table
+};
+yacco2::State S57_Clinker_id = //State's vectored into symbol: "."
+{57
+,0,0,0,0,0,(Reduce_tbl*)&S57rt_Clinker_id,0,0,0};
+struct S58rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S58rtd_Clinker_id S58rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs1_RNUMBERS_}
+ }// end of reduce table
+};
+yacco2::State S58_Clinker_id = //State's vectored into symbol: "0"
+{58
+,0,0,0,0,0,(Reduce_tbl*)&S58rt_Clinker_id,0,0,0};
+struct S59rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S59rtd_Clinker_id S59rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs2_RNUMBERS_}
+ }// end of reduce table
+};
+yacco2::State S59_Clinker_id = //State's vectored into symbol: "1"
+{59
+,0,0,0,0,0,(Reduce_tbl*)&S59rt_Clinker_id,0,0,0};
+struct S60rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S60rtd_Clinker_id S60rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs3_RNUMBERS_}
+ }// end of reduce table
+};
+yacco2::State S60_Clinker_id = //State's vectored into symbol: "2"
+{60
+,0,0,0,0,0,(Reduce_tbl*)&S60rt_Clinker_id,0,0,0};
+struct S61rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S61rtd_Clinker_id S61rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs4_RNUMBERS_}
+ }// end of reduce table
+};
+yacco2::State S61_Clinker_id = //State's vectored into symbol: "3"
+{61
+,0,0,0,0,0,(Reduce_tbl*)&S61rt_Clinker_id,0,0,0};
+struct S62rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S62rtd_Clinker_id S62rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs5_RNUMBERS_}
+ }// end of reduce table
+};
+yacco2::State S62_Clinker_id = //State's vectored into symbol: "4"
+{62
+,0,0,0,0,0,(Reduce_tbl*)&S62rt_Clinker_id,0,0,0};
+struct S63rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S63rtd_Clinker_id S63rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs6_RNUMBERS_}
+ }// end of reduce table
+};
+yacco2::State S63_Clinker_id = //State's vectored into symbol: "5"
+{63
+,0,0,0,0,0,(Reduce_tbl*)&S63rt_Clinker_id,0,0,0};
+struct S64rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S64rtd_Clinker_id S64rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs7_RNUMBERS_}
+ }// end of reduce table
+};
+yacco2::State S64_Clinker_id = //State's vectored into symbol: "6"
+{64
+,0,0,0,0,0,(Reduce_tbl*)&S64rt_Clinker_id,0,0,0};
+struct S65rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S65rtd_Clinker_id S65rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs8_RNUMBERS_}
+ }// end of reduce table
+};
+yacco2::State S65_Clinker_id = //State's vectored into symbol: "7"
+{65
+,0,0,0,0,0,(Reduce_tbl*)&S65rt_Clinker_id,0,0,0};
+struct S66rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S66rtd_Clinker_id S66rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs9_RNUMBERS_}
+ }// end of reduce table
+};
+yacco2::State S66_Clinker_id = //State's vectored into symbol: "8"
+{66
+,0,0,0,0,0,(Reduce_tbl*)&S66rt_Clinker_id,0,0,0};
+struct S67rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S67rtd_Clinker_id S67rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs10_RNUMBERS_}
+ }// end of reduce table
+};
+yacco2::State S67_Clinker_id = //State's vectored into symbol: "9"
+{67
+,0,0,0,0,0,(Reduce_tbl*)&S67rt_Clinker_id,0,0,0};
+struct S68rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S68rtd_Clinker_id S68rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs1_Rno_and_underscore_and_hyphen_}
+ }// end of reduce table
+};
+yacco2::State S68_Clinker_id = //State's vectored into symbol: ":"
+{68
+,0,0,0,0,0,(Reduce_tbl*)&S68rt_Clinker_id,0,0,0};
+struct S69rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S69rtd_Clinker_id S69rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs3_Rno_and_underscore_and_hyphen_}
+ }// end of reduce table
+};
+yacco2::State S69_Clinker_id = //State's vectored into symbol: "_"
+{69
+,0,0,0,0,0,(Reduce_tbl*)&S69rt_Clinker_id,0,0,0};
+struct S70std_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[75];
+};
+S70std_Clinker_id S70st_Clinker_id = {
+ 75
+ ,
+ {// start of table
+ {5,(State*)&S71_Clinker_id} // shift sym: LR1_invisible_shift_operator
+ ,{53,(State*)&S56_Clinker_id} // shift sym: raw_minus
+ ,{54,(State*)&S57_Clinker_id} // shift sym: raw_period
+ ,{56,(State*)&S58_Clinker_id} // shift sym: raw_0
+ ,{57,(State*)&S59_Clinker_id} // shift sym: raw_1
+ ,{58,(State*)&S60_Clinker_id} // shift sym: raw_2
+ ,{59,(State*)&S61_Clinker_id} // shift sym: raw_3
+ ,{60,(State*)&S62_Clinker_id} // shift sym: raw_4
+ ,{61,(State*)&S63_Clinker_id} // shift sym: raw_5
+ ,{62,(State*)&S64_Clinker_id} // shift sym: raw_6
+ ,{63,(State*)&S65_Clinker_id} // shift sym: raw_7
+ ,{64,(State*)&S66_Clinker_id} // shift sym: raw_8
+ ,{65,(State*)&S67_Clinker_id} // shift sym: raw_9
+ ,{66,(State*)&S68_Clinker_id} // shift sym: raw_colon
+ ,{73,(State*)&S2_Clinker_id} // shift sym: raw_A
+ ,{74,(State*)&S3_Clinker_id} // shift sym: raw_B
+ ,{75,(State*)&S4_Clinker_id} // shift sym: raw_C
+ ,{76,(State*)&S5_Clinker_id} // shift sym: raw_D
+ ,{77,(State*)&S6_Clinker_id} // shift sym: raw_E
+ ,{78,(State*)&S7_Clinker_id} // shift sym: raw_F
+ ,{79,(State*)&S8_Clinker_id} // shift sym: raw_G
+ ,{80,(State*)&S9_Clinker_id} // shift sym: raw_H
+ ,{81,(State*)&S10_Clinker_id} // shift sym: raw_I
+ ,{82,(State*)&S11_Clinker_id} // shift sym: raw_J
+ ,{83,(State*)&S12_Clinker_id} // shift sym: raw_K
+ ,{84,(State*)&S13_Clinker_id} // shift sym: raw_L
+ ,{85,(State*)&S14_Clinker_id} // shift sym: raw_M
+ ,{86,(State*)&S15_Clinker_id} // shift sym: raw_N
+ ,{87,(State*)&S16_Clinker_id} // shift sym: raw_O
+ ,{88,(State*)&S17_Clinker_id} // shift sym: raw_P
+ ,{89,(State*)&S18_Clinker_id} // shift sym: raw_Q
+ ,{90,(State*)&S19_Clinker_id} // shift sym: raw_R
+ ,{91,(State*)&S20_Clinker_id} // shift sym: raw_S
+ ,{92,(State*)&S21_Clinker_id} // shift sym: raw_T
+ ,{93,(State*)&S22_Clinker_id} // shift sym: raw_U
+ ,{94,(State*)&S23_Clinker_id} // shift sym: raw_V
+ ,{95,(State*)&S24_Clinker_id} // shift sym: raw_W
+ ,{96,(State*)&S25_Clinker_id} // shift sym: raw_X
+ ,{97,(State*)&S26_Clinker_id} // shift sym: raw_Y
+ ,{98,(State*)&S27_Clinker_id} // shift sym: raw_Z
+ ,{103,(State*)&S69_Clinker_id} // shift sym: raw_under_score
+ ,{105,(State*)&S28_Clinker_id} // shift sym: raw_a
+ ,{106,(State*)&S29_Clinker_id} // shift sym: raw_b
+ ,{107,(State*)&S30_Clinker_id} // shift sym: raw_c
+ ,{108,(State*)&S31_Clinker_id} // shift sym: raw_d
+ ,{109,(State*)&S32_Clinker_id} // shift sym: raw_e
+ ,{110,(State*)&S33_Clinker_id} // shift sym: raw_f
+ ,{111,(State*)&S34_Clinker_id} // shift sym: raw_g
+ ,{112,(State*)&S35_Clinker_id} // shift sym: raw_h
+ ,{113,(State*)&S36_Clinker_id} // shift sym: raw_i
+ ,{114,(State*)&S37_Clinker_id} // shift sym: raw_j
+ ,{115,(State*)&S38_Clinker_id} // shift sym: raw_k
+ ,{116,(State*)&S39_Clinker_id} // shift sym: raw_l
+ ,{117,(State*)&S40_Clinker_id} // shift sym: raw_m
+ ,{118,(State*)&S41_Clinker_id} // shift sym: raw_n
+ ,{119,(State*)&S42_Clinker_id} // shift sym: raw_o
+ ,{120,(State*)&S43_Clinker_id} // shift sym: raw_p
+ ,{121,(State*)&S44_Clinker_id} // shift sym: raw_q
+ ,{122,(State*)&S45_Clinker_id} // shift sym: raw_r
+ ,{123,(State*)&S46_Clinker_id} // shift sym: raw_s
+ ,{124,(State*)&S47_Clinker_id} // shift sym: raw_t
+ ,{125,(State*)&S48_Clinker_id} // shift sym: raw_u
+ ,{126,(State*)&S49_Clinker_id} // shift sym: raw_v
+ ,{127,(State*)&S50_Clinker_id} // shift sym: raw_w
+ ,{128,(State*)&S51_Clinker_id} // shift sym: raw_x
+ ,{129,(State*)&S52_Clinker_id} // shift sym: raw_y
+ ,{130,(State*)&S53_Clinker_id} // shift sym: raw_z
+ ,{571,(State*)&S72_Clinker_id} // shift sym: Rstart_char
+ ,{572,(State*)&S73_Clinker_id} // shift sym: Rtail_char
+ ,{573,(State*)&S74_Clinker_id} // shift sym: Rno_and_underscore_and_hyphen
+ ,{575,(State*)&S75_Clinker_id} // shift sym: RUPPER_A_M
+ ,{576,(State*)&S76_Clinker_id} // shift sym: RUPPER_N_Z
+ ,{577,(State*)&S77_Clinker_id} // shift sym: Rlower_a_m
+ ,{578,(State*)&S78_Clinker_id} // shift sym: Rlower_n_z
+ ,{579,(State*)&S79_Clinker_id} // shift sym: RNUMBERS
+ }// end of shift table
+};
+yacco2::Shift_entry S70ise_Clinker_id = {5,(State*)&S71_Clinker_id};
+yacco2::State S70_Clinker_id = //State's vectored into symbol: "Rtail_chars"
+{70
+,0,0,(Shift_entry*)&S70ise_Clinker_id
+,0,(Shift_tbl*)&S70st_Clinker_id,0,0,0,0};
+struct S71rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S71rtd_Clinker_id S71rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clinker_id,Clinker_id::rhs2_Rlinker_id_}
+ }// end of reduce table
+};
+yacco2::State S71_Clinker_id = //State's vectored into symbol: "|.|"
+{71
+,0,0,0,0,0,(Reduce_tbl*)&S71rt_Clinker_id,0,0,0};
+struct S72rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S72rtd_Clinker_id S72rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs1_Rtail_char_}
+ }// end of reduce table
+};
+yacco2::State S72_Clinker_id = //State's vectored into symbol: "Rstart_char"
+{72
+,0,0,0,0,0,(Reduce_tbl*)&S72rt_Clinker_id,0,0,0};
+struct S73rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S73rtd_Clinker_id S73rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs2_Rtail_chars_}
+ }// end of reduce table
+};
+yacco2::State S73_Clinker_id = //State's vectored into symbol: "Rtail_char"
+{73
+,0,0,0,0,0,(Reduce_tbl*)&S73rt_Clinker_id,0,0,0};
+struct S74rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S74rtd_Clinker_id S74rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs2_Rtail_char_}
+ }// end of reduce table
+};
+yacco2::State S74_Clinker_id = //State's vectored into symbol: "Rno_and_underscore_and_hyphen"
+{74
+,0,0,0,0,0,(Reduce_tbl*)&S74rt_Clinker_id,0,0,0};
+struct S75rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S75rtd_Clinker_id S75rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs1_Rstart_char_}
+ }// end of reduce table
+};
+yacco2::State S75_Clinker_id = //State's vectored into symbol: "RUPPER_A_M"
+{75
+,0,0,0,0,0,(Reduce_tbl*)&S75rt_Clinker_id,0,0,0};
+struct S76rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S76rtd_Clinker_id S76rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs2_Rstart_char_}
+ }// end of reduce table
+};
+yacco2::State S76_Clinker_id = //State's vectored into symbol: "RUPPER_N_Z"
+{76
+,0,0,0,0,0,(Reduce_tbl*)&S76rt_Clinker_id,0,0,0};
+struct S77rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S77rtd_Clinker_id S77rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs3_Rstart_char_}
+ }// end of reduce table
+};
+yacco2::State S77_Clinker_id = //State's vectored into symbol: "Rlower_a_m"
+{77
+,0,0,0,0,0,(Reduce_tbl*)&S77rt_Clinker_id,0,0,0};
+struct S78rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S78rtd_Clinker_id S78rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs4_Rstart_char_}
+ }// end of reduce table
+};
+yacco2::State S78_Clinker_id = //State's vectored into symbol: "Rlower_n_z"
+{78
+,0,0,0,0,0,(Reduce_tbl*)&S78rt_Clinker_id,0,0,0};
+struct S79rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S79rtd_Clinker_id S79rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs5_Rno_and_underscore_and_hyphen_}
+ }// end of reduce table
+};
+yacco2::State S79_Clinker_id = //State's vectored into symbol: "RNUMBERS"
+{79
+,0,0,0,0,0,(Reduce_tbl*)&S79rt_Clinker_id,0,0,0};
+struct S80rtd_Clinker_id{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S80rtd_Clinker_id S80rt_Clinker_id = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_id,Clinker_id::rhs1_Rtail_chars_}
+ }// end of reduce table
+};
+yacco2::State S80_Clinker_id = //State's vectored into symbol: "Rtail_char"
+{80
+,0,0,0,0,0,(Reduce_tbl*)&S80rt_Clinker_id,0,0,0};
diff --git a/web/yacco2/compiler/grammars/linker_pass3.cpp b/web/yacco2/compiler/grammars/linker_pass3.cpp
new file mode 100644
index 0000000000..6247f64cd2
--- /dev/null
+++ b/web/yacco2/compiler/grammars/linker_pass3.cpp
@@ -0,0 +1,648 @@
+/*
+ File: linker_pass3.cpp
+ Date and Time: Fri Jan 30 18:55:14 2015
+*/
+#include "linker_pass3.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_linker_pass3;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 10;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[4] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[5] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[6] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[7] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[8] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[9] = new Per_rule_s_reuse_table();
+}
+ Clinker_pass3::
+ Clinker_pass3()
+ :yacco2::CAbs_fsm
+ ("linker_pass3.lex"
+ ,"1.0"
+ ,"9 Feb. 2005"
+ ,false
+ ,"Lexer: constructing tokens for \\olinker parsing stage."
+ ,"Fri Jan 30 18:55:14 2015 "
+ ,S1_Clinker_pass3){
+
+ }
+
+Clinker_pass3::~Clinker_pass3(){
+
+ for(int x = 0;x < 10;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Clinker_pass3::failed(){
+ return false;
+ }
+ void Clinker_pass3::op(){
+}
+int Clinker_pass3::rhs_to_rules_mapping_[36] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,1 // subrule 4 for rule 2
+ ,2 // subrule 5 for rule 3
+ ,2 // subrule 6 for rule 3
+ ,2 // subrule 7 for rule 3
+ ,2 // subrule 8 for rule 3
+ ,2 // subrule 9 for rule 3
+ ,2 // subrule 10 for rule 3
+ ,3 // subrule 11 for rule 4
+ ,3 // subrule 12 for rule 4
+ ,3 // subrule 13 for rule 4
+ ,4 // subrule 14 for rule 5
+ ,4 // subrule 15 for rule 5
+ ,4 // subrule 16 for rule 5
+ ,4 // subrule 17 for rule 5
+ ,4 // subrule 18 for rule 5
+ ,4 // subrule 19 for rule 5
+ ,5 // subrule 20 for rule 6
+ ,5 // subrule 21 for rule 6
+ ,5 // subrule 22 for rule 6
+ ,6 // subrule 23 for rule 7
+ ,6 // subrule 24 for rule 7
+ ,6 // subrule 25 for rule 7
+ ,7 // subrule 26 for rule 8
+ ,7 // subrule 27 for rule 8
+ ,7 // subrule 28 for rule 8
+ ,8 // subrule 29 for rule 9
+ ,8 // subrule 30 for rule 9
+ ,8 // subrule 31 for rule 9
+ ,8 // subrule 32 for rule 9
+ ,8 // subrule 33 for rule 9
+ ,9 // subrule 34 for rule 10
+ ,9 // subrule 35 for rule 10
+};
+
+ bool Clinker_pass3::chk_ofilename(const char* Filename,CAbs_lr1_sym* Tok){
+ std::ofstream fle_chk;
+ fle_chk.open(Filename,ios::out);
+ if(!fle_chk.good()){
+ CAbs_lr1_sym* sym = new Err_bad_filename(Filename);
+ sym->set_rc(*Tok,__FILE__,__LINE__);
+ parser__->add_token_to_error_queue(*sym);
+ parser__->set_stop_parse(true);
+ return false;
+ }else{
+ fle_chk.close();
+ }
+ return true;
+ }
+ bool Clinker_pass3::chk_filename(const char* Filename
+ ,CAbs_lr1_sym* Tok,CAbs_lr1_sym* Err){
+ std::ifstream fle_chk;
+ fle_chk.open(Filename);
+ if(!fle_chk.good()){
+ Err->set_rc(*Tok,__FILE__,__LINE__);
+ parser__->add_token_to_error_queue(*Err);
+ parser__->set_stop_parse(true);
+ return false;
+ }else{
+ delete Err;
+ fle_chk.close();
+ }
+ return true;
+ }
+ yacco2::CAbs_lr1_sym* Clinker_pass3::chk_for_overrun(){
+ switch (parser__->current_token()->enumerated_id__){
+ case T_Enum::T_LR1_eog_: break;
+ default: return 0;
+ }
+ yacco2::CAbs_lr1_sym* sym = new Err_end_preamble_kw_not_present;
+ sym->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ parser__->set_use_all_shift_off();
+ return sym;
+ }
+
+Rlinker_pass3::Rlinker_pass3(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlinker_pass3",0,Clinker_pass3::R_Rlinker_pass3_,P,false,false){
+}
+
+void Rlinker_pass3::op(){
+ sstrace_rulesss
+
+ using namespace NS_yacco2_k_symbols;
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*yacco2::PTR_LR1_eog__);
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*yacco2::PTR_LR1_eog__);
+
+}
+RT_alphabet::RT_alphabet(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("RT_alphabet",0,Clinker_pass3::R_RT_alphabet_,P,false,false){
+}
+
+void RT_alphabet::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ CAbs_lr1_sym* sym = new Err_file_of_T_alphabet_kw_not_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ sf->p2__->set_auto_delete(true);
+
+}
+
+void RT_alphabet::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_file_of_T_alphabet_kw_not_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+RT_alphabet_filename::RT_alphabet_filename(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("RT_alphabet_filename",0,Clinker_pass3::R_RT_alphabet_filename_,P,false,false){
+}
+
+void RT_alphabet_filename::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_c_string* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Clinker_pass3* fsm = (Clinker_pass3*) rule_info__.parser__->fsm_tbl__;
+ const char* fn = sf->p2__->c_string()->c_str();
+ if(fsm->chk_filename(fn,sf->p2__,
+ new Err_T_alphabet_file_does_not_exist) == false) return;
+ fsm->t_alphabet_filename_ += fn;
+ sf->p2__->set_auto_delete(true);
+
+}
+
+void RT_alphabet_filename::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Err_bad_eos* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void RT_alphabet_filename::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Err_bad_esc* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void RT_alphabet_filename::sr4(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ CAbs_lr1_sym* sym = new Err_no_filename_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ sf->p2__->set_auto_delete(true);
+
+}
+
+void RT_alphabet_filename::sr5(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_angled_string* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Clinker_pass3* fsm = (Clinker_pass3*) rule_info__.parser__->fsm_tbl__;
+ const char* fn = sf->p2__->angled_string()->c_str();
+ if(fsm->chk_filename(fn,sf->p2__
+ ,new Err_T_alphabet_file_does_not_exist) == false) return;
+ fsm->t_alphabet_filename_ += fn;
+ sf->p2__->set_auto_delete(true);
+
+}
+
+void RT_alphabet_filename::sr6(){
+
+ CAbs_lr1_sym* sym = new Err_T_alphabet_file_not_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Remitfile::Remitfile(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Remitfile",0,Clinker_pass3::R_Remitfile_,P,false,false){
+}
+
+void Remitfile::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ CAbs_lr1_sym* sym = new Err_emitfile_kw_not_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ sf->p2__->set_auto_delete(true);
+
+}
+
+void Remitfile::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_emitfile_kw_not_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Remitfile_filename::Remitfile_filename(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Remitfile_filename",0,Clinker_pass3::R_Remitfile_filename_,P,false,false){
+}
+
+void Remitfile_filename::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_c_string* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Clinker_pass3* fsm = (Clinker_pass3*) rule_info__.parser__->fsm_tbl__;
+ const char* fn = sf->p2__->c_string()->c_str();
+ if(fsm->chk_ofilename(fn,sf->p2__) == false) return;
+ fsm->emitfile_filename_ += fn;
+ sf->p2__->set_auto_delete(true);
+
+}
+
+void Remitfile_filename::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Err_bad_eos* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Remitfile_filename::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Err_bad_esc* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Remitfile_filename::sr4(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ CAbs_lr1_sym* sym = new Err_emitfile_file_not_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ sf->p2__->set_auto_delete(true);
+
+}
+
+void Remitfile_filename::sr5(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_angled_string* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Clinker_pass3* fsm = (Clinker_pass3*) rule_info__.parser__->fsm_tbl__;
+ const char* fn = sf->p2__->angled_string()->c_str();
+ if(fsm->chk_ofilename(fn,sf->p2__) == false) return;
+ fsm->emitfile_filename_ += fn;
+ sf->p2__->set_auto_delete(true);
+
+}
+
+void Remitfile_filename::sr6(){
+
+ CAbs_lr1_sym* sym = new Err_emitfile_file_not_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rpreamble::Rpreamble(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rpreamble",0,Clinker_pass3::R_Rpreamble_,P,false,false){
+}
+
+void Rpreamble::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ CAbs_lr1_sym* sym = new Err_preamble_kw_not_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ sf->p2__->set_auto_delete(true);
+
+}
+
+void Rpreamble::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_preamble_kw_not_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rpreamble_code::Rpreamble_code(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rpreamble_code",0,Clinker_pass3::R_Rpreamble_code_,P,false,false){
+}
+
+void Rpreamble_code::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_syntax_code* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Clinker_pass3* fsm = (Clinker_pass3*) rule_info__.parser__->fsm_tbl__;
+ fsm->preamble_srce_ = sf->p2__;
+
+}
+
+void Rpreamble_code::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rpreamble_code::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_preamble_srce_code_not_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+R_fsc_files::R_fsc_files(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("R_fsc_files",0,Clinker_pass3::R_R_fsc_files_,P,false,false){
+}
+
+void R_fsc_files::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_fsc_cntl_file_not_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+R_fsc_file::R_fsc_file(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("R_fsc_file",0,Clinker_pass3::R_R_fsc_file_,P,false,false){
+}
+
+void R_fsc_file::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_c_string* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Clinker_pass3* fsm = (Clinker_pass3*) rule_info__.parser__->fsm_tbl__;
+ const char* fn = sf->p2__->c_string()->c_str();
+ if(fsm->chk_filename(fn,sf->p2__
+ ,new Err_fsc_file_does_not_exist) == false) return;
+ fsm->grammars_fsc_files_.push_back(string(fn));
+ sf->p2__->set_auto_delete(true);
+
+}
+
+void R_fsc_file::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Err_bad_eos* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void R_fsc_file::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Err_bad_esc* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void R_fsc_file::sr4(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_angled_string* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Clinker_pass3* fsm = (Clinker_pass3*) rule_info__.parser__->fsm_tbl__;
+ const char* fn = sf->p2__->angled_string()->c_str();
+ if(fsm->chk_filename(fn,sf->p2__
+ ,new Err_fsc_file_does_not_exist) == false) return;
+ fsm->grammars_fsc_files_.push_back(string(fn));
+ sf->p2__->set_auto_delete(true);
+
+}
+
+void R_fsc_file::sr5(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rlint::Rlint(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlint",0,Clinker_pass3::R_Rlint_,P,false,false){
+}
+
diff --git a/web/yacco2/compiler/grammars/linker_pass3.fsc b/web/yacco2/compiler/grammars/linker_pass3.fsc
new file mode 100644
index 0000000000..8c4eb5c87f
--- /dev/null
+++ b/web/yacco2/compiler/grammars/linker_pass3.fsc
@@ -0,0 +1,27 @@
+/*
+ File: linker_pass3.fsc
+ Date and Time: Fri Jan 30 18:55:14 2015
+*/
+transitive y
+grammar-name "linker_pass3"
+name-space "NS_linker_pass3"
+thread-name "Clinker_pass3"
+monolithic y
+file-name "linker_pass3.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ LR1_questionable_shift_operator
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 2
+ NS_linker_id::TH_linker_id
+ NS_lint_balls::TH_lint_balls
+end-list-of-transitive-threads
+list-of-used-threads 5
+ NS_angled_string::TH_angled_string
+ NS_c_string::TH_c_string
+ NS_linker_id::TH_linker_id
+ NS_linker_preamble_code::TH_linker_preamble_code
+ NS_lint_balls::TH_lint_balls
+end-list-of-used-threads
+fsm-comments
+"Lexer: constructing tokens for \\olinker parsing stage."
diff --git a/web/yacco2/compiler/grammars/linker_pass3.h b/web/yacco2/compiler/grammars/linker_pass3.h
new file mode 100644
index 0000000000..a0557cdb2d
--- /dev/null
+++ b/web/yacco2/compiler/grammars/linker_pass3.h
@@ -0,0 +1,195 @@
+/*
+ File: linker_pass3.h
+ Date and Time: Fri Jan 30 18:55:14 2015
+*/
+#ifndef __linker_pass3_h__
+#define __linker_pass3_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "linker_id.h"
+#include "linker_preamble_code.h"
+#include "lint_balls.h"
+#include "c_string.h"
+#include "angled_string.h"
+#include "c_literal.h"
+#include "bad_char_set.h"
+using namespace NS_yacco2_terminals;
+
+// monolithic grammar: no thread
+extern yacco2::State S1_Clinker_pass3;
+namespace NS_linker_pass3 {
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[10];
+};
+class Clinker_pass3: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rlinker_pass3_ = 569//start_of_rule_list + 0
+ ,rhs1_Rlinker_pass3_ = 1
+ ,R_RT_alphabet_ = 570//start_of_rule_list + 2
+ ,rhs1_RT_alphabet_ = 2
+ ,rhs2_RT_alphabet_ = 3
+ ,rhs3_RT_alphabet_ = 4
+ ,R_RT_alphabet_filename_ = 571//start_of_rule_list + 4
+ ,rhs1_RT_alphabet_filename_ = 5
+ ,rhs2_RT_alphabet_filename_ = 6
+ ,rhs3_RT_alphabet_filename_ = 7
+ ,rhs4_RT_alphabet_filename_ = 8
+ ,rhs5_RT_alphabet_filename_ = 9
+ ,rhs6_RT_alphabet_filename_ = 10
+ ,R_Remitfile_ = 572//start_of_rule_list + 6
+ ,rhs1_Remitfile_ = 11
+ ,rhs2_Remitfile_ = 12
+ ,rhs3_Remitfile_ = 13
+ ,R_Remitfile_filename_ = 573//start_of_rule_list + 8
+ ,rhs1_Remitfile_filename_ = 14
+ ,rhs2_Remitfile_filename_ = 15
+ ,rhs3_Remitfile_filename_ = 16
+ ,rhs4_Remitfile_filename_ = 17
+ ,rhs5_Remitfile_filename_ = 18
+ ,rhs6_Remitfile_filename_ = 19
+ ,R_Rpreamble_ = 574//start_of_rule_list + 10
+ ,rhs1_Rpreamble_ = 20
+ ,rhs2_Rpreamble_ = 21
+ ,rhs3_Rpreamble_ = 22
+ ,R_Rpreamble_code_ = 575//start_of_rule_list + 12
+ ,rhs1_Rpreamble_code_ = 23
+ ,rhs2_Rpreamble_code_ = 24
+ ,rhs3_Rpreamble_code_ = 25
+ ,R_R_fsc_files_ = 576//start_of_rule_list + 14
+ ,rhs1_R_fsc_files_ = 26
+ ,rhs2_R_fsc_files_ = 27
+ ,rhs3_R_fsc_files_ = 28
+ ,R_R_fsc_file_ = 577//start_of_rule_list + 16
+ ,rhs1_R_fsc_file_ = 29
+ ,rhs2_R_fsc_file_ = 30
+ ,rhs3_R_fsc_file_ = 31
+ ,rhs4_R_fsc_file_ = 32
+ ,rhs5_R_fsc_file_ = 33
+ ,R_Rlint_ = 578//start_of_rule_list + 18
+ ,rhs1_Rlint_ = 34
+ ,rhs2_Rlint_ = 35
+ };
+ //no of la sets = 5
+ //no of states = 60
+ Clinker_pass3();
+ ~Clinker_pass3();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[36];
+
+ public:
+ bool chk_filename(const char* Filename,CAbs_lr1_sym* Tok,CAbs_lr1_sym* Err);
+ bool chk_ofilename(const char* Filename,CAbs_lr1_sym* Tok);
+ yacco2::CAbs_lr1_sym* chk_for_overrun();
+ std::string t_alphabet_filename_;
+ std::string emitfile_filename_;
+ T_syntax_code* preamble_srce_;
+ std::vector<std::string> grammars_fsc_files_;
+ std::vector<std::string> directories_;
+
+ };
+struct Rlinker_pass3;
+struct RT_alphabet;
+struct RT_alphabet_filename;
+struct Remitfile;
+struct Remitfile_filename;
+struct Rpreamble;
+struct Rpreamble_code;
+struct R_fsc_files;
+struct R_fsc_file;
+struct Rlint;
+struct Rlinker_pass3:public yacco2::CAbs_lr1_sym {
+ Rlinker_pass3(yacco2::Parser* P);
+ void op();
+ public:
+};
+
+struct RT_alphabet:public yacco2::CAbs_lr1_sym {
+ RT_alphabet(yacco2::Parser* P);
+ public:
+ void sr2();
+ void sr3();
+};
+
+struct RT_alphabet_filename:public yacco2::CAbs_lr1_sym {
+ RT_alphabet_filename(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+ void sr5();
+ void sr6();
+};
+
+struct Remitfile:public yacco2::CAbs_lr1_sym {
+ Remitfile(yacco2::Parser* P);
+ public:
+ void sr2();
+ void sr3();
+};
+
+struct Remitfile_filename:public yacco2::CAbs_lr1_sym {
+ Remitfile_filename(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+ void sr5();
+ void sr6();
+};
+
+struct Rpreamble:public yacco2::CAbs_lr1_sym {
+ Rpreamble(yacco2::Parser* P);
+ public:
+ void sr2();
+ void sr3();
+};
+
+struct Rpreamble_code:public yacco2::CAbs_lr1_sym {
+ Rpreamble_code(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct R_fsc_files:public yacco2::CAbs_lr1_sym {
+ R_fsc_files(yacco2::Parser* P);
+ public:
+ void sr3();
+};
+
+struct R_fsc_file:public yacco2::CAbs_lr1_sym {
+ R_fsc_file(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+ void sr5();
+};
+
+struct Rlint:public yacco2::CAbs_lr1_sym {
+ Rlint(yacco2::Parser* P);
+ public:
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/linker_pass3.lex b/web/yacco2/compiler/grammars/linker_pass3.lex
new file mode 100644
index 0000000000..6615f8068d
--- /dev/null
+++ b/web/yacco2/compiler/grammars/linker_pass3.lex
@@ -0,0 +1,357 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: linker_pass3.lex
+dates: 10 feb. 2005
+Purpose: Lexical Phase for Yacco2's first set linker
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |linker_pass3| grammar.\fbreak
+Quasi lexical / syntatic Phase for Yacco2's first set linker.\fbreak
+Sample of a grammar's First set control file:\fbreak
+\listing{"/usr/local/yacco2/diagrams+etc/intro3.txt"}
+
+@/
+
+fsm
+(fsm-id "linker_pass3.lex",fsm-filename linker_pass3,fsm-namespace NS_linker_pass3
+,fsm-class Clinker_pass3{
+ user-prefix-declaration
+#include "linker_id.h"
+#include "linker_preamble_code.h"
+#include "lint_balls.h"
+#include "c_string.h"
+#include "angled_string.h"
+#include "c_literal.h"
+#include "bad_char_set.h"
+using namespace NS_yacco2_terminals;
+ ***
+ user-declaration
+ public:
+ bool chk_filename(const char* Filename,CAbs_lr1_sym* Tok,CAbs_lr1_sym* Err);
+ bool chk_ofilename(const char* Filename,CAbs_lr1_sym* Tok);
+ yacco2::CAbs_lr1_sym* chk_for_overrun();
+ std::string t_alphabet_filename_;
+ std::string emitfile_filename_;
+ T_syntax_code* preamble_srce_;
+ std::vector<std::string> grammars_fsc_files_;
+ std::vector<std::string> directories_;
+ ***
+ user-implementation
+ bool Clinker_pass3::chk_ofilename(const char* Filename,CAbs_lr1_sym* Tok){
+ std::ofstream fle_chk;
+ fle_chk.open(Filename,ios::out);
+ if(!fle_chk.good()){
+ CAbs_lr1_sym* sym = new Err_bad_filename(Filename);
+ sym->set_rc(*Tok,__FILE__,__LINE__);
+ parser__->add_token_to_error_queue(*sym);
+ parser__->set_stop_parse(true);
+ return false;
+ }else{
+ fle_chk.close();
+ }
+ return true;
+ }
+ bool Clinker_pass3::chk_filename(const char* Filename
+ ,CAbs_lr1_sym* Tok,CAbs_lr1_sym* Err){
+ std::ifstream fle_chk;
+ fle_chk.open(Filename);
+ if(!fle_chk.good()){
+ Err->set_rc(*Tok,__FILE__,__LINE__);
+ parser__->add_token_to_error_queue(*Err);
+ parser__->set_stop_parse(true);
+ return false;
+ }else{
+ delete Err;
+ fle_chk.close();
+ }
+ return true;
+ }
+ yacco2::CAbs_lr1_sym* Clinker_pass3::chk_for_overrun(){
+ switch (parser__->current_token()->enumerated_id__){
+ case T_Enum::T_LR1_eog_: break;
+ default: return 0;
+ }
+ yacco2::CAbs_lr1_sym* sym = new Err_end_preamble_kw_not_present;
+ sym->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ parser__->set_use_all_shift_off();
+ return sym;
+ }
+ ***
+}
+,fsm-version "1.0",fsm-date "9 Feb. 2005",fsm-debug "false"
+,fsm-comments "Lexer: constructing tokens for \\olinker parsing stage.")
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rlinker_pass3 (
+lhs{
+ op
+ using namespace NS_yacco2_k_symbols;
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*yacco2::PTR_LR1_eog__);
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*yacco2::PTR_LR1_eog__);
+ ***
+ }
+){
+ -> Rlint
+ RT_alphabet Rlint RT_alphabet_filename
+ Rlint
+ Remitfile Rlint Remitfile_filename
+ Rlint
+ Rpreamble Rpreamble_code
+ Rlint
+ R_fsc_files
+ Rlint
+ eog
+}
+
+RT_alphabet (){
+ -> ||| "file-of-T-alphabet" NS_linker_id::TH_linker_id
+ -> ||| |?| NULL {//catch errors
+ op
+ CAbs_lr1_sym* sym = new Err_file_of_T_alphabet_kw_not_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ sf->p2__->set_auto_delete(true);
+ ***
+ }
+ -> |?| { // error due to no first set to start thread {
+ op
+ CAbs_lr1_sym* sym = new Err_file_of_T_alphabet_kw_not_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+RT_alphabet_filename (){
+ -> ||| "c-string" NS_c_string::TH_c_string{
+ op
+ Clinker_pass3* fsm = (Clinker_pass3*) rule_info__.parser__->fsm_tbl__;
+ const char* fn = sf->p2__->c_string()->c_str();
+ if(fsm->chk_filename(fn,sf->p2__,
+ new Err_T_alphabet_file_does_not_exist) == false) return;
+ fsm->t_alphabet_filename_ += fn;
+ sf->p2__->set_auto_delete(true);
+ ***
+ }
+ -> ||| "bad eos" NULL{
+ op
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| "bad esc" NULL{
+ op
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| |?| NULL {//catch other yacco2_linker_keywords as errors
+ op
+ CAbs_lr1_sym* sym = new Err_no_filename_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ sf->p2__->set_auto_delete(true);
+ ***
+ }
+ -> ||| "angled-string" NS_angled_string::TH_angled_string{
+ op
+ Clinker_pass3* fsm = (Clinker_pass3*) rule_info__.parser__->fsm_tbl__;
+ const char* fn = sf->p2__->angled_string()->c_str();
+ if(fsm->chk_filename(fn,sf->p2__
+ ,new Err_T_alphabet_file_does_not_exist) == false) return;
+ fsm->t_alphabet_filename_ += fn;
+ sf->p2__->set_auto_delete(true);
+ ***
+ }
+ -> |?| { // error due to no first set to start thread {
+ op
+ CAbs_lr1_sym* sym = new Err_T_alphabet_file_not_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Remitfile (){
+ -> ||| "emitfile" NS_linker_id::TH_linker_id
+ -> ||| |?| NULL {//catch other yacco2_linker_keywords as errors
+ op
+ CAbs_lr1_sym* sym = new Err_emitfile_kw_not_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ sf->p2__->set_auto_delete(true);
+ ***
+ }
+ -> |?| { // error due to no first set to start thread {
+ op
+ CAbs_lr1_sym* sym = new Err_emitfile_kw_not_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Remitfile_filename (){
+ -> ||| "c-string" NS_c_string::TH_c_string{
+ op
+ Clinker_pass3* fsm = (Clinker_pass3*) rule_info__.parser__->fsm_tbl__;
+ const char* fn = sf->p2__->c_string()->c_str();
+ if(fsm->chk_ofilename(fn,sf->p2__) == false) return;
+ fsm->emitfile_filename_ += fn;
+ sf->p2__->set_auto_delete(true);
+ ***
+ }
+ -> ||| "bad eos" NULL{
+ op
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| "bad esc" NULL{
+ op
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| |?| NULL {//catch errors
+ op
+ CAbs_lr1_sym* sym = new Err_emitfile_file_not_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ sf->p2__->set_auto_delete(true);
+ ***
+ }
+ -> ||| "angled-string" NS_angled_string::TH_angled_string{
+ op
+ Clinker_pass3* fsm = (Clinker_pass3*) rule_info__.parser__->fsm_tbl__;
+ const char* fn = sf->p2__->angled_string()->c_str();
+ if(fsm->chk_ofilename(fn,sf->p2__) == false) return;
+ fsm->emitfile_filename_ += fn;
+ sf->p2__->set_auto_delete(true);
+ ***
+ }
+ -> |?| { // error due to no first set to start thread {
+ op
+ CAbs_lr1_sym* sym = new Err_emitfile_file_not_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rpreamble (){
+ -> ||| "preamble" NS_linker_id::TH_linker_id
+ -> ||| |?| NULL {//catch other yacco2_linker_keywords as errors
+ op
+ CAbs_lr1_sym* sym = new Err_preamble_kw_not_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ sf->p2__->set_auto_delete(true);
+ ***
+ }
+ -> |?| { // error due to no first set to start thread {
+ op
+ CAbs_lr1_sym* sym = new Err_preamble_kw_not_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rpreamble_code (){
+ -> ||| "syntax-code" NS_linker_preamble_code::TH_linker_preamble_code{
+ op
+ Clinker_pass3* fsm = (Clinker_pass3*) rule_info__.parser__->fsm_tbl__;
+ fsm->preamble_srce_ = sf->p2__;
+ ***
+ }
+ -> ||| |?| NULL {//catch returned errors
+ op
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| { // error due to no first set to start thread {
+ op
+ CAbs_lr1_sym* sym = new Err_preamble_srce_code_not_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+R_fsc_files (){
+ -> R_fsc_file Rlint
+ -> R_fsc_files R_fsc_file Rlint
+ -> |?| { // error due to no first set to start thread {
+ op
+ CAbs_lr1_sym* sym = new Err_fsc_cntl_file_not_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+R_fsc_file (){
+ -> ||| "c-string" NS_c_string::TH_c_string{
+ op
+ Clinker_pass3* fsm = (Clinker_pass3*) rule_info__.parser__->fsm_tbl__;
+ const char* fn = sf->p2__->c_string()->c_str();
+ if(fsm->chk_filename(fn,sf->p2__
+ ,new Err_fsc_file_does_not_exist) == false) return;
+ fsm->grammars_fsc_files_.push_back(string(fn));
+ sf->p2__->set_auto_delete(true);
+ ***
+ }
+ -> ||| "bad eos" NULL{
+ op
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| "bad esc" NULL{
+ op
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| "angled-string" NS_angled_string::TH_angled_string{
+ op
+ Clinker_pass3* fsm = (Clinker_pass3*) rule_info__.parser__->fsm_tbl__;
+ const char* fn = sf->p2__->angled_string()->c_str();
+ if(fsm->chk_filename(fn,sf->p2__
+ ,new Err_fsc_file_does_not_exist) == false) return;
+ fsm->grammars_fsc_files_.push_back(string(fn));
+ sf->p2__->set_auto_delete(true);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rlint (){
+ -> ||| lint NS_lint_balls::TH_lint_balls
+ ->
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/linker_pass3sym.cpp b/web/yacco2/compiler/grammars/linker_pass3sym.cpp
new file mode 100644
index 0000000000..ee9011c3ce
--- /dev/null
+++ b/web/yacco2/compiler/grammars/linker_pass3sym.cpp
@@ -0,0 +1,545 @@
+/*
+ File: linker_pass3sym.cpp
+ Date and Time: Fri Jan 30 18:55:14 2015
+*/
+#include "linker_pass3.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_linker_pass3;// grammar's ns
+// first set terminals
+// monolithic grammar --- no thread
+void
+Clinker_pass3::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rlinker_pass3_:{
+ Rlinker_pass3* sym;
+ if(re->rule_ == 0){
+ sym = new Rlinker_pass3(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlinker_pass3*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 15;
+
+
+ sym->op();
+ return;}
+ case rhs1_RT_alphabet_:{
+ RT_alphabet* sym;
+ if(re->rule_ == 0){
+ sym = new RT_alphabet(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RT_alphabet*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_RT_alphabet_:{
+ RT_alphabet* sym;
+ if(re->rule_ == 0){
+ sym = new RT_alphabet(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RT_alphabet*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_RT_alphabet_:{
+ RT_alphabet* sym;
+ if(re->rule_ == 0){
+ sym = new RT_alphabet(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RT_alphabet*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_RT_alphabet_filename_:{
+ RT_alphabet_filename* sym;
+ if(re->rule_ == 0){
+ sym = new RT_alphabet_filename(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RT_alphabet_filename*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_RT_alphabet_filename_:{
+ RT_alphabet_filename* sym;
+ if(re->rule_ == 0){
+ sym = new RT_alphabet_filename(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RT_alphabet_filename*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_RT_alphabet_filename_:{
+ RT_alphabet_filename* sym;
+ if(re->rule_ == 0){
+ sym = new RT_alphabet_filename(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RT_alphabet_filename*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_RT_alphabet_filename_:{
+ RT_alphabet_filename* sym;
+ if(re->rule_ == 0){
+ sym = new RT_alphabet_filename(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RT_alphabet_filename*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr4();
+ return;}
+ case rhs5_RT_alphabet_filename_:{
+ RT_alphabet_filename* sym;
+ if(re->rule_ == 0){
+ sym = new RT_alphabet_filename(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RT_alphabet_filename*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr5();
+ return;}
+ case rhs6_RT_alphabet_filename_:{
+ RT_alphabet_filename* sym;
+ if(re->rule_ == 0){
+ sym = new RT_alphabet_filename(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RT_alphabet_filename*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr6();
+ return;}
+ case rhs1_Remitfile_:{
+ Remitfile* sym;
+ if(re->rule_ == 0){
+ sym = new Remitfile(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Remitfile*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Remitfile_:{
+ Remitfile* sym;
+ if(re->rule_ == 0){
+ sym = new Remitfile(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Remitfile*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Remitfile_:{
+ Remitfile* sym;
+ if(re->rule_ == 0){
+ sym = new Remitfile(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Remitfile*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Remitfile_filename_:{
+ Remitfile_filename* sym;
+ if(re->rule_ == 0){
+ sym = new Remitfile_filename(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Remitfile_filename*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Remitfile_filename_:{
+ Remitfile_filename* sym;
+ if(re->rule_ == 0){
+ sym = new Remitfile_filename(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Remitfile_filename*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Remitfile_filename_:{
+ Remitfile_filename* sym;
+ if(re->rule_ == 0){
+ sym = new Remitfile_filename(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Remitfile_filename*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Remitfile_filename_:{
+ Remitfile_filename* sym;
+ if(re->rule_ == 0){
+ sym = new Remitfile_filename(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Remitfile_filename*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr4();
+ return;}
+ case rhs5_Remitfile_filename_:{
+ Remitfile_filename* sym;
+ if(re->rule_ == 0){
+ sym = new Remitfile_filename(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Remitfile_filename*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr5();
+ return;}
+ case rhs6_Remitfile_filename_:{
+ Remitfile_filename* sym;
+ if(re->rule_ == 0){
+ sym = new Remitfile_filename(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Remitfile_filename*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr6();
+ return;}
+ case rhs1_Rpreamble_:{
+ Rpreamble* sym;
+ if(re->rule_ == 0){
+ sym = new Rpreamble(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rpreamble*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rpreamble_:{
+ Rpreamble* sym;
+ if(re->rule_ == 0){
+ sym = new Rpreamble(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rpreamble*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rpreamble_:{
+ Rpreamble* sym;
+ if(re->rule_ == 0){
+ sym = new Rpreamble(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rpreamble*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rpreamble_code_:{
+ Rpreamble_code* sym;
+ if(re->rule_ == 0){
+ sym = new Rpreamble_code(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rpreamble_code*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rpreamble_code_:{
+ Rpreamble_code* sym;
+ if(re->rule_ == 0){
+ sym = new Rpreamble_code(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rpreamble_code*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rpreamble_code_:{
+ Rpreamble_code* sym;
+ if(re->rule_ == 0){
+ sym = new Rpreamble_code(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rpreamble_code*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_R_fsc_files_:{
+ R_fsc_files* sym;
+ if(re->rule_ == 0){
+ sym = new R_fsc_files(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (R_fsc_files*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_R_fsc_files_:{
+ R_fsc_files* sym;
+ if(re->rule_ == 0){
+ sym = new R_fsc_files(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (R_fsc_files*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ return;}
+ case rhs3_R_fsc_files_:{
+ R_fsc_files* sym;
+ if(re->rule_ == 0){
+ sym = new R_fsc_files(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (R_fsc_files*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_R_fsc_file_:{
+ R_fsc_file* sym;
+ if(re->rule_ == 0){
+ sym = new R_fsc_file(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (R_fsc_file*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_R_fsc_file_:{
+ R_fsc_file* sym;
+ if(re->rule_ == 0){
+ sym = new R_fsc_file(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (R_fsc_file*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_R_fsc_file_:{
+ R_fsc_file* sym;
+ if(re->rule_ == 0){
+ sym = new R_fsc_file(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (R_fsc_file*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_R_fsc_file_:{
+ R_fsc_file* sym;
+ if(re->rule_ == 0){
+ sym = new R_fsc_file(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (R_fsc_file*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr4();
+ return;}
+ case rhs5_R_fsc_file_:{
+ R_fsc_file* sym;
+ if(re->rule_ == 0){
+ sym = new R_fsc_file(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (R_fsc_file*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr5();
+ return;}
+ case rhs1_Rlint_:{
+ Rlint* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rlint_:{
+ Rlint* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/linker_pass3tbl.cpp b/web/yacco2/compiler/grammars/linker_pass3tbl.cpp
new file mode 100644
index 0000000000..7d34a3d8f6
--- /dev/null
+++ b/web/yacco2/compiler/grammars/linker_pass3tbl.cpp
@@ -0,0 +1,1247 @@
+/*
+ File: linker_pass3tbl.cpp
+ Date and Time: Fri Jan 30 18:55:14 2015
+*/
+#include "linker_pass3.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_linker_pass3;// grammar's ns
+// first set terminals
+// LR1_questionable_shift_operator
+// LR1_eog
+// LR1_reduce_operator
+yacco2::UCHAR LA1_Clinker_pass3[] ={
+1
+,0,19
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+yacco2::UCHAR LA2_Clinker_pass3[] ={
+1
+,0,17
+};
+// LR1_eog
+yacco2::UCHAR LA3_Clinker_pass3[] ={
+1
+,0,2
+};
+// LR1_eog
+// LR1_reduce_operator
+yacco2::UCHAR LA4_Clinker_pass3[] ={
+1
+,0,18
+};
+// LR1_eolr
+yacco2::UCHAR LA5_Clinker_pass3[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Clinker_pass3;
+extern yacco2::State S2_Clinker_pass3;
+struct S2ttd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S2ttd_Clinker_pass3 S2tt_Clinker_pass3 = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_lint_balls
+};
+extern yacco2::State S3_Clinker_pass3;
+extern yacco2::State S4_Clinker_pass3;
+extern yacco2::State S5_Clinker_pass3;
+extern yacco2::State S6_Clinker_pass3;
+extern yacco2::State S7_Clinker_pass3;
+extern yacco2::State S8_Clinker_pass3;
+extern yacco2::State S9_Clinker_pass3;
+extern yacco2::State S10_Clinker_pass3;
+extern yacco2::State S11_Clinker_pass3;
+extern yacco2::State S12_Clinker_pass3;
+extern yacco2::State S13_Clinker_pass3;
+extern yacco2::State S14_Clinker_pass3;
+extern yacco2::State S15_Clinker_pass3;
+extern yacco2::State S16_Clinker_pass3;
+extern yacco2::State S17_Clinker_pass3;
+struct S17ttd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[3];
+};
+S17ttd_Clinker_pass3 S17tt_Clinker_pass3 = {
+ 3 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_angled_string
+ ,(yacco2::Thread_entry*)&ITH_c_string
+ ,(yacco2::Thread_entry*)&ITH_lint_balls
+};
+extern yacco2::State S18_Clinker_pass3;
+extern yacco2::State S19_Clinker_pass3;
+extern yacco2::State S20_Clinker_pass3;
+extern yacco2::State S21_Clinker_pass3;
+extern yacco2::State S22_Clinker_pass3;
+extern yacco2::State S23_Clinker_pass3;
+extern yacco2::State S24_Clinker_pass3;
+extern yacco2::State S25_Clinker_pass3;
+extern yacco2::State S26_Clinker_pass3;
+struct S26ttd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S26ttd_Clinker_pass3 S26tt_Clinker_pass3 = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_linker_id
+};
+extern yacco2::State S27_Clinker_pass3;
+extern yacco2::State S28_Clinker_pass3;
+extern yacco2::State S29_Clinker_pass3;
+extern yacco2::State S30_Clinker_pass3;
+struct S30ttd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[2];
+};
+S30ttd_Clinker_pass3 S30tt_Clinker_pass3 = {
+ 2 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_angled_string
+ ,(yacco2::Thread_entry*)&ITH_c_string
+};
+extern yacco2::State S31_Clinker_pass3;
+extern yacco2::State S32_Clinker_pass3;
+extern yacco2::State S33_Clinker_pass3;
+extern yacco2::State S34_Clinker_pass3;
+extern yacco2::State S35_Clinker_pass3;
+extern yacco2::State S36_Clinker_pass3;
+extern yacco2::State S37_Clinker_pass3;
+struct S37ttd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S37ttd_Clinker_pass3 S37tt_Clinker_pass3 = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_linker_id
+};
+extern yacco2::State S38_Clinker_pass3;
+extern yacco2::State S39_Clinker_pass3;
+extern yacco2::State S40_Clinker_pass3;
+extern yacco2::State S41_Clinker_pass3;
+struct S41ttd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[2];
+};
+S41ttd_Clinker_pass3 S41tt_Clinker_pass3 = {
+ 2 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_angled_string
+ ,(yacco2::Thread_entry*)&ITH_c_string
+};
+extern yacco2::State S42_Clinker_pass3;
+extern yacco2::State S43_Clinker_pass3;
+extern yacco2::State S44_Clinker_pass3;
+extern yacco2::State S45_Clinker_pass3;
+extern yacco2::State S46_Clinker_pass3;
+extern yacco2::State S47_Clinker_pass3;
+extern yacco2::State S48_Clinker_pass3;
+struct S48ttd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S48ttd_Clinker_pass3 S48tt_Clinker_pass3 = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_linker_id
+};
+extern yacco2::State S49_Clinker_pass3;
+extern yacco2::State S50_Clinker_pass3;
+extern yacco2::State S51_Clinker_pass3;
+extern yacco2::State S52_Clinker_pass3;
+struct S52ttd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S52ttd_Clinker_pass3 S52tt_Clinker_pass3 = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_linker_preamble_code
+};
+extern yacco2::State S53_Clinker_pass3;
+extern yacco2::State S54_Clinker_pass3;
+extern yacco2::State S55_Clinker_pass3;
+extern yacco2::State S56_Clinker_pass3;
+struct S56ttd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[2];
+};
+S56ttd_Clinker_pass3 S56tt_Clinker_pass3 = {
+ 2 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_angled_string
+ ,(yacco2::Thread_entry*)&ITH_c_string
+};
+extern yacco2::State S57_Clinker_pass3;
+extern yacco2::State S58_Clinker_pass3;
+extern yacco2::State S59_Clinker_pass3;
+extern yacco2::State S60_Clinker_pass3;
+struct S1std_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S1std_Clinker_pass3 S1st_Clinker_pass3 = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S2_Clinker_pass3} // shift sym: LR1_parallel_operator
+ ,{569,(State*)&S1_Clinker_pass3} // accept sym: Rlinker_pass3
+ ,{578,(State*)&S4_Clinker_pass3} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S1pse_Clinker_pass3 = {3,(State*)&S2_Clinker_pass3};
+struct S1rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S1rtd_Clinker_pass3 S1rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_pass3,Clinker_pass3::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S1_Clinker_pass3 = //State's vectored into symbol: " No symbol"
+{1
+,(Shift_entry*)&S1pse_Clinker_pass3,0,0,0,(Shift_tbl*)&S1st_Clinker_pass3,(Reduce_tbl*)&S1rt_Clinker_pass3,(State_s_thread_tbl*)&S2tt_Clinker_pass3,0,0};
+struct S2std_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S2std_Clinker_pass3 S2st_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {375,(State*)&S3_Clinker_pass3} // shift sym: T_lint
+ }// end of shift table
+};
+yacco2::State S2_Clinker_pass3 = //State's vectored into symbol: "|||"
+{2
+,0,0,0,0,(Shift_tbl*)&S2st_Clinker_pass3,0,0,0,0};
+struct S3rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Clinker_pass3 S3rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_pass3,Clinker_pass3::rhs1_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S3_Clinker_pass3 = //State's vectored into symbol: "lint"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_Clinker_pass3,0,0,0};
+struct S4std_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S4std_Clinker_pass3 S4st_Clinker_pass3 = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S25_Clinker_pass3} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S26_Clinker_pass3} // shift sym: LR1_parallel_operator
+ ,{570,(State*)&S5_Clinker_pass3} // shift sym: RT_alphabet
+ }// end of shift table
+};
+yacco2::Shift_entry S4pse_Clinker_pass3 = {3,(State*)&S26_Clinker_pass3};
+yacco2::Shift_entry S4qse_Clinker_pass3 = {0,(State*)&S25_Clinker_pass3};
+yacco2::State S4_Clinker_pass3 = //State's vectored into symbol: "Rlint"
+{4
+,(Shift_entry*)&S4pse_Clinker_pass3,0,0,0,(Shift_tbl*)&S4st_Clinker_pass3,0,(State_s_thread_tbl*)&S26tt_Clinker_pass3,0,(Shift_entry*)&S4qse_Clinker_pass3
+};
+struct S5std_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S5std_Clinker_pass3 S5st_Clinker_pass3 = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Clinker_pass3} // shift sym: LR1_parallel_operator
+ ,{578,(State*)&S6_Clinker_pass3} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S5pse_Clinker_pass3 = {3,(State*)&S2_Clinker_pass3};
+struct S5rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Clinker_pass3 S5rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clinker_pass3,Clinker_pass3::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S5_Clinker_pass3 = //State's vectored into symbol: "RT_alphabet"
+{5
+,(Shift_entry*)&S5pse_Clinker_pass3,0,0,0,(Shift_tbl*)&S5st_Clinker_pass3,(Reduce_tbl*)&S5rt_Clinker_pass3,(State_s_thread_tbl*)&S2tt_Clinker_pass3,0,0};
+struct S6std_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S6std_Clinker_pass3 S6st_Clinker_pass3 = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S29_Clinker_pass3} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S30_Clinker_pass3} // shift sym: LR1_parallel_operator
+ ,{571,(State*)&S7_Clinker_pass3} // shift sym: RT_alphabet_filename
+ }// end of shift table
+};
+yacco2::Shift_entry S6pse_Clinker_pass3 = {3,(State*)&S30_Clinker_pass3};
+yacco2::Shift_entry S6qse_Clinker_pass3 = {0,(State*)&S29_Clinker_pass3};
+yacco2::State S6_Clinker_pass3 = //State's vectored into symbol: "Rlint"
+{6
+,(Shift_entry*)&S6pse_Clinker_pass3,0,0,0,(Shift_tbl*)&S6st_Clinker_pass3,0,(State_s_thread_tbl*)&S30tt_Clinker_pass3,0,(Shift_entry*)&S6qse_Clinker_pass3
+};
+struct S7std_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S7std_Clinker_pass3 S7st_Clinker_pass3 = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Clinker_pass3} // shift sym: LR1_parallel_operator
+ ,{578,(State*)&S8_Clinker_pass3} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S7pse_Clinker_pass3 = {3,(State*)&S2_Clinker_pass3};
+struct S7rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Clinker_pass3 S7rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clinker_pass3,Clinker_pass3::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S7_Clinker_pass3 = //State's vectored into symbol: "RT_alphabet_filename"
+{7
+,(Shift_entry*)&S7pse_Clinker_pass3,0,0,0,(Shift_tbl*)&S7st_Clinker_pass3,(Reduce_tbl*)&S7rt_Clinker_pass3,(State_s_thread_tbl*)&S2tt_Clinker_pass3,0,0};
+struct S8std_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S8std_Clinker_pass3 S8st_Clinker_pass3 = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S36_Clinker_pass3} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S37_Clinker_pass3} // shift sym: LR1_parallel_operator
+ ,{572,(State*)&S9_Clinker_pass3} // shift sym: Remitfile
+ }// end of shift table
+};
+yacco2::Shift_entry S8pse_Clinker_pass3 = {3,(State*)&S37_Clinker_pass3};
+yacco2::Shift_entry S8qse_Clinker_pass3 = {0,(State*)&S36_Clinker_pass3};
+yacco2::State S8_Clinker_pass3 = //State's vectored into symbol: "Rlint"
+{8
+,(Shift_entry*)&S8pse_Clinker_pass3,0,0,0,(Shift_tbl*)&S8st_Clinker_pass3,0,(State_s_thread_tbl*)&S37tt_Clinker_pass3,0,(Shift_entry*)&S8qse_Clinker_pass3
+};
+struct S9std_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S9std_Clinker_pass3 S9st_Clinker_pass3 = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Clinker_pass3} // shift sym: LR1_parallel_operator
+ ,{578,(State*)&S10_Clinker_pass3} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S9pse_Clinker_pass3 = {3,(State*)&S2_Clinker_pass3};
+struct S9rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Clinker_pass3 S9rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clinker_pass3,Clinker_pass3::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S9_Clinker_pass3 = //State's vectored into symbol: "Remitfile"
+{9
+,(Shift_entry*)&S9pse_Clinker_pass3,0,0,0,(Shift_tbl*)&S9st_Clinker_pass3,(Reduce_tbl*)&S9rt_Clinker_pass3,(State_s_thread_tbl*)&S2tt_Clinker_pass3,0,0};
+struct S10std_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S10std_Clinker_pass3 S10st_Clinker_pass3 = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S40_Clinker_pass3} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S41_Clinker_pass3} // shift sym: LR1_parallel_operator
+ ,{573,(State*)&S11_Clinker_pass3} // shift sym: Remitfile_filename
+ }// end of shift table
+};
+yacco2::Shift_entry S10pse_Clinker_pass3 = {3,(State*)&S41_Clinker_pass3};
+yacco2::Shift_entry S10qse_Clinker_pass3 = {0,(State*)&S40_Clinker_pass3};
+yacco2::State S10_Clinker_pass3 = //State's vectored into symbol: "Rlint"
+{10
+,(Shift_entry*)&S10pse_Clinker_pass3,0,0,0,(Shift_tbl*)&S10st_Clinker_pass3,0,(State_s_thread_tbl*)&S41tt_Clinker_pass3,0,(Shift_entry*)&S10qse_Clinker_pass3
+};
+struct S11std_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S11std_Clinker_pass3 S11st_Clinker_pass3 = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Clinker_pass3} // shift sym: LR1_parallel_operator
+ ,{578,(State*)&S12_Clinker_pass3} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S11pse_Clinker_pass3 = {3,(State*)&S2_Clinker_pass3};
+struct S11rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Clinker_pass3 S11rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clinker_pass3,Clinker_pass3::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S11_Clinker_pass3 = //State's vectored into symbol: "Remitfile_filename"
+{11
+,(Shift_entry*)&S11pse_Clinker_pass3,0,0,0,(Shift_tbl*)&S11st_Clinker_pass3,(Reduce_tbl*)&S11rt_Clinker_pass3,(State_s_thread_tbl*)&S2tt_Clinker_pass3,0,0};
+struct S12std_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S12std_Clinker_pass3 S12st_Clinker_pass3 = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S47_Clinker_pass3} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S48_Clinker_pass3} // shift sym: LR1_parallel_operator
+ ,{574,(State*)&S13_Clinker_pass3} // shift sym: Rpreamble
+ }// end of shift table
+};
+yacco2::Shift_entry S12pse_Clinker_pass3 = {3,(State*)&S48_Clinker_pass3};
+yacco2::Shift_entry S12qse_Clinker_pass3 = {0,(State*)&S47_Clinker_pass3};
+yacco2::State S12_Clinker_pass3 = //State's vectored into symbol: "Rlint"
+{12
+,(Shift_entry*)&S12pse_Clinker_pass3,0,0,0,(Shift_tbl*)&S12st_Clinker_pass3,0,(State_s_thread_tbl*)&S48tt_Clinker_pass3,0,(Shift_entry*)&S12qse_Clinker_pass3
+};
+struct S13std_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S13std_Clinker_pass3 S13st_Clinker_pass3 = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S51_Clinker_pass3} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S52_Clinker_pass3} // shift sym: LR1_parallel_operator
+ ,{575,(State*)&S14_Clinker_pass3} // shift sym: Rpreamble_code
+ }// end of shift table
+};
+yacco2::Shift_entry S13pse_Clinker_pass3 = {3,(State*)&S52_Clinker_pass3};
+yacco2::Shift_entry S13qse_Clinker_pass3 = {0,(State*)&S51_Clinker_pass3};
+yacco2::State S13_Clinker_pass3 = //State's vectored into symbol: "Rpreamble"
+{13
+,(Shift_entry*)&S13pse_Clinker_pass3,0,0,0,(Shift_tbl*)&S13st_Clinker_pass3,0,(State_s_thread_tbl*)&S52tt_Clinker_pass3,0,(Shift_entry*)&S13qse_Clinker_pass3
+};
+struct S14std_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S14std_Clinker_pass3 S14st_Clinker_pass3 = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Clinker_pass3} // shift sym: LR1_parallel_operator
+ ,{578,(State*)&S15_Clinker_pass3} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S14pse_Clinker_pass3 = {3,(State*)&S2_Clinker_pass3};
+struct S14rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S14rtd_Clinker_pass3 S14rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clinker_pass3,Clinker_pass3::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S14_Clinker_pass3 = //State's vectored into symbol: "Rpreamble_code"
+{14
+,(Shift_entry*)&S14pse_Clinker_pass3,0,0,0,(Shift_tbl*)&S14st_Clinker_pass3,(Reduce_tbl*)&S14rt_Clinker_pass3,(State_s_thread_tbl*)&S2tt_Clinker_pass3,0,0};
+struct S15std_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S15std_Clinker_pass3 S15st_Clinker_pass3 = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S55_Clinker_pass3} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S56_Clinker_pass3} // shift sym: LR1_parallel_operator
+ ,{576,(State*)&S16_Clinker_pass3} // shift sym: R_fsc_files
+ ,{577,(State*)&S59_Clinker_pass3} // shift sym: R_fsc_file
+ }// end of shift table
+};
+yacco2::Shift_entry S15pse_Clinker_pass3 = {3,(State*)&S56_Clinker_pass3};
+yacco2::Shift_entry S15qse_Clinker_pass3 = {0,(State*)&S55_Clinker_pass3};
+yacco2::State S15_Clinker_pass3 = //State's vectored into symbol: "Rlint"
+{15
+,(Shift_entry*)&S15pse_Clinker_pass3,0,0,0,(Shift_tbl*)&S15st_Clinker_pass3,0,(State_s_thread_tbl*)&S56tt_Clinker_pass3,0,(Shift_entry*)&S15qse_Clinker_pass3
+};
+struct S16std_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S16std_Clinker_pass3 S16st_Clinker_pass3 = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S17_Clinker_pass3} // shift sym: LR1_parallel_operator
+ ,{577,(State*)&S57_Clinker_pass3} // shift sym: R_fsc_file
+ ,{578,(State*)&S23_Clinker_pass3} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S16pse_Clinker_pass3 = {3,(State*)&S17_Clinker_pass3};
+struct S16rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S16rtd_Clinker_pass3 S16rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Clinker_pass3,Clinker_pass3::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S16_Clinker_pass3 = //State's vectored into symbol: "R_fsc_files"
+{16
+,(Shift_entry*)&S16pse_Clinker_pass3,0,0,0,(Shift_tbl*)&S16st_Clinker_pass3,(Reduce_tbl*)&S16rt_Clinker_pass3,(State_s_thread_tbl*)&S17tt_Clinker_pass3,0,0};
+struct S17std_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[6];
+};
+S17std_Clinker_pass3 S17st_Clinker_pass3 = {
+ 6
+ ,
+ {// start of table
+ {0,(State*)&S18_Clinker_pass3} // shift sym: LR1_questionable_shift_operator
+ ,{273,(State*)&S19_Clinker_pass3} // shift sym: T_angled_string
+ ,{275,(State*)&S20_Clinker_pass3} // shift sym: T_c_string
+ ,{375,(State*)&S3_Clinker_pass3} // shift sym: T_lint
+ ,{394,(State*)&S21_Clinker_pass3} // shift sym: Err_bad_eos
+ ,{395,(State*)&S22_Clinker_pass3} // shift sym: Err_bad_esc
+ }// end of shift table
+};
+yacco2::Shift_entry S17qse_Clinker_pass3 = {0,(State*)&S18_Clinker_pass3};
+yacco2::State S17_Clinker_pass3 = //State's vectored into symbol: "|||"
+{17
+,0,0,0,0,(Shift_tbl*)&S17st_Clinker_pass3,0,0,0,(Shift_entry*)&S17qse_Clinker_pass3
+};
+struct S18rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S18rtd_Clinker_pass3 S18rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Clinker_pass3,Clinker_pass3::rhs5_R_fsc_file_}
+ }// end of reduce table
+};
+yacco2::State S18_Clinker_pass3 = //State's vectored into symbol: "|?|"
+{18
+,0,0,0,0,0,(Reduce_tbl*)&S18rt_Clinker_pass3,0,0,0};
+struct S19rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S19rtd_Clinker_pass3 S19rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Clinker_pass3,Clinker_pass3::rhs4_R_fsc_file_}
+ }// end of reduce table
+};
+yacco2::State S19_Clinker_pass3 = //State's vectored into symbol: "angled-string"
+{19
+,0,0,0,0,0,(Reduce_tbl*)&S19rt_Clinker_pass3,0,0,0};
+struct S20rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S20rtd_Clinker_pass3 S20rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Clinker_pass3,Clinker_pass3::rhs1_R_fsc_file_}
+ }// end of reduce table
+};
+yacco2::State S20_Clinker_pass3 = //State's vectored into symbol: "c-string"
+{20
+,0,0,0,0,0,(Reduce_tbl*)&S20rt_Clinker_pass3,0,0,0};
+struct S21rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S21rtd_Clinker_pass3 S21rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Clinker_pass3,Clinker_pass3::rhs2_R_fsc_file_}
+ }// end of reduce table
+};
+yacco2::State S21_Clinker_pass3 = //State's vectored into symbol: "bad eos"
+{21
+,0,0,0,0,0,(Reduce_tbl*)&S21rt_Clinker_pass3,0,0,0};
+struct S22rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S22rtd_Clinker_pass3 S22rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Clinker_pass3,Clinker_pass3::rhs3_R_fsc_file_}
+ }// end of reduce table
+};
+yacco2::State S22_Clinker_pass3 = //State's vectored into symbol: "bad esc"
+{22
+,0,0,0,0,0,(Reduce_tbl*)&S22rt_Clinker_pass3,0,0,0};
+struct S23std_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S23std_Clinker_pass3 S23st_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {1,(State*)&S24_Clinker_pass3} // shift sym: LR1_eog
+ }// end of shift table
+};
+yacco2::State S23_Clinker_pass3 = //State's vectored into symbol: "Rlint"
+{23
+,0,0,0,0,(Shift_tbl*)&S23st_Clinker_pass3,0,0,0,0};
+struct S24rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S24rtd_Clinker_pass3 S24rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Clinker_pass3,Clinker_pass3::rhs1_Rlinker_pass3_}
+ }// end of reduce table
+};
+yacco2::State S24_Clinker_pass3 = //State's vectored into symbol: "eog"
+{24
+,0,0,0,0,0,(Reduce_tbl*)&S24rt_Clinker_pass3,0,0,0};
+struct S25rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S25rtd_Clinker_pass3 S25rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clinker_pass3,Clinker_pass3::rhs3_RT_alphabet_}
+ }// end of reduce table
+};
+yacco2::State S25_Clinker_pass3 = //State's vectored into symbol: "|?|"
+{25
+,0,0,0,0,0,(Reduce_tbl*)&S25rt_Clinker_pass3,0,0,0};
+struct S26std_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S26std_Clinker_pass3 S26st_Clinker_pass3 = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S27_Clinker_pass3} // shift sym: LR1_questionable_shift_operator
+ ,{362,(State*)&S28_Clinker_pass3} // shift sym: T_file_of_T_alphabet
+ }// end of shift table
+};
+yacco2::Shift_entry S26qse_Clinker_pass3 = {0,(State*)&S27_Clinker_pass3};
+yacco2::State S26_Clinker_pass3 = //State's vectored into symbol: "|||"
+{26
+,0,0,0,0,(Shift_tbl*)&S26st_Clinker_pass3,0,0,0,(Shift_entry*)&S26qse_Clinker_pass3
+};
+struct S27rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S27rtd_Clinker_pass3 S27rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clinker_pass3,Clinker_pass3::rhs2_RT_alphabet_}
+ }// end of reduce table
+};
+yacco2::State S27_Clinker_pass3 = //State's vectored into symbol: "|?|"
+{27
+,0,0,0,0,0,(Reduce_tbl*)&S27rt_Clinker_pass3,0,0,0};
+struct S28rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S28rtd_Clinker_pass3 S28rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clinker_pass3,Clinker_pass3::rhs1_RT_alphabet_}
+ }// end of reduce table
+};
+yacco2::State S28_Clinker_pass3 = //State's vectored into symbol: "file-of-T-alphabet"
+{28
+,0,0,0,0,0,(Reduce_tbl*)&S28rt_Clinker_pass3,0,0,0};
+struct S29rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S29rtd_Clinker_pass3 S29rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clinker_pass3,Clinker_pass3::rhs6_RT_alphabet_filename_}
+ }// end of reduce table
+};
+yacco2::State S29_Clinker_pass3 = //State's vectored into symbol: "|?|"
+{29
+,0,0,0,0,0,(Reduce_tbl*)&S29rt_Clinker_pass3,0,0,0};
+struct S30std_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S30std_Clinker_pass3 S30st_Clinker_pass3 = {
+ 5
+ ,
+ {// start of table
+ {0,(State*)&S31_Clinker_pass3} // shift sym: LR1_questionable_shift_operator
+ ,{273,(State*)&S32_Clinker_pass3} // shift sym: T_angled_string
+ ,{275,(State*)&S33_Clinker_pass3} // shift sym: T_c_string
+ ,{394,(State*)&S34_Clinker_pass3} // shift sym: Err_bad_eos
+ ,{395,(State*)&S35_Clinker_pass3} // shift sym: Err_bad_esc
+ }// end of shift table
+};
+yacco2::Shift_entry S30qse_Clinker_pass3 = {0,(State*)&S31_Clinker_pass3};
+yacco2::State S30_Clinker_pass3 = //State's vectored into symbol: "|||"
+{30
+,0,0,0,0,(Shift_tbl*)&S30st_Clinker_pass3,0,0,0,(Shift_entry*)&S30qse_Clinker_pass3
+};
+struct S31rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S31rtd_Clinker_pass3 S31rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clinker_pass3,Clinker_pass3::rhs4_RT_alphabet_filename_}
+ }// end of reduce table
+};
+yacco2::State S31_Clinker_pass3 = //State's vectored into symbol: "|?|"
+{31
+,0,0,0,0,0,(Reduce_tbl*)&S31rt_Clinker_pass3,0,0,0};
+struct S32rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S32rtd_Clinker_pass3 S32rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clinker_pass3,Clinker_pass3::rhs5_RT_alphabet_filename_}
+ }// end of reduce table
+};
+yacco2::State S32_Clinker_pass3 = //State's vectored into symbol: "angled-string"
+{32
+,0,0,0,0,0,(Reduce_tbl*)&S32rt_Clinker_pass3,0,0,0};
+struct S33rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S33rtd_Clinker_pass3 S33rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clinker_pass3,Clinker_pass3::rhs1_RT_alphabet_filename_}
+ }// end of reduce table
+};
+yacco2::State S33_Clinker_pass3 = //State's vectored into symbol: "c-string"
+{33
+,0,0,0,0,0,(Reduce_tbl*)&S33rt_Clinker_pass3,0,0,0};
+struct S34rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S34rtd_Clinker_pass3 S34rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clinker_pass3,Clinker_pass3::rhs2_RT_alphabet_filename_}
+ }// end of reduce table
+};
+yacco2::State S34_Clinker_pass3 = //State's vectored into symbol: "bad eos"
+{34
+,0,0,0,0,0,(Reduce_tbl*)&S34rt_Clinker_pass3,0,0,0};
+struct S35rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S35rtd_Clinker_pass3 S35rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clinker_pass3,Clinker_pass3::rhs3_RT_alphabet_filename_}
+ }// end of reduce table
+};
+yacco2::State S35_Clinker_pass3 = //State's vectored into symbol: "bad esc"
+{35
+,0,0,0,0,0,(Reduce_tbl*)&S35rt_Clinker_pass3,0,0,0};
+struct S36rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S36rtd_Clinker_pass3 S36rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clinker_pass3,Clinker_pass3::rhs3_Remitfile_}
+ }// end of reduce table
+};
+yacco2::State S36_Clinker_pass3 = //State's vectored into symbol: "|?|"
+{36
+,0,0,0,0,0,(Reduce_tbl*)&S36rt_Clinker_pass3,0,0,0};
+struct S37std_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S37std_Clinker_pass3 S37st_Clinker_pass3 = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S38_Clinker_pass3} // shift sym: LR1_questionable_shift_operator
+ ,{357,(State*)&S39_Clinker_pass3} // shift sym: T_emitfile
+ }// end of shift table
+};
+yacco2::Shift_entry S37qse_Clinker_pass3 = {0,(State*)&S38_Clinker_pass3};
+yacco2::State S37_Clinker_pass3 = //State's vectored into symbol: "|||"
+{37
+,0,0,0,0,(Shift_tbl*)&S37st_Clinker_pass3,0,0,0,(Shift_entry*)&S37qse_Clinker_pass3
+};
+struct S38rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S38rtd_Clinker_pass3 S38rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clinker_pass3,Clinker_pass3::rhs2_Remitfile_}
+ }// end of reduce table
+};
+yacco2::State S38_Clinker_pass3 = //State's vectored into symbol: "|?|"
+{38
+,0,0,0,0,0,(Reduce_tbl*)&S38rt_Clinker_pass3,0,0,0};
+struct S39rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S39rtd_Clinker_pass3 S39rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clinker_pass3,Clinker_pass3::rhs1_Remitfile_}
+ }// end of reduce table
+};
+yacco2::State S39_Clinker_pass3 = //State's vectored into symbol: "emitfile"
+{39
+,0,0,0,0,0,(Reduce_tbl*)&S39rt_Clinker_pass3,0,0,0};
+struct S40rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S40rtd_Clinker_pass3 S40rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clinker_pass3,Clinker_pass3::rhs6_Remitfile_filename_}
+ }// end of reduce table
+};
+yacco2::State S40_Clinker_pass3 = //State's vectored into symbol: "|?|"
+{40
+,0,0,0,0,0,(Reduce_tbl*)&S40rt_Clinker_pass3,0,0,0};
+struct S41std_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S41std_Clinker_pass3 S41st_Clinker_pass3 = {
+ 5
+ ,
+ {// start of table
+ {0,(State*)&S42_Clinker_pass3} // shift sym: LR1_questionable_shift_operator
+ ,{273,(State*)&S43_Clinker_pass3} // shift sym: T_angled_string
+ ,{275,(State*)&S44_Clinker_pass3} // shift sym: T_c_string
+ ,{394,(State*)&S45_Clinker_pass3} // shift sym: Err_bad_eos
+ ,{395,(State*)&S46_Clinker_pass3} // shift sym: Err_bad_esc
+ }// end of shift table
+};
+yacco2::Shift_entry S41qse_Clinker_pass3 = {0,(State*)&S42_Clinker_pass3};
+yacco2::State S41_Clinker_pass3 = //State's vectored into symbol: "|||"
+{41
+,0,0,0,0,(Shift_tbl*)&S41st_Clinker_pass3,0,0,0,(Shift_entry*)&S41qse_Clinker_pass3
+};
+struct S42rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S42rtd_Clinker_pass3 S42rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clinker_pass3,Clinker_pass3::rhs4_Remitfile_filename_}
+ }// end of reduce table
+};
+yacco2::State S42_Clinker_pass3 = //State's vectored into symbol: "|?|"
+{42
+,0,0,0,0,0,(Reduce_tbl*)&S42rt_Clinker_pass3,0,0,0};
+struct S43rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S43rtd_Clinker_pass3 S43rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clinker_pass3,Clinker_pass3::rhs5_Remitfile_filename_}
+ }// end of reduce table
+};
+yacco2::State S43_Clinker_pass3 = //State's vectored into symbol: "angled-string"
+{43
+,0,0,0,0,0,(Reduce_tbl*)&S43rt_Clinker_pass3,0,0,0};
+struct S44rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S44rtd_Clinker_pass3 S44rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clinker_pass3,Clinker_pass3::rhs1_Remitfile_filename_}
+ }// end of reduce table
+};
+yacco2::State S44_Clinker_pass3 = //State's vectored into symbol: "c-string"
+{44
+,0,0,0,0,0,(Reduce_tbl*)&S44rt_Clinker_pass3,0,0,0};
+struct S45rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S45rtd_Clinker_pass3 S45rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clinker_pass3,Clinker_pass3::rhs2_Remitfile_filename_}
+ }// end of reduce table
+};
+yacco2::State S45_Clinker_pass3 = //State's vectored into symbol: "bad eos"
+{45
+,0,0,0,0,0,(Reduce_tbl*)&S45rt_Clinker_pass3,0,0,0};
+struct S46rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S46rtd_Clinker_pass3 S46rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clinker_pass3,Clinker_pass3::rhs3_Remitfile_filename_}
+ }// end of reduce table
+};
+yacco2::State S46_Clinker_pass3 = //State's vectored into symbol: "bad esc"
+{46
+,0,0,0,0,0,(Reduce_tbl*)&S46rt_Clinker_pass3,0,0,0};
+struct S47rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S47rtd_Clinker_pass3 S47rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clinker_pass3,Clinker_pass3::rhs3_Rpreamble_}
+ }// end of reduce table
+};
+yacco2::State S47_Clinker_pass3 = //State's vectored into symbol: "|?|"
+{47
+,0,0,0,0,0,(Reduce_tbl*)&S47rt_Clinker_pass3,0,0,0};
+struct S48std_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S48std_Clinker_pass3 S48st_Clinker_pass3 = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S49_Clinker_pass3} // shift sym: LR1_questionable_shift_operator
+ ,{358,(State*)&S50_Clinker_pass3} // shift sym: T_preamble
+ }// end of shift table
+};
+yacco2::Shift_entry S48qse_Clinker_pass3 = {0,(State*)&S49_Clinker_pass3};
+yacco2::State S48_Clinker_pass3 = //State's vectored into symbol: "|||"
+{48
+,0,0,0,0,(Shift_tbl*)&S48st_Clinker_pass3,0,0,0,(Shift_entry*)&S48qse_Clinker_pass3
+};
+struct S49rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S49rtd_Clinker_pass3 S49rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clinker_pass3,Clinker_pass3::rhs2_Rpreamble_}
+ }// end of reduce table
+};
+yacco2::State S49_Clinker_pass3 = //State's vectored into symbol: "|?|"
+{49
+,0,0,0,0,0,(Reduce_tbl*)&S49rt_Clinker_pass3,0,0,0};
+struct S50rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S50rtd_Clinker_pass3 S50rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clinker_pass3,Clinker_pass3::rhs1_Rpreamble_}
+ }// end of reduce table
+};
+yacco2::State S50_Clinker_pass3 = //State's vectored into symbol: "preamble"
+{50
+,0,0,0,0,0,(Reduce_tbl*)&S50rt_Clinker_pass3,0,0,0};
+struct S51rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S51rtd_Clinker_pass3 S51rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clinker_pass3,Clinker_pass3::rhs3_Rpreamble_code_}
+ }// end of reduce table
+};
+yacco2::State S51_Clinker_pass3 = //State's vectored into symbol: "|?|"
+{51
+,0,0,0,0,0,(Reduce_tbl*)&S51rt_Clinker_pass3,0,0,0};
+struct S52std_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S52std_Clinker_pass3 S52st_Clinker_pass3 = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S53_Clinker_pass3} // shift sym: LR1_questionable_shift_operator
+ ,{326,(State*)&S54_Clinker_pass3} // shift sym: T_syntax_code
+ }// end of shift table
+};
+yacco2::Shift_entry S52qse_Clinker_pass3 = {0,(State*)&S53_Clinker_pass3};
+yacco2::State S52_Clinker_pass3 = //State's vectored into symbol: "|||"
+{52
+,0,0,0,0,(Shift_tbl*)&S52st_Clinker_pass3,0,0,0,(Shift_entry*)&S52qse_Clinker_pass3
+};
+struct S53rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S53rtd_Clinker_pass3 S53rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clinker_pass3,Clinker_pass3::rhs2_Rpreamble_code_}
+ }// end of reduce table
+};
+yacco2::State S53_Clinker_pass3 = //State's vectored into symbol: "|?|"
+{53
+,0,0,0,0,0,(Reduce_tbl*)&S53rt_Clinker_pass3,0,0,0};
+struct S54rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S54rtd_Clinker_pass3 S54rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clinker_pass3,Clinker_pass3::rhs1_Rpreamble_code_}
+ }// end of reduce table
+};
+yacco2::State S54_Clinker_pass3 = //State's vectored into symbol: "syntax-code"
+{54
+,0,0,0,0,0,(Reduce_tbl*)&S54rt_Clinker_pass3,0,0,0};
+struct S55rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S55rtd_Clinker_pass3 S55rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Clinker_pass3,Clinker_pass3::rhs3_R_fsc_files_}
+ }// end of reduce table
+};
+yacco2::State S55_Clinker_pass3 = //State's vectored into symbol: "|?|"
+{55
+,0,0,0,0,0,(Reduce_tbl*)&S55rt_Clinker_pass3,0,0,0};
+struct S56std_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S56std_Clinker_pass3 S56st_Clinker_pass3 = {
+ 5
+ ,
+ {// start of table
+ {0,(State*)&S18_Clinker_pass3} // shift sym: LR1_questionable_shift_operator
+ ,{273,(State*)&S19_Clinker_pass3} // shift sym: T_angled_string
+ ,{275,(State*)&S20_Clinker_pass3} // shift sym: T_c_string
+ ,{394,(State*)&S21_Clinker_pass3} // shift sym: Err_bad_eos
+ ,{395,(State*)&S22_Clinker_pass3} // shift sym: Err_bad_esc
+ }// end of shift table
+};
+yacco2::Shift_entry S56qse_Clinker_pass3 = {0,(State*)&S18_Clinker_pass3};
+yacco2::State S56_Clinker_pass3 = //State's vectored into symbol: "|||"
+{56
+,0,0,0,0,(Shift_tbl*)&S56st_Clinker_pass3,0,0,0,(Shift_entry*)&S56qse_Clinker_pass3
+};
+struct S57std_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S57std_Clinker_pass3 S57st_Clinker_pass3 = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Clinker_pass3} // shift sym: LR1_parallel_operator
+ ,{578,(State*)&S58_Clinker_pass3} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S57pse_Clinker_pass3 = {3,(State*)&S2_Clinker_pass3};
+struct S57rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S57rtd_Clinker_pass3 S57rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Clinker_pass3,Clinker_pass3::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S57_Clinker_pass3 = //State's vectored into symbol: "R_fsc_file"
+{57
+,(Shift_entry*)&S57pse_Clinker_pass3,0,0,0,(Shift_tbl*)&S57st_Clinker_pass3,(Reduce_tbl*)&S57rt_Clinker_pass3,(State_s_thread_tbl*)&S2tt_Clinker_pass3,0,0};
+struct S58rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S58rtd_Clinker_pass3 S58rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Clinker_pass3,Clinker_pass3::rhs2_R_fsc_files_}
+ }// end of reduce table
+};
+yacco2::State S58_Clinker_pass3 = //State's vectored into symbol: "Rlint"
+{58
+,0,0,0,0,0,(Reduce_tbl*)&S58rt_Clinker_pass3,0,0,0};
+struct S59std_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S59std_Clinker_pass3 S59st_Clinker_pass3 = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Clinker_pass3} // shift sym: LR1_parallel_operator
+ ,{578,(State*)&S60_Clinker_pass3} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S59pse_Clinker_pass3 = {3,(State*)&S2_Clinker_pass3};
+struct S59rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S59rtd_Clinker_pass3 S59rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Clinker_pass3,Clinker_pass3::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S59_Clinker_pass3 = //State's vectored into symbol: "R_fsc_file"
+{59
+,(Shift_entry*)&S59pse_Clinker_pass3,0,0,0,(Shift_tbl*)&S59st_Clinker_pass3,(Reduce_tbl*)&S59rt_Clinker_pass3,(State_s_thread_tbl*)&S2tt_Clinker_pass3,0,0};
+struct S60rtd_Clinker_pass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S60rtd_Clinker_pass3 S60rt_Clinker_pass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Clinker_pass3,Clinker_pass3::rhs1_R_fsc_files_}
+ }// end of reduce table
+};
+yacco2::State S60_Clinker_pass3 = //State's vectored into symbol: "Rlint"
+{60
+,0,0,0,0,0,(Reduce_tbl*)&S60rt_Clinker_pass3,0,0,0};
diff --git a/web/yacco2/compiler/grammars/linker_preamble_code.cpp b/web/yacco2/compiler/grammars/linker_preamble_code.cpp
new file mode 100644
index 0000000000..ff17ab0e14
--- /dev/null
+++ b/web/yacco2/compiler/grammars/linker_preamble_code.cpp
@@ -0,0 +1,293 @@
+/*
+ File: linker_preamble_code.cpp
+ Date and Time: Fri Jan 30 18:55:15 2015
+*/
+#include "linker_preamble_code.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_linker_preamble_code;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 3;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+}
+ Clinker_preamble_code::
+ Clinker_preamble_code()
+ :yacco2::CAbs_fsm
+ ("linker_preamble_code.lex"
+ ,"1.0"
+ ,"30 dec 2002"
+ ,false
+ ,"\\olinker's lexer of preamble code section:\n similar to Pass3 lexer."
+ ,"Fri Jan 30 18:55:15 2015 "
+ ,S1_Clinker_preamble_code){
+
+ empty_sdc_ = true;
+ chrs_.clear();
+
+ }
+
+Clinker_preamble_code::~Clinker_preamble_code(){
+
+ for(int x = 0;x < 3;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Clinker_preamble_code::failed(){
+ return false;
+ }
+ void Clinker_preamble_code::op(){
+ parser__->set_use_all_shift_on();
+ empty_sdc_ = true;
+ chrs_.clear();
+ CAbs_lr1_sym* sym = parser__->start_token__;
+ switch (sym->enumerated_id__){
+
+ case T_Enum::T_LR1_eog_: break;
+ default: return;
+ }
+ parser__->set_use_all_shift_off();
+
+}
+int Clinker_preamble_code::rhs_to_rules_mapping_[11] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,2 // subrule 4 for rule 3
+ ,2 // subrule 5 for rule 3
+ ,2 // subrule 6 for rule 3
+ ,2 // subrule 7 for rule 3
+ ,2 // subrule 8 for rule 3
+ ,2 // subrule 9 for rule 3
+ ,2 // subrule 10 for rule 3
+};
+Rlinker_preamble_code::Rlinker_preamble_code(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlinker_preamble_code",0,Clinker_preamble_code::R_Rlinker_preamble_code_,P,false,false){
+}
+
+void Rlinker_preamble_code::op(){
+ sstrace_rulesss
+
+ Clinker_preamble_code* fsm = (Clinker_preamble_code*)rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* sym(0);
+ if(fsm->empty_sdc_ == true){
+ sym = new Err_preamble_srce_code_not_present;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ sym = new T_syntax_code(fsm->chrs_.c_str());
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+
+}
+Rchrs::Rchrs(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rchrs",0,Clinker_preamble_code::R_Rchrs_,P,false,false){
+}
+
+Rchr::Rchr(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rchr",0,Clinker_preamble_code::R_Rchr_,P,false,false){
+}
+
+void Rchr::op(){
+ sstrace_rulesss
+
+ if(rule_info__.parser__->stop_parse__ == true) return;
+ if(rule_info__.parser__->use_all_shift__ == false) return;// end-preamble seen
+ CAbs_lr1_sym* la_sym = rule_info__.parser__->current_token();
+ using namespace NS_yacco2_T_enum;
+ using namespace NS_yacco2_terminals;
+ // watch for overrun
+ if(la_sym->enumerated_id__ == T_Enum::T_LR1_eog_){
+ CAbs_lr1_sym* sym = new Err_end_preamble_kw_not_present;
+ sym->set_rc(*la_sym,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ }
+
+}
+void Rchr::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_comment* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Clinker_preamble_code* fsm = (Clinker_preamble_code*) rule_info__.parser__->fsm_tbl__;
+ T_comment* k = sf->p2__;
+ k->set_auto_delete(true);// delete it when it pops from stack
+ fsm->chrs_ += k->comment_data()->c_str();
+
+}
+
+void Rchr::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_c_string* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Clinker_preamble_code* fsm =
+ (Clinker_preamble_code*) rule_info__.parser__->fsm_tbl__;
+ T_c_string* k = sf->p2__;
+ k->set_auto_delete(true);// delete it when it pops from stack
+ // add back the bounding double quotes
+ fsm->chrs_ += '"';
+ fsm->chrs_ += k->c_string()->c_str();
+ fsm->chrs_ += '"';
+ fsm->empty_sdc_ = false;
+
+}
+
+void Rchr::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_c_literal* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Clinker_preamble_code* fsm =
+ (Clinker_preamble_code*) rule_info__.parser__->fsm_tbl__;
+ T_c_literal* k = sf->p2__;
+ k->set_auto_delete(true);// delete it when it pops from stack
+ // add back the bounding single quotes
+ fsm->chrs_ += "'";
+ fsm->chrs_ += k->c_literal()->c_str();
+ fsm->chrs_ += "'";
+ fsm->empty_sdc_ = false;
+
+}
+
+void Rchr::sr4(){
+
+ Clinker_preamble_code* fsm = (Clinker_preamble_code*) rule_info__.parser__->fsm_tbl__;
+ rule_info__.parser__->set_use_all_shift_off();
+ if(fsm->empty_sdc_ == true){
+ CAbs_lr1_sym* sym = new Err_preamble_srce_code_not_present;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+
+}
+
+void Rchr::sr5(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Clinker_preamble_code* fsm =
+ (Clinker_preamble_code*) rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* k = sf->p1__;
+ switch (k->enumerated_id__){
+ case T_Enum::T_T_eol_:{
+ fsm->chrs_ += "\n";
+ break;
+ }
+ case T_Enum::T_raw_sp_:{
+ fsm->chrs_ += " ";
+ break;
+ }
+ case T_Enum::T_raw_ff_:{
+ fsm->chrs_ += "\f";
+ break;
+ }
+ case T_Enum::T_raw_vt_:{
+ fsm->chrs_ += "\v";
+ break;
+ }
+ case T_Enum::T_raw_ht_:{
+ fsm->chrs_ += "\t";
+ break;
+ }
+ case T_Enum::T_raw_cr_:{
+ fsm->chrs_ += "\n";
+ break;
+ }
+ case T_Enum::T_raw_lf_:{
+ fsm->chrs_ += "\n";
+ break;
+ }
+ default:{
+ fsm->chrs_ += *k->id__;
+ fsm->empty_sdc_ = false;
+ break;
+ }
+ }
+
+}
+
+void Rchr::sr6(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rchr::sr7(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_identifier* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Clinker_preamble_code* fsm =
+ (Clinker_preamble_code*)rule_info__.parser__->fsm_tbl__;
+ T_identifier* k = sf->p2__;
+ k->set_auto_delete(true);// delete it when it pops from stack
+ fsm->chrs_ += k->identifier()->c_str();
+
+}
+
diff --git a/web/yacco2/compiler/grammars/linker_preamble_code.fsc b/web/yacco2/compiler/grammars/linker_preamble_code.fsc
new file mode 100644
index 0000000000..bb9eecb2ab
--- /dev/null
+++ b/web/yacco2/compiler/grammars/linker_preamble_code.fsc
@@ -0,0 +1,28 @@
+/*
+ File: linker_preamble_code.fsc
+ Date and Time: Fri Jan 30 18:55:15 2015
+*/
+transitive y
+grammar-name "linker_preamble_code"
+name-space "NS_linker_preamble_code"
+thread-name "TH_linker_preamble_code"
+monolithic n
+file-name "linker_preamble_code.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ LR1_all_shift_operator
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 4
+ NS_c_comments::TH_c_comments
+ NS_c_string::TH_c_string
+ NS_c_literal::TH_c_literal
+ NS_linker_id::TH_linker_id
+end-list-of-transitive-threads
+list-of-used-threads 4
+ NS_c_comments::TH_c_comments
+ NS_c_literal::TH_c_literal
+ NS_c_string::TH_c_string
+ NS_linker_id::TH_linker_id
+end-list-of-used-threads
+fsm-comments
+"\\olinker's lexer of preamble code section:\n similar to Pass3 lexer."
diff --git a/web/yacco2/compiler/grammars/linker_preamble_code.h b/web/yacco2/compiler/grammars/linker_preamble_code.h
new file mode 100644
index 0000000000..c3f70443b9
--- /dev/null
+++ b/web/yacco2/compiler/grammars/linker_preamble_code.h
@@ -0,0 +1,98 @@
+/*
+ File: linker_preamble_code.h
+ Date and Time: Fri Jan 30 18:55:15 2015
+*/
+#ifndef __linker_preamble_code_h__
+#define __linker_preamble_code_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "string.h"
+#include "c_comments.h"
+#include "c_string.h"
+#include "c_literal.h"
+#include "linker_id.h"
+
+extern yacco2::Thread_entry ITH_linker_preamble_code;
+
+extern yacco2::State S1_Clinker_preamble_code;
+namespace NS_linker_preamble_code {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_linker_preamble_code(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_linker_preamble_code(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[3];
+};
+class Clinker_preamble_code: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rlinker_preamble_code_ = 569//start_of_rule_list + 0
+ ,rhs1_Rlinker_preamble_code_ = 1
+ ,R_Rchrs_ = 570//start_of_rule_list + 2
+ ,rhs1_Rchrs_ = 2
+ ,rhs2_Rchrs_ = 3
+ ,R_Rchr_ = 571//start_of_rule_list + 4
+ ,rhs1_Rchr_ = 4
+ ,rhs2_Rchr_ = 5
+ ,rhs3_Rchr_ = 6
+ ,rhs4_Rchr_ = 7
+ ,rhs5_Rchr_ = 8
+ ,rhs6_Rchr_ = 9
+ ,rhs7_Rchr_ = 10
+ };
+ //no of la sets = 1
+ //no of states = 12
+ Clinker_preamble_code();
+ ~Clinker_preamble_code();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[11];
+
+ public:
+ std::string chrs_;
+ bool empty_sdc_;
+
+ };
+struct Rlinker_preamble_code;
+struct Rchrs;
+struct Rchr;
+struct Rlinker_preamble_code:public yacco2::CAbs_lr1_sym {
+ Rlinker_preamble_code(yacco2::Parser* P);
+ void op();
+ public:
+};
+
+struct Rchrs:public yacco2::CAbs_lr1_sym {
+ Rchrs(yacco2::Parser* P);
+ public:
+};
+
+struct Rchr:public yacco2::CAbs_lr1_sym {
+ Rchr(yacco2::Parser* P);
+ void op();
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+ void sr5();
+ void sr6();
+ void sr7();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/linker_preamble_code.lex b/web/yacco2/compiler/grammars/linker_preamble_code.lex
new file mode 100644
index 0000000000..de8766717c
--- /dev/null
+++ b/web/yacco2/compiler/grammars/linker_preamble_code.lex
@@ -0,0 +1,222 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: linker_preamble_code.lex
+dates: 3 Jan.2003
+Purpose: Extract linker's preamble code
+conduit: syntax_code
+errors: Err_end_preamble_kw_not_present
+ Err_comment_overrun
+ Err_bad_eos
+ Err_bad_esc
+ Err_preamble_srce_code_not_present
+
+Correction: no preamble source code present and
+ end-preamble consumed with next token eog.
+ It should return "no preamble source code present" instead of
+ "no end of code" error. 25 Apr. 2005
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |linker_preamble_code| thread.\fbreak
+Extract linker's preamble code.
+@/
+
+fsm
+(fsm-id "linker_preamble_code.lex",fsm-filename linker_preamble_code,fsm-namespace NS_linker_preamble_code
+,fsm-class Clinker_preamble_code{
+ user-prefix-declaration
+#include "string.h"
+#include "c_comments.h"
+#include "c_string.h"
+#include "c_literal.h"
+#include "linker_id.h"
+ ***
+ user-declaration
+ public:
+ std::string chrs_;
+ bool empty_sdc_;
+ ***
+ op
+ parser__->set_use_all_shift_on();
+ empty_sdc_ = true;
+ chrs_.clear();
+ CAbs_lr1_sym* sym = parser__->start_token__;
+ switch (sym->enumerated_id__){
+
+ case T_Enum::T_LR1_eog_: break;
+ default: return;
+ }
+ parser__->set_use_all_shift_off();
+ ***
+ constructor
+ empty_sdc_ = true;
+ chrs_.clear();
+ ***
+ }
+,fsm-version "1.0",fsm-date "30 dec 2002",fsm-debug "false"
+,fsm-comments "\\olinker's lexer of preamble code section:\n similar to Pass3 lexer.")
+parallel-parser
+(
+ parallel-thread-function
+ TH_linker_preamble_code
+ ***
+ parallel-la-boundary
+eolr
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rlinker_preamble_code(
+lhs{
+ op
+ Clinker_preamble_code* fsm = (Clinker_preamble_code*)rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* sym(0);
+ if(fsm->empty_sdc_ == true){
+ sym = new Err_preamble_srce_code_not_present;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ sym = new T_syntax_code(fsm->chrs_.c_str());
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ ***
+ }
+){
+ -> Rchrs
+}
+
+Rchrs (){
+ -> Rchr
+ -> Rchrs Rchr
+}
+
+Rchr (
+lhs {
+ op
+ if(rule_info__.parser__->stop_parse__ == true) return;
+ if(rule_info__.parser__->use_all_shift__ == false) return;// end-preamble seen
+ CAbs_lr1_sym* la_sym = rule_info__.parser__->current_token();
+ using namespace NS_yacco2_T_enum;
+ using namespace NS_yacco2_terminals;
+ // watch for overrun
+ if(la_sym->enumerated_id__ == T_Enum::T_LR1_eog_){
+ CAbs_lr1_sym* sym = new Err_end_preamble_kw_not_present;
+ sym->set_rc(*la_sym,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ }
+ ***
+}
+){
+ -> ||| "comment" NS_c_comments::TH_c_comments {
+ op
+ Clinker_preamble_code* fsm = (Clinker_preamble_code*) rule_info__.parser__->fsm_tbl__;
+ T_comment* k = sf->p2__;
+ k->set_auto_delete(true);// delete it when it pops from stack
+ fsm->chrs_ += k->comment_data()->c_str();
+ ***
+ }
+ -> ||| "c-string" NS_c_string::TH_c_string{
+ op
+ Clinker_preamble_code* fsm =
+ (Clinker_preamble_code*) rule_info__.parser__->fsm_tbl__;
+ T_c_string* k = sf->p2__;
+ k->set_auto_delete(true);// delete it when it pops from stack
+ // add back the bounding double quotes
+ fsm->chrs_ += '"';
+ fsm->chrs_ += k->c_string()->c_str();
+ fsm->chrs_ += '"';
+ fsm->empty_sdc_ = false;
+ ***
+ }
+ -> ||| "c-literal" NS_c_literal::TH_c_literal{
+ op
+ Clinker_preamble_code* fsm =
+ (Clinker_preamble_code*) rule_info__.parser__->fsm_tbl__;
+ T_c_literal* k = sf->p2__;
+ k->set_auto_delete(true);// delete it when it pops from stack
+ // add back the bounding single quotes
+ fsm->chrs_ += "'";
+ fsm->chrs_ += k->c_literal()->c_str();
+ fsm->chrs_ += "'";
+ fsm->empty_sdc_ = false;
+ ***
+ }
+ -> ||| "end-preamble" NS_linker_id::TH_linker_id{
+ op
+ Clinker_preamble_code* fsm = (Clinker_preamble_code*) rule_info__.parser__->fsm_tbl__;
+ rule_info__.parser__->set_use_all_shift_off();
+ if(fsm->empty_sdc_ == true){
+ CAbs_lr1_sym* sym = new Err_preamble_srce_code_not_present;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ ***
+ }
+ -> |+| { // add balance of characters to queue Eg. comma
+ op
+ Clinker_preamble_code* fsm =
+ (Clinker_preamble_code*) rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* k = sf->p1__;
+ switch (k->enumerated_id__){
+ case T_Enum::T_T_eol_:{
+ fsm->chrs_ += "\n";
+ break;
+ }
+ case T_Enum::T_raw_sp_:{
+ fsm->chrs_ += " ";
+ break;
+ }
+ case T_Enum::T_raw_ff_:{
+ fsm->chrs_ += "\f";
+ break;
+ }
+ case T_Enum::T_raw_vt_:{
+ fsm->chrs_ += "\v";
+ break;
+ }
+ case T_Enum::T_raw_ht_:{
+ fsm->chrs_ += "\t";
+ break;
+ }
+ case T_Enum::T_raw_cr_:{
+ fsm->chrs_ += "\n";
+ break;
+ }
+ case T_Enum::T_raw_lf_:{
+ fsm->chrs_ += "\n";
+ break;
+ }
+ default:{
+ fsm->chrs_ += *k->id__;
+ fsm->empty_sdc_ = false;
+ break;
+ }
+ }
+ ***
+ }
+ -> ||| |?| NULL {// errors
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| "identifier" NULL {
+ op
+ Clinker_preamble_code* fsm =
+ (Clinker_preamble_code*)rule_info__.parser__->fsm_tbl__;
+ T_identifier* k = sf->p2__;
+ k->set_auto_delete(true);// delete it when it pops from stack
+ fsm->chrs_ += k->identifier()->c_str();
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/linker_preamble_codesym.cpp b/web/yacco2/compiler/grammars/linker_preamble_codesym.cpp
new file mode 100644
index 0000000000..9daa13a68b
--- /dev/null
+++ b/web/yacco2/compiler/grammars/linker_preamble_codesym.cpp
@@ -0,0 +1,203 @@
+/*
+ File: linker_preamble_codesym.cpp
+ Date and Time: Fri Jan 30 18:55:15 2015
+*/
+#include "linker_preamble_code.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_linker_preamble_code;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_linker_preamble_code::TH_linker_preamble_code(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_linker_preamble_code;
+ NS_linker_preamble_code::Clinker_preamble_code Clinker_preamble_code_;// parallel-parser's parse table
+#define ssPARSE_TABLE Clinker_preamble_code_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_linker_preamble_code::PROC_TH_linker_preamble_code(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_linker_preamble_code";
+ static bool one_time(false);
+ static NS_linker_preamble_code::Clinker_preamble_code* NS_linker_preamble_code_Clinker_preamble_code_(0);// parallel-parser's fsm table
+ static Parser* NS_linker_preamble_code_Clinker_preamble_code_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_linker_preamble_code_Clinker_preamble_code_ = new NS_linker_preamble_code::Clinker_preamble_code();// parallel-parser's fsm table
+ NS_linker_preamble_code_Clinker_preamble_code_parser = new Parser(*NS_linker_preamble_code_Clinker_preamble_code_,Caller_pp);
+ }
+ proc_parser = NS_linker_preamble_code_Clinker_preamble_code_parser;
+#include "wproc_pp_core.h"
+}
+void
+Clinker_preamble_code::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rlinker_preamble_code_:{
+ Rlinker_preamble_code* sym;
+ if(re->rule_ == 0){
+ sym = new Rlinker_preamble_code(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlinker_preamble_code*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs1_Rchrs_:{
+ Rchrs* sym;
+ if(re->rule_ == 0){
+ sym = new Rchrs(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rchrs*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rchrs_:{
+ Rchrs* sym;
+ if(re->rule_ == 0){
+ sym = new Rchrs(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rchrs*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rchr_:{
+ Rchr* sym;
+ if(re->rule_ == 0){
+ sym = new Rchr(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rchr*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ sym->op();
+ return;}
+ case rhs2_Rchr_:{
+ Rchr* sym;
+ if(re->rule_ == 0){
+ sym = new Rchr(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rchr*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ sym->op();
+ return;}
+ case rhs3_Rchr_:{
+ Rchr* sym;
+ if(re->rule_ == 0){
+ sym = new Rchr(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rchr*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ sym->op();
+ return;}
+ case rhs4_Rchr_:{
+ Rchr* sym;
+ if(re->rule_ == 0){
+ sym = new Rchr(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rchr*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr4();
+ sym->op();
+ return;}
+ case rhs5_Rchr_:{
+ Rchr* sym;
+ if(re->rule_ == 0){
+ sym = new Rchr(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rchr*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr5();
+ sym->op();
+ return;}
+ case rhs6_Rchr_:{
+ Rchr* sym;
+ if(re->rule_ == 0){
+ sym = new Rchr(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rchr*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr6();
+ sym->op();
+ return;}
+ case rhs7_Rchr_:{
+ Rchr* sym;
+ if(re->rule_ == 0){
+ sym = new Rchr(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rchr*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr7();
+ sym->op();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/linker_preamble_codetbl.cpp b/web/yacco2/compiler/grammars/linker_preamble_codetbl.cpp
new file mode 100644
index 0000000000..39c25ba69f
--- /dev/null
+++ b/web/yacco2/compiler/grammars/linker_preamble_codetbl.cpp
@@ -0,0 +1,243 @@
+/*
+ File: linker_preamble_codetbl.cpp
+ Date and Time: Fri Jan 30 18:55:15 2015
+*/
+#include "linker_preamble_code.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_linker_preamble_code;// grammar's ns
+// first set terminals
+// LR1_eolr
+yacco2::UCHAR LA1_Clinker_preamble_code[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Clinker_preamble_code;
+extern yacco2::State S2_Clinker_preamble_code;
+struct S2ttd_Clinker_preamble_code{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[4];
+};
+S2ttd_Clinker_preamble_code S2tt_Clinker_preamble_code = {
+ 4 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_c_comments
+ ,(yacco2::Thread_entry*)&ITH_c_literal
+ ,(yacco2::Thread_entry*)&ITH_c_string
+ ,(yacco2::Thread_entry*)&ITH_linker_id
+};
+extern yacco2::State S3_Clinker_preamble_code;
+extern yacco2::State S4_Clinker_preamble_code;
+extern yacco2::State S5_Clinker_preamble_code;
+extern yacco2::State S6_Clinker_preamble_code;
+extern yacco2::State S7_Clinker_preamble_code;
+extern yacco2::State S8_Clinker_preamble_code;
+extern yacco2::State S9_Clinker_preamble_code;
+extern yacco2::State S10_Clinker_preamble_code;
+extern yacco2::State S11_Clinker_preamble_code;
+extern yacco2::State S12_Clinker_preamble_code;
+struct S1std_Clinker_preamble_code{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S1std_Clinker_preamble_code S1st_Clinker_preamble_code = {
+ 5
+ ,
+ {// start of table
+ {3,(State*)&S2_Clinker_preamble_code} // shift sym: LR1_parallel_operator
+ ,{6,(State*)&S9_Clinker_preamble_code} // shift sym: LR1_all_shift_operator
+ ,{569,(State*)&S1_Clinker_preamble_code} // accept sym: Rlinker_preamble_code
+ ,{570,(State*)&S10_Clinker_preamble_code} // shift sym: Rchrs
+ ,{571,(State*)&S12_Clinker_preamble_code} // shift sym: Rchr
+ }// end of shift table
+};
+yacco2::Shift_entry S1pse_Clinker_preamble_code = {3,(State*)&S2_Clinker_preamble_code};
+yacco2::Shift_entry S1ase_Clinker_preamble_code = {6,(State*)&S9_Clinker_preamble_code};
+yacco2::State S1_Clinker_preamble_code = //State's vectored into symbol: " No symbol"
+{1
+,(Shift_entry*)&S1pse_Clinker_preamble_code,(Shift_entry*)&S1ase_Clinker_preamble_code
+,0,0,(Shift_tbl*)&S1st_Clinker_preamble_code,0,(State_s_thread_tbl*)&S2tt_Clinker_preamble_code,0,0};
+struct S2std_Clinker_preamble_code{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[6];
+};
+S2std_Clinker_preamble_code S2st_Clinker_preamble_code = {
+ 6
+ ,
+ {// start of table
+ {0,(State*)&S3_Clinker_preamble_code} // shift sym: LR1_questionable_shift_operator
+ ,{271,(State*)&S4_Clinker_preamble_code} // shift sym: T_comment
+ ,{274,(State*)&S5_Clinker_preamble_code} // shift sym: T_c_literal
+ ,{275,(State*)&S6_Clinker_preamble_code} // shift sym: T_c_string
+ ,{279,(State*)&S7_Clinker_preamble_code} // shift sym: T_identifier
+ ,{359,(State*)&S8_Clinker_preamble_code} // shift sym: T_end_preamble
+ }// end of shift table
+};
+yacco2::Shift_entry S2qse_Clinker_preamble_code = {0,(State*)&S3_Clinker_preamble_code};
+yacco2::State S2_Clinker_preamble_code = //State's vectored into symbol: "|||"
+{2
+,0,0,0,0,(Shift_tbl*)&S2st_Clinker_preamble_code,0,0,0,(Shift_entry*)&S2qse_Clinker_preamble_code
+};
+struct S3rtd_Clinker_preamble_code{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Clinker_preamble_code S3rt_Clinker_preamble_code = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_preamble_code,Clinker_preamble_code::rhs6_Rchr_}
+ }// end of reduce table
+};
+yacco2::State S3_Clinker_preamble_code = //State's vectored into symbol: "|?|"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_Clinker_preamble_code,0,0,0};
+struct S4rtd_Clinker_preamble_code{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Clinker_preamble_code S4rt_Clinker_preamble_code = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_preamble_code,Clinker_preamble_code::rhs1_Rchr_}
+ }// end of reduce table
+};
+yacco2::State S4_Clinker_preamble_code = //State's vectored into symbol: "comment"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Clinker_preamble_code,0,0,0};
+struct S5rtd_Clinker_preamble_code{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Clinker_preamble_code S5rt_Clinker_preamble_code = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_preamble_code,Clinker_preamble_code::rhs3_Rchr_}
+ }// end of reduce table
+};
+yacco2::State S5_Clinker_preamble_code = //State's vectored into symbol: "c-literal"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Clinker_preamble_code,0,0,0};
+struct S6rtd_Clinker_preamble_code{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Clinker_preamble_code S6rt_Clinker_preamble_code = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_preamble_code,Clinker_preamble_code::rhs2_Rchr_}
+ }// end of reduce table
+};
+yacco2::State S6_Clinker_preamble_code = //State's vectored into symbol: "c-string"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Clinker_preamble_code,0,0,0};
+struct S7rtd_Clinker_preamble_code{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Clinker_preamble_code S7rt_Clinker_preamble_code = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_preamble_code,Clinker_preamble_code::rhs7_Rchr_}
+ }// end of reduce table
+};
+yacco2::State S7_Clinker_preamble_code = //State's vectored into symbol: "identifier"
+{7
+,0,0,0,0,0,(Reduce_tbl*)&S7rt_Clinker_preamble_code,0,0,0};
+struct S8rtd_Clinker_preamble_code{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S8rtd_Clinker_preamble_code S8rt_Clinker_preamble_code = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_preamble_code,Clinker_preamble_code::rhs4_Rchr_}
+ }// end of reduce table
+};
+yacco2::State S8_Clinker_preamble_code = //State's vectored into symbol: "end-preamble"
+{8
+,0,0,0,0,0,(Reduce_tbl*)&S8rt_Clinker_preamble_code,0,0,0};
+struct S9rtd_Clinker_preamble_code{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Clinker_preamble_code S9rt_Clinker_preamble_code = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_preamble_code,Clinker_preamble_code::rhs5_Rchr_}
+ }// end of reduce table
+};
+yacco2::State S9_Clinker_preamble_code = //State's vectored into symbol: "|+|"
+{9
+,0,0,0,0,0,(Reduce_tbl*)&S9rt_Clinker_preamble_code,0,0,0};
+struct S10std_Clinker_preamble_code{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S10std_Clinker_preamble_code S10st_Clinker_preamble_code = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S2_Clinker_preamble_code} // shift sym: LR1_parallel_operator
+ ,{6,(State*)&S9_Clinker_preamble_code} // shift sym: LR1_all_shift_operator
+ ,{571,(State*)&S11_Clinker_preamble_code} // shift sym: Rchr
+ }// end of shift table
+};
+yacco2::Shift_entry S10pse_Clinker_preamble_code = {3,(State*)&S2_Clinker_preamble_code};
+yacco2::Shift_entry S10ase_Clinker_preamble_code = {6,(State*)&S9_Clinker_preamble_code};
+struct S10rtd_Clinker_preamble_code{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S10rtd_Clinker_preamble_code S10rt_Clinker_preamble_code = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_preamble_code,Clinker_preamble_code::rhs1_Rlinker_preamble_code_}
+ }// end of reduce table
+};
+yacco2::State S10_Clinker_preamble_code = //State's vectored into symbol: "Rchrs"
+{10
+,(Shift_entry*)&S10pse_Clinker_preamble_code,(Shift_entry*)&S10ase_Clinker_preamble_code
+,0,0,(Shift_tbl*)&S10st_Clinker_preamble_code,(Reduce_tbl*)&S10rt_Clinker_preamble_code,(State_s_thread_tbl*)&S2tt_Clinker_preamble_code,0,0};
+struct S11rtd_Clinker_preamble_code{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Clinker_preamble_code S11rt_Clinker_preamble_code = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_preamble_code,Clinker_preamble_code::rhs2_Rchrs_}
+ }// end of reduce table
+};
+yacco2::State S11_Clinker_preamble_code = //State's vectored into symbol: "Rchr"
+{11
+,0,0,0,0,0,(Reduce_tbl*)&S11rt_Clinker_preamble_code,0,0,0};
+struct S12rtd_Clinker_preamble_code{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S12rtd_Clinker_preamble_code S12rt_Clinker_preamble_code = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clinker_preamble_code,Clinker_preamble_code::rhs1_Rchrs_}
+ }// end of reduce table
+};
+yacco2::State S12_Clinker_preamble_code = //State's vectored into symbol: "Rchr"
+{12
+,0,0,0,0,0,(Reduce_tbl*)&S12rt_Clinker_preamble_code,0,0,0};
diff --git a/web/yacco2/compiler/grammars/lint_balls.cpp b/web/yacco2/compiler/grammars/lint_balls.cpp
new file mode 100644
index 0000000000..71ff9d2608
--- /dev/null
+++ b/web/yacco2/compiler/grammars/lint_balls.cpp
@@ -0,0 +1,119 @@
+/*
+ File: lint_balls.cpp
+ Date and Time: Fri Jan 30 18:55:15 2015
+*/
+#include "lint_balls.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_lint_balls;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 4;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+}
+ Clint_balls::
+ Clint_balls()
+ :yacco2::CAbs_fsm
+ ("lint_balls.lex"
+ ,"1.0"
+ ,"22 mar 2004"
+ ,false
+ ,"Is this spring cleaning?"
+ ,"Fri Jan 30 18:55:15 2015 "
+ ,S1_Clint_balls){
+
+ }
+
+Clint_balls::~Clint_balls(){
+
+ for(int x = 0;x < 4;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Clint_balls::failed(){
+ return false;
+ }
+ void Clint_balls::op(){
+}
+int Clint_balls::rhs_to_rules_mapping_[9] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,2 // subrule 3 for rule 3
+ ,2 // subrule 4 for rule 3
+ ,3 // subrule 5 for rule 4
+ ,3 // subrule 6 for rule 4
+ ,3 // subrule 7 for rule 4
+ ,3 // subrule 8 for rule 4
+};
+Rlint_balls::Rlint_balls(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlint_balls",0,Clint_balls::R_Rlint_balls_,P,false,false){
+}
+
+void Rlint_balls::sr1(){
+
+ CAbs_lr1_sym* sym = NS_yacco2_terminals::PTR_lint__;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+
+}
+
+Rlint::Rlint(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlint",0,Clint_balls::R_Rlint_,P,false,false){
+}
+
+Rfluffs::Rfluffs(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfluffs",0,Clint_balls::R_Rfluffs_,P,false,false){
+}
+
+Rfluff::Rfluff(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfluff",0,Clint_balls::R_Rfluff_,P,false,false){
+}
+
+void Rfluff::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_comment* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+
+}
+
+void Rfluff::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
diff --git a/web/yacco2/compiler/grammars/lint_balls.fsc b/web/yacco2/compiler/grammars/lint_balls.fsc
new file mode 100644
index 0000000000..4ddc0073a2
--- /dev/null
+++ b/web/yacco2/compiler/grammars/lint_balls.fsc
@@ -0,0 +1,25 @@
+/*
+ File: lint_balls.fsc
+ Date and Time: Fri Jan 30 18:55:15 2015
+*/
+transitive y
+grammar-name "lint_balls"
+name-space "NS_lint_balls"
+thread-name "TH_lint_balls"
+monolithic n
+file-name "lint_balls.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 0
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 3
+ NS_ws::TH_ws
+ NS_eol::TH_eol
+ NS_c_comments::TH_c_comments
+end-list-of-transitive-threads
+list-of-used-threads 3
+ NS_c_comments::TH_c_comments
+ NS_eol::TH_eol
+ NS_ws::TH_ws
+end-list-of-used-threads
+fsm-comments
+"Is this spring cleaning?"
diff --git a/web/yacco2/compiler/grammars/lint_balls.h b/web/yacco2/compiler/grammars/lint_balls.h
new file mode 100644
index 0000000000..02667a1c36
--- /dev/null
+++ b/web/yacco2/compiler/grammars/lint_balls.h
@@ -0,0 +1,90 @@
+/*
+ File: lint_balls.h
+ Date and Time: Fri Jan 30 18:55:15 2015
+*/
+#ifndef __lint_balls_h__
+#define __lint_balls_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "eol.h"
+#include "ws.h"
+#include "c_comments.h"
+
+extern yacco2::Thread_entry ITH_lint_balls;
+
+extern yacco2::State S1_Clint_balls;
+namespace NS_lint_balls {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_lint_balls(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_lint_balls(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[4];
+};
+class Clint_balls: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rlint_balls_ = 569//start_of_rule_list + 0
+ ,rhs1_Rlint_balls_ = 1
+ ,R_Rlint_ = 570//start_of_rule_list + 2
+ ,rhs1_Rlint_ = 2
+ ,R_Rfluffs_ = 571//start_of_rule_list + 4
+ ,rhs1_Rfluffs_ = 3
+ ,rhs2_Rfluffs_ = 4
+ ,R_Rfluff_ = 572//start_of_rule_list + 6
+ ,rhs1_Rfluff_ = 5
+ ,rhs2_Rfluff_ = 6
+ ,rhs3_Rfluff_ = 7
+ ,rhs4_Rfluff_ = 8
+ };
+ //no of la sets = 2
+ //no of states = 11
+ Clint_balls();
+ ~Clint_balls();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[9];
+ };
+struct Rlint_balls;
+struct Rlint;
+struct Rfluffs;
+struct Rfluff;
+struct Rlint_balls:public yacco2::CAbs_lr1_sym {
+ Rlint_balls(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rlint:public yacco2::CAbs_lr1_sym {
+ Rlint(yacco2::Parser* P);
+ public:
+};
+
+struct Rfluffs:public yacco2::CAbs_lr1_sym {
+ Rfluffs(yacco2::Parser* P);
+ public:
+};
+
+struct Rfluff:public yacco2::CAbs_lr1_sym {
+ Rfluff(yacco2::Parser* P);
+ public:
+ void sr2();
+ void sr3();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/lint_balls.lex b/web/yacco2/compiler/grammars/lint_balls.lex
new file mode 100644
index 0000000000..7fdc0f9122
--- /dev/null
+++ b/web/yacco2/compiler/grammars/lint_balls.lex
@@ -0,0 +1,94 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: lint_balls.lex
+Dates: 24 May 2004
+Purpose: vacuums the non essential stuff.
+parse terminals phrase
+Output: T_lint
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |lint_balls_th| thread.\fbreak
+Rip thru the white stuff and the comments.
+Why this thread anyway?
+I'd rather have 1 place to deal with a slight overhead of
+a thread calling a thread.
+Overall the code bloat will go down instead of
+having it programmed per
+grammar.
+The |T_lint| terminal is returned.
+Use a global pointer to it as it is just an indicator.
+The new / delete cycle is too expensive.
+
+@/
+fsm
+(fsm-id "lint_balls.lex"
+,fsm-filename lint_balls
+,fsm-namespace NS_lint_balls
+,fsm-class Clint_balls{
+ user-prefix-declaration
+#include "eol.h"
+#include "ws.h"
+#include "c_comments.h"
+ ***
+}
+,fsm-version "1.0",fsm-date "22 mar 2004",fsm-debug "false"
+,fsm-comments "Is this spring cleaning?")
+parallel-parser
+(
+ parallel-thread-function
+ TH_lint_balls
+ ***
+ parallel-la-boundary
+ eolr
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rlint_balls (){
+ -> Rlint {
+ op
+ CAbs_lr1_sym* sym = NS_yacco2_terminals::PTR_lint__;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ ***
+ }
+}
+
+Rlint
+/@
+Why the use of \invisibleshift?
+To reduce the lookahead set size.
+|eolr| is only one entry in the lookahead
+instead of expressing the specifics.
+@/
+
+(){
+ -> Rfluffs |.|
+}
+
+Rfluffs (){
+ -> Rfluff
+ -> Rfluffs Rfluff
+}
+
+Rfluff (){
+ -> ||| ws NS_ws::TH_ws
+ -> ||| comment NS_c_comments::TH_c_comments {
+ op
+ sf->p2__->set_auto_delete(true);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| eol NS_eol::TH_eol
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/lint_ballssym.cpp b/web/yacco2/compiler/grammars/lint_ballssym.cpp
new file mode 100644
index 0000000000..f6912c2233
--- /dev/null
+++ b/web/yacco2/compiler/grammars/lint_ballssym.cpp
@@ -0,0 +1,163 @@
+/*
+ File: lint_ballssym.cpp
+ Date and Time: Fri Jan 30 18:55:15 2015
+*/
+#include "lint_balls.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_lint_balls;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_lint_balls::TH_lint_balls(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_lint_balls;
+ NS_lint_balls::Clint_balls Clint_balls_;// parallel-parser's parse table
+#define ssPARSE_TABLE Clint_balls_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_lint_balls::PROC_TH_lint_balls(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_lint_balls";
+ static bool one_time(false);
+ static NS_lint_balls::Clint_balls* NS_lint_balls_Clint_balls_(0);// parallel-parser's fsm table
+ static Parser* NS_lint_balls_Clint_balls_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_lint_balls_Clint_balls_ = new NS_lint_balls::Clint_balls();// parallel-parser's fsm table
+ NS_lint_balls_Clint_balls_parser = new Parser(*NS_lint_balls_Clint_balls_,Caller_pp);
+ }
+ proc_parser = NS_lint_balls_Clint_balls_parser;
+#include "wproc_pp_core.h"
+}
+void
+Clint_balls::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rlint_balls_:{
+ Rlint_balls* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint_balls(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint_balls*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rlint_:{
+ Rlint* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rfluffs_:{
+ Rfluffs* sym;
+ if(re->rule_ == 0){
+ sym = new Rfluffs(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfluffs*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rfluffs_:{
+ Rfluffs* sym;
+ if(re->rule_ == 0){
+ sym = new Rfluffs(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfluffs*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rfluff_:{
+ Rfluff* sym;
+ if(re->rule_ == 0){
+ sym = new Rfluff(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfluff*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rfluff_:{
+ Rfluff* sym;
+ if(re->rule_ == 0){
+ sym = new Rfluff(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfluff*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rfluff_:{
+ Rfluff* sym;
+ if(re->rule_ == 0){
+ sym = new Rfluff(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfluff*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rfluff_:{
+ Rfluff* sym;
+ if(re->rule_ == 0){
+ sym = new Rfluff(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfluff*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/lint_ballstbl.cpp b/web/yacco2/compiler/grammars/lint_ballstbl.cpp
new file mode 100644
index 0000000000..c2b3fd59de
--- /dev/null
+++ b/web/yacco2/compiler/grammars/lint_ballstbl.cpp
@@ -0,0 +1,218 @@
+/*
+ File: lint_ballstbl.cpp
+ Date and Time: Fri Jan 30 18:55:15 2015
+*/
+#include "lint_balls.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_lint_balls;// grammar's ns
+// first set terminals
+// LR1_reduce_operator
+// LR1_invisible_shift_operator
+yacco2::UCHAR LA1_Clint_balls[] ={
+1
+,0,48
+};
+// LR1_eolr
+yacco2::UCHAR LA2_Clint_balls[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Clint_balls;
+extern yacco2::State S2_Clint_balls;
+struct S2ttd_Clint_balls{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[3];
+};
+S2ttd_Clint_balls S2tt_Clint_balls = {
+ 3 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_eol
+ ,(yacco2::Thread_entry*)&ITH_c_comments
+ ,(yacco2::Thread_entry*)&ITH_ws
+};
+extern yacco2::State S3_Clint_balls;
+extern yacco2::State S4_Clint_balls;
+extern yacco2::State S5_Clint_balls;
+extern yacco2::State S6_Clint_balls;
+extern yacco2::State S7_Clint_balls;
+extern yacco2::State S8_Clint_balls;
+extern yacco2::State S9_Clint_balls;
+extern yacco2::State S10_Clint_balls;
+extern yacco2::State S11_Clint_balls;
+struct S1std_Clint_balls{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S1std_Clint_balls S1st_Clint_balls = {
+ 5
+ ,
+ {// start of table
+ {3,(State*)&S2_Clint_balls} // shift sym: LR1_parallel_operator
+ ,{569,(State*)&S1_Clint_balls} // accept sym: Rlint_balls
+ ,{570,(State*)&S7_Clint_balls} // shift sym: Rlint
+ ,{571,(State*)&S8_Clint_balls} // shift sym: Rfluffs
+ ,{572,(State*)&S11_Clint_balls} // shift sym: Rfluff
+ }// end of shift table
+};
+yacco2::Shift_entry S1pse_Clint_balls = {3,(State*)&S2_Clint_balls};
+yacco2::State S1_Clint_balls = //State's vectored into symbol: " No symbol"
+{1
+,(Shift_entry*)&S1pse_Clint_balls,0,0,0,(Shift_tbl*)&S1st_Clint_balls,0,(State_s_thread_tbl*)&S2tt_Clint_balls,0,0};
+struct S2std_Clint_balls{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S2std_Clint_balls S2st_Clint_balls = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S3_Clint_balls} // shift sym: LR1_questionable_shift_operator
+ ,{268,(State*)&S4_Clint_balls} // shift sym: T_eol
+ ,{271,(State*)&S5_Clint_balls} // shift sym: T_comment
+ ,{272,(State*)&S6_Clint_balls} // shift sym: T_ws
+ }// end of shift table
+};
+yacco2::Shift_entry S2qse_Clint_balls = {0,(State*)&S3_Clint_balls};
+yacco2::State S2_Clint_balls = //State's vectored into symbol: "|||"
+{2
+,0,0,0,0,(Shift_tbl*)&S2st_Clint_balls,0,0,0,(Shift_entry*)&S2qse_Clint_balls
+};
+struct S3rtd_Clint_balls{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Clint_balls S3rt_Clint_balls = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clint_balls,Clint_balls::rhs3_Rfluff_}
+ }// end of reduce table
+};
+yacco2::State S3_Clint_balls = //State's vectored into symbol: "|?|"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_Clint_balls,0,0,0};
+struct S4rtd_Clint_balls{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Clint_balls S4rt_Clint_balls = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clint_balls,Clint_balls::rhs4_Rfluff_}
+ }// end of reduce table
+};
+yacco2::State S4_Clint_balls = //State's vectored into symbol: "eol"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Clint_balls,0,0,0};
+struct S5rtd_Clint_balls{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Clint_balls S5rt_Clint_balls = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clint_balls,Clint_balls::rhs2_Rfluff_}
+ }// end of reduce table
+};
+yacco2::State S5_Clint_balls = //State's vectored into symbol: "comment"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Clint_balls,0,0,0};
+struct S6rtd_Clint_balls{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Clint_balls S6rt_Clint_balls = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clint_balls,Clint_balls::rhs1_Rfluff_}
+ }// end of reduce table
+};
+yacco2::State S6_Clint_balls = //State's vectored into symbol: "ws"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Clint_balls,0,0,0};
+struct S7rtd_Clint_balls{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Clint_balls S7rt_Clint_balls = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clint_balls,Clint_balls::rhs1_Rlint_balls_}
+ }// end of reduce table
+};
+yacco2::State S7_Clint_balls = //State's vectored into symbol: "Rlint"
+{7
+,0,0,0,0,0,(Reduce_tbl*)&S7rt_Clint_balls,0,0,0};
+struct S8std_Clint_balls{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S8std_Clint_balls S8st_Clint_balls = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S2_Clint_balls} // shift sym: LR1_parallel_operator
+ ,{5,(State*)&S9_Clint_balls} // shift sym: LR1_invisible_shift_operator
+ ,{572,(State*)&S10_Clint_balls} // shift sym: Rfluff
+ }// end of shift table
+};
+yacco2::Shift_entry S8pse_Clint_balls = {3,(State*)&S2_Clint_balls};
+yacco2::Shift_entry S8ise_Clint_balls = {5,(State*)&S9_Clint_balls};
+yacco2::State S8_Clint_balls = //State's vectored into symbol: "Rfluffs"
+{8
+,(Shift_entry*)&S8pse_Clint_balls,0,(Shift_entry*)&S8ise_Clint_balls
+,0,(Shift_tbl*)&S8st_Clint_balls,0,(State_s_thread_tbl*)&S2tt_Clint_balls,0,0};
+struct S9rtd_Clint_balls{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Clint_balls S9rt_Clint_balls = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clint_balls,Clint_balls::rhs1_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S9_Clint_balls = //State's vectored into symbol: "|.|"
+{9
+,0,0,0,0,0,(Reduce_tbl*)&S9rt_Clint_balls,0,0,0};
+struct S10rtd_Clint_balls{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S10rtd_Clint_balls S10rt_Clint_balls = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clint_balls,Clint_balls::rhs2_Rfluffs_}
+ }// end of reduce table
+};
+yacco2::State S10_Clint_balls = //State's vectored into symbol: "Rfluff"
+{10
+,0,0,0,0,0,(Reduce_tbl*)&S10rt_Clint_balls,0,0,0};
+struct S11rtd_Clint_balls{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Clint_balls S11rt_Clint_balls = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clint_balls,Clint_balls::rhs1_Rfluffs_}
+ }// end of reduce table
+};
+yacco2::State S11_Clint_balls = //State's vectored into symbol: "Rfluff"
+{11
+,0,0,0,0,0,(Reduce_tbl*)&S11rt_Clint_balls,0,0,0};
diff --git a/web/yacco2/compiler/grammars/lr1_k_phrase.cpp b/web/yacco2/compiler/grammars/lr1_k_phrase.cpp
new file mode 100644
index 0000000000..64b48a7c87
--- /dev/null
+++ b/web/yacco2/compiler/grammars/lr1_k_phrase.cpp
@@ -0,0 +1,109 @@
+/*
+ File: lr1_k_phrase.cpp
+ Date and Time: Fri Jan 30 18:55:15 2015
+*/
+#include "lr1_k_phrase.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_lr1_k_phrase;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 2;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+}
+ Clr1_k_phrase::
+ Clr1_k_phrase()
+ :yacco2::CAbs_fsm
+ ("lr1_k_phrase.lex"
+ ,"1.0"
+ ,"24 May 2004"
+ ,false
+ ,"Dispatcher to parse ``lrk-symbols'' construct."
+ ,"Fri Jan 30 18:55:15 2015 "
+ ,S1_Clr1_k_phrase){
+
+ cweb_marker__ = 0;
+
+ }
+
+Clr1_k_phrase::~Clr1_k_phrase(){
+
+ for(int x = 0;x < 2;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Clr1_k_phrase::failed(){
+ return false;
+ }
+ void Clr1_k_phrase::op(){
+ if(CWEB_MARKER != 0){
+ cweb_marker__ = CWEB_MARKER;
+ CWEB_MARKER=0;
+ }
+
+}
+int Clr1_k_phrase::rhs_to_rules_mapping_[5] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,1 // subrule 4 for rule 2
+};
+Rlr1_k_phrase::Rlr1_k_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlr1_k_phrase",0,Clr1_k_phrase::R_Rlr1_k_phrase_,P,false,false){
+}
+
+Rphrase::Rphrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rphrase",0,Clr1_k_phrase::R_Rphrase_,P,false,false){
+}
+
+void Rphrase::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_lr1_k_phrase* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rphrase::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+
+}
+
+void Rphrase::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_open_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+
+}
+
diff --git a/web/yacco2/compiler/grammars/lr1_k_phrase.fsc b/web/yacco2/compiler/grammars/lr1_k_phrase.fsc
new file mode 100644
index 0000000000..26aa69ef5c
--- /dev/null
+++ b/web/yacco2/compiler/grammars/lr1_k_phrase.fsc
@@ -0,0 +1,22 @@
+/*
+ File: lr1_k_phrase.fsc
+ Date and Time: Fri Jan 30 18:55:15 2015
+*/
+transitive y
+grammar-name "lr1_k_phrase"
+name-space "NS_lr1_k_phrase"
+thread-name "Clr1_k_phrase"
+monolithic y
+file-name "lr1_k_phrase.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ LR1_questionable_shift_operator
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 1
+ NS_lr1_k_phrase_th::TH_lr1_k_phrase_th
+end-list-of-transitive-threads
+list-of-used-threads 1
+ NS_lr1_k_phrase_th::TH_lr1_k_phrase_th
+end-list-of-used-threads
+fsm-comments
+"Dispatcher to parse ``lrk-symbols'' construct."
diff --git a/web/yacco2/compiler/grammars/lr1_k_phrase.h b/web/yacco2/compiler/grammars/lr1_k_phrase.h
new file mode 100644
index 0000000000..3a18451717
--- /dev/null
+++ b/web/yacco2/compiler/grammars/lr1_k_phrase.h
@@ -0,0 +1,69 @@
+/*
+ File: lr1_k_phrase.h
+ Date and Time: Fri Jan 30 18:55:15 2015
+*/
+#ifndef __lr1_k_phrase_h__
+#define __lr1_k_phrase_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "lr1_k_phrase_th.h"
+#include "o2_externs.h"
+
+// monolithic grammar: no thread
+extern yacco2::State S1_Clr1_k_phrase;
+namespace NS_lr1_k_phrase {
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[2];
+};
+class Clr1_k_phrase: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rlr1_k_phrase_ = 569//start_of_rule_list + 0
+ ,rhs1_Rlr1_k_phrase_ = 1
+ ,R_Rphrase_ = 570//start_of_rule_list + 2
+ ,rhs1_Rphrase_ = 2
+ ,rhs2_Rphrase_ = 3
+ ,rhs3_Rphrase_ = 4
+ };
+ //no of la sets = 1
+ //no of states = 6
+ Clr1_k_phrase();
+ ~Clr1_k_phrase();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[5];
+
+ public: yacco2::AST* cweb_marker__;
+
+ };
+struct Rlr1_k_phrase;
+struct Rphrase;
+struct Rlr1_k_phrase:public yacco2::CAbs_lr1_sym {
+ Rlr1_k_phrase(yacco2::Parser* P);
+ public:
+};
+
+struct Rphrase:public yacco2::CAbs_lr1_sym {
+ Rphrase(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/lr1_k_phrase.lex b/web/yacco2/compiler/grammars/lr1_k_phrase.lex
new file mode 100644
index 0000000000..85f4e652aa
--- /dev/null
+++ b/web/yacco2/compiler/grammars/lr1_k_phrase.lex
@@ -0,0 +1,86 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: lr1_k_phrase.lex
+Dates: 24 May 2004
+Purpose: lr k constant alphabet
+Grammar being parsed:
+ lr1-constant-symbols
+ (file-name yacco2_lr1_k
+ ,name-space NS_yacco2_lr1_k)
+ {
+ 1+ terminal definitions where def is
+ terminal-key [AD AB attributes](sym-class C++ name)
+ or
+ terminal-key [AD AB attributes]
+ (sym-class C++ name {C++ directives block} )
+
+ [lrk-sufx code ***] optional
+ }
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |lr1_k_phrase| grammar.\fbreak
+Dispatcher to parse the lr1-constant-symbols.\fbreak
+\fbreak
+Note: lrk-sufx directive used to append specific grammar
+writer code
+to the outputted tables.
+In this case, it is external pointers
+to the lrk constant symbols to lower their manufacture.
+For example, "eog" is used thoughout all the grammars --- so
+make-once use-forever attitude.\fbreak
+@/
+fsm
+(fsm-id "lr1_k_phrase.lex"
+,fsm-filename lr1_k_phrase
+,fsm-namespace NS_lr1_k_phrase
+,fsm-class Clr1_k_phrase{
+ user-prefix-declaration
+#include "lr1_k_phrase_th.h"
+#include "o2_externs.h"
+ ***
+ user-declaration
+ public: yacco2::AST* cweb_marker__;
+ ***
+ op
+ if(CWEB_MARKER != 0){
+ cweb_marker__ = CWEB_MARKER;
+ CWEB_MARKER=0;
+ }
+ ***
+ constructor
+ cweb_marker__ = 0;
+ ***
+}
+,fsm-version "1.0",fsm-date "24 May 2004",fsm-debug "false"
+,fsm-comments "Dispatcher to parse ``lrk-symbols'' construct.")
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+rules{
+Rlr1_k_phrase (){
+ -> Rphrase
+}
+
+Rphrase (){
+ -> ||| "lr1-k-phrase"
+ NS_lr1_k_phrase_th::TH_lr1_k_phrase_th {
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| |?| NULL { // thread has stop parsing with RSVP error
+ op
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ ***
+ }
+ -> |?| { // error due to no first set to start thread {
+ op
+ CAbs_lr1_sym* sym = new Err_no_open_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/lr1_k_phrase_th.cpp b/web/yacco2/compiler/grammars/lr1_k_phrase_th.cpp
new file mode 100644
index 0000000000..93cb66acca
--- /dev/null
+++ b/web/yacco2/compiler/grammars/lr1_k_phrase_th.cpp
@@ -0,0 +1,775 @@
+/*
+ File: lr1_k_phrase_th.cpp
+ Date and Time: Fri Jan 30 18:55:15 2015
+*/
+#include "lr1_k_phrase_th.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_lr1_k_phrase_th;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 23;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[4] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[5] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[6] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[7] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[8] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[9] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[10] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[11] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[12] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[13] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[14] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[15] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[16] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[17] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[18] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[19] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[20] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[21] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[22] = new Per_rule_s_reuse_table();
+}
+ Clr1_k_phrase_th::
+ Clr1_k_phrase_th()
+ :yacco2::CAbs_fsm
+ ("lr1_k_phrase_th.lex"
+ ,"1.0"
+ ,"22 mar 2004"
+ ,false
+ ,"Parse lr1 k symbols phrase."
+ ,"Fri Jan 30 18:55:15 2015 "
+ ,S1_Clr1_k_phrase_th){
+
+ lr1_k_phrase_ = 0;
+
+ }
+
+Clr1_k_phrase_th::~Clr1_k_phrase_th(){
+
+ for(int x = 0;x < 23;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Clr1_k_phrase_th::failed(){
+ return false;
+ }
+ void Clr1_k_phrase_th::op(){
+ if(lr1_k_phrase_ != 0){
+ delete lr1_k_phrase_;
+ lr1_k_phrase_ = 0;
+ }
+ lr1_k_phrase_ = new T_lr1_k_phrase;
+ lr1_k_phrase_->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ AST* t = new AST(*lr1_k_phrase_);
+ lr1_k_phrase_->phrase_tree(t);
+
+}
+int Clr1_k_phrase_th::rhs_to_rules_mapping_[51] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,2 // subrule 4 for rule 3
+ ,2 // subrule 5 for rule 3
+ ,3 // subrule 6 for rule 4
+ ,4 // subrule 7 for rule 5
+ ,5 // subrule 8 for rule 6
+ ,5 // subrule 9 for rule 6
+ ,5 // subrule 10 for rule 6
+ ,6 // subrule 11 for rule 7
+ ,6 // subrule 12 for rule 7
+ ,6 // subrule 13 for rule 7
+ ,7 // subrule 14 for rule 8
+ ,7 // subrule 15 for rule 8
+ ,8 // subrule 16 for rule 9
+ ,8 // subrule 17 for rule 9
+ ,8 // subrule 18 for rule 9
+ ,9 // subrule 19 for rule 10
+ ,9 // subrule 20 for rule 10
+ ,9 // subrule 21 for rule 10
+ ,10 // subrule 22 for rule 11
+ ,11 // subrule 23 for rule 12
+ ,11 // subrule 24 for rule 12
+ ,11 // subrule 25 for rule 12
+ ,12 // subrule 26 for rule 13
+ ,12 // subrule 27 for rule 13
+ ,12 // subrule 28 for rule 13
+ ,13 // subrule 29 for rule 14
+ ,13 // subrule 30 for rule 14
+ ,13 // subrule 31 for rule 14
+ ,14 // subrule 32 for rule 15
+ ,14 // subrule 33 for rule 15
+ ,15 // subrule 34 for rule 16
+ ,15 // subrule 35 for rule 16
+ ,16 // subrule 36 for rule 17
+ ,17 // subrule 37 for rule 18
+ ,17 // subrule 38 for rule 18
+ ,17 // subrule 39 for rule 18
+ ,18 // subrule 40 for rule 19
+ ,18 // subrule 41 for rule 19
+ ,18 // subrule 42 for rule 19
+ ,19 // subrule 43 for rule 20
+ ,19 // subrule 44 for rule 20
+ ,20 // subrule 45 for rule 21
+ ,20 // subrule 46 for rule 21
+ ,21 // subrule 47 for rule 22
+ ,21 // subrule 48 for rule 22
+ ,22 // subrule 49 for rule 23
+ ,22 // subrule 50 for rule 23
+};
+Rlr1_k_phrase::Rlr1_k_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlr1_k_phrase",0,Clr1_k_phrase_th::R_Rlr1_k_phrase_,P,false,false){
+}
+
+void Rlr1_k_phrase::sr1(){
+
+ Clr1_k_phrase_th* fsm = (Clr1_k_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ RSVP(fsm->lr1_k_phrase_);
+ fsm->lr1_k_phrase_ = 0;
+
+}
+
+Ropen_par::Ropen_par(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Ropen_par",0,Clr1_k_phrase_th::R_Ropen_par_,P,false,false){
+}
+
+void Ropen_par::sr1(){
+
+ CAbs_lr1_sym* sym = new Err_no_open_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rclose_par::Rclose_par(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rclose_par",0,Clr1_k_phrase_th::R_Rclose_par_,P,false,false){
+}
+
+void Rclose_par::sr1(){
+
+ CAbs_lr1_sym* sym = new Err_no_close_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rparameters::Rparameters(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rparameters",0,Clr1_k_phrase_th::R_Rparameters_,P,false,false){
+}
+
+Rfilename_phrase::Rfilename_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfilename_phrase",0,Clr1_k_phrase_th::R_Rfilename_phrase_,P,false,false){
+}
+
+Rfilename::Rfilename(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfilename",0,Clr1_k_phrase_th::R_Rfilename_,P,false,false){
+}
+
+void Rfilename::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_filename_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rfilename::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_filename_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rfilename_id::Rfilename_id(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfilename_id",0,Clr1_k_phrase_th::R_Rfilename_id_,P,false,false){
+}
+
+void Rfilename_id::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_identifier* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Clr1_k_phrase_th* fsm = (Clr1_k_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->lr1_k_phrase_->filename_id(sf->p2__);
+
+}
+
+void Rfilename_id::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_filename_id_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rfilename_id::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_filename_id_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rnamespace_phrase::Rnamespace_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rnamespace_phrase",0,Clr1_k_phrase_th::R_Rnamespace_phrase_,P,false,false){
+}
+
+void Rnamespace_phrase::sr2(){
+
+ CAbs_lr1_sym* sym = new Err_no_comma_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rnamespace::Rnamespace(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rnamespace",0,Clr1_k_phrase_th::R_Rnamespace_,P,false,false){
+}
+
+void Rnamespace::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_namespace_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rnamespace::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_namespace_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rnamespace_id::Rnamespace_id(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rnamespace_id",0,Clr1_k_phrase_th::R_Rnamespace_id_,P,false,false){
+}
+
+void Rnamespace_id::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_identifier* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Clr1_k_phrase_th* fsm = (Clr1_k_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->lr1_k_phrase_->namespace_id(sf->p2__);
+
+}
+
+void Rnamespace_id::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_namespace_id_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rnamespace_id::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_namespace_id_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rsym_defs_phrase::Rsym_defs_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsym_defs_phrase",0,Clr1_k_phrase_th::R_Rsym_defs_phrase_,P,false,false){
+}
+
+Rsym_def::Rsym_def(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsym_def",0,Clr1_k_phrase_th::R_Rsym_def_,P,false,false){
+}
+
+void Rsym_def::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_terminal_def* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Clr1_k_phrase_th* fsm = (Clr1_k_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ sf->p2__->classification(T_terminal_def::lrk);
+ CAbs_lr1_sym* r = fsm->lr1_k_phrase_->add_t_to_alphabet(sf->p2__,rule_info__.parser__);
+ if(r == 0) return;
+ RSVP(r);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rsym_def::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_sym_defs_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rsym_def::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_sym_defs_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rsym_def1s::Rsym_def1s(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsym_def1s",0,Clr1_k_phrase_th::R_Rsym_def1s_,P,false,false){
+}
+
+Rsym_def1::Rsym_def1(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsym_def1",0,Clr1_k_phrase_th::R_Rsym_def1_,P,false,false){
+}
+
+void Rsym_def1::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_terminal_def* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Clr1_k_phrase_th* fsm = (Clr1_k_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ sf->p2__->classification(T_terminal_def::lrk);
+ CAbs_lr1_sym* r =
+ fsm->lr1_k_phrase_->add_t_to_alphabet(sf->p2__,rule_info__.parser__);
+ if(r != 0){
+ RSVP(r);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+
+}
+
+void Rsym_def1::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Err_no_terminal_key_present* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Clr1_k_phrase_th* fsm = (Clr1_k_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ RSVP(sf->p2__);
+ fsm->lr1_k_phrase_ = 0;
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rsym_def1::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ using namespace NS_yacco2_T_enum;
+ int id = sf->p2__->enumerated_id__;
+ if(id >= T_Enum::start_ERR && id <= T_Enum::end_ERR){
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ }else{
+ CAbs_lr1_sym* sym = new Err_not_a_terminal_definition;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ }
+
+}
+
+Rt_sufx_phrase::Rt_sufx_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rt_sufx_phrase",0,Clr1_k_phrase_th::R_Rt_sufx_phrase_,P,false,false){
+}
+
+void Rt_sufx_phrase::sr1(){
+ struct SF{
+ Rlint* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Rcweb_k* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ Rlint* p3__;
+ State* s3__;
+ bool abort3__;
+ Rule_s_reuse_entry* rule_s_reuse_entry3__;
+ Rt_sufx_kw_must* p4__;
+ State* s4__;
+ bool abort4__;
+ Rule_s_reuse_entry* rule_s_reuse_entry4__;
+ Rt_sufx_code* p5__;
+ State* s5__;
+ bool abort5__;
+ Rule_s_reuse_entry* rule_s_reuse_entry5__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(5);
+
+ Clr1_k_phrase_th* fsm = (Clr1_k_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->lr1_k_phrase_->lrk_sufx_code()
+ ->add_cweb_marker(sf->p2__->cweb_t_);
+
+}
+
+Rt_sufx_kw_code::Rt_sufx_kw_code(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rt_sufx_kw_code",0,Clr1_k_phrase_th::R_Rt_sufx_kw_code_,P,false,false){
+}
+
+Rt_sufx_kw::Rt_sufx_kw(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rt_sufx_kw",0,Clr1_k_phrase_th::R_Rt_sufx_kw_,P,false,false){
+}
+
+void Rt_sufx_kw::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_lrk_sufx* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+
+}
+
+Rt_sufx_kw_must::Rt_sufx_kw_must(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rt_sufx_kw_must",0,Clr1_k_phrase_th::R_Rt_sufx_kw_must_,P,false,false){
+}
+
+void Rt_sufx_kw_must::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_lrk_sufx* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+
+}
+
+void Rt_sufx_kw_must::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ CAbs_lr1_sym* sym = new Err_missing_lrk_sufx_kw;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ sf->p2__->set_auto_delete(true);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rt_sufx_kw_must::sr3(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_missing_lrk_sufx_kw;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+
+}
+
+Rt_sufx_code::Rt_sufx_code(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rt_sufx_code",0,Clr1_k_phrase_th::R_Rt_sufx_code_,P,false,false){
+}
+
+void Rt_sufx_code::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_syntax_code* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Clr1_k_phrase_th* fsm = (Clr1_k_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->lr1_k_phrase_->lrk_sufx_code(sf->p2__);
+
+}
+
+void Rt_sufx_code::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ CAbs_lr1_sym* sym = new Err_no_syntax_code_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ sf->p2__->set_auto_delete(true);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rt_sufx_code::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_syntax_code_present;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Ropen_brace::Ropen_brace(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Ropen_brace",0,Clr1_k_phrase_th::R_Ropen_brace_,P,false,false){
+}
+
+void Ropen_brace::sr1(){
+
+ CAbs_lr1_sym* sym = new Err_no_open_brace;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rclose_brace::Rclose_brace(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rclose_brace",0,Clr1_k_phrase_th::R_Rclose_brace_,P,false,false){
+}
+
+void Rclose_brace::sr1(){
+
+ CAbs_lr1_sym* sym = new Err_no_close_brace;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rlint::Rlint(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlint",0,Clr1_k_phrase_th::R_Rlint_,P,false,false){
+}
+
+Rcweb_k::Rcweb_k(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rcweb_k",0,Clr1_k_phrase_th::R_Rcweb_k_,P,false,false){
+}
+
+void Rcweb_k::ctor(){
+
+ cweb_t_ = 0;
+
+}
+void Rcweb_k::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_cweb_comment* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Clr1_k_phrase_th* fsm = (Clr1_k_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ T_cweb_comment* k = sf->p2__;
+ AST* cwebk_t_ = new AST(*k);
+ cweb_t_ = new AST();
+ T_cweb_marker* cw = new T_cweb_marker(cweb_t_);
+ cw->set_rc(*k,__FILE__,__LINE__);
+ cweb_t_ = cw->ast();
+ AST::set_content(*cweb_t_,*cw);
+ AST::join_pts(*cweb_t_,*cwebk_t_);
+
+}
+
+void Rcweb_k::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
diff --git a/web/yacco2/compiler/grammars/lr1_k_phrase_th.fsc b/web/yacco2/compiler/grammars/lr1_k_phrase_th.fsc
new file mode 100644
index 0000000000..8361120768
--- /dev/null
+++ b/web/yacco2/compiler/grammars/lr1_k_phrase_th.fsc
@@ -0,0 +1,27 @@
+/*
+ File: lr1_k_phrase_th.fsc
+ Date and Time: Fri Jan 30 18:55:15 2015
+*/
+transitive y
+grammar-name "lr1_k_phrase_th"
+name-space "NS_lr1_k_phrase_th"
+thread-name "TH_lr1_k_phrase_th"
+monolithic n
+file-name "lr1_k_phrase_th.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 2
+ LR1_questionable_shift_operator
+ raw_open_bracket
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 1
+ NS_lint_balls::TH_lint_balls
+end-list-of-transitive-threads
+list-of-used-threads 5
+ NS_cweb_or_c_k::TH_cweb_or_c_k
+ NS_identifier::TH_identifier
+ NS_lint_balls::TH_lint_balls
+ NS_o2_sdc::TH_o2_sdc
+ NS_term_def_ph::TH_term_def_ph
+end-list-of-used-threads
+fsm-comments
+"Parse lr1 k symbols phrase."
diff --git a/web/yacco2/compiler/grammars/lr1_k_phrase_th.h b/web/yacco2/compiler/grammars/lr1_k_phrase_th.h
new file mode 100644
index 0000000000..c93426228d
--- /dev/null
+++ b/web/yacco2/compiler/grammars/lr1_k_phrase_th.h
@@ -0,0 +1,305 @@
+/*
+ File: lr1_k_phrase_th.h
+ Date and Time: Fri Jan 30 18:55:15 2015
+*/
+#ifndef __lr1_k_phrase_th_h__
+#define __lr1_k_phrase_th_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "lint_balls.h"
+#include "identifier.h"
+#include "term_def_ph.h"
+#include "c_string.h"
+#include "o2_sdc.h"
+#include "cweb_or_c_k.h"
+
+extern yacco2::Thread_entry ITH_lr1_k_phrase_th;
+
+extern yacco2::State S1_Clr1_k_phrase_th;
+namespace NS_lr1_k_phrase_th {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_lr1_k_phrase_th(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_lr1_k_phrase_th(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[23];
+};
+class Clr1_k_phrase_th: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rlr1_k_phrase_ = 569//start_of_rule_list + 0
+ ,rhs1_Rlr1_k_phrase_ = 1
+ ,R_Ropen_par_ = 570//start_of_rule_list + 2
+ ,rhs1_Ropen_par_ = 2
+ ,rhs2_Ropen_par_ = 3
+ ,R_Rclose_par_ = 571//start_of_rule_list + 4
+ ,rhs1_Rclose_par_ = 4
+ ,rhs2_Rclose_par_ = 5
+ ,R_Rparameters_ = 572//start_of_rule_list + 6
+ ,rhs1_Rparameters_ = 6
+ ,R_Rfilename_phrase_ = 573//start_of_rule_list + 8
+ ,rhs1_Rfilename_phrase_ = 7
+ ,R_Rfilename_ = 574//start_of_rule_list + 10
+ ,rhs1_Rfilename_ = 8
+ ,rhs2_Rfilename_ = 9
+ ,rhs3_Rfilename_ = 10
+ ,R_Rfilename_id_ = 575//start_of_rule_list + 12
+ ,rhs1_Rfilename_id_ = 11
+ ,rhs2_Rfilename_id_ = 12
+ ,rhs3_Rfilename_id_ = 13
+ ,R_Rnamespace_phrase_ = 576//start_of_rule_list + 14
+ ,rhs1_Rnamespace_phrase_ = 14
+ ,rhs2_Rnamespace_phrase_ = 15
+ ,R_Rnamespace_ = 577//start_of_rule_list + 16
+ ,rhs1_Rnamespace_ = 16
+ ,rhs2_Rnamespace_ = 17
+ ,rhs3_Rnamespace_ = 18
+ ,R_Rnamespace_id_ = 578//start_of_rule_list + 18
+ ,rhs1_Rnamespace_id_ = 19
+ ,rhs2_Rnamespace_id_ = 20
+ ,rhs3_Rnamespace_id_ = 21
+ ,R_Rsym_defs_phrase_ = 579//start_of_rule_list + 20
+ ,rhs1_Rsym_defs_phrase_ = 22
+ ,R_Rsym_def_ = 580//start_of_rule_list + 22
+ ,rhs1_Rsym_def_ = 23
+ ,rhs2_Rsym_def_ = 24
+ ,rhs3_Rsym_def_ = 25
+ ,R_Rsym_def1s_ = 581//start_of_rule_list + 24
+ ,rhs1_Rsym_def1s_ = 26
+ ,rhs2_Rsym_def1s_ = 27
+ ,rhs3_Rsym_def1s_ = 28
+ ,R_Rsym_def1_ = 582//start_of_rule_list + 26
+ ,rhs1_Rsym_def1_ = 29
+ ,rhs2_Rsym_def1_ = 30
+ ,rhs3_Rsym_def1_ = 31
+ ,R_Rt_sufx_phrase_ = 583//start_of_rule_list + 28
+ ,rhs1_Rt_sufx_phrase_ = 32
+ ,rhs2_Rt_sufx_phrase_ = 33
+ ,R_Rt_sufx_kw_code_ = 584//start_of_rule_list + 30
+ ,rhs1_Rt_sufx_kw_code_ = 34
+ ,rhs2_Rt_sufx_kw_code_ = 35
+ ,R_Rt_sufx_kw_ = 585//start_of_rule_list + 32
+ ,rhs1_Rt_sufx_kw_ = 36
+ ,R_Rt_sufx_kw_must_ = 586//start_of_rule_list + 34
+ ,rhs1_Rt_sufx_kw_must_ = 37
+ ,rhs2_Rt_sufx_kw_must_ = 38
+ ,rhs3_Rt_sufx_kw_must_ = 39
+ ,R_Rt_sufx_code_ = 587//start_of_rule_list + 36
+ ,rhs1_Rt_sufx_code_ = 40
+ ,rhs2_Rt_sufx_code_ = 41
+ ,rhs3_Rt_sufx_code_ = 42
+ ,R_Ropen_brace_ = 588//start_of_rule_list + 38
+ ,rhs1_Ropen_brace_ = 43
+ ,rhs2_Ropen_brace_ = 44
+ ,R_Rclose_brace_ = 589//start_of_rule_list + 40
+ ,rhs1_Rclose_brace_ = 45
+ ,rhs2_Rclose_brace_ = 46
+ ,R_Rlint_ = 590//start_of_rule_list + 42
+ ,rhs1_Rlint_ = 47
+ ,rhs2_Rlint_ = 48
+ ,R_Rcweb_k_ = 591//start_of_rule_list + 44
+ ,rhs1_Rcweb_k_ = 49
+ ,rhs2_Rcweb_k_ = 50
+ };
+ //no of la sets = 12
+ //no of states = 88
+ Clr1_k_phrase_th();
+ ~Clr1_k_phrase_th();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[51];
+
+ public:
+ T_lr1_k_phrase* lr1_k_phrase_;
+
+ };
+struct Rlr1_k_phrase;
+struct Ropen_par;
+struct Rclose_par;
+struct Rparameters;
+struct Rfilename_phrase;
+struct Rfilename;
+struct Rfilename_id;
+struct Rnamespace_phrase;
+struct Rnamespace;
+struct Rnamespace_id;
+struct Rsym_defs_phrase;
+struct Rsym_def;
+struct Rsym_def1s;
+struct Rsym_def1;
+struct Rt_sufx_phrase;
+struct Rt_sufx_kw_code;
+struct Rt_sufx_kw;
+struct Rt_sufx_kw_must;
+struct Rt_sufx_code;
+struct Ropen_brace;
+struct Rclose_brace;
+struct Rlint;
+struct Rcweb_k;
+struct Rlr1_k_phrase:public yacco2::CAbs_lr1_sym {
+ Rlr1_k_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Ropen_par:public yacco2::CAbs_lr1_sym {
+ Ropen_par(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rclose_par:public yacco2::CAbs_lr1_sym {
+ Rclose_par(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rparameters:public yacco2::CAbs_lr1_sym {
+ Rparameters(yacco2::Parser* P);
+ public:
+};
+
+struct Rfilename_phrase:public yacco2::CAbs_lr1_sym {
+ Rfilename_phrase(yacco2::Parser* P);
+ public:
+};
+
+struct Rfilename:public yacco2::CAbs_lr1_sym {
+ Rfilename(yacco2::Parser* P);
+ public:
+ void sr2();
+ void sr3();
+};
+
+struct Rfilename_id:public yacco2::CAbs_lr1_sym {
+ Rfilename_id(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Rnamespace_phrase:public yacco2::CAbs_lr1_sym {
+ Rnamespace_phrase(yacco2::Parser* P);
+ public:
+ void sr2();
+};
+
+struct Rnamespace:public yacco2::CAbs_lr1_sym {
+ Rnamespace(yacco2::Parser* P);
+ public:
+ void sr2();
+ void sr3();
+};
+
+struct Rnamespace_id:public yacco2::CAbs_lr1_sym {
+ Rnamespace_id(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Rsym_defs_phrase:public yacco2::CAbs_lr1_sym {
+ Rsym_defs_phrase(yacco2::Parser* P);
+ public:
+};
+
+struct Rsym_def:public yacco2::CAbs_lr1_sym {
+ Rsym_def(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Rsym_def1s:public yacco2::CAbs_lr1_sym {
+ Rsym_def1s(yacco2::Parser* P);
+ public:
+};
+
+struct Rsym_def1:public yacco2::CAbs_lr1_sym {
+ Rsym_def1(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Rt_sufx_phrase:public yacco2::CAbs_lr1_sym {
+ Rt_sufx_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rt_sufx_kw_code:public yacco2::CAbs_lr1_sym {
+ Rt_sufx_kw_code(yacco2::Parser* P);
+ public:
+};
+
+struct Rt_sufx_kw:public yacco2::CAbs_lr1_sym {
+ Rt_sufx_kw(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rt_sufx_kw_must:public yacco2::CAbs_lr1_sym {
+ Rt_sufx_kw_must(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Rt_sufx_code:public yacco2::CAbs_lr1_sym {
+ Rt_sufx_code(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Ropen_brace:public yacco2::CAbs_lr1_sym {
+ Ropen_brace(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rclose_brace:public yacco2::CAbs_lr1_sym {
+ Rclose_brace(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rlint:public yacco2::CAbs_lr1_sym {
+ Rlint(yacco2::Parser* P);
+ public:
+};
+
+struct Rcweb_k:public yacco2::CAbs_lr1_sym {
+ Rcweb_k(yacco2::Parser* P);
+ void ctor();
+
+ AST* cweb_t_;
+
+ public:
+ void sr1();
+ void sr2();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/lr1_k_phrase_th.lex b/web/yacco2/compiler/grammars/lr1_k_phrase_th.lex
new file mode 100644
index 0000000000..6b7f429559
--- /dev/null
+++ b/web/yacco2/compiler/grammars/lr1_k_phrase_th.lex
@@ -0,0 +1,467 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: lr1_k_phrase_th.lex
+Dates: 23 Mar 2004
+Purpose: parse parse lr1 k phrase
+ The keeps its own local symbol table: map and list.
+ The terminal_def_phrase adds symbol to Yacco2's
+ global symbol table.
+Output: lr1_k_phrase
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |lr1_k_phrase_th| thread.\fbreak
+Parse lr1 k symbols phrase.
+The |lr1_k_phrase_th| terminal keeps its own local symbol table:
+map and list.
+It calls the common backend |term_def_ph| thread
+extractor of symbol definition.
+ \fbreak
+Example of a lr1 k symbols vocabulary to parse:\fbreak
+\listing{"/usr/local/yacco2/diagrams+etc/lrksym.txt"}
+@/
+fsm
+(fsm-id "lr1_k_phrase_th.lex"
+,fsm-filename lr1_k_phrase_th
+,fsm-namespace NS_lr1_k_phrase_th
+,fsm-class Clr1_k_phrase_th{
+ user-prefix-declaration
+#include "lint_balls.h"
+#include "identifier.h"
+#include "term_def_ph.h"
+#include "c_string.h"
+#include "o2_sdc.h"
+#include "cweb_or_c_k.h"
+ ***
+ user-declaration
+ public:
+ T_lr1_k_phrase* lr1_k_phrase_;
+ ***
+ constructor
+ lr1_k_phrase_ = 0;
+ ***
+ op
+ if(lr1_k_phrase_ != 0){
+ delete lr1_k_phrase_;
+ lr1_k_phrase_ = 0;
+ }
+ lr1_k_phrase_ = new T_lr1_k_phrase;
+ lr1_k_phrase_->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ AST* t = new AST(*lr1_k_phrase_);
+ lr1_k_phrase_->phrase_tree(t);
+ ***
+}
+,fsm-version "1.0",fsm-date "22 mar 2004",fsm-debug "false"
+,fsm-comments "Parse lr1 k symbols phrase.")
+parallel-parser
+(
+ parallel-thread-function
+ TH_lr1_k_phrase_th
+ ***
+ parallel-la-boundary
+ eolr
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+rules{
+Rlr1_k_phrase (){
+ -> Rlint
+ Ropen_par
+ Rparameters
+ Rclose_par
+ Rlint
+ Ropen_brace
+ Rsym_defs_phrase
+ Rt_sufx_phrase
+ Rlint
+ Rclose_brace
+ {
+ op
+ Clr1_k_phrase_th* fsm = (Clr1_k_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ RSVP(fsm->lr1_k_phrase_);
+ fsm->lr1_k_phrase_ = 0;
+ ***
+ }
+}
+
+Ropen_par (){
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_open_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> "("
+}
+
+Rclose_par (){
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_close_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ")"
+}
+
+Rparameters (){
+ -> Rlint
+ Rfilename_phrase Rlint
+ Rnamespace_phrase Rlint
+}
+
+Rfilename_phrase (){
+ -> Rfilename Rlint Rfilename_id
+}
+
+Rfilename (){
+ -> ||| "#file-name" NS_identifier::TH_identifier
+ -> ||| |?| NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_filename_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_filename_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rfilename_id (){
+ -> ||| identifier NS_identifier::TH_identifier {
+ op
+ Clr1_k_phrase_th* fsm = (Clr1_k_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->lr1_k_phrase_->filename_id(sf->p2__);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_filename_id_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_filename_id_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rnamespace_phrase (
+lhs
+){
+ -> "," Rlint Rnamespace Rlint Rnamespace_id
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_comma_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rnamespace (){
+ -> ||| "#name-space" NS_identifier::TH_identifier
+ -> ||| |?| NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_namespace_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_namespace_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rnamespace_id (){
+ -> ||| identifier NS_identifier::TH_identifier {
+ op
+ Clr1_k_phrase_th* fsm = (Clr1_k_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->lr1_k_phrase_->namespace_id(sf->p2__);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_namespace_id_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_namespace_id_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rsym_defs_phrase
+/@
+Use of \invisibleshift to make it lr(1).
+@/
+(){
+ -> Rlint Rsym_def Rlint Rsym_def1s |.|
+}
+
+Rsym_def (){
+ -> ||| "terminal-def" NS_term_def_ph::TH_term_def_ph {
+ op
+ Clr1_k_phrase_th* fsm = (Clr1_k_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ sf->p2__->classification(T_terminal_def::lrk);
+ CAbs_lr1_sym* r = fsm->lr1_k_phrase_->add_t_to_alphabet(sf->p2__,rule_info__.parser__);
+ if(r == 0) return;
+ RSVP(r);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_sym_defs_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_sym_defs_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rsym_def1s (){
+ -> Rsym_def1 Rlint
+ -> Rsym_def1s Rsym_def1 Rlint
+ ->
+}
+
+Rsym_def1 (){
+ -> ||| "terminal-def" NS_term_def_ph::TH_term_def_ph {
+ op
+ Clr1_k_phrase_th* fsm = (Clr1_k_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ sf->p2__->classification(T_terminal_def::lrk);
+ CAbs_lr1_sym* r =
+ fsm->lr1_k_phrase_->add_t_to_alphabet(sf->p2__,rule_info__.parser__);
+ if(r != 0){
+ RSVP(r);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ ***
+ }
+ -> ||| "no key-value present in definition" NULL {
+ op
+ Clr1_k_phrase_th* fsm = (Clr1_k_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ RSVP(sf->p2__);
+ fsm->lr1_k_phrase_ = 0;
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ using namespace NS_yacco2_T_enum;
+ int id = sf->p2__->enumerated_id__;
+ if(id >= T_Enum::start_ERR && id <= T_Enum::end_ERR){
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ }else{
+ CAbs_lr1_sym* sym = new Err_not_a_terminal_definition;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ }
+ ***
+ }
+}
+
+Rt_sufx_phrase (){
+ -> Rlint Rcweb_k Rlint Rt_sufx_kw_must Rt_sufx_code {
+ op
+ Clr1_k_phrase_th* fsm = (Clr1_k_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->lr1_k_phrase_->lrk_sufx_code()
+ ->add_cweb_marker(sf->p2__->cweb_t_);
+ ***
+ }
+ -> Rlint Rt_sufx_kw_code
+}
+
+Rt_sufx_kw_code
+/@
+If a |cweb| comment is seen, deposit it in the
+directive's syntax directed code.
+@/
+(){
+ -> Rt_sufx_kw Rt_sufx_code
+ ->
+}
+
+Rt_sufx_kw
+/@
+Drop keyword as it's presence is indicated elsewhere.
+So pop the cork and let the good times roll.
+@/
+
+(){
+ -> ||| "#lrk-sufx" NS_identifier::TH_identifier {
+ op
+ sf->p2__->set_auto_delete(true);
+ ***
+ }
+}
+
+Rt_sufx_kw_must
+/@
+Drop keyword as it's presence is indicated elsewhere.
+So pop the cork and let the good times roll.
+@/
+
+(){
+ -> ||| "#lrk-sufx" NS_identifier::TH_identifier {
+ op
+ sf->p2__->set_auto_delete(true);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ CAbs_lr1_sym* sym = new Err_missing_lrk_sufx_kw;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ sf->p2__->set_auto_delete(true);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_missing_lrk_sufx_kw;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ ***
+ }
+}
+
+Rt_sufx_code (){
+ -> ||| "syntax-code" NS_o2_sdc::TH_o2_sdc {
+ op
+ Clr1_k_phrase_th* fsm = (Clr1_k_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->lr1_k_phrase_->lrk_sufx_code(sf->p2__);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ CAbs_lr1_sym* sym = new Err_no_syntax_code_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ sf->p2__->set_auto_delete(true);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_syntax_code_present;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Ropen_brace (){
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_open_brace;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> "{"
+}
+
+Rclose_brace (){
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_close_brace;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> "}"
+}
+
+Rlint (){
+ -> ||| lint NS_lint_balls::TH_lint_balls
+ ->
+}
+
+Rcweb_k (
+lhs {
+ user-declaration
+ AST* cweb_t_;
+ ***
+ constructor
+ cweb_t_ = 0;
+ ***
+ }
+){
+ -> ||| "cweb-comment" NS_cweb_or_c_k::TH_cweb_or_c_k {
+ op
+ Clr1_k_phrase_th* fsm = (Clr1_k_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ T_cweb_comment* k = sf->p2__;
+ AST* cwebk_t_ = new AST(*k);
+ cweb_t_ = new AST();
+ T_cweb_marker* cw = new T_cweb_marker(cweb_t_);
+ cw->set_rc(*k,__FILE__,__LINE__);
+ cweb_t_ = cw->ast();
+ AST::set_content(*cweb_t_,*cw);
+ AST::join_pts(*cweb_t_,*cwebk_t_);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/lr1_k_phrase_thsym.cpp b/web/yacco2/compiler/grammars/lr1_k_phrase_thsym.cpp
new file mode 100644
index 0000000000..90de25f1df
--- /dev/null
+++ b/web/yacco2/compiler/grammars/lr1_k_phrase_thsym.cpp
@@ -0,0 +1,782 @@
+/*
+ File: lr1_k_phrase_thsym.cpp
+ Date and Time: Fri Jan 30 18:55:15 2015
+*/
+#include "lr1_k_phrase_th.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_lr1_k_phrase_th;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_lr1_k_phrase_th::TH_lr1_k_phrase_th(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_lr1_k_phrase_th;
+ NS_lr1_k_phrase_th::Clr1_k_phrase_th Clr1_k_phrase_th_;// parallel-parser's parse table
+#define ssPARSE_TABLE Clr1_k_phrase_th_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_lr1_k_phrase_th::PROC_TH_lr1_k_phrase_th(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_lr1_k_phrase_th";
+ static bool one_time(false);
+ static NS_lr1_k_phrase_th::Clr1_k_phrase_th* NS_lr1_k_phrase_th_Clr1_k_phrase_th_(0);// parallel-parser's fsm table
+ static Parser* NS_lr1_k_phrase_th_Clr1_k_phrase_th_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_lr1_k_phrase_th_Clr1_k_phrase_th_ = new NS_lr1_k_phrase_th::Clr1_k_phrase_th();// parallel-parser's fsm table
+ NS_lr1_k_phrase_th_Clr1_k_phrase_th_parser = new Parser(*NS_lr1_k_phrase_th_Clr1_k_phrase_th_,Caller_pp);
+ }
+ proc_parser = NS_lr1_k_phrase_th_Clr1_k_phrase_th_parser;
+#include "wproc_pp_core.h"
+}
+void
+Clr1_k_phrase_th::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rlr1_k_phrase_:{
+ Rlr1_k_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rlr1_k_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlr1_k_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 10;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Ropen_par_:{
+ Ropen_par* sym;
+ if(re->rule_ == 0){
+ sym = new Ropen_par(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ropen_par*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Ropen_par_:{
+ Ropen_par* sym;
+ if(re->rule_ == 0){
+ sym = new Ropen_par(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ropen_par*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rclose_par_:{
+ Rclose_par* sym;
+ if(re->rule_ == 0){
+ sym = new Rclose_par(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclose_par*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rclose_par_:{
+ Rclose_par* sym;
+ if(re->rule_ == 0){
+ sym = new Rclose_par(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclose_par*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rparameters_:{
+ Rparameters* sym;
+ if(re->rule_ == 0){
+ sym = new Rparameters(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rparameters*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ return;}
+ case rhs1_Rfilename_phrase_:{
+ Rfilename_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rfilename_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfilename_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ return;}
+ case rhs1_Rfilename_:{
+ Rfilename* sym;
+ if(re->rule_ == 0){
+ sym = new Rfilename(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfilename*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rfilename_:{
+ Rfilename* sym;
+ if(re->rule_ == 0){
+ sym = new Rfilename(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfilename*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rfilename_:{
+ Rfilename* sym;
+ if(re->rule_ == 0){
+ sym = new Rfilename(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfilename*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rfilename_id_:{
+ Rfilename_id* sym;
+ if(re->rule_ == 0){
+ sym = new Rfilename_id(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfilename_id*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rfilename_id_:{
+ Rfilename_id* sym;
+ if(re->rule_ == 0){
+ sym = new Rfilename_id(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfilename_id*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rfilename_id_:{
+ Rfilename_id* sym;
+ if(re->rule_ == 0){
+ sym = new Rfilename_id(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfilename_id*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rnamespace_phrase_:{
+ Rnamespace_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ return;}
+ case rhs2_Rnamespace_phrase_:{
+ Rnamespace_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rnamespace_:{
+ Rnamespace* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rnamespace_:{
+ Rnamespace* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rnamespace_:{
+ Rnamespace* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rnamespace_id_:{
+ Rnamespace_id* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace_id(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace_id*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rnamespace_id_:{
+ Rnamespace_id* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace_id(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace_id*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rnamespace_id_:{
+ Rnamespace_id* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace_id(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace_id*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rsym_defs_phrase_:{
+ Rsym_defs_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_defs_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_defs_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ return;}
+ case rhs1_Rsym_def_:{
+ Rsym_def* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_def(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_def*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rsym_def_:{
+ Rsym_def* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_def(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_def*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rsym_def_:{
+ Rsym_def* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_def(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_def*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rsym_def1s_:{
+ Rsym_def1s* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_def1s(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_def1s*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rsym_def1s_:{
+ Rsym_def1s* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_def1s(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_def1s*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ return;}
+ case rhs3_Rsym_def1s_:{
+ Rsym_def1s* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_def1s(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_def1s*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs1_Rsym_def1_:{
+ Rsym_def1* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_def1(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_def1*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rsym_def1_:{
+ Rsym_def1* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_def1(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_def1*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rsym_def1_:{
+ Rsym_def1* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_def1(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_def1*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rt_sufx_phrase_:{
+ Rt_sufx_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rt_sufx_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rt_sufx_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rt_sufx_phrase_:{
+ Rt_sufx_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rt_sufx_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rt_sufx_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rt_sufx_kw_code_:{
+ Rt_sufx_kw_code* sym;
+ if(re->rule_ == 0){
+ sym = new Rt_sufx_kw_code(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rt_sufx_kw_code*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rt_sufx_kw_code_:{
+ Rt_sufx_kw_code* sym;
+ if(re->rule_ == 0){
+ sym = new Rt_sufx_kw_code(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rt_sufx_kw_code*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs1_Rt_sufx_kw_:{
+ Rt_sufx_kw* sym;
+ if(re->rule_ == 0){
+ sym = new Rt_sufx_kw(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rt_sufx_kw*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rt_sufx_kw_must_:{
+ Rt_sufx_kw_must* sym;
+ if(re->rule_ == 0){
+ sym = new Rt_sufx_kw_must(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rt_sufx_kw_must*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rt_sufx_kw_must_:{
+ Rt_sufx_kw_must* sym;
+ if(re->rule_ == 0){
+ sym = new Rt_sufx_kw_must(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rt_sufx_kw_must*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rt_sufx_kw_must_:{
+ Rt_sufx_kw_must* sym;
+ if(re->rule_ == 0){
+ sym = new Rt_sufx_kw_must(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rt_sufx_kw_must*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rt_sufx_code_:{
+ Rt_sufx_code* sym;
+ if(re->rule_ == 0){
+ sym = new Rt_sufx_code(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rt_sufx_code*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rt_sufx_code_:{
+ Rt_sufx_code* sym;
+ if(re->rule_ == 0){
+ sym = new Rt_sufx_code(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rt_sufx_code*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rt_sufx_code_:{
+ Rt_sufx_code* sym;
+ if(re->rule_ == 0){
+ sym = new Rt_sufx_code(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rt_sufx_code*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Ropen_brace_:{
+ Ropen_brace* sym;
+ if(re->rule_ == 0){
+ sym = new Ropen_brace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ropen_brace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Ropen_brace_:{
+ Ropen_brace* sym;
+ if(re->rule_ == 0){
+ sym = new Ropen_brace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ropen_brace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rclose_brace_:{
+ Rclose_brace* sym;
+ if(re->rule_ == 0){
+ sym = new Rclose_brace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclose_brace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rclose_brace_:{
+ Rclose_brace* sym;
+ if(re->rule_ == 0){
+ sym = new Rclose_brace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclose_brace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rlint_:{
+ Rlint* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rlint_:{
+ Rlint* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs1_Rcweb_k_:{
+ Rcweb_k* sym;
+ if(re->rule_ == 0){
+ sym = new Rcweb_k(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rcweb_k*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rcweb_k_:{
+ Rcweb_k* sym;
+ if(re->rule_ == 0){
+ sym = new Rcweb_k(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rcweb_k*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/lr1_k_phrase_thtbl.cpp b/web/yacco2/compiler/grammars/lr1_k_phrase_thtbl.cpp
new file mode 100644
index 0000000000..4c574363fc
--- /dev/null
+++ b/web/yacco2/compiler/grammars/lr1_k_phrase_thtbl.cpp
@@ -0,0 +1,1868 @@
+/*
+ File: lr1_k_phrase_thtbl.cpp
+ Date and Time: Fri Jan 30 18:55:15 2015
+*/
+#include "lr1_k_phrase_th.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_lr1_k_phrase_th;// grammar's ns
+// first set terminals
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+// LR1_invisible_shift_operator
+// raw_open_bracket
+// raw_close_bracket
+// raw_comma
+// raw_open_brace
+// raw_close_brace
+yacco2::UCHAR LA1_Clr1_k_phrase_th[] ={
+3
+,0,49
+,6,19
+,16,40
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+yacco2::UCHAR LA2_Clr1_k_phrase_th[] ={
+1
+,0,17
+};
+// LR1_questionable_shift_operator
+// raw_open_brace
+yacco2::UCHAR LA3_Clr1_k_phrase_th[] ={
+2
+,0,1
+,16,8
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+// raw_close_brace
+yacco2::UCHAR LA4_Clr1_k_phrase_th[] ={
+2
+,0,17
+,16,32
+};
+// LR1_questionable_shift_operator
+// raw_close_brace
+yacco2::UCHAR LA5_Clr1_k_phrase_th[] ={
+2
+,0,1
+,16,32
+};
+// LR1_eolr
+yacco2::UCHAR LA6_Clr1_k_phrase_th[] ={
+1
+,0,4
+};
+// LR1_questionable_shift_operator
+// raw_comma
+yacco2::UCHAR LA7_Clr1_k_phrase_th[] ={
+2
+,0,1
+,6,16
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+// raw_close_bracket
+yacco2::UCHAR LA8_Clr1_k_phrase_th[] ={
+2
+,0,17
+,6,2
+};
+// LR1_questionable_shift_operator
+// raw_close_bracket
+yacco2::UCHAR LA9_Clr1_k_phrase_th[] ={
+2
+,0,1
+,6,2
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+// raw_open_brace
+yacco2::UCHAR LA10_Clr1_k_phrase_th[] ={
+2
+,0,17
+,16,8
+};
+// LR1_reduce_operator
+// LR1_invisible_shift_operator
+yacco2::UCHAR LA11_Clr1_k_phrase_th[] ={
+1
+,0,48
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+// raw_comma
+yacco2::UCHAR LA12_Clr1_k_phrase_th[] ={
+2
+,0,17
+,6,16
+};
+extern yacco2::State S1_Clr1_k_phrase_th;
+extern yacco2::State S2_Clr1_k_phrase_th;
+struct S2ttd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S2ttd_Clr1_k_phrase_th S2tt_Clr1_k_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_lint_balls
+};
+extern yacco2::State S3_Clr1_k_phrase_th;
+extern yacco2::State S4_Clr1_k_phrase_th;
+extern yacco2::State S5_Clr1_k_phrase_th;
+extern yacco2::State S6_Clr1_k_phrase_th;
+extern yacco2::State S7_Clr1_k_phrase_th;
+extern yacco2::State S8_Clr1_k_phrase_th;
+extern yacco2::State S9_Clr1_k_phrase_th;
+extern yacco2::State S10_Clr1_k_phrase_th;
+extern yacco2::State S11_Clr1_k_phrase_th;
+extern yacco2::State S12_Clr1_k_phrase_th;
+extern yacco2::State S13_Clr1_k_phrase_th;
+extern yacco2::State S14_Clr1_k_phrase_th;
+extern yacco2::State S15_Clr1_k_phrase_th;
+extern yacco2::State S16_Clr1_k_phrase_th;
+extern yacco2::State S17_Clr1_k_phrase_th;
+extern yacco2::State S18_Clr1_k_phrase_th;
+extern yacco2::State S19_Clr1_k_phrase_th;
+extern yacco2::State S20_Clr1_k_phrase_th;
+extern yacco2::State S21_Clr1_k_phrase_th;
+extern yacco2::State S22_Clr1_k_phrase_th;
+extern yacco2::State S23_Clr1_k_phrase_th;
+extern yacco2::State S24_Clr1_k_phrase_th;
+extern yacco2::State S25_Clr1_k_phrase_th;
+extern yacco2::State S26_Clr1_k_phrase_th;
+extern yacco2::State S27_Clr1_k_phrase_th;
+struct S27ttd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S27ttd_Clr1_k_phrase_th S27tt_Clr1_k_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S28_Clr1_k_phrase_th;
+extern yacco2::State S29_Clr1_k_phrase_th;
+extern yacco2::State S30_Clr1_k_phrase_th;
+extern yacco2::State S31_Clr1_k_phrase_th;
+extern yacco2::State S32_Clr1_k_phrase_th;
+extern yacco2::State S33_Clr1_k_phrase_th;
+extern yacco2::State S34_Clr1_k_phrase_th;
+extern yacco2::State S35_Clr1_k_phrase_th;
+extern yacco2::State S36_Clr1_k_phrase_th;
+extern yacco2::State S37_Clr1_k_phrase_th;
+extern yacco2::State S38_Clr1_k_phrase_th;
+extern yacco2::State S39_Clr1_k_phrase_th;
+extern yacco2::State S40_Clr1_k_phrase_th;
+extern yacco2::State S41_Clr1_k_phrase_th;
+struct S41ttd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S41ttd_Clr1_k_phrase_th S41tt_Clr1_k_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_term_def_ph
+};
+extern yacco2::State S42_Clr1_k_phrase_th;
+extern yacco2::State S43_Clr1_k_phrase_th;
+extern yacco2::State S44_Clr1_k_phrase_th;
+extern yacco2::State S45_Clr1_k_phrase_th;
+extern yacco2::State S46_Clr1_k_phrase_th;
+extern yacco2::State S47_Clr1_k_phrase_th;
+struct S47ttd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[2];
+};
+S47ttd_Clr1_k_phrase_th S47tt_Clr1_k_phrase_th = {
+ 2 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+ ,(yacco2::Thread_entry*)&ITH_cweb_or_c_k
+};
+extern yacco2::State S48_Clr1_k_phrase_th;
+extern yacco2::State S49_Clr1_k_phrase_th;
+extern yacco2::State S50_Clr1_k_phrase_th;
+extern yacco2::State S51_Clr1_k_phrase_th;
+extern yacco2::State S52_Clr1_k_phrase_th;
+extern yacco2::State S53_Clr1_k_phrase_th;
+extern yacco2::State S54_Clr1_k_phrase_th;
+struct S54ttd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S54ttd_Clr1_k_phrase_th S54tt_Clr1_k_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_o2_sdc
+};
+extern yacco2::State S55_Clr1_k_phrase_th;
+extern yacco2::State S56_Clr1_k_phrase_th;
+extern yacco2::State S57_Clr1_k_phrase_th;
+extern yacco2::State S58_Clr1_k_phrase_th;
+extern yacco2::State S59_Clr1_k_phrase_th;
+extern yacco2::State S60_Clr1_k_phrase_th;
+extern yacco2::State S61_Clr1_k_phrase_th;
+extern yacco2::State S62_Clr1_k_phrase_th;
+extern yacco2::State S63_Clr1_k_phrase_th;
+struct S63ttd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S63ttd_Clr1_k_phrase_th S63tt_Clr1_k_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S64_Clr1_k_phrase_th;
+extern yacco2::State S65_Clr1_k_phrase_th;
+extern yacco2::State S66_Clr1_k_phrase_th;
+extern yacco2::State S67_Clr1_k_phrase_th;
+extern yacco2::State S68_Clr1_k_phrase_th;
+extern yacco2::State S69_Clr1_k_phrase_th;
+struct S69ttd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S69ttd_Clr1_k_phrase_th S69tt_Clr1_k_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S70_Clr1_k_phrase_th;
+extern yacco2::State S71_Clr1_k_phrase_th;
+extern yacco2::State S72_Clr1_k_phrase_th;
+extern yacco2::State S73_Clr1_k_phrase_th;
+extern yacco2::State S74_Clr1_k_phrase_th;
+struct S74ttd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S74ttd_Clr1_k_phrase_th S74tt_Clr1_k_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S75_Clr1_k_phrase_th;
+extern yacco2::State S76_Clr1_k_phrase_th;
+extern yacco2::State S77_Clr1_k_phrase_th;
+extern yacco2::State S78_Clr1_k_phrase_th;
+struct S78ttd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S78ttd_Clr1_k_phrase_th S78tt_Clr1_k_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_term_def_ph
+};
+extern yacco2::State S79_Clr1_k_phrase_th;
+extern yacco2::State S80_Clr1_k_phrase_th;
+extern yacco2::State S81_Clr1_k_phrase_th;
+extern yacco2::State S82_Clr1_k_phrase_th;
+extern yacco2::State S83_Clr1_k_phrase_th;
+extern yacco2::State S84_Clr1_k_phrase_th;
+extern yacco2::State S85_Clr1_k_phrase_th;
+extern yacco2::State S86_Clr1_k_phrase_th;
+struct S86ttd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S86ttd_Clr1_k_phrase_th S86tt_Clr1_k_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S87_Clr1_k_phrase_th;
+extern yacco2::State S88_Clr1_k_phrase_th;
+struct S1std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S1std_Clr1_k_phrase_th S1st_Clr1_k_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S2_Clr1_k_phrase_th} // shift sym: LR1_parallel_operator
+ ,{569,(State*)&S1_Clr1_k_phrase_th} // accept sym: Rlr1_k_phrase
+ ,{590,(State*)&S4_Clr1_k_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S1pse_Clr1_k_phrase_th = {3,(State*)&S2_Clr1_k_phrase_th};
+struct S1rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S1rtd_Clr1_k_phrase_th S1rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S1_Clr1_k_phrase_th = //State's vectored into symbol: " No symbol"
+{1
+,(Shift_entry*)&S1pse_Clr1_k_phrase_th,0,0,0,(Shift_tbl*)&S1st_Clr1_k_phrase_th,(Reduce_tbl*)&S1rt_Clr1_k_phrase_th,(State_s_thread_tbl*)&S2tt_Clr1_k_phrase_th,0,0};
+struct S2std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S2std_Clr1_k_phrase_th S2st_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {375,(State*)&S3_Clr1_k_phrase_th} // shift sym: T_lint
+ }// end of shift table
+};
+yacco2::State S2_Clr1_k_phrase_th = //State's vectored into symbol: "|||"
+{2
+,0,0,0,0,(Shift_tbl*)&S2st_Clr1_k_phrase_th,0,0,0,0};
+struct S3rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Clr1_k_phrase_th S3rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs1_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S3_Clr1_k_phrase_th = //State's vectored into symbol: "lint"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_Clr1_k_phrase_th,0,0,0};
+struct S4std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S4std_Clr1_k_phrase_th S4st_Clr1_k_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S16_Clr1_k_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{48,(State*)&S17_Clr1_k_phrase_th} // shift sym: raw_open_bracket
+ ,{570,(State*)&S5_Clr1_k_phrase_th} // shift sym: Ropen_par
+ }// end of shift table
+};
+yacco2::Shift_entry S4qse_Clr1_k_phrase_th = {0,(State*)&S16_Clr1_k_phrase_th};
+yacco2::State S4_Clr1_k_phrase_th = //State's vectored into symbol: "Rlint"
+{4
+,0,0,0,0,(Shift_tbl*)&S4st_Clr1_k_phrase_th,0,0,0,(Shift_entry*)&S4qse_Clr1_k_phrase_th
+};
+struct S5std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S5std_Clr1_k_phrase_th S5st_Clr1_k_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S2_Clr1_k_phrase_th} // shift sym: LR1_parallel_operator
+ ,{572,(State*)&S6_Clr1_k_phrase_th} // shift sym: Rparameters
+ ,{590,(State*)&S18_Clr1_k_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S5pse_Clr1_k_phrase_th = {3,(State*)&S2_Clr1_k_phrase_th};
+struct S5rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Clr1_k_phrase_th S5rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S5_Clr1_k_phrase_th = //State's vectored into symbol: "Ropen_par"
+{5
+,(Shift_entry*)&S5pse_Clr1_k_phrase_th,0,0,0,(Shift_tbl*)&S5st_Clr1_k_phrase_th,(Reduce_tbl*)&S5rt_Clr1_k_phrase_th,(State_s_thread_tbl*)&S2tt_Clr1_k_phrase_th,0,0};
+struct S6std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S6std_Clr1_k_phrase_th S6st_Clr1_k_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S33_Clr1_k_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{49,(State*)&S34_Clr1_k_phrase_th} // shift sym: raw_close_bracket
+ ,{571,(State*)&S7_Clr1_k_phrase_th} // shift sym: Rclose_par
+ }// end of shift table
+};
+yacco2::Shift_entry S6qse_Clr1_k_phrase_th = {0,(State*)&S33_Clr1_k_phrase_th};
+yacco2::State S6_Clr1_k_phrase_th = //State's vectored into symbol: "Rparameters"
+{6
+,0,0,0,0,(Shift_tbl*)&S6st_Clr1_k_phrase_th,0,0,0,(Shift_entry*)&S6qse_Clr1_k_phrase_th
+};
+struct S7std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S7std_Clr1_k_phrase_th S7st_Clr1_k_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Clr1_k_phrase_th} // shift sym: LR1_parallel_operator
+ ,{590,(State*)&S8_Clr1_k_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S7pse_Clr1_k_phrase_th = {3,(State*)&S2_Clr1_k_phrase_th};
+struct S7rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Clr1_k_phrase_th S7rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S7_Clr1_k_phrase_th = //State's vectored into symbol: "Rclose_par"
+{7
+,(Shift_entry*)&S7pse_Clr1_k_phrase_th,0,0,0,(Shift_tbl*)&S7st_Clr1_k_phrase_th,(Reduce_tbl*)&S7rt_Clr1_k_phrase_th,(State_s_thread_tbl*)&S2tt_Clr1_k_phrase_th,0,0};
+struct S8std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S8std_Clr1_k_phrase_th S8st_Clr1_k_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S35_Clr1_k_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{131,(State*)&S36_Clr1_k_phrase_th} // shift sym: raw_open_brace
+ ,{588,(State*)&S9_Clr1_k_phrase_th} // shift sym: Ropen_brace
+ }// end of shift table
+};
+yacco2::Shift_entry S8qse_Clr1_k_phrase_th = {0,(State*)&S35_Clr1_k_phrase_th};
+yacco2::State S8_Clr1_k_phrase_th = //State's vectored into symbol: "Rlint"
+{8
+,0,0,0,0,(Shift_tbl*)&S8st_Clr1_k_phrase_th,0,0,0,(Shift_entry*)&S8qse_Clr1_k_phrase_th
+};
+struct S9std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S9std_Clr1_k_phrase_th S9st_Clr1_k_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S2_Clr1_k_phrase_th} // shift sym: LR1_parallel_operator
+ ,{579,(State*)&S10_Clr1_k_phrase_th} // shift sym: Rsym_defs_phrase
+ ,{590,(State*)&S37_Clr1_k_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S9pse_Clr1_k_phrase_th = {3,(State*)&S2_Clr1_k_phrase_th};
+struct S9rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Clr1_k_phrase_th S9rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S9_Clr1_k_phrase_th = //State's vectored into symbol: "Ropen_brace"
+{9
+,(Shift_entry*)&S9pse_Clr1_k_phrase_th,0,0,0,(Shift_tbl*)&S9st_Clr1_k_phrase_th,(Reduce_tbl*)&S9rt_Clr1_k_phrase_th,(State_s_thread_tbl*)&S2tt_Clr1_k_phrase_th,0,0};
+struct S10std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S10std_Clr1_k_phrase_th S10st_Clr1_k_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S2_Clr1_k_phrase_th} // shift sym: LR1_parallel_operator
+ ,{583,(State*)&S11_Clr1_k_phrase_th} // shift sym: Rt_sufx_phrase
+ ,{590,(State*)&S46_Clr1_k_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S10pse_Clr1_k_phrase_th = {3,(State*)&S2_Clr1_k_phrase_th};
+struct S10rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S10rtd_Clr1_k_phrase_th S10rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S10_Clr1_k_phrase_th = //State's vectored into symbol: "Rsym_defs_phrase"
+{10
+,(Shift_entry*)&S10pse_Clr1_k_phrase_th,0,0,0,(Shift_tbl*)&S10st_Clr1_k_phrase_th,(Reduce_tbl*)&S10rt_Clr1_k_phrase_th,(State_s_thread_tbl*)&S2tt_Clr1_k_phrase_th,0,0};
+struct S11std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S11std_Clr1_k_phrase_th S11st_Clr1_k_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Clr1_k_phrase_th} // shift sym: LR1_parallel_operator
+ ,{590,(State*)&S12_Clr1_k_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S11pse_Clr1_k_phrase_th = {3,(State*)&S2_Clr1_k_phrase_th};
+struct S11rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Clr1_k_phrase_th S11rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S11_Clr1_k_phrase_th = //State's vectored into symbol: "Rt_sufx_phrase"
+{11
+,(Shift_entry*)&S11pse_Clr1_k_phrase_th,0,0,0,(Shift_tbl*)&S11st_Clr1_k_phrase_th,(Reduce_tbl*)&S11rt_Clr1_k_phrase_th,(State_s_thread_tbl*)&S2tt_Clr1_k_phrase_th,0,0};
+struct S12std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S12std_Clr1_k_phrase_th S12st_Clr1_k_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S13_Clr1_k_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{133,(State*)&S14_Clr1_k_phrase_th} // shift sym: raw_close_brace
+ ,{589,(State*)&S15_Clr1_k_phrase_th} // shift sym: Rclose_brace
+ }// end of shift table
+};
+yacco2::Shift_entry S12qse_Clr1_k_phrase_th = {0,(State*)&S13_Clr1_k_phrase_th};
+yacco2::State S12_Clr1_k_phrase_th = //State's vectored into symbol: "Rlint"
+{12
+,0,0,0,0,(Shift_tbl*)&S12st_Clr1_k_phrase_th,0,0,0,(Shift_entry*)&S12qse_Clr1_k_phrase_th
+};
+struct S13rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S13rtd_Clr1_k_phrase_th S13rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs1_Rclose_brace_}
+ }// end of reduce table
+};
+yacco2::State S13_Clr1_k_phrase_th = //State's vectored into symbol: "|?|"
+{13
+,0,0,0,0,0,(Reduce_tbl*)&S13rt_Clr1_k_phrase_th,0,0,0};
+struct S14rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S14rtd_Clr1_k_phrase_th S14rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs2_Rclose_brace_}
+ }// end of reduce table
+};
+yacco2::State S14_Clr1_k_phrase_th = //State's vectored into symbol: "}"
+{14
+,0,0,0,0,0,(Reduce_tbl*)&S14rt_Clr1_k_phrase_th,0,0,0};
+struct S15rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S15rtd_Clr1_k_phrase_th S15rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs1_Rlr1_k_phrase_}
+ }// end of reduce table
+};
+yacco2::State S15_Clr1_k_phrase_th = //State's vectored into symbol: "Rclose_brace"
+{15
+,0,0,0,0,0,(Reduce_tbl*)&S15rt_Clr1_k_phrase_th,0,0,0};
+struct S16rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S16rtd_Clr1_k_phrase_th S16rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs1_Ropen_par_}
+ }// end of reduce table
+};
+yacco2::State S16_Clr1_k_phrase_th = //State's vectored into symbol: "|?|"
+{16
+,0,0,0,0,0,(Reduce_tbl*)&S16rt_Clr1_k_phrase_th,0,0,0};
+struct S17rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S17rtd_Clr1_k_phrase_th S17rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs2_Ropen_par_}
+ }// end of reduce table
+};
+yacco2::State S17_Clr1_k_phrase_th = //State's vectored into symbol: "("
+{17
+,0,0,0,0,0,(Reduce_tbl*)&S17rt_Clr1_k_phrase_th,0,0,0};
+struct S18std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S18std_Clr1_k_phrase_th S18st_Clr1_k_phrase_th = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S62_Clr1_k_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S63_Clr1_k_phrase_th} // shift sym: LR1_parallel_operator
+ ,{573,(State*)&S19_Clr1_k_phrase_th} // shift sym: Rfilename_phrase
+ ,{574,(State*)&S66_Clr1_k_phrase_th} // shift sym: Rfilename
+ }// end of shift table
+};
+yacco2::Shift_entry S18pse_Clr1_k_phrase_th = {3,(State*)&S63_Clr1_k_phrase_th};
+yacco2::Shift_entry S18qse_Clr1_k_phrase_th = {0,(State*)&S62_Clr1_k_phrase_th};
+yacco2::State S18_Clr1_k_phrase_th = //State's vectored into symbol: "Rlint"
+{18
+,(Shift_entry*)&S18pse_Clr1_k_phrase_th,0,0,0,(Shift_tbl*)&S18st_Clr1_k_phrase_th,0,(State_s_thread_tbl*)&S63tt_Clr1_k_phrase_th,0,(Shift_entry*)&S18qse_Clr1_k_phrase_th
+};
+struct S19std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S19std_Clr1_k_phrase_th S19st_Clr1_k_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Clr1_k_phrase_th} // shift sym: LR1_parallel_operator
+ ,{590,(State*)&S20_Clr1_k_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S19pse_Clr1_k_phrase_th = {3,(State*)&S2_Clr1_k_phrase_th};
+struct S19rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S19rtd_Clr1_k_phrase_th S19rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S19_Clr1_k_phrase_th = //State's vectored into symbol: "Rfilename_phrase"
+{19
+,(Shift_entry*)&S19pse_Clr1_k_phrase_th,0,0,0,(Shift_tbl*)&S19st_Clr1_k_phrase_th,(Reduce_tbl*)&S19rt_Clr1_k_phrase_th,(State_s_thread_tbl*)&S2tt_Clr1_k_phrase_th,0,0};
+struct S20std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S20std_Clr1_k_phrase_th S20st_Clr1_k_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S21_Clr1_k_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{52,(State*)&S22_Clr1_k_phrase_th} // shift sym: raw_comma
+ ,{576,(State*)&S31_Clr1_k_phrase_th} // shift sym: Rnamespace_phrase
+ }// end of shift table
+};
+yacco2::Shift_entry S20qse_Clr1_k_phrase_th = {0,(State*)&S21_Clr1_k_phrase_th};
+yacco2::State S20_Clr1_k_phrase_th = //State's vectored into symbol: "Rlint"
+{20
+,0,0,0,0,(Shift_tbl*)&S20st_Clr1_k_phrase_th,0,0,0,(Shift_entry*)&S20qse_Clr1_k_phrase_th
+};
+struct S21rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S21rtd_Clr1_k_phrase_th S21rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA8_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs2_Rnamespace_phrase_}
+ }// end of reduce table
+};
+yacco2::State S21_Clr1_k_phrase_th = //State's vectored into symbol: "|?|"
+{21
+,0,0,0,0,0,(Reduce_tbl*)&S21rt_Clr1_k_phrase_th,0,0,0};
+struct S22std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S22std_Clr1_k_phrase_th S22st_Clr1_k_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Clr1_k_phrase_th} // shift sym: LR1_parallel_operator
+ ,{590,(State*)&S23_Clr1_k_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S22pse_Clr1_k_phrase_th = {3,(State*)&S2_Clr1_k_phrase_th};
+struct S22rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S22rtd_Clr1_k_phrase_th S22rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S22_Clr1_k_phrase_th = //State's vectored into symbol: ","
+{22
+,(Shift_entry*)&S22pse_Clr1_k_phrase_th,0,0,0,(Shift_tbl*)&S22st_Clr1_k_phrase_th,(Reduce_tbl*)&S22rt_Clr1_k_phrase_th,(State_s_thread_tbl*)&S2tt_Clr1_k_phrase_th,0,0};
+struct S23std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S23std_Clr1_k_phrase_th S23st_Clr1_k_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S73_Clr1_k_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S74_Clr1_k_phrase_th} // shift sym: LR1_parallel_operator
+ ,{577,(State*)&S24_Clr1_k_phrase_th} // shift sym: Rnamespace
+ }// end of shift table
+};
+yacco2::Shift_entry S23pse_Clr1_k_phrase_th = {3,(State*)&S74_Clr1_k_phrase_th};
+yacco2::Shift_entry S23qse_Clr1_k_phrase_th = {0,(State*)&S73_Clr1_k_phrase_th};
+yacco2::State S23_Clr1_k_phrase_th = //State's vectored into symbol: "Rlint"
+{23
+,(Shift_entry*)&S23pse_Clr1_k_phrase_th,0,0,0,(Shift_tbl*)&S23st_Clr1_k_phrase_th,0,(State_s_thread_tbl*)&S74tt_Clr1_k_phrase_th,0,(Shift_entry*)&S23qse_Clr1_k_phrase_th
+};
+struct S24std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S24std_Clr1_k_phrase_th S24st_Clr1_k_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Clr1_k_phrase_th} // shift sym: LR1_parallel_operator
+ ,{590,(State*)&S25_Clr1_k_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S24pse_Clr1_k_phrase_th = {3,(State*)&S2_Clr1_k_phrase_th};
+struct S24rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S24rtd_Clr1_k_phrase_th S24rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S24_Clr1_k_phrase_th = //State's vectored into symbol: "Rnamespace"
+{24
+,(Shift_entry*)&S24pse_Clr1_k_phrase_th,0,0,0,(Shift_tbl*)&S24st_Clr1_k_phrase_th,(Reduce_tbl*)&S24rt_Clr1_k_phrase_th,(State_s_thread_tbl*)&S2tt_Clr1_k_phrase_th,0,0};
+struct S25std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S25std_Clr1_k_phrase_th S25st_Clr1_k_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S26_Clr1_k_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S27_Clr1_k_phrase_th} // shift sym: LR1_parallel_operator
+ ,{578,(State*)&S30_Clr1_k_phrase_th} // shift sym: Rnamespace_id
+ }// end of shift table
+};
+yacco2::Shift_entry S25pse_Clr1_k_phrase_th = {3,(State*)&S27_Clr1_k_phrase_th};
+yacco2::Shift_entry S25qse_Clr1_k_phrase_th = {0,(State*)&S26_Clr1_k_phrase_th};
+yacco2::State S25_Clr1_k_phrase_th = //State's vectored into symbol: "Rlint"
+{25
+,(Shift_entry*)&S25pse_Clr1_k_phrase_th,0,0,0,(Shift_tbl*)&S25st_Clr1_k_phrase_th,0,(State_s_thread_tbl*)&S27tt_Clr1_k_phrase_th,0,(Shift_entry*)&S25qse_Clr1_k_phrase_th
+};
+struct S26rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S26rtd_Clr1_k_phrase_th S26rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA8_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs3_Rnamespace_id_}
+ }// end of reduce table
+};
+yacco2::State S26_Clr1_k_phrase_th = //State's vectored into symbol: "|?|"
+{26
+,0,0,0,0,0,(Reduce_tbl*)&S26rt_Clr1_k_phrase_th,0,0,0};
+struct S27std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S27std_Clr1_k_phrase_th S27st_Clr1_k_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S28_Clr1_k_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{279,(State*)&S29_Clr1_k_phrase_th} // shift sym: T_identifier
+ }// end of shift table
+};
+yacco2::Shift_entry S27qse_Clr1_k_phrase_th = {0,(State*)&S28_Clr1_k_phrase_th};
+yacco2::State S27_Clr1_k_phrase_th = //State's vectored into symbol: "|||"
+{27
+,0,0,0,0,(Shift_tbl*)&S27st_Clr1_k_phrase_th,0,0,0,(Shift_entry*)&S27qse_Clr1_k_phrase_th
+};
+struct S28rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S28rtd_Clr1_k_phrase_th S28rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA8_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs2_Rnamespace_id_}
+ }// end of reduce table
+};
+yacco2::State S28_Clr1_k_phrase_th = //State's vectored into symbol: "|?|"
+{28
+,0,0,0,0,0,(Reduce_tbl*)&S28rt_Clr1_k_phrase_th,0,0,0};
+struct S29rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S29rtd_Clr1_k_phrase_th S29rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA8_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs1_Rnamespace_id_}
+ }// end of reduce table
+};
+yacco2::State S29_Clr1_k_phrase_th = //State's vectored into symbol: "identifier"
+{29
+,0,0,0,0,0,(Reduce_tbl*)&S29rt_Clr1_k_phrase_th,0,0,0};
+struct S30rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S30rtd_Clr1_k_phrase_th S30rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA8_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs1_Rnamespace_phrase_}
+ }// end of reduce table
+};
+yacco2::State S30_Clr1_k_phrase_th = //State's vectored into symbol: "Rnamespace_id"
+{30
+,0,0,0,0,0,(Reduce_tbl*)&S30rt_Clr1_k_phrase_th,0,0,0};
+struct S31std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S31std_Clr1_k_phrase_th S31st_Clr1_k_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Clr1_k_phrase_th} // shift sym: LR1_parallel_operator
+ ,{590,(State*)&S32_Clr1_k_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S31pse_Clr1_k_phrase_th = {3,(State*)&S2_Clr1_k_phrase_th};
+struct S31rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S31rtd_Clr1_k_phrase_th S31rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA9_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S31_Clr1_k_phrase_th = //State's vectored into symbol: "Rnamespace_phrase"
+{31
+,(Shift_entry*)&S31pse_Clr1_k_phrase_th,0,0,0,(Shift_tbl*)&S31st_Clr1_k_phrase_th,(Reduce_tbl*)&S31rt_Clr1_k_phrase_th,(State_s_thread_tbl*)&S2tt_Clr1_k_phrase_th,0,0};
+struct S32rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S32rtd_Clr1_k_phrase_th S32rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA9_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs1_Rparameters_}
+ }// end of reduce table
+};
+yacco2::State S32_Clr1_k_phrase_th = //State's vectored into symbol: "Rlint"
+{32
+,0,0,0,0,0,(Reduce_tbl*)&S32rt_Clr1_k_phrase_th,0,0,0};
+struct S33rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S33rtd_Clr1_k_phrase_th S33rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA10_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs1_Rclose_par_}
+ }// end of reduce table
+};
+yacco2::State S33_Clr1_k_phrase_th = //State's vectored into symbol: "|?|"
+{33
+,0,0,0,0,0,(Reduce_tbl*)&S33rt_Clr1_k_phrase_th,0,0,0};
+struct S34rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S34rtd_Clr1_k_phrase_th S34rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA10_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs2_Rclose_par_}
+ }// end of reduce table
+};
+yacco2::State S34_Clr1_k_phrase_th = //State's vectored into symbol: ")"
+{34
+,0,0,0,0,0,(Reduce_tbl*)&S34rt_Clr1_k_phrase_th,0,0,0};
+struct S35rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S35rtd_Clr1_k_phrase_th S35rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs1_Ropen_brace_}
+ }// end of reduce table
+};
+yacco2::State S35_Clr1_k_phrase_th = //State's vectored into symbol: "|?|"
+{35
+,0,0,0,0,0,(Reduce_tbl*)&S35rt_Clr1_k_phrase_th,0,0,0};
+struct S36rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S36rtd_Clr1_k_phrase_th S36rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs2_Ropen_brace_}
+ }// end of reduce table
+};
+yacco2::State S36_Clr1_k_phrase_th = //State's vectored into symbol: "{"
+{36
+,0,0,0,0,0,(Reduce_tbl*)&S36rt_Clr1_k_phrase_th,0,0,0};
+struct S37std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S37std_Clr1_k_phrase_th S37st_Clr1_k_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S77_Clr1_k_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S78_Clr1_k_phrase_th} // shift sym: LR1_parallel_operator
+ ,{580,(State*)&S38_Clr1_k_phrase_th} // shift sym: Rsym_def
+ }// end of shift table
+};
+yacco2::Shift_entry S37pse_Clr1_k_phrase_th = {3,(State*)&S78_Clr1_k_phrase_th};
+yacco2::Shift_entry S37qse_Clr1_k_phrase_th = {0,(State*)&S77_Clr1_k_phrase_th};
+yacco2::State S37_Clr1_k_phrase_th = //State's vectored into symbol: "Rlint"
+{37
+,(Shift_entry*)&S37pse_Clr1_k_phrase_th,0,0,0,(Shift_tbl*)&S37st_Clr1_k_phrase_th,0,(State_s_thread_tbl*)&S78tt_Clr1_k_phrase_th,0,(Shift_entry*)&S37qse_Clr1_k_phrase_th
+};
+struct S38std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S38std_Clr1_k_phrase_th S38st_Clr1_k_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Clr1_k_phrase_th} // shift sym: LR1_parallel_operator
+ ,{590,(State*)&S39_Clr1_k_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S38pse_Clr1_k_phrase_th = {3,(State*)&S2_Clr1_k_phrase_th};
+struct S38rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S38rtd_Clr1_k_phrase_th S38rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA11_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S38_Clr1_k_phrase_th = //State's vectored into symbol: "Rsym_def"
+{38
+,(Shift_entry*)&S38pse_Clr1_k_phrase_th,0,0,0,(Shift_tbl*)&S38st_Clr1_k_phrase_th,(Reduce_tbl*)&S38rt_Clr1_k_phrase_th,(State_s_thread_tbl*)&S2tt_Clr1_k_phrase_th,0,0};
+struct S39std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S39std_Clr1_k_phrase_th S39st_Clr1_k_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S41_Clr1_k_phrase_th} // shift sym: LR1_parallel_operator
+ ,{581,(State*)&S40_Clr1_k_phrase_th} // shift sym: Rsym_def1s
+ ,{582,(State*)&S83_Clr1_k_phrase_th} // shift sym: Rsym_def1
+ }// end of shift table
+};
+yacco2::Shift_entry S39pse_Clr1_k_phrase_th = {3,(State*)&S41_Clr1_k_phrase_th};
+struct S39rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S39rtd_Clr1_k_phrase_th S39rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA11_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs3_Rsym_def1s_}
+ }// end of reduce table
+};
+yacco2::State S39_Clr1_k_phrase_th = //State's vectored into symbol: "Rlint"
+{39
+,(Shift_entry*)&S39pse_Clr1_k_phrase_th,0,0,0,(Shift_tbl*)&S39st_Clr1_k_phrase_th,(Reduce_tbl*)&S39rt_Clr1_k_phrase_th,(State_s_thread_tbl*)&S41tt_Clr1_k_phrase_th,0,0};
+struct S40std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S40std_Clr1_k_phrase_th S40st_Clr1_k_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S41_Clr1_k_phrase_th} // shift sym: LR1_parallel_operator
+ ,{5,(State*)&S45_Clr1_k_phrase_th} // shift sym: LR1_invisible_shift_operator
+ ,{582,(State*)&S81_Clr1_k_phrase_th} // shift sym: Rsym_def1
+ }// end of shift table
+};
+yacco2::Shift_entry S40pse_Clr1_k_phrase_th = {3,(State*)&S41_Clr1_k_phrase_th};
+yacco2::Shift_entry S40ise_Clr1_k_phrase_th = {5,(State*)&S45_Clr1_k_phrase_th};
+yacco2::State S40_Clr1_k_phrase_th = //State's vectored into symbol: "Rsym_def1s"
+{40
+,(Shift_entry*)&S40pse_Clr1_k_phrase_th,0,(Shift_entry*)&S40ise_Clr1_k_phrase_th
+,0,(Shift_tbl*)&S40st_Clr1_k_phrase_th,0,(State_s_thread_tbl*)&S41tt_Clr1_k_phrase_th,0,0};
+struct S41std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S41std_Clr1_k_phrase_th S41st_Clr1_k_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S42_Clr1_k_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{331,(State*)&S43_Clr1_k_phrase_th} // shift sym: T_terminal_def
+ ,{443,(State*)&S44_Clr1_k_phrase_th} // shift sym: Err_no_terminal_key_present
+ }// end of shift table
+};
+yacco2::Shift_entry S41qse_Clr1_k_phrase_th = {0,(State*)&S42_Clr1_k_phrase_th};
+yacco2::State S41_Clr1_k_phrase_th = //State's vectored into symbol: "|||"
+{41
+,0,0,0,0,(Shift_tbl*)&S41st_Clr1_k_phrase_th,0,0,0,(Shift_entry*)&S41qse_Clr1_k_phrase_th
+};
+struct S42rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S42rtd_Clr1_k_phrase_th S42rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA11_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs3_Rsym_def1_}
+ }// end of reduce table
+};
+yacco2::State S42_Clr1_k_phrase_th = //State's vectored into symbol: "|?|"
+{42
+,0,0,0,0,0,(Reduce_tbl*)&S42rt_Clr1_k_phrase_th,0,0,0};
+struct S43rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S43rtd_Clr1_k_phrase_th S43rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA11_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs1_Rsym_def1_}
+ }// end of reduce table
+};
+yacco2::State S43_Clr1_k_phrase_th = //State's vectored into symbol: "terminal-def"
+{43
+,0,0,0,0,0,(Reduce_tbl*)&S43rt_Clr1_k_phrase_th,0,0,0};
+struct S44rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S44rtd_Clr1_k_phrase_th S44rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA11_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs2_Rsym_def1_}
+ }// end of reduce table
+};
+yacco2::State S44_Clr1_k_phrase_th = //State's vectored into symbol: "no key-value present in definition"
+{44
+,0,0,0,0,0,(Reduce_tbl*)&S44rt_Clr1_k_phrase_th,0,0,0};
+struct S45rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S45rtd_Clr1_k_phrase_th S45rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs1_Rsym_defs_phrase_}
+ }// end of reduce table
+};
+yacco2::State S45_Clr1_k_phrase_th = //State's vectored into symbol: "|.|"
+{45
+,0,0,0,0,0,(Reduce_tbl*)&S45rt_Clr1_k_phrase_th,0,0,0};
+struct S46std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S46std_Clr1_k_phrase_th S46st_Clr1_k_phrase_th = {
+ 4
+ ,
+ {// start of table
+ {3,(State*)&S47_Clr1_k_phrase_th} // shift sym: LR1_parallel_operator
+ ,{584,(State*)&S51_Clr1_k_phrase_th} // shift sym: Rt_sufx_kw_code
+ ,{585,(State*)&S52_Clr1_k_phrase_th} // shift sym: Rt_sufx_kw
+ ,{591,(State*)&S58_Clr1_k_phrase_th} // shift sym: Rcweb_k
+ }// end of shift table
+};
+yacco2::Shift_entry S46pse_Clr1_k_phrase_th = {3,(State*)&S47_Clr1_k_phrase_th};
+struct S46rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S46rtd_Clr1_k_phrase_th S46rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs2_Rt_sufx_kw_code_}
+ }// end of reduce table
+};
+yacco2::State S46_Clr1_k_phrase_th = //State's vectored into symbol: "Rlint"
+{46
+,(Shift_entry*)&S46pse_Clr1_k_phrase_th,0,0,0,(Shift_tbl*)&S46st_Clr1_k_phrase_th,(Reduce_tbl*)&S46rt_Clr1_k_phrase_th,(State_s_thread_tbl*)&S47tt_Clr1_k_phrase_th,0,0};
+struct S47std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S47std_Clr1_k_phrase_th S47st_Clr1_k_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S48_Clr1_k_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{321,(State*)&S49_Clr1_k_phrase_th} // shift sym: T_lrk_sufx
+ ,{372,(State*)&S50_Clr1_k_phrase_th} // shift sym: T_cweb_comment
+ }// end of shift table
+};
+yacco2::Shift_entry S47qse_Clr1_k_phrase_th = {0,(State*)&S48_Clr1_k_phrase_th};
+yacco2::State S47_Clr1_k_phrase_th = //State's vectored into symbol: "|||"
+{47
+,0,0,0,0,(Shift_tbl*)&S47st_Clr1_k_phrase_th,0,0,0,(Shift_entry*)&S47qse_Clr1_k_phrase_th
+};
+struct S48rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S48rtd_Clr1_k_phrase_th S48rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs2_Rcweb_k_}
+ }// end of reduce table
+};
+yacco2::State S48_Clr1_k_phrase_th = //State's vectored into symbol: "|?|"
+{48
+,0,0,0,0,0,(Reduce_tbl*)&S48rt_Clr1_k_phrase_th,0,0,0};
+struct S49rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S49rtd_Clr1_k_phrase_th S49rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs1_Rt_sufx_kw_}
+ }// end of reduce table
+};
+yacco2::State S49_Clr1_k_phrase_th = //State's vectored into symbol: "#lrk-sufx"
+{49
+,0,0,0,0,0,(Reduce_tbl*)&S49rt_Clr1_k_phrase_th,0,0,0};
+struct S50rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S50rtd_Clr1_k_phrase_th S50rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs1_Rcweb_k_}
+ }// end of reduce table
+};
+yacco2::State S50_Clr1_k_phrase_th = //State's vectored into symbol: "cweb-comment"
+{50
+,0,0,0,0,0,(Reduce_tbl*)&S50rt_Clr1_k_phrase_th,0,0,0};
+struct S51rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S51rtd_Clr1_k_phrase_th S51rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs2_Rt_sufx_phrase_}
+ }// end of reduce table
+};
+yacco2::State S51_Clr1_k_phrase_th = //State's vectored into symbol: "Rt_sufx_kw_code"
+{51
+,0,0,0,0,0,(Reduce_tbl*)&S51rt_Clr1_k_phrase_th,0,0,0};
+struct S52std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S52std_Clr1_k_phrase_th S52st_Clr1_k_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S53_Clr1_k_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S54_Clr1_k_phrase_th} // shift sym: LR1_parallel_operator
+ ,{587,(State*)&S57_Clr1_k_phrase_th} // shift sym: Rt_sufx_code
+ }// end of shift table
+};
+yacco2::Shift_entry S52pse_Clr1_k_phrase_th = {3,(State*)&S54_Clr1_k_phrase_th};
+yacco2::Shift_entry S52qse_Clr1_k_phrase_th = {0,(State*)&S53_Clr1_k_phrase_th};
+yacco2::State S52_Clr1_k_phrase_th = //State's vectored into symbol: "Rt_sufx_kw"
+{52
+,(Shift_entry*)&S52pse_Clr1_k_phrase_th,0,0,0,(Shift_tbl*)&S52st_Clr1_k_phrase_th,0,(State_s_thread_tbl*)&S54tt_Clr1_k_phrase_th,0,(Shift_entry*)&S52qse_Clr1_k_phrase_th
+};
+struct S53rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S53rtd_Clr1_k_phrase_th S53rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs3_Rt_sufx_code_}
+ }// end of reduce table
+};
+yacco2::State S53_Clr1_k_phrase_th = //State's vectored into symbol: "|?|"
+{53
+,0,0,0,0,0,(Reduce_tbl*)&S53rt_Clr1_k_phrase_th,0,0,0};
+struct S54std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S54std_Clr1_k_phrase_th S54st_Clr1_k_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S55_Clr1_k_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{326,(State*)&S56_Clr1_k_phrase_th} // shift sym: T_syntax_code
+ }// end of shift table
+};
+yacco2::Shift_entry S54qse_Clr1_k_phrase_th = {0,(State*)&S55_Clr1_k_phrase_th};
+yacco2::State S54_Clr1_k_phrase_th = //State's vectored into symbol: "|||"
+{54
+,0,0,0,0,(Shift_tbl*)&S54st_Clr1_k_phrase_th,0,0,0,(Shift_entry*)&S54qse_Clr1_k_phrase_th
+};
+struct S55rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S55rtd_Clr1_k_phrase_th S55rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs2_Rt_sufx_code_}
+ }// end of reduce table
+};
+yacco2::State S55_Clr1_k_phrase_th = //State's vectored into symbol: "|?|"
+{55
+,0,0,0,0,0,(Reduce_tbl*)&S55rt_Clr1_k_phrase_th,0,0,0};
+struct S56rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S56rtd_Clr1_k_phrase_th S56rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs1_Rt_sufx_code_}
+ }// end of reduce table
+};
+yacco2::State S56_Clr1_k_phrase_th = //State's vectored into symbol: "syntax-code"
+{56
+,0,0,0,0,0,(Reduce_tbl*)&S56rt_Clr1_k_phrase_th,0,0,0};
+struct S57rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S57rtd_Clr1_k_phrase_th S57rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs1_Rt_sufx_kw_code_}
+ }// end of reduce table
+};
+yacco2::State S57_Clr1_k_phrase_th = //State's vectored into symbol: "Rt_sufx_code"
+{57
+,0,0,0,0,0,(Reduce_tbl*)&S57rt_Clr1_k_phrase_th,0,0,0};
+struct S58std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S58std_Clr1_k_phrase_th S58st_Clr1_k_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Clr1_k_phrase_th} // shift sym: LR1_parallel_operator
+ ,{590,(State*)&S59_Clr1_k_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S58pse_Clr1_k_phrase_th = {3,(State*)&S2_Clr1_k_phrase_th};
+struct S58rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S58rtd_Clr1_k_phrase_th S58rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S58_Clr1_k_phrase_th = //State's vectored into symbol: "Rcweb_k"
+{58
+,(Shift_entry*)&S58pse_Clr1_k_phrase_th,0,0,0,(Shift_tbl*)&S58st_Clr1_k_phrase_th,(Reduce_tbl*)&S58rt_Clr1_k_phrase_th,(State_s_thread_tbl*)&S2tt_Clr1_k_phrase_th,0,0};
+struct S59std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S59std_Clr1_k_phrase_th S59st_Clr1_k_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S85_Clr1_k_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S86_Clr1_k_phrase_th} // shift sym: LR1_parallel_operator
+ ,{586,(State*)&S60_Clr1_k_phrase_th} // shift sym: Rt_sufx_kw_must
+ }// end of shift table
+};
+yacco2::Shift_entry S59pse_Clr1_k_phrase_th = {3,(State*)&S86_Clr1_k_phrase_th};
+yacco2::Shift_entry S59qse_Clr1_k_phrase_th = {0,(State*)&S85_Clr1_k_phrase_th};
+yacco2::State S59_Clr1_k_phrase_th = //State's vectored into symbol: "Rlint"
+{59
+,(Shift_entry*)&S59pse_Clr1_k_phrase_th,0,0,0,(Shift_tbl*)&S59st_Clr1_k_phrase_th,0,(State_s_thread_tbl*)&S86tt_Clr1_k_phrase_th,0,(Shift_entry*)&S59qse_Clr1_k_phrase_th
+};
+struct S60std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S60std_Clr1_k_phrase_th S60st_Clr1_k_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S53_Clr1_k_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S54_Clr1_k_phrase_th} // shift sym: LR1_parallel_operator
+ ,{587,(State*)&S61_Clr1_k_phrase_th} // shift sym: Rt_sufx_code
+ }// end of shift table
+};
+yacco2::Shift_entry S60pse_Clr1_k_phrase_th = {3,(State*)&S54_Clr1_k_phrase_th};
+yacco2::Shift_entry S60qse_Clr1_k_phrase_th = {0,(State*)&S53_Clr1_k_phrase_th};
+yacco2::State S60_Clr1_k_phrase_th = //State's vectored into symbol: "Rt_sufx_kw_must"
+{60
+,(Shift_entry*)&S60pse_Clr1_k_phrase_th,0,0,0,(Shift_tbl*)&S60st_Clr1_k_phrase_th,0,(State_s_thread_tbl*)&S54tt_Clr1_k_phrase_th,0,(Shift_entry*)&S60qse_Clr1_k_phrase_th
+};
+struct S61rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S61rtd_Clr1_k_phrase_th S61rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs1_Rt_sufx_phrase_}
+ }// end of reduce table
+};
+yacco2::State S61_Clr1_k_phrase_th = //State's vectored into symbol: "Rt_sufx_code"
+{61
+,0,0,0,0,0,(Reduce_tbl*)&S61rt_Clr1_k_phrase_th,0,0,0};
+struct S62rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S62rtd_Clr1_k_phrase_th S62rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs3_Rfilename_}
+ }// end of reduce table
+};
+yacco2::State S62_Clr1_k_phrase_th = //State's vectored into symbol: "|?|"
+{62
+,0,0,0,0,0,(Reduce_tbl*)&S62rt_Clr1_k_phrase_th,0,0,0};
+struct S63std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S63std_Clr1_k_phrase_th S63st_Clr1_k_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S64_Clr1_k_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{303,(State*)&S65_Clr1_k_phrase_th} // shift sym: T_file_name
+ }// end of shift table
+};
+yacco2::Shift_entry S63qse_Clr1_k_phrase_th = {0,(State*)&S64_Clr1_k_phrase_th};
+yacco2::State S63_Clr1_k_phrase_th = //State's vectored into symbol: "|||"
+{63
+,0,0,0,0,(Shift_tbl*)&S63st_Clr1_k_phrase_th,0,0,0,(Shift_entry*)&S63qse_Clr1_k_phrase_th
+};
+struct S64rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S64rtd_Clr1_k_phrase_th S64rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs2_Rfilename_}
+ }// end of reduce table
+};
+yacco2::State S64_Clr1_k_phrase_th = //State's vectored into symbol: "|?|"
+{64
+,0,0,0,0,0,(Reduce_tbl*)&S64rt_Clr1_k_phrase_th,0,0,0};
+struct S65rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S65rtd_Clr1_k_phrase_th S65rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs1_Rfilename_}
+ }// end of reduce table
+};
+yacco2::State S65_Clr1_k_phrase_th = //State's vectored into symbol: "#file-name"
+{65
+,0,0,0,0,0,(Reduce_tbl*)&S65rt_Clr1_k_phrase_th,0,0,0};
+struct S66std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S66std_Clr1_k_phrase_th S66st_Clr1_k_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Clr1_k_phrase_th} // shift sym: LR1_parallel_operator
+ ,{590,(State*)&S67_Clr1_k_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S66pse_Clr1_k_phrase_th = {3,(State*)&S2_Clr1_k_phrase_th};
+struct S66rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S66rtd_Clr1_k_phrase_th S66rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S66_Clr1_k_phrase_th = //State's vectored into symbol: "Rfilename"
+{66
+,(Shift_entry*)&S66pse_Clr1_k_phrase_th,0,0,0,(Shift_tbl*)&S66st_Clr1_k_phrase_th,(Reduce_tbl*)&S66rt_Clr1_k_phrase_th,(State_s_thread_tbl*)&S2tt_Clr1_k_phrase_th,0,0};
+struct S67std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S67std_Clr1_k_phrase_th S67st_Clr1_k_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S68_Clr1_k_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S69_Clr1_k_phrase_th} // shift sym: LR1_parallel_operator
+ ,{575,(State*)&S72_Clr1_k_phrase_th} // shift sym: Rfilename_id
+ }// end of shift table
+};
+yacco2::Shift_entry S67pse_Clr1_k_phrase_th = {3,(State*)&S69_Clr1_k_phrase_th};
+yacco2::Shift_entry S67qse_Clr1_k_phrase_th = {0,(State*)&S68_Clr1_k_phrase_th};
+yacco2::State S67_Clr1_k_phrase_th = //State's vectored into symbol: "Rlint"
+{67
+,(Shift_entry*)&S67pse_Clr1_k_phrase_th,0,0,0,(Shift_tbl*)&S67st_Clr1_k_phrase_th,0,(State_s_thread_tbl*)&S69tt_Clr1_k_phrase_th,0,(Shift_entry*)&S67qse_Clr1_k_phrase_th
+};
+struct S68rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S68rtd_Clr1_k_phrase_th S68rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA12_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs3_Rfilename_id_}
+ }// end of reduce table
+};
+yacco2::State S68_Clr1_k_phrase_th = //State's vectored into symbol: "|?|"
+{68
+,0,0,0,0,0,(Reduce_tbl*)&S68rt_Clr1_k_phrase_th,0,0,0};
+struct S69std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S69std_Clr1_k_phrase_th S69st_Clr1_k_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S70_Clr1_k_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{279,(State*)&S71_Clr1_k_phrase_th} // shift sym: T_identifier
+ }// end of shift table
+};
+yacco2::Shift_entry S69qse_Clr1_k_phrase_th = {0,(State*)&S70_Clr1_k_phrase_th};
+yacco2::State S69_Clr1_k_phrase_th = //State's vectored into symbol: "|||"
+{69
+,0,0,0,0,(Shift_tbl*)&S69st_Clr1_k_phrase_th,0,0,0,(Shift_entry*)&S69qse_Clr1_k_phrase_th
+};
+struct S70rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S70rtd_Clr1_k_phrase_th S70rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA12_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs2_Rfilename_id_}
+ }// end of reduce table
+};
+yacco2::State S70_Clr1_k_phrase_th = //State's vectored into symbol: "|?|"
+{70
+,0,0,0,0,0,(Reduce_tbl*)&S70rt_Clr1_k_phrase_th,0,0,0};
+struct S71rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S71rtd_Clr1_k_phrase_th S71rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA12_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs1_Rfilename_id_}
+ }// end of reduce table
+};
+yacco2::State S71_Clr1_k_phrase_th = //State's vectored into symbol: "identifier"
+{71
+,0,0,0,0,0,(Reduce_tbl*)&S71rt_Clr1_k_phrase_th,0,0,0};
+struct S72rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S72rtd_Clr1_k_phrase_th S72rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA12_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs1_Rfilename_phrase_}
+ }// end of reduce table
+};
+yacco2::State S72_Clr1_k_phrase_th = //State's vectored into symbol: "Rfilename_id"
+{72
+,0,0,0,0,0,(Reduce_tbl*)&S72rt_Clr1_k_phrase_th,0,0,0};
+struct S73rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S73rtd_Clr1_k_phrase_th S73rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs3_Rnamespace_}
+ }// end of reduce table
+};
+yacco2::State S73_Clr1_k_phrase_th = //State's vectored into symbol: "|?|"
+{73
+,0,0,0,0,0,(Reduce_tbl*)&S73rt_Clr1_k_phrase_th,0,0,0};
+struct S74std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S74std_Clr1_k_phrase_th S74st_Clr1_k_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S75_Clr1_k_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{304,(State*)&S76_Clr1_k_phrase_th} // shift sym: T_name_space
+ }// end of shift table
+};
+yacco2::Shift_entry S74qse_Clr1_k_phrase_th = {0,(State*)&S75_Clr1_k_phrase_th};
+yacco2::State S74_Clr1_k_phrase_th = //State's vectored into symbol: "|||"
+{74
+,0,0,0,0,(Shift_tbl*)&S74st_Clr1_k_phrase_th,0,0,0,(Shift_entry*)&S74qse_Clr1_k_phrase_th
+};
+struct S75rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S75rtd_Clr1_k_phrase_th S75rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs2_Rnamespace_}
+ }// end of reduce table
+};
+yacco2::State S75_Clr1_k_phrase_th = //State's vectored into symbol: "|?|"
+{75
+,0,0,0,0,0,(Reduce_tbl*)&S75rt_Clr1_k_phrase_th,0,0,0};
+struct S76rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S76rtd_Clr1_k_phrase_th S76rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs1_Rnamespace_}
+ }// end of reduce table
+};
+yacco2::State S76_Clr1_k_phrase_th = //State's vectored into symbol: "#name-space"
+{76
+,0,0,0,0,0,(Reduce_tbl*)&S76rt_Clr1_k_phrase_th,0,0,0};
+struct S77rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S77rtd_Clr1_k_phrase_th S77rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA11_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs3_Rsym_def_}
+ }// end of reduce table
+};
+yacco2::State S77_Clr1_k_phrase_th = //State's vectored into symbol: "|?|"
+{77
+,0,0,0,0,0,(Reduce_tbl*)&S77rt_Clr1_k_phrase_th,0,0,0};
+struct S78std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S78std_Clr1_k_phrase_th S78st_Clr1_k_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S79_Clr1_k_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{331,(State*)&S80_Clr1_k_phrase_th} // shift sym: T_terminal_def
+ }// end of shift table
+};
+yacco2::Shift_entry S78qse_Clr1_k_phrase_th = {0,(State*)&S79_Clr1_k_phrase_th};
+yacco2::State S78_Clr1_k_phrase_th = //State's vectored into symbol: "|||"
+{78
+,0,0,0,0,(Shift_tbl*)&S78st_Clr1_k_phrase_th,0,0,0,(Shift_entry*)&S78qse_Clr1_k_phrase_th
+};
+struct S79rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S79rtd_Clr1_k_phrase_th S79rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA11_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs2_Rsym_def_}
+ }// end of reduce table
+};
+yacco2::State S79_Clr1_k_phrase_th = //State's vectored into symbol: "|?|"
+{79
+,0,0,0,0,0,(Reduce_tbl*)&S79rt_Clr1_k_phrase_th,0,0,0};
+struct S80rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S80rtd_Clr1_k_phrase_th S80rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA11_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs1_Rsym_def_}
+ }// end of reduce table
+};
+yacco2::State S80_Clr1_k_phrase_th = //State's vectored into symbol: "terminal-def"
+{80
+,0,0,0,0,0,(Reduce_tbl*)&S80rt_Clr1_k_phrase_th,0,0,0};
+struct S81std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S81std_Clr1_k_phrase_th S81st_Clr1_k_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Clr1_k_phrase_th} // shift sym: LR1_parallel_operator
+ ,{590,(State*)&S82_Clr1_k_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S81pse_Clr1_k_phrase_th = {3,(State*)&S2_Clr1_k_phrase_th};
+struct S81rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S81rtd_Clr1_k_phrase_th S81rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA11_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S81_Clr1_k_phrase_th = //State's vectored into symbol: "Rsym_def1"
+{81
+,(Shift_entry*)&S81pse_Clr1_k_phrase_th,0,0,0,(Shift_tbl*)&S81st_Clr1_k_phrase_th,(Reduce_tbl*)&S81rt_Clr1_k_phrase_th,(State_s_thread_tbl*)&S2tt_Clr1_k_phrase_th,0,0};
+struct S82rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S82rtd_Clr1_k_phrase_th S82rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA11_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs2_Rsym_def1s_}
+ }// end of reduce table
+};
+yacco2::State S82_Clr1_k_phrase_th = //State's vectored into symbol: "Rlint"
+{82
+,0,0,0,0,0,(Reduce_tbl*)&S82rt_Clr1_k_phrase_th,0,0,0};
+struct S83std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S83std_Clr1_k_phrase_th S83st_Clr1_k_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Clr1_k_phrase_th} // shift sym: LR1_parallel_operator
+ ,{590,(State*)&S84_Clr1_k_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S83pse_Clr1_k_phrase_th = {3,(State*)&S2_Clr1_k_phrase_th};
+struct S83rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S83rtd_Clr1_k_phrase_th S83rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA11_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S83_Clr1_k_phrase_th = //State's vectored into symbol: "Rsym_def1"
+{83
+,(Shift_entry*)&S83pse_Clr1_k_phrase_th,0,0,0,(Shift_tbl*)&S83st_Clr1_k_phrase_th,(Reduce_tbl*)&S83rt_Clr1_k_phrase_th,(State_s_thread_tbl*)&S2tt_Clr1_k_phrase_th,0,0};
+struct S84rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S84rtd_Clr1_k_phrase_th S84rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA11_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs1_Rsym_def1s_}
+ }// end of reduce table
+};
+yacco2::State S84_Clr1_k_phrase_th = //State's vectored into symbol: "Rlint"
+{84
+,0,0,0,0,0,(Reduce_tbl*)&S84rt_Clr1_k_phrase_th,0,0,0};
+struct S85rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S85rtd_Clr1_k_phrase_th S85rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs3_Rt_sufx_kw_must_}
+ }// end of reduce table
+};
+yacco2::State S85_Clr1_k_phrase_th = //State's vectored into symbol: "|?|"
+{85
+,0,0,0,0,0,(Reduce_tbl*)&S85rt_Clr1_k_phrase_th,0,0,0};
+struct S86std_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S86std_Clr1_k_phrase_th S86st_Clr1_k_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S87_Clr1_k_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{321,(State*)&S88_Clr1_k_phrase_th} // shift sym: T_lrk_sufx
+ }// end of shift table
+};
+yacco2::Shift_entry S86qse_Clr1_k_phrase_th = {0,(State*)&S87_Clr1_k_phrase_th};
+yacco2::State S86_Clr1_k_phrase_th = //State's vectored into symbol: "|||"
+{86
+,0,0,0,0,(Shift_tbl*)&S86st_Clr1_k_phrase_th,0,0,0,(Shift_entry*)&S86qse_Clr1_k_phrase_th
+};
+struct S87rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S87rtd_Clr1_k_phrase_th S87rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs2_Rt_sufx_kw_must_}
+ }// end of reduce table
+};
+yacco2::State S87_Clr1_k_phrase_th = //State's vectored into symbol: "|?|"
+{87
+,0,0,0,0,0,(Reduce_tbl*)&S87rt_Clr1_k_phrase_th,0,0,0};
+struct S88rtd_Clr1_k_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S88rtd_Clr1_k_phrase_th S88rt_Clr1_k_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Clr1_k_phrase_th,Clr1_k_phrase_th::rhs1_Rt_sufx_kw_must_}
+ }// end of reduce table
+};
+yacco2::State S88_Clr1_k_phrase_th = //State's vectored into symbol: "#lrk-sufx"
+{88
+,0,0,0,0,0,(Reduce_tbl*)&S88rt_Clr1_k_phrase_th,0,0,0};
diff --git a/web/yacco2/compiler/grammars/lr1_k_phrasesym.cpp b/web/yacco2/compiler/grammars/lr1_k_phrasesym.cpp
new file mode 100644
index 0000000000..aa974f946d
--- /dev/null
+++ b/web/yacco2/compiler/grammars/lr1_k_phrasesym.cpp
@@ -0,0 +1,86 @@
+/*
+ File: lr1_k_phrasesym.cpp
+ Date and Time: Fri Jan 30 18:55:15 2015
+*/
+#include "lr1_k_phrase.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_lr1_k_phrase;// grammar's ns
+// first set terminals
+// monolithic grammar --- no thread
+void
+Clr1_k_phrase::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rlr1_k_phrase_:{
+ Rlr1_k_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rlr1_k_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlr1_k_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rphrase_:{
+ Rphrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rphrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rphrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rphrase_:{
+ Rphrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rphrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rphrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rphrase_:{
+ Rphrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rphrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rphrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/lr1_k_phrasetbl.cpp b/web/yacco2/compiler/grammars/lr1_k_phrasetbl.cpp
new file mode 100644
index 0000000000..3f6bcab548
--- /dev/null
+++ b/web/yacco2/compiler/grammars/lr1_k_phrasetbl.cpp
@@ -0,0 +1,129 @@
+/*
+ File: lr1_k_phrasetbl.cpp
+ Date and Time: Fri Jan 30 18:55:15 2015
+*/
+#include "lr1_k_phrase.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_lr1_k_phrase;// grammar's ns
+// first set terminals
+// LR1_eolr
+yacco2::UCHAR LA1_Clr1_k_phrase[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Clr1_k_phrase;
+extern yacco2::State S2_Clr1_k_phrase;
+extern yacco2::State S3_Clr1_k_phrase;
+struct S3ttd_Clr1_k_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S3ttd_Clr1_k_phrase S3tt_Clr1_k_phrase = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_lr1_k_phrase_th
+};
+extern yacco2::State S4_Clr1_k_phrase;
+extern yacco2::State S5_Clr1_k_phrase;
+extern yacco2::State S6_Clr1_k_phrase;
+struct S1std_Clr1_k_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S1std_Clr1_k_phrase S1st_Clr1_k_phrase = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S2_Clr1_k_phrase} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S3_Clr1_k_phrase} // shift sym: LR1_parallel_operator
+ ,{569,(State*)&S1_Clr1_k_phrase} // accept sym: Rlr1_k_phrase
+ ,{570,(State*)&S6_Clr1_k_phrase} // shift sym: Rphrase
+ }// end of shift table
+};
+yacco2::Shift_entry S1pse_Clr1_k_phrase = {3,(State*)&S3_Clr1_k_phrase};
+yacco2::Shift_entry S1qse_Clr1_k_phrase = {0,(State*)&S2_Clr1_k_phrase};
+yacco2::State S1_Clr1_k_phrase = //State's vectored into symbol: " No symbol"
+{1
+,(Shift_entry*)&S1pse_Clr1_k_phrase,0,0,0,(Shift_tbl*)&S1st_Clr1_k_phrase,0,(State_s_thread_tbl*)&S3tt_Clr1_k_phrase,0,(Shift_entry*)&S1qse_Clr1_k_phrase
+};
+struct S2rtd_Clr1_k_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Clr1_k_phrase S2rt_Clr1_k_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clr1_k_phrase,Clr1_k_phrase::rhs3_Rphrase_}
+ }// end of reduce table
+};
+yacco2::State S2_Clr1_k_phrase = //State's vectored into symbol: "|?|"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Clr1_k_phrase,0,0,0};
+struct S3std_Clr1_k_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S3std_Clr1_k_phrase S3st_Clr1_k_phrase = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S4_Clr1_k_phrase} // shift sym: LR1_questionable_shift_operator
+ ,{336,(State*)&S5_Clr1_k_phrase} // shift sym: T_lr1_k_phrase
+ }// end of shift table
+};
+yacco2::Shift_entry S3qse_Clr1_k_phrase = {0,(State*)&S4_Clr1_k_phrase};
+yacco2::State S3_Clr1_k_phrase = //State's vectored into symbol: "|||"
+{3
+,0,0,0,0,(Shift_tbl*)&S3st_Clr1_k_phrase,0,0,0,(Shift_entry*)&S3qse_Clr1_k_phrase
+};
+struct S4rtd_Clr1_k_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Clr1_k_phrase S4rt_Clr1_k_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clr1_k_phrase,Clr1_k_phrase::rhs2_Rphrase_}
+ }// end of reduce table
+};
+yacco2::State S4_Clr1_k_phrase = //State's vectored into symbol: "|?|"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Clr1_k_phrase,0,0,0};
+struct S5rtd_Clr1_k_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Clr1_k_phrase S5rt_Clr1_k_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clr1_k_phrase,Clr1_k_phrase::rhs1_Rphrase_}
+ }// end of reduce table
+};
+yacco2::State S5_Clr1_k_phrase = //State's vectored into symbol: "lr1-k-phrase"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Clr1_k_phrase,0,0,0};
+struct S6rtd_Clr1_k_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Clr1_k_phrase S6rt_Clr1_k_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Clr1_k_phrase,Clr1_k_phrase::rhs1_Rlr1_k_phrase_}
+ }// end of reduce table
+};
+yacco2::State S6_Clr1_k_phrase = //State's vectored into symbol: "Rphrase"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Clr1_k_phrase,0,0,0};
diff --git a/web/yacco2/compiler/grammars/makefile_APPLE b/web/yacco2/compiler/grammars/makefile_APPLE
new file mode 100644
index 0000000000..6cf65dd2be
--- /dev/null
+++ b/web/yacco2/compiler/grammars/makefile_APPLE
@@ -0,0 +1,86 @@
+# File: makefile_APPLE
+# Why: Creates the library of grammars for o2 compiler /compiler: libo2grammars.a
+# or gens the symbol table code and its pdf document
+# Ks: make sure u run GNU make: gmake or make depending on your system
+# Library placement:
+# Rlse: /usr/local/yacco2/compiler/o2qammars/lib/Release
+# Dbg: /usr/local/yacco2/compiler/o2gammars/lib/Debug
+# Genw: for the pdf file: yacco2/docs
+# for the yacco2_stbl h and cpp files: yacco2/compiler/grammars
+#
+# How to run: U must choose the label to execute: Rlse, Dbg
+# Rlse --- gen the fast version of library with no debug support
+# Dbg --- gen the debug version of library
+# Genw --- gen the pdf document and the cpp code
+# from cweb see www.tug.org for details on obtaining code
+# for the literate programming environment aka CWEB
+# and please join Tug. It is a marvalous FOSS
+# Note: U do not need to use Genw as *.cpp and pdf
+# document are included in the ``yacco2'' package
+#
+# Example: gen the debug version of the library
+# cd /usr/local/yacco2/compiler/grammars
+# make Dbg -f makefile_APPLE
+#
+O2 := /usr/local/yacco2
+#CC := /opt/local/bin/c++-mp-4.9 #gnu c++
+CC := clang++ #g++
+02_target_dir :=
+ifeq ($(MAKECMDGOALS),Rlse)
+O2_target_dir := Release
+Compile_opts := -c -pthread -arch x86_64
+else
+O2_target_dir := Debug
+Compile_opts := -g -c -pthread -arch x86_64
+endif
+
+###
+# Set up directories
+###
+Base_o2 := $(O2)
+O2_bin := $(Base_o2)/bin
+O2_eternals := $(Base_o2)/externals
+O2_stbl := $(Base_o2)/compiler/stbl
+O2_cc := $(Base_o2)/compiler/o2
+O2_docs := $(Base_o2)/docs
+O2_library := $(Base_o2)/library
+O2_library_lib := $(O2_library)/lib
+O2_lib_grms := $(O2_library)/grammars
+O2_cc_grms := $(Base_o2)/compiler/grammars
+O2_includes := -I'$(O2_cc_grms)' -I'$(O2_cc)' -I'$(O2_library)' -I'$(O2_lib_grms)'
+
+###
+# Objects to compile
+##
+Objects_to_compile:= $(patsubst %.cpp,%.o,$(wildcard *.cpp))
+
+###
+# Compile, link, and move O2 into bin account
+###
+Rlse: Compile Move_lib
+Dbg: Compile Move_lib
+Move_lib:
+ rm -f $(O2_cc_grms)/lib/$(O2_target_dir)/libo2grammars.a
+ libtool -static -arch_only x86_64 -o $(O2_cc_grms)/lib/$(O2_target_dir)/libo2grammars.a $(Objects_to_compile)
+ rm -f *.o
+
+Compile: $(Objects_to_compile)
+%.o: %.cpp
+ $(CC) $(Compile_opts) $(O2_includes) $< -o $@
+
+Genw:
+ cweave $(O2_stbl)/yacco2_stbl
+ pdftex yacco2_stbl
+ pdftops yacco2_stbl.pdf
+ mv yacco2_stbl.pdf $(O2_docs)
+ mv yacco2_stbl.ps $(O2_docs)
+ ctangle -l +e $(O2_stbl)/yacco2_stbl
+ cweave Lrk
+ pdftex Lrk
+ mv Lrk.pdf $(O2_docs)
+ rm yacco2_stbl.idx
+ rm yacco2_stbl.scn
+ rm yacco2_stbl.toc
+ rm yacco2_stbl.tex
+ rm yacco2_stbl.log
+ rm yacco2_stbl.c
diff --git a/web/yacco2/compiler/grammars/makefile_GNU b/web/yacco2/compiler/grammars/makefile_GNU
new file mode 100644
index 0000000000..6e07d9ef8c
--- /dev/null
+++ b/web/yacco2/compiler/grammars/makefile_GNU
@@ -0,0 +1,101 @@
+# File: makefile_GNU
+# Why: Creates the library of grammars for o2 compiler /compiler: libo2grammars.a
+# or gens the symbol table code and its pdf document
+# Ks: make sure u run GNU make: gmake or make depending on your system
+# Library placement:
+# Rlse: /usr/local/yacco2/compiler/o2qammars/lib/Release
+# Dbg: /usr/local/yacco2/compiler/o2gammars/lib/Debug
+# Genw: for the pdf file: yacco2/docs
+# for the yacco2_stbl h and cpp files: yacco2/compiler/grammars
+#
+# How to run: U must choose the label to execute: Rlse, Dbg
+# Rlse --- gen the fast version of library with no debug support
+# Dbg --- gen the debug version of library
+# Genw --- gen the pdf document and the cpp code
+# from cweb see www.tug.org for details on obtaining code
+# for the literate programming environment aka CWEB
+# and please join Tug. It is a marvalous FOSS
+# Note: U do not need to use Genw as *.cpp and pdf
+# document are included in the ``yacco2'' package
+# Notice: Some possible construction to be done
+# 1) Adjust base_dir variable if the ``yacco2'' package is moved elsewhere.
+# For example, if u installed the ``yacco2'' package in /opt/yacco2
+# Set the base_dir variable in this file to: base_dir = /opt/
+# The trailing / must be there or ugly things will happen.
+#
+# 2) Make sure u know where the ``ranlib'' utility resides on your system
+# If it's already defined in your ``bash'' ``PATH'' varable then
+# just space out the below ``RANLIB'' variable
+# RANLIB =
+# or set it to point to its residence as what this file has done
+#
+# Example: gen the debug version of the library
+# cd /usr/local//yacco2/compiler/grammars
+# make Dbg -f GNU_makefile
+#
+CC := g++
+02_target_dir :=
+ifeq ($(MAKECMDGOALS),Rlse)
+O2_target_dir := Release
+else
+O2_target_dir := Debug
+endif
+
+###
+# Set up c++ compiler and ld linker options
+###
+Rlse: Compile_opts := -c -o3 -pthread
+
+Dbg: Compile_opts := -g -c -pthread
+
+###
+# Set up directories
+###
+Base_o2 := $(O2)
+O2_bin := $(Base_o2)/bin
+O2_eternals := $(Base_o2)/externals
+O2_stbl := $(Base_o2)/compiler/stbl
+O2_docs := $(Base_o2)/docs
+O2_lib := $(Base_o2)/library
+O2_lib_grms := $(Base_o2)/library/grammars
+O2_cc_grms := $(Base_o2)/compiler/grammars
+O2_cc := $(Base_o2)/compiler/o2
+O2_includes := -I'$(O2_cc_grms)' -I'$(O2_cc)' -I'$(O2_lib)' -I'$(O2_lib_grms)'
+
+###
+# Objects to compile
+##
+Objects_to_compile:= $(patsubst %.cpp,%.o,$(wildcard *.cpp))
+
+###
+# Compile, link, and move O2 into bin account
+###
+
+Rlse: Compile Move_rlse_lib
+Move_rlse_lib:
+ rm -f $(O2_cc_grms)/lib/$(O2_target_dir)/libo2grammars.a
+ $(AR) rv $(O2_cc_grms)/lib/$(O2_target_dir)/libo2grammars.a $(Objects_to_compile)
+ rm -f *.o
+Dbg: Compile Move_dbg_lib
+Move_dbg_lib:
+ rm -f $(O2_cc_grms)/lib/$(O2_target_dir)/libo2grammars.a
+ $(AR) rv $(O2_cc_grms)/lib/$(O2_target_dir)/libo2grammars.a $(Objects_to_compile)
+ $(RANLIB) $(O2_cc_grms)/lib/$(O2_target_dir)/libo2grammars.a
+ rm -f *.o
+
+Compile: $(Objects_to_compile)
+%.o: %.cpp
+ $(CC) $(Compile_opts) $(O2_includes) $< -o $@
+
+
+Genw:
+ cweave $(O2_stbl)yacco2_stbl
+ ctangle -l +e $(O2_stbl)yacco2_stbl
+ pdftex yacco2_stbl
+ mv yacco2_stbl.pdf $(O2_docs)
+ rm yacco2_stbl.idx
+ rm yacco2_stbl.scn
+ rm yacco2_stbl.toc
+ rm yacco2_stbl.tex
+ rm yacco2_stbl.log
+ rm yacco2_stbl.c
diff --git a/web/yacco2/compiler/grammars/makefile_SOLARIS b/web/yacco2/compiler/grammars/makefile_SOLARIS
new file mode 100644
index 0000000000..51106cefbf
--- /dev/null
+++ b/web/yacco2/compiler/grammars/makefile_SOLARIS
@@ -0,0 +1,561 @@
+# File: makefile_SOLARIS
+# Why: Creates the library of grammars for o2 compiler /compiler: libo2grammars.a
+# or gens the symbol table code and its pdf document
+# Library placement:
+# Rlse: /usr/local/yacco2/compiler/grqammars/lib/Release
+# Dbg: /usr/local/yacco2/compiler/grqammars/lib/Debug
+# Genw: for the pdf file: yacco2/docs
+# for the yacco2_stbl h and cpp files: yacco2/compiler/grammars
+#
+# How to run: U must choose the label to execute: Rlse, Dbg
+# Rlse --- gen the fast version of library with no debug support
+# Dbg --- gen the debug version of library
+# Genw --- gen the pdf document and the cpp code
+# from cweb see www.tug.org for details on obtaining code
+# for the literate programming environment aka CWEB
+# File: GNU_makefile
+# Why: Creates the library of grammars for o2 compiler /compiler: libo2grammars.a
+# or gens the symbol table code and its pdf document
+# Library placement:
+# Rlse: /usr/local/yacco2/compiler/grqammars/lib/Release
+# Dbg: /usr/local/yacco2/compiler/grqammars/lib/Debug
+# Genw: for the pdf file: yacco2/docs
+# for the yacco2_stbl h and cpp files: yacco2/compiler/grammars
+#
+# How to run: U must choose the label to execute: Rlse, Dbg
+# Rlse --- gen the fast version of library with no debug support
+# Dbg --- gen the debug version of library
+# Genw --- gen the pdf document and the cpp code
+# from cweb see www.tug.org for details on obtaining code
+# for the literate programming environment aka CWEB
+# and please join Tug. It is a marvalous FOSS
+# Note: U do not need to use Genw as *.cpp and pdf
+# document are included in the ``yacco2'' package
+#
+# Example: gen the debug version of the library
+# cd /usr/local//yacco2/compiler/grammars
+# make Dbg -f Solaris_makefile
+#
+RANLIB:= /usr/ccs/bin/ranlib
+Rlse: BASICOPTS := -fast -c -m64 -lpthread
+Dbg: BASICOPTS := -c -m64 -lpthread -g
+
+
+o2_lib := $(O2)/library/
+o2_stbl := $(O2)/compiler/stbl/
+o2_docs := $(O2)/docs/
+o2_lib_grms := $(O2)/library/grammars/
+o2_grms := $(O2)/compiler/grammars/
+o2 := $(O2)/compiler/o2/
+O2_includes := -I'$(o2)' -I'$(o2_grms)' -I'$(o2_lib)' -I'$(o2_lib_grms)'
+files_to_cc = \
+$(o2_grms)T_enum_phrase.cpp \
+$(o2_grms)T_enum_phrase_th.cpp \
+$(o2_grms)T_enum_phrase_thsym.cpp \
+$(o2_grms)T_enum_phrase_thtbl.cpp \
+$(o2_grms)T_enum_phrasesym.cpp \
+$(o2_grms)T_enum_phrasetbl.cpp \
+$(o2_grms)angled_string.cpp \
+$(o2_grms)angled_stringsym.cpp \
+$(o2_grms)angled_stringtbl.cpp \
+$(o2_grms)bad_char_set.cpp \
+$(o2_grms)bad_char_setsym.cpp \
+$(o2_grms)bad_char_settbl.cpp \
+$(o2_grms)c_comments.cpp \
+$(o2_grms)c_commentssym.cpp \
+$(o2_grms)c_commentstbl.cpp \
+$(o2_grms)c_literal.cpp \
+$(o2_grms)c_literalsym.cpp \
+$(o2_grms)c_literaltbl.cpp \
+$(o2_grms)c_string.cpp \
+$(o2_grms)c_stringsym.cpp \
+$(o2_grms)c_stringtbl.cpp \
+$(o2_grms)cweave_T_sdc.cpp \
+$(o2_grms)cweave_T_sdcsym.cpp \
+$(o2_grms)cweave_T_sdctbl.cpp \
+$(o2_grms)cweave_fsm_sdc.cpp \
+$(o2_grms)cweave_fsm_sdcsym.cpp \
+$(o2_grms)cweave_fsm_sdctbl.cpp \
+$(o2_grms)cweave_lhs_sdc.cpp \
+$(o2_grms)cweave_lhs_sdcsym.cpp \
+$(o2_grms)cweave_lhs_sdctbl.cpp \
+$(o2_grms)cweave_sdc.cpp \
+$(o2_grms)cweave_sdcsym.cpp \
+$(o2_grms)cweave_sdctbl.cpp \
+$(o2_grms)cweb_comments.cpp \
+$(o2_grms)cweb_commentssym.cpp \
+$(o2_grms)cweb_commentstbl.cpp \
+$(o2_grms)cweb_or_c_k.cpp \
+$(o2_grms)cweb_or_c_ksym.cpp \
+$(o2_grms)cweb_or_c_ktbl.cpp \
+$(o2_grms)cweb_put_k_into_ph.cpp \
+$(o2_grms)cweb_put_k_into_phsym.cpp \
+$(o2_grms)cweb_put_k_into_phtbl.cpp \
+$(o2_grms)dbl_colon.cpp \
+$(o2_grms)dbl_colonsym.cpp \
+$(o2_grms)dbl_colontbl.cpp \
+$(o2_grms)enumerate_T_alphabet.cpp \
+$(o2_grms)enumerate_T_alphabetsym.cpp \
+$(o2_grms)enumerate_T_alphabettbl.cpp \
+$(o2_grms)enumerate_grammar.cpp \
+$(o2_grms)enumerate_grammarsym.cpp \
+$(o2_grms)enumerate_grammartbl.cpp \
+$(o2_grms)eol.cpp \
+$(o2_grms)eolsym.cpp \
+$(o2_grms)eoltbl.cpp \
+$(o2_grms)epsilon_rules.cpp \
+$(o2_grms)epsilon_rulessym.cpp \
+$(o2_grms)epsilon_rulestbl.cpp \
+$(o2_grms)err_symbols_ph.cpp \
+$(o2_grms)err_symbols_ph_th.cpp \
+$(o2_grms)err_symbols_ph_thsym.cpp \
+$(o2_grms)err_symbols_ph_thtbl.cpp \
+$(o2_grms)err_symbols_phsym.cpp \
+$(o2_grms)err_symbols_phtbl.cpp \
+$(o2_grms)esc_seq.cpp \
+$(o2_grms)esc_seqsym.cpp \
+$(o2_grms)esc_seqtbl.cpp \
+$(o2_grms)eval_phrases.cpp \
+$(o2_grms)eval_phrasessym.cpp \
+$(o2_grms)eval_phrasestbl.cpp \
+$(o2_grms)fsc_file.cpp \
+$(o2_grms)fsc_filesym.cpp \
+$(o2_grms)fsc_filetbl.cpp \
+$(o2_grms)fsm_class_phrase_th.cpp \
+$(o2_grms)fsm_class_phrase_thsym.cpp \
+$(o2_grms)fsm_class_phrase_thtbl.cpp \
+$(o2_grms)fsm_phrase.cpp \
+$(o2_grms)fsm_phrase_th.cpp \
+$(o2_grms)fsm_phrase_thsym.cpp \
+$(o2_grms)fsm_phrase_thtbl.cpp \
+$(o2_grms)fsm_phrasesym.cpp \
+$(o2_grms)fsm_phrasetbl.cpp \
+$(o2_grms)identifier.cpp \
+$(o2_grms)identifiersym.cpp \
+$(o2_grms)identifiertbl.cpp \
+$(o2_grms)int_no.cpp \
+$(o2_grms)int_nosym.cpp \
+$(o2_grms)int_notbl.cpp \
+$(o2_grms)la_expr.cpp \
+$(o2_grms)la_expr_lexical.cpp \
+$(o2_grms)la_expr_lexicalsym.cpp \
+$(o2_grms)la_expr_lexicaltbl.cpp \
+$(o2_grms)la_expr_src.cpp \
+$(o2_grms)la_expr_srcsym.cpp \
+$(o2_grms)la_expr_srctbl.cpp \
+$(o2_grms)la_exprsym.cpp \
+$(o2_grms)la_exprtbl.cpp \
+$(o2_grms)la_lrk_T.cpp \
+$(o2_grms)la_lrk_Tsym.cpp \
+$(o2_grms)la_lrk_Ttbl.cpp \
+$(o2_grms)link_cleanser.cpp \
+$(o2_grms)link_cleansersym.cpp \
+$(o2_grms)link_cleansertbl.cpp \
+$(o2_grms)linker_id.cpp \
+$(o2_grms)linker_idsym.cpp \
+$(o2_grms)linker_idtbl.cpp \
+$(o2_grms)linker_pass3.cpp \
+$(o2_grms)linker_pass3sym.cpp \
+$(o2_grms)linker_pass3tbl.cpp \
+$(o2_grms)linker_preamble_code.cpp \
+$(o2_grms)linker_preamble_codesym.cpp \
+$(o2_grms)linker_preamble_codetbl.cpp \
+$(o2_grms)lint_balls.cpp \
+$(o2_grms)lint_ballssym.cpp \
+$(o2_grms)lint_ballstbl.cpp \
+$(o2_grms)lr1_k_phrase.cpp \
+$(o2_grms)lr1_k_phrase_th.cpp \
+$(o2_grms)lr1_k_phrase_thsym.cpp \
+$(o2_grms)lr1_k_phrase_thtbl.cpp \
+$(o2_grms)lr1_k_phrasesym.cpp \
+$(o2_grms)lr1_k_phrasetbl.cpp \
+$(o2_grms)mpost_output.cpp \
+$(o2_grms)mpost_outputsym.cpp \
+$(o2_grms)mpost_outputtbl.cpp \
+$(o2_grms)o2_code_end.cpp \
+$(o2_grms)o2_code_endsym.cpp \
+$(o2_grms)o2_code_endtbl.cpp \
+$(o2_grms)o2_err_hdlr.cpp \
+$(o2_grms)o2_err_hdlrsym.cpp \
+$(o2_grms)o2_err_hdlrtbl.cpp \
+$(o2_grms)o2_lcl_opt.cpp \
+$(o2_grms)o2_lcl_opts.cpp \
+$(o2_grms)o2_lcl_optssym.cpp \
+$(o2_grms)o2_lcl_optstbl.cpp \
+$(o2_grms)o2_lcl_optsym.cpp \
+$(o2_grms)o2_lcl_opttbl.cpp \
+$(o2_grms)o2_linker_opts.cpp \
+$(o2_grms)o2_linker_optssym.cpp \
+$(o2_grms)o2_linker_optstbl.cpp \
+$(o2_grms)o2_sdc.cpp \
+$(o2_grms)o2_sdcsym.cpp \
+$(o2_grms)o2_sdctbl.cpp \
+$(o2_grms)parallel_monitor_ph.cpp \
+$(o2_grms)parallel_monitor_phsym.cpp \
+$(o2_grms)parallel_monitor_phtbl.cpp \
+$(o2_grms)parallel_oper.cpp \
+$(o2_grms)parallel_opersym.cpp \
+$(o2_grms)parallel_opertbl.cpp \
+$(o2_grms)parallel_parser_ph_th.cpp \
+$(o2_grms)parallel_parser_ph_thsym.cpp \
+$(o2_grms)parallel_parser_ph_thtbl.cpp \
+$(o2_grms)parallel_parser_phrase.cpp \
+$(o2_grms)parallel_parser_phrasesym.cpp \
+$(o2_grms)parallel_parser_phrasetbl.cpp \
+$(o2_grms)pass3.cpp \
+$(o2_grms)pass3sym.cpp \
+$(o2_grms)pass3tbl.cpp \
+$(o2_grms)prefile_include.cpp \
+$(o2_grms)prefile_includesym.cpp \
+$(o2_grms)prefile_includetbl.cpp \
+$(o2_grms)prt_fs_of_rules.cpp \
+$(o2_grms)prt_fs_of_rulessym.cpp \
+$(o2_grms)prt_fs_of_rulestbl.cpp \
+$(o2_grms)prt_sr_elements.cpp \
+$(o2_grms)prt_sr_elementssym.cpp \
+$(o2_grms)prt_sr_elementstbl.cpp \
+$(o2_grms)prt_xrefs_docs.cpp \
+$(o2_grms)prt_xrefs_docssym.cpp \
+$(o2_grms)prt_xrefs_docstbl.cpp \
+$(o2_grms)rc_phrase.cpp \
+$(o2_grms)rc_phrase_th.cpp \
+$(o2_grms)rc_phrase_thsym.cpp \
+$(o2_grms)rc_phrase_thtbl.cpp \
+$(o2_grms)rc_phrasesym.cpp \
+$(o2_grms)rc_phrasetbl.cpp \
+$(o2_grms)rhs_bnd.cpp \
+$(o2_grms)rhs_bndsym.cpp \
+$(o2_grms)rhs_bndtbl.cpp \
+$(o2_grms)rhs_component.cpp \
+$(o2_grms)rhs_componentsym.cpp \
+$(o2_grms)rhs_componenttbl.cpp \
+$(o2_grms)rtn_component.cpp \
+$(o2_grms)rtn_componentsym.cpp \
+$(o2_grms)rtn_componenttbl.cpp \
+$(o2_grms)rule_def_phrase.cpp \
+$(o2_grms)rule_def_phrasesym.cpp \
+$(o2_grms)rule_def_phrasetbl.cpp \
+$(o2_grms)rule_lhs_phrase.cpp \
+$(o2_grms)rule_lhs_phrasesym.cpp \
+$(o2_grms)rule_lhs_phrasetbl.cpp \
+$(o2_grms)rules_phrase.cpp \
+$(o2_grms)rules_phrase_th.cpp \
+$(o2_grms)rules_phrase_thsym.cpp \
+$(o2_grms)rules_phrase_thtbl.cpp \
+$(o2_grms)rules_phrasesym.cpp \
+$(o2_grms)rules_phrasetbl.cpp \
+$(o2_grms)rules_use_cnt.cpp \
+$(o2_grms)rules_use_cntsym.cpp \
+$(o2_grms)rules_use_cnttbl.cpp \
+$(o2_grms)subrule_def.cpp \
+$(o2_grms)subrule_defsym.cpp \
+$(o2_grms)subrule_deftbl.cpp \
+$(o2_grms)subrule_vector.cpp \
+$(o2_grms)subrule_vectorsym.cpp \
+$(o2_grms)subrule_vectortbl.cpp \
+$(o2_grms)subrules_phrase.cpp \
+$(o2_grms)subrules_phrasesym.cpp \
+$(o2_grms)subrules_phrasetbl.cpp \
+$(o2_grms)t_alphabet.cpp \
+$(o2_grms)t_alphabetsym.cpp \
+$(o2_grms)t_alphabettbl.cpp \
+$(o2_grms)t_def_delabort_tags.cpp \
+$(o2_grms)t_def_delabort_tagssym.cpp \
+$(o2_grms)t_def_delabort_tagstbl.cpp \
+$(o2_grms)term_def_ph.cpp \
+$(o2_grms)term_def_phsym.cpp \
+$(o2_grms)term_def_phtbl.cpp \
+$(o2_grms)terminal_def_symclass.cpp \
+$(o2_grms)terminal_def_symclasssym.cpp \
+$(o2_grms)terminal_def_symclasstbl.cpp \
+$(o2_grms)terminals_phrase.cpp \
+$(o2_grms)terminals_phrase_th.cpp \
+$(o2_grms)terminals_phrase_thsym.cpp \
+$(o2_grms)terminals_phrase_thtbl.cpp \
+$(o2_grms)terminals_phrasesym.cpp \
+$(o2_grms)terminals_phrasetbl.cpp \
+$(o2_grms)test_components.cpp \
+$(o2_grms)test_componentssym.cpp \
+$(o2_grms)test_componentstbl.cpp \
+$(o2_grms)unq_str.cpp \
+$(o2_grms)unq_strsym.cpp \
+$(o2_grms)unq_strtbl.cpp \
+$(o2_grms)ws.cpp \
+$(o2_grms)wssym.cpp \
+$(o2_grms)wstbl.cpp \
+$(o2_grms)xc_str.cpp \
+$(o2_grms)xc_strsym.cpp \
+$(o2_grms)xc_strtbl.cpp \
+$(o2_grms)yacco2_err_symbols.cpp \
+$(o2_grms)yacco2_fsc.cpp \
+$(o2_grms)yacco2_stbl.cpp \
+$(o2_grms)yacco2_terminals.cpp
+files_to_o = $(files_to_cc:.cpp=.o)
+Rlse: Compile Rlse_lib
+Rlse_lib:
+ rm -f $(o2_grammars)lib/Release/libo2grammars.a
+ $(AR) rv $(o2_base_dir)lib/Release/libo2grammars.a $(files_to_o)
+ $(RANLIB) $(o2_base_dir)lib/Release/libo2grammars.a
+ rm -f *.o
+Dbg: Compile Dbg_lib
+Dbg_lib:
+ rm -f $(o2_grammars)lib/Debug/libo2grammars.a
+ $(AR) rv $(o2_base_dir)lib/Debug/libo2grammars.a $(files_to_o)
+ $(RANLIB) $(o2_base_dir)lib/Debug/libo2grammars.a
+ rm -f *.o
+
+Compile: $(files_to_o)
+$(o2_grms)T_enum_phrase.o: $(o2_grms)T_enum_phrase.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)T_enum_phrase.cpp -o $@
+$(o2_grms)T_enum_phrase_th.o: $(o2_grms)T_enum_phrase_th.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)T_enum_phrase_th.cpp -o $@
+$(o2_grms)T_enum_phrase_thsym.o: $(o2_grms)T_enum_phrase_thsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)T_enum_phrase_thsym.cpp -o $@
+$(o2_grms)T_enum_phrase_thtbl.o: $(o2_grms)T_enum_phrase_thtbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)T_enum_phrase_thtbl.cpp -o $@
+$(o2_grms)T_enum_phrasesym.o: $(o2_grms)T_enum_phrasesym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)T_enum_phrasesym.cpp -o $@
+$(o2_grms)T_enum_phrasetbl.o: $(o2_grms)T_enum_phrasetbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)T_enum_phrasetbl.cpp -o $@
+$(o2_grms)angled_string.o: $(o2_grms)angled_string.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)angled_string.cpp -o $@
+$(o2_grms)angled_stringsym.o: $(o2_grms)angled_stringsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)angled_stringsym.cpp -o $@
+$(o2_grms)angled_stringtbl.o: $(o2_grms)angled_stringtbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)angled_stringtbl.cpp -o $@
+$(o2_grms)bad_char_set.o: $(o2_grms)bad_char_set.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)bad_char_set.cpp -o $@
+$(o2_grms)bad_char_setsym.o: $(o2_grms)bad_char_setsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)bad_char_setsym.cpp -o $@
+$(o2_grms)bad_char_settbl.o: $(o2_grms)bad_char_settbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)bad_char_settbl.cpp -o $@
+$(o2_grms)c_comments.o: $(o2_grms)c_comments.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)c_comments.cpp -o $@
+$(o2_grms)c_commentssym.o: $(o2_grms)c_commentssym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)c_commentssym.cpp -o $@
+$(o2_grms)c_commentstbl.o: $(o2_grms)c_commentstbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)c_commentstbl.cpp -o $@
+$(o2_grms)c_literal.o: $(o2_grms)c_literal.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)c_literal.cpp -o $@
+$(o2_grms)c_literalsym.o: $(o2_grms)c_literalsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)c_literalsym.cpp -o $@
+$(o2_grms)c_literaltbl.o: $(o2_grms)c_literaltbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)c_literaltbl.cpp -o $@
+$(o2_grms)c_string.o: $(o2_grms)c_string.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)c_string.cpp -o $@
+$(o2_grms)c_stringsym.o: $(o2_grms)c_stringsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)c_stringsym.cpp -o $@
+$(o2_grms)c_stringtbl.o: $(o2_grms)c_stringtbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)c_stringtbl.cpp -o $@
+$(o2_grms)cweave_T_sdc.o: $(o2_grms)cweave_T_sdc.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)cweave_T_sdc.cpp -o $@
+$(o2_grms)cweave_T_sdcsym.o: $(o2_grms)cweave_T_sdcsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)cweave_T_sdcsym.cpp -o $@
+$(o2_grms)cweave_T_sdctbl.o: $(o2_grms)cweave_T_sdctbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)cweave_T_sdctbl.cpp -o $@
+$(o2_grms)cweave_fsm_sdc.o: $(o2_grms)cweave_fsm_sdc.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)cweave_fsm_sdc.cpp -o $@
+$(o2_grms)cweave_fsm_sdcsym.o: $(o2_grms)cweave_fsm_sdcsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)cweave_fsm_sdcsym.cpp -o $@
+$(o2_grms)cweave_fsm_sdctbl.o: $(o2_grms)cweave_fsm_sdctbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)cweave_fsm_sdctbl.cpp -o $@
+$(o2_grms)cweave_lhs_sdc.o: $(o2_grms)cweave_lhs_sdc.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)cweave_lhs_sdc.cpp -o $@
+$(o2_grms)cweave_lhs_sdcsym.o: $(o2_grms)cweave_lhs_sdcsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)cweave_lhs_sdcsym.cpp -o $@
+$(o2_grms)cweave_lhs_sdctbl.o: $(o2_grms)cweave_lhs_sdctbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)cweave_lhs_sdctbl.cpp -o $@
+$(o2_grms)cweave_sdc.o: $(o2_grms)cweave_sdc.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)cweave_sdc.cpp -o $@
+$(o2_grms)cweave_sdcsym.o: $(o2_grms)cweave_sdcsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)cweave_sdcsym.cpp -o $@
+$(o2_grms)cweave_sdctbl.o: $(o2_grms)cweave_sdctbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)cweave_sdctbl.cpp -o $@
+$(o2_grms)cweb_comments.o: $(o2_grms)cweb_comments.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)cweb_comments.cpp -o $@
+$(o2_grms)cweb_commentssym.o: $(o2_grms)cweb_commentssym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)cweb_commentssym.cpp -o $@
+$(o2_grms)cweb_commentstbl.o: $(o2_grms)cweb_commentstbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)cweb_commentstbl.cpp -o $@
+$(o2_grms)cweb_or_c_k.o: $(o2_grms)cweb_or_c_k.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)cweb_or_c_k.cpp -o $@
+$(o2_grms)cweb_or_c_ksym.o: $(o2_grms)cweb_or_c_ksym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)cweb_or_c_ksym.cpp -o $@
+$(o2_grms)cweb_or_c_ktbl.o: $(o2_grms)cweb_or_c_ktbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)cweb_or_c_ktbl.cpp -o $@
+$(o2_grms)cweb_put_k_into_ph.o: $(o2_grms)cweb_put_k_into_ph.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)cweb_put_k_into_ph.cpp -o $@
+$(o2_grms)cweb_put_k_into_phsym.o: $(o2_grms)cweb_put_k_into_phsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)cweb_put_k_into_phsym.cpp -o $@
+$(o2_grms)cweb_put_k_into_phtbl.o: $(o2_grms)cweb_put_k_into_phtbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)cweb_put_k_into_phtbl.cpp -o $@
+$(o2_grms)dbl_colon.o: $(o2_grms)dbl_colon.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)dbl_colon.cpp -o $@
+$(o2_grms)dbl_colonsym.o: $(o2_grms)dbl_colonsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)dbl_colonsym.cpp -o $@
+$(o2_grms)dbl_colontbl.o: $(o2_grms)dbl_colontbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)dbl_colontbl.cpp -o $@
+$(o2_grms)enumerate_T_alphabet.o: $(o2_grms)enumerate_T_alphabet.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)enumerate_T_alphabet.cpp -o $@
+$(o2_grms)enumerate_T_alphabetsym.o: $(o2_grms)enumerate_T_alphabetsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)enumerate_T_alphabetsym.cpp -o $@
+$(o2_grms)enumerate_T_alphabettbl.o: $(o2_grms)enumerate_T_alphabettbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)enumerate_T_alphabettbl.cpp -o $@
+$(o2_grms)enumerate_grammar.o: $(o2_grms)enumerate_grammar.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)enumerate_grammar.cpp -o $@
+$(o2_grms)enumerate_grammarsym.o: $(o2_grms)enumerate_grammarsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)enumerate_grammarsym.cpp -o $@
+$(o2_grms)enumerate_grammartbl.o: $(o2_grms)enumerate_grammartbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)enumerate_grammartbl.cpp -o $@
+$(o2_grms)eol.o: $(o2_grms)eol.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)eol.cpp -o $@
+$(o2_grms)eolsym.o: $(o2_grms)eolsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)eolsym.cpp -o $@
+$(o2_grms)eoltbl.o: $(o2_grms)eoltbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)eoltbl.cpp -o $@
+$(o2_grms)epsilon_rules.o: $(o2_grms)epsilon_rules.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)epsilon_rules.cpp -o $@
+$(o2_grms)epsilon_rulessym.o: $(o2_grms)epsilon_rulessym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)epsilon_rulessym.cpp -o $@
+$(o2_grms)epsilon_rulestbl.o: $(o2_grms)epsilon_rulestbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)epsilon_rulestbl.cpp -o $@
+$(o2_grms)err_symbols_ph.o: $(o2_grms)err_symbols_ph.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)err_symbols_ph.cpp -o $@
+$(o2_grms)err_symbols_ph_th.o: $(o2_grms)err_symbols_ph_th.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)err_symbols_ph_th.cpp -o $@
+$(o2_grms)err_symbols_ph_thsym.o: $(o2_grms)err_symbols_ph_thsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)err_symbols_ph_thsym.cpp -o $@
+$(o2_grms)err_symbols_ph_thtbl.o: $(o2_grms)err_symbols_ph_thtbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)err_symbols_ph_thtbl.cpp -o $@
+$(o2_grms)err_symbols_phsym.o: $(o2_grms)err_symbols_phsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)err_symbols_phsym.cpp -o $@
+$(o2_grms)err_symbols_phtbl.o: $(o2_grms)err_symbols_phtbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)err_symbols_phtbl.cpp -o $@
+$(o2_grms)esc_seq.o: $(o2_grms)esc_seq.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)esc_seq.cpp -o $@
+$(o2_grms)esc_seqsym.o: $(o2_grms)esc_seqsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)esc_seqsym.cpp -o $@
+$(o2_grms)esc_seqtbl.o: $(o2_grms)esc_seqtbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)esc_seqtbl.cpp -o $@
+$(o2_grms)eval_phrases.o: $(o2_grms)eval_phrases.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)eval_phrases.cpp -o $@
+$(o2_grms)eval_phrasessym.o: $(o2_grms)eval_phrasessym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)eval_phrasessym.cpp -o $@
+$(o2_grms)eval_phrasestbl.o: $(o2_grms)eval_phrasestbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)eval_phrasestbl.cpp -o $@
+$(o2_grms)fsc_file.o: $(o2_grms)fsc_file.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)fsc_file.cpp -o $@
+$(o2_grms)fsc_filesym.o: $(o2_grms)fsc_filesym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)fsc_filesym.cpp -o $@
+$(o2_grms)fsc_filetbl.o: $(o2_grms)fsc_filetbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)fsc_filetbl.cpp -o $@
+$(o2_grms)fsm_class_phrase_th.o: $(o2_grms)fsm_class_phrase_th.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)fsm_class_phrase_th.cpp -o $@
+$(o2_grms)fsm_class_phrase_thsym.o: $(o2_grms)fsm_class_phrase_thsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)fsm_class_phrase_thsym.cpp -o $@
+$(o2_grms)fsm_class_phrase_thtbl.o: $(o2_grms)fsm_class_phrase_thtbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)fsm_class_phrase_thtbl.cpp -o $@
+$(o2_grms)fsm_phrase.o: $(o2_grms)fsm_phrase.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)fsm_phrase.cpp -o $@
+$(o2_grms)fsm_phrase_th.o: $(o2_grms)fsm_phrase_th.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)fsm_phrase_th.cpp -o $@
+$(o2_grms)fsm_phrase_thsym.o: $(o2_grms)fsm_phrase_thsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)fsm_phrase_thsym.cpp -o $@
+$(o2_grms)fsm_phrase_thtbl.o: $(o2_grms)fsm_phrase_thtbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)fsm_phrase_thtbl.cpp -o $@
+$(o2_grms)fsm_phrasesym.o: $(o2_grms)fsm_phrasesym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)fsm_phrasesym.cpp -o $@
+$(o2_grms)fsm_phrasetbl.o: $(o2_grms)fsm_phrasetbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)fsm_phrasetbl.cpp -o $@
+$(o2_grms)identifier.o: $(o2_grms)identifier.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)identifier.cpp -o $@
+$(o2_grms)identifiersym.o: $(o2_grms)identifiersym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)identifiersym.cpp -o $@
+$(o2_grms)identifiertbl.o: $(o2_grms)identifiertbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)identifiertbl.cpp -o $@
+$(o2_grms)int_no.o: $(o2_grms)int_no.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)int_no.cpp -o $@
+$(o2_grms)int_nosym.o: $(o2_grms)int_nosym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)int_nosym.cpp -o $@
+$(o2_grms)int_notbl.o: $(o2_grms)int_notbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)int_notbl.cpp -o $@
+$(o2_grms)la_expr.o: $(o2_grms)la_expr.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)la_expr.cpp -o $@
+$(o2_grms)la_expr_lexical.o: $(o2_grms)la_expr_lexical.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)la_expr_lexical.cpp -o $@
+$(o2_grms)la_expr_lexicalsym.o: $(o2_grms)la_expr_lexicalsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)la_expr_lexicalsym.cpp -o $@
+$(o2_grms)la_expr_lexicaltbl.o: $(o2_grms)la_expr_lexicaltbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)la_expr_lexicaltbl.cpp -o $@
+$(o2_grms)la_expr_src.o: $(o2_grms)la_expr_src.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)la_expr_src.cpp -o $@
+$(o2_grms)la_expr_srcsym.o: $(o2_grms)la_expr_srcsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)la_expr_srcsym.cpp -o $@
+$(o2_grms)la_expr_srctbl.o: $(o2_grms)la_expr_srctbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)la_expr_srctbl.cpp -o $@
+$(o2_grms)la_exprsym.o: $(o2_grms)la_exprsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)la_exprsym.cpp -o $@
+$(o2_grms)la_exprtbl.o: $(o2_grms)la_exprtbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)la_exprtbl.cpp -o $@
+$(o2_grms)la_lrk_T.o: $(o2_grms)la_lrk_T.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)la_lrk_T.cpp -o $@
+$(o2_grms)la_lrk_Tsym.o: $(o2_grms)la_lrk_Tsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)la_lrk_Tsym.cpp -o $@
+$(o2_grms)la_lrk_Ttbl.o: $(o2_grms)la_lrk_Ttbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)la_lrk_Ttbl.cpp -o $@
+$(o2_grms)link_cleanser.o: $(o2_grms)link_cleanser.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)link_cleanser.cpp -o $@
+$(o2_grms)link_cleansersym.o: $(o2_grms)link_cleansersym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)link_cleansersym.cpp -o $@
+$(o2_grms)link_cleansertbl.o: $(o2_grms)link_cleansertbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)link_cleansertbl.cpp -o $@
+$(o2_grms)linker_id.o: $(o2_grms)linker_id.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)linker_id.cpp -o $@
+$(o2_grms)linker_idsym.o: $(o2_grms)linker_idsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)linker_idsym.cpp -o $@
+$(o2_grms)linker_idtbl.o: $(o2_grms)linker_idtbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)linker_idtbl.cpp -o $@
+$(o2_grms)linker_pass3.o: $(o2_grms)linker_pass3.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)linker_pass3.cpp -o $@
+$(o2_grms)linker_pass3sym.o: $(o2_grms)linker_pass3sym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)linker_pass3sym.cpp -o $@
+$(o2_grms)linker_pass3tbl.o: $(o2_grms)linker_pass3tbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)linker_pass3tbl.cpp -o $@
+$(o2_grms)linker_preamble_code.o: $(o2_grms)linker_preamble_code.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)linker_preamble_code.cpp -o $@
+$(o2_grms)linker_preamble_codesym.o: $(o2_grms)linker_preamble_codesym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)linker_preamble_codesym.cpp -o $@
+$(o2_grms)linker_preamble_codetbl.o: $(o2_grms)linker_preamble_codetbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)linker_preamble_codetbl.cpp -o $@
+$(o2_grms)lint_balls.o: $(o2_grms)lint_balls.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)lint_balls.cpp -o $@
+$(o2_grms)lint_ballssym.o: $(o2_grms)lint_ballssym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)lint_ballssym.cpp -o $@
+$(o2_grms)lint_ballstbl.o: $(o2_grms)lint_ballstbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)lint_ballstbl.cpp -o $@
+$(o2_grms)lr1_k_phrase.o: $(o2_grms)lr1_k_phrase.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)lr1_k_phrase.cpp -o $@
+$(o2_grms)lr1_k_phrase_th.o: $(o2_grms)lr1_k_phrase_th.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)lr1_k_phrase_th.cpp -o $@
+$(o2_grms)lr1_k_phrase_thsym.o: $(o2_grms)lr1_k_phrase_thsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)lr1_k_phrase_thsym.cpp -o $@
+$(o2_grms)lr1_k_phrase_thtbl.o: $(o2_grms)lr1_k_phrase_thtbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)lr1_k_phrase_thtbl.cpp -o $@
+$(o2_grms)lr1_k_phrasesym.o: $(o2_grms)lr1_k_phrasesym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)lr1_k_phrasesym.cpp -o $@
+$(o2_grms)lr1_k_phrasetbl.o: $(o2_grms)lr1_k_phrasetbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)lr1_k_phrasetbl.cpp -o $@
+$(o2_grms)mpost_output.o: $(o2_grms)mpost_output.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)mpost_output.cpp -o $@
+$(o2_grms)mpost_outputsym.o: $(o2_grms)mpost_outputsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)mpost_outputsym.cpp -o $@
+$(o2_grms)mpost_outputtbl.o: $(o2_grms)mpost_outputtbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)mpost_outputtbl.cpp -o $@
+$(o2_grms)o2_code_end.o: $(o2_grms)o2_code_end.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)o2_code_end.cpp -o $@
+$(o2_grms)o2_code_endsym.o: $(o2_grms)o2_code_endsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)o2_code_endsym.cpp -o $@
+$(o2_grms)o2_code_endtbl.o: $(o2_grms)o2_code_endtbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)o2_code_endtbl.cpp -o $@
+$(o2_grms)o2_err_hdlr.o: $(o2_grms)o2_err_hdlr.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)o2_err_hdlr.cpp -o $@
+$(o2_grms)o2_err_hdlrsym.o: $(o2_grms)o2_err_hdlrsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)o2_err_hdlrsym.cpp -o $@
+$(o2_grms)o2_err_hdlrtbl.o: $(o2_grms)o2_err_hdlrtbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)o2_err_hdlrtbl.cpp -o $@
+$(o2_grms)o2_lcl_opt.o: $(o2_grms)o2_lcl_opt.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)o2_lcl_opt.cpp -o $@
+$(o2_grms)o2_lcl_opts.o: $(o2_grms)o2_lcl_opts.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)o2_lcl_opts.cpp -o $@
+$(o2_grms)o2_lcl_optssym.o: $(o2_grms)o2_lcl_optssym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)o2_lcl_optssym.cpp -o $@
+$(o2_grms)o2_lcl_optstbl.o: $(o2_grms)o2_lcl_optstbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)o2_lcl_optstbl.cpp -o $@
+$(o2_grms)o2_lcl_optsym.o: $(o2_grms)o2_lcl_optsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)o2_lcl_optsym.cpp -o $@
+$(o2_grms)o2_lcl_opttbl.o: $(o2_grms)o2_lcl_opttbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)o2_lcl_opttbl.cpp -o $@
+$(o2_grms)o2_linker_opts.o: $(o2_grms)o2_linker_opts.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)o2_linker_opts.cpp -o $@
+$(o2_grms)o2_linker_optssym.o: $(o2_grms)o2_linker_optssym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)o2_linker_optssym.cpp -o $@
+$(o2_grms)o2_linker_optstbl.o: $(o2_grms)o2_linker_optstbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)o2_linker_optstbl.cpp -o $@
+$(o2_grms)o2_sdc.o: $(o2_grms)o2_sdc.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)o2_sdc.cpp -o $@
+$(o2_grms)o2_sdcsym.o: $(o2_grms)o2_sdcsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)o2_sdcsym.cpp -o $@
+$(o2_grms)o2_sdctbl.o: $(o2_grms)o2_sdctbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)o2_sdctbl.cpp -o $@
+$(o2_grms)parallel_monitor_ph.o: $(o2_grms)parallel_monitor_ph.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)parallel_monitor_ph.cpp -o $@
+$(o2_grms)parallel_monitor_phsym.o: $(o2_grms)parallel_monitor_phsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)parallel_monitor_phsym.cpp -o $@
+$(o2_grms)parallel_monitor_phtbl.o: $(o2_grms)parallel_monitor_phtbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)parallel_monitor_phtbl.cpp -o $@
+$(o2_grms)parallel_oper.o: $(o2_grms)parallel_oper.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)parallel_oper.cpp -o $@
+$(o2_grms)parallel_opersym.o: $(o2_grms)parallel_opersym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)parallel_opersym.cpp -o $@
+$(o2_grms)parallel_opertbl.o: $(o2_grms)parallel_opertbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)parallel_opertbl.cpp -o $@
+$(o2_grms)parallel_parser_ph_th.o: $(o2_grms)parallel_parser_ph_th.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)parallel_parser_ph_th.cpp -o $@
+$(o2_grms)parallel_parser_ph_thsym.o: $(o2_grms)parallel_parser_ph_thsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)parallel_parser_ph_thsym.cpp -o $@
+$(o2_grms)parallel_parser_ph_thtbl.o: $(o2_grms)parallel_parser_ph_thtbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)parallel_parser_ph_thtbl.cpp -o $@
+$(o2_grms)parallel_parser_phrase.o: $(o2_grms)parallel_parser_phrase.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)parallel_parser_phrase.cpp -o $@
+$(o2_grms)parallel_parser_phrasesym.o: $(o2_grms)parallel_parser_phrasesym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)parallel_parser_phrasesym.cpp -o $@
+$(o2_grms)parallel_parser_phrasetbl.o: $(o2_grms)parallel_parser_phrasetbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)parallel_parser_phrasetbl.cpp -o $@
+$(o2_grms)pass3.o: $(o2_grms)pass3.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)pass3.cpp -o $@
+$(o2_grms)pass3sym.o: $(o2_grms)pass3sym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)pass3sym.cpp -o $@
+$(o2_grms)pass3tbl.o: $(o2_grms)pass3tbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)pass3tbl.cpp -o $@
+$(o2_grms)prefile_include.o: $(o2_grms)prefile_include.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)prefile_include.cpp -o $@
+$(o2_grms)prefile_includesym.o: $(o2_grms)prefile_includesym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)prefile_includesym.cpp -o $@
+$(o2_grms)prefile_includetbl.o: $(o2_grms)prefile_includetbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)prefile_includetbl.cpp -o $@
+$(o2_grms)prt_fs_of_rules.o: $(o2_grms)prt_fs_of_rules.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)prt_fs_of_rules.cpp -o $@
+$(o2_grms)prt_fs_of_rulessym.o: $(o2_grms)prt_fs_of_rulessym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)prt_fs_of_rulessym.cpp -o $@
+$(o2_grms)prt_fs_of_rulestbl.o: $(o2_grms)prt_fs_of_rulestbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)prt_fs_of_rulestbl.cpp -o $@
+$(o2_grms)prt_sr_elements.o: $(o2_grms)prt_sr_elements.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)prt_sr_elements.cpp -o $@
+$(o2_grms)prt_sr_elementssym.o: $(o2_grms)prt_sr_elementssym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)prt_sr_elementssym.cpp -o $@
+$(o2_grms)prt_sr_elementstbl.o: $(o2_grms)prt_sr_elementstbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)prt_sr_elementstbl.cpp -o $@
+$(o2_grms)prt_xrefs_docs.o: $(o2_grms)prt_xrefs_docs.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)prt_xrefs_docs.cpp -o $@
+$(o2_grms)prt_xrefs_docssym.o: $(o2_grms)prt_xrefs_docssym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)prt_xrefs_docssym.cpp -o $@
+$(o2_grms)prt_xrefs_docstbl.o: $(o2_grms)prt_xrefs_docstbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)prt_xrefs_docstbl.cpp -o $@
+$(o2_grms)rc_phrase.o: $(o2_grms)rc_phrase.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)rc_phrase.cpp -o $@
+$(o2_grms)rc_phrase_th.o: $(o2_grms)rc_phrase_th.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)rc_phrase_th.cpp -o $@
+$(o2_grms)rc_phrase_thsym.o: $(o2_grms)rc_phrase_thsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)rc_phrase_thsym.cpp -o $@
+$(o2_grms)rc_phrase_thtbl.o: $(o2_grms)rc_phrase_thtbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)rc_phrase_thtbl.cpp -o $@
+$(o2_grms)rc_phrasesym.o: $(o2_grms)rc_phrasesym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)rc_phrasesym.cpp -o $@
+$(o2_grms)rc_phrasetbl.o: $(o2_grms)rc_phrasetbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)rc_phrasetbl.cpp -o $@
+$(o2_grms)rhs_bnd.o: $(o2_grms)rhs_bnd.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)rhs_bnd.cpp -o $@
+$(o2_grms)rhs_bndsym.o: $(o2_grms)rhs_bndsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)rhs_bndsym.cpp -o $@
+$(o2_grms)rhs_bndtbl.o: $(o2_grms)rhs_bndtbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)rhs_bndtbl.cpp -o $@
+$(o2_grms)rhs_component.o: $(o2_grms)rhs_component.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)rhs_component.cpp -o $@
+$(o2_grms)rhs_componentsym.o: $(o2_grms)rhs_componentsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)rhs_componentsym.cpp -o $@
+$(o2_grms)rhs_componenttbl.o: $(o2_grms)rhs_componenttbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)rhs_componenttbl.cpp -o $@
+$(o2_grms)rtn_component.o: $(o2_grms)rtn_component.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)rtn_component.cpp -o $@
+$(o2_grms)rtn_componentsym.o: $(o2_grms)rtn_componentsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)rtn_componentsym.cpp -o $@
+$(o2_grms)rtn_componenttbl.o: $(o2_grms)rtn_componenttbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)rtn_componenttbl.cpp -o $@
+$(o2_grms)rule_def_phrase.o: $(o2_grms)rule_def_phrase.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)rule_def_phrase.cpp -o $@
+$(o2_grms)rule_def_phrasesym.o: $(o2_grms)rule_def_phrasesym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)rule_def_phrasesym.cpp -o $@
+$(o2_grms)rule_def_phrasetbl.o: $(o2_grms)rule_def_phrasetbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)rule_def_phrasetbl.cpp -o $@
+$(o2_grms)rule_lhs_phrase.o: $(o2_grms)rule_lhs_phrase.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)rule_lhs_phrase.cpp -o $@
+$(o2_grms)rule_lhs_phrasesym.o: $(o2_grms)rule_lhs_phrasesym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)rule_lhs_phrasesym.cpp -o $@
+$(o2_grms)rule_lhs_phrasetbl.o: $(o2_grms)rule_lhs_phrasetbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)rule_lhs_phrasetbl.cpp -o $@
+$(o2_grms)rules_phrase.o: $(o2_grms)rules_phrase.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)rules_phrase.cpp -o $@
+$(o2_grms)rules_phrase_th.o: $(o2_grms)rules_phrase_th.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)rules_phrase_th.cpp -o $@
+$(o2_grms)rules_phrase_thsym.o: $(o2_grms)rules_phrase_thsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)rules_phrase_thsym.cpp -o $@
+$(o2_grms)rules_phrase_thtbl.o: $(o2_grms)rules_phrase_thtbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)rules_phrase_thtbl.cpp -o $@
+$(o2_grms)rules_phrasesym.o: $(o2_grms)rules_phrasesym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)rules_phrasesym.cpp -o $@
+$(o2_grms)rules_phrasetbl.o: $(o2_grms)rules_phrasetbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)rules_phrasetbl.cpp -o $@
+$(o2_grms)rules_use_cnt.o: $(o2_grms)rules_use_cnt.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)rules_use_cnt.cpp -o $@
+$(o2_grms)rules_use_cntsym.o: $(o2_grms)rules_use_cntsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)rules_use_cntsym.cpp -o $@
+$(o2_grms)rules_use_cnttbl.o: $(o2_grms)rules_use_cnttbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)rules_use_cnttbl.cpp -o $@
+$(o2_grms)subrule_def.o: $(o2_grms)subrule_def.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)subrule_def.cpp -o $@
+$(o2_grms)subrule_defsym.o: $(o2_grms)subrule_defsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)subrule_defsym.cpp -o $@
+$(o2_grms)subrule_deftbl.o: $(o2_grms)subrule_deftbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)subrule_deftbl.cpp -o $@
+$(o2_grms)subrule_vector.o: $(o2_grms)subrule_vector.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)subrule_vector.cpp -o $@
+$(o2_grms)subrule_vectorsym.o: $(o2_grms)subrule_vectorsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)subrule_vectorsym.cpp -o $@
+$(o2_grms)subrule_vectortbl.o: $(o2_grms)subrule_vectortbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)subrule_vectortbl.cpp -o $@
+$(o2_grms)subrules_phrase.o: $(o2_grms)subrules_phrase.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)subrules_phrase.cpp -o $@
+$(o2_grms)subrules_phrasesym.o: $(o2_grms)subrules_phrasesym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)subrules_phrasesym.cpp -o $@
+$(o2_grms)subrules_phrasetbl.o: $(o2_grms)subrules_phrasetbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)subrules_phrasetbl.cpp -o $@
+$(o2_grms)t_alphabet.o: $(o2_grms)t_alphabet.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)t_alphabet.cpp -o $@
+$(o2_grms)t_alphabetsym.o: $(o2_grms)t_alphabetsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)t_alphabetsym.cpp -o $@
+$(o2_grms)t_alphabettbl.o: $(o2_grms)t_alphabettbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)t_alphabettbl.cpp -o $@
+$(o2_grms)t_def_delabort_tags.o: $(o2_grms)t_def_delabort_tags.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)t_def_delabort_tags.cpp -o $@
+$(o2_grms)t_def_delabort_tagssym.o: $(o2_grms)t_def_delabort_tagssym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)t_def_delabort_tagssym.cpp -o $@
+$(o2_grms)t_def_delabort_tagstbl.o: $(o2_grms)t_def_delabort_tagstbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)t_def_delabort_tagstbl.cpp -o $@
+$(o2_grms)term_def_ph.o: $(o2_grms)term_def_ph.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)term_def_ph.cpp -o $@
+$(o2_grms)term_def_phsym.o: $(o2_grms)term_def_phsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)term_def_phsym.cpp -o $@
+$(o2_grms)term_def_phtbl.o: $(o2_grms)term_def_phtbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)term_def_phtbl.cpp -o $@
+$(o2_grms)terminal_def_symclass.o: $(o2_grms)terminal_def_symclass.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)terminal_def_symclass.cpp -o $@
+$(o2_grms)terminal_def_symclasssym.o: $(o2_grms)terminal_def_symclasssym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)terminal_def_symclasssym.cpp -o $@
+$(o2_grms)terminal_def_symclasstbl.o: $(o2_grms)terminal_def_symclasstbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)terminal_def_symclasstbl.cpp -o $@
+$(o2_grms)terminals_phrase.o: $(o2_grms)terminals_phrase.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)terminals_phrase.cpp -o $@
+$(o2_grms)terminals_phrase_th.o: $(o2_grms)terminals_phrase_th.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)terminals_phrase_th.cpp -o $@
+$(o2_grms)terminals_phrase_thsym.o: $(o2_grms)terminals_phrase_thsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)terminals_phrase_thsym.cpp -o $@
+$(o2_grms)terminals_phrase_thtbl.o: $(o2_grms)terminals_phrase_thtbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)terminals_phrase_thtbl.cpp -o $@
+$(o2_grms)terminals_phrasesym.o: $(o2_grms)terminals_phrasesym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)terminals_phrasesym.cpp -o $@
+$(o2_grms)terminals_phrasetbl.o: $(o2_grms)terminals_phrasetbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)terminals_phrasetbl.cpp -o $@
+$(o2_grms)test_components.o: $(o2_grms)test_components.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)test_components.cpp -o $@
+$(o2_grms)test_componentssym.o: $(o2_grms)test_componentssym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)test_componentssym.cpp -o $@
+$(o2_grms)test_componentstbl.o: $(o2_grms)test_componentstbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)test_componentstbl.cpp -o $@
+$(o2_grms)unq_str.o: $(o2_grms)unq_str.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)unq_str.cpp -o $@
+$(o2_grms)unq_strsym.o: $(o2_grms)unq_strsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)unq_strsym.cpp -o $@
+$(o2_grms)unq_strtbl.o: $(o2_grms)unq_strtbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)unq_strtbl.cpp -o $@
+$(o2_grms)ws.o: $(o2_grms)ws.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)ws.cpp -o $@
+$(o2_grms)wssym.o: $(o2_grms)wssym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)wssym.cpp -o $@
+$(o2_grms)wstbl.o: $(o2_grms)wstbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)wstbl.cpp -o $@
+$(o2_grms)xc_str.o: $(o2_grms)xc_str.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)xc_str.cpp -o $@
+$(o2_grms)xc_strsym.o: $(o2_grms)xc_strsym.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)xc_strsym.cpp -o $@
+$(o2_grms)xc_strtbl.o: $(o2_grms)xc_strtbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)xc_strtbl.cpp -o $@
+$(o2_grms)yacco2_err_symbols.o: $(o2_grms)yacco2_err_symbols.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)yacco2_err_symbols.cpp -o $@
+$(o2_grms)yacco2_fsc.o: $(o2_grms)yacco2_fsc.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)yacco2_fsc.cpp -o $@
+$(o2_grms)yacco2_stbl.o: $(o2_grms)yacco2_stbl.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)yacco2_stbl.cpp -o $@
+$(o2_grms)yacco2_terminals.o: $(o2_grms)yacco2_terminals.cpp;CC $(BASICOPTS) $(O2_includes) $(o2_grms)yacco2_terminals.cpp -o $@
+
+Genw:
+ cweave $(o2_stbl)yacco2_stbl
+ ctangle -l +e $(o2_stbl)yacco2_stbl
+ pdftex yacco2_stbl
+ pdftops yacco2_stbl.pdf
+ mv yacco2_stbl.pdf $(o2_docs)
+ rm yacco2_stbl.idx
+ rm yacco2_stbl.scn
+ rm yacco2_stbl.toc
+ rm yacco2_stbl.tex
+ rm yacco2_stbl.log
+ rm yacco2_stbl.c \ No newline at end of file
diff --git a/web/yacco2/compiler/grammars/mpost_output.cpp b/web/yacco2/compiler/grammars/mpost_output.cpp
new file mode 100644
index 0000000000..5b801ed561
--- /dev/null
+++ b/web/yacco2/compiler/grammars/mpost_output.cpp
@@ -0,0 +1,881 @@
+/*
+ File: mpost_output.cpp
+ Date and Time: Fri Jan 30 18:55:16 2015
+*/
+#include "mpost_output.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_mpost_output;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 21;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[4] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[5] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[6] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[7] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[8] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[9] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[10] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[11] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[12] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[13] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[14] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[15] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[16] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[17] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[18] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[19] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[20] = new Per_rule_s_reuse_table();
+}
+ Cmpost_output::
+ Cmpost_output()
+ :yacco2::CAbs_fsm
+ ("mpost_output.lex"
+ ,"1.0"
+ ,"29 Nov. 2005"
+ ,false
+ ,"Output grammar rules railroad diagrams for mpost that cweb program uses."
+ ,"Fri Jan 30 18:55:16 2015 "
+ ,S1_Cmpost_output){
+
+ MPOST_CWEB_LOAD_XLATE_CHRS(this);
+
+ }
+
+Cmpost_output::~Cmpost_output(){
+
+ for(int x = 0;x < 21;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cmpost_output::failed(){
+ return false;
+ }
+ void Cmpost_output::op(){
+no_subrules_per_rule_.push_back(0);
+time_t theTime= time(0);
+char*cTime= ctime(&theTime);
+gened_date_time_+= string(cTime);
+int n= gened_date_time_.find('\n');
+gened_date_time_[n]= ' ';
+
+mp_dimension_+= " abcdefghijklmnopqrstuvwxyz";
+w_fig_no_= 0;
+rule_def_= 0;
+subrule_def_= 0;
+rule_no_= 0;
+subrule_no_= 0;
+elem_no_= 0;
+no_of_rules_= 0;
+no_of_subrules_= 0;
+mp_filename_+= grammar_filename_prefix_.c_str();
+mp_filename_+= ".mp";
+omp_file_.open(mp_filename_.c_str(),ios_base::out|ios::trunc);
+if(!omp_file_){
+CAbs_lr1_sym*sym= new Err_bad_filename(mp_filename_.c_str());
+ sym->set_who_created(__FILE__,__LINE__);
+parser__->add_token_to_error_queue(*sym);
+parser__->set_stop_parse(true);
+return;
+}
+w_filename_+= grammar_filename_prefix_.c_str();
+w_filename_+= ".w";
+ow_file_.open(w_filename_.c_str(),ios_base::out|ios::trunc);
+if(!ow_file_){
+CAbs_lr1_sym*sym= new Err_bad_filename(w_filename_.c_str());
+ sym->set_who_created(__FILE__,__LINE__);
+parser__->add_token_to_error_queue(*sym);
+parser__->set_stop_parse(true);
+return;
+}
+w_index_filename_+= grammar_filename_prefix_.c_str();
+w_index_filename_+= "_idx.w";
+ow_index_file_.open(w_index_filename_.c_str(),ios_base::out|ios::trunc);
+if(!ow_index_file_){
+CAbs_lr1_sym*sym= new Err_bad_filename(w_index_filename_.c_str());
+ sym->set_who_created(__FILE__,__LINE__);
+parser__->add_token_to_error_queue(*sym);
+parser__->set_stop_parse(true);
+return;
+}
+
+
+KCHARP t_file = "T.w";
+ow_t_file_.open(t_file,ios_base::out|ios::trunc);
+if(!ow_t_file_){
+CAbs_lr1_sym*sym= new Err_bad_filename(t_file);
+ sym->set_who_created(__FILE__,__LINE__);
+parser__->add_token_to_error_queue(*sym);
+parser__->set_stop_parse(true);
+return;
+}
+KCHARP err_file = "Err.w";
+ow_err_file_.open(err_file,ios_base::out|ios::trunc);
+if(!ow_err_file_){
+CAbs_lr1_sym*sym= new Err_bad_filename(err_file);
+ sym->set_who_created(__FILE__,__LINE__);
+parser__->add_token_to_error_queue(*sym);
+parser__->set_stop_parse(true);
+return;
+}
+
+KCHARP lrk_file = "Lrk.w";
+ow_lrk_file_.open(lrk_file,ios_base::out|ios::trunc);
+if(!ow_lrk_file_){
+CAbs_lr1_sym*sym= new Err_bad_filename(lrk_file);
+ sym->set_who_created(__FILE__,__LINE__);
+parser__->add_token_to_error_queue(*sym);
+parser__->set_stop_parse(true);
+return;
+}
+
+ MPOST_CWEB_EMIT_PREFIX_CODE(this);
+
+}
+int Cmpost_output::rhs_to_rules_mapping_[33] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,2 // subrule 3 for rule 3
+ ,2 // subrule 4 for rule 3
+ ,3 // subrule 5 for rule 4
+ ,3 // subrule 6 for rule 4
+ ,4 // subrule 7 for rule 5
+ ,5 // subrule 8 for rule 6
+ ,6 // subrule 9 for rule 7
+ ,6 // subrule 10 for rule 7
+ ,7 // subrule 11 for rule 8
+ ,8 // subrule 12 for rule 9
+ ,9 // subrule 13 for rule 10
+ ,10 // subrule 14 for rule 11
+ ,11 // subrule 15 for rule 12
+ ,12 // subrule 16 for rule 13
+ ,13 // subrule 17 for rule 14
+ ,13 // subrule 18 for rule 14
+ ,14 // subrule 19 for rule 15
+ ,15 // subrule 20 for rule 16
+ ,16 // subrule 21 for rule 17
+ ,16 // subrule 22 for rule 17
+ ,17 // subrule 23 for rule 18
+ ,18 // subrule 24 for rule 19
+ ,19 // subrule 25 for rule 20
+ ,19 // subrule 26 for rule 20
+ ,20 // subrule 27 for rule 21
+ ,20 // subrule 28 for rule 21
+ ,20 // subrule 29 for rule 21
+ ,20 // subrule 30 for rule 21
+ ,20 // subrule 31 for rule 21
+ ,20 // subrule 32 for rule 21
+};
+Rmpost_output::Rmpost_output(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rmpost_output",0,Cmpost_output::R_Rmpost_output_,P,false,false){
+}
+
+void Rmpost_output::sr1(){
+
+ Cmpost_output* fsm = (Cmpost_output*)rule_info__.parser__->fsm_tbl__;
+ KCHARP mp_init_vars = "init_variables;";
+ fsm->omp_file_ << mp_init_vars << endl;
+ KCHARP mp_figure =
+ "beginfig(%i);\n"
+ " drw_rule(%i);\n"
+ "endfig;";
+ KCHARP sr_figure =
+ "beginfig(%i);\n"
+ " drw_rule_a_rhs(%i,%i);\n"
+ "endfig;";
+
+ int rule_no = 1;
+ int fig_no(0);
+ for(;rule_no <= fsm->no_of_rules_;++rule_no){
+ ++fig_no;
+ sprintf(fsm->big_buf_,mp_figure,fig_no,rule_no);
+ fsm->omp_file_ << fsm->big_buf_ << endl;
+ int no_srs = fsm->no_subrules_per_rule_[rule_no];
+ int sr_no(1);
+ for(;sr_no <= no_srs;++sr_no){
+ ++fig_no;
+ sprintf(fsm->big_buf_,sr_figure,fig_no,rule_no,sr_no);
+ fsm->omp_file_ << fsm->big_buf_ << endl;
+ }
+ }
+
+ KCHARP mp_end = "end;";
+ fsm->omp_file_ << mp_end << endl;
+ fsm->omp_file_.close();
+ KCHARP w_fsc_file =
+ "@** First Set Language for \\Olinker.\\fbreak\n"
+ "\\openin 1 = \"%s.fsc\"\n" // macro file open
+ "\\ifeof 1 true\n" // test the result
+ " \\closein 1\n"
+ "\\else\n"
+ " \\closein 1\n"
+ " \\listing{\"%s.fsc\"}"
+ "\\fi";
+ sprintf(fsm->big_buf_,w_fsc_file,fsm->fq_filename_noext_.c_str()
+ ,fsm->fq_filename_noext_.c_str());
+ fsm->ow_file_ << fsm->big_buf_ << endl;
+
+ KCHARP w_lr1_states =
+ "@** Lr1 State Network.\\fbreak\n"
+ "\\statecolumnspace %s";
+ sprintf(fsm->big_buf_,w_lr1_states," ");
+ fsm->ow_file_ << fsm->big_buf_ << endl;
+ KCHARP w_stateno = // stateno, vectored into symbol, conflict
+ "\\stateno{%i} {%s} {%s}\n"
+ "\\halign{\n"
+ "\\span\\statetemplate\n"
+ "\\statetitle";
+ char vectored_into[Max_cweb_item_size];
+ char rule_name[Max_cweb_item_size];
+ char subrule_sym[Max_cweb_item_size];
+ char cur_sym[Max_cweb_item_size];
+ char nxtsym_1[Max_cweb_item_size];
+ char nxtsym_2[Max_cweb_item_size];
+ char state_type[Max_cweb_item_size];
+ char la_set_no[Max_cweb_item_size];
+ string w_possible_ar_code;
+
+ KCHARP la_set_no_template = "%i";
+ KCHARP state_type_template = "%s";
+ KCHARP three_symbols_string_template =
+ "%s %s %s"; // 3 symbols: current and 2 la
+ KCHARP w_stateno_subrule =
+ "{%s}&\n" // closure or transitive
+ "{%s}&\n" // rule
+ "{%i\\hss}&\n" // rule no
+ "{%i\\hss}&\n" // subrule no
+ "{%i\\hss}&\n" // element pos
+ "{%s}&\n" // current symbol
+ "{%i\\hss}&\n" // born state no
+ "{%i\\hss}&\n" // goto state no
+ "{%i\\hss}&\n" // reduced state no
+ "{%s\\hss}\\cr"; // la set if reduced
+ int fnd_reduced_stateno(0);
+
+ STATES_ITER_type si = LR1_STATES.begin();
+ STATES_ITER_type sie = LR1_STATES.end();
+ for(;si!=sie;++si){// walk the states
+ vectored_into[0] = (char)0;
+ w_possible_ar_code.clear();
+ state_type[0] = (char)0;
+ state* cur_state = *si;
+
+ if(cur_state->state_no_ != 1){// state 1 vector into is empty
+ XLATE_SYMBOLS_FOR_cweave
+ (cur_state->entry_symbol_literal(),vectored_into);
+ }
+ switch (cur_state->state_type_){
+ case 0:{//shift only
+ sprintf(state_type,state_type_template,"\\Shiftonly");
+ break;
+ }
+ case 1:{
+ sprintf(state_type,state_type_template,"\\Reduceonly");
+ break;
+ }
+ case 2:{
+ sprintf(state_type,state_type_template,"\\ShiftReduce");
+ break;
+ }
+ case 3:{
+ sprintf(state_type,state_type_template,"\\MultipleReduces");
+ break;
+ }
+ case 4:{
+ sprintf(state_type,state_type_template,"\\ShiftandMultipleReduces");
+ break;
+ }
+ }
+ w_possible_ar_code.append(vectored_into);
+ if (cur_state->vectored_into_by_elem_ == LR1_PARALLEL_OPERATOR){
+ // add arbitration code? to |vectored_into| string
+ if (cur_state->arbitrator_name_ != 0){
+ w_possible_ar_code += "\\ arbitration-code: \\ |";
+ w_possible_ar_code += cur_state->arbitrator_name_->c_str();
+ w_possible_ar_code += "|";
+ }else{
+ w_possible_ar_code += "\\ arbitration-code: \\ \\epsilon";
+ }
+ }
+ sprintf(fsm->big_buf_
+ ,w_stateno
+ ,cur_state->state_no_
+ ,w_possible_ar_code.c_str()//|vectored_into|
+ ,state_type);
+ fsm->ow_file_ << fsm->big_buf_ << endl;
+ S_VECTORS_ITER_type svi = cur_state->state_s_vector_.begin();
+ S_VECTORS_ITER_type svie = cur_state->state_s_vector_.end();
+ string rhs_syms_str;
+ for(;svi!=svie;++svi){
+ S_VECTOR_ELEMS_ITER_type seli = svi->second.begin();
+ S_VECTOR_ELEMS_ITER_type selie = svi->second.end();
+ for(;seli!=selie;++seli){
+ rhs_syms_str.clear();
+ state_element* se = *seli;
+ rule_def* rd = se->subrule_def_->its_rule_def();
+ T_subrule_def* srd = se->subrule_def_;
+ rule_name[0] = (char)0;
+ subrule_sym[0] = (char)0;
+ cur_sym[0] = (char)0;
+ la_set_no[0] = (char)0;
+
+ XLATE_SYMBOLS_FOR_cweave(rd->rule_name()->c_str(),rule_name);
+ int elem_pos(0);
+ if(se->previous_state_ == 0) elem_pos = 1;
+ elem_pos = MPOST_CWEB_xlated_symbol(se->sr_element_,cur_sym);
+ if(se->goto_state_==0){// reducing subrule
+ sprintf(la_set_no,la_set_no_template,se->common_la_set_idx_+1);
+ }else{// no la set
+ }
+
+ if (se->reduced_state_ != 0) {
+ fnd_reduced_stateno = se->reduced_state_->state_no_;
+ }
+ else{ // find from merged into
+ fnd_reduced_stateno=-1;
+ if (se->next_state_element_->reduced_state_ != 0){
+ fnd_reduced_stateno = se->next_state_element_->reduced_state_->state_no_;
+ }
+ }
+ fsm->MPOST_CWEB_crt_rhs_sym_str(se,&rhs_syms_str);
+ sprintf(fsm->big_buf_
+ ,w_stateno_subrule
+ ,(elem_pos == 1)?"c":"t"
+ ,rule_name
+ ,rd->rule_no()
+ ,srd->subrule_no_of_rule()
+ ,elem_pos
+ ,rhs_syms_str.c_str()
+ ,se->closure_state_->state_no_
+ ,(se->goto_state_ !=0)?se->goto_state_->state_no_:0
+ ,fnd_reduced_stateno
+ ,la_set_no
+ );
+ fsm->ow_file_ << fsm->big_buf_ << endl;
+ }
+ }
+ fsm->ow_file_ << "}" << endl;
+ }
+ KCHARP w_end = "@** Index.";
+ fsm->ow_file_ << w_end << endl;
+ fsm->ow_file_.close();
+
+}
+
+Rgrammar_phrase::Rgrammar_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rgrammar_phrase",0,Cmpost_output::R_Rgrammar_phrase_,P,false,false){
+}
+
+Rks_epi::Rks_epi(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rks_epi",0,Cmpost_output::R_Rks_epi_,P,false,false){
+}
+
+Rks::Rks(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rks",0,Cmpost_output::R_Rks_,P,false,false){
+}
+
+Rk::Rk(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rk",0,Cmpost_output::R_Rk_,P,false,false){
+}
+
+void Rk::sr1(){
+ struct SF{
+ T_cweb_marker* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cmpost_output* fsm = (Cmpost_output*)rule_info__.parser__->fsm_tbl__;
+ WRT_CWEB_MARKER(&fsm->ow_file_,sf->p1__->ast());
+
+}
+
+Rfsm_phrase::Rfsm_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfsm_phrase",0,Cmpost_output::R_Rfsm_phrase_,P,false,false){
+}
+
+void Rfsm_phrase::sr1(){
+ struct SF{
+ T_fsm_phrase* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cmpost_output* fsm = (Cmpost_output*)rule_info__.parser__->fsm_tbl__;
+ fsm->MPOST_CWEB_wrt_fsm(fsm,sf->p1__);
+
+}
+
+Rparallel_phrase::Rparallel_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rparallel_phrase",0,Cmpost_output::R_Rparallel_phrase_,P,false,false){
+}
+
+RT_enum_phrase::RT_enum_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("RT_enum_phrase",0,Cmpost_output::R_RT_enum_phrase_,P,false,false){
+}
+
+Rerr_phrase::Rerr_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rerr_phrase",0,Cmpost_output::R_Rerr_phrase_,P,false,false){
+}
+
+void Rerr_phrase::sr1(){
+ struct SF{
+ T_error_symbols_phrase* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cmpost_output* fsm = (Cmpost_output*)rule_info__.parser__->fsm_tbl__;
+ fsm->MPOST_CWEB_wrt_Err(fsm,sf->p1__);
+
+}
+
+Rrc_phrase::Rrc_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrc_phrase",0,Cmpost_output::R_Rrc_phrase_,P,false,false){
+}
+
+Rlr1_k_phrase::Rlr1_k_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlr1_k_phrase",0,Cmpost_output::R_Rlr1_k_phrase_,P,false,false){
+}
+
+void Rlr1_k_phrase::sr1(){
+ struct SF{
+ T_lr1_k_phrase* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cmpost_output* fsm = (Cmpost_output*)rule_info__.parser__->fsm_tbl__;
+ fsm->MPOST_CWEB_wrt_Lrk(fsm,sf->p1__);
+
+}
+
+Rterms_phrase::Rterms_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rterms_phrase",0,Cmpost_output::R_Rterms_phrase_,P,false,false){
+}
+
+void Rterms_phrase::sr1(){
+ struct SF{
+ T_terminals_phrase* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cmpost_output* fsm = (Cmpost_output*)rule_info__.parser__->fsm_tbl__;
+ fsm->MPOST_CWEB_wrt_T(fsm,sf->p1__);
+
+}
+
+Rrule_phrase::Rrule_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrule_phrase",0,Cmpost_output::R_Rrule_phrase_,P,false,false){
+}
+
+void Rrule_phrase::sr1(){
+ struct SF{
+ T_rules_phrase* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cmpost_output* fsm = (Cmpost_output*)rule_info__.parser__->fsm_tbl__;
+ fsm->no_of_rules_ = sf->p1__->rules_alphabet()->size();
+ KCHARP mp_no_of_rules = "no_of_rules := %i;";
+ sprintf(fsm->big_buf_,mp_no_of_rules,fsm->no_of_rules_);
+ fsm->omp_file_ << fsm->big_buf_ << endl;
+
+}
+
+Rrules::Rrules(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrules",0,Cmpost_output::R_Rrules_,P,false,false){
+}
+
+Rrule::Rrule(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrule",0,Cmpost_output::R_Rrule_,P,false,false){
+}
+
+Rrule_def::Rrule_def(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrule_def",0,Cmpost_output::R_Rrule_def_,P,false,false){
+}
+
+void Rrule_def::sr1(){
+ struct SF{
+ rule_def* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cmpost_output* fsm = (Cmpost_output*)rule_info__.parser__->fsm_tbl__;
+ fsm->rule_def_ = sf->p1__;
+ fsm->rules_for_fs_prt_.push_back(fsm->rule_def_);
+ KCHARP rname = fsm->rule_def_->rule_name()->c_str();
+ ++fsm->w_fig_no_;
+ ++fsm->rule_no_;
+ fsm->subrule_no_ = 0;
+
+ KCHARP mp_rule_names =
+ "rule_names[%i].literal := \"%s\";"
+ "rule_names[%i].vname := \"%s\";";
+
+ sprintf(fsm->big_buf_,mp_rule_names,fsm->rule_no_,rname,fsm->rule_no_,rname);
+ fsm->omp_file_ << fsm->big_buf_ << endl;
+
+ T_subrules_phrase* sr_ph = fsm->rule_def_->subrules();
+ fsm->no_of_subrules_ = sr_ph->no_subrules();
+ KCHARP mp_rule_s_no_rhs = "rule_s_no_rhs[%i] := %i;";
+ sprintf(fsm->big_buf_,mp_rule_s_no_rhs
+ ,fsm->rule_no_,fsm->no_of_subrules_);
+ fsm->omp_file_ << fsm->big_buf_ << endl;
+ fsm->no_subrules_per_rule_.push_back(fsm->no_of_subrules_);//[rule \#]
+
+ KCHARP rule_cweb =
+ "@*2 |@!%s| rule.\\fbreak\n";
+ sprintf(fsm->big_buf_,rule_cweb,rname);
+ fsm->ow_file_ << fsm->big_buf_;
+ if(fsm->rule_def_->cweb_marker() != 0){
+ WRT_CWEB_MARKER(&fsm->ow_file_,fsm->rule_def_->cweb_marker());
+ }
+ KCHARP rule_cweb_diagram =
+ "\\fbreak\n"
+ "\\convertMPtoPDF{%s.%i}{1}{1}\n";
+ sprintf(fsm->big_buf_,rule_cweb_diagram
+ ,fsm->grammar_filename_prefix_.c_str()
+ ,fsm->w_fig_no_);
+ fsm->ow_file_ << fsm->big_buf_;
+ std::vector<T_subrule_def*>* srules = sr_ph->subrules();
+ std::vector<T_subrule_def*>::iterator i = srules->begin();
+ std::vector<T_subrule_def*>::iterator ie = srules->end();
+ for(;i!=ie;++i){
+ T_subrule_def* srd = *i;
+ fsm->MPOST_CWEB_gen_sr_elem_xrefs(fsm,srd->subrule_s_tree());
+ }
+ fsm->MPOST_CWEB_wrt_rule_s_lhs_sdc(fsm,fsm->rule_def_);
+
+
+}
+
+Rsubrules::Rsubrules(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsubrules",0,Cmpost_output::R_Rsubrules_,P,false,false){
+}
+
+Rsubrule::Rsubrule(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsubrule",0,Cmpost_output::R_Rsubrule_,P,false,false){
+}
+
+Rsubrule_def::Rsubrule_def(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsubrule_def",0,Cmpost_output::R_Rsubrule_def_,P,false,false){
+}
+
+void Rsubrule_def::sr1(){
+ struct SF{
+ T_subrule_def* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cmpost_output* fsm = (Cmpost_output*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->w_fig_no_;
+ ++fsm->subrule_no_;
+ fsm->elem_no_ = 0;
+ fsm->subrule_def_ = sf->p1__;
+ int no_elements = fsm->subrule_def_->no_of_elems()-1;
+ if(no_elements == 0) no_elements = 1;// epsilon subrule
+ KCHARP mp_rule_s_subrule_no_elems = "rule_s_subrule_no_elems[%i][%i]:= %i;";
+ sprintf(fsm->big_buf_,mp_rule_s_subrule_no_elems
+ ,fsm->rule_no_,fsm->subrule_no_,no_elements);
+ fsm->omp_file_ << fsm->big_buf_ << endl;
+
+ if(fsm->MPOST_CWEB_should_subrule_be_printed(fsm,fsm->subrule_def_)
+ == false) return;
+
+ KCHARP rname = fsm->rule_def_->rule_name()->c_str();
+
+ KCHARP subrule_cweb =
+ "@*3 |%s|'s subrule %i.\\fbreak\n";
+ if((fsm->rule_def_->rule_lhs() != 0)
+ ||
+ (fsm->no_of_subrules_ > 1)){
+ sprintf(fsm->big_buf_,subrule_cweb,rname,fsm->subrule_no_);
+ fsm->ow_file_ << fsm->big_buf_;
+ }
+ if(fsm->subrule_def_->cweb_marker() != 0){
+ WRT_CWEB_MARKER(&fsm->ow_file_,fsm->subrule_def_->cweb_marker());
+ cout << "subrule's cweb marker for rule: " << rname << endl;
+ }else{
+ cout << "no subrule's cweb marker for rule: " << rname << endl;
+ }
+
+ KCHARP subrule_cweb_diagram =
+ "\\fbreak"
+ "\\convertMPtoPDF{%s.%i}{1}{1}\n";
+ if((fsm->rule_def_->rule_lhs() != 0)
+ ||
+ (fsm->no_of_subrules_ > 1)){
+ sprintf(fsm->big_buf_,subrule_cweb_diagram
+ ,fsm->grammar_filename_prefix_.c_str()
+ ,fsm->w_fig_no_);
+ fsm->ow_file_ << fsm->big_buf_;
+ }
+
+ fsm->MPOST_CWEB_woutput_sr_sdcode(fsm,fsm->subrule_def_);
+
+}
+
+Relements::Relements(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Relements",0,Cmpost_output::R_Relements_,P,false,false){
+}
+
+Relement::Relement(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Relement",0,Cmpost_output::R_Relement_,P,false,false){
+}
+
+void Relement::sr1(){
+ struct SF{
+ refered_T* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cmpost_output* fsm = (Cmpost_output*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ std::string mp_obj_type("Circle_solid");
+ std::string mp_elem_name(sf->p1__->t_in_stbl()->t_def()->t_name()->c_str());
+ string::size_type x = mp_elem_name.find("\\\"");
+ if(x != string::npos){
+ mp_elem_name.clear();
+ mp_elem_name+= "char(34)";
+ }
+ fsm->MPOST_CWEB_wrt_mp_rhs_elem(fsm,mp_elem_name,mp_obj_type);
+
+}
+
+void Relement::sr2(){
+ struct SF{
+ refered_rule* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cmpost_output* fsm = (Cmpost_output*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ std::string mp_obj_type("Box_solid");
+ std::string mp_elem_name(sf->p1__->Rule_in_stbl()->
+ r_def()->rule_name()->c_str());
+ fsm->MPOST_CWEB_wrt_mp_rhs_elem(fsm,mp_elem_name,mp_obj_type);
+
+}
+
+void Relement::sr3(){
+
+ Cmpost_output* fsm = (Cmpost_output*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ if(fsm->elem_no_ == 1){// epsilon
+ std::string mp_obj_type("Circle_solid");
+ std::string mp_elem_name(" ");
+ fsm->MPOST_CWEB_wrt_mp_rhs_elem(fsm,mp_elem_name,mp_obj_type);
+ }
+
+}
+
+void Relement::sr4(){
+ struct SF{
+ refered_T* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ refered_T* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ T_called_thread_eosubrule* p3__;
+ State* s3__;
+ bool abort3__;
+ Rule_s_reuse_entry* rule_s_reuse_entry3__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(3);
+
+ Cmpost_output* fsm = (Cmpost_output*)rule_info__.parser__->fsm_tbl__;
+ KCHARP re_align_nos = "rule_s_subrule_no_elems[%i][%i]:= %i;";
+ sprintf(fsm->big_buf_,re_align_nos
+ ,fsm->rule_no_,fsm->subrule_no_,3);
+ fsm->omp_file_ << fsm->big_buf_ << "% re-align cnt" << endl;
+ ++fsm->elem_no_;
+ std::string mp_obj_type("Circle_dotted");
+ std::string mp_elem_name;
+ if(sf->p1__->its_t_def()->enum_id() == T_Enum::T_LR1_parallel_operator_){
+ mp_elem_name += "|||";
+ }else{
+ mp_elem_name += "|t|";
+ }
+ fsm->MPOST_CWEB_wrt_mp_rhs_elem(fsm,mp_elem_name,mp_obj_type);
+
+ ++fsm->elem_no_;
+ mp_obj_type.clear();
+ mp_obj_type += "Circle_dotted";
+ mp_elem_name.clear();
+ mp_elem_name += sf->p2__->t_in_stbl()->t_def()->t_name()->c_str();
+ string::size_type x = mp_elem_name.find("\\\"");
+ if(x != string::npos){
+ mp_elem_name.erase();
+ mp_elem_name+= "char(34)";
+ }
+ fsm->MPOST_CWEB_wrt_mp_rhs_elem(fsm,mp_elem_name,mp_obj_type);
+
+ ++fsm->elem_no_;
+ mp_elem_name.clear();
+ mp_obj_type.clear();
+ mp_obj_type += "Box_dotted";
+ mp_elem_name += sf->p3__->ns()->identifier()->c_str();
+ mp_elem_name += "::";
+ mp_elem_name += sf->p3__->called_thread_name()->identifier()->c_str();
+ fsm->MPOST_CWEB_wrt_mp_rhs_elem(fsm,mp_elem_name,mp_obj_type);
+
+}
+
+void Relement::sr5(){
+ struct SF{
+ refered_T* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ refered_T* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ T_null_call_thread_eosubrule* p3__;
+ State* s3__;
+ bool abort3__;
+ Rule_s_reuse_entry* rule_s_reuse_entry3__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(3);
+
+ Cmpost_output* fsm = (Cmpost_output*)rule_info__.parser__->fsm_tbl__;
+ KCHARP re_align_nos = "rule_s_subrule_no_elems[%i][%i]:= %i;";
+ sprintf(fsm->big_buf_,re_align_nos,fsm->rule_no_,fsm->subrule_no_,3);
+ fsm->omp_file_ << fsm->big_buf_ << "% re-align cnt" << endl;
+
+ ++fsm->elem_no_;
+ std::string mp_obj_type("Circle_dotted");
+ std::string mp_elem_name;
+ if(sf->p1__->its_t_def()->enum_id() == T_Enum::T_LR1_parallel_operator_){
+ mp_elem_name += "|||";
+ }else{
+ mp_elem_name += "|t|";
+ }
+ fsm->MPOST_CWEB_wrt_mp_rhs_elem(fsm,mp_elem_name,mp_obj_type);
+ mp_elem_name.clear();
+
+ ++fsm->elem_no_;
+ mp_elem_name += sf->p2__->t_in_stbl()->t_def()->t_name()->c_str();
+ string::size_type x = mp_elem_name.find("\\\"");
+ if(x != string::npos){
+ mp_elem_name.clear();
+ mp_elem_name+= "char(34)";
+ }
+ fsm->MPOST_CWEB_wrt_mp_rhs_elem(fsm,mp_elem_name,mp_obj_type);
+
+ ++fsm->elem_no_;
+ mp_elem_name.clear();
+ mp_obj_type.clear();
+ mp_obj_type += "Box_dotted";
+ mp_elem_name += "NULL";
+ fsm->MPOST_CWEB_wrt_mp_rhs_elem(fsm,mp_elem_name,mp_obj_type);
+
+}
+
+void Relement::sr6(){
+ struct SF{
+ refered_T* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ refered_T* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ CAbs_lr1_sym* p3__;
+ State* s3__;
+ bool abort3__;
+ Rule_s_reuse_entry* rule_s_reuse_entry3__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(3);
+
+ Cmpost_output* fsm = (Cmpost_output*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ std::string mp_obj_type("Circle_solid");
+ std::string mp_elem_name(sf->p1__->t_in_stbl()->t_def()->t_name()->c_str());
+ string::size_type x = mp_elem_name.find("\\\"");
+ if(x != string::npos){
+ mp_elem_name.erase();
+ mp_elem_name+= "char(34)";
+ }
+ fsm->MPOST_CWEB_wrt_mp_rhs_elem(fsm,mp_elem_name,mp_obj_type);
+
+ ++fsm->elem_no_;
+ mp_obj_type.clear();
+ mp_obj_type += "Circle_solid";
+ mp_elem_name.clear();
+ mp_elem_name += sf->p2__->t_in_stbl()->t_def()->t_name()->c_str();
+ x = mp_elem_name.find("\\\"");
+ if(x != string::npos){
+ mp_elem_name.erase();
+ mp_elem_name+= "char(34)";
+ }
+ fsm->MPOST_CWEB_wrt_mp_rhs_elem(fsm,mp_elem_name,mp_obj_type);
+
+}
+
diff --git a/web/yacco2/compiler/grammars/mpost_output.fsc b/web/yacco2/compiler/grammars/mpost_output.fsc
new file mode 100644
index 0000000000..d359c2f1d5
--- /dev/null
+++ b/web/yacco2/compiler/grammars/mpost_output.fsc
@@ -0,0 +1,20 @@
+/*
+ File: mpost_output.fsc
+ Date and Time: Fri Jan 30 18:55:16 2015
+*/
+transitive n
+grammar-name "mpost_output"
+name-space "NS_mpost_output"
+thread-name "Cmpost_output"
+monolithic y
+file-name "mpost_output.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ T_grammar_phrase
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"Output grammar rules railroad diagrams for mpost that cweb program uses."
diff --git a/web/yacco2/compiler/grammars/mpost_output.h b/web/yacco2/compiler/grammars/mpost_output.h
new file mode 100644
index 0000000000..479bfafc83
--- /dev/null
+++ b/web/yacco2/compiler/grammars/mpost_output.h
@@ -0,0 +1,307 @@
+/*
+ File: mpost_output.h
+ Date and Time: Fri Jan 30 18:55:16 2015
+*/
+#ifndef __mpost_output_h__
+#define __mpost_output_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "time.h"
+#include "o2_externs.h"
+extern void XLATE_SYMBOLS_FOR_cweave(const char* Sym_to_xlate,char* Xlated_sym);
+extern void PRT_RULE_S_FIRST_SET(std::ofstream& Ofile,NS_yacco2_terminals::rule_def* Rule_def);
+extern int MPOST_CWEB_xlated_symbol(AST* Sym,char* Xlated_sym);
+extern STATES_type LR1_STATES;
+extern COMMON_LA_SETS_type COMMON_LA_SETS;
+#include "cweave_fsm_sdc.h"
+#include "cweave_lhs_sdc.h"
+#include "cweave_sdc.h"
+#include "cweave_T_sdc.h"
+
+// monolithic grammar: no thread
+extern yacco2::State S1_Cmpost_output;
+namespace NS_mpost_output {
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[21];
+};
+class Cmpost_output: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rmpost_output_ = 569//start_of_rule_list + 0
+ ,rhs1_Rmpost_output_ = 1
+ ,R_Rgrammar_phrase_ = 570//start_of_rule_list + 2
+ ,rhs1_Rgrammar_phrase_ = 2
+ ,R_Rks_epi_ = 571//start_of_rule_list + 4
+ ,rhs1_Rks_epi_ = 3
+ ,rhs2_Rks_epi_ = 4
+ ,R_Rks_ = 572//start_of_rule_list + 6
+ ,rhs1_Rks_ = 5
+ ,rhs2_Rks_ = 6
+ ,R_Rk_ = 573//start_of_rule_list + 8
+ ,rhs1_Rk_ = 7
+ ,R_Rfsm_phrase_ = 574//start_of_rule_list + 10
+ ,rhs1_Rfsm_phrase_ = 8
+ ,R_Rparallel_phrase_ = 575//start_of_rule_list + 12
+ ,rhs1_Rparallel_phrase_ = 9
+ ,rhs2_Rparallel_phrase_ = 10
+ ,R_RT_enum_phrase_ = 576//start_of_rule_list + 14
+ ,rhs1_RT_enum_phrase_ = 11
+ ,R_Rerr_phrase_ = 577//start_of_rule_list + 16
+ ,rhs1_Rerr_phrase_ = 12
+ ,R_Rrc_phrase_ = 578//start_of_rule_list + 18
+ ,rhs1_Rrc_phrase_ = 13
+ ,R_Rlr1_k_phrase_ = 579//start_of_rule_list + 20
+ ,rhs1_Rlr1_k_phrase_ = 14
+ ,R_Rterms_phrase_ = 580//start_of_rule_list + 22
+ ,rhs1_Rterms_phrase_ = 15
+ ,R_Rrule_phrase_ = 581//start_of_rule_list + 24
+ ,rhs1_Rrule_phrase_ = 16
+ ,R_Rrules_ = 582//start_of_rule_list + 26
+ ,rhs1_Rrules_ = 17
+ ,rhs2_Rrules_ = 18
+ ,R_Rrule_ = 583//start_of_rule_list + 28
+ ,rhs1_Rrule_ = 19
+ ,R_Rrule_def_ = 584//start_of_rule_list + 30
+ ,rhs1_Rrule_def_ = 20
+ ,R_Rsubrules_ = 585//start_of_rule_list + 32
+ ,rhs1_Rsubrules_ = 21
+ ,rhs2_Rsubrules_ = 22
+ ,R_Rsubrule_ = 586//start_of_rule_list + 34
+ ,rhs1_Rsubrule_ = 23
+ ,R_Rsubrule_def_ = 587//start_of_rule_list + 36
+ ,rhs1_Rsubrule_def_ = 24
+ ,R_Relements_ = 588//start_of_rule_list + 38
+ ,rhs1_Relements_ = 25
+ ,rhs2_Relements_ = 26
+ ,R_Relement_ = 589//start_of_rule_list + 40
+ ,rhs1_Relement_ = 27
+ ,rhs2_Relement_ = 28
+ ,rhs3_Relement_ = 29
+ ,rhs4_Relement_ = 30
+ ,rhs5_Relement_ = 31
+ ,rhs6_Relement_ = 32
+ };
+ //no of la sets = 26
+ //no of states = 56
+ Cmpost_output();
+ ~Cmpost_output();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[33];
+
+ public:
+ char big_buf_[BIG_BUFFER_32K];
+ std::map <int , std::string> xlated_names_;
+ std::vector <int> no_subrules_per_rule_;
+ std::string gened_date_time_;
+ std::string mp_filename_;
+ std::ofstream omp_file_;
+ std::string w_filename_;
+ std::string w_index_filename_;
+ std::ofstream ow_file_;
+ std::ofstream ow_index_file_;
+ std::ofstream ow_t_file_;
+ std::ofstream ow_err_file_;
+ std::ofstream ow_lrk_file_;
+ std::string grammar_filename_prefix_;
+ std::string fq_filename_noext_;
+ int w_fig_no_;
+ int rule_no_;
+ int subrule_no_;
+ int elem_no_;
+ int no_of_rules_;
+ int no_of_subrules_;
+ std::string rule_name_;
+ std::string elem_name_;
+ rule_def* rule_def_;
+ T_subrule_def* subrule_def_;
+ std::string mp_dimension_;
+ static void MPOST_CWEB_gen_dimension_name(Cmpost_output* Fsm
+ ,std::string& Mp_obj_name,int Dimension);
+ static void MPOST_CWEB_calc_mp_obj_name(Cmpost_output* Fsm
+ ,std::string& Mp_obj_name,int Elem_no);
+ static void MPOST_CWEB_wrt_mp_rhs_elem(Cmpost_output* Fsm
+ ,std::string& Elem_name,std::string& Drw_how);
+ static void MPOST_CWEB_gen_sr_elem_xrefs(Cmpost_output* Fsm
+ ,AST* Subrule_tree);
+ static void MPOST_CWEB_woutput_sr_sdcode(Cmpost_output* Fsm
+ ,T_subrule_def* Subrule_def);
+ static void MPOST_CWEB_wrt_fsm(Cmpost_output* Fsm
+ ,T_fsm_phrase* Fsm_phrase);
+ static void MPOST_CWEB_wrt_rule_s_lhs_sdc(Cmpost_output* Fsm,
+ rule_def* Rule_def);
+ static bool MPOST_CWEB_should_subrule_be_printed(Cmpost_output* Fs
+ ,T_subrule_def* Subrule_def);
+ static void MPOST_CWEB_xref_refered_T(Cmpost_output* Fsm
+ ,refered_T* R_T);
+ static void MPOST_CWEB_xref_refered_rule(Cmpost_output* Fsm
+ ,refered_rule* R_rule);
+ static void MPOST_CWEB_LOAD_XLATE_CHRS(Cmpost_output* Fsm);
+ static void MPOST_CWEB_EMIT_PREFIX_CODE(Cmpost_output* Fsm);
+ static void MPOST_CWEB_wrt_T(Cmpost_output* Fsm
+ ,T_terminals_phrase* T_phrase);
+ static void MPOST_CWEB_wrt_Err(Cmpost_output* Fsm
+ ,T_error_symbols_phrase* Err_phrase);
+ static void MPOST_CWEB_wrt_Lrk(Cmpost_output* Fsm
+ ,T_lr1_k_phrase* Lrk_phrase);
+ std::list<NS_yacco2_terminals::rule_def*> rules_for_fs_prt_;
+ static void MPOST_CWEB_crt_rhs_sym_str(state_element* se,std::string* Xlated_str);
+
+ };
+struct Rmpost_output;
+struct Rgrammar_phrase;
+struct Rks_epi;
+struct Rks;
+struct Rk;
+struct Rfsm_phrase;
+struct Rparallel_phrase;
+struct RT_enum_phrase;
+struct Rerr_phrase;
+struct Rrc_phrase;
+struct Rlr1_k_phrase;
+struct Rterms_phrase;
+struct Rrule_phrase;
+struct Rrules;
+struct Rrule;
+struct Rrule_def;
+struct Rsubrules;
+struct Rsubrule;
+struct Rsubrule_def;
+struct Relements;
+struct Relement;
+struct Rmpost_output:public yacco2::CAbs_lr1_sym {
+ Rmpost_output(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rgrammar_phrase:public yacco2::CAbs_lr1_sym {
+ Rgrammar_phrase(yacco2::Parser* P);
+ public:
+};
+
+struct Rks_epi:public yacco2::CAbs_lr1_sym {
+ Rks_epi(yacco2::Parser* P);
+ public:
+};
+
+struct Rks:public yacco2::CAbs_lr1_sym {
+ Rks(yacco2::Parser* P);
+ public:
+};
+
+struct Rk:public yacco2::CAbs_lr1_sym {
+ Rk(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rfsm_phrase:public yacco2::CAbs_lr1_sym {
+ Rfsm_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rparallel_phrase:public yacco2::CAbs_lr1_sym {
+ Rparallel_phrase(yacco2::Parser* P);
+ public:
+};
+
+struct RT_enum_phrase:public yacco2::CAbs_lr1_sym {
+ RT_enum_phrase(yacco2::Parser* P);
+ public:
+};
+
+struct Rerr_phrase:public yacco2::CAbs_lr1_sym {
+ Rerr_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rrc_phrase:public yacco2::CAbs_lr1_sym {
+ Rrc_phrase(yacco2::Parser* P);
+ public:
+};
+
+struct Rlr1_k_phrase:public yacco2::CAbs_lr1_sym {
+ Rlr1_k_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rterms_phrase:public yacco2::CAbs_lr1_sym {
+ Rterms_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rrule_phrase:public yacco2::CAbs_lr1_sym {
+ Rrule_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rrules:public yacco2::CAbs_lr1_sym {
+ Rrules(yacco2::Parser* P);
+ public:
+};
+
+struct Rrule:public yacco2::CAbs_lr1_sym {
+ Rrule(yacco2::Parser* P);
+ public:
+};
+
+struct Rrule_def:public yacco2::CAbs_lr1_sym {
+ Rrule_def(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rsubrules:public yacco2::CAbs_lr1_sym {
+ Rsubrules(yacco2::Parser* P);
+ public:
+};
+
+struct Rsubrule:public yacco2::CAbs_lr1_sym {
+ Rsubrule(yacco2::Parser* P);
+ public:
+};
+
+struct Rsubrule_def:public yacco2::CAbs_lr1_sym {
+ Rsubrule_def(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Relements:public yacco2::CAbs_lr1_sym {
+ Relements(yacco2::Parser* P);
+ public:
+};
+
+struct Relement:public yacco2::CAbs_lr1_sym {
+ Relement(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+ void sr5();
+ void sr6();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/mpost_output.lex b/web/yacco2/compiler/grammars/mpost_output.lex
new file mode 100644
index 0000000000..0dab939444
--- /dev/null
+++ b/web/yacco2/compiler/grammars/mpost_output.lex
@@ -0,0 +1,856 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: mpost_output.lex
+Dates: 29 Nov. 2005
+Purpose: Create Pascal type railroad diagrams per grammar rule.
+ The output file is code for Mpost to generate the diagrams.
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |mpost_output| Grammar.\fbreak
+Write out the |cweb|'s representation of the grammar's code
+and |mpost|'s railroad diagrams.
+These appropriate files have the grammar's name along
+with extension ``w'' for
+|cweave| to compile and extension ``mp'' for |mpost| to draw from.
+
+Enjoy the art work. All the grammar's vocabulary are cross referenced
+to accomodate the grammar writer.
+The railroad diagrams show left recursion and
+where the subrule has appropriate syntax directed code, it redraws the
+subrule with each element's position number below it.
+This aids in the writing of syntax directed code
+when individual parameters are referenced
+ by use of the |sf| stack frame structure.
+Each element within the stack frame has a naming convention of
+|p#__| where the number sign is the element's
+position within the subrule sentence relative to 1.\fbreak
+\fbreak
+Fodder to this grammar is provided by
+the tree container doing a prefix traverse.
+Why a prefix traverse?
+The parent node allowed me to declare
+the |mpost| variables before their use.\fbreak
+
+Caveat: Grammar c++ comments must observe |cweave|
+dictums: underscored items like variable names must
+be enclosed with ${\vert}$ and the number sign
+``\#'' must use its literal of backslash \#. Without
+these observances, |pdftex| will honk.
+
+
+@/
+fsm
+(fsm-id "mpost_output.lex",fsm-filename mpost_output,fsm-namespace NS_mpost_output
+,fsm-class Cmpost_output{
+ constructor
+ MPOST_CWEB_LOAD_XLATE_CHRS(this);
+ ***
+user-prefix-declaration
+#include "time.h"
+#include "o2_externs.h"
+extern void XLATE_SYMBOLS_FOR_cweave(const char* Sym_to_xlate,char* Xlated_sym);
+extern void PRT_RULE_S_FIRST_SET(std::ofstream& Ofile,NS_yacco2_terminals::rule_def* Rule_def);
+extern int MPOST_CWEB_xlated_symbol(AST* Sym,char* Xlated_sym);
+extern STATES_type LR1_STATES;
+extern COMMON_LA_SETS_type COMMON_LA_SETS;
+#include "cweave_fsm_sdc.h"
+#include "cweave_lhs_sdc.h"
+#include "cweave_sdc.h"
+#include "cweave_T_sdc.h"
+ ***
+ user-declaration
+ public:
+ char big_buf_[BIG_BUFFER_32K];
+ std::map <int , std::string> xlated_names_;
+ std::vector <int> no_subrules_per_rule_;
+ std::string gened_date_time_;
+ std::string mp_filename_;
+ std::ofstream omp_file_;
+ std::string w_filename_;
+ std::string w_index_filename_;
+ std::ofstream ow_file_;
+ std::ofstream ow_index_file_;
+ std::ofstream ow_t_file_;
+ std::ofstream ow_err_file_;
+ std::ofstream ow_lrk_file_;
+ std::string grammar_filename_prefix_;
+ std::string fq_filename_noext_;
+ int w_fig_no_;
+ int rule_no_;
+ int subrule_no_;
+ int elem_no_;
+ int no_of_rules_;
+ int no_of_subrules_;
+ std::string rule_name_;
+ std::string elem_name_;
+ rule_def* rule_def_;
+ T_subrule_def* subrule_def_;
+ std::string mp_dimension_;
+ static void MPOST_CWEB_gen_dimension_name(Cmpost_output* Fsm
+ ,std::string& Mp_obj_name,int Dimension);
+ static void MPOST_CWEB_calc_mp_obj_name(Cmpost_output* Fsm
+ ,std::string& Mp_obj_name,int Elem_no);
+ static void MPOST_CWEB_wrt_mp_rhs_elem(Cmpost_output* Fsm
+ ,std::string& Elem_name,std::string& Drw_how);
+ static void MPOST_CWEB_gen_sr_elem_xrefs(Cmpost_output* Fsm
+ ,AST* Subrule_tree);
+ static void MPOST_CWEB_woutput_sr_sdcode(Cmpost_output* Fsm
+ ,T_subrule_def* Subrule_def);
+ static void MPOST_CWEB_wrt_fsm(Cmpost_output* Fsm
+ ,T_fsm_phrase* Fsm_phrase);
+ static void MPOST_CWEB_wrt_rule_s_lhs_sdc(Cmpost_output* Fsm,
+ rule_def* Rule_def);
+ static bool MPOST_CWEB_should_subrule_be_printed(Cmpost_output* Fs
+ ,T_subrule_def* Subrule_def);
+ static void MPOST_CWEB_xref_refered_T(Cmpost_output* Fsm
+ ,refered_T* R_T);
+ static void MPOST_CWEB_xref_refered_rule(Cmpost_output* Fsm
+ ,refered_rule* R_rule);
+ static void MPOST_CWEB_LOAD_XLATE_CHRS(Cmpost_output* Fsm);
+ static void MPOST_CWEB_EMIT_PREFIX_CODE(Cmpost_output* Fsm);
+ static void MPOST_CWEB_wrt_T(Cmpost_output* Fsm
+ ,T_terminals_phrase* T_phrase);
+ static void MPOST_CWEB_wrt_Err(Cmpost_output* Fsm
+ ,T_error_symbols_phrase* Err_phrase);
+ static void MPOST_CWEB_wrt_Lrk(Cmpost_output* Fsm
+ ,T_lr1_k_phrase* Lrk_phrase);
+ std::list<NS_yacco2_terminals::rule_def*> rules_for_fs_prt_;
+ static void MPOST_CWEB_crt_rhs_sym_str(state_element* se,std::string* Xlated_str);
+ ***
+/@
+Due to a MS 2005 Visual Studio defficiency,
+part of the ctor's initialization is included here
+instead of all being done by
+|MPOST_CWEB_EMIT_PREFIX_CODE|.
+The reason is noted in the documentation of |o2externs|.
+@/
+ op
+no_subrules_per_rule_.push_back(0);
+time_t theTime= time(0);
+char*cTime= ctime(&theTime);
+gened_date_time_+= string(cTime);
+int n= gened_date_time_.find('\n');
+gened_date_time_[n]= ' ';
+
+mp_dimension_+= " abcdefghijklmnopqrstuvwxyz";
+w_fig_no_= 0;
+rule_def_= 0;
+subrule_def_= 0;
+rule_no_= 0;
+subrule_no_= 0;
+elem_no_= 0;
+no_of_rules_= 0;
+no_of_subrules_= 0;
+mp_filename_+= grammar_filename_prefix_.c_str();
+mp_filename_+= ".mp";
+omp_file_.open(mp_filename_.c_str(),ios_base::out|ios::trunc);
+if(!omp_file_){
+CAbs_lr1_sym*sym= new Err_bad_filename(mp_filename_.c_str());
+ sym->set_who_created(__FILE__,__LINE__);
+parser__->add_token_to_error_queue(*sym);
+parser__->set_stop_parse(true);
+return;
+}
+w_filename_+= grammar_filename_prefix_.c_str();
+w_filename_+= ".w";
+ow_file_.open(w_filename_.c_str(),ios_base::out|ios::trunc);
+if(!ow_file_){
+CAbs_lr1_sym*sym= new Err_bad_filename(w_filename_.c_str());
+ sym->set_who_created(__FILE__,__LINE__);
+parser__->add_token_to_error_queue(*sym);
+parser__->set_stop_parse(true);
+return;
+}
+w_index_filename_+= grammar_filename_prefix_.c_str();
+w_index_filename_+= "_idx.w";
+ow_index_file_.open(w_index_filename_.c_str(),ios_base::out|ios::trunc);
+if(!ow_index_file_){
+CAbs_lr1_sym*sym= new Err_bad_filename(w_index_filename_.c_str());
+ sym->set_who_created(__FILE__,__LINE__);
+parser__->add_token_to_error_queue(*sym);
+parser__->set_stop_parse(true);
+return;
+}
+
+
+KCHARP t_file = "T.w";
+ow_t_file_.open(t_file,ios_base::out|ios::trunc);
+if(!ow_t_file_){
+CAbs_lr1_sym*sym= new Err_bad_filename(t_file);
+ sym->set_who_created(__FILE__,__LINE__);
+parser__->add_token_to_error_queue(*sym);
+parser__->set_stop_parse(true);
+return;
+}
+KCHARP err_file = "Err.w";
+ow_err_file_.open(err_file,ios_base::out|ios::trunc);
+if(!ow_err_file_){
+CAbs_lr1_sym*sym= new Err_bad_filename(err_file);
+ sym->set_who_created(__FILE__,__LINE__);
+parser__->add_token_to_error_queue(*sym);
+parser__->set_stop_parse(true);
+return;
+}
+
+KCHARP lrk_file = "Lrk.w";
+ow_lrk_file_.open(lrk_file,ios_base::out|ios::trunc);
+if(!ow_lrk_file_){
+CAbs_lr1_sym*sym= new Err_bad_filename(lrk_file);
+ sym->set_who_created(__FILE__,__LINE__);
+parser__->add_token_to_error_queue(*sym);
+parser__->set_stop_parse(true);
+return;
+}
+
+ MPOST_CWEB_EMIT_PREFIX_CODE(this);
+ ***
+}
+,fsm-version "1.0",fsm-date "29 Nov. 2005",fsm-debug "false"
+,fsm-comments "Output grammar rules railroad diagrams for mpost that cweb program uses.")
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rmpost_output
+
+/@
+Note how i use the sentence recognition to
+complete |mpost| figures.
+The individual figures are defined before their execution.
+@/
+(){
+ -> Rgrammar_phrase
+ Rks_epi
+ Rfsm_phrase
+ Rks_epi
+ Rparallel_phrase
+ Rks_epi
+ RT_enum_phrase
+ Rks_epi
+ Rlr1_k_phrase
+ Rks_epi
+ Rrc_phrase
+ Rks_epi
+ Rterms_phrase
+ Rks_epi
+ Rerr_phrase
+ Rks_epi
+ Rrule_phrase
+ Rrules
+ Rks_epi
+ eog {
+ op
+ Cmpost_output* fsm = (Cmpost_output*)rule_info__.parser__->fsm_tbl__;
+ KCHARP mp_init_vars = "init_variables;";
+ fsm->omp_file_ << mp_init_vars << endl;
+ KCHARP mp_figure =
+ "beginfig(%i);\n"
+ " drw_rule(%i);\n"
+ "endfig;";
+ KCHARP sr_figure =
+ "beginfig(%i);\n"
+ " drw_rule_a_rhs(%i,%i);\n"
+ "endfig;";
+
+ int rule_no = 1;
+ int fig_no(0);
+ for(;rule_no <= fsm->no_of_rules_;++rule_no){
+ ++fig_no;
+ sprintf(fsm->big_buf_,mp_figure,fig_no,rule_no);
+ fsm->omp_file_ << fsm->big_buf_ << endl;
+ int no_srs = fsm->no_subrules_per_rule_[rule_no];
+ int sr_no(1);
+ for(;sr_no <= no_srs;++sr_no){
+ ++fig_no;
+ sprintf(fsm->big_buf_,sr_figure,fig_no,rule_no,sr_no);
+ fsm->omp_file_ << fsm->big_buf_ << endl;
+ }
+ }
+
+ KCHARP mp_end = "end;";
+ fsm->omp_file_ << mp_end << endl;
+ fsm->omp_file_.close();
+ KCHARP w_fsc_file =
+ "@** First Set Language for \\Olinker.\\fbreak\n"
+ "\\openin 1 = \"%s.fsc\"\n" // macro file open
+ "\\ifeof 1 true\n" // test the result
+ " \\closein 1\n"
+ "\\else\n"
+ " \\closein 1\n"
+ " \\listing{\"%s.fsc\"}"
+ "\\fi";
+ sprintf(fsm->big_buf_,w_fsc_file,fsm->fq_filename_noext_.c_str()
+ ,fsm->fq_filename_noext_.c_str());
+ fsm->ow_file_ << fsm->big_buf_ << endl;
+
+ KCHARP w_lr1_states =
+ "@** Lr1 State Network.\\fbreak\n"
+ "\\statecolumnspace %s";
+ sprintf(fsm->big_buf_,w_lr1_states," ");
+ fsm->ow_file_ << fsm->big_buf_ << endl;
+ KCHARP w_stateno = // stateno, vectored into symbol, conflict
+ "\\stateno{%i} {%s} {%s}\n"
+ "\\halign{\n"
+ "\\span\\statetemplate\n"
+ "\\statetitle";
+ char vectored_into[Max_cweb_item_size];
+ char rule_name[Max_cweb_item_size];
+ char subrule_sym[Max_cweb_item_size];
+ char cur_sym[Max_cweb_item_size];
+ char nxtsym_1[Max_cweb_item_size];
+ char nxtsym_2[Max_cweb_item_size];
+ char state_type[Max_cweb_item_size];
+ char la_set_no[Max_cweb_item_size];
+ string w_possible_ar_code;
+
+ KCHARP la_set_no_template = "%i";
+ KCHARP state_type_template = "%s";
+ KCHARP three_symbols_string_template =
+ "%s %s %s"; // 3 symbols: current and 2 la
+ KCHARP w_stateno_subrule =
+ "{%s}&\n" // closure or transitive
+ "{%s}&\n" // rule
+ "{%i\\hss}&\n" // rule no
+ "{%i\\hss}&\n" // subrule no
+ "{%i\\hss}&\n" // element pos
+ "{%s}&\n" // current symbol
+ "{%i\\hss}&\n" // born state no
+ "{%i\\hss}&\n" // goto state no
+ "{%i\\hss}&\n" // reduced state no
+ "{%s\\hss}\\cr"; // la set if reduced
+ int fnd_reduced_stateno(0);
+
+ STATES_ITER_type si = LR1_STATES.begin();
+ STATES_ITER_type sie = LR1_STATES.end();
+ for(;si!=sie;++si){// walk the states
+ vectored_into[0] = (char)0;
+ w_possible_ar_code.clear();
+ state_type[0] = (char)0;
+ state* cur_state = *si;
+
+ if(cur_state->state_no_ != 1){// state 1 vector into is empty
+ XLATE_SYMBOLS_FOR_cweave
+ (cur_state->entry_symbol_literal(),vectored_into);
+ }
+ switch (cur_state->state_type_){
+ case 0:{//shift only
+ sprintf(state_type,state_type_template,"\\Shiftonly");
+ break;
+ }
+ case 1:{
+ sprintf(state_type,state_type_template,"\\Reduceonly");
+ break;
+ }
+ case 2:{
+ sprintf(state_type,state_type_template,"\\ShiftReduce");
+ break;
+ }
+ case 3:{
+ sprintf(state_type,state_type_template,"\\MultipleReduces");
+ break;
+ }
+ case 4:{
+ sprintf(state_type,state_type_template,"\\ShiftandMultipleReduces");
+ break;
+ }
+ }
+ w_possible_ar_code.append(vectored_into);
+ if (cur_state->vectored_into_by_elem_ == LR1_PARALLEL_OPERATOR){
+ // add arbitration code? to |vectored_into| string
+ if (cur_state->arbitrator_name_ != 0){
+ w_possible_ar_code += "\\ arbitration-code: \\ |";
+ w_possible_ar_code += cur_state->arbitrator_name_->c_str();
+ w_possible_ar_code += "|";
+ }else{
+ w_possible_ar_code += "\\ arbitration-code: \\ \\epsilon";
+ }
+ }
+ sprintf(fsm->big_buf_
+ ,w_stateno
+ ,cur_state->state_no_
+ ,w_possible_ar_code.c_str()//|vectored_into|
+ ,state_type);
+ fsm->ow_file_ << fsm->big_buf_ << endl;
+ S_VECTORS_ITER_type svi = cur_state->state_s_vector_.begin();
+ S_VECTORS_ITER_type svie = cur_state->state_s_vector_.end();
+ string rhs_syms_str;
+ for(;svi!=svie;++svi){
+ S_VECTOR_ELEMS_ITER_type seli = svi->second.begin();
+ S_VECTOR_ELEMS_ITER_type selie = svi->second.end();
+ for(;seli!=selie;++seli){
+ rhs_syms_str.clear();
+ state_element* se = *seli;
+ rule_def* rd = se->subrule_def_->its_rule_def();
+ T_subrule_def* srd = se->subrule_def_;
+ rule_name[0] = (char)0;
+ subrule_sym[0] = (char)0;
+ cur_sym[0] = (char)0;
+ la_set_no[0] = (char)0;
+
+ XLATE_SYMBOLS_FOR_cweave(rd->rule_name()->c_str(),rule_name);
+ int elem_pos(0);
+ if(se->previous_state_ == 0) elem_pos = 1;
+ elem_pos = MPOST_CWEB_xlated_symbol(se->sr_element_,cur_sym);
+ if(se->goto_state_==0){// reducing subrule
+ sprintf(la_set_no,la_set_no_template,se->common_la_set_idx_+1);
+ }else{// no la set
+ }
+
+ if (se->reduced_state_ != 0) {
+ fnd_reduced_stateno = se->reduced_state_->state_no_;
+ }
+ else{ // find from merged into
+ fnd_reduced_stateno=-1;
+ if (se->next_state_element_->reduced_state_ != 0){
+ fnd_reduced_stateno = se->next_state_element_->reduced_state_->state_no_;
+ }
+ }
+ fsm->MPOST_CWEB_crt_rhs_sym_str(se,&rhs_syms_str);
+ sprintf(fsm->big_buf_
+ ,w_stateno_subrule
+ ,(elem_pos == 1)?"c":"t"
+ ,rule_name
+ ,rd->rule_no()
+ ,srd->subrule_no_of_rule()
+ ,elem_pos
+ ,rhs_syms_str.c_str()
+ ,se->closure_state_->state_no_
+ ,(se->goto_state_ !=0)?se->goto_state_->state_no_:0
+ ,fnd_reduced_stateno
+ ,la_set_no
+ );
+ fsm->ow_file_ << fsm->big_buf_ << endl;
+ }
+ }
+ fsm->ow_file_ << "}" << endl;
+ }
+ KCHARP w_end = "@** Index.";
+ fsm->ow_file_ << w_end << endl;
+ fsm->ow_file_.close();
+ ***
+ }
+}
+
+Rgrammar_phrase (){
+ -> "grammar-phrase"
+}
+
+Rks_epi
+/@
+Due to technical problems with the |convertMPtoPDF| macro,
+the epsilon subrule is drawn with a dot.
+@/
+(){
+ -> Rks
+ ->
+}
+
+Rks (){
+ -> Rks Rk
+ -> Rk
+}
+
+Rk (){
+ -> "cweb-marker" {
+ op
+ Cmpost_output* fsm = (Cmpost_output*)rule_info__.parser__->fsm_tbl__;
+ WRT_CWEB_MARKER(&fsm->ow_file_,sf->p1__->ast());
+ ***
+ }
+}
+
+Rfsm_phrase (){
+ -> "fsm-phrase" {
+ op
+ Cmpost_output* fsm = (Cmpost_output*)rule_info__.parser__->fsm_tbl__;
+ fsm->MPOST_CWEB_wrt_fsm(fsm,sf->p1__);
+ ***
+ }
+}
+
+Rparallel_phrase (){
+ -> "parallel-parser-phrase"
+ -> |.|
+}
+
+RT_enum_phrase (){
+ -> "T-enum-phrase"
+}
+
+Rerr_phrase (){
+ -> "error-symbols-phrase" {
+ op
+ Cmpost_output* fsm = (Cmpost_output*)rule_info__.parser__->fsm_tbl__;
+ fsm->MPOST_CWEB_wrt_Err(fsm,sf->p1__);
+ ***
+ }
+}
+
+Rrc_phrase (){
+ -> "rc-phrase"
+}
+
+Rlr1_k_phrase (){
+ -> "lr1-k-phrase" {
+ op
+ Cmpost_output* fsm = (Cmpost_output*)rule_info__.parser__->fsm_tbl__;
+ fsm->MPOST_CWEB_wrt_Lrk(fsm,sf->p1__);
+ ***
+ }
+}
+
+Rterms_phrase (){
+ -> "terminals-phrase" {
+ op
+ Cmpost_output* fsm = (Cmpost_output*)rule_info__.parser__->fsm_tbl__;
+ fsm->MPOST_CWEB_wrt_T(fsm,sf->p1__);
+ ***
+ }
+}
+
+Rrule_phrase
+/@
+Define the number of rules for |mpost|.
+@/
+(){
+ -> "rules-phrase" {
+ op
+ Cmpost_output* fsm = (Cmpost_output*)rule_info__.parser__->fsm_tbl__;
+ fsm->no_of_rules_ = sf->p1__->rules_alphabet()->size();
+ KCHARP mp_no_of_rules = "no_of_rules := %i;";
+ sprintf(fsm->big_buf_,mp_no_of_rules,fsm->no_of_rules_);
+ fsm->omp_file_ << fsm->big_buf_ << endl;
+ ***
+ }
+}
+
+Rrules (){
+ -> Rks_epi Rrule
+ -> Rrules Rks_epi Rrule
+}
+
+Rrule (){
+ -> Rrule_def Rsubrules
+}
+
+Rrule_def
+/@
+Define rule for |mpost| and |cweb|.
+To help the grammar writer, walk the rule's subrules to generate
+a |cweb| cross-reference per subrule element.
+Originally this was done at the subrule level
+to be specific to the subrule entry instead of at the overall
+rule level.
+This meant that each subrule had to be redrawn with a |cweb|
+directive
+even when there was no syntax directed code present.
+Just ugly is my take so i follow Occam's dictum.
+@/
+(){
+ -> "rule-def" {
+ op
+ Cmpost_output* fsm = (Cmpost_output*)rule_info__.parser__->fsm_tbl__;
+ fsm->rule_def_ = sf->p1__;
+ fsm->rules_for_fs_prt_.push_back(fsm->rule_def_);
+ KCHARP rname = fsm->rule_def_->rule_name()->c_str();
+ ++fsm->w_fig_no_;
+ ++fsm->rule_no_;
+ fsm->subrule_no_ = 0;
+
+ KCHARP mp_rule_names =
+ "rule_names[%i].literal := \"%s\";"
+ "rule_names[%i].vname := \"%s\";";
+
+ sprintf(fsm->big_buf_,mp_rule_names,fsm->rule_no_,rname,fsm->rule_no_,rname);
+ fsm->omp_file_ << fsm->big_buf_ << endl;
+
+ T_subrules_phrase* sr_ph = fsm->rule_def_->subrules();
+ fsm->no_of_subrules_ = sr_ph->no_subrules();
+ KCHARP mp_rule_s_no_rhs = "rule_s_no_rhs[%i] := %i;";
+ sprintf(fsm->big_buf_,mp_rule_s_no_rhs
+ ,fsm->rule_no_,fsm->no_of_subrules_);
+ fsm->omp_file_ << fsm->big_buf_ << endl;
+ fsm->no_subrules_per_rule_.push_back(fsm->no_of_subrules_);//[rule \#]
+
+ KCHARP rule_cweb =
+ "@*2 |@!%s| rule.\\fbreak\n";
+ sprintf(fsm->big_buf_,rule_cweb,rname);
+ fsm->ow_file_ << fsm->big_buf_;
+ if(fsm->rule_def_->cweb_marker() != 0){
+ WRT_CWEB_MARKER(&fsm->ow_file_,fsm->rule_def_->cweb_marker());
+ }
+ KCHARP rule_cweb_diagram =
+ "\\fbreak\n"
+ "\\convertMPtoPDF{%s.%i}{1}{1}\n";
+ sprintf(fsm->big_buf_,rule_cweb_diagram
+ ,fsm->grammar_filename_prefix_.c_str()
+ ,fsm->w_fig_no_);
+ fsm->ow_file_ << fsm->big_buf_;
+ std::vector<T_subrule_def*>* srules = sr_ph->subrules();
+ std::vector<T_subrule_def*>::iterator i = srules->begin();
+ std::vector<T_subrule_def*>::iterator ie = srules->end();
+ for(;i!=ie;++i){
+ T_subrule_def* srd = *i;
+ fsm->MPOST_CWEB_gen_sr_elem_xrefs(fsm,srd->subrule_s_tree());
+ }
+ fsm->MPOST_CWEB_wrt_rule_s_lhs_sdc(fsm,fsm->rule_def_);
+
+ ***
+ }
+}
+
+Rsubrules (){
+ -> Rsubrule
+ -> Rsubrules Rsubrule
+}
+
+Rsubrule (){
+ -> Rsubrule_def Relements
+}
+
+Rsubrule_def (){
+ -> "subrule-def" {
+ /@
+ The |eosubrule| T has no meaning in the drawn subrule.
+ It is just a specific end-of-subrule indicator.
+ So it is removed from the rhs element count of the subrule
+ for |mpost| processing so that it does not get drawn.
+ The balance of the logic relates to |cweb|'s document:
+ comments about the subrule and
+ the appropriate |mpost| rendering.
+
+ One subtlety is the forced drawing of a single
+ subrule that also has a rule's lhs syntax directed code.
+ Normally i save the redrawing of the subrule as the
+ forest and the tree is the same. But
+ having the rule syntax code requires to have
+ the subrule directive. Without it there are 2
+ code directives back-to-back that honks.
+@/
+ op
+ Cmpost_output* fsm = (Cmpost_output*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->w_fig_no_;
+ ++fsm->subrule_no_;
+ fsm->elem_no_ = 0;
+ fsm->subrule_def_ = sf->p1__;
+ int no_elements = fsm->subrule_def_->no_of_elems()-1;
+ if(no_elements == 0) no_elements = 1;// epsilon subrule
+ KCHARP mp_rule_s_subrule_no_elems = "rule_s_subrule_no_elems[%i][%i]:= %i;";
+ sprintf(fsm->big_buf_,mp_rule_s_subrule_no_elems
+ ,fsm->rule_no_,fsm->subrule_no_,no_elements);
+ fsm->omp_file_ << fsm->big_buf_ << endl;
+
+ if(fsm->MPOST_CWEB_should_subrule_be_printed(fsm,fsm->subrule_def_)
+ == false) return;
+
+ KCHARP rname = fsm->rule_def_->rule_name()->c_str();
+
+ KCHARP subrule_cweb =
+ "@*3 |%s|'s subrule %i.\\fbreak\n";
+ if((fsm->rule_def_->rule_lhs() != 0)
+ ||
+ (fsm->no_of_subrules_ > 1)){
+ sprintf(fsm->big_buf_,subrule_cweb,rname,fsm->subrule_no_);
+ fsm->ow_file_ << fsm->big_buf_;
+ }
+ if(fsm->subrule_def_->cweb_marker() != 0){
+ WRT_CWEB_MARKER(&fsm->ow_file_,fsm->subrule_def_->cweb_marker());
+ cout << "subrule's cweb marker for rule: " << rname << endl;
+ }else{
+ cout << "no subrule's cweb marker for rule: " << rname << endl;
+ }
+
+ KCHARP subrule_cweb_diagram =
+ "\\fbreak"
+ "\\convertMPtoPDF{%s.%i}{1}{1}\n";
+ if((fsm->rule_def_->rule_lhs() != 0)
+ ||
+ (fsm->no_of_subrules_ > 1)){
+ sprintf(fsm->big_buf_,subrule_cweb_diagram
+ ,fsm->grammar_filename_prefix_.c_str()
+ ,fsm->w_fig_no_);
+ fsm->ow_file_ << fsm->big_buf_;
+ }
+
+ fsm->MPOST_CWEB_woutput_sr_sdcode(fsm,fsm->subrule_def_);
+ ***
+ }
+}
+
+Relements (){
+ -> Relement
+ -> Relements Relement
+}
+
+Relement
+/@
+Use of \invisibleshift to make grammar lr(1).
+@/
+(){
+ -> "refered-T" |.| {
+/@
+Why is there a test for ${\backslash}$" within the T?
+Glad u asked as |mpost| has problems dealing with
+this legitimate escape sequence and the double
+quote sequence within the c string.
+So this was my 1st attempt to silence the honk.
+Unfortunately the char(34) |mpost| operator does
+not convert the 34 into
+the " character.
+For the moment i will leave this as is. U will see other attempts
+like this throughout the grammar.
+@/
+
+ op
+ Cmpost_output* fsm = (Cmpost_output*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ std::string mp_obj_type("Circle_solid");
+ std::string mp_elem_name(sf->p1__->t_in_stbl()->t_def()->t_name()->c_str());
+ string::size_type x = mp_elem_name.find("\\\"");
+ if(x != string::npos){
+ mp_elem_name.clear();
+ mp_elem_name+= "char(34)";
+ }
+ fsm->MPOST_CWEB_wrt_mp_rhs_elem(fsm,mp_elem_name,mp_obj_type);
+ ***
+ }
+ -> "refered-rule" {
+ op
+ Cmpost_output* fsm = (Cmpost_output*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ std::string mp_obj_type("Box_solid");
+ std::string mp_elem_name(sf->p1__->Rule_in_stbl()->
+ r_def()->rule_name()->c_str());
+ fsm->MPOST_CWEB_wrt_mp_rhs_elem(fsm,mp_elem_name,mp_obj_type);
+ ***
+ }
+ -> "eosubrule" {
+ op
+ Cmpost_output* fsm = (Cmpost_output*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ if(fsm->elem_no_ == 1){// epsilon
+ std::string mp_obj_type("Circle_solid");
+ std::string mp_elem_name(" ");
+ fsm->MPOST_CWEB_wrt_mp_rhs_elem(fsm,mp_elem_name,mp_obj_type);
+ }
+ ***
+ }
+ -> "refered-T" "refered-T" "called thread eosubrule" {
+ /@
+ Why is there a re-aligning on the number of
+ |rule_s_subrule_no_elems|?
+ Two reasons: Due to the tree walk being
+ top down, initially the number of items are determined
+ by the |subrule-def| T before processing the actual subrule sentence.
+ Due to the calling of threads, this number gets shrunk as i
+ combine the 3 parts of the called thread into 1 item.
+ Though it looks like a mistake in the emitted |mpost| code,
+ it's a slight inefficiency to manage a nice picture.\fbreak
+ \fbreak
+ This comment hold for the other version of thread call below.
+ @/
+ op
+ Cmpost_output* fsm = (Cmpost_output*)rule_info__.parser__->fsm_tbl__;
+ KCHARP re_align_nos = "rule_s_subrule_no_elems[%i][%i]:= %i;";
+ sprintf(fsm->big_buf_,re_align_nos
+ ,fsm->rule_no_,fsm->subrule_no_,3);
+ fsm->omp_file_ << fsm->big_buf_ << "% re-align cnt" << endl;
+ ++fsm->elem_no_;
+ std::string mp_obj_type("Circle_dotted");
+ std::string mp_elem_name;
+ if(sf->p1__->its_t_def()->enum_id() == T_Enum::T_LR1_parallel_operator_){
+ mp_elem_name += "|||";
+ }else{
+ mp_elem_name += "|t|";
+ }
+ fsm->MPOST_CWEB_wrt_mp_rhs_elem(fsm,mp_elem_name,mp_obj_type);
+
+ ++fsm->elem_no_;
+ mp_obj_type.clear();
+ mp_obj_type += "Circle_dotted";
+ mp_elem_name.clear();
+ mp_elem_name += sf->p2__->t_in_stbl()->t_def()->t_name()->c_str();
+ string::size_type x = mp_elem_name.find("\\\"");
+ if(x != string::npos){
+ mp_elem_name.erase();
+ mp_elem_name+= "char(34)";
+ }
+ fsm->MPOST_CWEB_wrt_mp_rhs_elem(fsm,mp_elem_name,mp_obj_type);
+
+ ++fsm->elem_no_;
+ mp_elem_name.clear();
+ mp_obj_type.clear();
+ mp_obj_type += "Box_dotted";
+ mp_elem_name += sf->p3__->ns()->identifier()->c_str();
+ mp_elem_name += "::";
+ mp_elem_name += sf->p3__->called_thread_name()->identifier()->c_str();
+ fsm->MPOST_CWEB_wrt_mp_rhs_elem(fsm,mp_elem_name,mp_obj_type);
+ ***
+ }
+ -> "refered-T" "refered-T" "null call thread eosubrule" {
+ op
+ Cmpost_output* fsm = (Cmpost_output*)rule_info__.parser__->fsm_tbl__;
+ KCHARP re_align_nos = "rule_s_subrule_no_elems[%i][%i]:= %i;";
+ sprintf(fsm->big_buf_,re_align_nos,fsm->rule_no_,fsm->subrule_no_,3);
+ fsm->omp_file_ << fsm->big_buf_ << "% re-align cnt" << endl;
+
+ ++fsm->elem_no_;
+ std::string mp_obj_type("Circle_dotted");
+ std::string mp_elem_name;
+ if(sf->p1__->its_t_def()->enum_id() == T_Enum::T_LR1_parallel_operator_){
+ mp_elem_name += "|||";
+ }else{
+ mp_elem_name += "|t|";
+ }
+ fsm->MPOST_CWEB_wrt_mp_rhs_elem(fsm,mp_elem_name,mp_obj_type);
+ mp_elem_name.clear();
+
+ ++fsm->elem_no_;
+ mp_elem_name += sf->p2__->t_in_stbl()->t_def()->t_name()->c_str();
+ string::size_type x = mp_elem_name.find("\\\"");
+ if(x != string::npos){
+ mp_elem_name.clear();
+ mp_elem_name+= "char(34)";
+ }
+ fsm->MPOST_CWEB_wrt_mp_rhs_elem(fsm,mp_elem_name,mp_obj_type);
+
+ ++fsm->elem_no_;
+ mp_elem_name.clear();
+ mp_obj_type.clear();
+ mp_obj_type += "Box_dotted";
+ mp_elem_name += "NULL";
+ fsm->MPOST_CWEB_wrt_mp_rhs_elem(fsm,mp_elem_name,mp_obj_type);
+ ***
+ }
+ -> "refered-T" "refered-T" |.|{
+ op
+ Cmpost_output* fsm = (Cmpost_output*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ std::string mp_obj_type("Circle_solid");
+ std::string mp_elem_name(sf->p1__->t_in_stbl()->t_def()->t_name()->c_str());
+ string::size_type x = mp_elem_name.find("\\\"");
+ if(x != string::npos){
+ mp_elem_name.erase();
+ mp_elem_name+= "char(34)";
+ }
+ fsm->MPOST_CWEB_wrt_mp_rhs_elem(fsm,mp_elem_name,mp_obj_type);
+
+ ++fsm->elem_no_;
+ mp_obj_type.clear();
+ mp_obj_type += "Circle_solid";
+ mp_elem_name.clear();
+ mp_elem_name += sf->p2__->t_in_stbl()->t_def()->t_name()->c_str();
+ x = mp_elem_name.find("\\\"");
+ if(x != string::npos){
+ mp_elem_name.erase();
+ mp_elem_name+= "char(34)";
+ }
+ fsm->MPOST_CWEB_wrt_mp_rhs_elem(fsm,mp_elem_name,mp_obj_type);
+ ***
+ }
+}
+
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/mpost_outputsym.cpp b/web/yacco2/compiler/grammars/mpost_outputsym.cpp
new file mode 100644
index 0000000000..aedc21ed5c
--- /dev/null
+++ b/web/yacco2/compiler/grammars/mpost_outputsym.cpp
@@ -0,0 +1,490 @@
+/*
+ File: mpost_outputsym.cpp
+ Date and Time: Fri Jan 30 18:55:16 2015
+*/
+#include "mpost_output.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_mpost_output;// grammar's ns
+// first set terminals
+// monolithic grammar --- no thread
+void
+Cmpost_output::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rmpost_output_:{
+ Rmpost_output* sym;
+ if(re->rule_ == 0){
+ sym = new Rmpost_output(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmpost_output*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 20;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rgrammar_phrase_:{
+ Rgrammar_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rgrammar_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rgrammar_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rks_epi_:{
+ Rks_epi* sym;
+ if(re->rule_ == 0){
+ sym = new Rks_epi(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rks_epi*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rks_epi_:{
+ Rks_epi* sym;
+ if(re->rule_ == 0){
+ sym = new Rks_epi(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rks_epi*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs1_Rks_:{
+ Rks* sym;
+ if(re->rule_ == 0){
+ sym = new Rks(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rks*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rks_:{
+ Rks* sym;
+ if(re->rule_ == 0){
+ sym = new Rks(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rks*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rk_:{
+ Rk* sym;
+ if(re->rule_ == 0){
+ sym = new Rk(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rk*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rfsm_phrase_:{
+ Rfsm_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rfsm_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfsm_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rparallel_phrase_:{
+ Rparallel_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rparallel_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rparallel_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rparallel_phrase_:{
+ Rparallel_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rparallel_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rparallel_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_RT_enum_phrase_:{
+ RT_enum_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new RT_enum_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RT_enum_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rerr_phrase_:{
+ Rerr_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rerr_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rerr_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rrc_phrase_:{
+ Rrc_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rrc_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrc_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rlr1_k_phrase_:{
+ Rlr1_k_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rlr1_k_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlr1_k_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rterms_phrase_:{
+ Rterms_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rterms_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rterms_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rrule_phrase_:{
+ Rrule_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rrule_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrule_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rrules_:{
+ Rrules* sym;
+ if(re->rule_ == 0){
+ sym = new Rrules(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrules*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rrules_:{
+ Rrules* sym;
+ if(re->rule_ == 0){
+ sym = new Rrules(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrules*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ return;}
+ case rhs1_Rrule_:{
+ Rrule* sym;
+ if(re->rule_ == 0){
+ sym = new Rrule(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrule*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rrule_def_:{
+ Rrule_def* sym;
+ if(re->rule_ == 0){
+ sym = new Rrule_def(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrule_def*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rsubrules_:{
+ Rsubrules* sym;
+ if(re->rule_ == 0){
+ sym = new Rsubrules(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsubrules*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rsubrules_:{
+ Rsubrules* sym;
+ if(re->rule_ == 0){
+ sym = new Rsubrules(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsubrules*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rsubrule_:{
+ Rsubrule* sym;
+ if(re->rule_ == 0){
+ sym = new Rsubrule(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsubrule*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rsubrule_def_:{
+ Rsubrule_def* sym;
+ if(re->rule_ == 0){
+ sym = new Rsubrule_def(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsubrule_def*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Relements_:{
+ Relements* sym;
+ if(re->rule_ == 0){
+ sym = new Relements(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Relements*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Relements_:{
+ Relements* sym;
+ if(re->rule_ == 0){
+ sym = new Relements(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Relements*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Relement_:{
+ Relement* sym;
+ if(re->rule_ == 0){
+ sym = new Relement(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Relement*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Relement_:{
+ Relement* sym;
+ if(re->rule_ == 0){
+ sym = new Relement(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Relement*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Relement_:{
+ Relement* sym;
+ if(re->rule_ == 0){
+ sym = new Relement(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Relement*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Relement_:{
+ Relement* sym;
+ if(re->rule_ == 0){
+ sym = new Relement(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Relement*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ sym->sr4();
+ return;}
+ case rhs5_Relement_:{
+ Relement* sym;
+ if(re->rule_ == 0){
+ sym = new Relement(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Relement*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ sym->sr5();
+ return;}
+ case rhs6_Relement_:{
+ Relement* sym;
+ if(re->rule_ == 0){
+ sym = new Relement(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Relement*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ sym->sr6();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/mpost_outputtbl.cpp b/web/yacco2/compiler/grammars/mpost_outputtbl.cpp
new file mode 100644
index 0000000000..7fe3a3cabc
--- /dev/null
+++ b/web/yacco2/compiler/grammars/mpost_outputtbl.cpp
@@ -0,0 +1,1266 @@
+/*
+ File: mpost_outputtbl.cpp
+ Date and Time: Fri Jan 30 18:55:16 2015
+*/
+#include "mpost_output.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_mpost_output;// grammar's ns
+// first set terminals
+// T_fsm_phrase
+// T_cweb_marker
+yacco2::UCHAR LA1_Cmpost_output[] ={
+2
+,41,1
+,46,64
+};
+// LR1_invisible_shift_operator
+// T_fsm_phrase
+// T_parallel_parser_phrase
+// T_enum_phrase
+// T_terminals_phrase
+// T_error_symbols_phrase
+// T_lr1_k_phrase
+// T_rc_phrase
+// rule_def
+// T_rules_phrase
+// LR1_eog
+yacco2::UCHAR LA2_Cmpost_output[] ={
+3
+,0,34
+,41,199
+,42,51
+};
+// LR1_invisible_shift_operator
+// T_parallel_parser_phrase
+yacco2::UCHAR LA3_Cmpost_output[] ={
+2
+,0,32
+,41,2
+};
+// T_enum_phrase
+yacco2::UCHAR LA4_Cmpost_output[] ={
+1
+,41,4
+};
+// T_lr1_k_phrase
+yacco2::UCHAR LA5_Cmpost_output[] ={
+1
+,42,1
+};
+// T_rc_phrase
+yacco2::UCHAR LA6_Cmpost_output[] ={
+1
+,42,2
+};
+// T_terminals_phrase
+yacco2::UCHAR LA7_Cmpost_output[] ={
+1
+,41,64
+};
+// T_error_symbols_phrase
+yacco2::UCHAR LA8_Cmpost_output[] ={
+1
+,41,128
+};
+// T_rules_phrase
+yacco2::UCHAR LA9_Cmpost_output[] ={
+1
+,42,32
+};
+// rule_def
+yacco2::UCHAR LA10_Cmpost_output[] ={
+1
+,42,16
+};
+// rule_def
+// LR1_eog
+yacco2::UCHAR LA11_Cmpost_output[] ={
+2
+,0,2
+,42,16
+};
+// LR1_eolr
+yacco2::UCHAR LA12_Cmpost_output[] ={
+1
+,0,4
+};
+// T_subrule_def
+yacco2::UCHAR LA13_Cmpost_output[] ={
+1
+,42,64
+};
+// rule_def
+// T_cweb_marker
+// LR1_eog
+yacco2::UCHAR LA14_Cmpost_output[] ={
+3
+,0,2
+,42,16
+,46,64
+};
+// refered_T
+// refered_rule
+// T_eosubrule
+yacco2::UCHAR LA15_Cmpost_output[] ={
+2
+,43,10
+,46,2
+};
+// rule_def
+// T_subrule_def
+// T_cweb_marker
+// LR1_eog
+yacco2::UCHAR LA16_Cmpost_output[] ={
+3
+,0,2
+,42,80
+,46,64
+};
+// rule_def
+// T_subrule_def
+// refered_T
+// refered_rule
+// T_eosubrule
+// T_cweb_marker
+// LR1_eog
+yacco2::UCHAR LA17_Cmpost_output[] ={
+4
+,0,2
+,42,80
+,43,10
+,46,66
+};
+// LR1_invisible_shift_operator
+// T_fsm_phrase
+// T_parallel_parser_phrase
+// T_enum_phrase
+// T_terminals_phrase
+// T_error_symbols_phrase
+// T_lr1_k_phrase
+// T_rc_phrase
+// rule_def
+// T_rules_phrase
+// T_cweb_marker
+// LR1_eog
+yacco2::UCHAR LA18_Cmpost_output[] ={
+4
+,0,34
+,41,199
+,42,51
+,46,64
+};
+// LR1_invisible_shift_operator
+// T_parallel_parser_phrase
+// T_cweb_marker
+yacco2::UCHAR LA19_Cmpost_output[] ={
+3
+,0,32
+,41,2
+,46,64
+};
+// T_enum_phrase
+// T_cweb_marker
+yacco2::UCHAR LA20_Cmpost_output[] ={
+2
+,41,4
+,46,64
+};
+// T_lr1_k_phrase
+// T_cweb_marker
+yacco2::UCHAR LA21_Cmpost_output[] ={
+2
+,42,1
+,46,64
+};
+// T_rc_phrase
+// T_cweb_marker
+yacco2::UCHAR LA22_Cmpost_output[] ={
+2
+,42,2
+,46,64
+};
+// T_terminals_phrase
+// T_cweb_marker
+yacco2::UCHAR LA23_Cmpost_output[] ={
+2
+,41,64
+,46,64
+};
+// T_error_symbols_phrase
+// T_cweb_marker
+yacco2::UCHAR LA24_Cmpost_output[] ={
+2
+,41,128
+,46,64
+};
+// T_rules_phrase
+// T_cweb_marker
+yacco2::UCHAR LA25_Cmpost_output[] ={
+2
+,42,32
+,46,64
+};
+// rule_def
+// T_cweb_marker
+yacco2::UCHAR LA26_Cmpost_output[] ={
+2
+,42,16
+,46,64
+};
+extern yacco2::State S1_Cmpost_output;
+extern yacco2::State S2_Cmpost_output;
+extern yacco2::State S3_Cmpost_output;
+extern yacco2::State S4_Cmpost_output;
+extern yacco2::State S5_Cmpost_output;
+extern yacco2::State S6_Cmpost_output;
+extern yacco2::State S7_Cmpost_output;
+extern yacco2::State S8_Cmpost_output;
+extern yacco2::State S9_Cmpost_output;
+extern yacco2::State S10_Cmpost_output;
+extern yacco2::State S11_Cmpost_output;
+extern yacco2::State S12_Cmpost_output;
+extern yacco2::State S13_Cmpost_output;
+extern yacco2::State S14_Cmpost_output;
+extern yacco2::State S15_Cmpost_output;
+extern yacco2::State S16_Cmpost_output;
+extern yacco2::State S17_Cmpost_output;
+extern yacco2::State S18_Cmpost_output;
+extern yacco2::State S19_Cmpost_output;
+extern yacco2::State S20_Cmpost_output;
+extern yacco2::State S21_Cmpost_output;
+extern yacco2::State S22_Cmpost_output;
+extern yacco2::State S23_Cmpost_output;
+extern yacco2::State S24_Cmpost_output;
+extern yacco2::State S25_Cmpost_output;
+extern yacco2::State S26_Cmpost_output;
+extern yacco2::State S27_Cmpost_output;
+extern yacco2::State S28_Cmpost_output;
+extern yacco2::State S29_Cmpost_output;
+extern yacco2::State S30_Cmpost_output;
+extern yacco2::State S31_Cmpost_output;
+extern yacco2::State S32_Cmpost_output;
+extern yacco2::State S33_Cmpost_output;
+extern yacco2::State S34_Cmpost_output;
+extern yacco2::State S35_Cmpost_output;
+extern yacco2::State S36_Cmpost_output;
+extern yacco2::State S37_Cmpost_output;
+extern yacco2::State S38_Cmpost_output;
+extern yacco2::State S39_Cmpost_output;
+extern yacco2::State S40_Cmpost_output;
+extern yacco2::State S41_Cmpost_output;
+extern yacco2::State S42_Cmpost_output;
+extern yacco2::State S43_Cmpost_output;
+extern yacco2::State S44_Cmpost_output;
+extern yacco2::State S45_Cmpost_output;
+extern yacco2::State S46_Cmpost_output;
+extern yacco2::State S47_Cmpost_output;
+extern yacco2::State S48_Cmpost_output;
+extern yacco2::State S49_Cmpost_output;
+extern yacco2::State S50_Cmpost_output;
+extern yacco2::State S51_Cmpost_output;
+extern yacco2::State S52_Cmpost_output;
+extern yacco2::State S53_Cmpost_output;
+extern yacco2::State S54_Cmpost_output;
+extern yacco2::State S55_Cmpost_output;
+extern yacco2::State S56_Cmpost_output;
+struct S1std_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S1std_Cmpost_output S1st_Cmpost_output = {
+ 3
+ ,
+ {// start of table
+ {373,(State*)&S2_Cmpost_output} // shift sym: T_grammar_phrase
+ ,{569,(State*)&S1_Cmpost_output} // accept sym: Rmpost_output
+ ,{570,(State*)&S3_Cmpost_output} // shift sym: Rgrammar_phrase
+ }// end of shift table
+};
+yacco2::State S1_Cmpost_output = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Cmpost_output,0,0,0,0};
+struct S2rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Cmpost_output S2rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cmpost_output,Cmpost_output::rhs1_Rgrammar_phrase_}
+ }// end of reduce table
+};
+yacco2::State S2_Cmpost_output = //State's vectored into symbol: "grammar-phrase"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Cmpost_output,0,0,0};
+struct S3std_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S3std_Cmpost_output S3st_Cmpost_output = {
+ 4
+ ,
+ {// start of table
+ {374,(State*)&S42_Cmpost_output} // shift sym: T_cweb_marker
+ ,{571,(State*)&S4_Cmpost_output} // shift sym: Rks_epi
+ ,{572,(State*)&S43_Cmpost_output} // shift sym: Rks
+ ,{573,(State*)&S45_Cmpost_output} // shift sym: Rk
+ }// end of shift table
+};
+struct S3rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Cmpost_output S3rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cmpost_output,Cmpost_output::rhs2_Rks_epi_}
+ }// end of reduce table
+};
+yacco2::State S3_Cmpost_output = //State's vectored into symbol: "Rgrammar_phrase"
+{3
+,0,0,0,0,(Shift_tbl*)&S3st_Cmpost_output,(Reduce_tbl*)&S3rt_Cmpost_output,0,0,0};
+struct S4std_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S4std_Cmpost_output S4st_Cmpost_output = {
+ 2
+ ,
+ {// start of table
+ {328,(State*)&S46_Cmpost_output} // shift sym: T_fsm_phrase
+ ,{574,(State*)&S5_Cmpost_output} // shift sym: Rfsm_phrase
+ }// end of shift table
+};
+yacco2::State S4_Cmpost_output = //State's vectored into symbol: "Rks_epi"
+{4
+,0,0,0,0,(Shift_tbl*)&S4st_Cmpost_output,0,0,0,0};
+struct S5std_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S5std_Cmpost_output S5st_Cmpost_output = {
+ 4
+ ,
+ {// start of table
+ {374,(State*)&S42_Cmpost_output} // shift sym: T_cweb_marker
+ ,{571,(State*)&S6_Cmpost_output} // shift sym: Rks_epi
+ ,{572,(State*)&S43_Cmpost_output} // shift sym: Rks
+ ,{573,(State*)&S45_Cmpost_output} // shift sym: Rk
+ }// end of shift table
+};
+struct S5rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Cmpost_output S5rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cmpost_output,Cmpost_output::rhs2_Rks_epi_}
+ }// end of reduce table
+};
+yacco2::State S5_Cmpost_output = //State's vectored into symbol: "Rfsm_phrase"
+{5
+,0,0,0,0,(Shift_tbl*)&S5st_Cmpost_output,(Reduce_tbl*)&S5rt_Cmpost_output,0,0,0};
+struct S6std_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S6std_Cmpost_output S6st_Cmpost_output = {
+ 3
+ ,
+ {// start of table
+ {5,(State*)&S47_Cmpost_output} // shift sym: LR1_invisible_shift_operator
+ ,{329,(State*)&S48_Cmpost_output} // shift sym: T_parallel_parser_phrase
+ ,{575,(State*)&S7_Cmpost_output} // shift sym: Rparallel_phrase
+ }// end of shift table
+};
+yacco2::Shift_entry S6ise_Cmpost_output = {5,(State*)&S47_Cmpost_output};
+yacco2::State S6_Cmpost_output = //State's vectored into symbol: "Rks_epi"
+{6
+,0,0,(Shift_entry*)&S6ise_Cmpost_output
+,0,(Shift_tbl*)&S6st_Cmpost_output,0,0,0,0};
+struct S7std_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S7std_Cmpost_output S7st_Cmpost_output = {
+ 4
+ ,
+ {// start of table
+ {374,(State*)&S42_Cmpost_output} // shift sym: T_cweb_marker
+ ,{571,(State*)&S8_Cmpost_output} // shift sym: Rks_epi
+ ,{572,(State*)&S43_Cmpost_output} // shift sym: Rks
+ ,{573,(State*)&S45_Cmpost_output} // shift sym: Rk
+ }// end of shift table
+};
+struct S7rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Cmpost_output S7rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cmpost_output,Cmpost_output::rhs2_Rks_epi_}
+ }// end of reduce table
+};
+yacco2::State S7_Cmpost_output = //State's vectored into symbol: "Rparallel_phrase"
+{7
+,0,0,0,0,(Shift_tbl*)&S7st_Cmpost_output,(Reduce_tbl*)&S7rt_Cmpost_output,0,0,0};
+struct S8std_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S8std_Cmpost_output S8st_Cmpost_output = {
+ 2
+ ,
+ {// start of table
+ {330,(State*)&S49_Cmpost_output} // shift sym: T_enum_phrase
+ ,{576,(State*)&S9_Cmpost_output} // shift sym: RT_enum_phrase
+ }// end of shift table
+};
+yacco2::State S8_Cmpost_output = //State's vectored into symbol: "Rks_epi"
+{8
+,0,0,0,0,(Shift_tbl*)&S8st_Cmpost_output,0,0,0,0};
+struct S9std_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S9std_Cmpost_output S9st_Cmpost_output = {
+ 4
+ ,
+ {// start of table
+ {374,(State*)&S42_Cmpost_output} // shift sym: T_cweb_marker
+ ,{571,(State*)&S10_Cmpost_output} // shift sym: Rks_epi
+ ,{572,(State*)&S43_Cmpost_output} // shift sym: Rks
+ ,{573,(State*)&S45_Cmpost_output} // shift sym: Rk
+ }// end of shift table
+};
+struct S9rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Cmpost_output S9rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cmpost_output,Cmpost_output::rhs2_Rks_epi_}
+ }// end of reduce table
+};
+yacco2::State S9_Cmpost_output = //State's vectored into symbol: "RT_enum_phrase"
+{9
+,0,0,0,0,(Shift_tbl*)&S9st_Cmpost_output,(Reduce_tbl*)&S9rt_Cmpost_output,0,0,0};
+struct S10std_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S10std_Cmpost_output S10st_Cmpost_output = {
+ 2
+ ,
+ {// start of table
+ {336,(State*)&S50_Cmpost_output} // shift sym: T_lr1_k_phrase
+ ,{579,(State*)&S11_Cmpost_output} // shift sym: Rlr1_k_phrase
+ }// end of shift table
+};
+yacco2::State S10_Cmpost_output = //State's vectored into symbol: "Rks_epi"
+{10
+,0,0,0,0,(Shift_tbl*)&S10st_Cmpost_output,0,0,0,0};
+struct S11std_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S11std_Cmpost_output S11st_Cmpost_output = {
+ 4
+ ,
+ {// start of table
+ {374,(State*)&S42_Cmpost_output} // shift sym: T_cweb_marker
+ ,{571,(State*)&S12_Cmpost_output} // shift sym: Rks_epi
+ ,{572,(State*)&S43_Cmpost_output} // shift sym: Rks
+ ,{573,(State*)&S45_Cmpost_output} // shift sym: Rk
+ }// end of shift table
+};
+struct S11rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Cmpost_output S11rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cmpost_output,Cmpost_output::rhs2_Rks_epi_}
+ }// end of reduce table
+};
+yacco2::State S11_Cmpost_output = //State's vectored into symbol: "Rlr1_k_phrase"
+{11
+,0,0,0,0,(Shift_tbl*)&S11st_Cmpost_output,(Reduce_tbl*)&S11rt_Cmpost_output,0,0,0};
+struct S12std_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S12std_Cmpost_output S12st_Cmpost_output = {
+ 2
+ ,
+ {// start of table
+ {337,(State*)&S51_Cmpost_output} // shift sym: T_rc_phrase
+ ,{578,(State*)&S13_Cmpost_output} // shift sym: Rrc_phrase
+ }// end of shift table
+};
+yacco2::State S12_Cmpost_output = //State's vectored into symbol: "Rks_epi"
+{12
+,0,0,0,0,(Shift_tbl*)&S12st_Cmpost_output,0,0,0,0};
+struct S13std_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S13std_Cmpost_output S13st_Cmpost_output = {
+ 4
+ ,
+ {// start of table
+ {374,(State*)&S42_Cmpost_output} // shift sym: T_cweb_marker
+ ,{571,(State*)&S14_Cmpost_output} // shift sym: Rks_epi
+ ,{572,(State*)&S43_Cmpost_output} // shift sym: Rks
+ ,{573,(State*)&S45_Cmpost_output} // shift sym: Rk
+ }// end of shift table
+};
+struct S13rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S13rtd_Cmpost_output S13rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cmpost_output,Cmpost_output::rhs2_Rks_epi_}
+ }// end of reduce table
+};
+yacco2::State S13_Cmpost_output = //State's vectored into symbol: "Rrc_phrase"
+{13
+,0,0,0,0,(Shift_tbl*)&S13st_Cmpost_output,(Reduce_tbl*)&S13rt_Cmpost_output,0,0,0};
+struct S14std_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S14std_Cmpost_output S14st_Cmpost_output = {
+ 2
+ ,
+ {// start of table
+ {334,(State*)&S52_Cmpost_output} // shift sym: T_terminals_phrase
+ ,{580,(State*)&S15_Cmpost_output} // shift sym: Rterms_phrase
+ }// end of shift table
+};
+yacco2::State S14_Cmpost_output = //State's vectored into symbol: "Rks_epi"
+{14
+,0,0,0,0,(Shift_tbl*)&S14st_Cmpost_output,0,0,0,0};
+struct S15std_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S15std_Cmpost_output S15st_Cmpost_output = {
+ 4
+ ,
+ {// start of table
+ {374,(State*)&S42_Cmpost_output} // shift sym: T_cweb_marker
+ ,{571,(State*)&S16_Cmpost_output} // shift sym: Rks_epi
+ ,{572,(State*)&S43_Cmpost_output} // shift sym: Rks
+ ,{573,(State*)&S45_Cmpost_output} // shift sym: Rk
+ }// end of shift table
+};
+struct S15rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S15rtd_Cmpost_output S15rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA8_Cmpost_output,Cmpost_output::rhs2_Rks_epi_}
+ }// end of reduce table
+};
+yacco2::State S15_Cmpost_output = //State's vectored into symbol: "Rterms_phrase"
+{15
+,0,0,0,0,(Shift_tbl*)&S15st_Cmpost_output,(Reduce_tbl*)&S15rt_Cmpost_output,0,0,0};
+struct S16std_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S16std_Cmpost_output S16st_Cmpost_output = {
+ 2
+ ,
+ {// start of table
+ {335,(State*)&S53_Cmpost_output} // shift sym: T_error_symbols_phrase
+ ,{577,(State*)&S17_Cmpost_output} // shift sym: Rerr_phrase
+ }// end of shift table
+};
+yacco2::State S16_Cmpost_output = //State's vectored into symbol: "Rks_epi"
+{16
+,0,0,0,0,(Shift_tbl*)&S16st_Cmpost_output,0,0,0,0};
+struct S17std_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S17std_Cmpost_output S17st_Cmpost_output = {
+ 4
+ ,
+ {// start of table
+ {374,(State*)&S42_Cmpost_output} // shift sym: T_cweb_marker
+ ,{571,(State*)&S18_Cmpost_output} // shift sym: Rks_epi
+ ,{572,(State*)&S43_Cmpost_output} // shift sym: Rks
+ ,{573,(State*)&S45_Cmpost_output} // shift sym: Rk
+ }// end of shift table
+};
+struct S17rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S17rtd_Cmpost_output S17rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA9_Cmpost_output,Cmpost_output::rhs2_Rks_epi_}
+ }// end of reduce table
+};
+yacco2::State S17_Cmpost_output = //State's vectored into symbol: "Rerr_phrase"
+{17
+,0,0,0,0,(Shift_tbl*)&S17st_Cmpost_output,(Reduce_tbl*)&S17rt_Cmpost_output,0,0,0};
+struct S18std_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S18std_Cmpost_output S18st_Cmpost_output = {
+ 2
+ ,
+ {// start of table
+ {341,(State*)&S54_Cmpost_output} // shift sym: T_rules_phrase
+ ,{581,(State*)&S19_Cmpost_output} // shift sym: Rrule_phrase
+ }// end of shift table
+};
+yacco2::State S18_Cmpost_output = //State's vectored into symbol: "Rks_epi"
+{18
+,0,0,0,0,(Shift_tbl*)&S18st_Cmpost_output,0,0,0,0};
+struct S19std_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S19std_Cmpost_output S19st_Cmpost_output = {
+ 5
+ ,
+ {// start of table
+ {374,(State*)&S42_Cmpost_output} // shift sym: T_cweb_marker
+ ,{571,(State*)&S55_Cmpost_output} // shift sym: Rks_epi
+ ,{572,(State*)&S43_Cmpost_output} // shift sym: Rks
+ ,{573,(State*)&S45_Cmpost_output} // shift sym: Rk
+ ,{582,(State*)&S20_Cmpost_output} // shift sym: Rrules
+ }// end of shift table
+};
+struct S19rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S19rtd_Cmpost_output S19rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA10_Cmpost_output,Cmpost_output::rhs2_Rks_epi_}
+ }// end of reduce table
+};
+yacco2::State S19_Cmpost_output = //State's vectored into symbol: "Rrule_phrase"
+{19
+,0,0,0,0,(Shift_tbl*)&S19st_Cmpost_output,(Reduce_tbl*)&S19rt_Cmpost_output,0,0,0};
+struct S20std_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S20std_Cmpost_output S20st_Cmpost_output = {
+ 4
+ ,
+ {// start of table
+ {374,(State*)&S42_Cmpost_output} // shift sym: T_cweb_marker
+ ,{571,(State*)&S21_Cmpost_output} // shift sym: Rks_epi
+ ,{572,(State*)&S43_Cmpost_output} // shift sym: Rks
+ ,{573,(State*)&S45_Cmpost_output} // shift sym: Rk
+ }// end of shift table
+};
+struct S20rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S20rtd_Cmpost_output S20rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA11_Cmpost_output,Cmpost_output::rhs2_Rks_epi_}
+ }// end of reduce table
+};
+yacco2::State S20_Cmpost_output = //State's vectored into symbol: "Rrules"
+{20
+,0,0,0,0,(Shift_tbl*)&S20st_Cmpost_output,(Reduce_tbl*)&S20rt_Cmpost_output,0,0,0};
+struct S21std_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S21std_Cmpost_output S21st_Cmpost_output = {
+ 4
+ ,
+ {// start of table
+ {1,(State*)&S22_Cmpost_output} // shift sym: LR1_eog
+ ,{340,(State*)&S23_Cmpost_output} // shift sym: rule_def
+ ,{583,(State*)&S24_Cmpost_output} // shift sym: Rrule
+ ,{584,(State*)&S25_Cmpost_output} // shift sym: Rrule_def
+ }// end of shift table
+};
+yacco2::State S21_Cmpost_output = //State's vectored into symbol: "Rks_epi"
+{21
+,0,0,0,0,(Shift_tbl*)&S21st_Cmpost_output,0,0,0,0};
+struct S22rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S22rtd_Cmpost_output S22rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA12_Cmpost_output,Cmpost_output::rhs1_Rmpost_output_}
+ }// end of reduce table
+};
+yacco2::State S22_Cmpost_output = //State's vectored into symbol: "eog"
+{22
+,0,0,0,0,0,(Reduce_tbl*)&S22rt_Cmpost_output,0,0,0};
+struct S23rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S23rtd_Cmpost_output S23rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA13_Cmpost_output,Cmpost_output::rhs1_Rrule_def_}
+ }// end of reduce table
+};
+yacco2::State S23_Cmpost_output = //State's vectored into symbol: "rule-def"
+{23
+,0,0,0,0,0,(Reduce_tbl*)&S23rt_Cmpost_output,0,0,0};
+struct S24rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S24rtd_Cmpost_output S24rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA14_Cmpost_output,Cmpost_output::rhs2_Rrules_}
+ }// end of reduce table
+};
+yacco2::State S24_Cmpost_output = //State's vectored into symbol: "Rrule"
+{24
+,0,0,0,0,0,(Reduce_tbl*)&S24rt_Cmpost_output,0,0,0};
+struct S25std_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S25std_Cmpost_output S25st_Cmpost_output = {
+ 4
+ ,
+ {// start of table
+ {342,(State*)&S26_Cmpost_output} // shift sym: T_subrule_def
+ ,{585,(State*)&S27_Cmpost_output} // shift sym: Rsubrules
+ ,{586,(State*)&S41_Cmpost_output} // shift sym: Rsubrule
+ ,{587,(State*)&S29_Cmpost_output} // shift sym: Rsubrule_def
+ }// end of shift table
+};
+yacco2::State S25_Cmpost_output = //State's vectored into symbol: "Rrule_def"
+{25
+,0,0,0,0,(Shift_tbl*)&S25st_Cmpost_output,0,0,0,0};
+struct S26rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S26rtd_Cmpost_output S26rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA15_Cmpost_output,Cmpost_output::rhs1_Rsubrule_def_}
+ }// end of reduce table
+};
+yacco2::State S26_Cmpost_output = //State's vectored into symbol: "subrule-def"
+{26
+,0,0,0,0,0,(Reduce_tbl*)&S26rt_Cmpost_output,0,0,0};
+struct S27std_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S27std_Cmpost_output S27st_Cmpost_output = {
+ 3
+ ,
+ {// start of table
+ {342,(State*)&S26_Cmpost_output} // shift sym: T_subrule_def
+ ,{586,(State*)&S28_Cmpost_output} // shift sym: Rsubrule
+ ,{587,(State*)&S29_Cmpost_output} // shift sym: Rsubrule_def
+ }// end of shift table
+};
+struct S27rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S27rtd_Cmpost_output S27rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA14_Cmpost_output,Cmpost_output::rhs1_Rrule_}
+ }// end of reduce table
+};
+yacco2::State S27_Cmpost_output = //State's vectored into symbol: "Rsubrules"
+{27
+,0,0,0,0,(Shift_tbl*)&S27st_Cmpost_output,(Reduce_tbl*)&S27rt_Cmpost_output,0,0,0};
+struct S28rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S28rtd_Cmpost_output S28rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA16_Cmpost_output,Cmpost_output::rhs2_Rsubrules_}
+ }// end of reduce table
+};
+yacco2::State S28_Cmpost_output = //State's vectored into symbol: "Rsubrule"
+{28
+,0,0,0,0,0,(Reduce_tbl*)&S28rt_Cmpost_output,0,0,0};
+struct S29std_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S29std_Cmpost_output S29st_Cmpost_output = {
+ 5
+ ,
+ {// start of table
+ {345,(State*)&S30_Cmpost_output} // shift sym: refered_T
+ ,{347,(State*)&S36_Cmpost_output} // shift sym: refered_rule
+ ,{369,(State*)&S37_Cmpost_output} // shift sym: T_eosubrule
+ ,{588,(State*)&S38_Cmpost_output} // shift sym: Relements
+ ,{589,(State*)&S40_Cmpost_output} // shift sym: Relement
+ }// end of shift table
+};
+yacco2::State S29_Cmpost_output = //State's vectored into symbol: "Rsubrule_def"
+{29
+,0,0,0,0,(Shift_tbl*)&S29st_Cmpost_output,0,0,0,0};
+struct S30std_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S30std_Cmpost_output S30st_Cmpost_output = {
+ 2
+ ,
+ {// start of table
+ {5,(State*)&S31_Cmpost_output} // shift sym: LR1_invisible_shift_operator
+ ,{345,(State*)&S32_Cmpost_output} // shift sym: refered_T
+ }// end of shift table
+};
+yacco2::Shift_entry S30ise_Cmpost_output = {5,(State*)&S31_Cmpost_output};
+yacco2::State S30_Cmpost_output = //State's vectored into symbol: "refered-T"
+{30
+,0,0,(Shift_entry*)&S30ise_Cmpost_output
+,0,(Shift_tbl*)&S30st_Cmpost_output,0,0,0,0};
+struct S31rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S31rtd_Cmpost_output S31rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA17_Cmpost_output,Cmpost_output::rhs1_Relement_}
+ }// end of reduce table
+};
+yacco2::State S31_Cmpost_output = //State's vectored into symbol: "|.|"
+{31
+,0,0,0,0,0,(Reduce_tbl*)&S31rt_Cmpost_output,0,0,0};
+struct S32std_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S32std_Cmpost_output S32st_Cmpost_output = {
+ 3
+ ,
+ {// start of table
+ {5,(State*)&S33_Cmpost_output} // shift sym: LR1_invisible_shift_operator
+ ,{370,(State*)&S34_Cmpost_output} // shift sym: T_called_thread_eosubrule
+ ,{371,(State*)&S35_Cmpost_output} // shift sym: T_null_call_thread_eosubrule
+ }// end of shift table
+};
+yacco2::Shift_entry S32ise_Cmpost_output = {5,(State*)&S33_Cmpost_output};
+yacco2::State S32_Cmpost_output = //State's vectored into symbol: "refered-T"
+{32
+,0,0,(Shift_entry*)&S32ise_Cmpost_output
+,0,(Shift_tbl*)&S32st_Cmpost_output,0,0,0,0};
+struct S33rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S33rtd_Cmpost_output S33rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA17_Cmpost_output,Cmpost_output::rhs6_Relement_}
+ }// end of reduce table
+};
+yacco2::State S33_Cmpost_output = //State's vectored into symbol: "|.|"
+{33
+,0,0,0,0,0,(Reduce_tbl*)&S33rt_Cmpost_output,0,0,0};
+struct S34rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S34rtd_Cmpost_output S34rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA17_Cmpost_output,Cmpost_output::rhs4_Relement_}
+ }// end of reduce table
+};
+yacco2::State S34_Cmpost_output = //State's vectored into symbol: "called thread eosubrule"
+{34
+,0,0,0,0,0,(Reduce_tbl*)&S34rt_Cmpost_output,0,0,0};
+struct S35rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S35rtd_Cmpost_output S35rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA17_Cmpost_output,Cmpost_output::rhs5_Relement_}
+ }// end of reduce table
+};
+yacco2::State S35_Cmpost_output = //State's vectored into symbol: "null call thread eosubrule"
+{35
+,0,0,0,0,0,(Reduce_tbl*)&S35rt_Cmpost_output,0,0,0};
+struct S36rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S36rtd_Cmpost_output S36rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA17_Cmpost_output,Cmpost_output::rhs2_Relement_}
+ }// end of reduce table
+};
+yacco2::State S36_Cmpost_output = //State's vectored into symbol: "refered-rule"
+{36
+,0,0,0,0,0,(Reduce_tbl*)&S36rt_Cmpost_output,0,0,0};
+struct S37rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S37rtd_Cmpost_output S37rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA17_Cmpost_output,Cmpost_output::rhs3_Relement_}
+ }// end of reduce table
+};
+yacco2::State S37_Cmpost_output = //State's vectored into symbol: "eosubrule"
+{37
+,0,0,0,0,0,(Reduce_tbl*)&S37rt_Cmpost_output,0,0,0};
+struct S38std_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S38std_Cmpost_output S38st_Cmpost_output = {
+ 4
+ ,
+ {// start of table
+ {345,(State*)&S30_Cmpost_output} // shift sym: refered_T
+ ,{347,(State*)&S36_Cmpost_output} // shift sym: refered_rule
+ ,{369,(State*)&S37_Cmpost_output} // shift sym: T_eosubrule
+ ,{589,(State*)&S39_Cmpost_output} // shift sym: Relement
+ }// end of shift table
+};
+struct S38rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S38rtd_Cmpost_output S38rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA16_Cmpost_output,Cmpost_output::rhs1_Rsubrule_}
+ }// end of reduce table
+};
+yacco2::State S38_Cmpost_output = //State's vectored into symbol: "Relements"
+{38
+,0,0,0,0,(Shift_tbl*)&S38st_Cmpost_output,(Reduce_tbl*)&S38rt_Cmpost_output,0,0,0};
+struct S39rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S39rtd_Cmpost_output S39rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA17_Cmpost_output,Cmpost_output::rhs2_Relements_}
+ }// end of reduce table
+};
+yacco2::State S39_Cmpost_output = //State's vectored into symbol: "Relement"
+{39
+,0,0,0,0,0,(Reduce_tbl*)&S39rt_Cmpost_output,0,0,0};
+struct S40rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S40rtd_Cmpost_output S40rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA17_Cmpost_output,Cmpost_output::rhs1_Relements_}
+ }// end of reduce table
+};
+yacco2::State S40_Cmpost_output = //State's vectored into symbol: "Relement"
+{40
+,0,0,0,0,0,(Reduce_tbl*)&S40rt_Cmpost_output,0,0,0};
+struct S41rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S41rtd_Cmpost_output S41rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA16_Cmpost_output,Cmpost_output::rhs1_Rsubrules_}
+ }// end of reduce table
+};
+yacco2::State S41_Cmpost_output = //State's vectored into symbol: "Rsubrule"
+{41
+,0,0,0,0,0,(Reduce_tbl*)&S41rt_Cmpost_output,0,0,0};
+struct S42rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S42rtd_Cmpost_output S42rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA18_Cmpost_output,Cmpost_output::rhs1_Rk_}
+ }// end of reduce table
+};
+yacco2::State S42_Cmpost_output = //State's vectored into symbol: "cweb-marker"
+{42
+,0,0,0,0,0,(Reduce_tbl*)&S42rt_Cmpost_output,0,0,0};
+struct S43std_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S43std_Cmpost_output S43st_Cmpost_output = {
+ 2
+ ,
+ {// start of table
+ {374,(State*)&S42_Cmpost_output} // shift sym: T_cweb_marker
+ ,{573,(State*)&S44_Cmpost_output} // shift sym: Rk
+ }// end of shift table
+};
+struct S43rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S43rtd_Cmpost_output S43rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cmpost_output,Cmpost_output::rhs1_Rks_epi_}
+ }// end of reduce table
+};
+yacco2::State S43_Cmpost_output = //State's vectored into symbol: "Rks"
+{43
+,0,0,0,0,(Shift_tbl*)&S43st_Cmpost_output,(Reduce_tbl*)&S43rt_Cmpost_output,0,0,0};
+struct S44rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S44rtd_Cmpost_output S44rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA18_Cmpost_output,Cmpost_output::rhs1_Rks_}
+ }// end of reduce table
+};
+yacco2::State S44_Cmpost_output = //State's vectored into symbol: "Rk"
+{44
+,0,0,0,0,0,(Reduce_tbl*)&S44rt_Cmpost_output,0,0,0};
+struct S45rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S45rtd_Cmpost_output S45rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA18_Cmpost_output,Cmpost_output::rhs2_Rks_}
+ }// end of reduce table
+};
+yacco2::State S45_Cmpost_output = //State's vectored into symbol: "Rk"
+{45
+,0,0,0,0,0,(Reduce_tbl*)&S45rt_Cmpost_output,0,0,0};
+struct S46rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S46rtd_Cmpost_output S46rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA19_Cmpost_output,Cmpost_output::rhs1_Rfsm_phrase_}
+ }// end of reduce table
+};
+yacco2::State S46_Cmpost_output = //State's vectored into symbol: "fsm-phrase"
+{46
+,0,0,0,0,0,(Reduce_tbl*)&S46rt_Cmpost_output,0,0,0};
+struct S47rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S47rtd_Cmpost_output S47rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA20_Cmpost_output,Cmpost_output::rhs2_Rparallel_phrase_}
+ }// end of reduce table
+};
+yacco2::State S47_Cmpost_output = //State's vectored into symbol: "|.|"
+{47
+,0,0,0,0,0,(Reduce_tbl*)&S47rt_Cmpost_output,0,0,0};
+struct S48rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S48rtd_Cmpost_output S48rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA20_Cmpost_output,Cmpost_output::rhs1_Rparallel_phrase_}
+ }// end of reduce table
+};
+yacco2::State S48_Cmpost_output = //State's vectored into symbol: "parallel-parser-phrase"
+{48
+,0,0,0,0,0,(Reduce_tbl*)&S48rt_Cmpost_output,0,0,0};
+struct S49rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S49rtd_Cmpost_output S49rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA21_Cmpost_output,Cmpost_output::rhs1_RT_enum_phrase_}
+ }// end of reduce table
+};
+yacco2::State S49_Cmpost_output = //State's vectored into symbol: "T-enum-phrase"
+{49
+,0,0,0,0,0,(Reduce_tbl*)&S49rt_Cmpost_output,0,0,0};
+struct S50rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S50rtd_Cmpost_output S50rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA22_Cmpost_output,Cmpost_output::rhs1_Rlr1_k_phrase_}
+ }// end of reduce table
+};
+yacco2::State S50_Cmpost_output = //State's vectored into symbol: "lr1-k-phrase"
+{50
+,0,0,0,0,0,(Reduce_tbl*)&S50rt_Cmpost_output,0,0,0};
+struct S51rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S51rtd_Cmpost_output S51rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA23_Cmpost_output,Cmpost_output::rhs1_Rrc_phrase_}
+ }// end of reduce table
+};
+yacco2::State S51_Cmpost_output = //State's vectored into symbol: "rc-phrase"
+{51
+,0,0,0,0,0,(Reduce_tbl*)&S51rt_Cmpost_output,0,0,0};
+struct S52rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S52rtd_Cmpost_output S52rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA24_Cmpost_output,Cmpost_output::rhs1_Rterms_phrase_}
+ }// end of reduce table
+};
+yacco2::State S52_Cmpost_output = //State's vectored into symbol: "terminals-phrase"
+{52
+,0,0,0,0,0,(Reduce_tbl*)&S52rt_Cmpost_output,0,0,0};
+struct S53rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S53rtd_Cmpost_output S53rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA25_Cmpost_output,Cmpost_output::rhs1_Rerr_phrase_}
+ }// end of reduce table
+};
+yacco2::State S53_Cmpost_output = //State's vectored into symbol: "error-symbols-phrase"
+{53
+,0,0,0,0,0,(Reduce_tbl*)&S53rt_Cmpost_output,0,0,0};
+struct S54rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S54rtd_Cmpost_output S54rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA26_Cmpost_output,Cmpost_output::rhs1_Rrule_phrase_}
+ }// end of reduce table
+};
+yacco2::State S54_Cmpost_output = //State's vectored into symbol: "rules-phrase"
+{54
+,0,0,0,0,0,(Reduce_tbl*)&S54rt_Cmpost_output,0,0,0};
+struct S55std_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S55std_Cmpost_output S55st_Cmpost_output = {
+ 3
+ ,
+ {// start of table
+ {340,(State*)&S23_Cmpost_output} // shift sym: rule_def
+ ,{583,(State*)&S56_Cmpost_output} // shift sym: Rrule
+ ,{584,(State*)&S25_Cmpost_output} // shift sym: Rrule_def
+ }// end of shift table
+};
+yacco2::State S55_Cmpost_output = //State's vectored into symbol: "Rks_epi"
+{55
+,0,0,0,0,(Shift_tbl*)&S55st_Cmpost_output,0,0,0,0};
+struct S56rtd_Cmpost_output{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S56rtd_Cmpost_output S56rt_Cmpost_output = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA14_Cmpost_output,Cmpost_output::rhs1_Rrules_}
+ }// end of reduce table
+};
+yacco2::State S56_Cmpost_output = //State's vectored into symbol: "Rrule"
+{56
+,0,0,0,0,0,(Reduce_tbl*)&S56rt_Cmpost_output,0,0,0};
diff --git a/web/yacco2/compiler/grammars/o2_code_end.cpp b/web/yacco2/compiler/grammars/o2_code_end.cpp
new file mode 100644
index 0000000000..1cf9face95
--- /dev/null
+++ b/web/yacco2/compiler/grammars/o2_code_end.cpp
@@ -0,0 +1,59 @@
+/*
+ File: o2_code_end.cpp
+ Date and Time: Fri Jan 30 18:55:16 2015
+*/
+#include "o2_code_end.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_o2_code_end;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 1;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+}
+ Co2_code_end::
+ Co2_code_end()
+ :yacco2::CAbs_fsm
+ ("o2_code_end.lex"
+ ,"1.0"
+ ,"30 dec 2002"
+ ,false
+ ,"Lexer syntax directed code end marker: \\threeasteric."
+ ,"Fri Jan 30 18:55:16 2015 "
+ ,S1_Co2_code_end){
+
+ }
+
+Co2_code_end::~Co2_code_end(){
+
+ for(int x = 0;x < 1;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Co2_code_end::failed(){
+ return false;
+ }
+ void Co2_code_end::op(){
+}
+int Co2_code_end::rhs_to_rules_mapping_[2] = {
+ -1
+ ,0 // subrule 1 for rule 1
+};
+Ro2_code_end::Ro2_code_end(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Ro2_code_end",0,Co2_code_end::R_Ro2_code_end_,P,false,false){
+}
+
+void Ro2_code_end::sr1(){
+
+ T_eocode* mkr = new T_eocode;
+ mkr->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(mkr);
+
+}
+
diff --git a/web/yacco2/compiler/grammars/o2_code_end.fsc b/web/yacco2/compiler/grammars/o2_code_end.fsc
new file mode 100644
index 0000000000..d8cb3e77d1
--- /dev/null
+++ b/web/yacco2/compiler/grammars/o2_code_end.fsc
@@ -0,0 +1,20 @@
+/*
+ File: o2_code_end.fsc
+ Date and Time: Fri Jan 30 18:55:16 2015
+*/
+transitive n
+grammar-name "o2_code_end"
+name-space "NS_o2_code_end"
+thread-name "TH_o2_code_end"
+monolithic n
+file-name "o2_code_end.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ raw_asteric
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"Lexer syntax directed code end marker: \\threeasteric."
diff --git a/web/yacco2/compiler/grammars/o2_code_end.h b/web/yacco2/compiler/grammars/o2_code_end.h
new file mode 100644
index 0000000000..03bc8ea232
--- /dev/null
+++ b/web/yacco2/compiler/grammars/o2_code_end.h
@@ -0,0 +1,55 @@
+/*
+ File: o2_code_end.h
+ Date and Time: Fri Jan 30 18:55:16 2015
+*/
+#ifndef __o2_code_end_h__
+#define __o2_code_end_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+extern yacco2::Thread_entry ITH_o2_code_end;
+
+extern yacco2::State S1_Co2_code_end;
+namespace NS_o2_code_end {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_o2_code_end(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_o2_code_end(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[1];
+};
+class Co2_code_end: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Ro2_code_end_ = 569//start_of_rule_list + 0
+ ,rhs1_Ro2_code_end_ = 1
+ };
+ //no of la sets = 1
+ //no of states = 4
+ Co2_code_end();
+ ~Co2_code_end();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[2];
+ };
+struct Ro2_code_end;
+struct Ro2_code_end:public yacco2::CAbs_lr1_sym {
+ Ro2_code_end(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/o2_code_end.lex b/web/yacco2/compiler/grammars/o2_code_end.lex
new file mode 100644
index 0000000000..ddb5f5e956
--- /dev/null
+++ b/web/yacco2/compiler/grammars/o2_code_end.lex
@@ -0,0 +1,46 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: o2_code_end.lex
+Date: 26 Nov 2002
+Purpose: Yacco2's syntax directed end code marker
+Correction: 1 June 2005 - add "*" removal from lookahead expression
+ u never know what type of syning u'll get
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |o2_code_end| Thread.\fbreak
+Yacco2's syntax directed ``end code'' marker.\fbreak
+Why as a thread?
+Cuz syntax-directed code is a character crawler
+that sends out its scouts to survey the land of
+variant strings, comments, and code-end marker.
+@/
+fsm
+(fsm-id "o2_code_end.lex",fsm-filename o2_code_end,fsm-namespace NS_o2_code_end
+,fsm-class Co2_code_end
+,fsm-version "1.0",fsm-date "30 dec 2002",fsm-debug "false"
+,fsm-comments "Lexer syntax directed code end marker: \\threeasteric.")
+parallel-parser
+( parallel-thread-function
+ TH_o2_code_end
+ ***
+ parallel-la-boundary
+ eolr - "*"
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Ro2_code_end (){
+ -> "*" "*" "*" {
+ op
+ T_eocode* mkr = new T_eocode;
+ mkr->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(mkr);
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/o2_code_endsym.cpp b/web/yacco2/compiler/grammars/o2_code_endsym.cpp
new file mode 100644
index 0000000000..49cb928b56
--- /dev/null
+++ b/web/yacco2/compiler/grammars/o2_code_endsym.cpp
@@ -0,0 +1,63 @@
+/*
+ File: o2_code_endsym.cpp
+ Date and Time: Fri Jan 30 18:55:16 2015
+*/
+#include "o2_code_end.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_o2_code_end;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_o2_code_end::TH_o2_code_end(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_o2_code_end;
+ NS_o2_code_end::Co2_code_end Co2_code_end_;// parallel-parser's parse table
+#define ssPARSE_TABLE Co2_code_end_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_o2_code_end::PROC_TH_o2_code_end(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_o2_code_end";
+ static bool one_time(false);
+ static NS_o2_code_end::Co2_code_end* NS_o2_code_end_Co2_code_end_(0);// parallel-parser's fsm table
+ static Parser* NS_o2_code_end_Co2_code_end_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_o2_code_end_Co2_code_end_ = new NS_o2_code_end::Co2_code_end();// parallel-parser's fsm table
+ NS_o2_code_end_Co2_code_end_parser = new Parser(*NS_o2_code_end_Co2_code_end_,Caller_pp);
+ }
+ proc_parser = NS_o2_code_end_Co2_code_end_parser;
+#include "wproc_pp_core.h"
+}
+void
+Co2_code_end::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Ro2_code_end_:{
+ Ro2_code_end* sym;
+ if(re->rule_ == 0){
+ sym = new Ro2_code_end(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ro2_code_end*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ sym->sr1();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/o2_code_endtbl.cpp b/web/yacco2/compiler/grammars/o2_code_endtbl.cpp
new file mode 100644
index 0000000000..ca70e539aa
--- /dev/null
+++ b/web/yacco2/compiler/grammars/o2_code_endtbl.cpp
@@ -0,0 +1,710 @@
+/*
+ File: o2_code_endtbl.cpp
+ Date and Time: Fri Jan 30 18:55:16 2015
+*/
+#include "o2_code_end.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_o2_code_end;// grammar's ns
+// first set terminals
+// T_enumeration
+// T_file_name
+// T_name_space
+// T_sym_class
+// T_rules
+// T_lhs
+// T_user_declaration
+// T_user_prefix_declaration
+// T_user_suffix_declaration
+// T_constructor
+// T_destructor
+// T_op
+// T_failed
+// T_user_implementation
+// T_user_imp_tbl
+// T_user_imp_sym
+// T_constant_defs
+// T_terminals_refs
+// T_terminals_sufx
+// T_lrk_sufx
+// T_selector
+// T_NULL
+// T_2colon
+// T_block
+// T_syntax_code
+// T_fsm_class_phrase
+// T_fsm_phrase
+// T_parallel_parser_phrase
+// T_enum_phrase
+// T_terminal_def
+// table_entry
+// T_sym_tbl_report_card
+// T_terminals_phrase
+// T_error_symbols_phrase
+// T_lr1_k_phrase
+// T_rc_phrase
+// T_rule_lhs_phrase
+// T_parallel_monitor_phrase
+// rule_def
+// T_rules_phrase
+// T_subrule_def
+// T_subrules_phrase
+// T_in_stbl
+// refered_T
+// rule_in_stbl
+// refered_rule
+// T_transitive
+// T_grammar_name
+// T_thread_name
+// T_monolithic
+// T_no_of_T
+// T_list_of_native_first_set_terminals
+// T_end_list_of_native_first_set_terminals
+// T_list_of_transitive_threads
+// T_end_list_of_transitive_threads
+// T_emitfile
+// T_preamble
+// T_end_preamble
+// T_T_alphabet
+// T_end_T_alphabet
+// T_file_of_T_alphabet
+// T_attributes
+// tth_in_stbl
+// LR1_eog
+// raw_nul
+// raw_soh
+// raw_stx
+// raw_etx
+// raw_eot
+// raw_enq
+// raw_ack
+// raw_bel
+// raw_bs
+// raw_ht
+// raw_lf
+// raw_vt
+// raw_ff
+// raw_cr
+// raw_so
+// raw_si
+// raw_dle
+// raw_dc1
+// raw_dc2
+// raw_dc3
+// raw_dc4
+// raw_nak
+// raw_syn
+// raw_etb
+// raw_can
+// raw_em
+// raw_sub
+// raw_esc
+// raw_fs
+// raw_gs
+// raw_rs
+// raw_us
+// raw_sp
+// raw_exclam
+// raw_dbl_quote
+// raw_no_sign
+// raw_dollar_sign
+// raw_percent
+// raw_ampersign
+// raw_right_quote
+// raw_open_bracket
+// raw_close_bracket
+// raw_plus
+// raw_comma
+// raw_minus
+// raw_period
+// raw_slash
+// raw_0
+// raw_1
+// raw_2
+// raw_3
+// raw_4
+// raw_5
+// raw_6
+// raw_7
+// raw_8
+// raw_9
+// raw_colon
+// raw_semi_colon
+// raw_less_than
+// raw_eq
+// raw_gt_than
+// raw_question_mark
+// raw_at_sign
+// raw_A
+// raw_B
+// raw_C
+// raw_D
+// raw_E
+// raw_F
+// raw_G
+// raw_H
+// raw_I
+// raw_J
+// raw_K
+// raw_L
+// raw_M
+// raw_N
+// raw_O
+// raw_P
+// raw_Q
+// raw_R
+// raw_S
+// raw_T
+// raw_U
+// raw_V
+// raw_W
+// raw_X
+// raw_Y
+// raw_Z
+// raw_open_sq_bracket
+// raw_back_slash
+// raw_close_sq_bracket
+// raw_up_arrow
+// raw_under_score
+// raw_left_quote
+// raw_a
+// raw_b
+// raw_c
+// raw_d
+// raw_e
+// raw_f
+// raw_g
+// raw_h
+// raw_i
+// raw_j
+// raw_k
+// raw_l
+// raw_m
+// raw_n
+// raw_o
+// raw_p
+// raw_q
+// raw_r
+// raw_s
+// raw_t
+// raw_u
+// raw_v
+// raw_w
+// raw_x
+// raw_y
+// raw_z
+// raw_open_brace
+// raw_vertical_line
+// raw_close_brace
+// raw_tilde
+// raw_del
+// raw_x80
+// raw_x81
+// raw_x82
+// raw_x83
+// raw_x84
+// raw_x85
+// raw_x86
+// raw_x87
+// raw_x88
+// raw_x89
+// raw_x8a
+// raw_x8b
+// raw_x8c
+// raw_x8d
+// raw_x8e
+// raw_x8f
+// raw_x90
+// raw_x91
+// raw_x92
+// raw_x93
+// raw_x94
+// raw_x95
+// raw_x96
+// raw_x97
+// raw_x98
+// raw_x99
+// raw_x9a
+// raw_x9b
+// raw_x9c
+// raw_x9d
+// raw_x9e
+// raw_x9f
+// raw_xa0
+// raw_xa1
+// raw_xa2
+// raw_xa3
+// raw_xa4
+// raw_xa5
+// raw_xa6
+// raw_xa7
+// raw_xa8
+// raw_xa9
+// raw_xaa
+// raw_xab
+// raw_xac
+// raw_xad
+// raw_xae
+// raw_xaf
+// raw_xb0
+// raw_xb1
+// raw_xb2
+// raw_xb3
+// raw_xb4
+// raw_xb5
+// raw_xb6
+// raw_xb7
+// raw_xb8
+// raw_xb9
+// raw_xba
+// raw_xbb
+// raw_xbc
+// raw_xbd
+// raw_xbe
+// raw_xbf
+// raw_xc0
+// raw_xc1
+// raw_xc2
+// raw_xc3
+// raw_xc4
+// raw_xc5
+// raw_xc6
+// raw_xc7
+// raw_xc8
+// raw_xc9
+// raw_xca
+// raw_xcb
+// raw_xcc
+// raw_xcd
+// raw_xce
+// raw_xcf
+// raw_xd0
+// raw_xd1
+// raw_xd2
+// raw_xd3
+// raw_xd4
+// raw_xd5
+// raw_xd6
+// raw_xd7
+// raw_xd8
+// raw_xd9
+// raw_xda
+// raw_xdb
+// raw_xdc
+// raw_xdd
+// raw_xde
+// raw_xdf
+// raw_xe0
+// raw_xe1
+// raw_xe2
+// raw_xe3
+// raw_xe4
+// raw_xe5
+// raw_xe6
+// raw_xe7
+// raw_xe8
+// raw_xe9
+// raw_xea
+// raw_xeb
+// raw_xec
+// raw_xed
+// raw_xee
+// raw_xef
+// raw_xf0
+// raw_xf1
+// raw_xf2
+// raw_xf3
+// raw_xf4
+// raw_xf5
+// raw_xf6
+// raw_xf7
+// raw_xf8
+// raw_xf9
+// raw_xfa
+// raw_xfb
+// raw_xfc
+// raw_xfd
+// raw_xfe
+// raw_xff
+// T_option_t
+// T_option_p
+// T_option_err
+// T_esc_seq
+// T_eol
+// T_basic_char
+// T_raw_char
+// T_comment
+// T_ws
+// T_angled_string
+// T_c_literal
+// T_c_string
+// T_xc_str
+// T_unquoted_string
+// T_file_inclusion
+// T_identifier
+// T_int_no
+// T_raw_characters
+// T_lr1_constant_symbols
+// T_error_symbols
+// T_eocode
+// T_AD
+// T_AB
+// T_parallel_la_boundary
+// T_arbitrator_code
+// T_parallel_parser
+// T_parallel_thread_function
+// T_parallel_control_monitor
+// T_fsm
+// T_fsm_id
+// T_fsm_filename
+// T_fsm_namespace
+// T_fsm_class
+// T_fsm_version
+// T_fsm_date
+// T_fsm_debug
+// T_fsm_comments
+// T_terminals
+// thread_attributes
+// th_in_stbl
+// kw_in_stbl
+// T_la_expr_src
+// T_eosubrule
+// T_called_thread_eosubrule
+// T_null_call_thread_eosubrule
+// T_cweb_comment
+// T_grammar_phrase
+// T_cweb_marker
+// T_lint
+// T_list_of_used_threads
+// T_end_list_of_used_threads
+// Err_nested_files_exceeded
+// Err_no_end_of_code
+// Err_no_cmd_lne_data
+// Err_no_filename
+// Err_bad_filename
+// Err_bad_fsmheader_filename
+// Err_bad_fsmcpp_filename
+// Err_bad_fsmsym_filename
+// Err_bad_fsmtbl_filename
+// Err_bad_enum_filename
+// Err_bad_errors_hdrfilename
+// Err_bad_errors_impfilename
+// Err_bad_cmd_lne_opt
+// Err_bad_int_no
+// Err_bad_int_no_range
+// Err_no_int_present
+// Err_bad_eos
+// Err_bad_esc
+// Err_comment_overrun
+// Err_bad_char
+// Err_bad_univ_seq
+// Err_improper_closing_of_rules
+// Err_no_identifier_present
+// Err_no_directive_present
+// Err_duplicate_directive
+// Err_no_syntax_code_present
+// Err_no_open_parenthesis
+// Err_no_close_parenthesis
+// Err_no_fsm_id_present
+// Err_no_fsm_id_string
+// Err_no_fsm_filename_present
+// Err_no_fsm_filename_id_present
+// Err_no_comma_present
+// Err_no_terminal_key_present
+// Err_no_fsm_namespace_present
+// Err_no_fsm_namespace_id_present
+// Err_no_fsm_class_present
+// Err_no_fsm_version_present
+// Err_no_fsm_version_string
+// Err_no_fsm_date_present
+// Err_no_fsm_date_string
+// Err_no_fsm_debug_present
+// Err_no_fsm_debug_string
+// Err_no_fsm_comments_present
+// Err_no_fsm_comments_string
+// Err_fsm_debug_string_not_true_or_false
+// Err_no_pp_thread_function_present
+// Err_no_pp_ctrl_mntor_kw_present
+// Err_no_pp_fnct_id_present
+// Err_no_pp_bndry_present
+// Err_no_pp_la_bndary_expr_present
+// Err_no_syntax_code_end_present
+// Err_no_pp_code_present
+// Err_no_pp_code_stc_present
+// Err_not_arbitration_code_kw
+// Err_no_open_brace
+// Err_no_close_brace
+// Err_no_constant_defs_present
+// Err_no_filename_present
+// Err_no_filename_id_present
+// Err_no_namespace_present
+// Err_no_namespace_id_present
+// Err_no_kdefs_code_present
+// Err_no_kdefs_kw_present
+// Err_no_tdef_code_present
+// Err_no_sym_defs_present
+// Err_dup_entry_in_alphabet
+// Err_already_defined_AB
+// Err_already_defined_AD
+// Err_improper_directive
+// Err_no_sym_class_present
+// Err_no_sym_class_id_present
+// Err_zero_len_sym
+// Err_sym_tbl_full
+// Err_sym_tbl_char_pool_full
+// Err_dup_entry_in_sym_table
+// Err_subscript_out_of_range
+// Err_sym_tbl_nested_scope_stk_overflow
+// Err_sym_tbl_nested_scope_stk_underflow
+// Err_sym_tbl_context_buf_overflow
+// Err_report_card_ptr_0
+// Err_cannot_define_term_after_sufx_dir
+// Err_dup_sufx_directive
+// Err_terminals_refs_def_after_terminals
+// Err_terminals_refs_dup_def
+// Err_no_rule_name_present
+// Err_no_sub_rule_present
+// Err_subrule_use_undefined_T
+// Err_stbl_entry_unknown
+// Err_subrule_overrun
+// Err_stble_has_entry_but_not_a_rule
+// Err_file_of_T_alphabet_kw_not_present
+// Err_emitfile_kw_not_present
+// Err_preamble_kw_not_present
+// Err_preamble_srce_code_not_present
+// Err_end_preamble_kw_not_present
+// Err_cmd_line_chaffe
+// Err_T_alphabet_kw_not_present
+// Err_T_alphabet_file_not_present
+// Err_end_T_alphabet_kw_not_present
+// Err_no_terminals_in_T_alphabet_list
+// Err_rotten_chr_in_T_alphabet
+// Err_transitive_kw_not_present
+// Err_grammar_name_kw_not_present
+// Err_namespace_kw_not_present
+// Err_filename_kw_not_present
+// Err_threadname_kw_not_present
+// Err_monolithic_kw_not_present
+// Err_no_of_T_kw_not_present
+// Err_list_of_terminals_kw_not_present
+// Err_no_list_of_trans_threads_kw
+// Err_no_terminals_present_in_T_alphabet
+// Err_transitive_value_bad
+// Err_monolithic_value_bad
+// Err_grammar_name_value_not_present
+// Err_namespace_value_not_present
+// Err_threadname_value_not_present
+// Err_filename_value_not_present
+// Err_no_of_T_value_not_present
+// Err_no_of_terminals_not_present
+// Err_end_list_native_T_kw_not_present
+// Err_end_list_of_transitive_threads_kw_not_present
+// Err_no_of_native_Ts_in_list_not_equal
+// Err_no_of_threads_in_list_not_equal
+// Err_thread_refed_but_not_defined
+// Err_bad_T_in_list
+// Err_bad_th_in_list
+// Err_already_defined_in_fsc_file
+// Err_bad_thread_subscript
+// Err_not_a_keyword
+// Err_no_of_threads_not_present
+// Err_bad_T_alphabet
+// Err_fsc_file_does_not_exist
+// Err_filename_file_does_not_exist
+// Err_T_alphabet_file_does_not_exist
+// Err_emitfile_file_does_not_exist
+// Err_emitfile_file_not_present
+// Err_fsc_cntl_file_not_present
+// Err_file_of_T_alphabet_not_present
+// Err_epsilon_pass_thru
+// Err_epsilon_pass_thru_no_Ts
+// Err_rule_not_in_stbl
+// Err_T_not_in_stbl
+// Err_bad_directive
+// Err_bad_term_in_la_expr
+// Err_empty_set_removal_in_la_expr
+// Err_bad_operator_in_la_expr
+// Err_not_a_lhs_kw
+// Err_pp_la_boundary_attribute_not_fnd
+// Err_already_processed_fsm_phase
+// Err_already_processed_pp_phase
+// Err_already_processed_T_enum_phase
+// Err_already_processed_error_phase
+// Err_already_processed_rc_phase
+// Err_already_processed_lrk_phase
+// Err_already_processed_T_phase
+// Err_already_processed_rule_phase
+// Err_not_T_for_rtned_token_from_th
+// Err_not_id_for_ns_in_th_stmt
+// Err_not_id_for_th_name_in_th_stmt
+// Err_bad_th_qualifier
+// Err_not_dbl_colon_in_th_stmt
+// Err_not_T_or_R_in_subrule_expr
+// Err_not_T_or_R_or_eos_in_subrule_expr
+// Err_not_eos_in_subrule_expr
+// Err_invalid_logical_name
+// Err_invalid_logical_value
+// Err_duplicate_logical_name
+// Err_missing_terminals_refs_kw
+// Err_missing_terminals_sufx_kw
+// Err_not_a_terminal_definition
+// Err_missing_lrk_sufx_kw
+// ERR_sick_grammar
+// ERR_no_fsm_phrase
+// ERR_no_T_enum_phrase
+// ERR_no_lrk_phrase
+// ERR_no_rc_phrase
+// ERR_no_errors_phrase
+// ERR_no_terminals_phrase
+// ERR_no_rules_phrase
+// Err_used_rule_but_undefined
+// Err_rule_already_defined
+// Err_la_expr_calc_empty_set
+// Err_no_close_brace_ending_rules_defs
+// Err_use_of_T_outside_Rules_construct
+// Err_not_kw_defining_grammar_construct
+// Err_use_of_N_outside_Rules_construct
+// Err_misplaced_or_misspelt_Rule_or_T
+// Err_not_a_Rule
+// Err_empty_file
+// Err_not_lhs_pcnrl_mntr
+yacco2::UCHAR LA1_Co2_code_end[] ={
+72
+,0,2
+,1,255
+,2,255
+,3,255
+,4,255
+,5,255
+,6,251
+,7,255
+,8,255
+,9,255
+,10,255
+,11,255
+,12,255
+,13,255
+,14,255
+,15,255
+,16,255
+,17,255
+,18,255
+,19,255
+,20,255
+,21,255
+,22,255
+,23,255
+,24,255
+,25,255
+,26,255
+,27,255
+,28,255
+,29,255
+,30,255
+,31,255
+,32,255
+,33,255
+,34,255
+,35,255
+,36,255
+,37,255
+,38,255
+,39,255
+,40,255
+,41,255
+,42,255
+,43,255
+,44,255
+,45,255
+,46,255
+,47,255
+,48,255
+,49,255
+,50,255
+,51,255
+,52,255
+,53,255
+,54,255
+,55,255
+,56,255
+,57,255
+,58,255
+,59,255
+,60,255
+,61,255
+,62,255
+,63,255
+,64,255
+,65,255
+,66,255
+,67,255
+,68,255
+,69,255
+,70,255
+,71,1
+};
+extern yacco2::State S1_Co2_code_end;
+extern yacco2::State S2_Co2_code_end;
+extern yacco2::State S3_Co2_code_end;
+extern yacco2::State S4_Co2_code_end;
+struct S1std_Co2_code_end{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S1std_Co2_code_end S1st_Co2_code_end = {
+ 2
+ ,
+ {// start of table
+ {50,(State*)&S2_Co2_code_end} // shift sym: raw_asteric
+ ,{569,(State*)&S1_Co2_code_end} // accept sym: Ro2_code_end
+ }// end of shift table
+};
+yacco2::State S1_Co2_code_end = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Co2_code_end,0,0,0,0};
+struct S2std_Co2_code_end{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S2std_Co2_code_end S2st_Co2_code_end = {
+ 1
+ ,
+ {// start of table
+ {50,(State*)&S3_Co2_code_end} // shift sym: raw_asteric
+ }// end of shift table
+};
+yacco2::State S2_Co2_code_end = //State's vectored into symbol: "*"
+{2
+,0,0,0,0,(Shift_tbl*)&S2st_Co2_code_end,0,0,0,0};
+struct S3std_Co2_code_end{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S3std_Co2_code_end S3st_Co2_code_end = {
+ 1
+ ,
+ {// start of table
+ {50,(State*)&S4_Co2_code_end} // shift sym: raw_asteric
+ }// end of shift table
+};
+yacco2::State S3_Co2_code_end = //State's vectored into symbol: "*"
+{3
+,0,0,0,0,(Shift_tbl*)&S3st_Co2_code_end,0,0,0,0};
+struct S4rtd_Co2_code_end{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Co2_code_end S4rt_Co2_code_end = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Co2_code_end,Co2_code_end::rhs1_Ro2_code_end_}
+ }// end of reduce table
+};
+yacco2::State S4_Co2_code_end = //State's vectored into symbol: "*"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Co2_code_end,0,0,0};
diff --git a/web/yacco2/compiler/grammars/o2_err_hdlr.cpp b/web/yacco2/compiler/grammars/o2_err_hdlr.cpp
new file mode 100644
index 0000000000..0a9e51b6a4
--- /dev/null
+++ b/web/yacco2/compiler/grammars/o2_err_hdlr.cpp
@@ -0,0 +1,384 @@
+/*
+ File: o2_err_hdlr.cpp
+ Date and Time: Fri Jan 30 18:55:16 2015
+*/
+#include "o2_err_hdlr.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_o2_err_hdlr;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 3;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+}
+ Co2_err_hdlr::
+ Co2_err_hdlr()
+ :yacco2::CAbs_fsm
+ ("o2_err_hdlr.lex"
+ ,"1.0"
+ ,"8 Jul 2003"
+ ,false
+ ,"Logic sequencer: Print out errors from \\O2."
+ ,"Fri Jan 30 18:55:16 2015 "
+ ,S1_Co2_err_hdlr){
+
+ }
+
+Co2_err_hdlr::~Co2_err_hdlr(){
+
+ for(int x = 0;x < 3;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Co2_err_hdlr::failed(){
+ return false;
+ }
+ void Co2_err_hdlr::op(){
+}
+int Co2_err_hdlr::rhs_to_rules_mapping_[23] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,0 // subrule 2 for rule 1
+ ,1 // subrule 3 for rule 2
+ ,1 // subrule 4 for rule 2
+ ,2 // subrule 5 for rule 3
+ ,2 // subrule 6 for rule 3
+ ,2 // subrule 7 for rule 3
+ ,2 // subrule 8 for rule 3
+ ,2 // subrule 9 for rule 3
+ ,2 // subrule 10 for rule 3
+ ,2 // subrule 11 for rule 3
+ ,2 // subrule 12 for rule 3
+ ,2 // subrule 13 for rule 3
+ ,2 // subrule 14 for rule 3
+ ,2 // subrule 15 for rule 3
+ ,2 // subrule 16 for rule 3
+ ,2 // subrule 17 for rule 3
+ ,2 // subrule 18 for rule 3
+ ,2 // subrule 19 for rule 3
+ ,2 // subrule 20 for rule 3
+ ,2 // subrule 21 for rule 3
+ ,2 // subrule 22 for rule 3
+};
+Ro2_err_hdlr::Ro2_err_hdlr(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Ro2_err_hdlr",0,Co2_err_hdlr::R_Ro2_err_hdlr_,P,false,false){
+}
+
+Rerrors::Rerrors(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rerrors",0,Co2_err_hdlr::R_Rerrors_,P,false,false){
+}
+
+Rerror::Rerror(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rerror",0,Co2_err_hdlr::R_Rerror_,P,false,false){
+}
+
+void Rerror::sr1(){
+ struct SF{
+ Err_nested_files_exceeded* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ error_where(sf->p1__);
+ yacco2::lrclog << "\t" << sf->p1__->id__
+ << " nested number: " << sf->p1__->nested_cnt() << std::endl;
+ std::cout << "\t" << sf->p1__->id__
+ << " nested number exceeded: " << sf->p1__->nested_cnt() << std::endl;
+
+}
+
+void Rerror::sr2(){
+ struct SF{
+ Err_no_end_of_code* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ error_where(sf->p1__);
+ yacco2::lrclog << "\t" << sf->p1__->id__ << std::endl;
+ std::cout << "\t" << sf->p1__->id__ << std::endl;
+
+}
+
+void Rerror::sr3(){
+ struct SF{
+ Err_no_filename* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ error_where(sf->p1__);
+ yacco2::lrclog << "\t" << sf->p1__->id__ << std::endl;
+ std::cout << "\t" << sf->p1__->id__ << std::endl;
+
+}
+
+void Rerror::sr4(){
+ struct SF{
+ Err_bad_filename* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ error_where(sf->p1__);
+ yacco2::lrclog << "\t" << sf->p1__->id__
+ << " filename: \"" << sf->p1__->file_name()->c_str()
+ << "\" does not exist" << std::endl;
+ std::cout << "\t" << sf->p1__->id__
+ << " filename: \"" << sf->p1__->file_name()->c_str()
+ << "\" does not exist" << std::endl;
+
+}
+
+void Rerror::sr5(){
+ struct SF{
+ Err_bad_cmd_lne_opt* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ error_where(sf->p1__);
+ yacco2::lrclog << "\t" << sf->p1__->id__ << std::endl;
+ std::cout << "\t" << sf->p1__->id__ << std::endl;
+
+}
+
+void Rerror::sr6(){
+ struct SF{
+ Err_bad_int_no* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ error_where(sf->p1__);
+ yacco2::lrclog << "\t" << sf->p1__->id__ << std::endl;
+ std::cout << "\t" << sf->p1__->id__ << std::endl;
+
+}
+
+void Rerror::sr7(){
+ struct SF{
+ Err_bad_int_no_range* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ error_where(sf->p1__);
+ yacco2::lrclog << "\t" << sf->p1__->id__ << std::endl;
+ std::cout << "\t" << sf->p1__->id__ << std::endl;
+
+}
+
+void Rerror::sr8(){
+ struct SF{
+ Err_no_int_present* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ error_where(sf->p1__);
+ yacco2::lrclog << "\t" << sf->p1__->id__ << std::endl;
+ std::cout << "\t" << sf->p1__->id__ << std::endl;
+
+}
+
+void Rerror::sr9(){
+ struct SF{
+ Err_bad_eos* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ error_where(sf->p1__);
+ yacco2::lrclog << "\t" << sf->p1__->id__ << std::endl;
+ std::cout << "\t" << sf->p1__->id__ << std::endl;
+
+}
+
+void Rerror::sr10(){
+ struct SF{
+ Err_bad_esc* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ error_where(sf->p1__);
+ yacco2::lrclog << "\t" << sf->p1__->id__ << std::endl;
+ std::cout << "\t" << sf->p1__->id__ << std::endl;
+
+}
+
+void Rerror::sr11(){
+ struct SF{
+ Err_comment_overrun* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ error_where(sf->p1__);
+ yacco2::lrclog << "\t" << sf->p1__->id__<< std::endl;
+ std::cout << "\t" << sf->p1__->id__ << std::endl;
+
+}
+
+void Rerror::sr12(){
+ struct SF{
+ Err_bad_char* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ error_where(sf->p1__);
+ yacco2::lrclog << "\t" << sf->p1__->id__ << std::endl;
+ std::cout << "\t" << sf->p1__->id__ << std::endl;
+
+}
+
+void Rerror::sr13(){
+ struct SF{
+ Err_bad_univ_seq* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ error_where(sf->p1__);
+ yacco2::lrclog << "\t" << sf->p1__->id__ << std::endl;
+ std::cout << "\t" << sf->p1__->id__ << std::endl;
+
+}
+
+void Rerror::sr14(){
+ struct SF{
+ T_file_inclusion* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Err_bad_filename* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ error_where(sf->p1__);
+ yacco2::lrclog << "\t" << sf->p1__->id__;
+ yacco2::lrclog << " " << sf->p2__->id__ << std::endl;
+ std::cout << "\t" << sf->p1__->id__;
+ std::cout << " " << sf->p2__->id__ << std::endl;
+
+}
+
+void Rerror::sr15(){
+ struct SF{
+ T_file_inclusion* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Err_bad_esc* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ error_where(sf->p1__);
+ yacco2::lrclog << "\t" << sf->p1__->id__;
+ yacco2::lrclog << " " << sf->p2__->id__ << std::endl;
+ std::cout << "\t" << sf->p1__->id__;
+ std::cout << " " << sf->p2__->id__ << std::endl;
+
+}
+
+void Rerror::sr16(){
+ struct SF{
+ T_file_inclusion* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Err_bad_eos* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ error_where(sf->p1__);
+ yacco2::lrclog << "\t" << sf->p1__->id__;
+ yacco2::lrclog << " " << sf->p2__->id__ << std::endl;
+ std::cout << "\t" << sf->p1__->id__;
+ std::cout << " " << sf->p2__->id__ << std::endl;
+
+}
+
+void Rerror::sr17(){
+ struct SF{
+ T_file_inclusion* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Err_no_filename* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ error_where(sf->p1__);
+ yacco2::lrclog << "\t" << sf->p1__->id__;
+ yacco2::lrclog << " " << sf->p2__->id__ << std::endl;
+ std::cout << "\t" << sf->p1__->id__;
+ std::cout << " " << sf->p2__->id__ << std::endl;
+
+}
+
+void Rerror::sr18(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ error_where(sf->p1__);
+ yacco2::lrclog << "\t" << sf->p1__->id__ << std::endl;
+ std::cout << "\t" << sf->p1__->id__ << std::endl;
+
+}
+
diff --git a/web/yacco2/compiler/grammars/o2_err_hdlr.fsc b/web/yacco2/compiler/grammars/o2_err_hdlr.fsc
new file mode 100644
index 0000000000..bdfe866f6a
--- /dev/null
+++ b/web/yacco2/compiler/grammars/o2_err_hdlr.fsc
@@ -0,0 +1,35 @@
+/*
+ File: o2_err_hdlr.fsc
+ Date and Time: Fri Jan 30 18:55:16 2015
+*/
+transitive n
+grammar-name "o2_err_hdlr"
+name-space "NS_o2_err_hdlr"
+thread-name "Co2_err_hdlr"
+monolithic y
+file-name "o2_err_hdlr.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 16
+ LR1_eog
+ LR1_all_shift_operator
+ T_file_inclusion
+ Err_nested_files_exceeded
+ Err_no_end_of_code
+ Err_no_filename
+ Err_bad_filename
+ Err_bad_cmd_lne_opt
+ Err_bad_int_no
+ Err_bad_int_no_range
+ Err_no_int_present
+ Err_bad_eos
+ Err_bad_esc
+ Err_comment_overrun
+ Err_bad_char
+ Err_bad_univ_seq
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"Logic sequencer: Print out errors from \\O2."
diff --git a/web/yacco2/compiler/grammars/o2_err_hdlr.h b/web/yacco2/compiler/grammars/o2_err_hdlr.h
new file mode 100644
index 0000000000..d69a2c01cb
--- /dev/null
+++ b/web/yacco2/compiler/grammars/o2_err_hdlr.h
@@ -0,0 +1,155 @@
+/*
+ File: o2_err_hdlr.h
+ Date and Time: Fri Jan 30 18:55:16 2015
+*/
+#ifndef __o2_err_hdlr_h__
+#define __o2_err_hdlr_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+// monolithic grammar: no thread
+extern yacco2::State S1_Co2_err_hdlr;
+namespace NS_o2_err_hdlr {
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[3];
+};
+class Co2_err_hdlr: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Ro2_err_hdlr_ = 569//start_of_rule_list + 0
+ ,rhs1_Ro2_err_hdlr_ = 1
+ ,rhs2_Ro2_err_hdlr_ = 2
+ ,R_Rerrors_ = 570//start_of_rule_list + 2
+ ,rhs1_Rerrors_ = 3
+ ,rhs2_Rerrors_ = 4
+ ,R_Rerror_ = 571//start_of_rule_list + 4
+ ,rhs1_Rerror_ = 5
+ ,rhs2_Rerror_ = 6
+ ,rhs3_Rerror_ = 7
+ ,rhs4_Rerror_ = 8
+ ,rhs5_Rerror_ = 9
+ ,rhs6_Rerror_ = 10
+ ,rhs7_Rerror_ = 11
+ ,rhs8_Rerror_ = 12
+ ,rhs9_Rerror_ = 13
+ ,rhs10_Rerror_ = 14
+ ,rhs11_Rerror_ = 15
+ ,rhs12_Rerror_ = 16
+ ,rhs13_Rerror_ = 17
+ ,rhs14_Rerror_ = 18
+ ,rhs15_Rerror_ = 19
+ ,rhs16_Rerror_ = 20
+ ,rhs17_Rerror_ = 21
+ ,rhs18_Rerror_ = 22
+ };
+ //no of la sets = 2
+ //no of states = 25
+ Co2_err_hdlr();
+ ~Co2_err_hdlr();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[23];
+ };
+struct Ro2_err_hdlr;
+struct Rerrors;
+struct Rerror;
+struct Ro2_err_hdlr:public yacco2::CAbs_lr1_sym {
+ Ro2_err_hdlr(yacco2::Parser* P);
+ public:
+};
+
+struct Rerrors:public yacco2::CAbs_lr1_sym {
+ Rerrors(yacco2::Parser* P);
+ public:
+};
+
+struct Rerror:public yacco2::CAbs_lr1_sym {
+ Rerror(yacco2::Parser* P);
+
+ void error_where(CAbs_lr1_sym* E_sym){
+ std::string& ext_fle = yacco2::FILE_TBL__[E_sym->tok_co_ords__.external_file_id__];
+ std::string line_of_data;
+ std::ifstream ifile;
+ ifile.open(ext_fle.c_str());
+ if(ifile.good()){
+ yacco2::UINT lno(1);yacco2::UINT dlno(E_sym->tok_co_ords__.line_no__);
+ for(;lno<=dlno;++lno){
+ getline(ifile,line_of_data);
+ if(lno == dlno) break;
+ line_of_data.clear();
+ }
+ }
+
+ std::string space(" ");
+ std::string::size_type f = line_of_data.find_first_of('\t');
+ for(;f != std::string::npos;){
+ line_of_data.replace(f,1,space);
+ f = line_of_data.find_first_of('\t');
+ }
+
+ yacco2::lrclog << "Error in file#: " << E_sym->tok_co_ords__.external_file_id__
+ << " \"" << ext_fle.c_str() << "\"" << std::endl;
+ yacco2::lrclog << line_of_data.c_str() << std::endl;
+ std::cout << "Error in file#: " << E_sym->tok_co_ords__.external_file_id__
+ << " \"" << ext_fle.c_str() << "\"" << std::endl;
+ std::cout << line_of_data.c_str() << std::endl;
+ for(int pos = 1;pos < E_sym->tok_co_ords__.pos_in_line__;++pos){
+ yacco2::lrclog << ' ';
+ std::cout << ' ';
+ }
+ yacco2::lrclog << '^' << std::endl;
+ yacco2::lrclog << "\tfpos: " << E_sym->tok_co_ords__.rc_pos__
+ << " line#: " << E_sym->tok_co_ords__.line_no__
+ << " cpos: " << E_sym->tok_co_ords__.pos_in_line__
+ << std::endl;
+ std::cout << '^' << std::endl;
+ std::cout << "\tfpos: " << E_sym->tok_co_ords__.rc_pos__
+ << " line#: " << E_sym->tok_co_ords__.line_no__
+ << " cpos: " << E_sym->tok_co_ords__.pos_in_line__
+ << std::endl;
+ if(E_sym->tok_co_ords__.who_file__ != 0){
+ yacco2::lrclog << "\twho thru it: " << E_sym->tok_co_ords__.who_file__
+ << " line#: " << E_sym->tok_co_ords__.who_line_no__
+ << std::endl;
+ std::cout << "\twho thru it: " << E_sym->tok_co_ords__.who_file__
+ << " line#: " << E_sym->tok_co_ords__.who_line_no__
+ << std::endl;
+ }
+ ifile.close();
+ };
+
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+ void sr5();
+ void sr6();
+ void sr7();
+ void sr8();
+ void sr9();
+ void sr10();
+ void sr11();
+ void sr12();
+ void sr13();
+ void sr14();
+ void sr15();
+ void sr16();
+ void sr17();
+ void sr18();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/o2_err_hdlr.lex b/web/yacco2/compiler/grammars/o2_err_hdlr.lex
new file mode 100644
index 0000000000..02c5136daf
--- /dev/null
+++ b/web/yacco2/compiler/grammars/o2_err_hdlr.lex
@@ -0,0 +1,233 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: o2_err_hdlr.lex
+Date: 8 Jul 2003
+Purpose: grammar to process errors from yacco2
+Conduit: none
+Change: 11 Mar 2004 - replace tab with space so that
+ displaced error lines up properly
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |o2_err_hdlr| grammar.\fbreak
+Grammar that processes for printing posted errors from yacco2.
+@/
+fsm
+(fsm-id "o2_err_hdlr.lex",fsm-filename o2_err_hdlr,fsm-namespace NS_o2_err_hdlr
+,fsm-class Co2_err_hdlr
+,fsm-version "1.0",fsm-date "8 Jul 2003",fsm-debug "false"
+,fsm-comments "Logic sequencer: Print out errors from \\O2.")
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+rules{
+Ro2_err_hdlr (){
+ -> Rerrors eog
+ -> eog
+}
+
+Rerrors (){
+ -> Rerror
+ -> Rerrors Rerror
+}
+
+Rerror (
+lhs{
+ user-declaration
+ void error_where(CAbs_lr1_sym* E_sym){
+ std::string& ext_fle = yacco2::FILE_TBL__[E_sym->tok_co_ords__.external_file_id__];
+ std::string line_of_data;
+ std::ifstream ifile;
+ ifile.open(ext_fle.c_str());
+ if(ifile.good()){
+ yacco2::UINT lno(1);yacco2::UINT dlno(E_sym->tok_co_ords__.line_no__);
+ for(;lno<=dlno;++lno){
+ getline(ifile,line_of_data);
+ if(lno == dlno) break;
+ line_of_data.clear();
+ }
+ }
+
+ std::string space(" ");
+ std::string::size_type f = line_of_data.find_first_of('\t');
+ for(;f != std::string::npos;){
+ line_of_data.replace(f,1,space);
+ f = line_of_data.find_first_of('\t');
+ }
+
+ yacco2::lrclog << "Error in file#: " << E_sym->tok_co_ords__.external_file_id__
+ << " \"" << ext_fle.c_str() << "\"" << std::endl;
+ yacco2::lrclog << line_of_data.c_str() << std::endl;
+ std::cout << "Error in file#: " << E_sym->tok_co_ords__.external_file_id__
+ << " \"" << ext_fle.c_str() << "\"" << std::endl;
+ std::cout << line_of_data.c_str() << std::endl;
+ for(int pos = 1;pos < E_sym->tok_co_ords__.pos_in_line__;++pos){
+ yacco2::lrclog << ' ';
+ std::cout << ' ';
+ }
+ yacco2::lrclog << '^' << std::endl;
+ yacco2::lrclog << "\tfpos: " << E_sym->tok_co_ords__.rc_pos__
+ << " line#: " << E_sym->tok_co_ords__.line_no__
+ << " cpos: " << E_sym->tok_co_ords__.pos_in_line__
+ << std::endl;
+ std::cout << '^' << std::endl;
+ std::cout << "\tfpos: " << E_sym->tok_co_ords__.rc_pos__
+ << " line#: " << E_sym->tok_co_ords__.line_no__
+ << " cpos: " << E_sym->tok_co_ords__.pos_in_line__
+ << std::endl;
+ if(E_sym->tok_co_ords__.who_file__ != 0){
+ yacco2::lrclog << "\twho thru it: " << E_sym->tok_co_ords__.who_file__
+ << " line#: " << E_sym->tok_co_ords__.who_line_no__
+ << std::endl;
+ std::cout << "\twho thru it: " << E_sym->tok_co_ords__.who_file__
+ << " line#: " << E_sym->tok_co_ords__.who_line_no__
+ << std::endl;
+ }
+ ifile.close();
+ };
+ ***
+}
+){
+ -> "nested files exceeded" {
+ op
+ error_where(sf->p1__);
+ yacco2::lrclog << "\t" << sf->p1__->id__
+ << " nested number: " << sf->p1__->nested_cnt() << std::endl;
+ std::cout << "\t" << sf->p1__->id__
+ << " nested number exceeded: " << sf->p1__->nested_cnt() << std::endl;
+ ***
+ }
+ -> "no end-of-code" {
+ op
+ error_where(sf->p1__);
+ yacco2::lrclog << "\t" << sf->p1__->id__ << std::endl;
+ std::cout << "\t" << sf->p1__->id__ << std::endl;
+ ***
+ }
+ -> "no filename" {
+ op
+ error_where(sf->p1__);
+ yacco2::lrclog << "\t" << sf->p1__->id__ << std::endl;
+ std::cout << "\t" << sf->p1__->id__ << std::endl;
+ ***
+ }
+ -> "bad filename" {
+ op
+ error_where(sf->p1__);
+ yacco2::lrclog << "\t" << sf->p1__->id__
+ << " filename: \"" << sf->p1__->file_name()->c_str()
+ << "\" does not exist" << std::endl;
+ std::cout << "\t" << sf->p1__->id__
+ << " filename: \"" << sf->p1__->file_name()->c_str()
+ << "\" does not exist" << std::endl;
+ ***
+ }
+ -> "bad cmd-opt" {
+ op
+ error_where(sf->p1__);
+ yacco2::lrclog << "\t" << sf->p1__->id__ << std::endl;
+ std::cout << "\t" << sf->p1__->id__ << std::endl;
+ ***
+ }
+ -> "bad int-no" {
+ op
+ error_where(sf->p1__);
+ yacco2::lrclog << "\t" << sf->p1__->id__ << std::endl;
+ std::cout << "\t" << sf->p1__->id__ << std::endl;
+ ***
+ }
+ -> "bad int-no range" {
+ op
+ error_where(sf->p1__);
+ yacco2::lrclog << "\t" << sf->p1__->id__ << std::endl;
+ std::cout << "\t" << sf->p1__->id__ << std::endl;
+ ***
+ }
+ -> "no int present" {
+ op
+ error_where(sf->p1__);
+ yacco2::lrclog << "\t" << sf->p1__->id__ << std::endl;
+ std::cout << "\t" << sf->p1__->id__ << std::endl;
+ ***
+ }
+ -> "bad eos" {
+ op
+ error_where(sf->p1__);
+ yacco2::lrclog << "\t" << sf->p1__->id__ << std::endl;
+ std::cout << "\t" << sf->p1__->id__ << std::endl;
+ ***
+ }
+ -> "bad esc" {
+ op
+ error_where(sf->p1__);
+ yacco2::lrclog << "\t" << sf->p1__->id__ << std::endl;
+ std::cout << "\t" << sf->p1__->id__ << std::endl;
+ ***
+ }
+ -> "comment-overrun" {
+ op
+ error_where(sf->p1__);
+ yacco2::lrclog << "\t" << sf->p1__->id__<< std::endl;
+ std::cout << "\t" << sf->p1__->id__ << std::endl;
+ ***
+ }
+ -> "bad char" {
+ op
+ error_where(sf->p1__);
+ yacco2::lrclog << "\t" << sf->p1__->id__ << std::endl;
+ std::cout << "\t" << sf->p1__->id__ << std::endl;
+ ***
+ }
+ -> "bad univ-seq" {
+ op
+ error_where(sf->p1__);
+ yacco2::lrclog << "\t" << sf->p1__->id__ << std::endl;
+ std::cout << "\t" << sf->p1__->id__ << std::endl;
+ ***
+ }
+ -> "file-inclusion" "bad filename" {
+ op
+ error_where(sf->p1__);
+ yacco2::lrclog << "\t" << sf->p1__->id__;
+ yacco2::lrclog << " " << sf->p2__->id__ << std::endl;
+ std::cout << "\t" << sf->p1__->id__;
+ std::cout << " " << sf->p2__->id__ << std::endl;
+ ***
+ }
+ -> "file-inclusion" "bad esc" {
+ op
+ error_where(sf->p1__);
+ yacco2::lrclog << "\t" << sf->p1__->id__;
+ yacco2::lrclog << " " << sf->p2__->id__ << std::endl;
+ std::cout << "\t" << sf->p1__->id__;
+ std::cout << " " << sf->p2__->id__ << std::endl;
+ ***
+ }
+ -> "file-inclusion" "bad eos" {
+ op
+ error_where(sf->p1__);
+ yacco2::lrclog << "\t" << sf->p1__->id__;
+ yacco2::lrclog << " " << sf->p2__->id__ << std::endl;
+ std::cout << "\t" << sf->p1__->id__;
+ std::cout << " " << sf->p2__->id__ << std::endl;
+ ***
+ }
+ -> "file-inclusion" "no filename" {
+ op
+ error_where(sf->p1__);
+ yacco2::lrclog << "\t" << sf->p1__->id__;
+ yacco2::lrclog << " " << sf->p2__->id__ << std::endl;
+ std::cout << "\t" << sf->p1__->id__;
+ std::cout << " " << sf->p2__->id__ << std::endl;
+ ***
+ }
+ -> |+| {// catch balance of errors
+ op
+ error_where(sf->p1__);
+ yacco2::lrclog << "\t" << sf->p1__->id__ << std::endl;
+ std::cout << "\t" << sf->p1__->id__ << std::endl;
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/o2_err_hdlrsym.cpp b/web/yacco2/compiler/grammars/o2_err_hdlrsym.cpp
new file mode 100644
index 0000000000..e8add0d34b
--- /dev/null
+++ b/web/yacco2/compiler/grammars/o2_err_hdlrsym.cpp
@@ -0,0 +1,353 @@
+/*
+ File: o2_err_hdlrsym.cpp
+ Date and Time: Fri Jan 30 18:55:16 2015
+*/
+#include "o2_err_hdlr.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_o2_err_hdlr;// grammar's ns
+// first set terminals
+// monolithic grammar --- no thread
+void
+Co2_err_hdlr::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Ro2_err_hdlr_:{
+ Ro2_err_hdlr* sym;
+ if(re->rule_ == 0){
+ sym = new Ro2_err_hdlr(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ro2_err_hdlr*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Ro2_err_hdlr_:{
+ Ro2_err_hdlr* sym;
+ if(re->rule_ == 0){
+ sym = new Ro2_err_hdlr(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ro2_err_hdlr*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rerrors_:{
+ Rerrors* sym;
+ if(re->rule_ == 0){
+ sym = new Rerrors(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rerrors*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rerrors_:{
+ Rerrors* sym;
+ if(re->rule_ == 0){
+ sym = new Rerrors(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rerrors*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rerror_:{
+ Rerror* sym;
+ if(re->rule_ == 0){
+ sym = new Rerror(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rerror*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rerror_:{
+ Rerror* sym;
+ if(re->rule_ == 0){
+ sym = new Rerror(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rerror*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rerror_:{
+ Rerror* sym;
+ if(re->rule_ == 0){
+ sym = new Rerror(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rerror*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rerror_:{
+ Rerror* sym;
+ if(re->rule_ == 0){
+ sym = new Rerror(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rerror*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr4();
+ return;}
+ case rhs5_Rerror_:{
+ Rerror* sym;
+ if(re->rule_ == 0){
+ sym = new Rerror(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rerror*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr5();
+ return;}
+ case rhs6_Rerror_:{
+ Rerror* sym;
+ if(re->rule_ == 0){
+ sym = new Rerror(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rerror*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr6();
+ return;}
+ case rhs7_Rerror_:{
+ Rerror* sym;
+ if(re->rule_ == 0){
+ sym = new Rerror(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rerror*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr7();
+ return;}
+ case rhs8_Rerror_:{
+ Rerror* sym;
+ if(re->rule_ == 0){
+ sym = new Rerror(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rerror*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr8();
+ return;}
+ case rhs9_Rerror_:{
+ Rerror* sym;
+ if(re->rule_ == 0){
+ sym = new Rerror(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rerror*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr9();
+ return;}
+ case rhs10_Rerror_:{
+ Rerror* sym;
+ if(re->rule_ == 0){
+ sym = new Rerror(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rerror*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr10();
+ return;}
+ case rhs11_Rerror_:{
+ Rerror* sym;
+ if(re->rule_ == 0){
+ sym = new Rerror(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rerror*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr11();
+ return;}
+ case rhs12_Rerror_:{
+ Rerror* sym;
+ if(re->rule_ == 0){
+ sym = new Rerror(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rerror*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr12();
+ return;}
+ case rhs13_Rerror_:{
+ Rerror* sym;
+ if(re->rule_ == 0){
+ sym = new Rerror(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rerror*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr13();
+ return;}
+ case rhs14_Rerror_:{
+ Rerror* sym;
+ if(re->rule_ == 0){
+ sym = new Rerror(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rerror*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr14();
+ return;}
+ case rhs15_Rerror_:{
+ Rerror* sym;
+ if(re->rule_ == 0){
+ sym = new Rerror(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rerror*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr15();
+ return;}
+ case rhs16_Rerror_:{
+ Rerror* sym;
+ if(re->rule_ == 0){
+ sym = new Rerror(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rerror*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr16();
+ return;}
+ case rhs17_Rerror_:{
+ Rerror* sym;
+ if(re->rule_ == 0){
+ sym = new Rerror(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rerror*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr17();
+ return;}
+ case rhs18_Rerror_:{
+ Rerror* sym;
+ if(re->rule_ == 0){
+ sym = new Rerror(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rerror*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr18();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/o2_err_hdlrtbl.cpp b/web/yacco2/compiler/grammars/o2_err_hdlrtbl.cpp
new file mode 100644
index 0000000000..e2a30b4bc9
--- /dev/null
+++ b/web/yacco2/compiler/grammars/o2_err_hdlrtbl.cpp
@@ -0,0 +1,458 @@
+/*
+ File: o2_err_hdlrtbl.cpp
+ Date and Time: Fri Jan 30 18:55:16 2015
+*/
+#include "o2_err_hdlr.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_o2_err_hdlr;// grammar's ns
+// first set terminals
+// LR1_eolr
+yacco2::UCHAR LA1_Co2_err_hdlr[] ={
+1
+,0,4
+};
+// LR1_eog
+// LR1_all_shift_operator
+// T_file_inclusion
+// Err_nested_files_exceeded
+// Err_no_end_of_code
+// Err_no_filename
+// Err_bad_filename
+// Err_bad_cmd_lne_opt
+// Err_bad_int_no
+// Err_bad_int_no_range
+// Err_no_int_present
+// Err_bad_eos
+// Err_bad_esc
+// Err_comment_overrun
+// Err_bad_char
+// Err_bad_univ_seq
+yacco2::UCHAR LA2_Co2_err_hdlr[] ={
+5
+,0,66
+,34,64
+,47,108
+,48,192
+,49,127
+};
+extern yacco2::State S1_Co2_err_hdlr;
+extern yacco2::State S2_Co2_err_hdlr;
+extern yacco2::State S3_Co2_err_hdlr;
+extern yacco2::State S4_Co2_err_hdlr;
+extern yacco2::State S5_Co2_err_hdlr;
+extern yacco2::State S6_Co2_err_hdlr;
+extern yacco2::State S7_Co2_err_hdlr;
+extern yacco2::State S8_Co2_err_hdlr;
+extern yacco2::State S9_Co2_err_hdlr;
+extern yacco2::State S10_Co2_err_hdlr;
+extern yacco2::State S11_Co2_err_hdlr;
+extern yacco2::State S12_Co2_err_hdlr;
+extern yacco2::State S13_Co2_err_hdlr;
+extern yacco2::State S14_Co2_err_hdlr;
+extern yacco2::State S15_Co2_err_hdlr;
+extern yacco2::State S16_Co2_err_hdlr;
+extern yacco2::State S17_Co2_err_hdlr;
+extern yacco2::State S18_Co2_err_hdlr;
+extern yacco2::State S19_Co2_err_hdlr;
+extern yacco2::State S20_Co2_err_hdlr;
+extern yacco2::State S21_Co2_err_hdlr;
+extern yacco2::State S22_Co2_err_hdlr;
+extern yacco2::State S23_Co2_err_hdlr;
+extern yacco2::State S24_Co2_err_hdlr;
+extern yacco2::State S25_Co2_err_hdlr;
+struct S1std_Co2_err_hdlr{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[19];
+};
+S1std_Co2_err_hdlr S1st_Co2_err_hdlr = {
+ 19
+ ,
+ {// start of table
+ {1,(State*)&S2_Co2_err_hdlr} // shift sym: LR1_eog
+ ,{6,(State*)&S3_Co2_err_hdlr} // shift sym: LR1_all_shift_operator
+ ,{278,(State*)&S4_Co2_err_hdlr} // shift sym: T_file_inclusion
+ ,{378,(State*)&S9_Co2_err_hdlr} // shift sym: Err_nested_files_exceeded
+ ,{379,(State*)&S10_Co2_err_hdlr} // shift sym: Err_no_end_of_code
+ ,{381,(State*)&S11_Co2_err_hdlr} // shift sym: Err_no_filename
+ ,{382,(State*)&S12_Co2_err_hdlr} // shift sym: Err_bad_filename
+ ,{390,(State*)&S13_Co2_err_hdlr} // shift sym: Err_bad_cmd_lne_opt
+ ,{391,(State*)&S14_Co2_err_hdlr} // shift sym: Err_bad_int_no
+ ,{392,(State*)&S15_Co2_err_hdlr} // shift sym: Err_bad_int_no_range
+ ,{393,(State*)&S16_Co2_err_hdlr} // shift sym: Err_no_int_present
+ ,{394,(State*)&S17_Co2_err_hdlr} // shift sym: Err_bad_eos
+ ,{395,(State*)&S18_Co2_err_hdlr} // shift sym: Err_bad_esc
+ ,{396,(State*)&S19_Co2_err_hdlr} // shift sym: Err_comment_overrun
+ ,{397,(State*)&S20_Co2_err_hdlr} // shift sym: Err_bad_char
+ ,{398,(State*)&S21_Co2_err_hdlr} // shift sym: Err_bad_univ_seq
+ ,{569,(State*)&S1_Co2_err_hdlr} // accept sym: Ro2_err_hdlr
+ ,{570,(State*)&S22_Co2_err_hdlr} // shift sym: Rerrors
+ ,{571,(State*)&S25_Co2_err_hdlr} // shift sym: Rerror
+ }// end of shift table
+};
+yacco2::Shift_entry S1ase_Co2_err_hdlr = {6,(State*)&S3_Co2_err_hdlr};
+yacco2::State S1_Co2_err_hdlr = //State's vectored into symbol: " No symbol"
+{1
+,0,(Shift_entry*)&S1ase_Co2_err_hdlr
+,0,0,(Shift_tbl*)&S1st_Co2_err_hdlr,0,0,0,0};
+struct S2rtd_Co2_err_hdlr{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Co2_err_hdlr S2rt_Co2_err_hdlr = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Co2_err_hdlr,Co2_err_hdlr::rhs2_Ro2_err_hdlr_}
+ }// end of reduce table
+};
+yacco2::State S2_Co2_err_hdlr = //State's vectored into symbol: "eog"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Co2_err_hdlr,0,0,0};
+struct S3rtd_Co2_err_hdlr{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Co2_err_hdlr S3rt_Co2_err_hdlr = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Co2_err_hdlr,Co2_err_hdlr::rhs18_Rerror_}
+ }// end of reduce table
+};
+yacco2::State S3_Co2_err_hdlr = //State's vectored into symbol: "|+|"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_Co2_err_hdlr,0,0,0};
+struct S4std_Co2_err_hdlr{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S4std_Co2_err_hdlr S4st_Co2_err_hdlr = {
+ 4
+ ,
+ {// start of table
+ {381,(State*)&S5_Co2_err_hdlr} // shift sym: Err_no_filename
+ ,{382,(State*)&S6_Co2_err_hdlr} // shift sym: Err_bad_filename
+ ,{394,(State*)&S7_Co2_err_hdlr} // shift sym: Err_bad_eos
+ ,{395,(State*)&S8_Co2_err_hdlr} // shift sym: Err_bad_esc
+ }// end of shift table
+};
+yacco2::State S4_Co2_err_hdlr = //State's vectored into symbol: "file-inclusion"
+{4
+,0,0,0,0,(Shift_tbl*)&S4st_Co2_err_hdlr,0,0,0,0};
+struct S5rtd_Co2_err_hdlr{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Co2_err_hdlr S5rt_Co2_err_hdlr = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Co2_err_hdlr,Co2_err_hdlr::rhs17_Rerror_}
+ }// end of reduce table
+};
+yacco2::State S5_Co2_err_hdlr = //State's vectored into symbol: "no filename"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Co2_err_hdlr,0,0,0};
+struct S6rtd_Co2_err_hdlr{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Co2_err_hdlr S6rt_Co2_err_hdlr = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Co2_err_hdlr,Co2_err_hdlr::rhs14_Rerror_}
+ }// end of reduce table
+};
+yacco2::State S6_Co2_err_hdlr = //State's vectored into symbol: "bad filename"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Co2_err_hdlr,0,0,0};
+struct S7rtd_Co2_err_hdlr{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Co2_err_hdlr S7rt_Co2_err_hdlr = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Co2_err_hdlr,Co2_err_hdlr::rhs16_Rerror_}
+ }// end of reduce table
+};
+yacco2::State S7_Co2_err_hdlr = //State's vectored into symbol: "bad eos"
+{7
+,0,0,0,0,0,(Reduce_tbl*)&S7rt_Co2_err_hdlr,0,0,0};
+struct S8rtd_Co2_err_hdlr{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S8rtd_Co2_err_hdlr S8rt_Co2_err_hdlr = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Co2_err_hdlr,Co2_err_hdlr::rhs15_Rerror_}
+ }// end of reduce table
+};
+yacco2::State S8_Co2_err_hdlr = //State's vectored into symbol: "bad esc"
+{8
+,0,0,0,0,0,(Reduce_tbl*)&S8rt_Co2_err_hdlr,0,0,0};
+struct S9rtd_Co2_err_hdlr{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Co2_err_hdlr S9rt_Co2_err_hdlr = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Co2_err_hdlr,Co2_err_hdlr::rhs1_Rerror_}
+ }// end of reduce table
+};
+yacco2::State S9_Co2_err_hdlr = //State's vectored into symbol: "nested files exceeded"
+{9
+,0,0,0,0,0,(Reduce_tbl*)&S9rt_Co2_err_hdlr,0,0,0};
+struct S10rtd_Co2_err_hdlr{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S10rtd_Co2_err_hdlr S10rt_Co2_err_hdlr = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Co2_err_hdlr,Co2_err_hdlr::rhs2_Rerror_}
+ }// end of reduce table
+};
+yacco2::State S10_Co2_err_hdlr = //State's vectored into symbol: "no end-of-code"
+{10
+,0,0,0,0,0,(Reduce_tbl*)&S10rt_Co2_err_hdlr,0,0,0};
+struct S11rtd_Co2_err_hdlr{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Co2_err_hdlr S11rt_Co2_err_hdlr = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Co2_err_hdlr,Co2_err_hdlr::rhs3_Rerror_}
+ }// end of reduce table
+};
+yacco2::State S11_Co2_err_hdlr = //State's vectored into symbol: "no filename"
+{11
+,0,0,0,0,0,(Reduce_tbl*)&S11rt_Co2_err_hdlr,0,0,0};
+struct S12rtd_Co2_err_hdlr{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S12rtd_Co2_err_hdlr S12rt_Co2_err_hdlr = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Co2_err_hdlr,Co2_err_hdlr::rhs4_Rerror_}
+ }// end of reduce table
+};
+yacco2::State S12_Co2_err_hdlr = //State's vectored into symbol: "bad filename"
+{12
+,0,0,0,0,0,(Reduce_tbl*)&S12rt_Co2_err_hdlr,0,0,0};
+struct S13rtd_Co2_err_hdlr{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S13rtd_Co2_err_hdlr S13rt_Co2_err_hdlr = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Co2_err_hdlr,Co2_err_hdlr::rhs5_Rerror_}
+ }// end of reduce table
+};
+yacco2::State S13_Co2_err_hdlr = //State's vectored into symbol: "bad cmd-opt"
+{13
+,0,0,0,0,0,(Reduce_tbl*)&S13rt_Co2_err_hdlr,0,0,0};
+struct S14rtd_Co2_err_hdlr{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S14rtd_Co2_err_hdlr S14rt_Co2_err_hdlr = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Co2_err_hdlr,Co2_err_hdlr::rhs6_Rerror_}
+ }// end of reduce table
+};
+yacco2::State S14_Co2_err_hdlr = //State's vectored into symbol: "bad int-no"
+{14
+,0,0,0,0,0,(Reduce_tbl*)&S14rt_Co2_err_hdlr,0,0,0};
+struct S15rtd_Co2_err_hdlr{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S15rtd_Co2_err_hdlr S15rt_Co2_err_hdlr = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Co2_err_hdlr,Co2_err_hdlr::rhs7_Rerror_}
+ }// end of reduce table
+};
+yacco2::State S15_Co2_err_hdlr = //State's vectored into symbol: "bad int-no range"
+{15
+,0,0,0,0,0,(Reduce_tbl*)&S15rt_Co2_err_hdlr,0,0,0};
+struct S16rtd_Co2_err_hdlr{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S16rtd_Co2_err_hdlr S16rt_Co2_err_hdlr = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Co2_err_hdlr,Co2_err_hdlr::rhs8_Rerror_}
+ }// end of reduce table
+};
+yacco2::State S16_Co2_err_hdlr = //State's vectored into symbol: "no int present"
+{16
+,0,0,0,0,0,(Reduce_tbl*)&S16rt_Co2_err_hdlr,0,0,0};
+struct S17rtd_Co2_err_hdlr{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S17rtd_Co2_err_hdlr S17rt_Co2_err_hdlr = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Co2_err_hdlr,Co2_err_hdlr::rhs9_Rerror_}
+ }// end of reduce table
+};
+yacco2::State S17_Co2_err_hdlr = //State's vectored into symbol: "bad eos"
+{17
+,0,0,0,0,0,(Reduce_tbl*)&S17rt_Co2_err_hdlr,0,0,0};
+struct S18rtd_Co2_err_hdlr{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S18rtd_Co2_err_hdlr S18rt_Co2_err_hdlr = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Co2_err_hdlr,Co2_err_hdlr::rhs10_Rerror_}
+ }// end of reduce table
+};
+yacco2::State S18_Co2_err_hdlr = //State's vectored into symbol: "bad esc"
+{18
+,0,0,0,0,0,(Reduce_tbl*)&S18rt_Co2_err_hdlr,0,0,0};
+struct S19rtd_Co2_err_hdlr{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S19rtd_Co2_err_hdlr S19rt_Co2_err_hdlr = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Co2_err_hdlr,Co2_err_hdlr::rhs11_Rerror_}
+ }// end of reduce table
+};
+yacco2::State S19_Co2_err_hdlr = //State's vectored into symbol: "comment-overrun"
+{19
+,0,0,0,0,0,(Reduce_tbl*)&S19rt_Co2_err_hdlr,0,0,0};
+struct S20rtd_Co2_err_hdlr{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S20rtd_Co2_err_hdlr S20rt_Co2_err_hdlr = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Co2_err_hdlr,Co2_err_hdlr::rhs12_Rerror_}
+ }// end of reduce table
+};
+yacco2::State S20_Co2_err_hdlr = //State's vectored into symbol: "bad char"
+{20
+,0,0,0,0,0,(Reduce_tbl*)&S20rt_Co2_err_hdlr,0,0,0};
+struct S21rtd_Co2_err_hdlr{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S21rtd_Co2_err_hdlr S21rt_Co2_err_hdlr = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Co2_err_hdlr,Co2_err_hdlr::rhs13_Rerror_}
+ }// end of reduce table
+};
+yacco2::State S21_Co2_err_hdlr = //State's vectored into symbol: "bad univ-seq"
+{21
+,0,0,0,0,0,(Reduce_tbl*)&S21rt_Co2_err_hdlr,0,0,0};
+struct S22std_Co2_err_hdlr{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[17];
+};
+S22std_Co2_err_hdlr S22st_Co2_err_hdlr = {
+ 17
+ ,
+ {// start of table
+ {1,(State*)&S23_Co2_err_hdlr} // shift sym: LR1_eog
+ ,{6,(State*)&S3_Co2_err_hdlr} // shift sym: LR1_all_shift_operator
+ ,{278,(State*)&S4_Co2_err_hdlr} // shift sym: T_file_inclusion
+ ,{378,(State*)&S9_Co2_err_hdlr} // shift sym: Err_nested_files_exceeded
+ ,{379,(State*)&S10_Co2_err_hdlr} // shift sym: Err_no_end_of_code
+ ,{381,(State*)&S11_Co2_err_hdlr} // shift sym: Err_no_filename
+ ,{382,(State*)&S12_Co2_err_hdlr} // shift sym: Err_bad_filename
+ ,{390,(State*)&S13_Co2_err_hdlr} // shift sym: Err_bad_cmd_lne_opt
+ ,{391,(State*)&S14_Co2_err_hdlr} // shift sym: Err_bad_int_no
+ ,{392,(State*)&S15_Co2_err_hdlr} // shift sym: Err_bad_int_no_range
+ ,{393,(State*)&S16_Co2_err_hdlr} // shift sym: Err_no_int_present
+ ,{394,(State*)&S17_Co2_err_hdlr} // shift sym: Err_bad_eos
+ ,{395,(State*)&S18_Co2_err_hdlr} // shift sym: Err_bad_esc
+ ,{396,(State*)&S19_Co2_err_hdlr} // shift sym: Err_comment_overrun
+ ,{397,(State*)&S20_Co2_err_hdlr} // shift sym: Err_bad_char
+ ,{398,(State*)&S21_Co2_err_hdlr} // shift sym: Err_bad_univ_seq
+ ,{571,(State*)&S24_Co2_err_hdlr} // shift sym: Rerror
+ }// end of shift table
+};
+yacco2::Shift_entry S22ase_Co2_err_hdlr = {6,(State*)&S3_Co2_err_hdlr};
+yacco2::State S22_Co2_err_hdlr = //State's vectored into symbol: "Rerrors"
+{22
+,0,(Shift_entry*)&S22ase_Co2_err_hdlr
+,0,0,(Shift_tbl*)&S22st_Co2_err_hdlr,0,0,0,0};
+struct S23rtd_Co2_err_hdlr{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S23rtd_Co2_err_hdlr S23rt_Co2_err_hdlr = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Co2_err_hdlr,Co2_err_hdlr::rhs1_Ro2_err_hdlr_}
+ }// end of reduce table
+};
+yacco2::State S23_Co2_err_hdlr = //State's vectored into symbol: "eog"
+{23
+,0,0,0,0,0,(Reduce_tbl*)&S23rt_Co2_err_hdlr,0,0,0};
+struct S24rtd_Co2_err_hdlr{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S24rtd_Co2_err_hdlr S24rt_Co2_err_hdlr = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Co2_err_hdlr,Co2_err_hdlr::rhs2_Rerrors_}
+ }// end of reduce table
+};
+yacco2::State S24_Co2_err_hdlr = //State's vectored into symbol: "Rerror"
+{24
+,0,0,0,0,0,(Reduce_tbl*)&S24rt_Co2_err_hdlr,0,0,0};
+struct S25rtd_Co2_err_hdlr{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S25rtd_Co2_err_hdlr S25rt_Co2_err_hdlr = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Co2_err_hdlr,Co2_err_hdlr::rhs1_Rerrors_}
+ }// end of reduce table
+};
+yacco2::State S25_Co2_err_hdlr = //State's vectored into symbol: "Rerror"
+{25
+,0,0,0,0,0,(Reduce_tbl*)&S25rt_Co2_err_hdlr,0,0,0};
diff --git a/web/yacco2/compiler/grammars/o2_lcl_opt.cpp b/web/yacco2/compiler/grammars/o2_lcl_opt.cpp
new file mode 100644
index 0000000000..3328283a6b
--- /dev/null
+++ b/web/yacco2/compiler/grammars/o2_lcl_opt.cpp
@@ -0,0 +1,151 @@
+/*
+ File: o2_lcl_opt.cpp
+ Date and Time: Fri Jan 30 18:55:16 2015
+*/
+#include "o2_lcl_opt.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_o2_lcl_opt;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 4;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+}
+ Co2_lcl_opt::
+ Co2_lcl_opt()
+ :yacco2::CAbs_fsm
+ ("o2_lcl_opt.lex"
+ ,"1.1"
+ ,"18 Oct. 2003"
+ ,false
+ ,"\\O2's individual command line option recognizer."
+ ,"Fri Jan 30 18:55:16 2015 "
+ ,S1_Co2_lcl_opt){
+
+ }
+
+Co2_lcl_opt::~Co2_lcl_opt(){
+
+ for(int x = 0;x < 4;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Co2_lcl_opt::failed(){
+
+ CAbs_lr1_sym* sym = new Err_bad_cmd_lne_opt;
+ sym->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ RSVP_FSM(sym);
+ return true;
+
+ }
+ void Co2_lcl_opt::op(){
+}
+int Co2_lcl_opt::rhs_to_rules_mapping_[12] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,2 // subrule 3 for rule 3
+ ,2 // subrule 4 for rule 3
+ ,2 // subrule 5 for rule 3
+ ,2 // subrule 6 for rule 3
+ ,2 // subrule 7 for rule 3
+ ,2 // subrule 8 for rule 3
+ ,3 // subrule 9 for rule 4
+ ,3 // subrule 10 for rule 4
+ ,3 // subrule 11 for rule 4
+};
+Ro2_lcl_opt::Ro2_lcl_opt(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Ro2_lcl_opt",0,Co2_lcl_opt::R_Ro2_lcl_opt_,P,false,false){
+}
+
+void Ro2_lcl_opt::sr1(){
+ struct SF{
+ Rminus* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Rspec_parm* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ Rmust_lint* p3__;
+ State* s3__;
+ bool abort3__;
+ Rule_s_reuse_entry* rule_s_reuse_entry3__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(3);
+
+ sf->p2__->rtn_parm_->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sf->p2__->rtn_parm_);
+
+}
+
+Rminus::Rminus(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rminus",0,Co2_lcl_opt::R_Rminus_,P,false,false){
+}
+
+Rspec_parm::Rspec_parm(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rspec_parm",0,Co2_lcl_opt::R_Rspec_parm_,P,false,false){
+}
+
+void Rspec_parm::sr1(){
+
+ rtn_parm_ = new T_option_t;
+
+}
+
+void Rspec_parm::sr2(){
+
+ rtn_parm_ = new T_option_p;
+
+}
+
+void Rspec_parm::sr3(){
+
+ rtn_parm_ = new Err_bad_cmd_lne_opt;
+ rtn_parm_->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+
+}
+
+void Rspec_parm::sr4(){
+
+ rtn_parm_ = new T_option_err;
+
+}
+
+void Rspec_parm::sr5(){
+
+ rtn_parm_ = new Err_bad_cmd_lne_opt;
+ rtn_parm_->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+
+}
+
+void Rspec_parm::sr6(){
+
+ rtn_parm_ = new Err_bad_cmd_lne_opt;
+ rtn_parm_->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+
+}
+
+Rmust_lint::Rmust_lint(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rmust_lint",0,Co2_lcl_opt::R_Rmust_lint_,P,false,false){
+}
+
+void Rmust_lint::sr3(){
+
+ parser()->set_abort_parse(true);
+
+}
+
diff --git a/web/yacco2/compiler/grammars/o2_lcl_opt.fsc b/web/yacco2/compiler/grammars/o2_lcl_opt.fsc
new file mode 100644
index 0000000000..231af7f4ad
--- /dev/null
+++ b/web/yacco2/compiler/grammars/o2_lcl_opt.fsc
@@ -0,0 +1,20 @@
+/*
+ File: o2_lcl_opt.fsc
+ Date and Time: Fri Jan 30 18:55:16 2015
+*/
+transitive n
+grammar-name "o2_lcl_opt"
+name-space "NS_o2_lcl_opt"
+thread-name "TH_o2_lcl_opt"
+monolithic n
+file-name "o2_lcl_opt.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ raw_minus
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"\\O2's individual command line option recognizer."
diff --git a/web/yacco2/compiler/grammars/o2_lcl_opt.h b/web/yacco2/compiler/grammars/o2_lcl_opt.h
new file mode 100644
index 0000000000..f455f481a4
--- /dev/null
+++ b/web/yacco2/compiler/grammars/o2_lcl_opt.h
@@ -0,0 +1,97 @@
+/*
+ File: o2_lcl_opt.h
+ Date and Time: Fri Jan 30 18:55:16 2015
+*/
+#ifndef __o2_lcl_opt_h__
+#define __o2_lcl_opt_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+extern yacco2::Thread_entry ITH_o2_lcl_opt;
+
+extern yacco2::State S1_Co2_lcl_opt;
+namespace NS_o2_lcl_opt {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_o2_lcl_opt(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_o2_lcl_opt(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[4];
+};
+class Co2_lcl_opt: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Ro2_lcl_opt_ = 569//start_of_rule_list + 0
+ ,rhs1_Ro2_lcl_opt_ = 1
+ ,R_Rminus_ = 570//start_of_rule_list + 2
+ ,rhs1_Rminus_ = 2
+ ,R_Rspec_parm_ = 571//start_of_rule_list + 4
+ ,rhs1_Rspec_parm_ = 3
+ ,rhs2_Rspec_parm_ = 4
+ ,rhs3_Rspec_parm_ = 5
+ ,rhs4_Rspec_parm_ = 6
+ ,rhs5_Rspec_parm_ = 7
+ ,rhs6_Rspec_parm_ = 8
+ ,R_Rmust_lint_ = 572//start_of_rule_list + 6
+ ,rhs1_Rmust_lint_ = 9
+ ,rhs2_Rmust_lint_ = 10
+ ,rhs3_Rmust_lint_ = 11
+ };
+ //no of la sets = 3
+ //no of states = 19
+ Co2_lcl_opt();
+ ~Co2_lcl_opt();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[12];
+ };
+struct Ro2_lcl_opt;
+struct Rminus;
+struct Rspec_parm;
+struct Rmust_lint;
+struct Ro2_lcl_opt:public yacco2::CAbs_lr1_sym {
+ Ro2_lcl_opt(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rminus:public yacco2::CAbs_lr1_sym {
+ Rminus(yacco2::Parser* P);
+ public:
+};
+
+struct Rspec_parm:public yacco2::CAbs_lr1_sym {
+ Rspec_parm(yacco2::Parser* P);
+
+ public:
+ CAbs_lr1_sym* rtn_parm_;
+
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+ void sr5();
+ void sr6();
+};
+
+struct Rmust_lint:public yacco2::CAbs_lr1_sym {
+ Rmust_lint(yacco2::Parser* P);
+ public:
+ void sr3();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/o2_lcl_opt.lex b/web/yacco2/compiler/grammars/o2_lcl_opt.lex
new file mode 100644
index 0000000000..ba485e29e0
--- /dev/null
+++ b/web/yacco2/compiler/grammars/o2_lcl_opt.lex
@@ -0,0 +1,196 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: o2_lcl_opt.lex
+Dates: 7 Apr. 2003
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |o2_lcl_opt| Thread.\fbreak
+The grammar |o2_lcl_opts| calls it per option detected.
+Options can be inputted in any order and all are optional.
+Their appearance in the command line means 'y'.
+Originally options were prefixed by a slash but
+i converted to the UNIX use of a minus sign.
+Here they are:\fbreak
+\ptindent{-t --- generate Terminals definitions }
+\ptindent{-rc --- generate Raw Chars definitions: deprecated }
+\ptindent{-err --- generate Error terminals definitions }
+\ptindent{-lrk --- generate yacco2's LRK terminal constants definitions: deprecated}
+\ptindent{-p --- generate pdf + post script(ps) documents}
+Returned is the appropriate T indicating the option.
+\fbreak
+Note: \fbreak
+In the "parallel-la-boundary" construct this grammar demonstrates
+how one can fine tune
+the look-ahead boundary to cope with a false option prefix
+eg, -tt. error reported at -t and not the next option re: 2nd t.
+|eolr| is too general for this refinement.
+
+Also shown is the use of meta-terminals to
+indicate or contain the parsed results.
+This is the cleanest way to communicate between threads.
+he agreement between the calling / called
+threads is the meta-terminal. Use of Global variables
+is efficient but ugly and unco-ordinated due to
+the random write access to the Global variable.\fbreak
+\fbreak
+Modifications:\fbreak
+Date: 19 Oct. 2003\fbreak
+Reason:\fbreak
+Modify rule names to be shorter and more concise.
+Originally the encoding rule
+for the grammar rule name was R {$+$}
+``thread name prefix'' {$+$} ``name given to rule''
+where the plus sign indicates concatenation.
+This made it volumous in the traces.\fbreak
+\fbreak
+Reason:\fbreak
+Add new switches to support:\fbreak
+/dbg turn on debuging of grammar to be compiled. this is a convenience to the
+author instead of using the editor to change the grammar's source code
+of fsm-debug "true" to "true"; once finished debugging, re-use the editor to
+restore the source code back to fsm-debug "true". \fbreak
+\fbreak
+Date: 2 June 2005\fbreak
+Reason:\fbreak
+Remove /s:xxx switch. Compilers should be robust enough to deal with
+reasonably large files. Nod to Microsoft current compiler
+@/
+
+fsm
+(fsm-id "o2_lcl_opt.lex",fsm-filename o2_lcl_opt,fsm-namespace NS_o2_lcl_opt
+,fsm-class Co2_lcl_opt{
+/@
+Trap the failed option and return a bad command.
+This covers errors like the premature prefix -e where it should
+be -err. i could have been less specific to trap
+non first set options (-z) by defaulting to this
+facility but i'm teaching myself...
+As this thread is executed according to its first set ``-'',
+any failed attempt is a bad option.
+Please note the use of the |RSVP_FSM| macro.
+Its context is different than the normal Rule's
+use of |RSVP| macro.
+@/
+ failed
+ CAbs_lr1_sym* sym = new Err_bad_cmd_lne_opt;
+ sym->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ RSVP_FSM(sym);
+ return true;
+ ***
+}
+,fsm-version "1.1",fsm-date "18 Oct. 2003",fsm-debug "false"
+,fsm-comments "\\O2's individual command line option recognizer.")
+parallel-parser
+(
+ parallel-thread-function
+ TH_o2_lcl_opt
+ ***
+ parallel-la-boundary
+ eolr
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Ro2_lcl_opt (
+){
+ -> Rminus Rspec_parm Rmust_lint{
+ op
+ sf->p2__->rtn_parm_->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sf->p2__->rtn_parm_);
+ ***
+ }
+}
+
+Rminus (){
+ -> "-"
+}
+
+Rspec_parm (
+lhs {
+ user-declaration
+ public:
+ CAbs_lr1_sym* rtn_parm_;
+ ***
+ }
+){
+ ->
+ /@
+Generate Terminals vocabulary.
+ @/
+"t"
+ {
+ op
+ rtn_parm_ = new T_option_t;
+ ***
+ }
+ ->
+ /@
+Generate Terminals vocabulary.
+ @/
+"p"
+ {
+ op
+ rtn_parm_ = new T_option_p;
+ ***
+ }
+ ->
+/@
+Generate Raw characters vocabulary.
+Watch out as this is only used at bootstrap time of \O2.
+Users of \O2 should not use it unless they are experimenting.
+@/
+"r" "c"
+{
+ op
+ rtn_parm_ = new Err_bad_cmd_lne_opt;
+ rtn_parm_->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ ***
+ }
+ ->
+/@
+Generate Error vocabulary.
+@/
+"e" "r" "r"
+{
+ op
+ rtn_parm_ = new T_option_err;
+ ***
+ }
+ ->
+/@
+Generate LR K vocabulary.
+Watch out as this is only used at bootstrap time of \O2.
+Users of \O2 should not use it unless they are experimenting.
+Currently not supported.
+@/
+"l" "r" "k" {
+ op
+ rtn_parm_ = new Err_bad_cmd_lne_opt;
+ rtn_parm_->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ ***
+ }
+ -> |?| //catch bad attempts at options
+ {
+ op
+ rtn_parm_ = new Err_bad_cmd_lne_opt;
+ rtn_parm_->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ ***
+ }
+}
+Rmust_lint (){
+ -> "x09" // tab
+ -> " "
+ -> |+| //catch suffixed extras on option
+ {
+ op
+ parser()->set_abort_parse(true);
+ ***
+ }
+}
+
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/o2_lcl_opts.cpp b/web/yacco2/compiler/grammars/o2_lcl_opts.cpp
new file mode 100644
index 0000000000..4ced9c90fc
--- /dev/null
+++ b/web/yacco2/compiler/grammars/o2_lcl_opts.cpp
@@ -0,0 +1,372 @@
+/*
+ File: o2_lcl_opts.cpp
+ Date and Time: Fri Jan 30 18:55:17 2015
+*/
+#include "o2_lcl_opts.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_o2_lcl_opts;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 9;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[4] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[5] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[6] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[7] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[8] = new Per_rule_s_reuse_table();
+}
+ Co2_lcl_opts::
+ Co2_lcl_opts()
+ :yacco2::CAbs_fsm
+ ("o2_lcl_opts.lex"
+ ,"1.0"
+ ,"21 Nov. 2002"
+ ,false
+ ,"\\O2's command line options dispatcher."
+ ,"Fri Jan 30 18:55:17 2015 "
+ ,S1_Co2_lcl_opts){
+
+ err_sw_ = 'n';t_sw_ = 'n';
+ prt_sw_ = 'n';
+ parm_cnt_ = 1;
+
+ }
+
+Co2_lcl_opts::~Co2_lcl_opts(){
+
+ for(int x = 0;x < 9;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Co2_lcl_opts::failed(){
+ return false;
+ }
+ void Co2_lcl_opts::op(){
+ parser__->set_use_all_shift_on();
+
+}
+int Co2_lcl_opts::rhs_to_rules_mapping_[24] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,2 // subrule 4 for rule 3
+ ,2 // subrule 5 for rule 3
+ ,3 // subrule 6 for rule 4
+ ,3 // subrule 7 for rule 4
+ ,4 // subrule 8 for rule 5
+ ,4 // subrule 9 for rule 5
+ ,4 // subrule 10 for rule 5
+ ,4 // subrule 11 for rule 5
+ ,5 // subrule 12 for rule 6
+ ,5 // subrule 13 for rule 6
+ ,5 // subrule 14 for rule 6
+ ,5 // subrule 15 for rule 6
+ ,6 // subrule 16 for rule 7
+ ,6 // subrule 17 for rule 7
+ ,7 // subrule 18 for rule 8
+ ,7 // subrule 19 for rule 8
+ ,8 // subrule 20 for rule 9
+ ,8 // subrule 21 for rule 9
+ ,8 // subrule 22 for rule 9
+ ,8 // subrule 23 for rule 9
+};
+Ryacco2_options::Ryacco2_options(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Ryacco2_options",0,Co2_lcl_opts::R_Ryacco2_options_,P,false,false){
+}
+
+void Ryacco2_options::op(){
+ sstrace_rulesss
+
+ TOKEN_GAGGLE* err_queue = (TOKEN_GAGGLE*)rule_info__.parser__->error_queue();
+ if(err_queue ->empty()) return;
+
+}
+Reog::Reog(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Reog",0,Co2_lcl_opts::R_Reog_,P,false,false){
+}
+
+void Reog::sr2(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ rule_info__.parser__->set_use_all_shift_off();
+ CAbs_lr1_sym* sym = new Err_bad_cmd_lne_opt;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rws_k::Rws_k(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rws_k",0,Co2_lcl_opts::R_Rws_k_,P,false,false){
+}
+
+Rws_k_s::Rws_k_s(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rws_k_s",0,Co2_lcl_opts::R_Rws_k_s_,P,false,false){
+}
+
+Rws::Rws(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rws",0,Co2_lcl_opts::R_Rws_,P,false,false){
+}
+
+void Rws::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_comment* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+
+}
+
+void Rws::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_eol* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+
+}
+
+void Rws::sr4(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ rule_info__.parser__->set_use_all_shift_off();
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rfile::Rfile(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfile",0,Co2_lcl_opts::R_Rfile_,P,false,false){
+}
+
+
+ void Rfile::edit_file(CAbs_lr1_sym* Sym){
+ Co2_lcl_opts* fsm = (Co2_lcl_opts*)rule_info__.parser__->fsm_tbl__;
+ using namespace NS_yacco2_err_symbols;
+ using namespace NS_yacco2_k_symbols;
+ std::ifstream ifile;
+ ifile.open(fsm->file_to_compile_.c_str());
+ if (ifile.good()){
+ ifile.close();
+ return;
+ }
+ CAbs_lr1_sym* sym = new Err_bad_filename(fsm->file_to_compile_);
+ sym->set_rc(*Sym,__FILE__,__LINE__);
+ rule_info__.parser__->add_token_to_error_queue(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ }
+
+void Rfile::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_unquoted_string* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ T_unquoted_string* uqstr = sf->p2__;
+ Co2_lcl_opts* fsm = (Co2_lcl_opts*)rule_info__.parser__->fsm_tbl__;
+ fsm->file_to_compile_ += uqstr->unquoted_string()->c_str();
+ ++fsm->parm_cnt_;
+ edit_file(uqstr);
+ sf->p2__->set_auto_delete(true);
+
+}
+
+void Rfile::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ rule_info__.parser__->set_use_all_shift_off();
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rfile::sr3(){
+
+ rule_info__.parser__->set_use_all_shift_off();
+ CAbs_lr1_sym* sym = new Err_no_filename();
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rfile::sr4(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_xc_str* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ T_xc_str* xcstr = sf->p2__;
+ Co2_lcl_opts* fsm = (Co2_lcl_opts*)rule_info__.parser__->fsm_tbl__;
+ fsm->file_to_compile_ += xcstr->c_string()->c_str();
+ ++fsm->parm_cnt_;
+ edit_file(xcstr);
+
+}
+
+Rparms_epi::Rparms_epi(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rparms_epi",0,Co2_lcl_opts::R_Rparms_epi_,P,false,false){
+}
+
+Rparms::Rparms(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rparms",0,Co2_lcl_opts::R_Rparms_,P,false,false){
+}
+
+Rspec_parm::Rspec_parm(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rspec_parm",0,Co2_lcl_opts::R_Rspec_parm_,P,false,false){
+}
+
+void Rspec_parm::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_option_t* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Co2_lcl_opts* fsm = (Co2_lcl_opts*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->parm_cnt_;
+ fsm->t_sw_ = 'y';
+ sf->p2__->set_auto_delete(true);
+
+}
+
+void Rspec_parm::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_option_err* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Co2_lcl_opts* fsm = (Co2_lcl_opts*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->parm_cnt_;
+ fsm->err_sw_ = 'y';
+ sf->p2__->set_auto_delete(true);
+
+}
+
+void Rspec_parm::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_option_p* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Co2_lcl_opts* fsm = (Co2_lcl_opts*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->parm_cnt_;
+ fsm->prt_sw_ = 'y';
+ sf->p2__->set_auto_delete(true);
+
+}
+
+void Rspec_parm::sr4(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ rule_info__.parser__->set_use_all_shift_off();
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
diff --git a/web/yacco2/compiler/grammars/o2_lcl_opts.fsc b/web/yacco2/compiler/grammars/o2_lcl_opts.fsc
new file mode 100644
index 0000000000..3d72df184b
--- /dev/null
+++ b/web/yacco2/compiler/grammars/o2_lcl_opts.fsc
@@ -0,0 +1,32 @@
+/*
+ File: o2_lcl_opts.fsc
+ Date and Time: Fri Jan 30 18:55:17 2015
+*/
+transitive y
+grammar-name "o2_lcl_opts"
+name-space "NS_o2_lcl_opts"
+thread-name "Co2_lcl_opts"
+monolithic y
+file-name "o2_lcl_opts.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ LR1_questionable_shift_operator
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 6
+ NS_c_comments::TH_c_comments
+ NS_xc_str::TH_xc_str
+ NS_ws::TH_ws
+ NS_eol::TH_eol
+ NS_unq_str::TH_unq_str
+ NS_o2_lcl_opt::TH_o2_lcl_opt
+end-list-of-transitive-threads
+list-of-used-threads 6
+ NS_c_comments::TH_c_comments
+ NS_eol::TH_eol
+ NS_o2_lcl_opt::TH_o2_lcl_opt
+ NS_unq_str::TH_unq_str
+ NS_ws::TH_ws
+ NS_xc_str::TH_xc_str
+end-list-of-used-threads
+fsm-comments
+"\\O2's command line options dispatcher."
diff --git a/web/yacco2/compiler/grammars/o2_lcl_opts.h b/web/yacco2/compiler/grammars/o2_lcl_opts.h
new file mode 100644
index 0000000000..650c044185
--- /dev/null
+++ b/web/yacco2/compiler/grammars/o2_lcl_opts.h
@@ -0,0 +1,159 @@
+/*
+ File: o2_lcl_opts.h
+ Date and Time: Fri Jan 30 18:55:17 2015
+*/
+#ifndef __o2_lcl_opts_h__
+#define __o2_lcl_opts_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "o2_lcl_opt.h"
+#include "ws.h"
+#include "eol.h"
+#include "c_comments.h"
+#include "xc_str.h"
+#include "unq_str.h"
+
+// monolithic grammar: no thread
+extern yacco2::State S1_Co2_lcl_opts;
+namespace NS_o2_lcl_opts {
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[9];
+};
+class Co2_lcl_opts: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Ryacco2_options_ = 569//start_of_rule_list + 0
+ ,rhs1_Ryacco2_options_ = 1
+ ,R_Reog_ = 570//start_of_rule_list + 2
+ ,rhs1_Reog_ = 2
+ ,rhs2_Reog_ = 3
+ ,R_Rws_k_ = 571//start_of_rule_list + 4
+ ,rhs1_Rws_k_ = 4
+ ,rhs2_Rws_k_ = 5
+ ,R_Rws_k_s_ = 572//start_of_rule_list + 6
+ ,rhs1_Rws_k_s_ = 6
+ ,rhs2_Rws_k_s_ = 7
+ ,R_Rws_ = 573//start_of_rule_list + 8
+ ,rhs1_Rws_ = 8
+ ,rhs2_Rws_ = 9
+ ,rhs3_Rws_ = 10
+ ,rhs4_Rws_ = 11
+ ,R_Rfile_ = 574//start_of_rule_list + 10
+ ,rhs1_Rfile_ = 12
+ ,rhs2_Rfile_ = 13
+ ,rhs3_Rfile_ = 14
+ ,rhs4_Rfile_ = 15
+ ,R_Rparms_epi_ = 575//start_of_rule_list + 12
+ ,rhs1_Rparms_epi_ = 16
+ ,rhs2_Rparms_epi_ = 17
+ ,R_Rparms_ = 576//start_of_rule_list + 14
+ ,rhs1_Rparms_ = 18
+ ,rhs2_Rparms_ = 19
+ ,R_Rspec_parm_ = 577//start_of_rule_list + 16
+ ,rhs1_Rspec_parm_ = 20
+ ,rhs2_Rspec_parm_ = 21
+ ,rhs3_Rspec_parm_ = 22
+ ,rhs4_Rspec_parm_ = 23
+ };
+ //no of la sets = 4
+ //no of states = 32
+ Co2_lcl_opts();
+ ~Co2_lcl_opts();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[24];
+
+ public:
+ yacco2::CHAR err_sw_;yacco2::CHAR t_sw_;
+ yacco2::CHAR prt_sw_;
+ std::string file_to_compile_;
+ yacco2::UINT parm_cnt_;
+
+ };
+struct Ryacco2_options;
+struct Reog;
+struct Rws_k;
+struct Rws_k_s;
+struct Rws;
+struct Rfile;
+struct Rparms_epi;
+struct Rparms;
+struct Rspec_parm;
+struct Ryacco2_options:public yacco2::CAbs_lr1_sym {
+ Ryacco2_options(yacco2::Parser* P);
+ void op();
+ public:
+};
+
+struct Reog:public yacco2::CAbs_lr1_sym {
+ Reog(yacco2::Parser* P);
+ public:
+ void sr2();
+};
+
+struct Rws_k:public yacco2::CAbs_lr1_sym {
+ Rws_k(yacco2::Parser* P);
+ public:
+};
+
+struct Rws_k_s:public yacco2::CAbs_lr1_sym {
+ Rws_k_s(yacco2::Parser* P);
+ public:
+};
+
+struct Rws:public yacco2::CAbs_lr1_sym {
+ Rws(yacco2::Parser* P);
+ public:
+ void sr2();
+ void sr3();
+ void sr4();
+};
+
+struct Rfile:public yacco2::CAbs_lr1_sym {
+ Rfile(yacco2::Parser* P);
+
+ public:
+ void edit_file(CAbs_lr1_sym* Sym);
+
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+};
+
+struct Rparms_epi:public yacco2::CAbs_lr1_sym {
+ Rparms_epi(yacco2::Parser* P);
+ public:
+};
+
+struct Rparms:public yacco2::CAbs_lr1_sym {
+ Rparms(yacco2::Parser* P);
+ public:
+};
+
+struct Rspec_parm:public yacco2::CAbs_lr1_sym {
+ Rspec_parm(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/o2_lcl_opts.lex b/web/yacco2/compiler/grammars/o2_lcl_opts.lex
new file mode 100644
index 0000000000..2db8df099d
--- /dev/null
+++ b/web/yacco2/compiler/grammars/o2_lcl_opts.lex
@@ -0,0 +1,241 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: o2_lcl_opts.lex
+Dates: 7 Apr. 2003
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** \O2's frontend command line parser.
+The argv[] data passed by "int main(int argc, char* argv[])" is
+mapped into raw char tokens and placed into a container
+for lexical assessment.\fbreak
+Command Format:\fbreak
+file name followed by (options)* \fbreak
+\fbreak
+Note:\fbreak
+File name can be quoted or unquoted. Safest is quoted "...".
+Just watch out for unquoted: a space(s) must separate a filename from
+an option's phrase. Eg. ws.lex-g thinks the -g is part of the file name.
+It should be: ws.lex\]-g. Note the space between the extension ".lex"
+and the "-g" option which separates these two phrases.\fbreak
+\fbreak
+Comments can be sprinkled throughout the command line. This was
+ added to document the test driver's regressive test files. There
+ is no difference in input coming from the program's command line environment
+ or a test harnass's data file. The extensions: comments, and separate
+ lines of command data would normally be absent when
+ coming from the program's command
+ line environment.\fbreak
+\INDENT{.25in}{Command Line Paramenters:}
+\INDENT{.5in}{-p --- generate pdf / ps documents}
+\INDENT{.5in}{-err --- generate error symbols}
+\INDENT{.5in}{-t --- generate terminal symbols}
+\INDENT{.5in}{all others are relics of the past --- so out damn spot}
+\fbreak
+Errors:\break
+``comment-overrun'', ``bad-eos'', ``bad-esc'', ``bad-cmd-opt''
+@/
+fsm
+(fsm-id "o2_lcl_opts.lex",fsm-filename o2_lcl_opts,fsm-namespace NS_o2_lcl_opts
+,fsm-class Co2_lcl_opts {
+ user-declaration
+ public:
+ yacco2::CHAR err_sw_;yacco2::CHAR t_sw_;
+ yacco2::CHAR prt_sw_;
+ std::string file_to_compile_;
+ yacco2::UINT parm_cnt_;
+ ***
+ constructor
+ err_sw_ = 'n';t_sw_ = 'n';
+ prt_sw_ = 'n';
+ parm_cnt_ = 1;
+***
+ user-prefix-declaration
+#include "o2_lcl_opt.h"
+#include "ws.h"
+#include "eol.h"
+#include "c_comments.h"
+#include "xc_str.h"
+#include "unq_str.h"
+ ***
+ op
+ parser__->set_use_all_shift_on();
+ ***
+}
+,fsm-version "1.0",fsm-date "21 Nov. 2002",fsm-debug "false"
+,fsm-comments "\\O2's command line options dispatcher.")
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Ryacco2_options (
+lhs{
+ op
+ TOKEN_GAGGLE* err_queue = (TOKEN_GAGGLE*)rule_info__.parser__->error_queue();
+ if(err_queue ->empty()) return;
+ ***
+}
+){
+ -> Rws_k Rparms_epi Rws_k Rfile Rws_k Reog
+}
+
+Reog (){
+ -> eog
+ ->
+ /@
+Bad data or missing option indicator: ``-'' so report it.
+ @/
+|?|
+ {
+ op
+ rule_info__.parser__->set_use_all_shift_off();
+ CAbs_lr1_sym* sym = new Err_bad_cmd_lne_opt;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rws_k (){
+ ->
+ -> Rws_k_s
+}
+
+Rws_k_s (){
+ -> Rws
+ -> Rws_k_s Rws
+}
+
+Rws (){
+ -> ||| "ws" NS_ws::TH_ws
+ -> ||| "comment" NS_c_comments::TH_c_comments {
+ op
+ sf->p2__->set_auto_delete(true);
+ ***
+ }
+ -> ||| "eol" NS_eol::TH_eol {
+ op
+ sf->p2__->set_auto_delete(true);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ rule_info__.parser__->set_use_all_shift_off();
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rfile (
+lhs{
+ user-declaration
+ public:
+ void edit_file(CAbs_lr1_sym* Sym);
+ ***
+ user-implementation
+ void Rfile::edit_file(CAbs_lr1_sym* Sym){
+ Co2_lcl_opts* fsm = (Co2_lcl_opts*)rule_info__.parser__->fsm_tbl__;
+ using namespace NS_yacco2_err_symbols;
+ using namespace NS_yacco2_k_symbols;
+ std::ifstream ifile;
+ ifile.open(fsm->file_to_compile_.c_str());
+ if (ifile.good()){
+ ifile.close();
+ return;
+ }
+ CAbs_lr1_sym* sym = new Err_bad_filename(fsm->file_to_compile_);
+ sym->set_rc(*Sym,__FILE__,__LINE__);
+ rule_info__.parser__->add_token_to_error_queue(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ }
+ ***
+}
+){
+ -> ||| "unquoted-string" NS_unq_str::TH_unq_str {
+ op
+ T_unquoted_string* uqstr = sf->p2__;
+ Co2_lcl_opts* fsm = (Co2_lcl_opts*)rule_info__.parser__->fsm_tbl__;
+ fsm->file_to_compile_ += uqstr->unquoted_string()->c_str();
+ ++fsm->parm_cnt_;
+ edit_file(uqstr);
+ sf->p2__->set_auto_delete(true);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ rule_info__.parser__->set_use_all_shift_off();
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| { // no file given
+ op
+ rule_info__.parser__->set_use_all_shift_off();
+ CAbs_lr1_sym* sym = new Err_no_filename();
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| "xc-str" NS_xc_str::TH_xc_str {
+ op
+ T_xc_str* xcstr = sf->p2__;
+ Co2_lcl_opts* fsm = (Co2_lcl_opts*)rule_info__.parser__->fsm_tbl__;
+ fsm->file_to_compile_ += xcstr->c_string()->c_str();
+ ++fsm->parm_cnt_;
+ edit_file(xcstr);
+ ***
+ }
+}
+
+Rparms_epi (){
+ ->
+ -> Rparms
+}
+
+Rparms (){
+ -> Rspec_parm Rws_k
+ -> Rparms Rspec_parm Rws_k
+}
+
+Rspec_parm (){
+ -> ||| "option-t" NS_o2_lcl_opt::TH_o2_lcl_opt {
+ op
+ Co2_lcl_opts* fsm = (Co2_lcl_opts*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->parm_cnt_;
+ fsm->t_sw_ = 'y';
+ sf->p2__->set_auto_delete(true);
+ ***
+ }
+ -> ||| "option-err" NULL {
+ op
+ Co2_lcl_opts* fsm = (Co2_lcl_opts*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->parm_cnt_;
+ fsm->err_sw_ = 'y';
+ sf->p2__->set_auto_delete(true);
+ ***
+ }
+ -> ||| "option-p" NULL {
+ op
+ Co2_lcl_opts* fsm = (Co2_lcl_opts*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->parm_cnt_;
+ fsm->prt_sw_ = 'y';
+ sf->p2__->set_auto_delete(true);
+ ***
+ }
+ -> ||| |?| NULL {
+ /@
+A false option so report it.
+ @/
+ op
+ rule_info__.parser__->set_use_all_shift_off();
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/o2_lcl_optssym.cpp b/web/yacco2/compiler/grammars/o2_lcl_optssym.cpp
new file mode 100644
index 0000000000..97e2a5b9e5
--- /dev/null
+++ b/web/yacco2/compiler/grammars/o2_lcl_optssym.cpp
@@ -0,0 +1,362 @@
+/*
+ File: o2_lcl_optssym.cpp
+ Date and Time: Fri Jan 30 18:55:17 2015
+*/
+#include "o2_lcl_opts.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_o2_lcl_opts;// grammar's ns
+// first set terminals
+// monolithic grammar --- no thread
+void
+Co2_lcl_opts::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Ryacco2_options_:{
+ Ryacco2_options* sym;
+ if(re->rule_ == 0){
+ sym = new Ryacco2_options(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ryacco2_options*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 6;
+
+
+ sym->op();
+ return;}
+ case rhs1_Reog_:{
+ Reog* sym;
+ if(re->rule_ == 0){
+ sym = new Reog(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Reog*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Reog_:{
+ Reog* sym;
+ if(re->rule_ == 0){
+ sym = new Reog(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Reog*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rws_k_:{
+ Rws_k* sym;
+ if(re->rule_ == 0){
+ sym = new Rws_k(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rws_k*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs2_Rws_k_:{
+ Rws_k* sym;
+ if(re->rule_ == 0){
+ sym = new Rws_k(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rws_k*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rws_k_s_:{
+ Rws_k_s* sym;
+ if(re->rule_ == 0){
+ sym = new Rws_k_s(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rws_k_s*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rws_k_s_:{
+ Rws_k_s* sym;
+ if(re->rule_ == 0){
+ sym = new Rws_k_s(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rws_k_s*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rws_:{
+ Rws* sym;
+ if(re->rule_ == 0){
+ sym = new Rws(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rws*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rws_:{
+ Rws* sym;
+ if(re->rule_ == 0){
+ sym = new Rws(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rws*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rws_:{
+ Rws* sym;
+ if(re->rule_ == 0){
+ sym = new Rws(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rws*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rws_:{
+ Rws* sym;
+ if(re->rule_ == 0){
+ sym = new Rws(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rws*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr4();
+ return;}
+ case rhs1_Rfile_:{
+ Rfile* sym;
+ if(re->rule_ == 0){
+ sym = new Rfile(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfile*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rfile_:{
+ Rfile* sym;
+ if(re->rule_ == 0){
+ sym = new Rfile(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfile*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rfile_:{
+ Rfile* sym;
+ if(re->rule_ == 0){
+ sym = new Rfile(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfile*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rfile_:{
+ Rfile* sym;
+ if(re->rule_ == 0){
+ sym = new Rfile(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfile*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr4();
+ return;}
+ case rhs1_Rparms_epi_:{
+ Rparms_epi* sym;
+ if(re->rule_ == 0){
+ sym = new Rparms_epi(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rparms_epi*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs2_Rparms_epi_:{
+ Rparms_epi* sym;
+ if(re->rule_ == 0){
+ sym = new Rparms_epi(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rparms_epi*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rparms_:{
+ Rparms* sym;
+ if(re->rule_ == 0){
+ sym = new Rparms(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rparms*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rparms_:{
+ Rparms* sym;
+ if(re->rule_ == 0){
+ sym = new Rparms(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rparms*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ return;}
+ case rhs1_Rspec_parm_:{
+ Rspec_parm* sym;
+ if(re->rule_ == 0){
+ sym = new Rspec_parm(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rspec_parm*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rspec_parm_:{
+ Rspec_parm* sym;
+ if(re->rule_ == 0){
+ sym = new Rspec_parm(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rspec_parm*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rspec_parm_:{
+ Rspec_parm* sym;
+ if(re->rule_ == 0){
+ sym = new Rspec_parm(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rspec_parm*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rspec_parm_:{
+ Rspec_parm* sym;
+ if(re->rule_ == 0){
+ sym = new Rspec_parm(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rspec_parm*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr4();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/o2_lcl_optstbl.cpp b/web/yacco2/compiler/grammars/o2_lcl_optstbl.cpp
new file mode 100644
index 0000000000..314981c4cf
--- /dev/null
+++ b/web/yacco2/compiler/grammars/o2_lcl_optstbl.cpp
@@ -0,0 +1,696 @@
+/*
+ File: o2_lcl_optstbl.cpp
+ Date and Time: Fri Jan 30 18:55:17 2015
+*/
+#include "o2_lcl_opts.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_o2_lcl_opts;// grammar's ns
+// first set terminals
+// LR1_questionable_shift_operator
+// LR1_eog
+// LR1_reduce_operator
+yacco2::UCHAR LA1_Co2_lcl_opts[] ={
+1
+,0,19
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+yacco2::UCHAR LA2_Co2_lcl_opts[] ={
+1
+,0,17
+};
+// LR1_questionable_shift_operator
+// LR1_eog
+yacco2::UCHAR LA3_Co2_lcl_opts[] ={
+1
+,0,3
+};
+// LR1_eolr
+yacco2::UCHAR LA4_Co2_lcl_opts[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Co2_lcl_opts;
+extern yacco2::State S2_Co2_lcl_opts;
+struct S2ttd_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[3];
+};
+S2ttd_Co2_lcl_opts S2tt_Co2_lcl_opts = {
+ 3 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_eol
+ ,(yacco2::Thread_entry*)&ITH_c_comments
+ ,(yacco2::Thread_entry*)&ITH_ws
+};
+extern yacco2::State S3_Co2_lcl_opts;
+extern yacco2::State S4_Co2_lcl_opts;
+extern yacco2::State S5_Co2_lcl_opts;
+extern yacco2::State S6_Co2_lcl_opts;
+extern yacco2::State S7_Co2_lcl_opts;
+extern yacco2::State S8_Co2_lcl_opts;
+extern yacco2::State S9_Co2_lcl_opts;
+extern yacco2::State S10_Co2_lcl_opts;
+extern yacco2::State S11_Co2_lcl_opts;
+extern yacco2::State S12_Co2_lcl_opts;
+extern yacco2::State S13_Co2_lcl_opts;
+extern yacco2::State S14_Co2_lcl_opts;
+extern yacco2::State S15_Co2_lcl_opts;
+extern yacco2::State S16_Co2_lcl_opts;
+extern yacco2::State S17_Co2_lcl_opts;
+extern yacco2::State S18_Co2_lcl_opts;
+struct S18ttd_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S18ttd_Co2_lcl_opts S18tt_Co2_lcl_opts = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_o2_lcl_opt
+};
+extern yacco2::State S19_Co2_lcl_opts;
+extern yacco2::State S20_Co2_lcl_opts;
+extern yacco2::State S21_Co2_lcl_opts;
+extern yacco2::State S22_Co2_lcl_opts;
+extern yacco2::State S23_Co2_lcl_opts;
+extern yacco2::State S24_Co2_lcl_opts;
+extern yacco2::State S25_Co2_lcl_opts;
+extern yacco2::State S26_Co2_lcl_opts;
+extern yacco2::State S27_Co2_lcl_opts;
+extern yacco2::State S28_Co2_lcl_opts;
+extern yacco2::State S29_Co2_lcl_opts;
+struct S29ttd_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[2];
+};
+S29ttd_Co2_lcl_opts S29tt_Co2_lcl_opts = {
+ 2 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_xc_str
+ ,(yacco2::Thread_entry*)&ITH_unq_str
+};
+extern yacco2::State S30_Co2_lcl_opts;
+extern yacco2::State S31_Co2_lcl_opts;
+extern yacco2::State S32_Co2_lcl_opts;
+struct S1std_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S1std_Co2_lcl_opts S1st_Co2_lcl_opts = {
+ 5
+ ,
+ {// start of table
+ {3,(State*)&S2_Co2_lcl_opts} // shift sym: LR1_parallel_operator
+ ,{569,(State*)&S1_Co2_lcl_opts} // accept sym: Ryacco2_options
+ ,{571,(State*)&S7_Co2_lcl_opts} // shift sym: Rws_k
+ ,{572,(State*)&S15_Co2_lcl_opts} // shift sym: Rws_k_s
+ ,{573,(State*)&S17_Co2_lcl_opts} // shift sym: Rws
+ }// end of shift table
+};
+yacco2::Shift_entry S1pse_Co2_lcl_opts = {3,(State*)&S2_Co2_lcl_opts};
+struct S1rtd_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S1rtd_Co2_lcl_opts S1rt_Co2_lcl_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Co2_lcl_opts,Co2_lcl_opts::rhs1_Rws_k_}
+ }// end of reduce table
+};
+yacco2::State S1_Co2_lcl_opts = //State's vectored into symbol: " No symbol"
+{1
+,(Shift_entry*)&S1pse_Co2_lcl_opts,0,0,0,(Shift_tbl*)&S1st_Co2_lcl_opts,(Reduce_tbl*)&S1rt_Co2_lcl_opts,(State_s_thread_tbl*)&S2tt_Co2_lcl_opts,0,0};
+struct S2std_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S2std_Co2_lcl_opts S2st_Co2_lcl_opts = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S3_Co2_lcl_opts} // shift sym: LR1_questionable_shift_operator
+ ,{268,(State*)&S4_Co2_lcl_opts} // shift sym: T_eol
+ ,{271,(State*)&S5_Co2_lcl_opts} // shift sym: T_comment
+ ,{272,(State*)&S6_Co2_lcl_opts} // shift sym: T_ws
+ }// end of shift table
+};
+yacco2::Shift_entry S2qse_Co2_lcl_opts = {0,(State*)&S3_Co2_lcl_opts};
+yacco2::State S2_Co2_lcl_opts = //State's vectored into symbol: "|||"
+{2
+,0,0,0,0,(Shift_tbl*)&S2st_Co2_lcl_opts,0,0,0,(Shift_entry*)&S2qse_Co2_lcl_opts
+};
+struct S3rtd_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Co2_lcl_opts S3rt_Co2_lcl_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Co2_lcl_opts,Co2_lcl_opts::rhs4_Rws_}
+ }// end of reduce table
+};
+yacco2::State S3_Co2_lcl_opts = //State's vectored into symbol: "|?|"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_Co2_lcl_opts,0,0,0};
+struct S4rtd_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Co2_lcl_opts S4rt_Co2_lcl_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Co2_lcl_opts,Co2_lcl_opts::rhs3_Rws_}
+ }// end of reduce table
+};
+yacco2::State S4_Co2_lcl_opts = //State's vectored into symbol: "eol"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Co2_lcl_opts,0,0,0};
+struct S5rtd_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Co2_lcl_opts S5rt_Co2_lcl_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Co2_lcl_opts,Co2_lcl_opts::rhs2_Rws_}
+ }// end of reduce table
+};
+yacco2::State S5_Co2_lcl_opts = //State's vectored into symbol: "comment"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Co2_lcl_opts,0,0,0};
+struct S6rtd_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Co2_lcl_opts S6rt_Co2_lcl_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Co2_lcl_opts,Co2_lcl_opts::rhs1_Rws_}
+ }// end of reduce table
+};
+yacco2::State S6_Co2_lcl_opts = //State's vectored into symbol: "ws"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Co2_lcl_opts,0,0,0};
+struct S7std_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S7std_Co2_lcl_opts S7st_Co2_lcl_opts = {
+ 4
+ ,
+ {// start of table
+ {3,(State*)&S18_Co2_lcl_opts} // shift sym: LR1_parallel_operator
+ ,{575,(State*)&S8_Co2_lcl_opts} // shift sym: Rparms_epi
+ ,{576,(State*)&S23_Co2_lcl_opts} // shift sym: Rparms
+ ,{577,(State*)&S26_Co2_lcl_opts} // shift sym: Rspec_parm
+ }// end of shift table
+};
+yacco2::Shift_entry S7pse_Co2_lcl_opts = {3,(State*)&S18_Co2_lcl_opts};
+struct S7rtd_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Co2_lcl_opts S7rt_Co2_lcl_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Co2_lcl_opts,Co2_lcl_opts::rhs1_Rparms_epi_}
+ }// end of reduce table
+};
+yacco2::State S7_Co2_lcl_opts = //State's vectored into symbol: "Rws_k"
+{7
+,(Shift_entry*)&S7pse_Co2_lcl_opts,0,0,0,(Shift_tbl*)&S7st_Co2_lcl_opts,(Reduce_tbl*)&S7rt_Co2_lcl_opts,(State_s_thread_tbl*)&S18tt_Co2_lcl_opts,0,0};
+struct S8std_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S8std_Co2_lcl_opts S8st_Co2_lcl_opts = {
+ 4
+ ,
+ {// start of table
+ {3,(State*)&S2_Co2_lcl_opts} // shift sym: LR1_parallel_operator
+ ,{571,(State*)&S9_Co2_lcl_opts} // shift sym: Rws_k
+ ,{572,(State*)&S15_Co2_lcl_opts} // shift sym: Rws_k_s
+ ,{573,(State*)&S17_Co2_lcl_opts} // shift sym: Rws
+ }// end of shift table
+};
+yacco2::Shift_entry S8pse_Co2_lcl_opts = {3,(State*)&S2_Co2_lcl_opts};
+struct S8rtd_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S8rtd_Co2_lcl_opts S8rt_Co2_lcl_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Co2_lcl_opts,Co2_lcl_opts::rhs1_Rws_k_}
+ }// end of reduce table
+};
+yacco2::State S8_Co2_lcl_opts = //State's vectored into symbol: "Rparms_epi"
+{8
+,(Shift_entry*)&S8pse_Co2_lcl_opts,0,0,0,(Shift_tbl*)&S8st_Co2_lcl_opts,(Reduce_tbl*)&S8rt_Co2_lcl_opts,(State_s_thread_tbl*)&S2tt_Co2_lcl_opts,0,0};
+struct S9std_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S9std_Co2_lcl_opts S9st_Co2_lcl_opts = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S28_Co2_lcl_opts} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S29_Co2_lcl_opts} // shift sym: LR1_parallel_operator
+ ,{574,(State*)&S10_Co2_lcl_opts} // shift sym: Rfile
+ }// end of shift table
+};
+yacco2::Shift_entry S9pse_Co2_lcl_opts = {3,(State*)&S29_Co2_lcl_opts};
+yacco2::Shift_entry S9qse_Co2_lcl_opts = {0,(State*)&S28_Co2_lcl_opts};
+yacco2::State S9_Co2_lcl_opts = //State's vectored into symbol: "Rws_k"
+{9
+,(Shift_entry*)&S9pse_Co2_lcl_opts,0,0,0,(Shift_tbl*)&S9st_Co2_lcl_opts,0,(State_s_thread_tbl*)&S29tt_Co2_lcl_opts,0,(Shift_entry*)&S9qse_Co2_lcl_opts
+};
+struct S10std_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S10std_Co2_lcl_opts S10st_Co2_lcl_opts = {
+ 4
+ ,
+ {// start of table
+ {3,(State*)&S2_Co2_lcl_opts} // shift sym: LR1_parallel_operator
+ ,{571,(State*)&S11_Co2_lcl_opts} // shift sym: Rws_k
+ ,{572,(State*)&S15_Co2_lcl_opts} // shift sym: Rws_k_s
+ ,{573,(State*)&S17_Co2_lcl_opts} // shift sym: Rws
+ }// end of shift table
+};
+yacco2::Shift_entry S10pse_Co2_lcl_opts = {3,(State*)&S2_Co2_lcl_opts};
+struct S10rtd_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S10rtd_Co2_lcl_opts S10rt_Co2_lcl_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Co2_lcl_opts,Co2_lcl_opts::rhs1_Rws_k_}
+ }// end of reduce table
+};
+yacco2::State S10_Co2_lcl_opts = //State's vectored into symbol: "Rfile"
+{10
+,(Shift_entry*)&S10pse_Co2_lcl_opts,0,0,0,(Shift_tbl*)&S10st_Co2_lcl_opts,(Reduce_tbl*)&S10rt_Co2_lcl_opts,(State_s_thread_tbl*)&S2tt_Co2_lcl_opts,0,0};
+struct S11std_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S11std_Co2_lcl_opts S11st_Co2_lcl_opts = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S12_Co2_lcl_opts} // shift sym: LR1_questionable_shift_operator
+ ,{1,(State*)&S13_Co2_lcl_opts} // shift sym: LR1_eog
+ ,{570,(State*)&S14_Co2_lcl_opts} // shift sym: Reog
+ }// end of shift table
+};
+yacco2::Shift_entry S11qse_Co2_lcl_opts = {0,(State*)&S12_Co2_lcl_opts};
+yacco2::State S11_Co2_lcl_opts = //State's vectored into symbol: "Rws_k"
+{11
+,0,0,0,0,(Shift_tbl*)&S11st_Co2_lcl_opts,0,0,0,(Shift_entry*)&S11qse_Co2_lcl_opts
+};
+struct S12rtd_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S12rtd_Co2_lcl_opts S12rt_Co2_lcl_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Co2_lcl_opts,Co2_lcl_opts::rhs2_Reog_}
+ }// end of reduce table
+};
+yacco2::State S12_Co2_lcl_opts = //State's vectored into symbol: "|?|"
+{12
+,0,0,0,0,0,(Reduce_tbl*)&S12rt_Co2_lcl_opts,0,0,0};
+struct S13rtd_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S13rtd_Co2_lcl_opts S13rt_Co2_lcl_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Co2_lcl_opts,Co2_lcl_opts::rhs1_Reog_}
+ }// end of reduce table
+};
+yacco2::State S13_Co2_lcl_opts = //State's vectored into symbol: "eog"
+{13
+,0,0,0,0,0,(Reduce_tbl*)&S13rt_Co2_lcl_opts,0,0,0};
+struct S14rtd_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S14rtd_Co2_lcl_opts S14rt_Co2_lcl_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Co2_lcl_opts,Co2_lcl_opts::rhs1_Ryacco2_options_}
+ }// end of reduce table
+};
+yacco2::State S14_Co2_lcl_opts = //State's vectored into symbol: "Reog"
+{14
+,0,0,0,0,0,(Reduce_tbl*)&S14rt_Co2_lcl_opts,0,0,0};
+struct S15std_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S15std_Co2_lcl_opts S15st_Co2_lcl_opts = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Co2_lcl_opts} // shift sym: LR1_parallel_operator
+ ,{573,(State*)&S16_Co2_lcl_opts} // shift sym: Rws
+ }// end of shift table
+};
+yacco2::Shift_entry S15pse_Co2_lcl_opts = {3,(State*)&S2_Co2_lcl_opts};
+struct S15rtd_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S15rtd_Co2_lcl_opts S15rt_Co2_lcl_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Co2_lcl_opts,Co2_lcl_opts::rhs2_Rws_k_}
+ }// end of reduce table
+};
+yacco2::State S15_Co2_lcl_opts = //State's vectored into symbol: "Rws_k_s"
+{15
+,(Shift_entry*)&S15pse_Co2_lcl_opts,0,0,0,(Shift_tbl*)&S15st_Co2_lcl_opts,(Reduce_tbl*)&S15rt_Co2_lcl_opts,(State_s_thread_tbl*)&S2tt_Co2_lcl_opts,0,0};
+struct S16rtd_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S16rtd_Co2_lcl_opts S16rt_Co2_lcl_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Co2_lcl_opts,Co2_lcl_opts::rhs2_Rws_k_s_}
+ }// end of reduce table
+};
+yacco2::State S16_Co2_lcl_opts = //State's vectored into symbol: "Rws"
+{16
+,0,0,0,0,0,(Reduce_tbl*)&S16rt_Co2_lcl_opts,0,0,0};
+struct S17rtd_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S17rtd_Co2_lcl_opts S17rt_Co2_lcl_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Co2_lcl_opts,Co2_lcl_opts::rhs1_Rws_k_s_}
+ }// end of reduce table
+};
+yacco2::State S17_Co2_lcl_opts = //State's vectored into symbol: "Rws"
+{17
+,0,0,0,0,0,(Reduce_tbl*)&S17rt_Co2_lcl_opts,0,0,0};
+struct S18std_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S18std_Co2_lcl_opts S18st_Co2_lcl_opts = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S19_Co2_lcl_opts} // shift sym: LR1_questionable_shift_operator
+ ,{264,(State*)&S20_Co2_lcl_opts} // shift sym: T_option_t
+ ,{265,(State*)&S21_Co2_lcl_opts} // shift sym: T_option_p
+ ,{266,(State*)&S22_Co2_lcl_opts} // shift sym: T_option_err
+ }// end of shift table
+};
+yacco2::Shift_entry S18qse_Co2_lcl_opts = {0,(State*)&S19_Co2_lcl_opts};
+yacco2::State S18_Co2_lcl_opts = //State's vectored into symbol: "|||"
+{18
+,0,0,0,0,(Shift_tbl*)&S18st_Co2_lcl_opts,0,0,0,(Shift_entry*)&S18qse_Co2_lcl_opts
+};
+struct S19rtd_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S19rtd_Co2_lcl_opts S19rt_Co2_lcl_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Co2_lcl_opts,Co2_lcl_opts::rhs4_Rspec_parm_}
+ }// end of reduce table
+};
+yacco2::State S19_Co2_lcl_opts = //State's vectored into symbol: "|?|"
+{19
+,0,0,0,0,0,(Reduce_tbl*)&S19rt_Co2_lcl_opts,0,0,0};
+struct S20rtd_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S20rtd_Co2_lcl_opts S20rt_Co2_lcl_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Co2_lcl_opts,Co2_lcl_opts::rhs1_Rspec_parm_}
+ }// end of reduce table
+};
+yacco2::State S20_Co2_lcl_opts = //State's vectored into symbol: "option-t"
+{20
+,0,0,0,0,0,(Reduce_tbl*)&S20rt_Co2_lcl_opts,0,0,0};
+struct S21rtd_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S21rtd_Co2_lcl_opts S21rt_Co2_lcl_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Co2_lcl_opts,Co2_lcl_opts::rhs3_Rspec_parm_}
+ }// end of reduce table
+};
+yacco2::State S21_Co2_lcl_opts = //State's vectored into symbol: "option-p"
+{21
+,0,0,0,0,0,(Reduce_tbl*)&S21rt_Co2_lcl_opts,0,0,0};
+struct S22rtd_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S22rtd_Co2_lcl_opts S22rt_Co2_lcl_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Co2_lcl_opts,Co2_lcl_opts::rhs2_Rspec_parm_}
+ }// end of reduce table
+};
+yacco2::State S22_Co2_lcl_opts = //State's vectored into symbol: "option-err"
+{22
+,0,0,0,0,0,(Reduce_tbl*)&S22rt_Co2_lcl_opts,0,0,0};
+struct S23std_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S23std_Co2_lcl_opts S23st_Co2_lcl_opts = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S18_Co2_lcl_opts} // shift sym: LR1_parallel_operator
+ ,{577,(State*)&S24_Co2_lcl_opts} // shift sym: Rspec_parm
+ }// end of shift table
+};
+yacco2::Shift_entry S23pse_Co2_lcl_opts = {3,(State*)&S18_Co2_lcl_opts};
+struct S23rtd_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S23rtd_Co2_lcl_opts S23rt_Co2_lcl_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Co2_lcl_opts,Co2_lcl_opts::rhs2_Rparms_epi_}
+ }// end of reduce table
+};
+yacco2::State S23_Co2_lcl_opts = //State's vectored into symbol: "Rparms"
+{23
+,(Shift_entry*)&S23pse_Co2_lcl_opts,0,0,0,(Shift_tbl*)&S23st_Co2_lcl_opts,(Reduce_tbl*)&S23rt_Co2_lcl_opts,(State_s_thread_tbl*)&S18tt_Co2_lcl_opts,0,0};
+struct S24std_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S24std_Co2_lcl_opts S24st_Co2_lcl_opts = {
+ 4
+ ,
+ {// start of table
+ {3,(State*)&S2_Co2_lcl_opts} // shift sym: LR1_parallel_operator
+ ,{571,(State*)&S25_Co2_lcl_opts} // shift sym: Rws_k
+ ,{572,(State*)&S15_Co2_lcl_opts} // shift sym: Rws_k_s
+ ,{573,(State*)&S17_Co2_lcl_opts} // shift sym: Rws
+ }// end of shift table
+};
+yacco2::Shift_entry S24pse_Co2_lcl_opts = {3,(State*)&S2_Co2_lcl_opts};
+struct S24rtd_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S24rtd_Co2_lcl_opts S24rt_Co2_lcl_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Co2_lcl_opts,Co2_lcl_opts::rhs1_Rws_k_}
+ }// end of reduce table
+};
+yacco2::State S24_Co2_lcl_opts = //State's vectored into symbol: "Rspec_parm"
+{24
+,(Shift_entry*)&S24pse_Co2_lcl_opts,0,0,0,(Shift_tbl*)&S24st_Co2_lcl_opts,(Reduce_tbl*)&S24rt_Co2_lcl_opts,(State_s_thread_tbl*)&S2tt_Co2_lcl_opts,0,0};
+struct S25rtd_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S25rtd_Co2_lcl_opts S25rt_Co2_lcl_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Co2_lcl_opts,Co2_lcl_opts::rhs2_Rparms_}
+ }// end of reduce table
+};
+yacco2::State S25_Co2_lcl_opts = //State's vectored into symbol: "Rws_k"
+{25
+,0,0,0,0,0,(Reduce_tbl*)&S25rt_Co2_lcl_opts,0,0,0};
+struct S26std_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S26std_Co2_lcl_opts S26st_Co2_lcl_opts = {
+ 4
+ ,
+ {// start of table
+ {3,(State*)&S2_Co2_lcl_opts} // shift sym: LR1_parallel_operator
+ ,{571,(State*)&S27_Co2_lcl_opts} // shift sym: Rws_k
+ ,{572,(State*)&S15_Co2_lcl_opts} // shift sym: Rws_k_s
+ ,{573,(State*)&S17_Co2_lcl_opts} // shift sym: Rws
+ }// end of shift table
+};
+yacco2::Shift_entry S26pse_Co2_lcl_opts = {3,(State*)&S2_Co2_lcl_opts};
+struct S26rtd_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S26rtd_Co2_lcl_opts S26rt_Co2_lcl_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Co2_lcl_opts,Co2_lcl_opts::rhs1_Rws_k_}
+ }// end of reduce table
+};
+yacco2::State S26_Co2_lcl_opts = //State's vectored into symbol: "Rspec_parm"
+{26
+,(Shift_entry*)&S26pse_Co2_lcl_opts,0,0,0,(Shift_tbl*)&S26st_Co2_lcl_opts,(Reduce_tbl*)&S26rt_Co2_lcl_opts,(State_s_thread_tbl*)&S2tt_Co2_lcl_opts,0,0};
+struct S27rtd_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S27rtd_Co2_lcl_opts S27rt_Co2_lcl_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Co2_lcl_opts,Co2_lcl_opts::rhs1_Rparms_}
+ }// end of reduce table
+};
+yacco2::State S27_Co2_lcl_opts = //State's vectored into symbol: "Rws_k"
+{27
+,0,0,0,0,0,(Reduce_tbl*)&S27rt_Co2_lcl_opts,0,0,0};
+struct S28rtd_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S28rtd_Co2_lcl_opts S28rt_Co2_lcl_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Co2_lcl_opts,Co2_lcl_opts::rhs3_Rfile_}
+ }// end of reduce table
+};
+yacco2::State S28_Co2_lcl_opts = //State's vectored into symbol: "|?|"
+{28
+,0,0,0,0,0,(Reduce_tbl*)&S28rt_Co2_lcl_opts,0,0,0};
+struct S29std_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S29std_Co2_lcl_opts S29st_Co2_lcl_opts = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S30_Co2_lcl_opts} // shift sym: LR1_questionable_shift_operator
+ ,{276,(State*)&S31_Co2_lcl_opts} // shift sym: T_xc_str
+ ,{277,(State*)&S32_Co2_lcl_opts} // shift sym: T_unquoted_string
+ }// end of shift table
+};
+yacco2::Shift_entry S29qse_Co2_lcl_opts = {0,(State*)&S30_Co2_lcl_opts};
+yacco2::State S29_Co2_lcl_opts = //State's vectored into symbol: "|||"
+{29
+,0,0,0,0,(Shift_tbl*)&S29st_Co2_lcl_opts,0,0,0,(Shift_entry*)&S29qse_Co2_lcl_opts
+};
+struct S30rtd_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S30rtd_Co2_lcl_opts S30rt_Co2_lcl_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Co2_lcl_opts,Co2_lcl_opts::rhs2_Rfile_}
+ }// end of reduce table
+};
+yacco2::State S30_Co2_lcl_opts = //State's vectored into symbol: "|?|"
+{30
+,0,0,0,0,0,(Reduce_tbl*)&S30rt_Co2_lcl_opts,0,0,0};
+struct S31rtd_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S31rtd_Co2_lcl_opts S31rt_Co2_lcl_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Co2_lcl_opts,Co2_lcl_opts::rhs4_Rfile_}
+ }// end of reduce table
+};
+yacco2::State S31_Co2_lcl_opts = //State's vectored into symbol: "xc-str"
+{31
+,0,0,0,0,0,(Reduce_tbl*)&S31rt_Co2_lcl_opts,0,0,0};
+struct S32rtd_Co2_lcl_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S32rtd_Co2_lcl_opts S32rt_Co2_lcl_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Co2_lcl_opts,Co2_lcl_opts::rhs1_Rfile_}
+ }// end of reduce table
+};
+yacco2::State S32_Co2_lcl_opts = //State's vectored into symbol: "unquoted-string"
+{32
+,0,0,0,0,0,(Reduce_tbl*)&S32rt_Co2_lcl_opts,0,0,0};
diff --git a/web/yacco2/compiler/grammars/o2_lcl_optsym.cpp b/web/yacco2/compiler/grammars/o2_lcl_optsym.cpp
new file mode 100644
index 0000000000..b2d36f2041
--- /dev/null
+++ b/web/yacco2/compiler/grammars/o2_lcl_optsym.cpp
@@ -0,0 +1,210 @@
+/*
+ File: o2_lcl_optsym.cpp
+ Date and Time: Fri Jan 30 18:55:16 2015
+*/
+#include "o2_lcl_opt.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_o2_lcl_opt;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_o2_lcl_opt::TH_o2_lcl_opt(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_o2_lcl_opt;
+ NS_o2_lcl_opt::Co2_lcl_opt Co2_lcl_opt_;// parallel-parser's parse table
+#define ssPARSE_TABLE Co2_lcl_opt_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_o2_lcl_opt::PROC_TH_o2_lcl_opt(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_o2_lcl_opt";
+ static bool one_time(false);
+ static NS_o2_lcl_opt::Co2_lcl_opt* NS_o2_lcl_opt_Co2_lcl_opt_(0);// parallel-parser's fsm table
+ static Parser* NS_o2_lcl_opt_Co2_lcl_opt_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_o2_lcl_opt_Co2_lcl_opt_ = new NS_o2_lcl_opt::Co2_lcl_opt();// parallel-parser's fsm table
+ NS_o2_lcl_opt_Co2_lcl_opt_parser = new Parser(*NS_o2_lcl_opt_Co2_lcl_opt_,Caller_pp);
+ }
+ proc_parser = NS_o2_lcl_opt_Co2_lcl_opt_parser;
+#include "wproc_pp_core.h"
+}
+void
+Co2_lcl_opt::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Ro2_lcl_opt_:{
+ Ro2_lcl_opt* sym;
+ if(re->rule_ == 0){
+ sym = new Ro2_lcl_opt(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ro2_lcl_opt*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rminus_:{
+ Rminus* sym;
+ if(re->rule_ == 0){
+ sym = new Rminus(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rminus*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rspec_parm_:{
+ Rspec_parm* sym;
+ if(re->rule_ == 0){
+ sym = new Rspec_parm(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rspec_parm*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rspec_parm_:{
+ Rspec_parm* sym;
+ if(re->rule_ == 0){
+ sym = new Rspec_parm(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rspec_parm*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rspec_parm_:{
+ Rspec_parm* sym;
+ if(re->rule_ == 0){
+ sym = new Rspec_parm(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rspec_parm*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rspec_parm_:{
+ Rspec_parm* sym;
+ if(re->rule_ == 0){
+ sym = new Rspec_parm(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rspec_parm*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ sym->sr4();
+ return;}
+ case rhs5_Rspec_parm_:{
+ Rspec_parm* sym;
+ if(re->rule_ == 0){
+ sym = new Rspec_parm(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rspec_parm*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ sym->sr5();
+ return;}
+ case rhs6_Rspec_parm_:{
+ Rspec_parm* sym;
+ if(re->rule_ == 0){
+ sym = new Rspec_parm(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rspec_parm*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr6();
+ return;}
+ case rhs1_Rmust_lint_:{
+ Rmust_lint* sym;
+ if(re->rule_ == 0){
+ sym = new Rmust_lint(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmust_lint*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rmust_lint_:{
+ Rmust_lint* sym;
+ if(re->rule_ == 0){
+ sym = new Rmust_lint(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmust_lint*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs3_Rmust_lint_:{
+ Rmust_lint* sym;
+ if(re->rule_ == 0){
+ sym = new Rmust_lint(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmust_lint*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/o2_lcl_opttbl.cpp b/web/yacco2/compiler/grammars/o2_lcl_opttbl.cpp
new file mode 100644
index 0000000000..872737bb30
--- /dev/null
+++ b/web/yacco2/compiler/grammars/o2_lcl_opttbl.cpp
@@ -0,0 +1,340 @@
+/*
+ File: o2_lcl_opttbl.cpp
+ Date and Time: Fri Jan 30 18:55:16 2015
+*/
+#include "o2_lcl_opt.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_o2_lcl_opt;// grammar's ns
+// first set terminals
+// LR1_questionable_shift_operator
+// raw_e
+// raw_l
+// raw_p
+// raw_r
+// raw_t
+yacco2::UCHAR LA1_Co2_lcl_opt[] ={
+4
+,0,1
+,13,32
+,14,16
+,15,21
+};
+// LR1_eolr
+yacco2::UCHAR LA2_Co2_lcl_opt[] ={
+1
+,0,4
+};
+// LR1_all_shift_operator
+// raw_ht
+// raw_sp
+yacco2::UCHAR LA3_Co2_lcl_opt[] ={
+3
+,0,64
+,2,2
+,5,1
+};
+extern yacco2::State S1_Co2_lcl_opt;
+extern yacco2::State S2_Co2_lcl_opt;
+extern yacco2::State S3_Co2_lcl_opt;
+extern yacco2::State S4_Co2_lcl_opt;
+extern yacco2::State S5_Co2_lcl_opt;
+extern yacco2::State S6_Co2_lcl_opt;
+extern yacco2::State S7_Co2_lcl_opt;
+extern yacco2::State S8_Co2_lcl_opt;
+extern yacco2::State S9_Co2_lcl_opt;
+extern yacco2::State S10_Co2_lcl_opt;
+extern yacco2::State S11_Co2_lcl_opt;
+extern yacco2::State S12_Co2_lcl_opt;
+extern yacco2::State S13_Co2_lcl_opt;
+extern yacco2::State S14_Co2_lcl_opt;
+extern yacco2::State S15_Co2_lcl_opt;
+extern yacco2::State S16_Co2_lcl_opt;
+extern yacco2::State S17_Co2_lcl_opt;
+extern yacco2::State S18_Co2_lcl_opt;
+extern yacco2::State S19_Co2_lcl_opt;
+struct S1std_Co2_lcl_opt{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S1std_Co2_lcl_opt S1st_Co2_lcl_opt = {
+ 3
+ ,
+ {// start of table
+ {53,(State*)&S2_Co2_lcl_opt} // shift sym: raw_minus
+ ,{569,(State*)&S1_Co2_lcl_opt} // accept sym: Ro2_lcl_opt
+ ,{570,(State*)&S3_Co2_lcl_opt} // shift sym: Rminus
+ }// end of shift table
+};
+yacco2::State S1_Co2_lcl_opt = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Co2_lcl_opt,0,0,0,0};
+struct S2rtd_Co2_lcl_opt{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Co2_lcl_opt S2rt_Co2_lcl_opt = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Co2_lcl_opt,Co2_lcl_opt::rhs1_Rminus_}
+ }// end of reduce table
+};
+yacco2::State S2_Co2_lcl_opt = //State's vectored into symbol: "-"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Co2_lcl_opt,0,0,0};
+struct S3std_Co2_lcl_opt{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[7];
+};
+S3std_Co2_lcl_opt S3st_Co2_lcl_opt = {
+ 7
+ ,
+ {// start of table
+ {0,(State*)&S9_Co2_lcl_opt} // shift sym: LR1_questionable_shift_operator
+ ,{109,(State*)&S10_Co2_lcl_opt} // shift sym: raw_e
+ ,{116,(State*)&S13_Co2_lcl_opt} // shift sym: raw_l
+ ,{120,(State*)&S16_Co2_lcl_opt} // shift sym: raw_p
+ ,{122,(State*)&S17_Co2_lcl_opt} // shift sym: raw_r
+ ,{124,(State*)&S19_Co2_lcl_opt} // shift sym: raw_t
+ ,{571,(State*)&S4_Co2_lcl_opt} // shift sym: Rspec_parm
+ }// end of shift table
+};
+yacco2::Shift_entry S3qse_Co2_lcl_opt = {0,(State*)&S9_Co2_lcl_opt};
+yacco2::State S3_Co2_lcl_opt = //State's vectored into symbol: "Rminus"
+{3
+,0,0,0,0,(Shift_tbl*)&S3st_Co2_lcl_opt,0,0,0,(Shift_entry*)&S3qse_Co2_lcl_opt
+};
+struct S4std_Co2_lcl_opt{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S4std_Co2_lcl_opt S4st_Co2_lcl_opt = {
+ 4
+ ,
+ {// start of table
+ {6,(State*)&S5_Co2_lcl_opt} // shift sym: LR1_all_shift_operator
+ ,{17,(State*)&S6_Co2_lcl_opt} // shift sym: raw_ht
+ ,{40,(State*)&S7_Co2_lcl_opt} // shift sym: raw_sp
+ ,{572,(State*)&S8_Co2_lcl_opt} // shift sym: Rmust_lint
+ }// end of shift table
+};
+yacco2::Shift_entry S4ase_Co2_lcl_opt = {6,(State*)&S5_Co2_lcl_opt};
+yacco2::State S4_Co2_lcl_opt = //State's vectored into symbol: "Rspec_parm"
+{4
+,0,(Shift_entry*)&S4ase_Co2_lcl_opt
+,0,0,(Shift_tbl*)&S4st_Co2_lcl_opt,0,0,0,0};
+struct S5rtd_Co2_lcl_opt{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Co2_lcl_opt S5rt_Co2_lcl_opt = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Co2_lcl_opt,Co2_lcl_opt::rhs3_Rmust_lint_}
+ }// end of reduce table
+};
+yacco2::State S5_Co2_lcl_opt = //State's vectored into symbol: "|+|"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Co2_lcl_opt,0,0,0};
+struct S6rtd_Co2_lcl_opt{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Co2_lcl_opt S6rt_Co2_lcl_opt = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Co2_lcl_opt,Co2_lcl_opt::rhs1_Rmust_lint_}
+ }// end of reduce table
+};
+yacco2::State S6_Co2_lcl_opt = //State's vectored into symbol: "x09"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Co2_lcl_opt,0,0,0};
+struct S7rtd_Co2_lcl_opt{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Co2_lcl_opt S7rt_Co2_lcl_opt = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Co2_lcl_opt,Co2_lcl_opt::rhs2_Rmust_lint_}
+ }// end of reduce table
+};
+yacco2::State S7_Co2_lcl_opt = //State's vectored into symbol: " "
+{7
+,0,0,0,0,0,(Reduce_tbl*)&S7rt_Co2_lcl_opt,0,0,0};
+struct S8rtd_Co2_lcl_opt{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S8rtd_Co2_lcl_opt S8rt_Co2_lcl_opt = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Co2_lcl_opt,Co2_lcl_opt::rhs1_Ro2_lcl_opt_}
+ }// end of reduce table
+};
+yacco2::State S8_Co2_lcl_opt = //State's vectored into symbol: "Rmust_lint"
+{8
+,0,0,0,0,0,(Reduce_tbl*)&S8rt_Co2_lcl_opt,0,0,0};
+struct S9rtd_Co2_lcl_opt{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Co2_lcl_opt S9rt_Co2_lcl_opt = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Co2_lcl_opt,Co2_lcl_opt::rhs6_Rspec_parm_}
+ }// end of reduce table
+};
+yacco2::State S9_Co2_lcl_opt = //State's vectored into symbol: "|?|"
+{9
+,0,0,0,0,0,(Reduce_tbl*)&S9rt_Co2_lcl_opt,0,0,0};
+struct S10std_Co2_lcl_opt{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S10std_Co2_lcl_opt S10st_Co2_lcl_opt = {
+ 1
+ ,
+ {// start of table
+ {122,(State*)&S11_Co2_lcl_opt} // shift sym: raw_r
+ }// end of shift table
+};
+yacco2::State S10_Co2_lcl_opt = //State's vectored into symbol: "e"
+{10
+,0,0,0,0,(Shift_tbl*)&S10st_Co2_lcl_opt,0,0,0,0};
+struct S11std_Co2_lcl_opt{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S11std_Co2_lcl_opt S11st_Co2_lcl_opt = {
+ 1
+ ,
+ {// start of table
+ {122,(State*)&S12_Co2_lcl_opt} // shift sym: raw_r
+ }// end of shift table
+};
+yacco2::State S11_Co2_lcl_opt = //State's vectored into symbol: "r"
+{11
+,0,0,0,0,(Shift_tbl*)&S11st_Co2_lcl_opt,0,0,0,0};
+struct S12rtd_Co2_lcl_opt{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S12rtd_Co2_lcl_opt S12rt_Co2_lcl_opt = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Co2_lcl_opt,Co2_lcl_opt::rhs4_Rspec_parm_}
+ }// end of reduce table
+};
+yacco2::State S12_Co2_lcl_opt = //State's vectored into symbol: "r"
+{12
+,0,0,0,0,0,(Reduce_tbl*)&S12rt_Co2_lcl_opt,0,0,0};
+struct S13std_Co2_lcl_opt{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S13std_Co2_lcl_opt S13st_Co2_lcl_opt = {
+ 1
+ ,
+ {// start of table
+ {122,(State*)&S14_Co2_lcl_opt} // shift sym: raw_r
+ }// end of shift table
+};
+yacco2::State S13_Co2_lcl_opt = //State's vectored into symbol: "l"
+{13
+,0,0,0,0,(Shift_tbl*)&S13st_Co2_lcl_opt,0,0,0,0};
+struct S14std_Co2_lcl_opt{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S14std_Co2_lcl_opt S14st_Co2_lcl_opt = {
+ 1
+ ,
+ {// start of table
+ {115,(State*)&S15_Co2_lcl_opt} // shift sym: raw_k
+ }// end of shift table
+};
+yacco2::State S14_Co2_lcl_opt = //State's vectored into symbol: "r"
+{14
+,0,0,0,0,(Shift_tbl*)&S14st_Co2_lcl_opt,0,0,0,0};
+struct S15rtd_Co2_lcl_opt{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S15rtd_Co2_lcl_opt S15rt_Co2_lcl_opt = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Co2_lcl_opt,Co2_lcl_opt::rhs5_Rspec_parm_}
+ }// end of reduce table
+};
+yacco2::State S15_Co2_lcl_opt = //State's vectored into symbol: "k"
+{15
+,0,0,0,0,0,(Reduce_tbl*)&S15rt_Co2_lcl_opt,0,0,0};
+struct S16rtd_Co2_lcl_opt{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S16rtd_Co2_lcl_opt S16rt_Co2_lcl_opt = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Co2_lcl_opt,Co2_lcl_opt::rhs2_Rspec_parm_}
+ }// end of reduce table
+};
+yacco2::State S16_Co2_lcl_opt = //State's vectored into symbol: "p"
+{16
+,0,0,0,0,0,(Reduce_tbl*)&S16rt_Co2_lcl_opt,0,0,0};
+struct S17std_Co2_lcl_opt{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S17std_Co2_lcl_opt S17st_Co2_lcl_opt = {
+ 1
+ ,
+ {// start of table
+ {107,(State*)&S18_Co2_lcl_opt} // shift sym: raw_c
+ }// end of shift table
+};
+yacco2::State S17_Co2_lcl_opt = //State's vectored into symbol: "r"
+{17
+,0,0,0,0,(Shift_tbl*)&S17st_Co2_lcl_opt,0,0,0,0};
+struct S18rtd_Co2_lcl_opt{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S18rtd_Co2_lcl_opt S18rt_Co2_lcl_opt = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Co2_lcl_opt,Co2_lcl_opt::rhs3_Rspec_parm_}
+ }// end of reduce table
+};
+yacco2::State S18_Co2_lcl_opt = //State's vectored into symbol: "c"
+{18
+,0,0,0,0,0,(Reduce_tbl*)&S18rt_Co2_lcl_opt,0,0,0};
+struct S19rtd_Co2_lcl_opt{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S19rtd_Co2_lcl_opt S19rt_Co2_lcl_opt = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Co2_lcl_opt,Co2_lcl_opt::rhs1_Rspec_parm_}
+ }// end of reduce table
+};
+yacco2::State S19_Co2_lcl_opt = //State's vectored into symbol: "t"
+{19
+,0,0,0,0,0,(Reduce_tbl*)&S19rt_Co2_lcl_opt,0,0,0};
diff --git a/web/yacco2/compiler/grammars/o2_linker_opts.cpp b/web/yacco2/compiler/grammars/o2_linker_opts.cpp
new file mode 100644
index 0000000000..207bdc1619
--- /dev/null
+++ b/web/yacco2/compiler/grammars/o2_linker_opts.cpp
@@ -0,0 +1,239 @@
+/*
+ File: o2_linker_opts.cpp
+ Date and Time: Fri Jan 30 18:55:17 2015
+*/
+#include "o2_linker_opts.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_o2_linker_opts;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 6;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[4] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[5] = new Per_rule_s_reuse_table();
+}
+ Co2_linker_opts::
+ Co2_linker_opts()
+ :yacco2::CAbs_fsm
+ ("o2_linker_opts.lex"
+ ,"1.0"
+ ,"21 Nov. 2002"
+ ,false
+ ,"\\Olinker's Command line options parser."
+ ,"Fri Jan 30 18:55:17 2015 "
+ ,S1_Co2_linker_opts){
+
+ file_to_compile_.clear();
+
+ }
+
+Co2_linker_opts::~Co2_linker_opts(){
+
+ for(int x = 0;x < 6;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Co2_linker_opts::failed(){
+ return false;
+ }
+ void Co2_linker_opts::op(){
+ parser__->set_use_all_shift_on();
+ file_to_compile_.clear();
+
+}
+int Co2_linker_opts::rhs_to_rules_mapping_[16] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,2 // subrule 4 for rule 3
+ ,2 // subrule 5 for rule 3
+ ,3 // subrule 6 for rule 4
+ ,3 // subrule 7 for rule 4
+ ,4 // subrule 8 for rule 5
+ ,4 // subrule 9 for rule 5
+ ,4 // subrule 10 for rule 5
+ ,4 // subrule 11 for rule 5
+ ,5 // subrule 12 for rule 6
+ ,5 // subrule 13 for rule 6
+ ,5 // subrule 14 for rule 6
+ ,5 // subrule 15 for rule 6
+};
+Ro2_lcl_opts::Ro2_lcl_opts(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Ro2_lcl_opts",0,Co2_linker_opts::R_Ro2_lcl_opts_,P,false,false){
+}
+
+void Ro2_lcl_opts::op(){
+ sstrace_rulesss
+
+ TOKEN_GAGGLE* err_queue = (TOKEN_GAGGLE*)rule_info__.parser__->error_queue();
+ if(err_queue ->empty()) return;
+
+}
+Rextra_chaffe::Rextra_chaffe(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rextra_chaffe",0,Co2_linker_opts::R_Rextra_chaffe_,P,false,false){
+}
+
+void Rextra_chaffe::sr2(){
+
+ rule_info__.parser__->set_use_all_shift_off();
+ CAbs_lr1_sym* sym = new Err_cmd_line_chaffe();
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rws_k::Rws_k(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rws_k",0,Co2_linker_opts::R_Rws_k_,P,false,false){
+}
+
+Rws_k_s::Rws_k_s(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rws_k_s",0,Co2_linker_opts::R_Rws_k_s_,P,false,false){
+}
+
+Rws::Rws(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rws",0,Co2_linker_opts::R_Rws_,P,false,false){
+}
+
+void Rws::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_comment* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+
+}
+
+void Rws::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_eol* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+
+}
+
+void Rws::sr4(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ rule_info__.parser__->set_use_all_shift_off();
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rfile::Rfile(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfile",0,Co2_linker_opts::R_Rfile_,P,false,false){
+}
+
+void Rfile::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_unquoted_string* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ T_unquoted_string* uqstr = sf->p2__;
+ Co2_linker_opts* fsm = (Co2_linker_opts*)rule_info__.parser__->fsm_tbl__;
+ fsm->file_to_compile_ += uqstr->unquoted_string()->c_str();
+ edit_file(uqstr);
+ sf->p2__->set_auto_delete(true);
+
+}
+
+void Rfile::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ rule_info__.parser__->set_use_all_shift_off();
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+
+}
+
+void Rfile::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_xc_str* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ T_xc_str* xcstr = sf->p2__;
+ Co2_linker_opts* fsm = (Co2_linker_opts*)rule_info__.parser__->fsm_tbl__;
+ fsm->file_to_compile_ += xcstr->c_string()->c_str();
+ edit_file(xcstr);
+
+}
+
+void Rfile::sr4(){
+
+ rule_info__.parser__->set_use_all_shift_off();
+ CAbs_lr1_sym* sym = new Err_no_filename();
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
diff --git a/web/yacco2/compiler/grammars/o2_linker_opts.fsc b/web/yacco2/compiler/grammars/o2_linker_opts.fsc
new file mode 100644
index 0000000000..2584a61f41
--- /dev/null
+++ b/web/yacco2/compiler/grammars/o2_linker_opts.fsc
@@ -0,0 +1,30 @@
+/*
+ File: o2_linker_opts.fsc
+ Date and Time: Fri Jan 30 18:55:17 2015
+*/
+transitive y
+grammar-name "o2_linker_opts"
+name-space "NS_o2_linker_opts"
+thread-name "Co2_linker_opts"
+monolithic y
+file-name "o2_linker_opts.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ LR1_questionable_shift_operator
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 5
+ NS_eol::TH_eol
+ NS_xc_str::TH_xc_str
+ NS_ws::TH_ws
+ NS_c_comments::TH_c_comments
+ NS_unq_str::TH_unq_str
+end-list-of-transitive-threads
+list-of-used-threads 5
+ NS_c_comments::TH_c_comments
+ NS_eol::TH_eol
+ NS_unq_str::TH_unq_str
+ NS_ws::TH_ws
+ NS_xc_str::TH_xc_str
+end-list-of-used-threads
+fsm-comments
+"\\Olinker's Command line options parser."
diff --git a/web/yacco2/compiler/grammars/o2_linker_opts.h b/web/yacco2/compiler/grammars/o2_linker_opts.h
new file mode 100644
index 0000000000..7cb5882467
--- /dev/null
+++ b/web/yacco2/compiler/grammars/o2_linker_opts.h
@@ -0,0 +1,136 @@
+/*
+ File: o2_linker_opts.h
+ Date and Time: Fri Jan 30 18:55:17 2015
+*/
+#ifndef __o2_linker_opts_h__
+#define __o2_linker_opts_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "ws.h"
+#include "eol.h"
+#include "c_comments.h"
+#include "xc_str.h"
+#include "unq_str.h"
+
+// monolithic grammar: no thread
+extern yacco2::State S1_Co2_linker_opts;
+namespace NS_o2_linker_opts {
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[6];
+};
+class Co2_linker_opts: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Ro2_lcl_opts_ = 569//start_of_rule_list + 0
+ ,rhs1_Ro2_lcl_opts_ = 1
+ ,R_Rextra_chaffe_ = 570//start_of_rule_list + 2
+ ,rhs1_Rextra_chaffe_ = 2
+ ,rhs2_Rextra_chaffe_ = 3
+ ,R_Rws_k_ = 571//start_of_rule_list + 4
+ ,rhs1_Rws_k_ = 4
+ ,rhs2_Rws_k_ = 5
+ ,R_Rws_k_s_ = 572//start_of_rule_list + 6
+ ,rhs1_Rws_k_s_ = 6
+ ,rhs2_Rws_k_s_ = 7
+ ,R_Rws_ = 573//start_of_rule_list + 8
+ ,rhs1_Rws_ = 8
+ ,rhs2_Rws_ = 9
+ ,rhs3_Rws_ = 10
+ ,rhs4_Rws_ = 11
+ ,R_Rfile_ = 574//start_of_rule_list + 10
+ ,rhs1_Rfile_ = 12
+ ,rhs2_Rfile_ = 13
+ ,rhs3_Rfile_ = 14
+ ,rhs4_Rfile_ = 15
+ };
+ //no of la sets = 3
+ //no of states = 20
+ Co2_linker_opts();
+ ~Co2_linker_opts();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[16];
+
+ public:
+ std::string file_to_compile_;
+
+ };
+struct Ro2_lcl_opts;
+struct Rextra_chaffe;
+struct Rws_k;
+struct Rws_k_s;
+struct Rws;
+struct Rfile;
+struct Ro2_lcl_opts:public yacco2::CAbs_lr1_sym {
+ Ro2_lcl_opts(yacco2::Parser* P);
+ void op();
+ public:
+};
+
+struct Rextra_chaffe:public yacco2::CAbs_lr1_sym {
+ Rextra_chaffe(yacco2::Parser* P);
+ public:
+ void sr2();
+};
+
+struct Rws_k:public yacco2::CAbs_lr1_sym {
+ Rws_k(yacco2::Parser* P);
+ public:
+};
+
+struct Rws_k_s:public yacco2::CAbs_lr1_sym {
+ Rws_k_s(yacco2::Parser* P);
+ public:
+};
+
+struct Rws:public yacco2::CAbs_lr1_sym {
+ Rws(yacco2::Parser* P);
+ public:
+ void sr2();
+ void sr3();
+ void sr4();
+};
+
+struct Rfile:public yacco2::CAbs_lr1_sym {
+ Rfile(yacco2::Parser* P);
+
+ public:
+ void edit_file(CAbs_lr1_sym* Sym){
+ using namespace NS_yacco2_err_symbols;
+ using namespace NS_yacco2_k_symbols;
+ Co2_linker_opts* fsm = (Co2_linker_opts*)rule_info__.parser__->fsm_tbl__;
+ std::ifstream ifile;
+ ifile.open(fsm->file_to_compile_.c_str());
+ if (ifile.good()){
+ ifile.close();
+ return;
+ }
+ CAbs_lr1_sym* sym = new Err_bad_filename(fsm->file_to_compile_);
+ sym->set_rc(*Sym,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ };
+
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/o2_linker_opts.lex b/web/yacco2/compiler/grammars/o2_linker_opts.lex
new file mode 100644
index 0000000000..9597a5931d
--- /dev/null
+++ b/web/yacco2/compiler/grammars/o2_linker_opts.lex
@@ -0,0 +1,166 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: o2_linker_opts.lex
+Dates: 2 mar. 2005
+Purpose: yacco2's linker frontend command line parser.
+ The argv[] data passed by "int main(int argc, char* argv[])" is
+ mapped into raw char tokens and placed into a container
+ for lexical assessment.
+Cmd Format: file name
+Errors: "comment-overrun", "bad-eos", "bad-esc",
+ "bad-cmd-lne-opt", "no-int-present", "bad-int-no-range"
+ "bad-cmd-opt"
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |o2_linker_opts| grammar.\fbreak
+\O2's linker frontend command line parser.
+The argv[] data passed by ``int main(int argc, char* argv[])'' is
+mapped into raw char tokens and placed into a container
+for lexical assessment. c++ comments can be sprinkled thru out the command line.
+There are no options for the linker just the ``fsc'' extension file.
+For example, to process \O2's grammars the linker command line is\fbreak
+/usr/local/yacco2/bin/o2linker /yacco2/compiler/grammars/yacco2.fsc\fbreak
+@/
+
+fsm
+(fsm-id "o2_linker_opts.lex",fsm-filename o2_linker_opts,fsm-namespace NS_o2_linker_opts
+,fsm-class Co2_linker_opts {
+ user-declaration
+ public:
+ std::string file_to_compile_;
+ ***
+ user-prefix-declaration
+#include "ws.h"
+#include "eol.h"
+#include "c_comments.h"
+#include "xc_str.h"
+#include "unq_str.h"
+ ***
+ op
+ parser__->set_use_all_shift_on();
+ file_to_compile_.clear();
+ ***
+ constructor
+ file_to_compile_.clear();
+ ***
+}
+,fsm-version "1.0",fsm-date "21 Nov. 2002",fsm-debug "false"
+,fsm-comments "\\Olinker's Command line options parser.")
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Ro2_lcl_opts (
+lhs{
+ op
+ TOKEN_GAGGLE* err_queue = (TOKEN_GAGGLE*)rule_info__.parser__->error_queue();
+ if(err_queue ->empty()) return;
+ ***
+}
+){
+ -> Rws_k Rfile Rws_k Rextra_chaffe
+}
+
+Rextra_chaffe (){
+ -> eog
+ -> |?|{
+ op
+ rule_info__.parser__->set_use_all_shift_off();
+ CAbs_lr1_sym* sym = new Err_cmd_line_chaffe();
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rws_k (){
+ ->
+ -> Rws_k_s
+}
+
+Rws_k_s (){
+ -> Rws
+ -> Rws_k_s Rws
+}
+
+Rws (){
+ -> ||| "ws" NS_ws::TH_ws
+ -> ||| "comment" NS_c_comments::TH_c_comments {
+ op
+ sf->p2__->set_auto_delete(true);
+ ***
+ }
+ -> ||| "eol" NS_eol::TH_eol {
+ op
+ sf->p2__->set_auto_delete(true);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ rule_info__.parser__->set_use_all_shift_off();
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rfile (
+lhs{
+ user-declaration
+ public:
+ void edit_file(CAbs_lr1_sym* Sym){
+ using namespace NS_yacco2_err_symbols;
+ using namespace NS_yacco2_k_symbols;
+ Co2_linker_opts* fsm = (Co2_linker_opts*)rule_info__.parser__->fsm_tbl__;
+ std::ifstream ifile;
+ ifile.open(fsm->file_to_compile_.c_str());
+ if (ifile.good()){
+ ifile.close();
+ return;
+ }
+ CAbs_lr1_sym* sym = new Err_bad_filename(fsm->file_to_compile_);
+ sym->set_rc(*Sym,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ };
+ ***
+}
+){
+ -> ||| "unquoted-string" NS_unq_str::TH_unq_str {
+ op
+ T_unquoted_string* uqstr = sf->p2__;
+ Co2_linker_opts* fsm = (Co2_linker_opts*)rule_info__.parser__->fsm_tbl__;
+ fsm->file_to_compile_ += uqstr->unquoted_string()->c_str();
+ edit_file(uqstr);
+ sf->p2__->set_auto_delete(true);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ rule_info__.parser__->set_use_all_shift_off();
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "xc-str" NS_xc_str::TH_xc_str {
+ op
+ T_xc_str* xcstr = sf->p2__;
+ Co2_linker_opts* fsm = (Co2_linker_opts*)rule_info__.parser__->fsm_tbl__;
+ fsm->file_to_compile_ += xcstr->c_string()->c_str();
+ edit_file(xcstr);
+ ***
+ }
+ -> |?| { // no file given
+ op
+ rule_info__.parser__->set_use_all_shift_off();
+ CAbs_lr1_sym* sym = new Err_no_filename();
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/o2_linker_optssym.cpp b/web/yacco2/compiler/grammars/o2_linker_optssym.cpp
new file mode 100644
index 0000000000..ba307bdb39
--- /dev/null
+++ b/web/yacco2/compiler/grammars/o2_linker_optssym.cpp
@@ -0,0 +1,246 @@
+/*
+ File: o2_linker_optssym.cpp
+ Date and Time: Fri Jan 30 18:55:17 2015
+*/
+#include "o2_linker_opts.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_o2_linker_opts;// grammar's ns
+// first set terminals
+// monolithic grammar --- no thread
+void
+Co2_linker_opts::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Ro2_lcl_opts_:{
+ Ro2_lcl_opts* sym;
+ if(re->rule_ == 0){
+ sym = new Ro2_lcl_opts(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ro2_lcl_opts*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 4;
+
+
+ sym->op();
+ return;}
+ case rhs1_Rextra_chaffe_:{
+ Rextra_chaffe* sym;
+ if(re->rule_ == 0){
+ sym = new Rextra_chaffe(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rextra_chaffe*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rextra_chaffe_:{
+ Rextra_chaffe* sym;
+ if(re->rule_ == 0){
+ sym = new Rextra_chaffe(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rextra_chaffe*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rws_k_:{
+ Rws_k* sym;
+ if(re->rule_ == 0){
+ sym = new Rws_k(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rws_k*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs2_Rws_k_:{
+ Rws_k* sym;
+ if(re->rule_ == 0){
+ sym = new Rws_k(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rws_k*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rws_k_s_:{
+ Rws_k_s* sym;
+ if(re->rule_ == 0){
+ sym = new Rws_k_s(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rws_k_s*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rws_k_s_:{
+ Rws_k_s* sym;
+ if(re->rule_ == 0){
+ sym = new Rws_k_s(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rws_k_s*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rws_:{
+ Rws* sym;
+ if(re->rule_ == 0){
+ sym = new Rws(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rws*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rws_:{
+ Rws* sym;
+ if(re->rule_ == 0){
+ sym = new Rws(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rws*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rws_:{
+ Rws* sym;
+ if(re->rule_ == 0){
+ sym = new Rws(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rws*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rws_:{
+ Rws* sym;
+ if(re->rule_ == 0){
+ sym = new Rws(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rws*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr4();
+ return;}
+ case rhs1_Rfile_:{
+ Rfile* sym;
+ if(re->rule_ == 0){
+ sym = new Rfile(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfile*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rfile_:{
+ Rfile* sym;
+ if(re->rule_ == 0){
+ sym = new Rfile(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfile*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rfile_:{
+ Rfile* sym;
+ if(re->rule_ == 0){
+ sym = new Rfile(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfile*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rfile_:{
+ Rfile* sym;
+ if(re->rule_ == 0){
+ sym = new Rfile(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfile*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr4();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/o2_linker_optstbl.cpp b/web/yacco2/compiler/grammars/o2_linker_optstbl.cpp
new file mode 100644
index 0000000000..8da120b308
--- /dev/null
+++ b/web/yacco2/compiler/grammars/o2_linker_optstbl.cpp
@@ -0,0 +1,420 @@
+/*
+ File: o2_linker_optstbl.cpp
+ Date and Time: Fri Jan 30 18:55:17 2015
+*/
+#include "o2_linker_opts.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_o2_linker_opts;// grammar's ns
+// first set terminals
+// LR1_questionable_shift_operator
+// LR1_eog
+// LR1_reduce_operator
+yacco2::UCHAR LA1_Co2_linker_opts[] ={
+1
+,0,19
+};
+// LR1_questionable_shift_operator
+// LR1_eog
+yacco2::UCHAR LA2_Co2_linker_opts[] ={
+1
+,0,3
+};
+// LR1_eolr
+yacco2::UCHAR LA3_Co2_linker_opts[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Co2_linker_opts;
+extern yacco2::State S2_Co2_linker_opts;
+struct S2ttd_Co2_linker_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[3];
+};
+S2ttd_Co2_linker_opts S2tt_Co2_linker_opts = {
+ 3 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_eol
+ ,(yacco2::Thread_entry*)&ITH_c_comments
+ ,(yacco2::Thread_entry*)&ITH_ws
+};
+extern yacco2::State S3_Co2_linker_opts;
+extern yacco2::State S4_Co2_linker_opts;
+extern yacco2::State S5_Co2_linker_opts;
+extern yacco2::State S6_Co2_linker_opts;
+extern yacco2::State S7_Co2_linker_opts;
+extern yacco2::State S8_Co2_linker_opts;
+extern yacco2::State S9_Co2_linker_opts;
+extern yacco2::State S10_Co2_linker_opts;
+extern yacco2::State S11_Co2_linker_opts;
+extern yacco2::State S12_Co2_linker_opts;
+extern yacco2::State S13_Co2_linker_opts;
+extern yacco2::State S14_Co2_linker_opts;
+extern yacco2::State S15_Co2_linker_opts;
+extern yacco2::State S16_Co2_linker_opts;
+extern yacco2::State S17_Co2_linker_opts;
+struct S17ttd_Co2_linker_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[2];
+};
+S17ttd_Co2_linker_opts S17tt_Co2_linker_opts = {
+ 2 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_xc_str
+ ,(yacco2::Thread_entry*)&ITH_unq_str
+};
+extern yacco2::State S18_Co2_linker_opts;
+extern yacco2::State S19_Co2_linker_opts;
+extern yacco2::State S20_Co2_linker_opts;
+struct S1std_Co2_linker_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S1std_Co2_linker_opts S1st_Co2_linker_opts = {
+ 5
+ ,
+ {// start of table
+ {3,(State*)&S2_Co2_linker_opts} // shift sym: LR1_parallel_operator
+ ,{569,(State*)&S1_Co2_linker_opts} // accept sym: Ro2_lcl_opts
+ ,{571,(State*)&S7_Co2_linker_opts} // shift sym: Rws_k
+ ,{572,(State*)&S13_Co2_linker_opts} // shift sym: Rws_k_s
+ ,{573,(State*)&S15_Co2_linker_opts} // shift sym: Rws
+ }// end of shift table
+};
+yacco2::Shift_entry S1pse_Co2_linker_opts = {3,(State*)&S2_Co2_linker_opts};
+struct S1rtd_Co2_linker_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S1rtd_Co2_linker_opts S1rt_Co2_linker_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Co2_linker_opts,Co2_linker_opts::rhs1_Rws_k_}
+ }// end of reduce table
+};
+yacco2::State S1_Co2_linker_opts = //State's vectored into symbol: " No symbol"
+{1
+,(Shift_entry*)&S1pse_Co2_linker_opts,0,0,0,(Shift_tbl*)&S1st_Co2_linker_opts,(Reduce_tbl*)&S1rt_Co2_linker_opts,(State_s_thread_tbl*)&S2tt_Co2_linker_opts,0,0};
+struct S2std_Co2_linker_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S2std_Co2_linker_opts S2st_Co2_linker_opts = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S3_Co2_linker_opts} // shift sym: LR1_questionable_shift_operator
+ ,{268,(State*)&S4_Co2_linker_opts} // shift sym: T_eol
+ ,{271,(State*)&S5_Co2_linker_opts} // shift sym: T_comment
+ ,{272,(State*)&S6_Co2_linker_opts} // shift sym: T_ws
+ }// end of shift table
+};
+yacco2::Shift_entry S2qse_Co2_linker_opts = {0,(State*)&S3_Co2_linker_opts};
+yacco2::State S2_Co2_linker_opts = //State's vectored into symbol: "|||"
+{2
+,0,0,0,0,(Shift_tbl*)&S2st_Co2_linker_opts,0,0,0,(Shift_entry*)&S2qse_Co2_linker_opts
+};
+struct S3rtd_Co2_linker_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Co2_linker_opts S3rt_Co2_linker_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Co2_linker_opts,Co2_linker_opts::rhs4_Rws_}
+ }// end of reduce table
+};
+yacco2::State S3_Co2_linker_opts = //State's vectored into symbol: "|?|"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_Co2_linker_opts,0,0,0};
+struct S4rtd_Co2_linker_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Co2_linker_opts S4rt_Co2_linker_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Co2_linker_opts,Co2_linker_opts::rhs3_Rws_}
+ }// end of reduce table
+};
+yacco2::State S4_Co2_linker_opts = //State's vectored into symbol: "eol"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Co2_linker_opts,0,0,0};
+struct S5rtd_Co2_linker_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Co2_linker_opts S5rt_Co2_linker_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Co2_linker_opts,Co2_linker_opts::rhs2_Rws_}
+ }// end of reduce table
+};
+yacco2::State S5_Co2_linker_opts = //State's vectored into symbol: "comment"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Co2_linker_opts,0,0,0};
+struct S6rtd_Co2_linker_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Co2_linker_opts S6rt_Co2_linker_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Co2_linker_opts,Co2_linker_opts::rhs1_Rws_}
+ }// end of reduce table
+};
+yacco2::State S6_Co2_linker_opts = //State's vectored into symbol: "ws"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Co2_linker_opts,0,0,0};
+struct S7std_Co2_linker_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S7std_Co2_linker_opts S7st_Co2_linker_opts = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S16_Co2_linker_opts} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S17_Co2_linker_opts} // shift sym: LR1_parallel_operator
+ ,{574,(State*)&S8_Co2_linker_opts} // shift sym: Rfile
+ }// end of shift table
+};
+yacco2::Shift_entry S7pse_Co2_linker_opts = {3,(State*)&S17_Co2_linker_opts};
+yacco2::Shift_entry S7qse_Co2_linker_opts = {0,(State*)&S16_Co2_linker_opts};
+yacco2::State S7_Co2_linker_opts = //State's vectored into symbol: "Rws_k"
+{7
+,(Shift_entry*)&S7pse_Co2_linker_opts,0,0,0,(Shift_tbl*)&S7st_Co2_linker_opts,0,(State_s_thread_tbl*)&S17tt_Co2_linker_opts,0,(Shift_entry*)&S7qse_Co2_linker_opts
+};
+struct S8std_Co2_linker_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S8std_Co2_linker_opts S8st_Co2_linker_opts = {
+ 4
+ ,
+ {// start of table
+ {3,(State*)&S2_Co2_linker_opts} // shift sym: LR1_parallel_operator
+ ,{571,(State*)&S9_Co2_linker_opts} // shift sym: Rws_k
+ ,{572,(State*)&S13_Co2_linker_opts} // shift sym: Rws_k_s
+ ,{573,(State*)&S15_Co2_linker_opts} // shift sym: Rws
+ }// end of shift table
+};
+yacco2::Shift_entry S8pse_Co2_linker_opts = {3,(State*)&S2_Co2_linker_opts};
+struct S8rtd_Co2_linker_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S8rtd_Co2_linker_opts S8rt_Co2_linker_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Co2_linker_opts,Co2_linker_opts::rhs1_Rws_k_}
+ }// end of reduce table
+};
+yacco2::State S8_Co2_linker_opts = //State's vectored into symbol: "Rfile"
+{8
+,(Shift_entry*)&S8pse_Co2_linker_opts,0,0,0,(Shift_tbl*)&S8st_Co2_linker_opts,(Reduce_tbl*)&S8rt_Co2_linker_opts,(State_s_thread_tbl*)&S2tt_Co2_linker_opts,0,0};
+struct S9std_Co2_linker_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S9std_Co2_linker_opts S9st_Co2_linker_opts = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S10_Co2_linker_opts} // shift sym: LR1_questionable_shift_operator
+ ,{1,(State*)&S11_Co2_linker_opts} // shift sym: LR1_eog
+ ,{570,(State*)&S12_Co2_linker_opts} // shift sym: Rextra_chaffe
+ }// end of shift table
+};
+yacco2::Shift_entry S9qse_Co2_linker_opts = {0,(State*)&S10_Co2_linker_opts};
+yacco2::State S9_Co2_linker_opts = //State's vectored into symbol: "Rws_k"
+{9
+,0,0,0,0,(Shift_tbl*)&S9st_Co2_linker_opts,0,0,0,(Shift_entry*)&S9qse_Co2_linker_opts
+};
+struct S10rtd_Co2_linker_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S10rtd_Co2_linker_opts S10rt_Co2_linker_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Co2_linker_opts,Co2_linker_opts::rhs2_Rextra_chaffe_}
+ }// end of reduce table
+};
+yacco2::State S10_Co2_linker_opts = //State's vectored into symbol: "|?|"
+{10
+,0,0,0,0,0,(Reduce_tbl*)&S10rt_Co2_linker_opts,0,0,0};
+struct S11rtd_Co2_linker_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Co2_linker_opts S11rt_Co2_linker_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Co2_linker_opts,Co2_linker_opts::rhs1_Rextra_chaffe_}
+ }// end of reduce table
+};
+yacco2::State S11_Co2_linker_opts = //State's vectored into symbol: "eog"
+{11
+,0,0,0,0,0,(Reduce_tbl*)&S11rt_Co2_linker_opts,0,0,0};
+struct S12rtd_Co2_linker_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S12rtd_Co2_linker_opts S12rt_Co2_linker_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Co2_linker_opts,Co2_linker_opts::rhs1_Ro2_lcl_opts_}
+ }// end of reduce table
+};
+yacco2::State S12_Co2_linker_opts = //State's vectored into symbol: "Rextra_chaffe"
+{12
+,0,0,0,0,0,(Reduce_tbl*)&S12rt_Co2_linker_opts,0,0,0};
+struct S13std_Co2_linker_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S13std_Co2_linker_opts S13st_Co2_linker_opts = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Co2_linker_opts} // shift sym: LR1_parallel_operator
+ ,{573,(State*)&S14_Co2_linker_opts} // shift sym: Rws
+ }// end of shift table
+};
+yacco2::Shift_entry S13pse_Co2_linker_opts = {3,(State*)&S2_Co2_linker_opts};
+struct S13rtd_Co2_linker_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S13rtd_Co2_linker_opts S13rt_Co2_linker_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Co2_linker_opts,Co2_linker_opts::rhs2_Rws_k_}
+ }// end of reduce table
+};
+yacco2::State S13_Co2_linker_opts = //State's vectored into symbol: "Rws_k_s"
+{13
+,(Shift_entry*)&S13pse_Co2_linker_opts,0,0,0,(Shift_tbl*)&S13st_Co2_linker_opts,(Reduce_tbl*)&S13rt_Co2_linker_opts,(State_s_thread_tbl*)&S2tt_Co2_linker_opts,0,0};
+struct S14rtd_Co2_linker_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S14rtd_Co2_linker_opts S14rt_Co2_linker_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Co2_linker_opts,Co2_linker_opts::rhs2_Rws_k_s_}
+ }// end of reduce table
+};
+yacco2::State S14_Co2_linker_opts = //State's vectored into symbol: "Rws"
+{14
+,0,0,0,0,0,(Reduce_tbl*)&S14rt_Co2_linker_opts,0,0,0};
+struct S15rtd_Co2_linker_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S15rtd_Co2_linker_opts S15rt_Co2_linker_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Co2_linker_opts,Co2_linker_opts::rhs1_Rws_k_s_}
+ }// end of reduce table
+};
+yacco2::State S15_Co2_linker_opts = //State's vectored into symbol: "Rws"
+{15
+,0,0,0,0,0,(Reduce_tbl*)&S15rt_Co2_linker_opts,0,0,0};
+struct S16rtd_Co2_linker_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S16rtd_Co2_linker_opts S16rt_Co2_linker_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Co2_linker_opts,Co2_linker_opts::rhs4_Rfile_}
+ }// end of reduce table
+};
+yacco2::State S16_Co2_linker_opts = //State's vectored into symbol: "|?|"
+{16
+,0,0,0,0,0,(Reduce_tbl*)&S16rt_Co2_linker_opts,0,0,0};
+struct S17std_Co2_linker_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S17std_Co2_linker_opts S17st_Co2_linker_opts = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S18_Co2_linker_opts} // shift sym: LR1_questionable_shift_operator
+ ,{276,(State*)&S19_Co2_linker_opts} // shift sym: T_xc_str
+ ,{277,(State*)&S20_Co2_linker_opts} // shift sym: T_unquoted_string
+ }// end of shift table
+};
+yacco2::Shift_entry S17qse_Co2_linker_opts = {0,(State*)&S18_Co2_linker_opts};
+yacco2::State S17_Co2_linker_opts = //State's vectored into symbol: "|||"
+{17
+,0,0,0,0,(Shift_tbl*)&S17st_Co2_linker_opts,0,0,0,(Shift_entry*)&S17qse_Co2_linker_opts
+};
+struct S18rtd_Co2_linker_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S18rtd_Co2_linker_opts S18rt_Co2_linker_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Co2_linker_opts,Co2_linker_opts::rhs2_Rfile_}
+ }// end of reduce table
+};
+yacco2::State S18_Co2_linker_opts = //State's vectored into symbol: "|?|"
+{18
+,0,0,0,0,0,(Reduce_tbl*)&S18rt_Co2_linker_opts,0,0,0};
+struct S19rtd_Co2_linker_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S19rtd_Co2_linker_opts S19rt_Co2_linker_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Co2_linker_opts,Co2_linker_opts::rhs3_Rfile_}
+ }// end of reduce table
+};
+yacco2::State S19_Co2_linker_opts = //State's vectored into symbol: "xc-str"
+{19
+,0,0,0,0,0,(Reduce_tbl*)&S19rt_Co2_linker_opts,0,0,0};
+struct S20rtd_Co2_linker_opts{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S20rtd_Co2_linker_opts S20rt_Co2_linker_opts = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Co2_linker_opts,Co2_linker_opts::rhs1_Rfile_}
+ }// end of reduce table
+};
+yacco2::State S20_Co2_linker_opts = //State's vectored into symbol: "unquoted-string"
+{20
+,0,0,0,0,0,(Reduce_tbl*)&S20rt_Co2_linker_opts,0,0,0};
diff --git a/web/yacco2/compiler/grammars/o2_sdc.cpp b/web/yacco2/compiler/grammars/o2_sdc.cpp
new file mode 100644
index 0000000000..219d2da6fc
--- /dev/null
+++ b/web/yacco2/compiler/grammars/o2_sdc.cpp
@@ -0,0 +1,310 @@
+/*
+ File: o2_sdc.cpp
+ Date and Time: Fri Jan 30 18:55:17 2015
+*/
+#include "o2_sdc.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_o2_sdc;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 3;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+}
+ Co2_sdc::
+ Co2_sdc()
+ :yacco2::CAbs_fsm
+ ("o2_sdc.lex"
+ ,"1.0"
+ ,"30 dec 2002"
+ ,false
+ ,"\\O2's syntax directed code extractor."
+ ,"Fri Jan 30 18:55:17 2015 "
+ ,S1_Co2_sdc){
+
+ ddd_idx_ = 0;
+ ddd_[ddd_idx_] = 0;
+
+ }
+
+Co2_sdc::~Co2_sdc(){
+
+ for(int x = 0;x < 3;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Co2_sdc::failed(){
+ return false;
+ }
+ void Co2_sdc::op(){
+ ddd_idx_ = 0;
+ ddd_[ddd_idx_] = 0;
+ parser__->set_use_all_shift_on();
+ CAbs_lr1_sym* sym = parser__->start_token__;
+ switch (sym->enumerated_id__){
+
+ case T_Enum::T_LR1_eog_: break;
+ default: return;
+ }
+ parser__->set_use_all_shift_off();
+
+}
+int Co2_sdc::rhs_to_rules_mapping_[11] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,2 // subrule 4 for rule 3
+ ,2 // subrule 5 for rule 3
+ ,2 // subrule 6 for rule 3
+ ,2 // subrule 7 for rule 3
+ ,2 // subrule 8 for rule 3
+ ,2 // subrule 9 for rule 3
+ ,2 // subrule 10 for rule 3
+};
+
+ void Co2_sdc::copy_str_into_buffer(std::string* Str){
+ const char* y = Str->c_str();
+ int x(0);
+ for(;y[x]!=0;++x,++ddd_idx_)ddd_[ddd_idx_] = y[x];
+ ddd_[ddd_idx_] = 0;
+ }
+
+ void Co2_sdc::copy_kstr_into_buffer(const char* Str){
+ const char* y = Str;
+ int x(0);
+ for(;y[x]!=0;++x,++ddd_idx_)ddd_[ddd_idx_] = y[x];
+ ddd_[ddd_idx_] = 0;
+ }
+
+Ryacco2_syntax_code::Ryacco2_syntax_code(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Ryacco2_syntax_code",0,Co2_sdc::R_Ryacco2_syntax_code_,P,false,false){
+}
+
+void Ryacco2_syntax_code::op(){
+ sstrace_rulesss
+
+ Co2_sdc* fsm = (Co2_sdc*)rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* sym(0);
+ if(fsm->ddd_idx_ == 0){
+ sym = new Err_no_syntax_code_present;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ sym = new T_syntax_code((const char*)&fsm->ddd_);
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+
+}
+Rchrs::Rchrs(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rchrs",0,Co2_sdc::R_Rchrs_,P,false,false){
+}
+
+Rchr::Rchr(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rchr",0,Co2_sdc::R_Rchr_,P,false,false){
+}
+
+void Rchr::op(){
+ sstrace_rulesss
+
+ if(rule_info__.parser__->stop_parse__ == true) return;
+ CAbs_lr1_sym* la_sym = rule_info__.parser__->current_token();
+ using namespace NS_yacco2_T_enum;
+ using namespace NS_yacco2_terminals;
+ // watch for overrun
+ if(la_sym->enumerated_id__ == T_Enum::T_LR1_eog_){
+ CAbs_lr1_sym* sym = new Err_no_end_of_code;
+ sym->set_rc(*la_sym,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ }
+
+}
+void Rchr::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_comment* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Co2_sdc* fsm = (Co2_sdc*)rule_info__.parser__->fsm_tbl__;
+ T_comment* k = sf->p2__;
+ k->set_auto_delete(true);// delete it when it pops from stack
+ fsm->copy_str_into_buffer(k->comment_data());
+
+}
+
+void Rchr::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_cweb_comment* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Co2_sdc* fsm = (Co2_sdc*)rule_info__.parser__->fsm_tbl__;
+ T_cweb_comment* k = sf->p2__;
+ k->set_auto_delete(true);// delete it when it pops from stack
+ if(PRT_SW == 'n') return;// bypass the cweve comments in the cpp code
+ fsm->copy_str_into_buffer(k->comment_data());
+ string fmt("@<More code@>+=\n");
+ fsm->copy_str_into_buffer(&fmt);
+
+}
+
+void Rchr::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_c_string* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Co2_sdc* fsm = (Co2_sdc*)rule_info__.parser__->fsm_tbl__;
+ T_c_string* k = sf->p2__;
+ k->set_auto_delete(true);// delete it when it pops from stack
+ // add back the bounding double quotes
+ fsm->ddd_[fsm->ddd_idx_] = '"';
+ ++fsm->ddd_idx_;
+ fsm->copy_str_into_buffer(k->c_string());
+ fsm->ddd_[fsm->ddd_idx_] = '"';
+ ++fsm->ddd_idx_;
+ fsm->ddd_[fsm->ddd_idx_] = 0;
+
+}
+
+void Rchr::sr4(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_c_literal* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Co2_sdc* fsm = (Co2_sdc*)rule_info__.parser__->fsm_tbl__;
+ T_c_literal* k = sf->p2__;
+ k->set_auto_delete(true);
+ // add back the bounding single quotes
+ fsm->ddd_[fsm->ddd_idx_] = '\'';
+ ++fsm->ddd_idx_;
+ fsm->copy_str_into_buffer(k->c_literal());
+ fsm->ddd_[fsm->ddd_idx_] = '\'';
+ ++fsm->ddd_idx_;
+ fsm->ddd_[fsm->ddd_idx_] = 0;
+
+}
+
+void Rchr::sr5(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_eocode* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ rule_info__.parser__->set_use_all_shift_off();
+
+}
+
+void Rchr::sr6(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Co2_sdc* fsm = (Co2_sdc*)rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* k = sf->p1__;
+ switch (k->enumerated_id__){
+ case T_Enum::T_LR1_eog_:{
+ rule_info__.parser__->set_use_all_shift_off();
+ break;
+ }
+ case T_Enum::T_T_eol_:{
+ fsm->copy_kstr_into_buffer("\n");
+ break;
+ }
+ case T_Enum::T_raw_sp_:{
+ fsm->copy_kstr_into_buffer(" ");
+ break;
+ }
+ case T_Enum::T_raw_ff_:{
+ fsm->copy_kstr_into_buffer("\f");
+ break;
+ }
+ case T_Enum::T_raw_vt_:{
+ fsm->copy_kstr_into_buffer("\v");
+ break;
+ }
+ case T_Enum::T_raw_ht_:{
+ fsm->copy_kstr_into_buffer("\t");
+ break;
+ }
+ default:{
+ fsm->ddd_[fsm->ddd_idx_] = k->id__[0];
+ ++fsm->ddd_idx_;
+ fsm->ddd_[fsm->ddd_idx_] = 0;
+ }
+ }
+
+}
+
+void Rchr::sr7(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
diff --git a/web/yacco2/compiler/grammars/o2_sdc.fsc b/web/yacco2/compiler/grammars/o2_sdc.fsc
new file mode 100644
index 0000000000..4fb70fcc68
--- /dev/null
+++ b/web/yacco2/compiler/grammars/o2_sdc.fsc
@@ -0,0 +1,28 @@
+/*
+ File: o2_sdc.fsc
+ Date and Time: Fri Jan 30 18:55:17 2015
+*/
+transitive y
+grammar-name "o2_sdc"
+name-space "NS_o2_sdc"
+thread-name "TH_o2_sdc"
+monolithic n
+file-name "o2_sdc.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ LR1_all_shift_operator
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 4
+ NS_o2_code_end::TH_o2_code_end
+ NS_cweb_or_c_k::TH_cweb_or_c_k
+ NS_c_string::TH_c_string
+ NS_c_literal::TH_c_literal
+end-list-of-transitive-threads
+list-of-used-threads 4
+ NS_c_literal::TH_c_literal
+ NS_c_string::TH_c_string
+ NS_cweb_or_c_k::TH_cweb_or_c_k
+ NS_o2_code_end::TH_o2_code_end
+end-list-of-used-threads
+fsm-comments
+"\\O2's syntax directed code extractor."
diff --git a/web/yacco2/compiler/grammars/o2_sdc.h b/web/yacco2/compiler/grammars/o2_sdc.h
new file mode 100644
index 0000000000..599feca48e
--- /dev/null
+++ b/web/yacco2/compiler/grammars/o2_sdc.h
@@ -0,0 +1,100 @@
+/*
+ File: o2_sdc.h
+ Date and Time: Fri Jan 30 18:55:17 2015
+*/
+#ifndef __o2_sdc_h__
+#define __o2_sdc_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "cweb_or_c_k.h"
+#include "c_string.h"
+#include "c_literal.h"
+#include "o2_code_end.h"
+extern char PRT_SW;
+
+extern yacco2::Thread_entry ITH_o2_sdc;
+
+extern yacco2::State S1_Co2_sdc;
+namespace NS_o2_sdc {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_o2_sdc(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_o2_sdc(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[3];
+};
+class Co2_sdc: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Ryacco2_syntax_code_ = 569//start_of_rule_list + 0
+ ,rhs1_Ryacco2_syntax_code_ = 1
+ ,R_Rchrs_ = 570//start_of_rule_list + 2
+ ,rhs1_Rchrs_ = 2
+ ,rhs2_Rchrs_ = 3
+ ,R_Rchr_ = 571//start_of_rule_list + 4
+ ,rhs1_Rchr_ = 4
+ ,rhs2_Rchr_ = 5
+ ,rhs3_Rchr_ = 6
+ ,rhs4_Rchr_ = 7
+ ,rhs5_Rchr_ = 8
+ ,rhs6_Rchr_ = 9
+ ,rhs7_Rchr_ = 10
+ };
+ //no of la sets = 2
+ //no of states = 12
+ Co2_sdc();
+ ~Co2_sdc();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[11];
+
+ public:
+ char ddd_[1024*32];
+ int ddd_idx_;
+ void copy_str_into_buffer(std::string* Str);
+ void copy_kstr_into_buffer(const char* Str);
+
+ };
+struct Ryacco2_syntax_code;
+struct Rchrs;
+struct Rchr;
+struct Ryacco2_syntax_code:public yacco2::CAbs_lr1_sym {
+ Ryacco2_syntax_code(yacco2::Parser* P);
+ void op();
+ public:
+};
+
+struct Rchrs:public yacco2::CAbs_lr1_sym {
+ Rchrs(yacco2::Parser* P);
+ public:
+};
+
+struct Rchr:public yacco2::CAbs_lr1_sym {
+ Rchr(yacco2::Parser* P);
+ void op();
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+ void sr5();
+ void sr6();
+ void sr7();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/o2_sdc.lex b/web/yacco2/compiler/grammars/o2_sdc.lex
new file mode 100644
index 0000000000..aa19daefb9
--- /dev/null
+++ b/web/yacco2/compiler/grammars/o2_sdc.lex
@@ -0,0 +1,257 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: o2_sdc.lex
+dates: 3 Jan.2003
+Purpose: Extract yacco2's syntax directed code
+conduit: syntax_code
+errors: Err_no_end_of_code
+ Err_comment_overrun
+ Err_bad_eos
+ Err_bad_esc
+ Err_no_syntax_code_present
+
+Note: A simple test is done as to whether there is any real
+ syntax directed code is inputted:
+ only strings, literals, or chrs (not {eol, ws}) are
+ considered code.
+
+ Due to the overhead of strings and their copy facility,
+ I've changed to the raw string copy with a fixed buffer size.
+ The saftey and flexibility had too much cost to run:
+ approximately 10 seconds of overhead on approximately 100k
+ of text. Looking at the way the string was grown out when
+ characters were appended to it demanded that I use this approach.
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |o2_sdc| Thread.\fbreak
+A single crawler of characters scooping up a grammar directive's
+syntax directed code.
+Added to it is ``cweb'' comment support.
+This allows the grammar document to support better
+code formatting particularly when
+the ``syntax directed code'' is big.
+The caveat is the emitted cpp code when
+``-p'' option is on contains
+the ``cweave'' formatting directives and bypassed when not to
+generate the grammar document.
+So be warned.
+Generate the cpp code without the ``-p'' option
+to avoid the c++ errors.
+@/
+fsm
+(fsm-id "o2_sdc.lex",fsm-filename o2_sdc,fsm-namespace NS_o2_sdc
+,fsm-class Co2_sdc{
+ user-prefix-declaration
+#include "cweb_or_c_k.h"
+#include "c_string.h"
+#include "c_literal.h"
+#include "o2_code_end.h"
+extern char PRT_SW;
+ ***
+ user-declaration
+ public:
+ char ddd_[1024*32];
+ int ddd_idx_;
+ void copy_str_into_buffer(std::string* Str);
+ void copy_kstr_into_buffer(const char* Str);
+ ***
+ user-implementation
+ void Co2_sdc::copy_str_into_buffer(std::string* Str){
+ const char* y = Str->c_str();
+ int x(0);
+ for(;y[x]!=0;++x,++ddd_idx_)ddd_[ddd_idx_] = y[x];
+ ddd_[ddd_idx_] = 0;
+ }
+/@
+@*3 |copy_kstr_into_buffer|.
+@/
+ void Co2_sdc::copy_kstr_into_buffer(const char* Str){
+ const char* y = Str;
+ int x(0);
+ for(;y[x]!=0;++x,++ddd_idx_)ddd_[ddd_idx_] = y[x];
+ ddd_[ddd_idx_] = 0;
+ }
+ ***
+ constructor
+ ddd_idx_ = 0;
+ ddd_[ddd_idx_] = 0;
+ ***
+ op
+ ddd_idx_ = 0;
+ ddd_[ddd_idx_] = 0;
+ parser__->set_use_all_shift_on();
+ CAbs_lr1_sym* sym = parser__->start_token__;
+ switch (sym->enumerated_id__){
+
+ case T_Enum::T_LR1_eog_: break;
+ default: return;
+ }
+ parser__->set_use_all_shift_off();
+ ***
+ }
+,fsm-version "1.0",fsm-date "30 dec 2002",fsm-debug "false"
+,fsm-comments "\\O2's syntax directed code extractor.")
+parallel-parser
+(
+ parallel-thread-function
+ TH_o2_sdc
+ ***
+ parallel-la-boundary
+ eolr - |+| - |||
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Ryacco2_syntax_code (
+lhs{
+ op
+ Co2_sdc* fsm = (Co2_sdc*)rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* sym(0);
+ if(fsm->ddd_idx_ == 0){
+ sym = new Err_no_syntax_code_present;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ sym = new T_syntax_code((const char*)&fsm->ddd_);
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ ***
+ }
+){
+ -> Rchrs
+}
+
+Rchrs (){
+ -> Rchr
+ -> Rchrs Rchr
+}
+
+Rchr (
+lhs {
+ op
+ if(rule_info__.parser__->stop_parse__ == true) return;
+ CAbs_lr1_sym* la_sym = rule_info__.parser__->current_token();
+ using namespace NS_yacco2_T_enum;
+ using namespace NS_yacco2_terminals;
+ // watch for overrun
+ if(la_sym->enumerated_id__ == T_Enum::T_LR1_eog_){
+ CAbs_lr1_sym* sym = new Err_no_end_of_code;
+ sym->set_rc(*la_sym,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ }
+ ***
+}
+){
+
+ -> ||| "comment" NS_cweb_or_c_k::TH_cweb_or_c_k {
+ op
+ Co2_sdc* fsm = (Co2_sdc*)rule_info__.parser__->fsm_tbl__;
+ T_comment* k = sf->p2__;
+ k->set_auto_delete(true);// delete it when it pops from stack
+ fsm->copy_str_into_buffer(k->comment_data());
+ ***
+ }
+ -> ||| "cweb-comment" NULL {
+ op
+ Co2_sdc* fsm = (Co2_sdc*)rule_info__.parser__->fsm_tbl__;
+ T_cweb_comment* k = sf->p2__;
+ k->set_auto_delete(true);// delete it when it pops from stack
+ if(PRT_SW == 'n') return;// bypass the cweve comments in the cpp code
+ fsm->copy_str_into_buffer(k->comment_data());
+ string fmt("@<More code@>+=\n");
+ fsm->copy_str_into_buffer(&fmt);
+ ***
+ }
+ -> ||| "c-string" NS_c_string::TH_c_string{
+ op
+ Co2_sdc* fsm = (Co2_sdc*)rule_info__.parser__->fsm_tbl__;
+ T_c_string* k = sf->p2__;
+ k->set_auto_delete(true);// delete it when it pops from stack
+ // add back the bounding double quotes
+ fsm->ddd_[fsm->ddd_idx_] = '"';
+ ++fsm->ddd_idx_;
+ fsm->copy_str_into_buffer(k->c_string());
+ fsm->ddd_[fsm->ddd_idx_] = '"';
+ ++fsm->ddd_idx_;
+ fsm->ddd_[fsm->ddd_idx_] = 0;
+ ***
+ }
+ -> ||| "c-literal" NS_c_literal::TH_c_literal{
+ op
+ Co2_sdc* fsm = (Co2_sdc*)rule_info__.parser__->fsm_tbl__;
+ T_c_literal* k = sf->p2__;
+ k->set_auto_delete(true);
+ // add back the bounding single quotes
+ fsm->ddd_[fsm->ddd_idx_] = '\'';
+ ++fsm->ddd_idx_;
+ fsm->copy_str_into_buffer(k->c_literal());
+ fsm->ddd_[fsm->ddd_idx_] = '\'';
+ ++fsm->ddd_idx_;
+ fsm->ddd_[fsm->ddd_idx_] = 0;
+ ***
+ }
+ -> ||| "#***" NS_o2_code_end::TH_o2_code_end{
+ op
+ sf->p2__->set_auto_delete(true);
+ rule_info__.parser__->set_use_all_shift_off();
+ ***
+ }
+ -> |+| {
+
+ /@
+ Add balance of characters to sdcode string: ex. comma.
+ Special escape sequences are put back to their original declaration.
+ @/
+
+ op
+ Co2_sdc* fsm = (Co2_sdc*)rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* k = sf->p1__;
+ switch (k->enumerated_id__){
+ case T_Enum::T_LR1_eog_:{
+ rule_info__.parser__->set_use_all_shift_off();
+ break;
+ }
+ case T_Enum::T_T_eol_:{
+ fsm->copy_kstr_into_buffer("\n");
+ break;
+ }
+ case T_Enum::T_raw_sp_:{
+ fsm->copy_kstr_into_buffer(" ");
+ break;
+ }
+ case T_Enum::T_raw_ff_:{
+ fsm->copy_kstr_into_buffer("\f");
+ break;
+ }
+ case T_Enum::T_raw_vt_:{
+ fsm->copy_kstr_into_buffer("\v");
+ break;
+ }
+ case T_Enum::T_raw_ht_:{
+ fsm->copy_kstr_into_buffer("\t");
+ break;
+ }
+ default:{
+ fsm->ddd_[fsm->ddd_idx_] = k->id__[0];
+ ++fsm->ddd_idx_;
+ fsm->ddd_[fsm->ddd_idx_] = 0;
+ }
+ }
+ ***
+ }
+ -> ||| |?| NULL {// errors
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/o2_sdcsym.cpp b/web/yacco2/compiler/grammars/o2_sdcsym.cpp
new file mode 100644
index 0000000000..04fdb11176
--- /dev/null
+++ b/web/yacco2/compiler/grammars/o2_sdcsym.cpp
@@ -0,0 +1,203 @@
+/*
+ File: o2_sdcsym.cpp
+ Date and Time: Fri Jan 30 18:55:17 2015
+*/
+#include "o2_sdc.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_o2_sdc;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_o2_sdc::TH_o2_sdc(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_o2_sdc;
+ NS_o2_sdc::Co2_sdc Co2_sdc_;// parallel-parser's parse table
+#define ssPARSE_TABLE Co2_sdc_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_o2_sdc::PROC_TH_o2_sdc(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_o2_sdc";
+ static bool one_time(false);
+ static NS_o2_sdc::Co2_sdc* NS_o2_sdc_Co2_sdc_(0);// parallel-parser's fsm table
+ static Parser* NS_o2_sdc_Co2_sdc_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_o2_sdc_Co2_sdc_ = new NS_o2_sdc::Co2_sdc();// parallel-parser's fsm table
+ NS_o2_sdc_Co2_sdc_parser = new Parser(*NS_o2_sdc_Co2_sdc_,Caller_pp);
+ }
+ proc_parser = NS_o2_sdc_Co2_sdc_parser;
+#include "wproc_pp_core.h"
+}
+void
+Co2_sdc::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Ryacco2_syntax_code_:{
+ Ryacco2_syntax_code* sym;
+ if(re->rule_ == 0){
+ sym = new Ryacco2_syntax_code(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ryacco2_syntax_code*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs1_Rchrs_:{
+ Rchrs* sym;
+ if(re->rule_ == 0){
+ sym = new Rchrs(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rchrs*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rchrs_:{
+ Rchrs* sym;
+ if(re->rule_ == 0){
+ sym = new Rchrs(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rchrs*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rchr_:{
+ Rchr* sym;
+ if(re->rule_ == 0){
+ sym = new Rchr(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rchr*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ sym->op();
+ return;}
+ case rhs2_Rchr_:{
+ Rchr* sym;
+ if(re->rule_ == 0){
+ sym = new Rchr(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rchr*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ sym->op();
+ return;}
+ case rhs3_Rchr_:{
+ Rchr* sym;
+ if(re->rule_ == 0){
+ sym = new Rchr(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rchr*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ sym->op();
+ return;}
+ case rhs4_Rchr_:{
+ Rchr* sym;
+ if(re->rule_ == 0){
+ sym = new Rchr(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rchr*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr4();
+ sym->op();
+ return;}
+ case rhs5_Rchr_:{
+ Rchr* sym;
+ if(re->rule_ == 0){
+ sym = new Rchr(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rchr*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr5();
+ sym->op();
+ return;}
+ case rhs6_Rchr_:{
+ Rchr* sym;
+ if(re->rule_ == 0){
+ sym = new Rchr(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rchr*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr6();
+ sym->op();
+ return;}
+ case rhs7_Rchr_:{
+ Rchr* sym;
+ if(re->rule_ == 0){
+ sym = new Rchr(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rchr*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr7();
+ sym->op();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/o2_sdctbl.cpp b/web/yacco2/compiler/grammars/o2_sdctbl.cpp
new file mode 100644
index 0000000000..b1eeba5e7d
--- /dev/null
+++ b/web/yacco2/compiler/grammars/o2_sdctbl.cpp
@@ -0,0 +1,1514 @@
+/*
+ File: o2_sdctbl.cpp
+ Date and Time: Fri Jan 30 18:55:17 2015
+*/
+#include "o2_sdc.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_o2_sdc;// grammar's ns
+// first set terminals
+// LR1_eog
+// LR1_reduce_operator
+// LR1_all_shift_operator
+// raw_nul
+// raw_soh
+// raw_stx
+// raw_etx
+// raw_eot
+// raw_enq
+// raw_ack
+// raw_bel
+// raw_bs
+// raw_ht
+// raw_dc1
+// raw_dc2
+// raw_dc3
+// raw_dc4
+// raw_nak
+// raw_syn
+// raw_etb
+// raw_can
+// raw_em
+// raw_sub
+// raw_esc
+// raw_fs
+// raw_gs
+// raw_rs
+// raw_us
+// raw_sp
+// raw_exclam
+// raw_dbl_quote
+// raw_no_sign
+// raw_dollar_sign
+// raw_percent
+// raw_ampersign
+// raw_right_quote
+// raw_open_bracket
+// raw_close_bracket
+// raw_asteric
+// raw_plus
+// raw_comma
+// raw_minus
+// raw_period
+// raw_slash
+// raw_0
+// raw_1
+// raw_2
+// raw_3
+// raw_4
+// raw_5
+// raw_6
+// raw_7
+// raw_8
+// T_sym_tbl_report_card
+// T_terminals_phrase
+// T_error_symbols_phrase
+// T_lr1_k_phrase
+// T_rc_phrase
+// T_rule_lhs_phrase
+// T_parallel_monitor_phrase
+// rule_def
+// raw_lf
+// raw_vt
+// raw_ff
+// raw_cr
+// raw_so
+// raw_si
+// raw_dle
+// raw_9
+// raw_colon
+// raw_semi_colon
+// raw_less_than
+// raw_eq
+// raw_gt_than
+// raw_question_mark
+// raw_at_sign
+// raw_A
+// raw_B
+// raw_C
+// raw_D
+// raw_E
+// raw_F
+// raw_G
+// raw_H
+// raw_I
+// raw_J
+// raw_K
+// raw_L
+// raw_M
+// raw_N
+// raw_O
+// raw_P
+// raw_Q
+// raw_R
+// raw_S
+// raw_T
+// raw_U
+// raw_V
+// raw_W
+// raw_X
+// raw_Y
+// raw_Z
+// raw_open_sq_bracket
+// raw_back_slash
+// raw_close_sq_bracket
+// raw_up_arrow
+// raw_under_score
+// raw_left_quote
+// raw_a
+// raw_b
+// raw_c
+// raw_d
+// raw_e
+// raw_f
+// raw_g
+// raw_x97
+// raw_x98
+// raw_x99
+// raw_x9a
+// raw_x9b
+// raw_x9c
+// raw_x9d
+// raw_x9e
+// raw_x9f
+// raw_xa0
+// raw_xa1
+// raw_xa2
+// raw_xa3
+// raw_xa4
+// raw_xa5
+// raw_xa6
+// raw_xa7
+// raw_xa8
+// raw_xa9
+// raw_xaa
+// raw_xab
+// raw_xac
+// raw_xad
+// raw_xae
+// raw_xaf
+// raw_xb0
+// raw_xb1
+// raw_xb2
+// raw_xb3
+// raw_xb4
+// raw_xb5
+// raw_xb6
+// raw_xb7
+// raw_xb8
+// raw_xb9
+// raw_xba
+// raw_xbb
+// raw_xbc
+// raw_xbd
+// raw_xbe
+// raw_xbf
+// raw_xc0
+// raw_xc1
+// raw_xc2
+// raw_xc3
+// raw_xc4
+// raw_xc5
+// raw_xc6
+// raw_xc7
+// raw_xc8
+// raw_xc9
+// raw_xca
+// raw_xcb
+// raw_xcc
+// raw_xcd
+// raw_xce
+// raw_xcf
+// raw_xd0
+// raw_xd1
+// raw_xd2
+// raw_xd3
+// raw_xd4
+// raw_xd5
+// raw_xd6
+// raw_xd7
+// raw_xd8
+// raw_xd9
+// raw_xda
+// raw_xdb
+// raw_xdc
+// raw_xdd
+// raw_xde
+// raw_xdf
+// raw_xe0
+// raw_xe1
+// raw_xe2
+// raw_xe3
+// raw_xe4
+// raw_xe5
+// raw_xe6
+// raw_xe7
+// raw_xe8
+// raw_xe9
+// raw_xea
+// raw_xeb
+// raw_xec
+// raw_xed
+// raw_xee
+// raw_xef
+// raw_xf0
+// raw_xf1
+// raw_xf2
+// raw_xf3
+// raw_xf4
+// raw_xf5
+// raw_xf6
+// raw_xf7
+// raw_xf8
+// raw_xf9
+// raw_xfa
+// raw_xfb
+// raw_xfc
+// raw_xfd
+// raw_xfe
+// raw_xff
+// T_option_t
+// T_option_p
+// T_option_err
+// T_esc_seq
+// T_eol
+// T_basic_char
+// T_raw_char
+// T_comment
+// T_ws
+// T_angled_string
+// T_c_literal
+// T_c_string
+// T_xc_str
+// T_unquoted_string
+// T_file_inclusion
+// T_identifier
+// T_int_no
+// T_raw_characters
+// T_lr1_constant_symbols
+// T_error_symbols
+// T_eocode
+// T_AD
+// T_AB
+// T_parallel_la_boundary
+// T_arbitrator_code
+// T_parallel_parser
+// T_parallel_thread_function
+// T_parallel_control_monitor
+// T_fsm
+// T_fsm_id
+// T_fsm_filename
+// T_fsm_namespace
+// T_fsm_class
+// T_fsm_version
+// T_fsm_date
+// T_fsm_debug
+// T_fsm_comments
+// T_terminals
+// T_enumeration
+// T_file_name
+// T_name_space
+// T_sym_class
+// T_rules
+// T_lhs
+// T_user_declaration
+// T_user_prefix_declaration
+// T_user_suffix_declaration
+// T_constructor
+// T_destructor
+// T_op
+// T_failed
+// T_user_implementation
+// T_user_imp_tbl
+// T_user_imp_sym
+// T_constant_defs
+// T_terminals_refs
+// T_terminals_sufx
+// T_lrk_sufx
+// T_selector
+// T_NULL
+// T_2colon
+// T_block
+// T_syntax_code
+// T_fsm_class_phrase
+// T_fsm_phrase
+// T_rules_phrase
+// T_subrule_def
+// T_subrules_phrase
+// T_in_stbl
+// refered_T
+// rule_in_stbl
+// refered_rule
+// T_transitive
+// T_grammar_name
+// T_thread_name
+// T_monolithic
+// T_no_of_T
+// T_list_of_native_first_set_terminals
+// T_end_list_of_native_first_set_terminals
+// T_list_of_transitive_threads
+// T_end_list_of_transitive_threads
+// T_emitfile
+// T_preamble
+// T_end_preamble
+// T_T_alphabet
+// T_end_T_alphabet
+// T_file_of_T_alphabet
+// T_attributes
+// tth_in_stbl
+// thread_attributes
+// th_in_stbl
+// kw_in_stbl
+// T_la_expr_src
+// T_eosubrule
+// T_called_thread_eosubrule
+// T_null_call_thread_eosubrule
+// T_cweb_comment
+// T_grammar_phrase
+// T_cweb_marker
+// T_lint
+// T_list_of_used_threads
+// T_end_list_of_used_threads
+// Err_nested_files_exceeded
+// Err_no_end_of_code
+// Err_no_cmd_lne_data
+// Err_no_filename
+// Err_bad_filename
+// Err_bad_fsmheader_filename
+// Err_bad_fsmcpp_filename
+// Err_bad_fsmsym_filename
+// Err_bad_fsmtbl_filename
+// Err_bad_enum_filename
+// Err_bad_errors_hdrfilename
+// Err_bad_errors_impfilename
+// Err_bad_cmd_lne_opt
+// Err_bad_int_no
+// Err_bad_int_no_range
+// Err_no_int_present
+// Err_bad_eos
+// Err_bad_esc
+// Err_comment_overrun
+// Err_bad_char
+// Err_bad_univ_seq
+// Err_improper_closing_of_rules
+// Err_no_identifier_present
+// Err_no_directive_present
+// Err_duplicate_directive
+// Err_no_syntax_code_present
+// Err_no_open_parenthesis
+// Err_no_close_parenthesis
+// Err_no_fsm_id_present
+// Err_no_fsm_id_string
+// Err_no_fsm_filename_present
+// Err_no_fsm_filename_id_present
+// Err_no_comma_present
+// Err_no_terminal_key_present
+// Err_no_fsm_namespace_present
+// Err_no_fsm_namespace_id_present
+// Err_no_fsm_class_present
+// Err_no_fsm_version_present
+// Err_no_fsm_version_string
+// Err_no_fsm_date_present
+// Err_no_fsm_date_string
+// Err_no_fsm_debug_present
+// Err_no_fsm_debug_string
+// Err_no_fsm_comments_present
+// Err_no_fsm_comments_string
+// Err_fsm_debug_string_not_true_or_false
+// Err_no_pp_thread_function_present
+// Err_no_pp_ctrl_mntor_kw_present
+// Err_no_pp_fnct_id_present
+// Err_no_pp_bndry_present
+// Err_no_pp_la_bndary_expr_present
+// Err_no_syntax_code_end_present
+// Err_no_pp_code_present
+// Err_no_pp_code_stc_present
+// Err_not_arbitration_code_kw
+// Err_no_open_brace
+// Err_no_close_brace
+// Err_no_constant_defs_present
+// Err_no_filename_present
+// Err_no_filename_id_present
+// Err_no_namespace_present
+// Err_no_namespace_id_present
+// Err_no_kdefs_code_present
+// Err_no_kdefs_kw_present
+// Err_no_tdef_code_present
+// Err_no_sym_defs_present
+// Err_dup_entry_in_alphabet
+// Err_already_defined_AB
+// Err_already_defined_AD
+// Err_improper_directive
+// Err_no_sym_class_present
+// Err_no_sym_class_id_present
+// Err_zero_len_sym
+// Err_sym_tbl_full
+// Err_sym_tbl_char_pool_full
+// Err_dup_entry_in_sym_table
+// Err_subscript_out_of_range
+// Err_sym_tbl_nested_scope_stk_overflow
+// Err_sym_tbl_nested_scope_stk_underflow
+// Err_sym_tbl_context_buf_overflow
+// Err_report_card_ptr_0
+// Err_cannot_define_term_after_sufx_dir
+// Err_dup_sufx_directive
+// Err_terminals_refs_def_after_terminals
+// Err_terminals_refs_dup_def
+// Err_no_rule_name_present
+// Err_no_sub_rule_present
+// Err_subrule_use_undefined_T
+// Err_stbl_entry_unknown
+// Err_subrule_overrun
+// Err_stble_has_entry_but_not_a_rule
+// Err_file_of_T_alphabet_kw_not_present
+// Err_emitfile_kw_not_present
+// Err_preamble_kw_not_present
+// Err_preamble_srce_code_not_present
+// Err_end_preamble_kw_not_present
+// Err_cmd_line_chaffe
+// Err_T_alphabet_kw_not_present
+// Err_T_alphabet_file_not_present
+// Err_end_T_alphabet_kw_not_present
+// Err_no_terminals_in_T_alphabet_list
+// Err_rotten_chr_in_T_alphabet
+// Err_transitive_kw_not_present
+// Err_grammar_name_kw_not_present
+// Err_namespace_kw_not_present
+// Err_filename_kw_not_present
+// Err_threadname_kw_not_present
+// Err_monolithic_kw_not_present
+// Err_no_of_T_kw_not_present
+// Err_list_of_terminals_kw_not_present
+// Err_no_list_of_trans_threads_kw
+// Err_no_terminals_present_in_T_alphabet
+// Err_transitive_value_bad
+// Err_monolithic_value_bad
+// Err_grammar_name_value_not_present
+// Err_namespace_value_not_present
+// Err_threadname_value_not_present
+// Err_filename_value_not_present
+// Err_no_of_T_value_not_present
+// Err_no_of_terminals_not_present
+// Err_end_list_native_T_kw_not_present
+// Err_end_list_of_transitive_threads_kw_not_present
+// Err_no_of_native_Ts_in_list_not_equal
+// Err_no_of_threads_in_list_not_equal
+// Err_thread_refed_but_not_defined
+// Err_bad_T_in_list
+// Err_bad_th_in_list
+// Err_already_defined_in_fsc_file
+// Err_bad_thread_subscript
+// Err_not_a_keyword
+// Err_no_of_threads_not_present
+// Err_bad_T_alphabet
+// Err_fsc_file_does_not_exist
+// Err_filename_file_does_not_exist
+// Err_T_alphabet_file_does_not_exist
+// Err_emitfile_file_does_not_exist
+// Err_emitfile_file_not_present
+// Err_fsc_cntl_file_not_present
+// Err_file_of_T_alphabet_not_present
+// Err_epsilon_pass_thru
+// Err_epsilon_pass_thru_no_Ts
+// Err_rule_not_in_stbl
+// Err_T_not_in_stbl
+// Err_bad_directive
+// Err_bad_term_in_la_expr
+// Err_empty_set_removal_in_la_expr
+// Err_bad_operator_in_la_expr
+// Err_not_a_lhs_kw
+// Err_pp_la_boundary_attribute_not_fnd
+// Err_already_processed_fsm_phase
+// Err_already_processed_pp_phase
+// Err_already_processed_T_enum_phase
+// Err_already_processed_error_phase
+// Err_already_processed_rc_phase
+// Err_already_processed_lrk_phase
+// Err_already_processed_T_phase
+// Err_already_processed_rule_phase
+// Err_not_T_for_rtned_token_from_th
+// Err_not_id_for_ns_in_th_stmt
+// Err_not_id_for_th_name_in_th_stmt
+// Err_bad_th_qualifier
+// Err_not_dbl_colon_in_th_stmt
+// Err_not_T_or_R_in_subrule_expr
+// Err_not_T_or_R_or_eos_in_subrule_expr
+// Err_not_eos_in_subrule_expr
+// Err_invalid_logical_name
+// Err_invalid_logical_value
+// Err_duplicate_logical_name
+// Err_missing_terminals_refs_kw
+// Err_missing_terminals_sufx_kw
+// Err_not_a_terminal_definition
+// Err_missing_lrk_sufx_kw
+// ERR_sick_grammar
+// ERR_no_fsm_phrase
+// ERR_no_T_enum_phrase
+// ERR_no_lrk_phrase
+// ERR_no_rc_phrase
+// ERR_no_errors_phrase
+// ERR_no_terminals_phrase
+// ERR_no_rules_phrase
+// Err_used_rule_but_undefined
+// Err_rule_already_defined
+// Err_la_expr_calc_empty_set
+// Err_no_close_brace_ending_rules_defs
+// Err_use_of_T_outside_Rules_construct
+// Err_not_kw_defining_grammar_construct
+// Err_use_of_N_outside_Rules_construct
+// Err_misplaced_or_misspelt_Rule_or_T
+// Err_not_a_Rule
+// Err_empty_file
+// Err_not_lhs_pcnrl_mntr
+// raw_h
+// raw_i
+// raw_j
+// raw_k
+// raw_l
+// raw_m
+// raw_n
+// raw_o
+// raw_p
+// raw_q
+// raw_r
+// raw_s
+// raw_t
+// raw_u
+// raw_v
+// raw_w
+// raw_x
+// raw_y
+// raw_z
+// raw_open_brace
+// raw_vertical_line
+// raw_close_brace
+// raw_tilde
+// raw_del
+// raw_x80
+// raw_x81
+// raw_x82
+// raw_x83
+// raw_x84
+// raw_x85
+// raw_x86
+// raw_x87
+// raw_x88
+// raw_x89
+// raw_x8a
+// raw_x8b
+// raw_x8c
+// raw_x8d
+// raw_x8e
+// raw_x8f
+// raw_x90
+// raw_x91
+// raw_x92
+// raw_x93
+// raw_x94
+// raw_x95
+// raw_x96
+// T_parallel_parser_phrase
+// T_enum_phrase
+// T_terminal_def
+// table_entry
+yacco2::UCHAR LA1_Co2_sdc[] ={
+72
+,0,82
+,1,255
+,2,255
+,3,255
+,4,255
+,5,255
+,6,255
+,7,255
+,8,255
+,9,255
+,10,255
+,11,255
+,12,255
+,13,255
+,14,255
+,15,255
+,16,255
+,17,255
+,18,255
+,19,255
+,20,255
+,21,255
+,22,255
+,23,255
+,24,255
+,25,255
+,26,255
+,27,255
+,28,255
+,29,255
+,30,255
+,31,255
+,32,255
+,33,255
+,34,255
+,35,255
+,36,255
+,37,255
+,38,255
+,39,255
+,40,255
+,41,255
+,42,255
+,43,255
+,44,255
+,45,255
+,46,255
+,47,255
+,48,255
+,49,255
+,50,255
+,51,255
+,52,255
+,53,255
+,54,255
+,55,255
+,56,255
+,57,255
+,58,255
+,59,255
+,60,255
+,61,255
+,62,255
+,63,255
+,64,255
+,65,255
+,66,255
+,67,255
+,68,255
+,69,255
+,70,255
+,71,1
+};
+// LR1_eog
+// raw_nul
+// raw_soh
+// raw_stx
+// raw_etx
+// raw_eot
+// raw_enq
+// raw_ack
+// raw_bel
+// raw_bs
+// raw_ht
+// raw_dc1
+// raw_dc2
+// raw_dc3
+// raw_dc4
+// raw_nak
+// raw_syn
+// raw_etb
+// raw_can
+// raw_em
+// raw_sub
+// raw_esc
+// raw_fs
+// raw_gs
+// raw_rs
+// raw_us
+// raw_sp
+// raw_exclam
+// raw_dbl_quote
+// raw_no_sign
+// raw_dollar_sign
+// raw_percent
+// raw_ampersign
+// raw_right_quote
+// raw_open_bracket
+// raw_close_bracket
+// raw_asteric
+// raw_plus
+// raw_comma
+// raw_minus
+// raw_period
+// raw_slash
+// raw_0
+// raw_1
+// raw_2
+// raw_3
+// raw_4
+// raw_5
+// raw_6
+// raw_7
+// raw_8
+// T_sym_tbl_report_card
+// T_terminals_phrase
+// T_error_symbols_phrase
+// T_lr1_k_phrase
+// T_rc_phrase
+// T_rule_lhs_phrase
+// T_parallel_monitor_phrase
+// rule_def
+// raw_lf
+// raw_vt
+// raw_ff
+// raw_cr
+// raw_so
+// raw_si
+// raw_dle
+// raw_9
+// raw_colon
+// raw_semi_colon
+// raw_less_than
+// raw_eq
+// raw_gt_than
+// raw_question_mark
+// raw_at_sign
+// raw_A
+// raw_B
+// raw_C
+// raw_D
+// raw_E
+// raw_F
+// raw_G
+// raw_H
+// raw_I
+// raw_J
+// raw_K
+// raw_L
+// raw_M
+// raw_N
+// raw_O
+// raw_P
+// raw_Q
+// raw_R
+// raw_S
+// raw_T
+// raw_U
+// raw_V
+// raw_W
+// raw_X
+// raw_Y
+// raw_Z
+// raw_open_sq_bracket
+// raw_back_slash
+// raw_close_sq_bracket
+// raw_up_arrow
+// raw_under_score
+// raw_left_quote
+// raw_a
+// raw_b
+// raw_c
+// raw_d
+// raw_e
+// raw_f
+// raw_g
+// raw_x97
+// raw_x98
+// raw_x99
+// raw_x9a
+// raw_x9b
+// raw_x9c
+// raw_x9d
+// raw_x9e
+// raw_x9f
+// raw_xa0
+// raw_xa1
+// raw_xa2
+// raw_xa3
+// raw_xa4
+// raw_xa5
+// raw_xa6
+// raw_xa7
+// raw_xa8
+// raw_xa9
+// raw_xaa
+// raw_xab
+// raw_xac
+// raw_xad
+// raw_xae
+// raw_xaf
+// raw_xb0
+// raw_xb1
+// raw_xb2
+// raw_xb3
+// raw_xb4
+// raw_xb5
+// raw_xb6
+// raw_xb7
+// raw_xb8
+// raw_xb9
+// raw_xba
+// raw_xbb
+// raw_xbc
+// raw_xbd
+// raw_xbe
+// raw_xbf
+// raw_xc0
+// raw_xc1
+// raw_xc2
+// raw_xc3
+// raw_xc4
+// raw_xc5
+// raw_xc6
+// raw_xc7
+// raw_xc8
+// raw_xc9
+// raw_xca
+// raw_xcb
+// raw_xcc
+// raw_xcd
+// raw_xce
+// raw_xcf
+// raw_xd0
+// raw_xd1
+// raw_xd2
+// raw_xd3
+// raw_xd4
+// raw_xd5
+// raw_xd6
+// raw_xd7
+// raw_xd8
+// raw_xd9
+// raw_xda
+// raw_xdb
+// raw_xdc
+// raw_xdd
+// raw_xde
+// raw_xdf
+// raw_xe0
+// raw_xe1
+// raw_xe2
+// raw_xe3
+// raw_xe4
+// raw_xe5
+// raw_xe6
+// raw_xe7
+// raw_xe8
+// raw_xe9
+// raw_xea
+// raw_xeb
+// raw_xec
+// raw_xed
+// raw_xee
+// raw_xef
+// raw_xf0
+// raw_xf1
+// raw_xf2
+// raw_xf3
+// raw_xf4
+// raw_xf5
+// raw_xf6
+// raw_xf7
+// raw_xf8
+// raw_xf9
+// raw_xfa
+// raw_xfb
+// raw_xfc
+// raw_xfd
+// raw_xfe
+// raw_xff
+// T_option_t
+// T_option_p
+// T_option_err
+// T_esc_seq
+// T_eol
+// T_basic_char
+// T_raw_char
+// T_comment
+// T_ws
+// T_angled_string
+// T_c_literal
+// T_c_string
+// T_xc_str
+// T_unquoted_string
+// T_file_inclusion
+// T_identifier
+// T_int_no
+// T_raw_characters
+// T_lr1_constant_symbols
+// T_error_symbols
+// T_eocode
+// T_AD
+// T_AB
+// T_parallel_la_boundary
+// T_arbitrator_code
+// T_parallel_parser
+// T_parallel_thread_function
+// T_parallel_control_monitor
+// T_fsm
+// T_fsm_id
+// T_fsm_filename
+// T_fsm_namespace
+// T_fsm_class
+// T_fsm_version
+// T_fsm_date
+// T_fsm_debug
+// T_fsm_comments
+// T_terminals
+// T_enumeration
+// T_file_name
+// T_name_space
+// T_sym_class
+// T_rules
+// T_lhs
+// T_user_declaration
+// T_user_prefix_declaration
+// T_user_suffix_declaration
+// T_constructor
+// T_destructor
+// T_op
+// T_failed
+// T_user_implementation
+// T_user_imp_tbl
+// T_user_imp_sym
+// T_constant_defs
+// T_terminals_refs
+// T_terminals_sufx
+// T_lrk_sufx
+// T_selector
+// T_NULL
+// T_2colon
+// T_block
+// T_syntax_code
+// T_fsm_class_phrase
+// T_fsm_phrase
+// T_rules_phrase
+// T_subrule_def
+// T_subrules_phrase
+// T_in_stbl
+// refered_T
+// rule_in_stbl
+// refered_rule
+// T_transitive
+// T_grammar_name
+// T_thread_name
+// T_monolithic
+// T_no_of_T
+// T_list_of_native_first_set_terminals
+// T_end_list_of_native_first_set_terminals
+// T_list_of_transitive_threads
+// T_end_list_of_transitive_threads
+// T_emitfile
+// T_preamble
+// T_end_preamble
+// T_T_alphabet
+// T_end_T_alphabet
+// T_file_of_T_alphabet
+// T_attributes
+// tth_in_stbl
+// thread_attributes
+// th_in_stbl
+// kw_in_stbl
+// T_la_expr_src
+// T_eosubrule
+// T_called_thread_eosubrule
+// T_null_call_thread_eosubrule
+// T_cweb_comment
+// T_grammar_phrase
+// T_cweb_marker
+// T_lint
+// T_list_of_used_threads
+// T_end_list_of_used_threads
+// Err_nested_files_exceeded
+// Err_no_end_of_code
+// Err_no_cmd_lne_data
+// Err_no_filename
+// Err_bad_filename
+// Err_bad_fsmheader_filename
+// Err_bad_fsmcpp_filename
+// Err_bad_fsmsym_filename
+// Err_bad_fsmtbl_filename
+// Err_bad_enum_filename
+// Err_bad_errors_hdrfilename
+// Err_bad_errors_impfilename
+// Err_bad_cmd_lne_opt
+// Err_bad_int_no
+// Err_bad_int_no_range
+// Err_no_int_present
+// Err_bad_eos
+// Err_bad_esc
+// Err_comment_overrun
+// Err_bad_char
+// Err_bad_univ_seq
+// Err_improper_closing_of_rules
+// Err_no_identifier_present
+// Err_no_directive_present
+// Err_duplicate_directive
+// Err_no_syntax_code_present
+// Err_no_open_parenthesis
+// Err_no_close_parenthesis
+// Err_no_fsm_id_present
+// Err_no_fsm_id_string
+// Err_no_fsm_filename_present
+// Err_no_fsm_filename_id_present
+// Err_no_comma_present
+// Err_no_terminal_key_present
+// Err_no_fsm_namespace_present
+// Err_no_fsm_namespace_id_present
+// Err_no_fsm_class_present
+// Err_no_fsm_version_present
+// Err_no_fsm_version_string
+// Err_no_fsm_date_present
+// Err_no_fsm_date_string
+// Err_no_fsm_debug_present
+// Err_no_fsm_debug_string
+// Err_no_fsm_comments_present
+// Err_no_fsm_comments_string
+// Err_fsm_debug_string_not_true_or_false
+// Err_no_pp_thread_function_present
+// Err_no_pp_ctrl_mntor_kw_present
+// Err_no_pp_fnct_id_present
+// Err_no_pp_bndry_present
+// Err_no_pp_la_bndary_expr_present
+// Err_no_syntax_code_end_present
+// Err_no_pp_code_present
+// Err_no_pp_code_stc_present
+// Err_not_arbitration_code_kw
+// Err_no_open_brace
+// Err_no_close_brace
+// Err_no_constant_defs_present
+// Err_no_filename_present
+// Err_no_filename_id_present
+// Err_no_namespace_present
+// Err_no_namespace_id_present
+// Err_no_kdefs_code_present
+// Err_no_kdefs_kw_present
+// Err_no_tdef_code_present
+// Err_no_sym_defs_present
+// Err_dup_entry_in_alphabet
+// Err_already_defined_AB
+// Err_already_defined_AD
+// Err_improper_directive
+// Err_no_sym_class_present
+// Err_no_sym_class_id_present
+// Err_zero_len_sym
+// Err_sym_tbl_full
+// Err_sym_tbl_char_pool_full
+// Err_dup_entry_in_sym_table
+// Err_subscript_out_of_range
+// Err_sym_tbl_nested_scope_stk_overflow
+// Err_sym_tbl_nested_scope_stk_underflow
+// Err_sym_tbl_context_buf_overflow
+// Err_report_card_ptr_0
+// Err_cannot_define_term_after_sufx_dir
+// Err_dup_sufx_directive
+// Err_terminals_refs_def_after_terminals
+// Err_terminals_refs_dup_def
+// Err_no_rule_name_present
+// Err_no_sub_rule_present
+// Err_subrule_use_undefined_T
+// Err_stbl_entry_unknown
+// Err_subrule_overrun
+// Err_stble_has_entry_but_not_a_rule
+// Err_file_of_T_alphabet_kw_not_present
+// Err_emitfile_kw_not_present
+// Err_preamble_kw_not_present
+// Err_preamble_srce_code_not_present
+// Err_end_preamble_kw_not_present
+// Err_cmd_line_chaffe
+// Err_T_alphabet_kw_not_present
+// Err_T_alphabet_file_not_present
+// Err_end_T_alphabet_kw_not_present
+// Err_no_terminals_in_T_alphabet_list
+// Err_rotten_chr_in_T_alphabet
+// Err_transitive_kw_not_present
+// Err_grammar_name_kw_not_present
+// Err_namespace_kw_not_present
+// Err_filename_kw_not_present
+// Err_threadname_kw_not_present
+// Err_monolithic_kw_not_present
+// Err_no_of_T_kw_not_present
+// Err_list_of_terminals_kw_not_present
+// Err_no_list_of_trans_threads_kw
+// Err_no_terminals_present_in_T_alphabet
+// Err_transitive_value_bad
+// Err_monolithic_value_bad
+// Err_grammar_name_value_not_present
+// Err_namespace_value_not_present
+// Err_threadname_value_not_present
+// Err_filename_value_not_present
+// Err_no_of_T_value_not_present
+// Err_no_of_terminals_not_present
+// Err_end_list_native_T_kw_not_present
+// Err_end_list_of_transitive_threads_kw_not_present
+// Err_no_of_native_Ts_in_list_not_equal
+// Err_no_of_threads_in_list_not_equal
+// Err_thread_refed_but_not_defined
+// Err_bad_T_in_list
+// Err_bad_th_in_list
+// Err_already_defined_in_fsc_file
+// Err_bad_thread_subscript
+// Err_not_a_keyword
+// Err_no_of_threads_not_present
+// Err_bad_T_alphabet
+// Err_fsc_file_does_not_exist
+// Err_filename_file_does_not_exist
+// Err_T_alphabet_file_does_not_exist
+// Err_emitfile_file_does_not_exist
+// Err_emitfile_file_not_present
+// Err_fsc_cntl_file_not_present
+// Err_file_of_T_alphabet_not_present
+// Err_epsilon_pass_thru
+// Err_epsilon_pass_thru_no_Ts
+// Err_rule_not_in_stbl
+// Err_T_not_in_stbl
+// Err_bad_directive
+// Err_bad_term_in_la_expr
+// Err_empty_set_removal_in_la_expr
+// Err_bad_operator_in_la_expr
+// Err_not_a_lhs_kw
+// Err_pp_la_boundary_attribute_not_fnd
+// Err_already_processed_fsm_phase
+// Err_already_processed_pp_phase
+// Err_already_processed_T_enum_phase
+// Err_already_processed_error_phase
+// Err_already_processed_rc_phase
+// Err_already_processed_lrk_phase
+// Err_already_processed_T_phase
+// Err_already_processed_rule_phase
+// Err_not_T_for_rtned_token_from_th
+// Err_not_id_for_ns_in_th_stmt
+// Err_not_id_for_th_name_in_th_stmt
+// Err_bad_th_qualifier
+// Err_not_dbl_colon_in_th_stmt
+// Err_not_T_or_R_in_subrule_expr
+// Err_not_T_or_R_or_eos_in_subrule_expr
+// Err_not_eos_in_subrule_expr
+// Err_invalid_logical_name
+// Err_invalid_logical_value
+// Err_duplicate_logical_name
+// Err_missing_terminals_refs_kw
+// Err_missing_terminals_sufx_kw
+// Err_not_a_terminal_definition
+// Err_missing_lrk_sufx_kw
+// ERR_sick_grammar
+// ERR_no_fsm_phrase
+// ERR_no_T_enum_phrase
+// ERR_no_lrk_phrase
+// ERR_no_rc_phrase
+// ERR_no_errors_phrase
+// ERR_no_terminals_phrase
+// ERR_no_rules_phrase
+// Err_used_rule_but_undefined
+// Err_rule_already_defined
+// Err_la_expr_calc_empty_set
+// Err_no_close_brace_ending_rules_defs
+// Err_use_of_T_outside_Rules_construct
+// Err_not_kw_defining_grammar_construct
+// Err_use_of_N_outside_Rules_construct
+// Err_misplaced_or_misspelt_Rule_or_T
+// Err_not_a_Rule
+// Err_empty_file
+// Err_not_lhs_pcnrl_mntr
+// raw_h
+// raw_i
+// raw_j
+// raw_k
+// raw_l
+// raw_m
+// raw_n
+// raw_o
+// raw_p
+// raw_q
+// raw_r
+// raw_s
+// raw_t
+// raw_u
+// raw_v
+// raw_w
+// raw_x
+// raw_y
+// raw_z
+// raw_open_brace
+// raw_vertical_line
+// raw_close_brace
+// raw_tilde
+// raw_del
+// raw_x80
+// raw_x81
+// raw_x82
+// raw_x83
+// raw_x84
+// raw_x85
+// raw_x86
+// raw_x87
+// raw_x88
+// raw_x89
+// raw_x8a
+// raw_x8b
+// raw_x8c
+// raw_x8d
+// raw_x8e
+// raw_x8f
+// raw_x90
+// raw_x91
+// raw_x92
+// raw_x93
+// raw_x94
+// raw_x95
+// raw_x96
+// T_parallel_parser_phrase
+// T_enum_phrase
+// T_terminal_def
+// table_entry
+yacco2::UCHAR LA2_Co2_sdc[] ={
+72
+,0,2
+,1,255
+,2,255
+,3,255
+,4,255
+,5,255
+,6,255
+,7,255
+,8,255
+,9,255
+,10,255
+,11,255
+,12,255
+,13,255
+,14,255
+,15,255
+,16,255
+,17,255
+,18,255
+,19,255
+,20,255
+,21,255
+,22,255
+,23,255
+,24,255
+,25,255
+,26,255
+,27,255
+,28,255
+,29,255
+,30,255
+,31,255
+,32,255
+,33,255
+,34,255
+,35,255
+,36,255
+,37,255
+,38,255
+,39,255
+,40,255
+,41,255
+,42,255
+,43,255
+,44,255
+,45,255
+,46,255
+,47,255
+,48,255
+,49,255
+,50,255
+,51,255
+,52,255
+,53,255
+,54,255
+,55,255
+,56,255
+,57,255
+,58,255
+,59,255
+,60,255
+,61,255
+,62,255
+,63,255
+,64,255
+,65,255
+,66,255
+,67,255
+,68,255
+,69,255
+,70,255
+,71,1
+};
+extern yacco2::State S1_Co2_sdc;
+extern yacco2::State S2_Co2_sdc;
+struct S2ttd_Co2_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[4];
+};
+S2ttd_Co2_sdc S2tt_Co2_sdc = {
+ 4 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_cweb_or_c_k
+ ,(yacco2::Thread_entry*)&ITH_c_literal
+ ,(yacco2::Thread_entry*)&ITH_c_string
+ ,(yacco2::Thread_entry*)&ITH_o2_code_end
+};
+extern yacco2::State S3_Co2_sdc;
+extern yacco2::State S4_Co2_sdc;
+extern yacco2::State S5_Co2_sdc;
+extern yacco2::State S6_Co2_sdc;
+extern yacco2::State S7_Co2_sdc;
+extern yacco2::State S8_Co2_sdc;
+extern yacco2::State S9_Co2_sdc;
+extern yacco2::State S10_Co2_sdc;
+extern yacco2::State S11_Co2_sdc;
+extern yacco2::State S12_Co2_sdc;
+struct S1std_Co2_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S1std_Co2_sdc S1st_Co2_sdc = {
+ 5
+ ,
+ {// start of table
+ {3,(State*)&S2_Co2_sdc} // shift sym: LR1_parallel_operator
+ ,{6,(State*)&S9_Co2_sdc} // shift sym: LR1_all_shift_operator
+ ,{569,(State*)&S1_Co2_sdc} // accept sym: Ryacco2_syntax_code
+ ,{570,(State*)&S10_Co2_sdc} // shift sym: Rchrs
+ ,{571,(State*)&S12_Co2_sdc} // shift sym: Rchr
+ }// end of shift table
+};
+yacco2::Shift_entry S1pse_Co2_sdc = {3,(State*)&S2_Co2_sdc};
+yacco2::Shift_entry S1ase_Co2_sdc = {6,(State*)&S9_Co2_sdc};
+yacco2::State S1_Co2_sdc = //State's vectored into symbol: " No symbol"
+{1
+,(Shift_entry*)&S1pse_Co2_sdc,(Shift_entry*)&S1ase_Co2_sdc
+,0,0,(Shift_tbl*)&S1st_Co2_sdc,0,(State_s_thread_tbl*)&S2tt_Co2_sdc,0,0};
+struct S2std_Co2_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[6];
+};
+S2std_Co2_sdc S2st_Co2_sdc = {
+ 6
+ ,
+ {// start of table
+ {0,(State*)&S3_Co2_sdc} // shift sym: LR1_questionable_shift_operator
+ ,{271,(State*)&S4_Co2_sdc} // shift sym: T_comment
+ ,{274,(State*)&S5_Co2_sdc} // shift sym: T_c_literal
+ ,{275,(State*)&S6_Co2_sdc} // shift sym: T_c_string
+ ,{284,(State*)&S7_Co2_sdc} // shift sym: T_eocode
+ ,{372,(State*)&S8_Co2_sdc} // shift sym: T_cweb_comment
+ }// end of shift table
+};
+yacco2::Shift_entry S2qse_Co2_sdc = {0,(State*)&S3_Co2_sdc};
+yacco2::State S2_Co2_sdc = //State's vectored into symbol: "|||"
+{2
+,0,0,0,0,(Shift_tbl*)&S2st_Co2_sdc,0,0,0,(Shift_entry*)&S2qse_Co2_sdc
+};
+struct S3rtd_Co2_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Co2_sdc S3rt_Co2_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Co2_sdc,Co2_sdc::rhs7_Rchr_}
+ }// end of reduce table
+};
+yacco2::State S3_Co2_sdc = //State's vectored into symbol: "|?|"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_Co2_sdc,0,0,0};
+struct S4rtd_Co2_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Co2_sdc S4rt_Co2_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Co2_sdc,Co2_sdc::rhs1_Rchr_}
+ }// end of reduce table
+};
+yacco2::State S4_Co2_sdc = //State's vectored into symbol: "comment"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Co2_sdc,0,0,0};
+struct S5rtd_Co2_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Co2_sdc S5rt_Co2_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Co2_sdc,Co2_sdc::rhs4_Rchr_}
+ }// end of reduce table
+};
+yacco2::State S5_Co2_sdc = //State's vectored into symbol: "c-literal"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Co2_sdc,0,0,0};
+struct S6rtd_Co2_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Co2_sdc S6rt_Co2_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Co2_sdc,Co2_sdc::rhs3_Rchr_}
+ }// end of reduce table
+};
+yacco2::State S6_Co2_sdc = //State's vectored into symbol: "c-string"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Co2_sdc,0,0,0};
+struct S7rtd_Co2_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Co2_sdc S7rt_Co2_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Co2_sdc,Co2_sdc::rhs5_Rchr_}
+ }// end of reduce table
+};
+yacco2::State S7_Co2_sdc = //State's vectored into symbol: "#***"
+{7
+,0,0,0,0,0,(Reduce_tbl*)&S7rt_Co2_sdc,0,0,0};
+struct S8rtd_Co2_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S8rtd_Co2_sdc S8rt_Co2_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Co2_sdc,Co2_sdc::rhs2_Rchr_}
+ }// end of reduce table
+};
+yacco2::State S8_Co2_sdc = //State's vectored into symbol: "cweb-comment"
+{8
+,0,0,0,0,0,(Reduce_tbl*)&S8rt_Co2_sdc,0,0,0};
+struct S9rtd_Co2_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Co2_sdc S9rt_Co2_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Co2_sdc,Co2_sdc::rhs6_Rchr_}
+ }// end of reduce table
+};
+yacco2::State S9_Co2_sdc = //State's vectored into symbol: "|+|"
+{9
+,0,0,0,0,0,(Reduce_tbl*)&S9rt_Co2_sdc,0,0,0};
+struct S10std_Co2_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S10std_Co2_sdc S10st_Co2_sdc = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S2_Co2_sdc} // shift sym: LR1_parallel_operator
+ ,{6,(State*)&S9_Co2_sdc} // shift sym: LR1_all_shift_operator
+ ,{571,(State*)&S11_Co2_sdc} // shift sym: Rchr
+ }// end of shift table
+};
+yacco2::Shift_entry S10pse_Co2_sdc = {3,(State*)&S2_Co2_sdc};
+yacco2::Shift_entry S10ase_Co2_sdc = {6,(State*)&S9_Co2_sdc};
+struct S10rtd_Co2_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S10rtd_Co2_sdc S10rt_Co2_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Co2_sdc,Co2_sdc::rhs1_Ryacco2_syntax_code_}
+ }// end of reduce table
+};
+yacco2::State S10_Co2_sdc = //State's vectored into symbol: "Rchrs"
+{10
+,(Shift_entry*)&S10pse_Co2_sdc,(Shift_entry*)&S10ase_Co2_sdc
+,0,0,(Shift_tbl*)&S10st_Co2_sdc,(Reduce_tbl*)&S10rt_Co2_sdc,(State_s_thread_tbl*)&S2tt_Co2_sdc,0,0};
+struct S11rtd_Co2_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Co2_sdc S11rt_Co2_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Co2_sdc,Co2_sdc::rhs2_Rchrs_}
+ }// end of reduce table
+};
+yacco2::State S11_Co2_sdc = //State's vectored into symbol: "Rchr"
+{11
+,0,0,0,0,0,(Reduce_tbl*)&S11rt_Co2_sdc,0,0,0};
+struct S12rtd_Co2_sdc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S12rtd_Co2_sdc S12rt_Co2_sdc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Co2_sdc,Co2_sdc::rhs1_Rchrs_}
+ }// end of reduce table
+};
+yacco2::State S12_Co2_sdc = //State's vectored into symbol: "Rchr"
+{12
+,0,0,0,0,0,(Reduce_tbl*)&S12rt_Co2_sdc,0,0,0};
diff --git a/web/yacco2/compiler/grammars/o2grammars.sh b/web/yacco2/compiler/grammars/o2grammars.sh
new file mode 100755
index 0000000000..e21c94364d
--- /dev/null
+++ b/web/yacco2/compiler/grammars/o2grammars.sh
@@ -0,0 +1,115 @@
+#! /bin/sh
+#file: o2grammars.sh
+#compile all o2 grammars
+#o2=/mnt/c2d0s0/yacco2/bin/o2
+# no parms: just gen c++ code per grammar
+# parms: -t -err # to also gen Tes or Errors vocabulary
+# parms: -p # gen grammar's pdf and ps documents
+o2=/usr/local/yacco2/bin/o2
+###o2=/yacco2/bin/o2
+dir_only=`pwd` #"/usr/local/yacco2/compiler/grammars"
+tmp=/tmp/o2
+if [ ! -e "$tmp" ]
+then
+ mkdir $tmp
+fi
+cd $tmp
+
+delete_files=1 #clean up the work files in /tmp
+
+sw1=$1
+sw2=$2
+
+file_no=$((0))
+file_pos=$((1))
+cc_lex()
+{
+ file_name_only="`basename $2`"
+ #dir_only=`pwd` #"/usr/local/yacco2/compiler/grammars"
+ #echo "%%%%%%%%%%%%%%%%target directory $dir_only"
+ #echo "%%%%%%%%%%%%%%%%basename $file_name_only"
+ if ! eval "$o2 $sw1 $sw2 $1"
+ then
+ echo "===================> grammar in error: $1 switch(es): $sw1 $sw2";
+ return;
+ fi
+ for j in $sw1 $sw2
+ do
+ case $j in
+ *p)
+ eval "mpost $file_name_only.mp"
+ eval "cweave $file_name_only.w"
+ eval "pdftex $file_name_only.tex"
+ xref="$file_name_only""_idx"
+ #echo "%%%%%%%%%%%%%%%%% index file: $xref to cweave and pdftex"
+ eval "cweave $xref.w"
+ eval "pdftex $xref.tex"
+ ###pdftops "$file_name_only.pdf"
+ ###pdftops "$xref"".pdf"
+ eval "cp $xref\.pdf* $dir_only"; #copy gened docs to its gening folder
+ ###eval "cp $xref\.ps* $dir_only"; #copy gened docs to its gening folder
+ return
+ esac
+ done
+if test $delete_files -eq 1; then
+ for k in `ls * `;
+ do
+ #echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!Casing on $k"
+ case $k in
+ *.cpp|*.h)
+ eval "cp $k $dir_only/$k";
+ #echo "-----Copying--------> $k to $dir_only/$k"
+ eval "rm -f $k"
+ ;;
+ *.fsc)
+ eval "cp $k $dir_only/$k";
+ #echo "-------------> Deleting $k"
+ eval "rm -f $k" ;;
+ *.scn|*.idx|*.log|*.toc)
+ #echo "-------------> Deleting $k"
+ eval "rm -f $k"
+ ;;
+ Err.w|T.w) # error and terminal documents to be cweave then pdftex printed by xpdf
+ #echo "-------------> Deleting $k"
+ #eval "rm -f $k" eof
+ ;;
+ *.w)
+ #echo "-------------> Deleting $k"
+ #eval "rm -f $k"
+ ;;
+ *.tex)
+ #echo "-------------> Deleting $k"
+ eval "rm -f $k"
+ ;;
+ *.mp)
+ #echo "-------------> Deleting $k"
+ #eval "rm -f $k"
+ ;;
+ *.tex1)
+ #echo "-------------> Deleting $k"
+ eval "rm -f $k"
+ ;;
+ *.[1-9])
+ #echo "-------------> Deleting Mpost diagrams $k"
+ ##eval "rm -f $k"
+ ;;
+ *.[1-9][0-9]*)
+ #echo "-------------> Deleting Mpost diagrams $k"
+ ##eval "rm -f $k"
+ ;;
+ esac
+ done
+fi
+}
+
+for i in `find $dir_only | grep '.*\.lex$'`;
+do
+ echo "==========> Grammar to compile: $i with switch(es): $sw1 $sw2"
+ file_no=$((++file_no))
+ if test $((file_no)) -ge $((file_pos)); then
+ file_no_ext=${i%%.*}
+ cc_lex $i $file_no_ext
+ fi
+done
+cd $dir_only
+
diff --git a/web/yacco2/compiler/grammars/o2grammars_Edit_cweb b/web/yacco2/compiler/grammars/o2grammars_Edit_cweb
new file mode 100644
index 0000000000..cdb6fbf0d5
--- /dev/null
+++ b/web/yacco2/compiler/grammars/o2grammars_Edit_cweb
@@ -0,0 +1,7 @@
+# file: o2grammars_Edit_cweb
+# ip1: file name without extension
+# companion file to o2grammars.bat
+# add \input eplain before $1.tex so that grammar document will get gened
+echo '\input eplain' > $tmp/eplain
+cat $tmp/eplain $1.tex > $tmp/$1.tex
+cp $tmp/$1.tex $1.tex
diff --git a/web/yacco2/compiler/grammars/parallel_monitor_ph.cpp b/web/yacco2/compiler/grammars/parallel_monitor_ph.cpp
new file mode 100644
index 0000000000..a7e6d9d48e
--- /dev/null
+++ b/web/yacco2/compiler/grammars/parallel_monitor_ph.cpp
@@ -0,0 +1,389 @@
+/*
+ File: parallel_monitor_ph.cpp
+ Date and Time: Fri Jan 30 18:55:18 2015
+*/
+#include "parallel_monitor_ph.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_parallel_monitor_ph;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 8;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[4] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[5] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[6] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[7] = new Per_rule_s_reuse_table();
+}
+ Cparallel_monitor_ph::
+ Cparallel_monitor_ph()
+ :yacco2::CAbs_fsm
+ ("parallel_monitor_ph.lex"
+ ,"1.0"
+ ,"24 mar 2004"
+ ,false
+ ,"Parse a rule's arbitration code: \n into the valley of someone's dementia..."
+ ,"Fri Jan 30 18:55:18 2015 "
+ ,S1_Cparallel_monitor_ph){
+
+ parallel_monitor_phrase_ = 0;
+
+ }
+
+Cparallel_monitor_ph::~Cparallel_monitor_ph(){
+
+ for(int x = 0;x < 8;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cparallel_monitor_ph::failed(){
+ return false;
+ }
+ void Cparallel_monitor_ph::op(){
+ if(parallel_monitor_phrase_ != 0){
+ delete parallel_monitor_phrase_;
+ parallel_monitor_phrase_ = 0;
+ }
+ parallel_monitor_phrase_ = new T_parallel_monitor_phrase;
+ parallel_monitor_phrase_->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ AST* t = new AST(*parallel_monitor_phrase_);
+ parallel_monitor_phrase_->phrase_tree(t);
+
+}
+int Cparallel_monitor_ph::rhs_to_rules_mapping_[18] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,2 // subrule 4 for rule 3
+ ,2 // subrule 5 for rule 3
+ ,3 // subrule 6 for rule 4
+ ,4 // subrule 7 for rule 5
+ ,4 // subrule 8 for rule 5
+ ,4 // subrule 9 for rule 5
+ ,5 // subrule 10 for rule 6
+ ,5 // subrule 11 for rule 6
+ ,5 // subrule 12 for rule 6
+ ,6 // subrule 13 for rule 7
+ ,6 // subrule 14 for rule 7
+ ,7 // subrule 15 for rule 8
+ ,7 // subrule 16 for rule 8
+ ,7 // subrule 17 for rule 8
+};
+
+ void Cparallel_monitor_ph::
+ add_sdc_to_directive(yacco2::CAbs_lr1_sym* Dir,T_syntax_code* Sdc){
+ using namespace NS_yacco2_T_enum;
+ using namespace NS_yacco2_terminals;
+ yacco2::INT eid = Dir->enumerated_id__;
+ switch (eid){
+ case T_Enum::T_T_arbitrator_code_: {
+ T_arbitrator_code* k = (T_arbitrator_code*)Dir;
+ k->syntax_code(Sdc);
+ break;
+ }
+ default: {
+ CAbs_lr1_sym* sym = new Err_improper_directive;
+ sym->set_rc(*Dir,__FILE__,__LINE__);
+ RSVP_FSM(sym);
+ parser__->set_stop_parse(true);
+ }
+ }
+ }
+
+Rparallel_monitor_phrase::Rparallel_monitor_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rparallel_monitor_phrase",0,Cparallel_monitor_ph::R_Rparallel_monitor_phrase_,P,false,false){
+}
+
+void Rparallel_monitor_phrase::sr1(){
+
+ Cparallel_monitor_ph* fsm =
+ (Cparallel_monitor_ph*)rule_info__.parser__->fsm_tbl__;
+ RSVP(fsm->parallel_monitor_phrase_);
+ fsm->parallel_monitor_phrase_ = 0;
+
+}
+
+Ropen_brace::Ropen_brace(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Ropen_brace",0,Cparallel_monitor_ph::R_Ropen_brace_,P,false,false){
+}
+
+void Ropen_brace::sr1(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_no_open_brace;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rclose_brace::Rclose_brace(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rclose_brace",0,Cparallel_monitor_ph::R_Rclose_brace_,P,false,false){
+}
+
+void Rclose_brace::sr1(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_no_close_brace;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rdirective_phrase::Rdirective_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rdirective_phrase",0,Cparallel_monitor_ph::R_Rdirective_phrase_,P,false,false){
+}
+
+void Rdirective_phrase::sr1(){
+ struct SF{
+ Rlint* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Rparallel_directive_cweb_k* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ Rlint* p3__;
+ State* s3__;
+ bool abort3__;
+ Rule_s_reuse_entry* rule_s_reuse_entry3__;
+ Rdirective* p4__;
+ State* s4__;
+ bool abort4__;
+ Rule_s_reuse_entry* rule_s_reuse_entry4__;
+ Rsyntax_code* p5__;
+ State* s5__;
+ bool abort5__;
+ Rule_s_reuse_entry* rule_s_reuse_entry5__;
+ Rlint* p6__;
+ State* s6__;
+ bool abort6__;
+ Rule_s_reuse_entry* rule_s_reuse_entry6__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(6);
+
+ AST* cwebt = sf->p2__->cweb_t_;
+ Rdirective* dir = sf->p4__;
+ Rsyntax_code* sdc = sf->p5__;
+ if(cwebt != 0)
+ sdc->syntax_code_->add_cweb_marker(cwebt);
+ Cparallel_monitor_ph* fsm =
+ (Cparallel_monitor_ph*)rule_info__.parser__->fsm_tbl__;
+ fsm->add_sdc_to_directive(dir->directive_,sdc->syntax_code_);
+
+}
+
+Rdirective::Rdirective(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rdirective",0,Cparallel_monitor_ph::R_Rdirective_,P,false,false){
+}
+
+void Rdirective::op(){
+ sstrace_rulesss
+
+ if(directive_ == 0) return;
+ Cparallel_monitor_ph* fsm = (Cparallel_monitor_ph*)rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* result =
+ fsm->parallel_monitor_phrase_->add_directive_to_mntr(directive_,rule_info__.parser__);
+ if(result == 0) return;// ok added
+ directive_->set_auto_delete(true);//dup: delete when popped from stack
+ RSVP(result);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+void Rdirective::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_arbitrator_code* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = sf->p2__;
+
+}
+
+void Rdirective::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = 0;
+ CAbs_lr1_sym* sym = new Err_not_arbitration_code_kw;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rdirective::sr3(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_no_directive_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rsyntax_code::Rsyntax_code(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsyntax_code",0,Cparallel_monitor_ph::R_Rsyntax_code_,P,false,false){
+}
+
+void Rsyntax_code::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_syntax_code* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ syntax_code_ = sf->p2__;
+
+}
+
+void Rsyntax_code::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Err_no_syntax_code_present* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ syntax_code_ = 0;
+ sf->p2__->set_auto_delete(true);
+
+}
+
+void Rsyntax_code::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ syntax_code_ = 0;
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rlint::Rlint(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlint",0,Cparallel_monitor_ph::R_Rlint_,P,false,false){
+}
+
+Rparallel_directive_cweb_k::Rparallel_directive_cweb_k(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rparallel_directive_cweb_k",0,Cparallel_monitor_ph::R_Rparallel_directive_cweb_k_,P,false,false){
+}
+
+void Rparallel_directive_cweb_k::ctor(){
+
+ cweb_t_ = 0;
+
+}
+void Rparallel_directive_cweb_k::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_cweb_comment* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ T_cweb_comment* k = sf->p2__;
+ AST* cwebk_t_ = new AST(*k);
+ cweb_t_ = new AST();
+ T_cweb_marker* cw = new T_cweb_marker(cweb_t_);
+ cw->set_rc(*k,__FILE__,__LINE__);
+ AST::set_content(*cweb_t_,*cw);
+ AST::join_pts(*cweb_t_,*cwebk_t_);
+
+}
+
+void Rparallel_directive_cweb_k::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
diff --git a/web/yacco2/compiler/grammars/parallel_monitor_ph.fsc b/web/yacco2/compiler/grammars/parallel_monitor_ph.fsc
new file mode 100644
index 0000000000..8dd52c1ad7
--- /dev/null
+++ b/web/yacco2/compiler/grammars/parallel_monitor_ph.fsc
@@ -0,0 +1,24 @@
+/*
+ File: parallel_monitor_ph.fsc
+ Date and Time: Fri Jan 30 18:55:18 2015
+*/
+transitive n
+grammar-name "parallel_monitor_ph"
+name-space "NS_parallel_monitor_ph"
+thread-name "TH_parallel_monitor_ph"
+monolithic n
+file-name "parallel_monitor_ph.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ T_parallel_control_monitor
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 4
+ NS_cweb_or_c_k::TH_cweb_or_c_k
+ NS_identifier::TH_identifier
+ NS_lint_balls::TH_lint_balls
+ NS_o2_sdc::TH_o2_sdc
+end-list-of-used-threads
+fsm-comments
+"Parse a rule's arbitration code: \n into the valley of someone's dementia..."
diff --git a/web/yacco2/compiler/grammars/parallel_monitor_ph.h b/web/yacco2/compiler/grammars/parallel_monitor_ph.h
new file mode 100644
index 0000000000..3374677659
--- /dev/null
+++ b/web/yacco2/compiler/grammars/parallel_monitor_ph.h
@@ -0,0 +1,157 @@
+/*
+ File: parallel_monitor_ph.h
+ Date and Time: Fri Jan 30 18:55:18 2015
+*/
+#ifndef __parallel_monitor_ph_h__
+#define __parallel_monitor_ph_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+ using namespace NS_yacco2_terminals;
+#include "lint_balls.h"
+#include "eol.h"
+#include "c_comments.h"
+#include "cweb_or_c_k.h"
+#include "identifier.h"
+#include "c_string.h"
+#include "o2_sdc.h"
+
+extern yacco2::Thread_entry ITH_parallel_monitor_ph;
+
+extern yacco2::State S1_Cparallel_monitor_ph;
+namespace NS_parallel_monitor_ph {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_parallel_monitor_ph(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_parallel_monitor_ph(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[8];
+};
+class Cparallel_monitor_ph: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rparallel_monitor_phrase_ = 569//start_of_rule_list + 0
+ ,rhs1_Rparallel_monitor_phrase_ = 1
+ ,R_Ropen_brace_ = 570//start_of_rule_list + 2
+ ,rhs1_Ropen_brace_ = 2
+ ,rhs2_Ropen_brace_ = 3
+ ,R_Rclose_brace_ = 571//start_of_rule_list + 4
+ ,rhs1_Rclose_brace_ = 4
+ ,rhs2_Rclose_brace_ = 5
+ ,R_Rdirective_phrase_ = 572//start_of_rule_list + 6
+ ,rhs1_Rdirective_phrase_ = 6
+ ,R_Rdirective_ = 573//start_of_rule_list + 8
+ ,rhs1_Rdirective_ = 7
+ ,rhs2_Rdirective_ = 8
+ ,rhs3_Rdirective_ = 9
+ ,R_Rsyntax_code_ = 574//start_of_rule_list + 10
+ ,rhs1_Rsyntax_code_ = 10
+ ,rhs2_Rsyntax_code_ = 11
+ ,rhs3_Rsyntax_code_ = 12
+ ,R_Rlint_ = 575//start_of_rule_list + 12
+ ,rhs1_Rlint_ = 13
+ ,rhs2_Rlint_ = 14
+ ,R_Rparallel_directive_cweb_k_ = 576//start_of_rule_list + 14
+ ,rhs1_Rparallel_directive_cweb_k_ = 15
+ ,rhs2_Rparallel_directive_cweb_k_ = 16
+ ,rhs3_Rparallel_directive_cweb_k_ = 17
+ };
+ //no of la sets = 6
+ //no of states = 31
+ Cparallel_monitor_ph();
+ ~Cparallel_monitor_ph();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[18];
+
+ public:
+ void add_sdc_to_directive(yacco2::CAbs_lr1_sym* Dir,T_syntax_code* Sdc);
+ T_parallel_monitor_phrase* parallel_monitor_phrase_;
+
+ };
+struct Rparallel_monitor_phrase;
+struct Ropen_brace;
+struct Rclose_brace;
+struct Rdirective_phrase;
+struct Rdirective;
+struct Rsyntax_code;
+struct Rlint;
+struct Rparallel_directive_cweb_k;
+struct Rparallel_monitor_phrase:public yacco2::CAbs_lr1_sym {
+ Rparallel_monitor_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Ropen_brace:public yacco2::CAbs_lr1_sym {
+ Ropen_brace(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rclose_brace:public yacco2::CAbs_lr1_sym {
+ Rclose_brace(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rdirective_phrase:public yacco2::CAbs_lr1_sym {
+ Rdirective_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rdirective:public yacco2::CAbs_lr1_sym {
+ Rdirective(yacco2::Parser* P);
+ void op();
+
+ CAbs_lr1_sym* directive_;
+
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Rsyntax_code:public yacco2::CAbs_lr1_sym {
+ Rsyntax_code(yacco2::Parser* P);
+
+ T_syntax_code* syntax_code_;
+
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Rlint:public yacco2::CAbs_lr1_sym {
+ Rlint(yacco2::Parser* P);
+ public:
+};
+
+struct Rparallel_directive_cweb_k:public yacco2::CAbs_lr1_sym {
+ Rparallel_directive_cweb_k(yacco2::Parser* P);
+ void ctor();
+
+ AST* cweb_t_;
+
+ public:
+ void sr2();
+ void sr3();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/parallel_monitor_ph.lex b/web/yacco2/compiler/grammars/parallel_monitor_ph.lex
new file mode 100644
index 0000000000..d554689c21
--- /dev/null
+++ b/web/yacco2/compiler/grammars/parallel_monitor_ph.lex
@@ -0,0 +1,258 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: parallel_monitor_ph.lex
+Dates: 3 Jun 2004
+Purpose: parse arbitration contruct
+Output: Err_no_syntax_code_present
+ Err_comment_overrun
+ Err_duplicate_directive
+ Err_no_close_brace
+ Err_no_directive_present
+ Err_not_arbitration_code_kw
+ Err_no_pp_ctrl_mntor_kw_present
+*/
+
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |parallel_monitor_ph| thread.\fbreak
+Parse arbitration contruct.
+Typically there is no arbitration to be done but
+when 2 or more threads of subset / superset
+context are deployed
+deplomacy is required.
+This thread is a ``chained procedure call''.
+\fbreak
+Example of a parallel-control-monitor construct to parse:\fbreak
+\listing{"/usr/local/yacco2/diagrams+etc/ppmntr.txt"}
+@/
+fsm
+(fsm-id "parallel_monitor_ph.lex"
+,fsm-filename parallel_monitor_ph
+,fsm-namespace NS_parallel_monitor_ph
+,fsm-class Cparallel_monitor_ph{
+ user-prefix-declaration
+ using namespace NS_yacco2_terminals;
+#include "lint_balls.h"
+#include "eol.h"
+#include "c_comments.h"
+#include "cweb_or_c_k.h"
+#include "identifier.h"
+#include "c_string.h"
+#include "o2_sdc.h"
+ ***
+ user-declaration
+ public:
+ void add_sdc_to_directive(yacco2::CAbs_lr1_sym* Dir,T_syntax_code* Sdc);
+ T_parallel_monitor_phrase* parallel_monitor_phrase_;
+ ***
+ constructor
+ parallel_monitor_phrase_ = 0;
+ ***
+ user-implementation
+ void Cparallel_monitor_ph::
+ add_sdc_to_directive(yacco2::CAbs_lr1_sym* Dir,T_syntax_code* Sdc){
+ using namespace NS_yacco2_T_enum;
+ using namespace NS_yacco2_terminals;
+ yacco2::INT eid = Dir->enumerated_id__;
+ switch (eid){
+ case T_Enum::T_T_arbitrator_code_: {
+ T_arbitrator_code* k = (T_arbitrator_code*)Dir;
+ k->syntax_code(Sdc);
+ break;
+ }
+ default: {
+ CAbs_lr1_sym* sym = new Err_improper_directive;
+ sym->set_rc(*Dir,__FILE__,__LINE__);
+ RSVP_FSM(sym);
+ parser__->set_stop_parse(true);
+ }
+ }
+ }
+ ***
+ op
+ if(parallel_monitor_phrase_ != 0){
+ delete parallel_monitor_phrase_;
+ parallel_monitor_phrase_ = 0;
+ }
+ parallel_monitor_phrase_ = new T_parallel_monitor_phrase;
+ parallel_monitor_phrase_->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ AST* t = new AST(*parallel_monitor_phrase_);
+ parallel_monitor_phrase_->phrase_tree(t);
+ ***
+}
+,fsm-version "1.0",fsm-date "24 mar 2004",fsm-debug "false"
+,fsm-comments "Parse a rule's arbitration code: \n into the valley of someone's dementia...")
+parallel-parser
+(
+ parallel-thread-function
+ TH_parallel_monitor_ph
+ ***
+ parallel-la-boundary
+ eolr
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rparallel_monitor_phrase (){
+ -> "#parallel-control-monitor"
+ Rlint
+ Ropen_brace Rlint
+ Rdirective_phrase
+ Rclose_brace Rlint
+ {
+ op
+ Cparallel_monitor_ph* fsm =
+ (Cparallel_monitor_ph*)rule_info__.parser__->fsm_tbl__;
+ RSVP(fsm->parallel_monitor_phrase_);
+ fsm->parallel_monitor_phrase_ = 0;
+ ***
+ }
+}
+
+
+Ropen_brace (){
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_open_brace;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> "{"
+}
+
+Rclose_brace (){
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_close_brace;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> "}"
+}
+
+Rdirective_phrase (){
+ -> Rlint Rparallel_directive_cweb_k Rlint Rdirective Rsyntax_code Rlint {
+ op
+ AST* cwebt = sf->p2__->cweb_t_;
+ Rdirective* dir = sf->p4__;
+ Rsyntax_code* sdc = sf->p5__;
+ if(cwebt != 0)
+ sdc->syntax_code_->add_cweb_marker(cwebt);
+ Cparallel_monitor_ph* fsm =
+ (Cparallel_monitor_ph*)rule_info__.parser__->fsm_tbl__;
+ fsm->add_sdc_to_directive(dir->directive_,sdc->syntax_code_);
+ ***
+ }
+}
+
+Rdirective (
+lhs {
+ user-declaration
+ CAbs_lr1_sym* directive_;
+ ***
+ op
+ if(directive_ == 0) return;
+ Cparallel_monitor_ph* fsm = (Cparallel_monitor_ph*)rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* result =
+ fsm->parallel_monitor_phrase_->add_directive_to_mntr(directive_,rule_info__.parser__);
+ if(result == 0) return;// ok added
+ directive_->set_auto_delete(true);//dup: delete when popped from stack
+ RSVP(result);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+){
+ -> ||| "#arbitrator-code" NS_identifier::TH_identifier {
+ op
+ directive_ = sf->p2__;
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ directive_ = 0;
+ CAbs_lr1_sym* sym = new Err_not_arbitration_code_kw;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_directive_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rsyntax_code (
+lhs {
+ user-declaration
+ T_syntax_code* syntax_code_;
+ ***
+ }
+){
+ -> ||| "syntax-code" NS_o2_sdc::TH_o2_sdc {
+ op
+ syntax_code_ = sf->p2__;
+ ***
+ }
+ -> ||| "no syntax-code present" NULL {// allow no syntax code
+ op
+ syntax_code_ = 0;
+ sf->p2__->set_auto_delete(true);
+ ***
+ }
+ -> ||| |?| NULL { // catcher in the Rye? These are errors
+ op
+ syntax_code_ = 0;
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rlint (){
+ -> ||| lint NS_lint_balls::TH_lint_balls
+ ->
+}
+
+Rparallel_directive_cweb_k (
+lhs {
+ user-declaration
+ AST* cweb_t_;
+ ***
+ constructor
+ cweb_t_ = 0;
+ ***
+ }
+){
+ ->
+ -> ||| "cweb-comment" NS_cweb_or_c_k::TH_cweb_or_c_k {
+ op
+ T_cweb_comment* k = sf->p2__;
+ AST* cwebk_t_ = new AST(*k);
+ cweb_t_ = new AST();
+ T_cweb_marker* cw = new T_cweb_marker(cweb_t_);
+ cw->set_rc(*k,__FILE__,__LINE__);
+ AST::set_content(*cweb_t_,*cw);
+ AST::join_pts(*cweb_t_,*cwebk_t_);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/parallel_monitor_phsym.cpp b/web/yacco2/compiler/grammars/parallel_monitor_phsym.cpp
new file mode 100644
index 0000000000..974dac3649
--- /dev/null
+++ b/web/yacco2/compiler/grammars/parallel_monitor_phsym.cpp
@@ -0,0 +1,304 @@
+/*
+ File: parallel_monitor_phsym.cpp
+ Date and Time: Fri Jan 30 18:55:18 2015
+*/
+#include "parallel_monitor_ph.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_parallel_monitor_ph;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_parallel_monitor_ph::TH_parallel_monitor_ph(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_parallel_monitor_ph;
+ NS_parallel_monitor_ph::Cparallel_monitor_ph Cparallel_monitor_ph_;// parallel-parser's parse table
+#define ssPARSE_TABLE Cparallel_monitor_ph_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_parallel_monitor_ph::PROC_TH_parallel_monitor_ph(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_parallel_monitor_ph";
+ static bool one_time(false);
+ static NS_parallel_monitor_ph::Cparallel_monitor_ph* NS_parallel_monitor_ph_Cparallel_monitor_ph_(0);// parallel-parser's fsm table
+ static Parser* NS_parallel_monitor_ph_Cparallel_monitor_ph_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_parallel_monitor_ph_Cparallel_monitor_ph_ = new NS_parallel_monitor_ph::Cparallel_monitor_ph();// parallel-parser's fsm table
+ NS_parallel_monitor_ph_Cparallel_monitor_ph_parser = new Parser(*NS_parallel_monitor_ph_Cparallel_monitor_ph_,Caller_pp);
+ }
+ proc_parser = NS_parallel_monitor_ph_Cparallel_monitor_ph_parser;
+#include "wproc_pp_core.h"
+}
+void
+Cparallel_monitor_ph::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rparallel_monitor_phrase_:{
+ Rparallel_monitor_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rparallel_monitor_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rparallel_monitor_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 7;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Ropen_brace_:{
+ Ropen_brace* sym;
+ if(re->rule_ == 0){
+ sym = new Ropen_brace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ropen_brace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Ropen_brace_:{
+ Ropen_brace* sym;
+ if(re->rule_ == 0){
+ sym = new Ropen_brace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ropen_brace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rclose_brace_:{
+ Rclose_brace* sym;
+ if(re->rule_ == 0){
+ sym = new Rclose_brace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclose_brace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rclose_brace_:{
+ Rclose_brace* sym;
+ if(re->rule_ == 0){
+ sym = new Rclose_brace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclose_brace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rdirective_phrase_:{
+ Rdirective_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 6;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ sym->op();
+ return;}
+ case rhs2_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ sym->op();
+ return;}
+ case rhs3_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ sym->op();
+ return;}
+ case rhs1_Rsyntax_code_:{
+ Rsyntax_code* sym;
+ if(re->rule_ == 0){
+ sym = new Rsyntax_code(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsyntax_code*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rsyntax_code_:{
+ Rsyntax_code* sym;
+ if(re->rule_ == 0){
+ sym = new Rsyntax_code(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsyntax_code*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rsyntax_code_:{
+ Rsyntax_code* sym;
+ if(re->rule_ == 0){
+ sym = new Rsyntax_code(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsyntax_code*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rlint_:{
+ Rlint* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rlint_:{
+ Rlint* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs1_Rparallel_directive_cweb_k_:{
+ Rparallel_directive_cweb_k* sym;
+ if(re->rule_ == 0){
+ sym = new Rparallel_directive_cweb_k(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rparallel_directive_cweb_k*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs2_Rparallel_directive_cweb_k_:{
+ Rparallel_directive_cweb_k* sym;
+ if(re->rule_ == 0){
+ sym = new Rparallel_directive_cweb_k(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rparallel_directive_cweb_k*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rparallel_directive_cweb_k_:{
+ Rparallel_directive_cweb_k* sym;
+ if(re->rule_ == 0){
+ sym = new Rparallel_directive_cweb_k(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rparallel_directive_cweb_k*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/parallel_monitor_phtbl.cpp b/web/yacco2/compiler/grammars/parallel_monitor_phtbl.cpp
new file mode 100644
index 0000000000..5f9bfba186
--- /dev/null
+++ b/web/yacco2/compiler/grammars/parallel_monitor_phtbl.cpp
@@ -0,0 +1,682 @@
+/*
+ File: parallel_monitor_phtbl.cpp
+ Date and Time: Fri Jan 30 18:55:18 2015
+*/
+#include "parallel_monitor_ph.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_parallel_monitor_ph;// grammar's ns
+// first set terminals
+// LR1_questionable_shift_operator
+// raw_open_brace
+yacco2::UCHAR LA1_Cparallel_monitor_ph[] ={
+2
+,0,1
+,16,8
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+yacco2::UCHAR LA2_Cparallel_monitor_ph[] ={
+1
+,0,17
+};
+// LR1_eolr
+yacco2::UCHAR LA3_Cparallel_monitor_ph[] ={
+1
+,0,4
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+// raw_close_brace
+yacco2::UCHAR LA4_Cparallel_monitor_ph[] ={
+2
+,0,17
+,16,32
+};
+// LR1_questionable_shift_operator
+// raw_close_brace
+yacco2::UCHAR LA5_Cparallel_monitor_ph[] ={
+2
+,0,1
+,16,32
+};
+// LR1_reduce_operator
+yacco2::UCHAR LA6_Cparallel_monitor_ph[] ={
+1
+,0,16
+};
+extern yacco2::State S1_Cparallel_monitor_ph;
+extern yacco2::State S2_Cparallel_monitor_ph;
+extern yacco2::State S3_Cparallel_monitor_ph;
+extern yacco2::State S4_Cparallel_monitor_ph;
+extern yacco2::State S5_Cparallel_monitor_ph;
+extern yacco2::State S6_Cparallel_monitor_ph;
+extern yacco2::State S7_Cparallel_monitor_ph;
+extern yacco2::State S8_Cparallel_monitor_ph;
+extern yacco2::State S9_Cparallel_monitor_ph;
+extern yacco2::State S10_Cparallel_monitor_ph;
+struct S10ttd_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S10ttd_Cparallel_monitor_ph S10tt_Cparallel_monitor_ph = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_lint_balls
+};
+extern yacco2::State S11_Cparallel_monitor_ph;
+extern yacco2::State S12_Cparallel_monitor_ph;
+extern yacco2::State S13_Cparallel_monitor_ph;
+extern yacco2::State S14_Cparallel_monitor_ph;
+extern yacco2::State S15_Cparallel_monitor_ph;
+extern yacco2::State S16_Cparallel_monitor_ph;
+extern yacco2::State S17_Cparallel_monitor_ph;
+extern yacco2::State S18_Cparallel_monitor_ph;
+extern yacco2::State S19_Cparallel_monitor_ph;
+struct S19ttd_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S19ttd_Cparallel_monitor_ph S19tt_Cparallel_monitor_ph = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_o2_sdc
+};
+extern yacco2::State S20_Cparallel_monitor_ph;
+extern yacco2::State S21_Cparallel_monitor_ph;
+extern yacco2::State S22_Cparallel_monitor_ph;
+extern yacco2::State S23_Cparallel_monitor_ph;
+extern yacco2::State S24_Cparallel_monitor_ph;
+extern yacco2::State S25_Cparallel_monitor_ph;
+struct S25ttd_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S25ttd_Cparallel_monitor_ph S25tt_Cparallel_monitor_ph = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_cweb_or_c_k
+};
+extern yacco2::State S26_Cparallel_monitor_ph;
+extern yacco2::State S27_Cparallel_monitor_ph;
+extern yacco2::State S28_Cparallel_monitor_ph;
+extern yacco2::State S29_Cparallel_monitor_ph;
+struct S29ttd_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S29ttd_Cparallel_monitor_ph S29tt_Cparallel_monitor_ph = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S30_Cparallel_monitor_ph;
+extern yacco2::State S31_Cparallel_monitor_ph;
+struct S1std_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S1std_Cparallel_monitor_ph S1st_Cparallel_monitor_ph = {
+ 2
+ ,
+ {// start of table
+ {291,(State*)&S2_Cparallel_monitor_ph} // shift sym: T_parallel_control_monitor
+ ,{569,(State*)&S1_Cparallel_monitor_ph} // accept sym: Rparallel_monitor_phrase
+ }// end of shift table
+};
+yacco2::State S1_Cparallel_monitor_ph = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Cparallel_monitor_ph,0,0,0,0};
+struct S2std_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S2std_Cparallel_monitor_ph S2st_Cparallel_monitor_ph = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S10_Cparallel_monitor_ph} // shift sym: LR1_parallel_operator
+ ,{575,(State*)&S3_Cparallel_monitor_ph} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S2pse_Cparallel_monitor_ph = {3,(State*)&S10_Cparallel_monitor_ph};
+struct S2rtd_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Cparallel_monitor_ph S2rt_Cparallel_monitor_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cparallel_monitor_ph,Cparallel_monitor_ph::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S2_Cparallel_monitor_ph = //State's vectored into symbol: "#parallel-control-monitor"
+{2
+,(Shift_entry*)&S2pse_Cparallel_monitor_ph,0,0,0,(Shift_tbl*)&S2st_Cparallel_monitor_ph,(Reduce_tbl*)&S2rt_Cparallel_monitor_ph,(State_s_thread_tbl*)&S10tt_Cparallel_monitor_ph,0,0};
+struct S3std_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S3std_Cparallel_monitor_ph S3st_Cparallel_monitor_ph = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S13_Cparallel_monitor_ph} // shift sym: LR1_questionable_shift_operator
+ ,{131,(State*)&S14_Cparallel_monitor_ph} // shift sym: raw_open_brace
+ ,{570,(State*)&S4_Cparallel_monitor_ph} // shift sym: Ropen_brace
+ }// end of shift table
+};
+yacco2::Shift_entry S3qse_Cparallel_monitor_ph = {0,(State*)&S13_Cparallel_monitor_ph};
+yacco2::State S3_Cparallel_monitor_ph = //State's vectored into symbol: "Rlint"
+{3
+,0,0,0,0,(Shift_tbl*)&S3st_Cparallel_monitor_ph,0,0,0,(Shift_entry*)&S3qse_Cparallel_monitor_ph
+};
+struct S4std_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S4std_Cparallel_monitor_ph S4st_Cparallel_monitor_ph = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S10_Cparallel_monitor_ph} // shift sym: LR1_parallel_operator
+ ,{575,(State*)&S5_Cparallel_monitor_ph} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S4pse_Cparallel_monitor_ph = {3,(State*)&S10_Cparallel_monitor_ph};
+struct S4rtd_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Cparallel_monitor_ph S4rt_Cparallel_monitor_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cparallel_monitor_ph,Cparallel_monitor_ph::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S4_Cparallel_monitor_ph = //State's vectored into symbol: "Ropen_brace"
+{4
+,(Shift_entry*)&S4pse_Cparallel_monitor_ph,0,0,0,(Shift_tbl*)&S4st_Cparallel_monitor_ph,(Reduce_tbl*)&S4rt_Cparallel_monitor_ph,(State_s_thread_tbl*)&S10tt_Cparallel_monitor_ph,0,0};
+struct S5std_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S5std_Cparallel_monitor_ph S5st_Cparallel_monitor_ph = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S10_Cparallel_monitor_ph} // shift sym: LR1_parallel_operator
+ ,{572,(State*)&S6_Cparallel_monitor_ph} // shift sym: Rdirective_phrase
+ ,{575,(State*)&S15_Cparallel_monitor_ph} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S5pse_Cparallel_monitor_ph = {3,(State*)&S10_Cparallel_monitor_ph};
+struct S5rtd_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Cparallel_monitor_ph S5rt_Cparallel_monitor_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cparallel_monitor_ph,Cparallel_monitor_ph::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S5_Cparallel_monitor_ph = //State's vectored into symbol: "Rlint"
+{5
+,(Shift_entry*)&S5pse_Cparallel_monitor_ph,0,0,0,(Shift_tbl*)&S5st_Cparallel_monitor_ph,(Reduce_tbl*)&S5rt_Cparallel_monitor_ph,(State_s_thread_tbl*)&S10tt_Cparallel_monitor_ph,0,0};
+struct S6std_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S6std_Cparallel_monitor_ph S6st_Cparallel_monitor_ph = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S7_Cparallel_monitor_ph} // shift sym: LR1_questionable_shift_operator
+ ,{133,(State*)&S8_Cparallel_monitor_ph} // shift sym: raw_close_brace
+ ,{571,(State*)&S9_Cparallel_monitor_ph} // shift sym: Rclose_brace
+ }// end of shift table
+};
+yacco2::Shift_entry S6qse_Cparallel_monitor_ph = {0,(State*)&S7_Cparallel_monitor_ph};
+yacco2::State S6_Cparallel_monitor_ph = //State's vectored into symbol: "Rdirective_phrase"
+{6
+,0,0,0,0,(Shift_tbl*)&S6st_Cparallel_monitor_ph,0,0,0,(Shift_entry*)&S6qse_Cparallel_monitor_ph
+};
+struct S7rtd_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Cparallel_monitor_ph S7rt_Cparallel_monitor_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cparallel_monitor_ph,Cparallel_monitor_ph::rhs1_Rclose_brace_}
+ }// end of reduce table
+};
+yacco2::State S7_Cparallel_monitor_ph = //State's vectored into symbol: "|?|"
+{7
+,0,0,0,0,0,(Reduce_tbl*)&S7rt_Cparallel_monitor_ph,0,0,0};
+struct S8rtd_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S8rtd_Cparallel_monitor_ph S8rt_Cparallel_monitor_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cparallel_monitor_ph,Cparallel_monitor_ph::rhs2_Rclose_brace_}
+ }// end of reduce table
+};
+yacco2::State S8_Cparallel_monitor_ph = //State's vectored into symbol: "}"
+{8
+,0,0,0,0,0,(Reduce_tbl*)&S8rt_Cparallel_monitor_ph,0,0,0};
+struct S9std_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S9std_Cparallel_monitor_ph S9st_Cparallel_monitor_ph = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S10_Cparallel_monitor_ph} // shift sym: LR1_parallel_operator
+ ,{575,(State*)&S12_Cparallel_monitor_ph} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S9pse_Cparallel_monitor_ph = {3,(State*)&S10_Cparallel_monitor_ph};
+struct S9rtd_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Cparallel_monitor_ph S9rt_Cparallel_monitor_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cparallel_monitor_ph,Cparallel_monitor_ph::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S9_Cparallel_monitor_ph = //State's vectored into symbol: "Rclose_brace"
+{9
+,(Shift_entry*)&S9pse_Cparallel_monitor_ph,0,0,0,(Shift_tbl*)&S9st_Cparallel_monitor_ph,(Reduce_tbl*)&S9rt_Cparallel_monitor_ph,(State_s_thread_tbl*)&S10tt_Cparallel_monitor_ph,0,0};
+struct S10std_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S10std_Cparallel_monitor_ph S10st_Cparallel_monitor_ph = {
+ 1
+ ,
+ {// start of table
+ {375,(State*)&S11_Cparallel_monitor_ph} // shift sym: T_lint
+ }// end of shift table
+};
+yacco2::State S10_Cparallel_monitor_ph = //State's vectored into symbol: "|||"
+{10
+,0,0,0,0,(Shift_tbl*)&S10st_Cparallel_monitor_ph,0,0,0,0};
+struct S11rtd_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Cparallel_monitor_ph S11rt_Cparallel_monitor_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cparallel_monitor_ph,Cparallel_monitor_ph::rhs1_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S11_Cparallel_monitor_ph = //State's vectored into symbol: "lint"
+{11
+,0,0,0,0,0,(Reduce_tbl*)&S11rt_Cparallel_monitor_ph,0,0,0};
+struct S12rtd_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S12rtd_Cparallel_monitor_ph S12rt_Cparallel_monitor_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cparallel_monitor_ph,Cparallel_monitor_ph::rhs1_Rparallel_monitor_phrase_}
+ }// end of reduce table
+};
+yacco2::State S12_Cparallel_monitor_ph = //State's vectored into symbol: "Rlint"
+{12
+,0,0,0,0,0,(Reduce_tbl*)&S12rt_Cparallel_monitor_ph,0,0,0};
+struct S13rtd_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S13rtd_Cparallel_monitor_ph S13rt_Cparallel_monitor_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cparallel_monitor_ph,Cparallel_monitor_ph::rhs1_Ropen_brace_}
+ }// end of reduce table
+};
+yacco2::State S13_Cparallel_monitor_ph = //State's vectored into symbol: "|?|"
+{13
+,0,0,0,0,0,(Reduce_tbl*)&S13rt_Cparallel_monitor_ph,0,0,0};
+struct S14rtd_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S14rtd_Cparallel_monitor_ph S14rt_Cparallel_monitor_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cparallel_monitor_ph,Cparallel_monitor_ph::rhs2_Ropen_brace_}
+ }// end of reduce table
+};
+yacco2::State S14_Cparallel_monitor_ph = //State's vectored into symbol: "{"
+{14
+,0,0,0,0,0,(Reduce_tbl*)&S14rt_Cparallel_monitor_ph,0,0,0};
+struct S15std_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S15std_Cparallel_monitor_ph S15st_Cparallel_monitor_ph = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S25_Cparallel_monitor_ph} // shift sym: LR1_parallel_operator
+ ,{576,(State*)&S16_Cparallel_monitor_ph} // shift sym: Rparallel_directive_cweb_k
+ }// end of shift table
+};
+yacco2::Shift_entry S15pse_Cparallel_monitor_ph = {3,(State*)&S25_Cparallel_monitor_ph};
+struct S15rtd_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S15rtd_Cparallel_monitor_ph S15rt_Cparallel_monitor_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cparallel_monitor_ph,Cparallel_monitor_ph::rhs1_Rparallel_directive_cweb_k_}
+ }// end of reduce table
+};
+yacco2::State S15_Cparallel_monitor_ph = //State's vectored into symbol: "Rlint"
+{15
+,(Shift_entry*)&S15pse_Cparallel_monitor_ph,0,0,0,(Shift_tbl*)&S15st_Cparallel_monitor_ph,(Reduce_tbl*)&S15rt_Cparallel_monitor_ph,(State_s_thread_tbl*)&S25tt_Cparallel_monitor_ph,0,0};
+struct S16std_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S16std_Cparallel_monitor_ph S16st_Cparallel_monitor_ph = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S10_Cparallel_monitor_ph} // shift sym: LR1_parallel_operator
+ ,{575,(State*)&S17_Cparallel_monitor_ph} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S16pse_Cparallel_monitor_ph = {3,(State*)&S10_Cparallel_monitor_ph};
+struct S16rtd_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S16rtd_Cparallel_monitor_ph S16rt_Cparallel_monitor_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cparallel_monitor_ph,Cparallel_monitor_ph::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S16_Cparallel_monitor_ph = //State's vectored into symbol: "Rparallel_directive_cweb_k"
+{16
+,(Shift_entry*)&S16pse_Cparallel_monitor_ph,0,0,0,(Shift_tbl*)&S16st_Cparallel_monitor_ph,(Reduce_tbl*)&S16rt_Cparallel_monitor_ph,(State_s_thread_tbl*)&S10tt_Cparallel_monitor_ph,0,0};
+struct S17std_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S17std_Cparallel_monitor_ph S17st_Cparallel_monitor_ph = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S28_Cparallel_monitor_ph} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S29_Cparallel_monitor_ph} // shift sym: LR1_parallel_operator
+ ,{573,(State*)&S18_Cparallel_monitor_ph} // shift sym: Rdirective
+ }// end of shift table
+};
+yacco2::Shift_entry S17pse_Cparallel_monitor_ph = {3,(State*)&S29_Cparallel_monitor_ph};
+yacco2::Shift_entry S17qse_Cparallel_monitor_ph = {0,(State*)&S28_Cparallel_monitor_ph};
+yacco2::State S17_Cparallel_monitor_ph = //State's vectored into symbol: "Rlint"
+{17
+,(Shift_entry*)&S17pse_Cparallel_monitor_ph,0,0,0,(Shift_tbl*)&S17st_Cparallel_monitor_ph,0,(State_s_thread_tbl*)&S29tt_Cparallel_monitor_ph,0,(Shift_entry*)&S17qse_Cparallel_monitor_ph
+};
+struct S18std_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S18std_Cparallel_monitor_ph S18st_Cparallel_monitor_ph = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S19_Cparallel_monitor_ph} // shift sym: LR1_parallel_operator
+ ,{574,(State*)&S23_Cparallel_monitor_ph} // shift sym: Rsyntax_code
+ }// end of shift table
+};
+yacco2::Shift_entry S18pse_Cparallel_monitor_ph = {3,(State*)&S19_Cparallel_monitor_ph};
+yacco2::State S18_Cparallel_monitor_ph = //State's vectored into symbol: "Rdirective"
+{18
+,(Shift_entry*)&S18pse_Cparallel_monitor_ph,0,0,0,(Shift_tbl*)&S18st_Cparallel_monitor_ph,0,(State_s_thread_tbl*)&S19tt_Cparallel_monitor_ph,0,0};
+struct S19std_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S19std_Cparallel_monitor_ph S19st_Cparallel_monitor_ph = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S20_Cparallel_monitor_ph} // shift sym: LR1_questionable_shift_operator
+ ,{326,(State*)&S21_Cparallel_monitor_ph} // shift sym: T_syntax_code
+ ,{403,(State*)&S22_Cparallel_monitor_ph} // shift sym: Err_no_syntax_code_present
+ }// end of shift table
+};
+yacco2::Shift_entry S19qse_Cparallel_monitor_ph = {0,(State*)&S20_Cparallel_monitor_ph};
+yacco2::State S19_Cparallel_monitor_ph = //State's vectored into symbol: "|||"
+{19
+,0,0,0,0,(Shift_tbl*)&S19st_Cparallel_monitor_ph,0,0,0,(Shift_entry*)&S19qse_Cparallel_monitor_ph
+};
+struct S20rtd_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S20rtd_Cparallel_monitor_ph S20rt_Cparallel_monitor_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cparallel_monitor_ph,Cparallel_monitor_ph::rhs3_Rsyntax_code_}
+ }// end of reduce table
+};
+yacco2::State S20_Cparallel_monitor_ph = //State's vectored into symbol: "|?|"
+{20
+,0,0,0,0,0,(Reduce_tbl*)&S20rt_Cparallel_monitor_ph,0,0,0};
+struct S21rtd_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S21rtd_Cparallel_monitor_ph S21rt_Cparallel_monitor_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cparallel_monitor_ph,Cparallel_monitor_ph::rhs1_Rsyntax_code_}
+ }// end of reduce table
+};
+yacco2::State S21_Cparallel_monitor_ph = //State's vectored into symbol: "syntax-code"
+{21
+,0,0,0,0,0,(Reduce_tbl*)&S21rt_Cparallel_monitor_ph,0,0,0};
+struct S22rtd_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S22rtd_Cparallel_monitor_ph S22rt_Cparallel_monitor_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cparallel_monitor_ph,Cparallel_monitor_ph::rhs2_Rsyntax_code_}
+ }// end of reduce table
+};
+yacco2::State S22_Cparallel_monitor_ph = //State's vectored into symbol: "no syntax-code present"
+{22
+,0,0,0,0,0,(Reduce_tbl*)&S22rt_Cparallel_monitor_ph,0,0,0};
+struct S23std_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S23std_Cparallel_monitor_ph S23st_Cparallel_monitor_ph = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S10_Cparallel_monitor_ph} // shift sym: LR1_parallel_operator
+ ,{575,(State*)&S24_Cparallel_monitor_ph} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S23pse_Cparallel_monitor_ph = {3,(State*)&S10_Cparallel_monitor_ph};
+struct S23rtd_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S23rtd_Cparallel_monitor_ph S23rt_Cparallel_monitor_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cparallel_monitor_ph,Cparallel_monitor_ph::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S23_Cparallel_monitor_ph = //State's vectored into symbol: "Rsyntax_code"
+{23
+,(Shift_entry*)&S23pse_Cparallel_monitor_ph,0,0,0,(Shift_tbl*)&S23st_Cparallel_monitor_ph,(Reduce_tbl*)&S23rt_Cparallel_monitor_ph,(State_s_thread_tbl*)&S10tt_Cparallel_monitor_ph,0,0};
+struct S24rtd_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S24rtd_Cparallel_monitor_ph S24rt_Cparallel_monitor_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cparallel_monitor_ph,Cparallel_monitor_ph::rhs1_Rdirective_phrase_}
+ }// end of reduce table
+};
+yacco2::State S24_Cparallel_monitor_ph = //State's vectored into symbol: "Rlint"
+{24
+,0,0,0,0,0,(Reduce_tbl*)&S24rt_Cparallel_monitor_ph,0,0,0};
+struct S25std_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S25std_Cparallel_monitor_ph S25st_Cparallel_monitor_ph = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S26_Cparallel_monitor_ph} // shift sym: LR1_questionable_shift_operator
+ ,{372,(State*)&S27_Cparallel_monitor_ph} // shift sym: T_cweb_comment
+ }// end of shift table
+};
+yacco2::Shift_entry S25qse_Cparallel_monitor_ph = {0,(State*)&S26_Cparallel_monitor_ph};
+yacco2::State S25_Cparallel_monitor_ph = //State's vectored into symbol: "|||"
+{25
+,0,0,0,0,(Shift_tbl*)&S25st_Cparallel_monitor_ph,0,0,0,(Shift_entry*)&S25qse_Cparallel_monitor_ph
+};
+struct S26rtd_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S26rtd_Cparallel_monitor_ph S26rt_Cparallel_monitor_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cparallel_monitor_ph,Cparallel_monitor_ph::rhs3_Rparallel_directive_cweb_k_}
+ }// end of reduce table
+};
+yacco2::State S26_Cparallel_monitor_ph = //State's vectored into symbol: "|?|"
+{26
+,0,0,0,0,0,(Reduce_tbl*)&S26rt_Cparallel_monitor_ph,0,0,0};
+struct S27rtd_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S27rtd_Cparallel_monitor_ph S27rt_Cparallel_monitor_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cparallel_monitor_ph,Cparallel_monitor_ph::rhs2_Rparallel_directive_cweb_k_}
+ }// end of reduce table
+};
+yacco2::State S27_Cparallel_monitor_ph = //State's vectored into symbol: "cweb-comment"
+{27
+,0,0,0,0,0,(Reduce_tbl*)&S27rt_Cparallel_monitor_ph,0,0,0};
+struct S28rtd_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S28rtd_Cparallel_monitor_ph S28rt_Cparallel_monitor_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cparallel_monitor_ph,Cparallel_monitor_ph::rhs3_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S28_Cparallel_monitor_ph = //State's vectored into symbol: "|?|"
+{28
+,0,0,0,0,0,(Reduce_tbl*)&S28rt_Cparallel_monitor_ph,0,0,0};
+struct S29std_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S29std_Cparallel_monitor_ph S29st_Cparallel_monitor_ph = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S30_Cparallel_monitor_ph} // shift sym: LR1_questionable_shift_operator
+ ,{288,(State*)&S31_Cparallel_monitor_ph} // shift sym: T_arbitrator_code
+ }// end of shift table
+};
+yacco2::Shift_entry S29qse_Cparallel_monitor_ph = {0,(State*)&S30_Cparallel_monitor_ph};
+yacco2::State S29_Cparallel_monitor_ph = //State's vectored into symbol: "|||"
+{29
+,0,0,0,0,(Shift_tbl*)&S29st_Cparallel_monitor_ph,0,0,0,(Shift_entry*)&S29qse_Cparallel_monitor_ph
+};
+struct S30rtd_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S30rtd_Cparallel_monitor_ph S30rt_Cparallel_monitor_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cparallel_monitor_ph,Cparallel_monitor_ph::rhs2_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S30_Cparallel_monitor_ph = //State's vectored into symbol: "|?|"
+{30
+,0,0,0,0,0,(Reduce_tbl*)&S30rt_Cparallel_monitor_ph,0,0,0};
+struct S31rtd_Cparallel_monitor_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S31rtd_Cparallel_monitor_ph S31rt_Cparallel_monitor_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cparallel_monitor_ph,Cparallel_monitor_ph::rhs1_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S31_Cparallel_monitor_ph = //State's vectored into symbol: "#arbitrator-code"
+{31
+,0,0,0,0,0,(Reduce_tbl*)&S31rt_Cparallel_monitor_ph,0,0,0};
diff --git a/web/yacco2/compiler/grammars/parallel_oper.cpp b/web/yacco2/compiler/grammars/parallel_oper.cpp
new file mode 100644
index 0000000000..fdb29a35f5
--- /dev/null
+++ b/web/yacco2/compiler/grammars/parallel_oper.cpp
@@ -0,0 +1,86 @@
+/*
+ File: parallel_oper.cpp
+ Date and Time: Fri Jan 30 18:55:18 2015
+*/
+#include "parallel_oper.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_parallel_oper;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 1;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+}
+ Cparallel_oper::
+ Cparallel_oper()
+ :yacco2::CAbs_fsm
+ ("parallel_oper.lex"
+ ,"1.0"
+ ,"22 Sept 2005"
+ ,false
+ ,"Lexer for Parallel operator: \\PARshift."
+ ,"Fri Jan 30 18:55:18 2015 "
+ ,S1_Cparallel_oper){
+
+ }
+
+Cparallel_oper::~Cparallel_oper(){
+
+ for(int x = 0;x < 1;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cparallel_oper::failed(){
+ return false;
+ }
+ void Cparallel_oper::op(){
+}
+int Cparallel_oper::rhs_to_rules_mapping_[5] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,0 // subrule 2 for rule 1
+ ,0 // subrule 3 for rule 1
+ ,0 // subrule 4 for rule 1
+};
+Rparallel_oper::Rparallel_oper(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rparallel_oper",0,Cparallel_oper::R_Rparallel_oper_,P,false,false){
+}
+
+void Rparallel_oper::op(){
+ sstrace_rulesss
+
+ rtn_sym_->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(rtn_sym_);
+ rtn_sym_ = 0;
+
+}
+void Rparallel_oper::sr1(){
+
+ rtn_sym_ = NS_yacco2_k_symbols::PTR_LR1_parallel_operator__;
+
+}
+
+void Rparallel_oper::sr2(){
+
+ rtn_sym_ = NS_yacco2_k_symbols::PTR_LR1_parallel_operator__;
+
+}
+
+void Rparallel_oper::sr3(){
+
+ rtn_sym_ = NS_yacco2_k_symbols::PTR_LR1_fset_transience_operator__;
+
+}
+
+void Rparallel_oper::sr4(){
+
+ rtn_sym_ = NS_yacco2_k_symbols::PTR_LR1_fset_transience_operator__;
+
+}
+
diff --git a/web/yacco2/compiler/grammars/parallel_oper.fsc b/web/yacco2/compiler/grammars/parallel_oper.fsc
new file mode 100644
index 0000000000..8536cb69ae
--- /dev/null
+++ b/web/yacco2/compiler/grammars/parallel_oper.fsc
@@ -0,0 +1,21 @@
+/*
+ File: parallel_oper.fsc
+ Date and Time: Fri Jan 30 18:55:18 2015
+*/
+transitive n
+grammar-name "parallel_oper"
+name-space "NS_parallel_oper"
+thread-name "TH_parallel_oper"
+monolithic n
+file-name "parallel_oper.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 2
+ raw_dbl_quote
+ raw_vertical_line
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"Lexer for Parallel operator: \\PARshift."
diff --git a/web/yacco2/compiler/grammars/parallel_oper.h b/web/yacco2/compiler/grammars/parallel_oper.h
new file mode 100644
index 0000000000..c669bb0f01
--- /dev/null
+++ b/web/yacco2/compiler/grammars/parallel_oper.h
@@ -0,0 +1,66 @@
+/*
+ File: parallel_oper.h
+ Date and Time: Fri Jan 30 18:55:18 2015
+*/
+#ifndef __parallel_oper_h__
+#define __parallel_oper_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+extern yacco2::Thread_entry ITH_parallel_oper;
+
+extern yacco2::State S1_Cparallel_oper;
+namespace NS_parallel_oper {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_parallel_oper(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_parallel_oper(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[1];
+};
+class Cparallel_oper: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rparallel_oper_ = 569//start_of_rule_list + 0
+ ,rhs1_Rparallel_oper_ = 1
+ ,rhs2_Rparallel_oper_ = 2
+ ,rhs3_Rparallel_oper_ = 3
+ ,rhs4_Rparallel_oper_ = 4
+ };
+ //no of la sets = 1
+ //no of states = 14
+ Cparallel_oper();
+ ~Cparallel_oper();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[5];
+ };
+struct Rparallel_oper;
+struct Rparallel_oper:public yacco2::CAbs_lr1_sym {
+ Rparallel_oper(yacco2::Parser* P);
+ void op();
+
+ public:
+ CAbs_lr1_sym* rtn_sym_;
+
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/parallel_oper.lex b/web/yacco2/compiler/grammars/parallel_oper.lex
new file mode 100644
index 0000000000..b4a439c1fe
--- /dev/null
+++ b/web/yacco2/compiler/grammars/parallel_oper.lex
@@ -0,0 +1,71 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: parallel_oper.lex
+Dates: 22 Sept. 2005
+Purpose: start of a parallel thread expression or chained call
+ ||| T {NS_xxx::TH_xxx | NULL}
+Output: "|||" or "|t|"
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |parallel_oper| thread.\fbreak
+Recognize the parallel operator in its 2 drags:
+quoted and unprotected.
+The same goes for the chained "procedure call" operator.
+It overloads on the \TRAshift operator used by \Olinker.
+@/
+fsm
+(fsm-id "parallel_oper.lex"
+,fsm-filename parallel_oper
+,fsm-namespace NS_parallel_oper
+,fsm-class Cparallel_oper
+,fsm-version "1.0",fsm-date "22 Sept 2005",fsm-debug "false"
+,fsm-comments "Lexer for Parallel operator: \\PARshift.")
+parallel-parser
+(
+ parallel-thread-function
+ TH_parallel_oper
+ ***
+ parallel-la-boundary
+ eolr - "|"
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rparallel_oper (
+ lhs {
+ user-declaration
+ public:
+ CAbs_lr1_sym* rtn_sym_;
+ ***
+ op
+ rtn_sym_->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(rtn_sym_);
+ rtn_sym_ = 0;
+ ***
+ }
+){
+ -> "|" "|" "|" {
+ op
+ rtn_sym_ = NS_yacco2_k_symbols::PTR_LR1_parallel_operator__;
+ ***}
+ -> "\"" "|" "|" "|" "\"" {
+ op
+ rtn_sym_ = NS_yacco2_k_symbols::PTR_LR1_parallel_operator__;
+ ***
+ }
+ -> "|" "t" "|" {
+ op
+ rtn_sym_ = NS_yacco2_k_symbols::PTR_LR1_fset_transience_operator__;
+ ***}
+ -> "\"" "|" "t" "|" "\"" {
+ op
+ rtn_sym_ = NS_yacco2_k_symbols::PTR_LR1_fset_transience_operator__;
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/parallel_opersym.cpp b/web/yacco2/compiler/grammars/parallel_opersym.cpp
new file mode 100644
index 0000000000..1bed208da9
--- /dev/null
+++ b/web/yacco2/compiler/grammars/parallel_opersym.cpp
@@ -0,0 +1,112 @@
+/*
+ File: parallel_opersym.cpp
+ Date and Time: Fri Jan 30 18:55:18 2015
+*/
+#include "parallel_oper.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_parallel_oper;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_parallel_oper::TH_parallel_oper(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_parallel_oper;
+ NS_parallel_oper::Cparallel_oper Cparallel_oper_;// parallel-parser's parse table
+#define ssPARSE_TABLE Cparallel_oper_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_parallel_oper::PROC_TH_parallel_oper(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_parallel_oper";
+ static bool one_time(false);
+ static NS_parallel_oper::Cparallel_oper* NS_parallel_oper_Cparallel_oper_(0);// parallel-parser's fsm table
+ static Parser* NS_parallel_oper_Cparallel_oper_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_parallel_oper_Cparallel_oper_ = new NS_parallel_oper::Cparallel_oper();// parallel-parser's fsm table
+ NS_parallel_oper_Cparallel_oper_parser = new Parser(*NS_parallel_oper_Cparallel_oper_,Caller_pp);
+ }
+ proc_parser = NS_parallel_oper_Cparallel_oper_parser;
+#include "wproc_pp_core.h"
+}
+void
+Cparallel_oper::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rparallel_oper_:{
+ Rparallel_oper* sym;
+ if(re->rule_ == 0){
+ sym = new Rparallel_oper(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rparallel_oper*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ sym->sr1();
+ sym->op();
+ return;}
+ case rhs2_Rparallel_oper_:{
+ Rparallel_oper* sym;
+ if(re->rule_ == 0){
+ sym = new Rparallel_oper(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rparallel_oper*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ sym->sr2();
+ sym->op();
+ return;}
+ case rhs3_Rparallel_oper_:{
+ Rparallel_oper* sym;
+ if(re->rule_ == 0){
+ sym = new Rparallel_oper(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rparallel_oper*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ sym->sr3();
+ sym->op();
+ return;}
+ case rhs4_Rparallel_oper_:{
+ Rparallel_oper* sym;
+ if(re->rule_ == 0){
+ sym = new Rparallel_oper(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rparallel_oper*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ sym->sr4();
+ sym->op();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/parallel_opertbl.cpp b/web/yacco2/compiler/grammars/parallel_opertbl.cpp
new file mode 100644
index 0000000000..9455e0f90b
--- /dev/null
+++ b/web/yacco2/compiler/grammars/parallel_opertbl.cpp
@@ -0,0 +1,863 @@
+/*
+ File: parallel_opertbl.cpp
+ Date and Time: Fri Jan 30 18:55:18 2015
+*/
+#include "parallel_oper.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_parallel_oper;// grammar's ns
+// first set terminals
+// refered_rule
+// T_transitive
+// T_grammar_name
+// T_thread_name
+// T_monolithic
+// T_no_of_T
+// T_list_of_native_first_set_terminals
+// T_end_list_of_native_first_set_terminals
+// T_list_of_transitive_threads
+// T_end_list_of_transitive_threads
+// T_emitfile
+// T_preamble
+// T_end_preamble
+// T_T_alphabet
+// T_end_T_alphabet
+// T_file_of_T_alphabet
+// T_attributes
+// tth_in_stbl
+// thread_attributes
+// th_in_stbl
+// kw_in_stbl
+// T_la_expr_src
+// T_eosubrule
+// T_called_thread_eosubrule
+// T_null_call_thread_eosubrule
+// T_cweb_comment
+// T_grammar_phrase
+// T_cweb_marker
+// T_lint
+// T_list_of_used_threads
+// T_end_list_of_used_threads
+// Err_nested_files_exceeded
+// Err_no_end_of_code
+// Err_no_cmd_lne_data
+// Err_no_filename
+// Err_bad_filename
+// Err_bad_fsmheader_filename
+// Err_bad_fsmcpp_filename
+// Err_bad_fsmsym_filename
+// Err_bad_fsmtbl_filename
+// Err_bad_enum_filename
+// Err_bad_errors_hdrfilename
+// Err_bad_errors_impfilename
+// Err_bad_cmd_lne_opt
+// Err_bad_int_no
+// Err_bad_int_no_range
+// Err_no_int_present
+// Err_bad_eos
+// Err_bad_esc
+// Err_comment_overrun
+// Err_bad_char
+// Err_bad_univ_seq
+// Err_improper_closing_of_rules
+// Err_no_identifier_present
+// Err_no_directive_present
+// Err_duplicate_directive
+// Err_no_syntax_code_present
+// Err_no_open_parenthesis
+// Err_no_close_parenthesis
+// Err_no_fsm_id_present
+// Err_no_fsm_id_string
+// Err_no_fsm_filename_present
+// Err_no_fsm_filename_id_present
+// Err_no_comma_present
+// Err_no_terminal_key_present
+// Err_no_fsm_namespace_present
+// Err_no_fsm_namespace_id_present
+// Err_no_fsm_class_present
+// Err_no_fsm_version_present
+// Err_no_fsm_version_string
+// Err_no_fsm_date_present
+// Err_no_fsm_date_string
+// Err_no_fsm_debug_present
+// Err_no_fsm_debug_string
+// Err_no_fsm_comments_present
+// Err_no_fsm_comments_string
+// Err_fsm_debug_string_not_true_or_false
+// Err_no_pp_thread_function_present
+// Err_no_pp_ctrl_mntor_kw_present
+// Err_no_pp_fnct_id_present
+// Err_no_pp_bndry_present
+// Err_no_pp_la_bndary_expr_present
+// Err_no_syntax_code_end_present
+// Err_no_pp_code_present
+// Err_no_pp_code_stc_present
+// Err_not_arbitration_code_kw
+// Err_no_open_brace
+// Err_no_close_brace
+// Err_no_constant_defs_present
+// Err_no_filename_present
+// Err_no_filename_id_present
+// Err_no_namespace_present
+// Err_no_namespace_id_present
+// Err_no_kdefs_code_present
+// Err_no_kdefs_kw_present
+// Err_no_tdef_code_present
+// Err_no_sym_defs_present
+// Err_dup_entry_in_alphabet
+// Err_already_defined_AB
+// Err_already_defined_AD
+// Err_improper_directive
+// Err_no_sym_class_present
+// Err_no_sym_class_id_present
+// Err_zero_len_sym
+// Err_sym_tbl_full
+// Err_sym_tbl_char_pool_full
+// Err_dup_entry_in_sym_table
+// Err_subscript_out_of_range
+// Err_sym_tbl_nested_scope_stk_overflow
+// Err_sym_tbl_nested_scope_stk_underflow
+// Err_sym_tbl_context_buf_overflow
+// Err_report_card_ptr_0
+// Err_cannot_define_term_after_sufx_dir
+// Err_dup_sufx_directive
+// Err_terminals_refs_def_after_terminals
+// Err_terminals_refs_dup_def
+// Err_no_rule_name_present
+// Err_no_sub_rule_present
+// Err_subrule_use_undefined_T
+// Err_stbl_entry_unknown
+// Err_subrule_overrun
+// Err_stble_has_entry_but_not_a_rule
+// Err_file_of_T_alphabet_kw_not_present
+// Err_emitfile_kw_not_present
+// Err_preamble_kw_not_present
+// Err_preamble_srce_code_not_present
+// Err_end_preamble_kw_not_present
+// Err_cmd_line_chaffe
+// Err_T_alphabet_kw_not_present
+// Err_T_alphabet_file_not_present
+// Err_end_T_alphabet_kw_not_present
+// Err_no_terminals_in_T_alphabet_list
+// Err_rotten_chr_in_T_alphabet
+// Err_transitive_kw_not_present
+// Err_grammar_name_kw_not_present
+// Err_namespace_kw_not_present
+// Err_filename_kw_not_present
+// Err_threadname_kw_not_present
+// Err_monolithic_kw_not_present
+// Err_no_of_T_kw_not_present
+// Err_list_of_terminals_kw_not_present
+// Err_no_list_of_trans_threads_kw
+// Err_no_terminals_present_in_T_alphabet
+// Err_transitive_value_bad
+// Err_monolithic_value_bad
+// Err_grammar_name_value_not_present
+// Err_namespace_value_not_present
+// Err_threadname_value_not_present
+// Err_filename_value_not_present
+// Err_no_of_T_value_not_present
+// Err_no_of_terminals_not_present
+// Err_end_list_native_T_kw_not_present
+// Err_end_list_of_transitive_threads_kw_not_present
+// Err_no_of_native_Ts_in_list_not_equal
+// Err_no_of_threads_in_list_not_equal
+// Err_thread_refed_but_not_defined
+// Err_bad_T_in_list
+// Err_bad_th_in_list
+// Err_already_defined_in_fsc_file
+// Err_bad_thread_subscript
+// Err_not_a_keyword
+// Err_no_of_threads_not_present
+// Err_bad_T_alphabet
+// Err_fsc_file_does_not_exist
+// Err_filename_file_does_not_exist
+// Err_T_alphabet_file_does_not_exist
+// Err_emitfile_file_does_not_exist
+// Err_emitfile_file_not_present
+// Err_fsc_cntl_file_not_present
+// Err_file_of_T_alphabet_not_present
+// Err_epsilon_pass_thru
+// Err_epsilon_pass_thru_no_Ts
+// Err_rule_not_in_stbl
+// Err_T_not_in_stbl
+// Err_bad_directive
+// Err_bad_term_in_la_expr
+// Err_empty_set_removal_in_la_expr
+// Err_bad_operator_in_la_expr
+// Err_not_a_lhs_kw
+// Err_pp_la_boundary_attribute_not_fnd
+// Err_already_processed_fsm_phase
+// Err_already_processed_pp_phase
+// Err_already_processed_T_enum_phase
+// Err_already_processed_error_phase
+// Err_already_processed_rc_phase
+// Err_already_processed_lrk_phase
+// Err_already_processed_T_phase
+// Err_already_processed_rule_phase
+// Err_not_T_for_rtned_token_from_th
+// Err_not_id_for_ns_in_th_stmt
+// Err_not_id_for_th_name_in_th_stmt
+// Err_bad_th_qualifier
+// Err_not_dbl_colon_in_th_stmt
+// Err_not_T_or_R_in_subrule_expr
+// Err_not_T_or_R_or_eos_in_subrule_expr
+// Err_not_eos_in_subrule_expr
+// Err_invalid_logical_name
+// Err_invalid_logical_value
+// Err_duplicate_logical_name
+// Err_missing_terminals_refs_kw
+// Err_missing_terminals_sufx_kw
+// Err_not_a_terminal_definition
+// Err_missing_lrk_sufx_kw
+// ERR_sick_grammar
+// ERR_no_fsm_phrase
+// ERR_no_T_enum_phrase
+// ERR_no_lrk_phrase
+// ERR_no_rc_phrase
+// ERR_no_errors_phrase
+// ERR_no_terminals_phrase
+// ERR_no_rules_phrase
+// Err_used_rule_but_undefined
+// Err_rule_already_defined
+// Err_la_expr_calc_empty_set
+// Err_no_close_brace_ending_rules_defs
+// Err_use_of_T_outside_Rules_construct
+// Err_not_kw_defining_grammar_construct
+// Err_use_of_N_outside_Rules_construct
+// Err_misplaced_or_misspelt_Rule_or_T
+// Err_not_a_Rule
+// Err_empty_file
+// Err_not_lhs_pcnrl_mntr
+// raw_nul
+// raw_soh
+// raw_stx
+// raw_etx
+// raw_eot
+// raw_enq
+// raw_ack
+// raw_bel
+// raw_bs
+// raw_ht
+// raw_lf
+// raw_vt
+// raw_ff
+// raw_cr
+// raw_so
+// raw_si
+// raw_dle
+// raw_dc1
+// raw_dc2
+// raw_dc3
+// raw_dc4
+// raw_nak
+// raw_syn
+// raw_etb
+// raw_can
+// raw_em
+// raw_sub
+// raw_esc
+// raw_fs
+// raw_gs
+// raw_rs
+// raw_us
+// raw_sp
+// raw_exclam
+// raw_dbl_quote
+// raw_no_sign
+// raw_dollar_sign
+// raw_percent
+// raw_ampersign
+// raw_right_quote
+// raw_open_bracket
+// raw_close_bracket
+// raw_asteric
+// raw_plus
+// raw_comma
+// raw_minus
+// raw_period
+// raw_slash
+// raw_0
+// raw_1
+// raw_2
+// raw_3
+// raw_4
+// raw_5
+// raw_6
+// raw_7
+// raw_8
+// raw_9
+// raw_colon
+// raw_semi_colon
+// raw_less_than
+// raw_eq
+// raw_gt_than
+// raw_question_mark
+// raw_at_sign
+// raw_A
+// raw_B
+// raw_C
+// raw_D
+// raw_E
+// raw_F
+// raw_G
+// raw_H
+// raw_I
+// raw_J
+// raw_K
+// raw_L
+// raw_M
+// raw_N
+// raw_O
+// raw_P
+// raw_Q
+// raw_R
+// raw_S
+// raw_T
+// raw_U
+// raw_V
+// raw_W
+// raw_X
+// raw_Y
+// raw_Z
+// raw_open_sq_bracket
+// raw_back_slash
+// raw_close_sq_bracket
+// raw_up_arrow
+// raw_under_score
+// raw_left_quote
+// raw_a
+// raw_b
+// raw_c
+// raw_d
+// raw_e
+// raw_f
+// raw_g
+// raw_h
+// raw_i
+// raw_j
+// raw_k
+// raw_l
+// raw_m
+// raw_n
+// raw_o
+// raw_p
+// raw_q
+// raw_r
+// raw_s
+// raw_t
+// raw_u
+// raw_v
+// raw_w
+// raw_x
+// raw_y
+// raw_z
+// raw_open_brace
+// raw_close_brace
+// raw_tilde
+// raw_del
+// raw_x80
+// raw_x81
+// raw_x82
+// raw_x83
+// raw_x84
+// raw_x85
+// raw_x86
+// raw_x87
+// raw_x88
+// raw_x89
+// raw_x8a
+// raw_x8b
+// raw_x8c
+// raw_x8d
+// raw_x8e
+// raw_x8f
+// raw_x90
+// raw_x91
+// raw_x92
+// raw_x93
+// raw_x94
+// raw_x95
+// raw_x96
+// raw_x97
+// raw_x98
+// raw_x99
+// raw_x9a
+// raw_x9b
+// raw_x9c
+// raw_x9d
+// raw_x9e
+// raw_x9f
+// raw_xa0
+// raw_xa1
+// raw_xa2
+// raw_xa3
+// raw_xa4
+// raw_xa5
+// raw_xa6
+// raw_xa7
+// raw_xa8
+// raw_xa9
+// raw_xaa
+// raw_xab
+// raw_xac
+// raw_xad
+// raw_xae
+// raw_xaf
+// raw_xb0
+// raw_xb1
+// raw_xb2
+// raw_xb3
+// raw_xb4
+// raw_xb5
+// raw_xb6
+// raw_xb7
+// raw_xb8
+// raw_xb9
+// raw_xba
+// raw_xbb
+// raw_xbc
+// raw_xbd
+// raw_xbe
+// raw_xbf
+// raw_xc0
+// raw_xc1
+// raw_xc2
+// raw_xc3
+// raw_xc4
+// raw_xc5
+// raw_xc6
+// raw_xc7
+// raw_xc8
+// raw_xc9
+// raw_xca
+// raw_xcb
+// raw_xcc
+// raw_xcd
+// raw_xce
+// raw_xcf
+// raw_xd0
+// raw_xd1
+// raw_xd2
+// raw_xd3
+// raw_xd4
+// raw_xd5
+// raw_xd6
+// raw_xd7
+// raw_xd8
+// raw_xd9
+// raw_xda
+// raw_xdb
+// raw_xdc
+// raw_xdd
+// raw_xde
+// raw_xdf
+// raw_xe0
+// raw_xe1
+// raw_xe2
+// raw_xe3
+// raw_xe4
+// raw_xe5
+// raw_xe6
+// raw_xe7
+// raw_xe8
+// raw_xe9
+// raw_xea
+// raw_xeb
+// raw_xec
+// raw_xed
+// raw_xee
+// raw_xef
+// raw_xf0
+// raw_xf1
+// raw_xf2
+// raw_xf3
+// raw_xf4
+// raw_xf5
+// raw_xf6
+// raw_xf7
+// raw_xf8
+// raw_xf9
+// raw_xfa
+// raw_xfb
+// raw_xfc
+// raw_xfd
+// raw_xfe
+// raw_xff
+// T_option_t
+// T_option_p
+// T_option_err
+// T_esc_seq
+// T_eol
+// T_basic_char
+// T_raw_char
+// T_comment
+// T_ws
+// T_angled_string
+// T_c_literal
+// T_c_string
+// T_xc_str
+// T_unquoted_string
+// T_file_inclusion
+// T_identifier
+// T_int_no
+// T_raw_characters
+// T_lr1_constant_symbols
+// T_error_symbols
+// T_eocode
+// T_AD
+// T_AB
+// T_parallel_la_boundary
+// T_arbitrator_code
+// T_parallel_parser
+// T_parallel_thread_function
+// T_parallel_control_monitor
+// T_fsm
+// T_fsm_id
+// T_fsm_filename
+// T_fsm_namespace
+// T_fsm_class
+// T_fsm_version
+// T_fsm_date
+// T_fsm_debug
+// T_fsm_comments
+// T_terminals
+// T_enumeration
+// T_file_name
+// T_name_space
+// T_sym_class
+// T_rules
+// T_lhs
+// T_user_declaration
+// T_user_prefix_declaration
+// T_user_suffix_declaration
+// T_constructor
+// T_destructor
+// T_op
+// T_failed
+// T_user_implementation
+// T_user_imp_tbl
+// T_user_imp_sym
+// T_constant_defs
+// T_terminals_refs
+// T_terminals_sufx
+// T_lrk_sufx
+// T_selector
+// T_NULL
+// T_2colon
+// T_block
+// T_syntax_code
+// T_fsm_class_phrase
+// T_fsm_phrase
+// T_parallel_parser_phrase
+// T_enum_phrase
+// T_rc_phrase
+// T_rule_lhs_phrase
+// T_parallel_monitor_phrase
+// rule_def
+// T_rules_phrase
+// T_subrule_def
+// T_subrules_phrase
+// T_in_stbl
+// refered_T
+// rule_in_stbl
+// LR1_eog
+// T_terminal_def
+// table_entry
+// T_sym_tbl_report_card
+// T_terminals_phrase
+// T_error_symbols_phrase
+// T_lr1_k_phrase
+yacco2::UCHAR LA1_Cparallel_oper[] ={
+72
+,0,2
+,1,255
+,2,255
+,3,255
+,4,255
+,5,255
+,6,255
+,7,255
+,8,255
+,9,255
+,10,255
+,11,255
+,12,255
+,13,255
+,14,255
+,15,255
+,16,239
+,17,255
+,18,255
+,19,255
+,20,255
+,21,255
+,22,255
+,23,255
+,24,255
+,25,255
+,26,255
+,27,255
+,28,255
+,29,255
+,30,255
+,31,255
+,32,255
+,33,255
+,34,255
+,35,255
+,36,255
+,37,255
+,38,255
+,39,255
+,40,255
+,41,255
+,42,255
+,43,255
+,44,255
+,45,255
+,46,255
+,47,255
+,48,255
+,49,255
+,50,255
+,51,255
+,52,255
+,53,255
+,54,255
+,55,255
+,56,255
+,57,255
+,58,255
+,59,255
+,60,255
+,61,255
+,62,255
+,63,255
+,64,255
+,65,255
+,66,255
+,67,255
+,68,255
+,69,255
+,70,255
+,71,1
+};
+extern yacco2::State S1_Cparallel_oper;
+extern yacco2::State S2_Cparallel_oper;
+extern yacco2::State S3_Cparallel_oper;
+extern yacco2::State S4_Cparallel_oper;
+extern yacco2::State S5_Cparallel_oper;
+extern yacco2::State S6_Cparallel_oper;
+extern yacco2::State S7_Cparallel_oper;
+extern yacco2::State S8_Cparallel_oper;
+extern yacco2::State S9_Cparallel_oper;
+extern yacco2::State S10_Cparallel_oper;
+extern yacco2::State S11_Cparallel_oper;
+extern yacco2::State S12_Cparallel_oper;
+extern yacco2::State S13_Cparallel_oper;
+extern yacco2::State S14_Cparallel_oper;
+struct S1std_Cparallel_oper{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S1std_Cparallel_oper S1st_Cparallel_oper = {
+ 3
+ ,
+ {// start of table
+ {42,(State*)&S2_Cparallel_oper} // shift sym: raw_dbl_quote
+ ,{132,(State*)&S10_Cparallel_oper} // shift sym: raw_vertical_line
+ ,{569,(State*)&S1_Cparallel_oper} // accept sym: Rparallel_oper
+ }// end of shift table
+};
+yacco2::State S1_Cparallel_oper = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Cparallel_oper,0,0,0,0};
+struct S2std_Cparallel_oper{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S2std_Cparallel_oper S2st_Cparallel_oper = {
+ 1
+ ,
+ {// start of table
+ {132,(State*)&S3_Cparallel_oper} // shift sym: raw_vertical_line
+ }// end of shift table
+};
+yacco2::State S2_Cparallel_oper = //State's vectored into symbol: "\""
+{2
+,0,0,0,0,(Shift_tbl*)&S2st_Cparallel_oper,0,0,0,0};
+struct S3std_Cparallel_oper{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S3std_Cparallel_oper S3st_Cparallel_oper = {
+ 2
+ ,
+ {// start of table
+ {124,(State*)&S4_Cparallel_oper} // shift sym: raw_t
+ ,{132,(State*)&S7_Cparallel_oper} // shift sym: raw_vertical_line
+ }// end of shift table
+};
+yacco2::State S3_Cparallel_oper = //State's vectored into symbol: "|"
+{3
+,0,0,0,0,(Shift_tbl*)&S3st_Cparallel_oper,0,0,0,0};
+struct S4std_Cparallel_oper{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S4std_Cparallel_oper S4st_Cparallel_oper = {
+ 1
+ ,
+ {// start of table
+ {132,(State*)&S5_Cparallel_oper} // shift sym: raw_vertical_line
+ }// end of shift table
+};
+yacco2::State S4_Cparallel_oper = //State's vectored into symbol: "t"
+{4
+,0,0,0,0,(Shift_tbl*)&S4st_Cparallel_oper,0,0,0,0};
+struct S5std_Cparallel_oper{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S5std_Cparallel_oper S5st_Cparallel_oper = {
+ 1
+ ,
+ {// start of table
+ {42,(State*)&S6_Cparallel_oper} // shift sym: raw_dbl_quote
+ }// end of shift table
+};
+yacco2::State S5_Cparallel_oper = //State's vectored into symbol: "|"
+{5
+,0,0,0,0,(Shift_tbl*)&S5st_Cparallel_oper,0,0,0,0};
+struct S6rtd_Cparallel_oper{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Cparallel_oper S6rt_Cparallel_oper = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cparallel_oper,Cparallel_oper::rhs4_Rparallel_oper_}
+ }// end of reduce table
+};
+yacco2::State S6_Cparallel_oper = //State's vectored into symbol: "\""
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Cparallel_oper,0,0,0};
+struct S7std_Cparallel_oper{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S7std_Cparallel_oper S7st_Cparallel_oper = {
+ 1
+ ,
+ {// start of table
+ {132,(State*)&S8_Cparallel_oper} // shift sym: raw_vertical_line
+ }// end of shift table
+};
+yacco2::State S7_Cparallel_oper = //State's vectored into symbol: "|"
+{7
+,0,0,0,0,(Shift_tbl*)&S7st_Cparallel_oper,0,0,0,0};
+struct S8std_Cparallel_oper{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S8std_Cparallel_oper S8st_Cparallel_oper = {
+ 1
+ ,
+ {// start of table
+ {42,(State*)&S9_Cparallel_oper} // shift sym: raw_dbl_quote
+ }// end of shift table
+};
+yacco2::State S8_Cparallel_oper = //State's vectored into symbol: "|"
+{8
+,0,0,0,0,(Shift_tbl*)&S8st_Cparallel_oper,0,0,0,0};
+struct S9rtd_Cparallel_oper{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Cparallel_oper S9rt_Cparallel_oper = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cparallel_oper,Cparallel_oper::rhs2_Rparallel_oper_}
+ }// end of reduce table
+};
+yacco2::State S9_Cparallel_oper = //State's vectored into symbol: "\""
+{9
+,0,0,0,0,0,(Reduce_tbl*)&S9rt_Cparallel_oper,0,0,0};
+struct S10std_Cparallel_oper{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S10std_Cparallel_oper S10st_Cparallel_oper = {
+ 2
+ ,
+ {// start of table
+ {124,(State*)&S11_Cparallel_oper} // shift sym: raw_t
+ ,{132,(State*)&S13_Cparallel_oper} // shift sym: raw_vertical_line
+ }// end of shift table
+};
+yacco2::State S10_Cparallel_oper = //State's vectored into symbol: "|"
+{10
+,0,0,0,0,(Shift_tbl*)&S10st_Cparallel_oper,0,0,0,0};
+struct S11std_Cparallel_oper{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S11std_Cparallel_oper S11st_Cparallel_oper = {
+ 1
+ ,
+ {// start of table
+ {132,(State*)&S12_Cparallel_oper} // shift sym: raw_vertical_line
+ }// end of shift table
+};
+yacco2::State S11_Cparallel_oper = //State's vectored into symbol: "t"
+{11
+,0,0,0,0,(Shift_tbl*)&S11st_Cparallel_oper,0,0,0,0};
+struct S12rtd_Cparallel_oper{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S12rtd_Cparallel_oper S12rt_Cparallel_oper = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cparallel_oper,Cparallel_oper::rhs3_Rparallel_oper_}
+ }// end of reduce table
+};
+yacco2::State S12_Cparallel_oper = //State's vectored into symbol: "|"
+{12
+,0,0,0,0,0,(Reduce_tbl*)&S12rt_Cparallel_oper,0,0,0};
+struct S13std_Cparallel_oper{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S13std_Cparallel_oper S13st_Cparallel_oper = {
+ 1
+ ,
+ {// start of table
+ {132,(State*)&S14_Cparallel_oper} // shift sym: raw_vertical_line
+ }// end of shift table
+};
+yacco2::State S13_Cparallel_oper = //State's vectored into symbol: "|"
+{13
+,0,0,0,0,(Shift_tbl*)&S13st_Cparallel_oper,0,0,0,0};
+struct S14rtd_Cparallel_oper{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S14rtd_Cparallel_oper S14rt_Cparallel_oper = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cparallel_oper,Cparallel_oper::rhs1_Rparallel_oper_}
+ }// end of reduce table
+};
+yacco2::State S14_Cparallel_oper = //State's vectored into symbol: "|"
+{14
+,0,0,0,0,0,(Reduce_tbl*)&S14rt_Cparallel_oper,0,0,0};
diff --git a/web/yacco2/compiler/grammars/parallel_parser_ph_th.cpp b/web/yacco2/compiler/grammars/parallel_parser_ph_th.cpp
new file mode 100644
index 0000000000..9114e93c96
--- /dev/null
+++ b/web/yacco2/compiler/grammars/parallel_parser_ph_th.cpp
@@ -0,0 +1,482 @@
+/*
+ File: parallel_parser_ph_th.cpp
+ Date and Time: Fri Jan 30 18:55:19 2015
+*/
+#include "parallel_parser_ph_th.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_parallel_parser_ph_th;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 12;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[4] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[5] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[6] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[7] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[8] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[9] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[10] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[11] = new Per_rule_s_reuse_table();
+}
+ Cparallel_parser_ph_th::
+ Cparallel_parser_ph_th()
+ :yacco2::CAbs_fsm
+ ("parallel_parser_ph_th.lex"
+ ,"1.0"
+ ,"11 mar 2004"
+ ,false
+ ,"Parse grammar's parallel-parser construct."
+ ,"Fri Jan 30 18:55:19 2015 "
+ ,S1_Cparallel_parser_ph_th){
+
+ parallel_parser_phrase_ = 0;
+
+ }
+
+Cparallel_parser_ph_th::~Cparallel_parser_ph_th(){
+
+ for(int x = 0;x < 12;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cparallel_parser_ph_th::failed(){
+ return false;
+ }
+ void Cparallel_parser_ph_th::op(){
+ if(parallel_parser_phrase_ != 0){
+ delete parallel_parser_phrase_;
+ parallel_parser_phrase_ = 0;
+ }
+ parallel_parser_phrase_ = new T_parallel_parser_phrase;
+ parallel_parser_phrase_->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ AST* t = new AST(*parallel_parser_phrase_);
+ parallel_parser_phrase_->phrase_tree(t);
+
+}
+int Cparallel_parser_ph_th::rhs_to_rules_mapping_[25] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,2 // subrule 4 for rule 3
+ ,2 // subrule 5 for rule 3
+ ,3 // subrule 6 for rule 4
+ ,3 // subrule 7 for rule 4
+ ,4 // subrule 8 for rule 5
+ ,5 // subrule 9 for rule 6
+ ,6 // subrule 10 for rule 7
+ ,6 // subrule 11 for rule 7
+ ,6 // subrule 12 for rule 7
+ ,7 // subrule 13 for rule 8
+ ,7 // subrule 14 for rule 8
+ ,7 // subrule 15 for rule 8
+ ,8 // subrule 16 for rule 9
+ ,8 // subrule 17 for rule 9
+ ,9 // subrule 18 for rule 10
+ ,10 // subrule 19 for rule 11
+ ,10 // subrule 20 for rule 11
+ ,10 // subrule 21 for rule 11
+ ,11 // subrule 22 for rule 12
+ ,11 // subrule 23 for rule 12
+ ,11 // subrule 24 for rule 12
+};
+Rparallel_parser_phrase::Rparallel_parser_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rparallel_parser_phrase",0,Cparallel_parser_ph_th::R_Rparallel_parser_phrase_,P,false,false){
+}
+
+void Rparallel_parser_phrase::sr1(){
+
+ Cparallel_parser_ph_th* fsm =
+ (Cparallel_parser_ph_th*)rule_info__.parser__->fsm_tbl__;
+ RSVP(fsm->parallel_parser_phrase_);
+ fsm->parallel_parser_phrase_ = 0;
+
+}
+
+Rlint::Rlint(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlint",0,Cparallel_parser_ph_th::R_Rlint_,P,false,false){
+}
+
+Ropen_par::Ropen_par(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Ropen_par",0,Cparallel_parser_ph_th::R_Ropen_par_,P,false,false){
+}
+
+void Ropen_par::sr1(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_no_open_parenthesis;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rclose_par::Rclose_par(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rclose_par",0,Cparallel_parser_ph_th::R_Rclose_par_,P,false,false){
+}
+
+void Rclose_par::sr1(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_no_close_parenthesis;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rparameters::Rparameters(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rparameters",0,Cparallel_parser_ph_th::R_Rparameters_,P,false,false){
+}
+
+Rpp_thread_fnct_phrase::Rpp_thread_fnct_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rpp_thread_fnct_phrase",0,Cparallel_parser_ph_th::R_Rpp_thread_fnct_phrase_,P,false,false){
+}
+
+void Rpp_thread_fnct_phrase::sr1(){
+ struct SF{
+ Rpp_thread_fnct* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Rlint* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ Rpp_thread_fnct_id* p3__;
+ State* s3__;
+ bool abort3__;
+ Rule_s_reuse_entry* rule_s_reuse_entry3__;
+ Rlint* p4__;
+ State* s4__;
+ bool abort4__;
+ Rule_s_reuse_entry* rule_s_reuse_entry4__;
+ R3asterics* p5__;
+ State* s5__;
+ bool abort5__;
+ Rule_s_reuse_entry* rule_s_reuse_entry5__;
+ Rlint* p6__;
+ State* s6__;
+ bool abort6__;
+ Rule_s_reuse_entry* rule_s_reuse_entry6__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(6);
+
+ T_parallel_thread_function* pp_fnct = sf->p1__->pp_fnct_;
+ pp_fnct->identifier(sf->p3__->id_);
+ Cparallel_parser_ph_th* fsm =
+ (Cparallel_parser_ph_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->parallel_parser_phrase_->pp_funct(pp_fnct);
+
+}
+
+Rpp_thread_fnct::Rpp_thread_fnct(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rpp_thread_fnct",0,Cparallel_parser_ph_th::R_Rpp_thread_fnct_,P,false,false){
+}
+
+void Rpp_thread_fnct::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_parallel_thread_function* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ pp_fnct_ = sf->p2__;
+
+}
+
+void Rpp_thread_fnct::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ pp_fnct_ = 0;
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_pp_thread_function_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rpp_thread_fnct::sr3(){
+
+ pp_fnct_ = 0;
+ CAbs_lr1_sym* sym = new Err_no_pp_thread_function_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rpp_thread_fnct_id::Rpp_thread_fnct_id(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rpp_thread_fnct_id",0,Cparallel_parser_ph_th::R_Rpp_thread_fnct_id_,P,false,false){
+}
+
+void Rpp_thread_fnct_id::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_identifier* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ id_ = sf->p2__;
+
+}
+
+void Rpp_thread_fnct_id::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ id_ = 0;
+ CAbs_lr1_sym* sym = new Err_no_pp_fnct_id_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rpp_thread_fnct_id::sr3(){
+
+ id_ = 0;
+ CAbs_lr1_sym* sym = new Err_no_pp_fnct_id_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+R3asterics::R3asterics(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("R3asterics",0,Cparallel_parser_ph_th::R_R3asterics_,P,false,false){
+}
+
+void R3asterics::sr2(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_no_syntax_code_end_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rpp_la_bndary_phrase::Rpp_la_bndary_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rpp_la_bndary_phrase",0,Cparallel_parser_ph_th::R_Rpp_la_bndary_phrase_,P,false,false){
+}
+
+void Rpp_la_bndary_phrase::sr1(){
+ struct SF{
+ Rpp_la_bndary* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Rlint* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ Rpp_la_bndary_stc* p3__;
+ State* s3__;
+ bool abort3__;
+ Rule_s_reuse_entry* rule_s_reuse_entry3__;
+ Rlint* p4__;
+ State* s4__;
+ bool abort4__;
+ Rule_s_reuse_entry* rule_s_reuse_entry4__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(4);
+
+ pp_la_bndary_ = sf->p1__->pp_la_bndary_;
+ pp_la_bndary_->la_supplier(sf->p3__->la_exp_->la_tok_can());
+ sf->p3__->la_exp_->zero_la_tok_can();
+ Cparallel_parser_ph_th* fsm =
+ (Cparallel_parser_ph_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->parallel_parser_phrase_->la_bndry(pp_la_bndary_);
+
+}
+
+Rpp_la_bndary::Rpp_la_bndary(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rpp_la_bndary",0,Cparallel_parser_ph_th::R_Rpp_la_bndary_,P,false,false){
+}
+
+void Rpp_la_bndary::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_parallel_la_boundary* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ pp_la_bndary_ = sf->p2__;
+
+}
+
+void Rpp_la_bndary::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ pp_la_bndary_ = 0;
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_pp_bndry_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rpp_la_bndary::sr3(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ pp_la_bndary_ = 0;
+ CAbs_lr1_sym* sym = new Err_no_pp_bndry_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rpp_la_bndary_stc::Rpp_la_bndary_stc(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rpp_la_bndary_stc",0,Cparallel_parser_ph_th::R_Rpp_la_bndary_stc_,P,false,false){
+}
+
+void Rpp_la_bndary_stc::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_la_expr_src* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ la_exp_ = sf->p2__;
+
+}
+
+void Rpp_la_bndary_stc::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ la_exp_ = 0;
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rpp_la_bndary_stc::sr3(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ la_exp_ = 0;
+ CAbs_lr1_sym* sym = new Err_no_pp_la_bndary_expr_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
diff --git a/web/yacco2/compiler/grammars/parallel_parser_ph_th.fsc b/web/yacco2/compiler/grammars/parallel_parser_ph_th.fsc
new file mode 100644
index 0000000000..e1b8b214e0
--- /dev/null
+++ b/web/yacco2/compiler/grammars/parallel_parser_ph_th.fsc
@@ -0,0 +1,26 @@
+/*
+ File: parallel_parser_ph_th.fsc
+ Date and Time: Fri Jan 30 18:55:19 2015
+*/
+transitive y
+grammar-name "parallel_parser_ph_th"
+name-space "NS_parallel_parser_ph_th"
+thread-name "TH_parallel_parser_ph_th"
+monolithic n
+file-name "parallel_parser_ph_th.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 2
+ raw_open_bracket
+ LR1_questionable_shift_operator
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 1
+ NS_lint_balls::TH_lint_balls
+end-list-of-transitive-threads
+list-of-used-threads 4
+ NS_identifier::TH_identifier
+ NS_la_expr_src::TH_la_expr_src
+ NS_lint_balls::TH_lint_balls
+ NS_o2_code_end::TH_o2_code_end
+end-list-of-used-threads
+fsm-comments
+"Parse grammar's parallel-parser construct."
diff --git a/web/yacco2/compiler/grammars/parallel_parser_ph_th.h b/web/yacco2/compiler/grammars/parallel_parser_ph_th.h
new file mode 100644
index 0000000000..2f4219d827
--- /dev/null
+++ b/web/yacco2/compiler/grammars/parallel_parser_ph_th.h
@@ -0,0 +1,197 @@
+/*
+ File: parallel_parser_ph_th.h
+ Date and Time: Fri Jan 30 18:55:19 2015
+*/
+#ifndef __parallel_parser_ph_th_h__
+#define __parallel_parser_ph_th_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "lint_balls.h"
+#include "identifier.h"
+#include "o2_sdc.h"
+#include "o2_code_end.h"
+#include "la_expr_src.h"
+
+extern yacco2::Thread_entry ITH_parallel_parser_ph_th;
+
+extern yacco2::State S1_Cparallel_parser_ph_th;
+namespace NS_parallel_parser_ph_th {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_parallel_parser_ph_th(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_parallel_parser_ph_th(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[12];
+};
+class Cparallel_parser_ph_th: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rparallel_parser_phrase_ = 569//start_of_rule_list + 0
+ ,rhs1_Rparallel_parser_phrase_ = 1
+ ,R_Rlint_ = 570//start_of_rule_list + 2
+ ,rhs1_Rlint_ = 2
+ ,rhs2_Rlint_ = 3
+ ,R_Ropen_par_ = 571//start_of_rule_list + 4
+ ,rhs1_Ropen_par_ = 4
+ ,rhs2_Ropen_par_ = 5
+ ,R_Rclose_par_ = 572//start_of_rule_list + 6
+ ,rhs1_Rclose_par_ = 6
+ ,rhs2_Rclose_par_ = 7
+ ,R_Rparameters_ = 573//start_of_rule_list + 8
+ ,rhs1_Rparameters_ = 8
+ ,R_Rpp_thread_fnct_phrase_ = 574//start_of_rule_list + 10
+ ,rhs1_Rpp_thread_fnct_phrase_ = 9
+ ,R_Rpp_thread_fnct_ = 575//start_of_rule_list + 12
+ ,rhs1_Rpp_thread_fnct_ = 10
+ ,rhs2_Rpp_thread_fnct_ = 11
+ ,rhs3_Rpp_thread_fnct_ = 12
+ ,R_Rpp_thread_fnct_id_ = 576//start_of_rule_list + 14
+ ,rhs1_Rpp_thread_fnct_id_ = 13
+ ,rhs2_Rpp_thread_fnct_id_ = 14
+ ,rhs3_Rpp_thread_fnct_id_ = 15
+ ,R_R3asterics_ = 577//start_of_rule_list + 16
+ ,rhs1_R3asterics_ = 16
+ ,rhs2_R3asterics_ = 17
+ ,R_Rpp_la_bndary_phrase_ = 578//start_of_rule_list + 18
+ ,rhs1_Rpp_la_bndary_phrase_ = 18
+ ,R_Rpp_la_bndary_ = 579//start_of_rule_list + 20
+ ,rhs1_Rpp_la_bndary_ = 19
+ ,rhs2_Rpp_la_bndary_ = 20
+ ,rhs3_Rpp_la_bndary_ = 21
+ ,R_Rpp_la_bndary_stc_ = 580//start_of_rule_list + 22
+ ,rhs1_Rpp_la_bndary_stc_ = 22
+ ,rhs2_Rpp_la_bndary_stc_ = 23
+ ,rhs3_Rpp_la_bndary_stc_ = 24
+ };
+ //no of la sets = 4
+ //no of states = 44
+ Cparallel_parser_ph_th();
+ ~Cparallel_parser_ph_th();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[25];
+
+ public:
+ T_parallel_parser_phrase* parallel_parser_phrase_;
+
+ };
+struct Rparallel_parser_phrase;
+struct Rlint;
+struct Ropen_par;
+struct Rclose_par;
+struct Rparameters;
+struct Rpp_thread_fnct_phrase;
+struct Rpp_thread_fnct;
+struct Rpp_thread_fnct_id;
+struct R3asterics;
+struct Rpp_la_bndary_phrase;
+struct Rpp_la_bndary;
+struct Rpp_la_bndary_stc;
+struct Rparallel_parser_phrase:public yacco2::CAbs_lr1_sym {
+ Rparallel_parser_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rlint:public yacco2::CAbs_lr1_sym {
+ Rlint(yacco2::Parser* P);
+ public:
+};
+
+struct Ropen_par:public yacco2::CAbs_lr1_sym {
+ Ropen_par(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rclose_par:public yacco2::CAbs_lr1_sym {
+ Rclose_par(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rparameters:public yacco2::CAbs_lr1_sym {
+ Rparameters(yacco2::Parser* P);
+ public:
+};
+
+struct Rpp_thread_fnct_phrase:public yacco2::CAbs_lr1_sym {
+ Rpp_thread_fnct_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rpp_thread_fnct:public yacco2::CAbs_lr1_sym {
+ Rpp_thread_fnct(yacco2::Parser* P);
+
+ public: T_parallel_thread_function* pp_fnct_;
+
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Rpp_thread_fnct_id:public yacco2::CAbs_lr1_sym {
+ Rpp_thread_fnct_id(yacco2::Parser* P);
+ public:T_identifier* id_;
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct R3asterics:public yacco2::CAbs_lr1_sym {
+ R3asterics(yacco2::Parser* P);
+ public:
+ void sr2();
+};
+
+struct Rpp_la_bndary_phrase:public yacco2::CAbs_lr1_sym {
+ Rpp_la_bndary_phrase(yacco2::Parser* P);
+
+ public:T_parallel_la_boundary* pp_la_bndary_;
+
+ public:
+ void sr1();
+};
+
+struct Rpp_la_bndary:public yacco2::CAbs_lr1_sym {
+ Rpp_la_bndary(yacco2::Parser* P);
+
+ public:T_parallel_la_boundary* pp_la_bndary_;
+
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Rpp_la_bndary_stc:public yacco2::CAbs_lr1_sym {
+ Rpp_la_bndary_stc(yacco2::Parser* P);
+
+ public:
+ T_la_expr_src* la_exp_;
+
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/parallel_parser_ph_th.lex b/web/yacco2/compiler/grammars/parallel_parser_ph_th.lex
new file mode 100644
index 0000000000..93ffab2767
--- /dev/null
+++ b/web/yacco2/compiler/grammars/parallel_parser_ph_th.lex
@@ -0,0 +1,283 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: parallel_parser_ph_th.lex
+Dates: 15 Mar 2004
+Purpose: parse parallel-parser phrase
+Output: parallel-parser-phrase
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |parallel_parser_phrase_th| thread.\fbreak
+Parse parallel-parser phrase.
+\fbreak
+Example of a parallel-parser construct to parse:\fbreak
+\listing{"/usr/local/yacco2/diagrams+etc/ppprsr.txt"}
+
+@/
+fsm
+(fsm-id "parallel_parser_ph_th.lex"
+,fsm-filename parallel_parser_ph_th
+,fsm-namespace NS_parallel_parser_ph_th
+,fsm-class Cparallel_parser_ph_th{
+ user-prefix-declaration
+#include "lint_balls.h"
+#include "identifier.h"
+#include "o2_sdc.h"
+#include "o2_code_end.h"
+#include "la_expr_src.h"
+ ***
+ user-declaration
+ public:
+ T_parallel_parser_phrase* parallel_parser_phrase_;
+ ***
+ constructor
+ parallel_parser_phrase_ = 0;
+ ***
+ op
+ if(parallel_parser_phrase_ != 0){
+ delete parallel_parser_phrase_;
+ parallel_parser_phrase_ = 0;
+ }
+ parallel_parser_phrase_ = new T_parallel_parser_phrase;
+ parallel_parser_phrase_->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ AST* t = new AST(*parallel_parser_phrase_);
+ parallel_parser_phrase_->phrase_tree(t);
+ ***
+}
+,fsm-version "1.0",fsm-date "11 mar 2004",fsm-debug "false"
+,fsm-comments "Parse grammar's parallel-parser construct.")
+parallel-parser
+(
+ parallel-thread-function
+ TH_parallel_parser_ph_th
+ ***
+ parallel-la-boundary
+ eolr
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rparallel_parser_phrase (){
+ -> Rlint
+ Ropen_par
+ Rlint
+ Rparameters
+ Rclose_par
+ Rlint {
+ op
+ Cparallel_parser_ph_th* fsm =
+ (Cparallel_parser_ph_th*)rule_info__.parser__->fsm_tbl__;
+ RSVP(fsm->parallel_parser_phrase_);
+ fsm->parallel_parser_phrase_ = 0;
+ ***
+ }
+}
+
+Rlint (){
+ -> ||| lint NS_lint_balls::TH_lint_balls
+ ->
+}
+
+Ropen_par (){
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_open_parenthesis;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> "("
+}
+
+Rclose_par (){
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_close_parenthesis;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ")"
+}
+
+Rparameters (){
+ -> Rpp_thread_fnct_phrase
+ Rpp_la_bndary_phrase
+}
+
+Rpp_thread_fnct_phrase (){
+ -> Rpp_thread_fnct Rlint
+ Rpp_thread_fnct_id
+ Rlint R3asterics Rlint {
+ op
+ T_parallel_thread_function* pp_fnct = sf->p1__->pp_fnct_;
+ pp_fnct->identifier(sf->p3__->id_);
+ Cparallel_parser_ph_th* fsm =
+ (Cparallel_parser_ph_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->parallel_parser_phrase_->pp_funct(pp_fnct);
+ ***
+ }
+}
+
+Rpp_thread_fnct (
+lhs{
+ user-declaration
+ public: T_parallel_thread_function* pp_fnct_;
+ ***
+ }
+){
+ -> ||| "#parallel-thread-function" NS_identifier::TH_identifier {
+ op
+ pp_fnct_ = sf->p2__;
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ pp_fnct_ = 0;
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_pp_thread_function_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ pp_fnct_ = 0;
+ CAbs_lr1_sym* sym = new Err_no_pp_thread_function_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rpp_thread_fnct_id (
+lhs{user-declaration public:T_identifier* id_;***}
+){
+ -> ||| "identifier" NS_identifier::TH_identifier {
+ op
+ id_ = sf->p2__;
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ id_ = 0;
+ CAbs_lr1_sym* sym = new Err_no_pp_fnct_id_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ id_ = 0;
+ CAbs_lr1_sym* sym = new Err_no_pp_fnct_id_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+R3asterics (){
+ -> ||| "#***" NS_o2_code_end::TH_o2_code_end
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_syntax_code_end_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rpp_la_bndary_phrase (
+lhs{
+ user-declaration
+ public:T_parallel_la_boundary* pp_la_bndary_;
+ ***
+ }
+){
+ -> Rpp_la_bndary Rlint Rpp_la_bndary_stc Rlint {
+ op
+ pp_la_bndary_ = sf->p1__->pp_la_bndary_;
+ pp_la_bndary_->la_supplier(sf->p3__->la_exp_->la_tok_can());
+ sf->p3__->la_exp_->zero_la_tok_can();
+ Cparallel_parser_ph_th* fsm =
+ (Cparallel_parser_ph_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->parallel_parser_phrase_->la_bndry(pp_la_bndary_);
+ ***
+ }
+}
+
+Rpp_la_bndary (
+lhs{
+ user-declaration
+ public:T_parallel_la_boundary* pp_la_bndary_;
+*** }
+){
+ -> ||| "#parallel-la-boundary" NS_identifier::TH_identifier {
+ op
+ pp_la_bndary_ = sf->p2__;
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ pp_la_bndary_ = 0;
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_pp_bndry_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ pp_la_bndary_ = 0;
+ CAbs_lr1_sym* sym = new Err_no_pp_bndry_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rpp_la_bndary_stc (
+lhs{
+ user-declaration
+ public:
+ T_la_expr_src* la_exp_;
+ ***
+ }
+){
+ -> ||| "la-express-source" NS_la_expr_src::TH_la_expr_src {
+ op
+ la_exp_ = sf->p2__;
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ la_exp_ = 0;
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ la_exp_ = 0;
+ CAbs_lr1_sym* sym = new Err_no_pp_la_bndary_expr_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/parallel_parser_ph_thsym.cpp b/web/yacco2/compiler/grammars/parallel_parser_ph_thsym.cpp
new file mode 100644
index 0000000000..d21f4446a6
--- /dev/null
+++ b/web/yacco2/compiler/grammars/parallel_parser_ph_thsym.cpp
@@ -0,0 +1,402 @@
+/*
+ File: parallel_parser_ph_thsym.cpp
+ Date and Time: Fri Jan 30 18:55:19 2015
+*/
+#include "parallel_parser_ph_th.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_parallel_parser_ph_th;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_parallel_parser_ph_th::TH_parallel_parser_ph_th(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_parallel_parser_ph_th;
+ NS_parallel_parser_ph_th::Cparallel_parser_ph_th Cparallel_parser_ph_th_;// parallel-parser's parse table
+#define ssPARSE_TABLE Cparallel_parser_ph_th_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_parallel_parser_ph_th::PROC_TH_parallel_parser_ph_th(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_parallel_parser_ph_th";
+ static bool one_time(false);
+ static NS_parallel_parser_ph_th::Cparallel_parser_ph_th* NS_parallel_parser_ph_th_Cparallel_parser_ph_th_(0);// parallel-parser's fsm table
+ static Parser* NS_parallel_parser_ph_th_Cparallel_parser_ph_th_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_parallel_parser_ph_th_Cparallel_parser_ph_th_ = new NS_parallel_parser_ph_th::Cparallel_parser_ph_th();// parallel-parser's fsm table
+ NS_parallel_parser_ph_th_Cparallel_parser_ph_th_parser = new Parser(*NS_parallel_parser_ph_th_Cparallel_parser_ph_th_,Caller_pp);
+ }
+ proc_parser = NS_parallel_parser_ph_th_Cparallel_parser_ph_th_parser;
+#include "wproc_pp_core.h"
+}
+void
+Cparallel_parser_ph_th::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rparallel_parser_phrase_:{
+ Rparallel_parser_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rparallel_parser_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rparallel_parser_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 6;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rlint_:{
+ Rlint* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rlint_:{
+ Rlint* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs1_Ropen_par_:{
+ Ropen_par* sym;
+ if(re->rule_ == 0){
+ sym = new Ropen_par(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ropen_par*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Ropen_par_:{
+ Ropen_par* sym;
+ if(re->rule_ == 0){
+ sym = new Ropen_par(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ropen_par*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rclose_par_:{
+ Rclose_par* sym;
+ if(re->rule_ == 0){
+ sym = new Rclose_par(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclose_par*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rclose_par_:{
+ Rclose_par* sym;
+ if(re->rule_ == 0){
+ sym = new Rclose_par(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclose_par*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rparameters_:{
+ Rparameters* sym;
+ if(re->rule_ == 0){
+ sym = new Rparameters(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rparameters*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rpp_thread_fnct_phrase_:{
+ Rpp_thread_fnct_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rpp_thread_fnct_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rpp_thread_fnct_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 6;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rpp_thread_fnct_:{
+ Rpp_thread_fnct* sym;
+ if(re->rule_ == 0){
+ sym = new Rpp_thread_fnct(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rpp_thread_fnct*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rpp_thread_fnct_:{
+ Rpp_thread_fnct* sym;
+ if(re->rule_ == 0){
+ sym = new Rpp_thread_fnct(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rpp_thread_fnct*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rpp_thread_fnct_:{
+ Rpp_thread_fnct* sym;
+ if(re->rule_ == 0){
+ sym = new Rpp_thread_fnct(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rpp_thread_fnct*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rpp_thread_fnct_id_:{
+ Rpp_thread_fnct_id* sym;
+ if(re->rule_ == 0){
+ sym = new Rpp_thread_fnct_id(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rpp_thread_fnct_id*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rpp_thread_fnct_id_:{
+ Rpp_thread_fnct_id* sym;
+ if(re->rule_ == 0){
+ sym = new Rpp_thread_fnct_id(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rpp_thread_fnct_id*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rpp_thread_fnct_id_:{
+ Rpp_thread_fnct_id* sym;
+ if(re->rule_ == 0){
+ sym = new Rpp_thread_fnct_id(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rpp_thread_fnct_id*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_R3asterics_:{
+ R3asterics* sym;
+ if(re->rule_ == 0){
+ sym = new R3asterics(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (R3asterics*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_R3asterics_:{
+ R3asterics* sym;
+ if(re->rule_ == 0){
+ sym = new R3asterics(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (R3asterics*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rpp_la_bndary_phrase_:{
+ Rpp_la_bndary_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rpp_la_bndary_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rpp_la_bndary_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 4;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rpp_la_bndary_:{
+ Rpp_la_bndary* sym;
+ if(re->rule_ == 0){
+ sym = new Rpp_la_bndary(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rpp_la_bndary*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rpp_la_bndary_:{
+ Rpp_la_bndary* sym;
+ if(re->rule_ == 0){
+ sym = new Rpp_la_bndary(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rpp_la_bndary*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rpp_la_bndary_:{
+ Rpp_la_bndary* sym;
+ if(re->rule_ == 0){
+ sym = new Rpp_la_bndary(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rpp_la_bndary*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rpp_la_bndary_stc_:{
+ Rpp_la_bndary_stc* sym;
+ if(re->rule_ == 0){
+ sym = new Rpp_la_bndary_stc(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rpp_la_bndary_stc*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rpp_la_bndary_stc_:{
+ Rpp_la_bndary_stc* sym;
+ if(re->rule_ == 0){
+ sym = new Rpp_la_bndary_stc(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rpp_la_bndary_stc*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rpp_la_bndary_stc_:{
+ Rpp_la_bndary_stc* sym;
+ if(re->rule_ == 0){
+ sym = new Rpp_la_bndary_stc(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rpp_la_bndary_stc*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/parallel_parser_ph_thtbl.cpp b/web/yacco2/compiler/grammars/parallel_parser_ph_thtbl.cpp
new file mode 100644
index 0000000000..3f95f4636c
--- /dev/null
+++ b/web/yacco2/compiler/grammars/parallel_parser_ph_thtbl.cpp
@@ -0,0 +1,924 @@
+/*
+ File: parallel_parser_ph_thtbl.cpp
+ Date and Time: Fri Jan 30 18:55:19 2015
+*/
+#include "parallel_parser_ph_th.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_parallel_parser_ph_th;// grammar's ns
+// first set terminals
+// LR1_eolr
+yacco2::UCHAR LA1_Cparallel_parser_ph_th[] ={
+1
+,0,4
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+yacco2::UCHAR LA2_Cparallel_parser_ph_th[] ={
+1
+,0,17
+};
+// raw_close_bracket
+// LR1_questionable_shift_operator
+yacco2::UCHAR LA3_Cparallel_parser_ph_th[] ={
+2
+,0,1
+,6,2
+};
+// raw_close_bracket
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+yacco2::UCHAR LA4_Cparallel_parser_ph_th[] ={
+2
+,0,17
+,6,2
+};
+extern yacco2::State S1_Cparallel_parser_ph_th;
+extern yacco2::State S2_Cparallel_parser_ph_th;
+struct S2ttd_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S2ttd_Cparallel_parser_ph_th S2tt_Cparallel_parser_ph_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_lint_balls
+};
+extern yacco2::State S3_Cparallel_parser_ph_th;
+extern yacco2::State S4_Cparallel_parser_ph_th;
+extern yacco2::State S5_Cparallel_parser_ph_th;
+extern yacco2::State S6_Cparallel_parser_ph_th;
+extern yacco2::State S7_Cparallel_parser_ph_th;
+extern yacco2::State S8_Cparallel_parser_ph_th;
+extern yacco2::State S9_Cparallel_parser_ph_th;
+extern yacco2::State S10_Cparallel_parser_ph_th;
+extern yacco2::State S11_Cparallel_parser_ph_th;
+extern yacco2::State S12_Cparallel_parser_ph_th;
+extern yacco2::State S13_Cparallel_parser_ph_th;
+extern yacco2::State S14_Cparallel_parser_ph_th;
+extern yacco2::State S15_Cparallel_parser_ph_th;
+struct S15ttd_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S15ttd_Cparallel_parser_ph_th S15tt_Cparallel_parser_ph_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S16_Cparallel_parser_ph_th;
+extern yacco2::State S17_Cparallel_parser_ph_th;
+extern yacco2::State S18_Cparallel_parser_ph_th;
+extern yacco2::State S19_Cparallel_parser_ph_th;
+extern yacco2::State S20_Cparallel_parser_ph_th;
+struct S20ttd_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S20ttd_Cparallel_parser_ph_th S20tt_Cparallel_parser_ph_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S21_Cparallel_parser_ph_th;
+extern yacco2::State S22_Cparallel_parser_ph_th;
+extern yacco2::State S23_Cparallel_parser_ph_th;
+extern yacco2::State S24_Cparallel_parser_ph_th;
+extern yacco2::State S25_Cparallel_parser_ph_th;
+extern yacco2::State S26_Cparallel_parser_ph_th;
+extern yacco2::State S27_Cparallel_parser_ph_th;
+struct S27ttd_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S27ttd_Cparallel_parser_ph_th S27tt_Cparallel_parser_ph_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_la_expr_src
+};
+extern yacco2::State S28_Cparallel_parser_ph_th;
+extern yacco2::State S29_Cparallel_parser_ph_th;
+extern yacco2::State S30_Cparallel_parser_ph_th;
+extern yacco2::State S31_Cparallel_parser_ph_th;
+extern yacco2::State S32_Cparallel_parser_ph_th;
+extern yacco2::State S33_Cparallel_parser_ph_th;
+extern yacco2::State S34_Cparallel_parser_ph_th;
+extern yacco2::State S35_Cparallel_parser_ph_th;
+extern yacco2::State S36_Cparallel_parser_ph_th;
+extern yacco2::State S37_Cparallel_parser_ph_th;
+struct S37ttd_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S37ttd_Cparallel_parser_ph_th S37tt_Cparallel_parser_ph_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_o2_code_end
+};
+extern yacco2::State S38_Cparallel_parser_ph_th;
+extern yacco2::State S39_Cparallel_parser_ph_th;
+extern yacco2::State S40_Cparallel_parser_ph_th;
+extern yacco2::State S41_Cparallel_parser_ph_th;
+extern yacco2::State S42_Cparallel_parser_ph_th;
+struct S42ttd_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S42ttd_Cparallel_parser_ph_th S42tt_Cparallel_parser_ph_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S43_Cparallel_parser_ph_th;
+extern yacco2::State S44_Cparallel_parser_ph_th;
+struct S1std_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S1std_Cparallel_parser_ph_th S1st_Cparallel_parser_ph_th = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S2_Cparallel_parser_ph_th} // shift sym: LR1_parallel_operator
+ ,{569,(State*)&S1_Cparallel_parser_ph_th} // accept sym: Rparallel_parser_phrase
+ ,{570,(State*)&S4_Cparallel_parser_ph_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S1pse_Cparallel_parser_ph_th = {3,(State*)&S2_Cparallel_parser_ph_th};
+struct S1rtd_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S1rtd_Cparallel_parser_ph_th S1rt_Cparallel_parser_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cparallel_parser_ph_th,Cparallel_parser_ph_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S1_Cparallel_parser_ph_th = //State's vectored into symbol: " No symbol"
+{1
+,(Shift_entry*)&S1pse_Cparallel_parser_ph_th,0,0,0,(Shift_tbl*)&S1st_Cparallel_parser_ph_th,(Reduce_tbl*)&S1rt_Cparallel_parser_ph_th,(State_s_thread_tbl*)&S2tt_Cparallel_parser_ph_th,0,0};
+struct S2std_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S2std_Cparallel_parser_ph_th S2st_Cparallel_parser_ph_th = {
+ 1
+ ,
+ {// start of table
+ {375,(State*)&S3_Cparallel_parser_ph_th} // shift sym: T_lint
+ }// end of shift table
+};
+yacco2::State S2_Cparallel_parser_ph_th = //State's vectored into symbol: "|||"
+{2
+,0,0,0,0,(Shift_tbl*)&S2st_Cparallel_parser_ph_th,0,0,0,0};
+struct S3rtd_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Cparallel_parser_ph_th S3rt_Cparallel_parser_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cparallel_parser_ph_th,Cparallel_parser_ph_th::rhs1_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S3_Cparallel_parser_ph_th = //State's vectored into symbol: "lint"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_Cparallel_parser_ph_th,0,0,0};
+struct S4std_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S4std_Cparallel_parser_ph_th S4st_Cparallel_parser_ph_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S12_Cparallel_parser_ph_th} // shift sym: LR1_questionable_shift_operator
+ ,{48,(State*)&S13_Cparallel_parser_ph_th} // shift sym: raw_open_bracket
+ ,{571,(State*)&S5_Cparallel_parser_ph_th} // shift sym: Ropen_par
+ }// end of shift table
+};
+yacco2::Shift_entry S4qse_Cparallel_parser_ph_th = {0,(State*)&S12_Cparallel_parser_ph_th};
+yacco2::State S4_Cparallel_parser_ph_th = //State's vectored into symbol: "Rlint"
+{4
+,0,0,0,0,(Shift_tbl*)&S4st_Cparallel_parser_ph_th,0,0,0,(Shift_entry*)&S4qse_Cparallel_parser_ph_th
+};
+struct S5std_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S5std_Cparallel_parser_ph_th S5st_Cparallel_parser_ph_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Cparallel_parser_ph_th} // shift sym: LR1_parallel_operator
+ ,{570,(State*)&S6_Cparallel_parser_ph_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S5pse_Cparallel_parser_ph_th = {3,(State*)&S2_Cparallel_parser_ph_th};
+struct S5rtd_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Cparallel_parser_ph_th S5rt_Cparallel_parser_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cparallel_parser_ph_th,Cparallel_parser_ph_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S5_Cparallel_parser_ph_th = //State's vectored into symbol: "Ropen_par"
+{5
+,(Shift_entry*)&S5pse_Cparallel_parser_ph_th,0,0,0,(Shift_tbl*)&S5st_Cparallel_parser_ph_th,(Reduce_tbl*)&S5rt_Cparallel_parser_ph_th,(State_s_thread_tbl*)&S2tt_Cparallel_parser_ph_th,0,0};
+struct S6std_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S6std_Cparallel_parser_ph_th S6st_Cparallel_parser_ph_th = {
+ 5
+ ,
+ {// start of table
+ {0,(State*)&S14_Cparallel_parser_ph_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S15_Cparallel_parser_ph_th} // shift sym: LR1_parallel_operator
+ ,{573,(State*)&S7_Cparallel_parser_ph_th} // shift sym: Rparameters
+ ,{574,(State*)&S18_Cparallel_parser_ph_th} // shift sym: Rpp_thread_fnct_phrase
+ ,{575,(State*)&S32_Cparallel_parser_ph_th} // shift sym: Rpp_thread_fnct
+ }// end of shift table
+};
+yacco2::Shift_entry S6pse_Cparallel_parser_ph_th = {3,(State*)&S15_Cparallel_parser_ph_th};
+yacco2::Shift_entry S6qse_Cparallel_parser_ph_th = {0,(State*)&S14_Cparallel_parser_ph_th};
+yacco2::State S6_Cparallel_parser_ph_th = //State's vectored into symbol: "Rlint"
+{6
+,(Shift_entry*)&S6pse_Cparallel_parser_ph_th,0,0,0,(Shift_tbl*)&S6st_Cparallel_parser_ph_th,0,(State_s_thread_tbl*)&S15tt_Cparallel_parser_ph_th,0,(Shift_entry*)&S6qse_Cparallel_parser_ph_th
+};
+struct S7std_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S7std_Cparallel_parser_ph_th S7st_Cparallel_parser_ph_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S8_Cparallel_parser_ph_th} // shift sym: LR1_questionable_shift_operator
+ ,{49,(State*)&S9_Cparallel_parser_ph_th} // shift sym: raw_close_bracket
+ ,{572,(State*)&S10_Cparallel_parser_ph_th} // shift sym: Rclose_par
+ }// end of shift table
+};
+yacco2::Shift_entry S7qse_Cparallel_parser_ph_th = {0,(State*)&S8_Cparallel_parser_ph_th};
+yacco2::State S7_Cparallel_parser_ph_th = //State's vectored into symbol: "Rparameters"
+{7
+,0,0,0,0,(Shift_tbl*)&S7st_Cparallel_parser_ph_th,0,0,0,(Shift_entry*)&S7qse_Cparallel_parser_ph_th
+};
+struct S8rtd_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S8rtd_Cparallel_parser_ph_th S8rt_Cparallel_parser_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cparallel_parser_ph_th,Cparallel_parser_ph_th::rhs1_Rclose_par_}
+ }// end of reduce table
+};
+yacco2::State S8_Cparallel_parser_ph_th = //State's vectored into symbol: "|?|"
+{8
+,0,0,0,0,0,(Reduce_tbl*)&S8rt_Cparallel_parser_ph_th,0,0,0};
+struct S9rtd_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Cparallel_parser_ph_th S9rt_Cparallel_parser_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cparallel_parser_ph_th,Cparallel_parser_ph_th::rhs2_Rclose_par_}
+ }// end of reduce table
+};
+yacco2::State S9_Cparallel_parser_ph_th = //State's vectored into symbol: ")"
+{9
+,0,0,0,0,0,(Reduce_tbl*)&S9rt_Cparallel_parser_ph_th,0,0,0};
+struct S10std_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S10std_Cparallel_parser_ph_th S10st_Cparallel_parser_ph_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Cparallel_parser_ph_th} // shift sym: LR1_parallel_operator
+ ,{570,(State*)&S11_Cparallel_parser_ph_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S10pse_Cparallel_parser_ph_th = {3,(State*)&S2_Cparallel_parser_ph_th};
+struct S10rtd_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S10rtd_Cparallel_parser_ph_th S10rt_Cparallel_parser_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cparallel_parser_ph_th,Cparallel_parser_ph_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S10_Cparallel_parser_ph_th = //State's vectored into symbol: "Rclose_par"
+{10
+,(Shift_entry*)&S10pse_Cparallel_parser_ph_th,0,0,0,(Shift_tbl*)&S10st_Cparallel_parser_ph_th,(Reduce_tbl*)&S10rt_Cparallel_parser_ph_th,(State_s_thread_tbl*)&S2tt_Cparallel_parser_ph_th,0,0};
+struct S11rtd_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Cparallel_parser_ph_th S11rt_Cparallel_parser_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cparallel_parser_ph_th,Cparallel_parser_ph_th::rhs1_Rparallel_parser_phrase_}
+ }// end of reduce table
+};
+yacco2::State S11_Cparallel_parser_ph_th = //State's vectored into symbol: "Rlint"
+{11
+,0,0,0,0,0,(Reduce_tbl*)&S11rt_Cparallel_parser_ph_th,0,0,0};
+struct S12rtd_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S12rtd_Cparallel_parser_ph_th S12rt_Cparallel_parser_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cparallel_parser_ph_th,Cparallel_parser_ph_th::rhs1_Ropen_par_}
+ }// end of reduce table
+};
+yacco2::State S12_Cparallel_parser_ph_th = //State's vectored into symbol: "|?|"
+{12
+,0,0,0,0,0,(Reduce_tbl*)&S12rt_Cparallel_parser_ph_th,0,0,0};
+struct S13rtd_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S13rtd_Cparallel_parser_ph_th S13rt_Cparallel_parser_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cparallel_parser_ph_th,Cparallel_parser_ph_th::rhs2_Ropen_par_}
+ }// end of reduce table
+};
+yacco2::State S13_Cparallel_parser_ph_th = //State's vectored into symbol: "("
+{13
+,0,0,0,0,0,(Reduce_tbl*)&S13rt_Cparallel_parser_ph_th,0,0,0};
+struct S14rtd_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S14rtd_Cparallel_parser_ph_th S14rt_Cparallel_parser_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cparallel_parser_ph_th,Cparallel_parser_ph_th::rhs3_Rpp_thread_fnct_}
+ }// end of reduce table
+};
+yacco2::State S14_Cparallel_parser_ph_th = //State's vectored into symbol: "|?|"
+{14
+,0,0,0,0,0,(Reduce_tbl*)&S14rt_Cparallel_parser_ph_th,0,0,0};
+struct S15std_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S15std_Cparallel_parser_ph_th S15st_Cparallel_parser_ph_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S16_Cparallel_parser_ph_th} // shift sym: LR1_questionable_shift_operator
+ ,{290,(State*)&S17_Cparallel_parser_ph_th} // shift sym: T_parallel_thread_function
+ }// end of shift table
+};
+yacco2::Shift_entry S15qse_Cparallel_parser_ph_th = {0,(State*)&S16_Cparallel_parser_ph_th};
+yacco2::State S15_Cparallel_parser_ph_th = //State's vectored into symbol: "|||"
+{15
+,0,0,0,0,(Shift_tbl*)&S15st_Cparallel_parser_ph_th,0,0,0,(Shift_entry*)&S15qse_Cparallel_parser_ph_th
+};
+struct S16rtd_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S16rtd_Cparallel_parser_ph_th S16rt_Cparallel_parser_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cparallel_parser_ph_th,Cparallel_parser_ph_th::rhs2_Rpp_thread_fnct_}
+ }// end of reduce table
+};
+yacco2::State S16_Cparallel_parser_ph_th = //State's vectored into symbol: "|?|"
+{16
+,0,0,0,0,0,(Reduce_tbl*)&S16rt_Cparallel_parser_ph_th,0,0,0};
+struct S17rtd_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S17rtd_Cparallel_parser_ph_th S17rt_Cparallel_parser_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cparallel_parser_ph_th,Cparallel_parser_ph_th::rhs1_Rpp_thread_fnct_}
+ }// end of reduce table
+};
+yacco2::State S17_Cparallel_parser_ph_th = //State's vectored into symbol: "#parallel-thread-function"
+{17
+,0,0,0,0,0,(Reduce_tbl*)&S17rt_Cparallel_parser_ph_th,0,0,0};
+struct S18std_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S18std_Cparallel_parser_ph_th S18st_Cparallel_parser_ph_th = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S19_Cparallel_parser_ph_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S20_Cparallel_parser_ph_th} // shift sym: LR1_parallel_operator
+ ,{578,(State*)&S23_Cparallel_parser_ph_th} // shift sym: Rpp_la_bndary_phrase
+ ,{579,(State*)&S24_Cparallel_parser_ph_th} // shift sym: Rpp_la_bndary
+ }// end of shift table
+};
+yacco2::Shift_entry S18pse_Cparallel_parser_ph_th = {3,(State*)&S20_Cparallel_parser_ph_th};
+yacco2::Shift_entry S18qse_Cparallel_parser_ph_th = {0,(State*)&S19_Cparallel_parser_ph_th};
+yacco2::State S18_Cparallel_parser_ph_th = //State's vectored into symbol: "Rpp_thread_fnct_phrase"
+{18
+,(Shift_entry*)&S18pse_Cparallel_parser_ph_th,0,0,0,(Shift_tbl*)&S18st_Cparallel_parser_ph_th,0,(State_s_thread_tbl*)&S20tt_Cparallel_parser_ph_th,0,(Shift_entry*)&S18qse_Cparallel_parser_ph_th
+};
+struct S19rtd_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S19rtd_Cparallel_parser_ph_th S19rt_Cparallel_parser_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cparallel_parser_ph_th,Cparallel_parser_ph_th::rhs3_Rpp_la_bndary_}
+ }// end of reduce table
+};
+yacco2::State S19_Cparallel_parser_ph_th = //State's vectored into symbol: "|?|"
+{19
+,0,0,0,0,0,(Reduce_tbl*)&S19rt_Cparallel_parser_ph_th,0,0,0};
+struct S20std_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S20std_Cparallel_parser_ph_th S20st_Cparallel_parser_ph_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S21_Cparallel_parser_ph_th} // shift sym: LR1_questionable_shift_operator
+ ,{287,(State*)&S22_Cparallel_parser_ph_th} // shift sym: T_parallel_la_boundary
+ }// end of shift table
+};
+yacco2::Shift_entry S20qse_Cparallel_parser_ph_th = {0,(State*)&S21_Cparallel_parser_ph_th};
+yacco2::State S20_Cparallel_parser_ph_th = //State's vectored into symbol: "|||"
+{20
+,0,0,0,0,(Shift_tbl*)&S20st_Cparallel_parser_ph_th,0,0,0,(Shift_entry*)&S20qse_Cparallel_parser_ph_th
+};
+struct S21rtd_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S21rtd_Cparallel_parser_ph_th S21rt_Cparallel_parser_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cparallel_parser_ph_th,Cparallel_parser_ph_th::rhs2_Rpp_la_bndary_}
+ }// end of reduce table
+};
+yacco2::State S21_Cparallel_parser_ph_th = //State's vectored into symbol: "|?|"
+{21
+,0,0,0,0,0,(Reduce_tbl*)&S21rt_Cparallel_parser_ph_th,0,0,0};
+struct S22rtd_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S22rtd_Cparallel_parser_ph_th S22rt_Cparallel_parser_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cparallel_parser_ph_th,Cparallel_parser_ph_th::rhs1_Rpp_la_bndary_}
+ }// end of reduce table
+};
+yacco2::State S22_Cparallel_parser_ph_th = //State's vectored into symbol: "#parallel-la-boundary"
+{22
+,0,0,0,0,0,(Reduce_tbl*)&S22rt_Cparallel_parser_ph_th,0,0,0};
+struct S23rtd_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S23rtd_Cparallel_parser_ph_th S23rt_Cparallel_parser_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cparallel_parser_ph_th,Cparallel_parser_ph_th::rhs1_Rparameters_}
+ }// end of reduce table
+};
+yacco2::State S23_Cparallel_parser_ph_th = //State's vectored into symbol: "Rpp_la_bndary_phrase"
+{23
+,0,0,0,0,0,(Reduce_tbl*)&S23rt_Cparallel_parser_ph_th,0,0,0};
+struct S24std_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S24std_Cparallel_parser_ph_th S24st_Cparallel_parser_ph_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Cparallel_parser_ph_th} // shift sym: LR1_parallel_operator
+ ,{570,(State*)&S25_Cparallel_parser_ph_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S24pse_Cparallel_parser_ph_th = {3,(State*)&S2_Cparallel_parser_ph_th};
+struct S24rtd_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S24rtd_Cparallel_parser_ph_th S24rt_Cparallel_parser_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cparallel_parser_ph_th,Cparallel_parser_ph_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S24_Cparallel_parser_ph_th = //State's vectored into symbol: "Rpp_la_bndary"
+{24
+,(Shift_entry*)&S24pse_Cparallel_parser_ph_th,0,0,0,(Shift_tbl*)&S24st_Cparallel_parser_ph_th,(Reduce_tbl*)&S24rt_Cparallel_parser_ph_th,(State_s_thread_tbl*)&S2tt_Cparallel_parser_ph_th,0,0};
+struct S25std_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S25std_Cparallel_parser_ph_th S25st_Cparallel_parser_ph_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S26_Cparallel_parser_ph_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S27_Cparallel_parser_ph_th} // shift sym: LR1_parallel_operator
+ ,{580,(State*)&S30_Cparallel_parser_ph_th} // shift sym: Rpp_la_bndary_stc
+ }// end of shift table
+};
+yacco2::Shift_entry S25pse_Cparallel_parser_ph_th = {3,(State*)&S27_Cparallel_parser_ph_th};
+yacco2::Shift_entry S25qse_Cparallel_parser_ph_th = {0,(State*)&S26_Cparallel_parser_ph_th};
+yacco2::State S25_Cparallel_parser_ph_th = //State's vectored into symbol: "Rlint"
+{25
+,(Shift_entry*)&S25pse_Cparallel_parser_ph_th,0,0,0,(Shift_tbl*)&S25st_Cparallel_parser_ph_th,0,(State_s_thread_tbl*)&S27tt_Cparallel_parser_ph_th,0,(Shift_entry*)&S25qse_Cparallel_parser_ph_th
+};
+struct S26rtd_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S26rtd_Cparallel_parser_ph_th S26rt_Cparallel_parser_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cparallel_parser_ph_th,Cparallel_parser_ph_th::rhs3_Rpp_la_bndary_stc_}
+ }// end of reduce table
+};
+yacco2::State S26_Cparallel_parser_ph_th = //State's vectored into symbol: "|?|"
+{26
+,0,0,0,0,0,(Reduce_tbl*)&S26rt_Cparallel_parser_ph_th,0,0,0};
+struct S27std_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S27std_Cparallel_parser_ph_th S27st_Cparallel_parser_ph_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S28_Cparallel_parser_ph_th} // shift sym: LR1_questionable_shift_operator
+ ,{368,(State*)&S29_Cparallel_parser_ph_th} // shift sym: T_la_expr_src
+ }// end of shift table
+};
+yacco2::Shift_entry S27qse_Cparallel_parser_ph_th = {0,(State*)&S28_Cparallel_parser_ph_th};
+yacco2::State S27_Cparallel_parser_ph_th = //State's vectored into symbol: "|||"
+{27
+,0,0,0,0,(Shift_tbl*)&S27st_Cparallel_parser_ph_th,0,0,0,(Shift_entry*)&S27qse_Cparallel_parser_ph_th
+};
+struct S28rtd_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S28rtd_Cparallel_parser_ph_th S28rt_Cparallel_parser_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cparallel_parser_ph_th,Cparallel_parser_ph_th::rhs2_Rpp_la_bndary_stc_}
+ }// end of reduce table
+};
+yacco2::State S28_Cparallel_parser_ph_th = //State's vectored into symbol: "|?|"
+{28
+,0,0,0,0,0,(Reduce_tbl*)&S28rt_Cparallel_parser_ph_th,0,0,0};
+struct S29rtd_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S29rtd_Cparallel_parser_ph_th S29rt_Cparallel_parser_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cparallel_parser_ph_th,Cparallel_parser_ph_th::rhs1_Rpp_la_bndary_stc_}
+ }// end of reduce table
+};
+yacco2::State S29_Cparallel_parser_ph_th = //State's vectored into symbol: "la-express-source"
+{29
+,0,0,0,0,0,(Reduce_tbl*)&S29rt_Cparallel_parser_ph_th,0,0,0};
+struct S30std_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S30std_Cparallel_parser_ph_th S30st_Cparallel_parser_ph_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Cparallel_parser_ph_th} // shift sym: LR1_parallel_operator
+ ,{570,(State*)&S31_Cparallel_parser_ph_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S30pse_Cparallel_parser_ph_th = {3,(State*)&S2_Cparallel_parser_ph_th};
+struct S30rtd_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S30rtd_Cparallel_parser_ph_th S30rt_Cparallel_parser_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cparallel_parser_ph_th,Cparallel_parser_ph_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S30_Cparallel_parser_ph_th = //State's vectored into symbol: "Rpp_la_bndary_stc"
+{30
+,(Shift_entry*)&S30pse_Cparallel_parser_ph_th,0,0,0,(Shift_tbl*)&S30st_Cparallel_parser_ph_th,(Reduce_tbl*)&S30rt_Cparallel_parser_ph_th,(State_s_thread_tbl*)&S2tt_Cparallel_parser_ph_th,0,0};
+struct S31rtd_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S31rtd_Cparallel_parser_ph_th S31rt_Cparallel_parser_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cparallel_parser_ph_th,Cparallel_parser_ph_th::rhs1_Rpp_la_bndary_phrase_}
+ }// end of reduce table
+};
+yacco2::State S31_Cparallel_parser_ph_th = //State's vectored into symbol: "Rlint"
+{31
+,0,0,0,0,0,(Reduce_tbl*)&S31rt_Cparallel_parser_ph_th,0,0,0};
+struct S32std_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S32std_Cparallel_parser_ph_th S32st_Cparallel_parser_ph_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Cparallel_parser_ph_th} // shift sym: LR1_parallel_operator
+ ,{570,(State*)&S33_Cparallel_parser_ph_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S32pse_Cparallel_parser_ph_th = {3,(State*)&S2_Cparallel_parser_ph_th};
+struct S32rtd_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S32rtd_Cparallel_parser_ph_th S32rt_Cparallel_parser_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cparallel_parser_ph_th,Cparallel_parser_ph_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S32_Cparallel_parser_ph_th = //State's vectored into symbol: "Rpp_thread_fnct"
+{32
+,(Shift_entry*)&S32pse_Cparallel_parser_ph_th,0,0,0,(Shift_tbl*)&S32st_Cparallel_parser_ph_th,(Reduce_tbl*)&S32rt_Cparallel_parser_ph_th,(State_s_thread_tbl*)&S2tt_Cparallel_parser_ph_th,0,0};
+struct S33std_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S33std_Cparallel_parser_ph_th S33st_Cparallel_parser_ph_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S41_Cparallel_parser_ph_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S42_Cparallel_parser_ph_th} // shift sym: LR1_parallel_operator
+ ,{576,(State*)&S34_Cparallel_parser_ph_th} // shift sym: Rpp_thread_fnct_id
+ }// end of shift table
+};
+yacco2::Shift_entry S33pse_Cparallel_parser_ph_th = {3,(State*)&S42_Cparallel_parser_ph_th};
+yacco2::Shift_entry S33qse_Cparallel_parser_ph_th = {0,(State*)&S41_Cparallel_parser_ph_th};
+yacco2::State S33_Cparallel_parser_ph_th = //State's vectored into symbol: "Rlint"
+{33
+,(Shift_entry*)&S33pse_Cparallel_parser_ph_th,0,0,0,(Shift_tbl*)&S33st_Cparallel_parser_ph_th,0,(State_s_thread_tbl*)&S42tt_Cparallel_parser_ph_th,0,(Shift_entry*)&S33qse_Cparallel_parser_ph_th
+};
+struct S34std_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S34std_Cparallel_parser_ph_th S34st_Cparallel_parser_ph_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Cparallel_parser_ph_th} // shift sym: LR1_parallel_operator
+ ,{570,(State*)&S35_Cparallel_parser_ph_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S34pse_Cparallel_parser_ph_th = {3,(State*)&S2_Cparallel_parser_ph_th};
+struct S34rtd_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S34rtd_Cparallel_parser_ph_th S34rt_Cparallel_parser_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cparallel_parser_ph_th,Cparallel_parser_ph_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S34_Cparallel_parser_ph_th = //State's vectored into symbol: "Rpp_thread_fnct_id"
+{34
+,(Shift_entry*)&S34pse_Cparallel_parser_ph_th,0,0,0,(Shift_tbl*)&S34st_Cparallel_parser_ph_th,(Reduce_tbl*)&S34rt_Cparallel_parser_ph_th,(State_s_thread_tbl*)&S2tt_Cparallel_parser_ph_th,0,0};
+struct S35std_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S35std_Cparallel_parser_ph_th S35st_Cparallel_parser_ph_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S36_Cparallel_parser_ph_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S37_Cparallel_parser_ph_th} // shift sym: LR1_parallel_operator
+ ,{577,(State*)&S39_Cparallel_parser_ph_th} // shift sym: R3asterics
+ }// end of shift table
+};
+yacco2::Shift_entry S35pse_Cparallel_parser_ph_th = {3,(State*)&S37_Cparallel_parser_ph_th};
+yacco2::Shift_entry S35qse_Cparallel_parser_ph_th = {0,(State*)&S36_Cparallel_parser_ph_th};
+yacco2::State S35_Cparallel_parser_ph_th = //State's vectored into symbol: "Rlint"
+{35
+,(Shift_entry*)&S35pse_Cparallel_parser_ph_th,0,0,0,(Shift_tbl*)&S35st_Cparallel_parser_ph_th,0,(State_s_thread_tbl*)&S37tt_Cparallel_parser_ph_th,0,(Shift_entry*)&S35qse_Cparallel_parser_ph_th
+};
+struct S36rtd_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S36rtd_Cparallel_parser_ph_th S36rt_Cparallel_parser_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cparallel_parser_ph_th,Cparallel_parser_ph_th::rhs2_R3asterics_}
+ }// end of reduce table
+};
+yacco2::State S36_Cparallel_parser_ph_th = //State's vectored into symbol: "|?|"
+{36
+,0,0,0,0,0,(Reduce_tbl*)&S36rt_Cparallel_parser_ph_th,0,0,0};
+struct S37std_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S37std_Cparallel_parser_ph_th S37st_Cparallel_parser_ph_th = {
+ 1
+ ,
+ {// start of table
+ {284,(State*)&S38_Cparallel_parser_ph_th} // shift sym: T_eocode
+ }// end of shift table
+};
+yacco2::State S37_Cparallel_parser_ph_th = //State's vectored into symbol: "|||"
+{37
+,0,0,0,0,(Shift_tbl*)&S37st_Cparallel_parser_ph_th,0,0,0,0};
+struct S38rtd_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S38rtd_Cparallel_parser_ph_th S38rt_Cparallel_parser_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cparallel_parser_ph_th,Cparallel_parser_ph_th::rhs1_R3asterics_}
+ }// end of reduce table
+};
+yacco2::State S38_Cparallel_parser_ph_th = //State's vectored into symbol: "#***"
+{38
+,0,0,0,0,0,(Reduce_tbl*)&S38rt_Cparallel_parser_ph_th,0,0,0};
+struct S39std_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S39std_Cparallel_parser_ph_th S39st_Cparallel_parser_ph_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Cparallel_parser_ph_th} // shift sym: LR1_parallel_operator
+ ,{570,(State*)&S40_Cparallel_parser_ph_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S39pse_Cparallel_parser_ph_th = {3,(State*)&S2_Cparallel_parser_ph_th};
+struct S39rtd_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S39rtd_Cparallel_parser_ph_th S39rt_Cparallel_parser_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cparallel_parser_ph_th,Cparallel_parser_ph_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S39_Cparallel_parser_ph_th = //State's vectored into symbol: "R3asterics"
+{39
+,(Shift_entry*)&S39pse_Cparallel_parser_ph_th,0,0,0,(Shift_tbl*)&S39st_Cparallel_parser_ph_th,(Reduce_tbl*)&S39rt_Cparallel_parser_ph_th,(State_s_thread_tbl*)&S2tt_Cparallel_parser_ph_th,0,0};
+struct S40rtd_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S40rtd_Cparallel_parser_ph_th S40rt_Cparallel_parser_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cparallel_parser_ph_th,Cparallel_parser_ph_th::rhs1_Rpp_thread_fnct_phrase_}
+ }// end of reduce table
+};
+yacco2::State S40_Cparallel_parser_ph_th = //State's vectored into symbol: "Rlint"
+{40
+,0,0,0,0,0,(Reduce_tbl*)&S40rt_Cparallel_parser_ph_th,0,0,0};
+struct S41rtd_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S41rtd_Cparallel_parser_ph_th S41rt_Cparallel_parser_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cparallel_parser_ph_th,Cparallel_parser_ph_th::rhs3_Rpp_thread_fnct_id_}
+ }// end of reduce table
+};
+yacco2::State S41_Cparallel_parser_ph_th = //State's vectored into symbol: "|?|"
+{41
+,0,0,0,0,0,(Reduce_tbl*)&S41rt_Cparallel_parser_ph_th,0,0,0};
+struct S42std_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S42std_Cparallel_parser_ph_th S42st_Cparallel_parser_ph_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S43_Cparallel_parser_ph_th} // shift sym: LR1_questionable_shift_operator
+ ,{279,(State*)&S44_Cparallel_parser_ph_th} // shift sym: T_identifier
+ }// end of shift table
+};
+yacco2::Shift_entry S42qse_Cparallel_parser_ph_th = {0,(State*)&S43_Cparallel_parser_ph_th};
+yacco2::State S42_Cparallel_parser_ph_th = //State's vectored into symbol: "|||"
+{42
+,0,0,0,0,(Shift_tbl*)&S42st_Cparallel_parser_ph_th,0,0,0,(Shift_entry*)&S42qse_Cparallel_parser_ph_th
+};
+struct S43rtd_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S43rtd_Cparallel_parser_ph_th S43rt_Cparallel_parser_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cparallel_parser_ph_th,Cparallel_parser_ph_th::rhs2_Rpp_thread_fnct_id_}
+ }// end of reduce table
+};
+yacco2::State S43_Cparallel_parser_ph_th = //State's vectored into symbol: "|?|"
+{43
+,0,0,0,0,0,(Reduce_tbl*)&S43rt_Cparallel_parser_ph_th,0,0,0};
+struct S44rtd_Cparallel_parser_ph_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S44rtd_Cparallel_parser_ph_th S44rt_Cparallel_parser_ph_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cparallel_parser_ph_th,Cparallel_parser_ph_th::rhs1_Rpp_thread_fnct_id_}
+ }// end of reduce table
+};
+yacco2::State S44_Cparallel_parser_ph_th = //State's vectored into symbol: "identifier"
+{44
+,0,0,0,0,0,(Reduce_tbl*)&S44rt_Cparallel_parser_ph_th,0,0,0};
diff --git a/web/yacco2/compiler/grammars/parallel_parser_phrase.cpp b/web/yacco2/compiler/grammars/parallel_parser_phrase.cpp
new file mode 100644
index 0000000000..0fff2c7e79
--- /dev/null
+++ b/web/yacco2/compiler/grammars/parallel_parser_phrase.cpp
@@ -0,0 +1,109 @@
+/*
+ File: parallel_parser_phrase.cpp
+ Date and Time: Fri Jan 30 18:55:19 2015
+*/
+#include "parallel_parser_phrase.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_parallel_parser_phrase;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 2;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+}
+ Cparallel_parser_phrase::
+ Cparallel_parser_phrase()
+ :yacco2::CAbs_fsm
+ ("parallel_parser_phrase.lex"
+ ,"1.0"
+ ,"15 mar 2004"
+ ,false
+ ,"Dispather to parse grammar's ``parallel-parser'' construct."
+ ,"Fri Jan 30 18:55:19 2015 "
+ ,S1_Cparallel_parser_phrase){
+
+ cweb_marker__ = 0;
+
+ }
+
+Cparallel_parser_phrase::~Cparallel_parser_phrase(){
+
+ for(int x = 0;x < 2;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cparallel_parser_phrase::failed(){
+ return false;
+ }
+ void Cparallel_parser_phrase::op(){
+ if(CWEB_MARKER != 0){
+ cweb_marker__ = CWEB_MARKER;
+ CWEB_MARKER=0;
+ }
+
+}
+int Cparallel_parser_phrase::rhs_to_rules_mapping_[5] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,1 // subrule 4 for rule 2
+};
+Rparallel_parser_phrase::Rparallel_parser_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rparallel_parser_phrase",0,Cparallel_parser_phrase::R_Rparallel_parser_phrase_,P,false,false){
+}
+
+Rphrase::Rphrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rphrase",0,Cparallel_parser_phrase::R_Rphrase_,P,false,false){
+}
+
+void Rphrase::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_parallel_parser_phrase* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rphrase::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+
+}
+
+void Rphrase::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_open_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+
+}
+
diff --git a/web/yacco2/compiler/grammars/parallel_parser_phrase.fsc b/web/yacco2/compiler/grammars/parallel_parser_phrase.fsc
new file mode 100644
index 0000000000..1647a8530d
--- /dev/null
+++ b/web/yacco2/compiler/grammars/parallel_parser_phrase.fsc
@@ -0,0 +1,22 @@
+/*
+ File: parallel_parser_phrase.fsc
+ Date and Time: Fri Jan 30 18:55:19 2015
+*/
+transitive y
+grammar-name "parallel_parser_phrase"
+name-space "NS_parallel_parser_phrase"
+thread-name "Cparallel_parser_phrase"
+monolithic y
+file-name "parallel_parser_phrase.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ LR1_questionable_shift_operator
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 1
+ NS_parallel_parser_ph_th::TH_parallel_parser_ph_th
+end-list-of-transitive-threads
+list-of-used-threads 1
+ NS_parallel_parser_ph_th::TH_parallel_parser_ph_th
+end-list-of-used-threads
+fsm-comments
+"Dispather to parse grammar's ``parallel-parser'' construct."
diff --git a/web/yacco2/compiler/grammars/parallel_parser_phrase.h b/web/yacco2/compiler/grammars/parallel_parser_phrase.h
new file mode 100644
index 0000000000..58dce54b53
--- /dev/null
+++ b/web/yacco2/compiler/grammars/parallel_parser_phrase.h
@@ -0,0 +1,70 @@
+/*
+ File: parallel_parser_phrase.h
+ Date and Time: Fri Jan 30 18:55:19 2015
+*/
+#ifndef __parallel_parser_phrase_h__
+#define __parallel_parser_phrase_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+ using namespace NS_yacco2_terminals;
+ #include "parallel_parser_ph_th.h"
+ #include "o2_externs.h"
+
+// monolithic grammar: no thread
+extern yacco2::State S1_Cparallel_parser_phrase;
+namespace NS_parallel_parser_phrase {
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[2];
+};
+class Cparallel_parser_phrase: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rparallel_parser_phrase_ = 569//start_of_rule_list + 0
+ ,rhs1_Rparallel_parser_phrase_ = 1
+ ,R_Rphrase_ = 570//start_of_rule_list + 2
+ ,rhs1_Rphrase_ = 2
+ ,rhs2_Rphrase_ = 3
+ ,rhs3_Rphrase_ = 4
+ };
+ //no of la sets = 1
+ //no of states = 6
+ Cparallel_parser_phrase();
+ ~Cparallel_parser_phrase();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[5];
+
+ public: yacco2::AST* cweb_marker__;
+
+ };
+struct Rparallel_parser_phrase;
+struct Rphrase;
+struct Rparallel_parser_phrase:public yacco2::CAbs_lr1_sym {
+ Rparallel_parser_phrase(yacco2::Parser* P);
+ public:
+};
+
+struct Rphrase:public yacco2::CAbs_lr1_sym {
+ Rphrase(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/parallel_parser_phrase.lex b/web/yacco2/compiler/grammars/parallel_parser_phrase.lex
new file mode 100644
index 0000000000..99f76a54c0
--- /dev/null
+++ b/web/yacco2/compiler/grammars/parallel_parser_phrase.lex
@@ -0,0 +1,77 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: parallel_parser_phrase.lex
+Dates: 15 Mar 2004
+Purpose: parse parallel-parser construct
+ Monolithic grammar that launches its thread.
+ Properly handles threads and errors. Starts
+ from a procedure using another parser's
+ token stream from a specific point.
+Note: Use of ||| |?| phrase to catch other returned terminals
+ or errors. In this case, it is errors.
+ One can be selective within various contexts:
+ 1) within arbitration
+ 2) sub-rule level
+ The symbol's enumerated id is the fodder to filter on.
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |parallel_parser_phrase| grammar.\fbreak
+Dispatcher to parse the parallel-parser construct:
+lookahead expression and the grammr's thread identity.
+@/
+fsm
+(fsm-id "parallel_parser_phrase.lex"
+,fsm-filename parallel_parser_phrase
+,fsm-namespace NS_parallel_parser_phrase
+,fsm-class Cparallel_parser_phrase{
+ user-prefix-declaration
+ using namespace NS_yacco2_terminals;
+ #include "parallel_parser_ph_th.h"
+ #include "o2_externs.h"
+ ***
+ user-declaration
+ public: yacco2::AST* cweb_marker__;
+ ***
+ constructor
+ cweb_marker__ = 0;
+ ***
+ op
+ if(CWEB_MARKER != 0){
+ cweb_marker__ = CWEB_MARKER;
+ CWEB_MARKER=0;
+ }
+ ***
+}
+,fsm-version "1.0",fsm-date "15 mar 2004",fsm-debug "false"
+,fsm-comments "Dispather to parse grammar's ``parallel-parser'' construct.")
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+rules{
+Rparallel_parser_phrase (){
+ -> Rphrase
+}
+
+Rphrase (){
+ -> ||| "parallel-parser-phrase"
+ NS_parallel_parser_ph_th::TH_parallel_parser_ph_th {
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_open_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/parallel_parser_phrasesym.cpp b/web/yacco2/compiler/grammars/parallel_parser_phrasesym.cpp
new file mode 100644
index 0000000000..ac2e1aa515
--- /dev/null
+++ b/web/yacco2/compiler/grammars/parallel_parser_phrasesym.cpp
@@ -0,0 +1,86 @@
+/*
+ File: parallel_parser_phrasesym.cpp
+ Date and Time: Fri Jan 30 18:55:19 2015
+*/
+#include "parallel_parser_phrase.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_parallel_parser_phrase;// grammar's ns
+// first set terminals
+// monolithic grammar --- no thread
+void
+Cparallel_parser_phrase::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rparallel_parser_phrase_:{
+ Rparallel_parser_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rparallel_parser_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rparallel_parser_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rphrase_:{
+ Rphrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rphrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rphrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rphrase_:{
+ Rphrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rphrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rphrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rphrase_:{
+ Rphrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rphrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rphrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/parallel_parser_phrasetbl.cpp b/web/yacco2/compiler/grammars/parallel_parser_phrasetbl.cpp
new file mode 100644
index 0000000000..e9ad3efd6f
--- /dev/null
+++ b/web/yacco2/compiler/grammars/parallel_parser_phrasetbl.cpp
@@ -0,0 +1,129 @@
+/*
+ File: parallel_parser_phrasetbl.cpp
+ Date and Time: Fri Jan 30 18:55:19 2015
+*/
+#include "parallel_parser_phrase.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_parallel_parser_phrase;// grammar's ns
+// first set terminals
+// LR1_eolr
+yacco2::UCHAR LA1_Cparallel_parser_phrase[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Cparallel_parser_phrase;
+extern yacco2::State S2_Cparallel_parser_phrase;
+extern yacco2::State S3_Cparallel_parser_phrase;
+struct S3ttd_Cparallel_parser_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S3ttd_Cparallel_parser_phrase S3tt_Cparallel_parser_phrase = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_parallel_parser_ph_th
+};
+extern yacco2::State S4_Cparallel_parser_phrase;
+extern yacco2::State S5_Cparallel_parser_phrase;
+extern yacco2::State S6_Cparallel_parser_phrase;
+struct S1std_Cparallel_parser_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S1std_Cparallel_parser_phrase S1st_Cparallel_parser_phrase = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S2_Cparallel_parser_phrase} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S3_Cparallel_parser_phrase} // shift sym: LR1_parallel_operator
+ ,{569,(State*)&S1_Cparallel_parser_phrase} // accept sym: Rparallel_parser_phrase
+ ,{570,(State*)&S6_Cparallel_parser_phrase} // shift sym: Rphrase
+ }// end of shift table
+};
+yacco2::Shift_entry S1pse_Cparallel_parser_phrase = {3,(State*)&S3_Cparallel_parser_phrase};
+yacco2::Shift_entry S1qse_Cparallel_parser_phrase = {0,(State*)&S2_Cparallel_parser_phrase};
+yacco2::State S1_Cparallel_parser_phrase = //State's vectored into symbol: " No symbol"
+{1
+,(Shift_entry*)&S1pse_Cparallel_parser_phrase,0,0,0,(Shift_tbl*)&S1st_Cparallel_parser_phrase,0,(State_s_thread_tbl*)&S3tt_Cparallel_parser_phrase,0,(Shift_entry*)&S1qse_Cparallel_parser_phrase
+};
+struct S2rtd_Cparallel_parser_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Cparallel_parser_phrase S2rt_Cparallel_parser_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cparallel_parser_phrase,Cparallel_parser_phrase::rhs3_Rphrase_}
+ }// end of reduce table
+};
+yacco2::State S2_Cparallel_parser_phrase = //State's vectored into symbol: "|?|"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Cparallel_parser_phrase,0,0,0};
+struct S3std_Cparallel_parser_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S3std_Cparallel_parser_phrase S3st_Cparallel_parser_phrase = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S4_Cparallel_parser_phrase} // shift sym: LR1_questionable_shift_operator
+ ,{329,(State*)&S5_Cparallel_parser_phrase} // shift sym: T_parallel_parser_phrase
+ }// end of shift table
+};
+yacco2::Shift_entry S3qse_Cparallel_parser_phrase = {0,(State*)&S4_Cparallel_parser_phrase};
+yacco2::State S3_Cparallel_parser_phrase = //State's vectored into symbol: "|||"
+{3
+,0,0,0,0,(Shift_tbl*)&S3st_Cparallel_parser_phrase,0,0,0,(Shift_entry*)&S3qse_Cparallel_parser_phrase
+};
+struct S4rtd_Cparallel_parser_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Cparallel_parser_phrase S4rt_Cparallel_parser_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cparallel_parser_phrase,Cparallel_parser_phrase::rhs2_Rphrase_}
+ }// end of reduce table
+};
+yacco2::State S4_Cparallel_parser_phrase = //State's vectored into symbol: "|?|"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Cparallel_parser_phrase,0,0,0};
+struct S5rtd_Cparallel_parser_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Cparallel_parser_phrase S5rt_Cparallel_parser_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cparallel_parser_phrase,Cparallel_parser_phrase::rhs1_Rphrase_}
+ }// end of reduce table
+};
+yacco2::State S5_Cparallel_parser_phrase = //State's vectored into symbol: "parallel-parser-phrase"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Cparallel_parser_phrase,0,0,0};
+struct S6rtd_Cparallel_parser_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Cparallel_parser_phrase S6rt_Cparallel_parser_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cparallel_parser_phrase,Cparallel_parser_phrase::rhs1_Rparallel_parser_phrase_}
+ }// end of reduce table
+};
+yacco2::State S6_Cparallel_parser_phrase = //State's vectored into symbol: "Rphrase"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Cparallel_parser_phrase,0,0,0};
diff --git a/web/yacco2/compiler/grammars/pass3.cpp b/web/yacco2/compiler/grammars/pass3.cpp
new file mode 100644
index 0000000000..eb42117a11
--- /dev/null
+++ b/web/yacco2/compiler/grammars/pass3.cpp
@@ -0,0 +1,410 @@
+/*
+ File: pass3.cpp
+ Date and Time: Fri Jan 30 18:55:20 2015
+*/
+#include "pass3.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_pass3;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 4;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+}
+ Cpass3::
+ Cpass3()
+ :yacco2::CAbs_fsm
+ ("pass3.lex"
+ ,"1.0"
+ ,"17 Apr 2001"
+ ,false
+ ,"\\O2's lexer constructing tokens for syntax parser stage."
+ ,"Fri Jan 30 18:55:20 2015 "
+ ,S1_Cpass3){
+
+ }
+
+Cpass3::~Cpass3(){
+
+ for(int x = 0;x < 4;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cpass3::failed(){
+ return false;
+ }
+ void Cpass3::op(){
+ ++Cpass3::nested_use_cnt_;
+
+}
+int Cpass3::rhs_to_rules_mapping_[22] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,0 // subrule 2 for rule 1
+ ,1 // subrule 3 for rule 2
+ ,1 // subrule 4 for rule 2
+ ,2 // subrule 5 for rule 3
+ ,2 // subrule 6 for rule 3
+ ,2 // subrule 7 for rule 3
+ ,2 // subrule 8 for rule 3
+ ,2 // subrule 9 for rule 3
+ ,2 // subrule 10 for rule 3
+ ,2 // subrule 11 for rule 3
+ ,2 // subrule 12 for rule 3
+ ,2 // subrule 13 for rule 3
+ ,2 // subrule 14 for rule 3
+ ,2 // subrule 15 for rule 3
+ ,2 // subrule 16 for rule 3
+ ,2 // subrule 17 for rule 3
+ ,2 // subrule 18 for rule 3
+ ,3 // subrule 19 for rule 4
+ ,3 // subrule 20 for rule 4
+ ,3 // subrule 21 for rule 4
+};
+
+ int Cpass3::nested_use_cnt_(0);
+
+Rpass3::Rpass3(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rpass3",0,Cpass3::R_Rpass3_,P,false,false){
+}
+
+void Rpass3::op(){
+ sstrace_rulesss
+
+ using namespace NS_yacco2_k_symbols;
+ if(Cpass3::nested_use_cnt_ == 1){
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*yacco2::PTR_LR1_eog__);
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*yacco2::PTR_LR1_eog__);
+ }
+ --Cpass3::nested_use_cnt_;
+
+}
+void Rpass3::sr1(){
+
+ CAbs_lr1_sym* sym = new Err_empty_file;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_abort_parse(true);
+
+}
+
+void Rpass3::sr2(){
+
+ if (GRAMMAR_TREE == 0){
+ CAbs_lr1_sym* sym = new Err_empty_file;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_abort_parse(true);
+ }
+
+}
+
+Relems::Relems(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Relems",0,Cpass3::R_Relems_,P,false,false){
+}
+
+Rtoken::Rtoken(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rtoken",0,Cpass3::R_Rtoken_,P,false,false){
+}
+
+void Rtoken::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_identifier* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_misplaced_or_misspelt_Rule_or_T;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_abort_parse(true);
+
+}
+
+void Rtoken::sr4(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ CAbs_lr1_sym* key = sf->p2__;// extract specific keyword
+ yacco2::INT cont_pos = rule_info__.parser__->current_token_pos__;
+ CAbs_lr1_sym* cont_tok = rule_info__.parser__->current_token();
+ bool result =
+ PROCESS_KEYWORD_FOR_SYNTAX_CODE(*rule_info__.parser__,key,&cont_tok,&cont_pos);
+ if(result == false){
+ rule_info__.parser__->set_abort_parse(true);
+ return;
+ }
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*key);
+ // adv. to phrase's LA pos
+ rule_info__.parser__->override_current_token(*cont_tok,cont_pos);
+
+}
+
+void Rtoken::sr5(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ rule_in_stbl* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_use_of_N_outside_Rules_construct;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_abort_parse(true);
+
+}
+
+void Rtoken::sr6(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_in_stbl* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_use_of_T_outside_Rules_construct;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_abort_parse(true);
+
+}
+
+void Rtoken::sr8(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_comment* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ T_comment* k = sf->p2__;
+ k->set_auto_delete(true);
+
+}
+
+void Rtoken::sr9(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_cweb_comment* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ T_cweb_comment* k = sf->p2__;
+ AST* cwebk_t_ = new AST(*k);
+
+ AST* cweb_t_ = new AST();
+ T_cweb_marker* cw = new T_cweb_marker(cweb_t_);
+ cw->set_rc(*k,__FILE__,__LINE__);
+ AST::set_content(*cweb_t_,*cw);
+ AST::join_pts(*cweb_t_,*cwebk_t_);
+ BUILD_GRAMMAR_TREE(*cweb_t_);
+ CWEB_MARKER = 0;
+
+}
+
+void Rtoken::sr10(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_not_kw_defining_grammar_construct;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_abort_parse(true);
+
+}
+
+void Rtoken::sr11(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Err_bad_eos* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_abort_parse(true);
+
+}
+
+void Rtoken::sr12(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Err_comment_overrun* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_abort_parse(true);
+
+}
+
+void Rtoken::sr13(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Err_bad_esc* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_abort_parse(true);
+
+}
+
+void Rtoken::sr14(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Err_bad_char* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Err_bad_char* k = sf->p2__;
+ ADD_TOKEN_TO_ERROR_QUEUE(*k);
+ rule_info__.parser__->set_abort_parse(true);
+
+}
+
+Rprefile_inc_dispatcher::Rprefile_inc_dispatcher(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rprefile_inc_dispatcher",0,Cpass3::R_Rprefile_inc_dispatcher_,P,false,false){
+}
+
+void Rprefile_inc_dispatcher::sr1(){
+ struct SF{
+ LR1_fset_transience_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_file_inclusion* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ CAbs_lr1_sym* err = sf->p2__->error_sym();
+ if(err != 0) {
+ rule_info__.parser__->set_abort_parse(true);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__->error_sym());
+ return;
+ }
+ bool result = PROCESS_INCLUDE_FILE(*rule_info__.parser__
+ ,*sf->p2__,*rule_info__.parser__->token_producer__);
+ if(result == false){ // exceeded nested file limit
+ rule_info__.parser__->set_abort_parse(true);
+ return;
+ }
+ ADD_TOKEN_TO_RECYCLE_BIN(*sf->p2__);//file name inside
+ return;
+
+}
+
+void Rprefile_inc_dispatcher::sr2(){
+ struct SF{
+ LR1_fset_transience_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_bad_directive;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rprefile_inc_dispatcher::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_directive_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
diff --git a/web/yacco2/compiler/grammars/pass3.fsc b/web/yacco2/compiler/grammars/pass3.fsc
new file mode 100644
index 0000000000..2fb23ab271
--- /dev/null
+++ b/web/yacco2/compiler/grammars/pass3.fsc
@@ -0,0 +1,32 @@
+/*
+ File: pass3.fsc
+ Date and Time: Fri Jan 30 18:55:20 2015
+*/
+transitive y
+grammar-name "pass3"
+name-space "NS_pass3"
+thread-name "Cpass3"
+monolithic y
+file-name "pass3.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 3
+ LR1_questionable_shift_operator
+ LR1_eog
+ raw_at_sign
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 5
+ NS_eol::TH_eol
+ NS_identifier::TH_identifier
+ NS_ws::TH_ws
+ NS_cweb_or_c_k::TH_cweb_or_c_k
+ NS_bad_char_set::TH_bad_char_set
+end-list-of-transitive-threads
+list-of-used-threads 5
+ NS_bad_char_set::TH_bad_char_set
+ NS_cweb_or_c_k::TH_cweb_or_c_k
+ NS_eol::TH_eol
+ NS_identifier::TH_identifier
+ NS_ws::TH_ws
+end-list-of-used-threads
+fsm-comments
+"\\O2's lexer constructing tokens for syntax parser stage."
diff --git a/web/yacco2/compiler/grammars/pass3.h b/web/yacco2/compiler/grammars/pass3.h
new file mode 100644
index 0000000000..85bfba7ae8
--- /dev/null
+++ b/web/yacco2/compiler/grammars/pass3.h
@@ -0,0 +1,120 @@
+/*
+ File: pass3.h
+ Date and Time: Fri Jan 30 18:55:20 2015
+*/
+#ifndef __pass3_h__
+#define __pass3_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "ws.h"
+#include "cweb_or_c_k.h"
+#include "bad_char_set.h"
+#include "eol.h"
+#include "prefile_include.h"
+#include "identifier.h"
+#include "o2_externs.h"
+
+// monolithic grammar: no thread
+extern yacco2::State S1_Cpass3;
+namespace NS_pass3 {
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[4];
+};
+class Cpass3: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rpass3_ = 569//start_of_rule_list + 0
+ ,rhs1_Rpass3_ = 1
+ ,rhs2_Rpass3_ = 2
+ ,R_Relems_ = 570//start_of_rule_list + 2
+ ,rhs1_Relems_ = 3
+ ,rhs2_Relems_ = 4
+ ,R_Rtoken_ = 571//start_of_rule_list + 4
+ ,rhs1_Rtoken_ = 5
+ ,rhs2_Rtoken_ = 6
+ ,rhs3_Rtoken_ = 7
+ ,rhs4_Rtoken_ = 8
+ ,rhs5_Rtoken_ = 9
+ ,rhs6_Rtoken_ = 10
+ ,rhs7_Rtoken_ = 11
+ ,rhs8_Rtoken_ = 12
+ ,rhs9_Rtoken_ = 13
+ ,rhs10_Rtoken_ = 14
+ ,rhs11_Rtoken_ = 15
+ ,rhs12_Rtoken_ = 16
+ ,rhs13_Rtoken_ = 17
+ ,rhs14_Rtoken_ = 18
+ ,R_Rprefile_inc_dispatcher_ = 572//start_of_rule_list + 6
+ ,rhs1_Rprefile_inc_dispatcher_ = 19
+ ,rhs2_Rprefile_inc_dispatcher_ = 20
+ ,rhs3_Rprefile_inc_dispatcher_ = 21
+ };
+ //no of la sets = 2
+ //no of states = 26
+ Cpass3();
+ ~Cpass3();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[22];
+
+ public:
+static int nested_use_cnt_;
+
+ };
+struct Rpass3;
+struct Relems;
+struct Rtoken;
+struct Rprefile_inc_dispatcher;
+struct Rpass3:public yacco2::CAbs_lr1_sym {
+ Rpass3(yacco2::Parser* P);
+ void op();
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Relems:public yacco2::CAbs_lr1_sym {
+ Relems(yacco2::Parser* P);
+ public:
+};
+
+struct Rtoken:public yacco2::CAbs_lr1_sym {
+ Rtoken(yacco2::Parser* P);
+ public:
+ void sr3();
+ void sr4();
+ void sr5();
+ void sr6();
+ void sr8();
+ void sr9();
+ void sr10();
+ void sr11();
+ void sr12();
+ void sr13();
+ void sr14();
+};
+
+struct Rprefile_inc_dispatcher:public yacco2::CAbs_lr1_sym {
+ Rprefile_inc_dispatcher(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/pass3.lex b/web/yacco2/compiler/grammars/pass3.lex
new file mode 100644
index 0000000000..ede22197b6
--- /dev/null
+++ b/web/yacco2/compiler/grammars/pass3.lex
@@ -0,0 +1,345 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: pass3.lex
+dates: 7 Juin 2003
+Purpose: Lexical Phase
+Changed: added keyword recognition by symbol table lookup.
+ eliminate parallelism between identifier and yacco2_keyword
+Note: The use_cnt_ deals with the problem of
+recursion using this grammar and to write only once
+the eog tokens to close off the producer container.
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** pass3 stand alone Grammar.\fbreak
+Lexical / syntactic dispatcher for the grammar
+being parsed.\fbreak
+Why the name |pass3|? The short of it: when i was developing a long time ago
+there were 3 passes.
+Through attrition it became one. I was too lazy to rename it to |pass1|.
+So that's the blah blah blog of it all.\fbreak
+\fbreak
+It calls |PROCESS_KEYWORD_FOR_SYNTAX_CODE|
+when keywords are discovered.
+This is a top/down approach to parsing
+as the ``called procedure'' then calls (dispatches on)
+the keyword's content to its parsing procedure that of course
+contains a monolithic bottom-up grammar
+ to digest the grammar constuct.
+Neat stuff to see
+how the 2 approaches to parsing
+can blend together: a monolithic grammar
+using threaded grammars to parse its stuff.\fbreak
+\fbreak
+Let's look at this from above:\fbreak
+Here we have a standalone grammar calling
+a procedure that
+runs a standalone grammar that calls more threads.
+Well i think this is neat... no ice sir
+and hold the applause. thk u.\fbreak
+\fbreak
+Changed: added keyword recognition by symbol table lookup.
+eliminated competing parallelism between identifier and |yacco2_keyword|
+that now no longer exists.\fbreak
+\fbreak
+Note:\fbreak
+The use\_cnt\_ deals with the problem of
+recursion using this grammar and to write only once
+the eog tokens to close off the producer container.
+\fbreak
+\fbreak
+Please see the |Rprefile_inc_dispatcher| rule
+as an example of chained procedure call. The chaining is on the ``\ATsign''
+ which is also the start character of
+grammar |NS_prefile_inc::PROC_TH_prefile_inc| which is called as a procedure.
+This is an example of an optimization: thread activation is toooooo slow compared
+to a procedure call. Now what about inlining ugh?
+\fbreak
+\fbreak
+An improvement: grammar file has no contents\fbreak
+21-Apr-2014
+@/
+fsm
+(fsm-id "pass3.lex",fsm-filename pass3,fsm-namespace NS_pass3
+,fsm-class Cpass3{
+ user-declaration
+ public:
+static int nested_use_cnt_;
+ ***
+ user-implementation
+ int Cpass3::nested_use_cnt_(0);
+ ***
+ op
+ ++Cpass3::nested_use_cnt_;
+ ***
+ user-prefix-declaration
+#include "ws.h"
+#include "cweb_or_c_k.h"
+#include "bad_char_set.h"
+#include "eol.h"
+#include "prefile_include.h"
+#include "identifier.h"
+#include "o2_externs.h"
+ ***
+ }
+,fsm-version "1.0",fsm-date "17 Apr 2001",fsm-debug "false"
+,fsm-comments "\\O2's lexer constructing tokens for syntax parser stage.")
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rpass3 (
+lhs{
+ op
+ using namespace NS_yacco2_k_symbols;
+ if(Cpass3::nested_use_cnt_ == 1){
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*yacco2::PTR_LR1_eog__);
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*yacco2::PTR_LR1_eog__);
+ }
+ --Cpass3::nested_use_cnt_;
+ ***
+ }
+){
+ -> eog {
+ op
+ CAbs_lr1_sym* sym = new Err_empty_file;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_abort_parse(true);
+ ***
+ }
+ -> Relems eog {
+ op
+ if (GRAMMAR_TREE == 0){
+ CAbs_lr1_sym* sym = new Err_empty_file;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_abort_parse(true);
+ }
+ ***
+ }
+}
+
+Relems
+/@
+ @*2 Relems --- left recursion diagram.\fbreak
+ Note: the left recursion drawn as a Pascal railroad diagram.
+@/
+
+(){
+ -> Rtoken
+ -> Relems Rtoken
+}
+
+
+Rtoken (){
+ -> ||| ws NS_ws::TH_ws
+ -> ||| eol NS_eol::TH_eol
+ -> ||| "identifier" NS_identifier::TH_identifier {
+ /@
+ @*2 Identifier slip thru.\fbreak
+ As i use a top / down process to consume constructs,
+ an Identifier some how is slipping thru due to either a premature
+ ending of Rules top / down parse process
+ or a before out-of-alignment token
+ that should be within the Rules Vocabulary, or a
+ misplaced misspelt T.
+ @/
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_misplaced_or_misspelt_Rule_or_T;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_abort_parse(true);
+ ***
+ }
+ -> ||| |+| NULL{// keywords emitted from identifier
+ /@
+ @*2 Dispatch keyword to process its construct phrase.\fbreak
+ Again
+ neat stuff with its co-operation of top/down and bottom-up
+ parsing paradigms. Notice that i use the catch all ``|+|''
+ to show case it where as i could have referenced``keyword''.
+ This is how the parser works:\fbreak
+ \ptindent{1) check the state's table for specificly returned T from thread call}
+ \ptindent{2) check for ``catch all'' returned presence from a thread call}
+ \ptindent{3) try current token T to shift if thread call did not work or is not present in state}
+ \ptindent{4) check for ``catch all'' presence in the state to shift }
+ Note: there are 2 types of ``catch all'': one for returned T from
+ thread calls and the other for regular parsing.
+ @/
+ op
+ CAbs_lr1_sym* key = sf->p2__;// extract specific keyword
+ yacco2::INT cont_pos = rule_info__.parser__->current_token_pos__;
+ CAbs_lr1_sym* cont_tok = rule_info__.parser__->current_token();
+ bool result =
+ PROCESS_KEYWORD_FOR_SYNTAX_CODE(*rule_info__.parser__,key,&cont_tok,&cont_pos);
+ if(result == false){
+ rule_info__.parser__->set_abort_parse(true);
+ return;
+ }
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*key);
+ // adv. to phrase's LA pos
+ rule_info__.parser__->override_current_token(*cont_tok,cont_pos);
+ ***
+ }
+ -> ||| "rule-in-stbl" NULL {// emitted from identifier thread
+ /@
+ @*3 ``rule-in-stbl'' slip thru.\fbreak
+ The top / down process lexes and consumes this token
+ so this token never hits this grammar.
+ Probable cause is a pre-mature stoppage of the ``rules'' construct.
+ Why is ``rule-in-stbl'' returned?
+ The token has been defined or referenced by one or more defining rules.
+ The first occurance in the rules construct enters it into the symbol
+ table as defined or referenced. Depending on its next usuage context,
+ defined or referenced will update the its symbol table's
+ attributes.
+ @/
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_use_of_N_outside_Rules_construct;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_abort_parse(true);
+ ***
+ }
+ -> ||| "T-in-stbl" NULL {// emitted from identifier thread
+ /@
+ @*3 ``T-in-stbl'' slip thru.\fbreak
+ Could be an out-of-construct token
+ that has been defined in the Terminal vocabulary.
+ For example the token came before the Rules construct.
+ Probably a typo mistake by the grammar writer.
+ @/
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_use_of_T_outside_Rules_construct;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_abort_parse(true);
+ ***
+ }
+ ->
+ /@
+ @*2 \Yacco2's pre-processor include directive.\fbreak
+ \fbreak
+ This demonstrates a nested environment
+ where the grammar uses recursion by
+ calling a function which contains the |pass3| grammar sequence.
+ In this example, grammar |pass3|
+ manually calls a thread via
+ |start_manually_parallel_parsing|
+ to get its file name to process.
+ With the returned ``file-inclusion'' terminal,
+ |PROCESS_INCLUDE_FILE| is called to parse
+ the include file: a bom-de-bom-bom bump-and-grind sequence.
+ The |use_cnt_| is a global variable that protects
+ against the file include recursion of calling self
+ until a stack overflow occurs.
+ @/
+
+"@" Rprefile_inc_dispatcher
+ -> ||| "comment" NS_cweb_or_c_k::TH_cweb_or_c_k {
+ op
+ T_comment* k = sf->p2__;
+ k->set_auto_delete(true);
+ ***
+ }
+ -> ||| "cweb-comment" NULL {
+ op
+ T_cweb_comment* k = sf->p2__;
+ AST* cwebk_t_ = new AST(*k);
+
+ AST* cweb_t_ = new AST();
+ T_cweb_marker* cw = new T_cweb_marker(cweb_t_);
+ cw->set_rc(*k,__FILE__,__LINE__);
+ AST::set_content(*cweb_t_,*cw);
+ AST::join_pts(*cweb_t_,*cwebk_t_);
+ BUILD_GRAMMAR_TREE(*cweb_t_);
+ CWEB_MARKER = 0;
+ ***
+ }
+ ->
+ /@
+ @* Error subrules.\fbreak
+ @/
+
+ |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_not_kw_defining_grammar_construct;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_abort_parse(true);
+ ***
+ }
+ -> ||| "bad eos" NULL { //
+ op
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_abort_parse(true);
+ ***
+ }
+ -> ||| "comment-overrun" NULL{
+ op
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_abort_parse(true);
+ ***
+ }
+ -> ||| "bad esc" NULL{
+ op
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_abort_parse(true);
+ ***
+ }
+ -> ||| "bad char" NS_bad_char_set::TH_bad_char_set{
+ op
+ Err_bad_char* k = sf->p2__;
+ ADD_TOKEN_TO_ERROR_QUEUE(*k);
+ rule_info__.parser__->set_abort_parse(true);
+ ***
+ }
+
+}
+
+Rprefile_inc_dispatcher (){
+ -> |t| "file-inclusion" NS_prefile_include::PROC_TH_prefile_include {
+ op
+ CAbs_lr1_sym* err = sf->p2__->error_sym();
+ if(err != 0) {
+ rule_info__.parser__->set_abort_parse(true);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__->error_sym());
+ return;
+ }
+ bool result = PROCESS_INCLUDE_FILE(*rule_info__.parser__
+ ,*sf->p2__,*rule_info__.parser__->token_producer__);
+ if(result == false){ // exceeded nested file limit
+ rule_info__.parser__->set_abort_parse(true);
+ return;
+ }
+ ADD_TOKEN_TO_RECYCLE_BIN(*sf->p2__);//file name inside
+ return;
+ ***
+ }
+ -> |t| |?| NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_bad_directive;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_directive_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/pass3sym.cpp b/web/yacco2/compiler/grammars/pass3sym.cpp
new file mode 100644
index 0000000000..fa74ae2f8b
--- /dev/null
+++ b/web/yacco2/compiler/grammars/pass3sym.cpp
@@ -0,0 +1,339 @@
+/*
+ File: pass3sym.cpp
+ Date and Time: Fri Jan 30 18:55:20 2015
+*/
+#include "pass3.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_pass3;// grammar's ns
+// first set terminals
+// monolithic grammar --- no thread
+void
+Cpass3::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rpass3_:{
+ Rpass3* sym;
+ if(re->rule_ == 0){
+ sym = new Rpass3(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rpass3*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ sym->op();
+ return;}
+ case rhs2_Rpass3_:{
+ Rpass3* sym;
+ if(re->rule_ == 0){
+ sym = new Rpass3(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rpass3*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ sym->op();
+ return;}
+ case rhs1_Relems_:{
+ Relems* sym;
+ if(re->rule_ == 0){
+ sym = new Relems(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Relems*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Relems_:{
+ Relems* sym;
+ if(re->rule_ == 0){
+ sym = new Relems(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Relems*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rtoken_:{
+ Rtoken* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rtoken_:{
+ Rtoken* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs3_Rtoken_:{
+ Rtoken* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rtoken_:{
+ Rtoken* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr4();
+ return;}
+ case rhs5_Rtoken_:{
+ Rtoken* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr5();
+ return;}
+ case rhs6_Rtoken_:{
+ Rtoken* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr6();
+ return;}
+ case rhs7_Rtoken_:{
+ Rtoken* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs8_Rtoken_:{
+ Rtoken* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr8();
+ return;}
+ case rhs9_Rtoken_:{
+ Rtoken* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr9();
+ return;}
+ case rhs10_Rtoken_:{
+ Rtoken* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr10();
+ return;}
+ case rhs11_Rtoken_:{
+ Rtoken* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr11();
+ return;}
+ case rhs12_Rtoken_:{
+ Rtoken* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr12();
+ return;}
+ case rhs13_Rtoken_:{
+ Rtoken* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr13();
+ return;}
+ case rhs14_Rtoken_:{
+ Rtoken* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr14();
+ return;}
+ case rhs1_Rprefile_inc_dispatcher_:{
+ Rprefile_inc_dispatcher* sym;
+ if(re->rule_ == 0){
+ sym = new Rprefile_inc_dispatcher(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rprefile_inc_dispatcher*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rprefile_inc_dispatcher_:{
+ Rprefile_inc_dispatcher* sym;
+ if(re->rule_ == 0){
+ sym = new Rprefile_inc_dispatcher(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rprefile_inc_dispatcher*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rprefile_inc_dispatcher_:{
+ Rprefile_inc_dispatcher* sym;
+ if(re->rule_ == 0){
+ sym = new Rprefile_inc_dispatcher(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rprefile_inc_dispatcher*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/pass3tbl.cpp b/web/yacco2/compiler/grammars/pass3tbl.cpp
new file mode 100644
index 0000000000..9a29a38e0f
--- /dev/null
+++ b/web/yacco2/compiler/grammars/pass3tbl.cpp
@@ -0,0 +1,470 @@
+/*
+ File: pass3tbl.cpp
+ Date and Time: Fri Jan 30 18:55:20 2015
+*/
+#include "pass3.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_pass3;// grammar's ns
+// first set terminals
+// LR1_questionable_shift_operator
+// LR1_eog
+// LR1_reduce_operator
+// raw_at_sign
+yacco2::UCHAR LA1_Cpass3[] ={
+2
+,0,19
+,9,1
+};
+// LR1_eolr
+yacco2::UCHAR LA2_Cpass3[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Cpass3;
+extern yacco2::State S2_Cpass3;
+extern yacco2::State S3_Cpass3;
+extern yacco2::State S4_Cpass3;
+struct S4ttd_Cpass3{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[5];
+};
+S4ttd_Cpass3 S4tt_Cpass3 = {
+ 5 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_eol
+ ,(yacco2::Thread_entry*)&ITH_cweb_or_c_k
+ ,(yacco2::Thread_entry*)&ITH_ws
+ ,(yacco2::Thread_entry*)&ITH_identifier
+ ,(yacco2::Thread_entry*)&ITH_bad_char_set
+};
+extern yacco2::State S5_Cpass3;
+extern yacco2::State S6_Cpass3;
+extern yacco2::State S7_Cpass3;
+extern yacco2::State S8_Cpass3;
+extern yacco2::State S9_Cpass3;
+extern yacco2::State S10_Cpass3;
+extern yacco2::State S11_Cpass3;
+extern yacco2::State S12_Cpass3;
+extern yacco2::State S13_Cpass3;
+extern yacco2::State S14_Cpass3;
+extern yacco2::State S15_Cpass3;
+extern yacco2::State S16_Cpass3;
+extern yacco2::State S17_Cpass3;
+extern yacco2::State S18_Cpass3;
+extern yacco2::State S19_Cpass3;
+extern yacco2::State S20_Cpass3;
+extern yacco2::State S21_Cpass3;
+extern yacco2::State S22_Cpass3;
+extern yacco2::State S23_Cpass3;
+extern yacco2::State S24_Cpass3;
+extern yacco2::State S25_Cpass3;
+extern yacco2::State S26_Cpass3;
+struct S1std_Cpass3{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[7];
+};
+S1std_Cpass3 S1st_Cpass3 = {
+ 7
+ ,
+ {// start of table
+ {0,(State*)&S2_Cpass3} // shift sym: LR1_questionable_shift_operator
+ ,{1,(State*)&S3_Cpass3} // shift sym: LR1_eog
+ ,{3,(State*)&S4_Cpass3} // shift sym: LR1_parallel_operator
+ ,{72,(State*)&S17_Cpass3} // shift sym: raw_at_sign
+ ,{569,(State*)&S1_Cpass3} // accept sym: Rpass3
+ ,{570,(State*)&S23_Cpass3} // shift sym: Relems
+ ,{571,(State*)&S26_Cpass3} // shift sym: Rtoken
+ }// end of shift table
+};
+yacco2::Shift_entry S1pse_Cpass3 = {3,(State*)&S4_Cpass3};
+yacco2::Shift_entry S1qse_Cpass3 = {0,(State*)&S2_Cpass3};
+yacco2::State S1_Cpass3 = //State's vectored into symbol: " No symbol"
+{1
+,(Shift_entry*)&S1pse_Cpass3,0,0,0,(Shift_tbl*)&S1st_Cpass3,0,(State_s_thread_tbl*)&S4tt_Cpass3,0,(Shift_entry*)&S1qse_Cpass3
+};
+struct S2rtd_Cpass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Cpass3 S2rt_Cpass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cpass3,Cpass3::rhs10_Rtoken_}
+ }// end of reduce table
+};
+yacco2::State S2_Cpass3 = //State's vectored into symbol: "|?|"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Cpass3,0,0,0};
+struct S3rtd_Cpass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Cpass3 S3rt_Cpass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cpass3,Cpass3::rhs1_Rpass3_}
+ }// end of reduce table
+};
+yacco2::State S3_Cpass3 = //State's vectored into symbol: "eog"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_Cpass3,0,0,0};
+struct S4std_Cpass3{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[12];
+};
+S4std_Cpass3 S4st_Cpass3 = {
+ 12
+ ,
+ {// start of table
+ {6,(State*)&S5_Cpass3} // shift sym: LR1_all_shift_operator
+ ,{268,(State*)&S6_Cpass3} // shift sym: T_eol
+ ,{271,(State*)&S7_Cpass3} // shift sym: T_comment
+ ,{272,(State*)&S8_Cpass3} // shift sym: T_ws
+ ,{279,(State*)&S9_Cpass3} // shift sym: T_identifier
+ ,{344,(State*)&S10_Cpass3} // shift sym: T_in_stbl
+ ,{346,(State*)&S11_Cpass3} // shift sym: rule_in_stbl
+ ,{372,(State*)&S12_Cpass3} // shift sym: T_cweb_comment
+ ,{394,(State*)&S13_Cpass3} // shift sym: Err_bad_eos
+ ,{395,(State*)&S14_Cpass3} // shift sym: Err_bad_esc
+ ,{396,(State*)&S15_Cpass3} // shift sym: Err_comment_overrun
+ ,{397,(State*)&S16_Cpass3} // shift sym: Err_bad_char
+ }// end of shift table
+};
+yacco2::Shift_entry S4ase_Cpass3 = {6,(State*)&S5_Cpass3};
+yacco2::State S4_Cpass3 = //State's vectored into symbol: "|||"
+{4
+,0,(Shift_entry*)&S4ase_Cpass3
+,0,0,(Shift_tbl*)&S4st_Cpass3,0,0,0,0};
+struct S5rtd_Cpass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Cpass3 S5rt_Cpass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cpass3,Cpass3::rhs4_Rtoken_}
+ }// end of reduce table
+};
+yacco2::State S5_Cpass3 = //State's vectored into symbol: "|+|"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Cpass3,0,0,0};
+struct S6rtd_Cpass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Cpass3 S6rt_Cpass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cpass3,Cpass3::rhs2_Rtoken_}
+ }// end of reduce table
+};
+yacco2::State S6_Cpass3 = //State's vectored into symbol: "eol"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Cpass3,0,0,0};
+struct S7rtd_Cpass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Cpass3 S7rt_Cpass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cpass3,Cpass3::rhs8_Rtoken_}
+ }// end of reduce table
+};
+yacco2::State S7_Cpass3 = //State's vectored into symbol: "comment"
+{7
+,0,0,0,0,0,(Reduce_tbl*)&S7rt_Cpass3,0,0,0};
+struct S8rtd_Cpass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S8rtd_Cpass3 S8rt_Cpass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cpass3,Cpass3::rhs1_Rtoken_}
+ }// end of reduce table
+};
+yacco2::State S8_Cpass3 = //State's vectored into symbol: "ws"
+{8
+,0,0,0,0,0,(Reduce_tbl*)&S8rt_Cpass3,0,0,0};
+struct S9rtd_Cpass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Cpass3 S9rt_Cpass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cpass3,Cpass3::rhs3_Rtoken_}
+ }// end of reduce table
+};
+yacco2::State S9_Cpass3 = //State's vectored into symbol: "identifier"
+{9
+,0,0,0,0,0,(Reduce_tbl*)&S9rt_Cpass3,0,0,0};
+struct S10rtd_Cpass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S10rtd_Cpass3 S10rt_Cpass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cpass3,Cpass3::rhs6_Rtoken_}
+ }// end of reduce table
+};
+yacco2::State S10_Cpass3 = //State's vectored into symbol: "T-in-stbl"
+{10
+,0,0,0,0,0,(Reduce_tbl*)&S10rt_Cpass3,0,0,0};
+struct S11rtd_Cpass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Cpass3 S11rt_Cpass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cpass3,Cpass3::rhs5_Rtoken_}
+ }// end of reduce table
+};
+yacco2::State S11_Cpass3 = //State's vectored into symbol: "rule-in-stbl"
+{11
+,0,0,0,0,0,(Reduce_tbl*)&S11rt_Cpass3,0,0,0};
+struct S12rtd_Cpass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S12rtd_Cpass3 S12rt_Cpass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cpass3,Cpass3::rhs9_Rtoken_}
+ }// end of reduce table
+};
+yacco2::State S12_Cpass3 = //State's vectored into symbol: "cweb-comment"
+{12
+,0,0,0,0,0,(Reduce_tbl*)&S12rt_Cpass3,0,0,0};
+struct S13rtd_Cpass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S13rtd_Cpass3 S13rt_Cpass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cpass3,Cpass3::rhs11_Rtoken_}
+ }// end of reduce table
+};
+yacco2::State S13_Cpass3 = //State's vectored into symbol: "bad eos"
+{13
+,0,0,0,0,0,(Reduce_tbl*)&S13rt_Cpass3,0,0,0};
+struct S14rtd_Cpass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S14rtd_Cpass3 S14rt_Cpass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cpass3,Cpass3::rhs13_Rtoken_}
+ }// end of reduce table
+};
+yacco2::State S14_Cpass3 = //State's vectored into symbol: "bad esc"
+{14
+,0,0,0,0,0,(Reduce_tbl*)&S14rt_Cpass3,0,0,0};
+struct S15rtd_Cpass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S15rtd_Cpass3 S15rt_Cpass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cpass3,Cpass3::rhs12_Rtoken_}
+ }// end of reduce table
+};
+yacco2::State S15_Cpass3 = //State's vectored into symbol: "comment-overrun"
+{15
+,0,0,0,0,0,(Reduce_tbl*)&S15rt_Cpass3,0,0,0};
+struct S16rtd_Cpass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S16rtd_Cpass3 S16rt_Cpass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cpass3,Cpass3::rhs14_Rtoken_}
+ }// end of reduce table
+};
+yacco2::State S16_Cpass3 = //State's vectored into symbol: "bad char"
+{16
+,0,0,0,0,0,(Reduce_tbl*)&S16rt_Cpass3,0,0,0};
+struct S17std_Cpass3{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S17std_Cpass3 S17st_Cpass3 = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S18_Cpass3} // shift sym: LR1_questionable_shift_operator
+ ,{7,(State*)&S19_Cpass3} // shift sym: LR1_fset_transience_operator
+ ,{572,(State*)&S22_Cpass3} // shift sym: Rprefile_inc_dispatcher
+ }// end of shift table
+};
+yacco2::Shift_entry S17pcse_Cpass3 = {7,(State*)&S19_Cpass3};
+yacco2::Shift_entry S17qse_Cpass3 = {0,(State*)&S18_Cpass3};
+yacco2::State S17_Cpass3 = //State's vectored into symbol: "@"
+{17
+,0,0,0,(Shift_entry*)&S17pcse_Cpass3,(Shift_tbl*)&S17st_Cpass3,0,0,(yacco2::Type_pc_fnct_ptr)&NS_prefile_include::PROC_TH_prefile_include,(Shift_entry*)&S17qse_Cpass3
+};
+struct S18rtd_Cpass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S18rtd_Cpass3 S18rt_Cpass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cpass3,Cpass3::rhs3_Rprefile_inc_dispatcher_}
+ }// end of reduce table
+};
+yacco2::State S18_Cpass3 = //State's vectored into symbol: "|?|"
+{18
+,0,0,0,0,0,(Reduce_tbl*)&S18rt_Cpass3,0,0,0};
+struct S19std_Cpass3{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S19std_Cpass3 S19st_Cpass3 = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S20_Cpass3} // shift sym: LR1_questionable_shift_operator
+ ,{278,(State*)&S21_Cpass3} // shift sym: T_file_inclusion
+ }// end of shift table
+};
+yacco2::Shift_entry S19qse_Cpass3 = {0,(State*)&S20_Cpass3};
+yacco2::State S19_Cpass3 = //State's vectored into symbol: "|t|"
+{19
+,0,0,0,0,(Shift_tbl*)&S19st_Cpass3,0,0,0,(Shift_entry*)&S19qse_Cpass3
+};
+struct S20rtd_Cpass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S20rtd_Cpass3 S20rt_Cpass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cpass3,Cpass3::rhs2_Rprefile_inc_dispatcher_}
+ }// end of reduce table
+};
+yacco2::State S20_Cpass3 = //State's vectored into symbol: "|?|"
+{20
+,0,0,0,0,0,(Reduce_tbl*)&S20rt_Cpass3,0,0,0};
+struct S21rtd_Cpass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S21rtd_Cpass3 S21rt_Cpass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cpass3,Cpass3::rhs1_Rprefile_inc_dispatcher_}
+ }// end of reduce table
+};
+yacco2::State S21_Cpass3 = //State's vectored into symbol: "file-inclusion"
+{21
+,0,0,0,0,0,(Reduce_tbl*)&S21rt_Cpass3,0,0,0};
+struct S22rtd_Cpass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S22rtd_Cpass3 S22rt_Cpass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cpass3,Cpass3::rhs7_Rtoken_}
+ }// end of reduce table
+};
+yacco2::State S22_Cpass3 = //State's vectored into symbol: "Rprefile_inc_dispatcher"
+{22
+,0,0,0,0,0,(Reduce_tbl*)&S22rt_Cpass3,0,0,0};
+struct S23std_Cpass3{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S23std_Cpass3 S23st_Cpass3 = {
+ 5
+ ,
+ {// start of table
+ {0,(State*)&S2_Cpass3} // shift sym: LR1_questionable_shift_operator
+ ,{1,(State*)&S24_Cpass3} // shift sym: LR1_eog
+ ,{3,(State*)&S4_Cpass3} // shift sym: LR1_parallel_operator
+ ,{72,(State*)&S17_Cpass3} // shift sym: raw_at_sign
+ ,{571,(State*)&S25_Cpass3} // shift sym: Rtoken
+ }// end of shift table
+};
+yacco2::Shift_entry S23pse_Cpass3 = {3,(State*)&S4_Cpass3};
+yacco2::Shift_entry S23qse_Cpass3 = {0,(State*)&S2_Cpass3};
+yacco2::State S23_Cpass3 = //State's vectored into symbol: "Relems"
+{23
+,(Shift_entry*)&S23pse_Cpass3,0,0,0,(Shift_tbl*)&S23st_Cpass3,0,(State_s_thread_tbl*)&S4tt_Cpass3,0,(Shift_entry*)&S23qse_Cpass3
+};
+struct S24rtd_Cpass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S24rtd_Cpass3 S24rt_Cpass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cpass3,Cpass3::rhs2_Rpass3_}
+ }// end of reduce table
+};
+yacco2::State S24_Cpass3 = //State's vectored into symbol: "eog"
+{24
+,0,0,0,0,0,(Reduce_tbl*)&S24rt_Cpass3,0,0,0};
+struct S25rtd_Cpass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S25rtd_Cpass3 S25rt_Cpass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cpass3,Cpass3::rhs2_Relems_}
+ }// end of reduce table
+};
+yacco2::State S25_Cpass3 = //State's vectored into symbol: "Rtoken"
+{25
+,0,0,0,0,0,(Reduce_tbl*)&S25rt_Cpass3,0,0,0};
+struct S26rtd_Cpass3{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S26rtd_Cpass3 S26rt_Cpass3 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cpass3,Cpass3::rhs1_Relems_}
+ }// end of reduce table
+};
+yacco2::State S26_Cpass3 = //State's vectored into symbol: "Rtoken"
+{26
+,0,0,0,0,0,(Reduce_tbl*)&S26rt_Cpass3,0,0,0};
diff --git a/web/yacco2/compiler/grammars/prefile_inc.cpp b/web/yacco2/compiler/grammars/prefile_inc.cpp
new file mode 100644
index 0000000000..03f253cc70
--- /dev/null
+++ b/web/yacco2/compiler/grammars/prefile_inc.cpp
@@ -0,0 +1,183 @@
+/*
+ File: prefile_inc.cpp
+ Date and Time: Fri Jan 30 18:55:20 2015
+*/
+#include "prefile_inc.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_prefile_inc;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 4;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+}
+ Cprefile_inc::
+ Cprefile_inc()
+ :yacco2::CAbs_fsm
+ ("prefile_inc.lex"
+ ,"1.0"
+ ,"17 Juin 2003"
+ ,false
+ ,"Preprocessor source file from the ``include file'' directive."
+ ,"Fri Jan 30 18:55:20 2015 "
+ ,S1_Cprefile_inc){
+
+ chrs_ = 0;
+ error_raised_ = 0;
+
+ }
+
+Cprefile_inc::~Cprefile_inc(){
+
+ for(int x = 0;x < 4;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cprefile_inc::failed(){
+ return false;
+ }
+ void Cprefile_inc::op(){
+ chrs_ = 0;
+ error_raised_ = 0;
+
+}
+int Cprefile_inc::rhs_to_rules_mapping_[11] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,2 // subrule 4 for rule 3
+ ,2 // subrule 5 for rule 3
+ ,3 // subrule 6 for rule 4
+ ,3 // subrule 7 for rule 4
+ ,3 // subrule 8 for rule 4
+ ,3 // subrule 9 for rule 4
+ ,3 // subrule 10 for rule 4
+};
+Rprefile_inc::Rprefile_inc(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rprefile_inc",0,Cprefile_inc::R_Rprefile_inc_,P,false,false){
+}
+
+void Rprefile_inc::op(){
+ sstrace_rulesss
+
+ Cprefile_inc* fsm = (Cprefile_inc*) rule_info__.parser__->fsm_tbl__;
+ T_file_inclusion* typ = new T_file_inclusion(fsm->chrs_,fsm->error_raised_);
+ typ->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(typ);
+ fsm->chrs_=0;
+
+}
+Reof::Reof(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Reof",0,Cprefile_inc::R_Reof_,P,false,false){
+}
+
+Rpossible_ws::Rpossible_ws(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rpossible_ws",0,Cprefile_inc::R_Rpossible_ws_,P,false,false){
+}
+
+Rfile_string::Rfile_string(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfile_string",0,Cprefile_inc::R_Rfile_string_,P,false,false){
+}
+
+void Rfile_string::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_c_string* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cprefile_inc* fsm = (Cprefile_inc*) rule_info__.parser__->fsm_tbl__;
+ fsm->chrs_ = sf->p2__;
+ string* ps_fn = fsm->chrs_->c_string();
+ std::ifstream fle_chk;
+ fle_chk.open(ps_fn->c_str());
+ if(!fle_chk.good()){
+ fsm->error_raised_ = new Err_bad_filename(*ps_fn);
+ fsm->error_raised_->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ }else{
+ fle_chk.close();
+ }
+
+}
+
+void Rfile_string::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Err_bad_eos* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cprefile_inc* fsm = (Cprefile_inc*) rule_info__.parser__->fsm_tbl__;
+ fsm->error_raised_ = sf->p2__;
+
+}
+
+void Rfile_string::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Err_bad_esc* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cprefile_inc* fsm = (Cprefile_inc*) rule_info__.parser__->fsm_tbl__;
+ fsm->error_raised_ = sf->p2__;
+
+}
+
+void Rfile_string::sr4(){
+
+ Cprefile_inc* fsm = (Cprefile_inc*) rule_info__.parser__->fsm_tbl__;
+ fsm->error_raised_ = new Err_no_filename;
+ fsm->error_raised_->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+
+}
+
+void Rfile_string::sr5(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cprefile_inc* fsm = (Cprefile_inc*) rule_info__.parser__->fsm_tbl__;
+ fsm->error_raised_ = sf->p2__;
+
+}
+
diff --git a/web/yacco2/compiler/grammars/prefile_inc.fsc b/web/yacco2/compiler/grammars/prefile_inc.fsc
new file mode 100644
index 0000000000..86d0a6400d
--- /dev/null
+++ b/web/yacco2/compiler/grammars/prefile_inc.fsc
@@ -0,0 +1,23 @@
+/*
+ File: prefile_inc.fsc
+ Date and Time: Fri Jan 30 18:55:20 2015
+*/
+transitive n
+grammar-name "prefile_inc"
+name-space "NS_prefile_inc"
+thread-name "TH_prefile_inc"
+monolithic n
+file-name "prefile_inc.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ raw_at_sign
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 3
+ NS_c_string::TH_c_string
+ NS_eol::TH_eol
+ NS_ws::TH_ws
+end-list-of-used-threads
+fsm-comments
+"Preprocessor source file from the ``include file'' directive."
diff --git a/web/yacco2/compiler/grammars/prefile_inc.h b/web/yacco2/compiler/grammars/prefile_inc.h
new file mode 100644
index 0000000000..c2ed858148
--- /dev/null
+++ b/web/yacco2/compiler/grammars/prefile_inc.h
@@ -0,0 +1,101 @@
+/*
+ File: prefile_inc.h
+ Date and Time: Fri Jan 30 18:55:20 2015
+*/
+#ifndef __prefile_inc_h__
+#define __prefile_inc_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "ws.h"
+#include "eol.h"
+#include "c_string.h"
+using namespace NS_yacco2_terminals;
+
+extern yacco2::Thread_entry ITH_prefile_inc;
+
+extern yacco2::State S1_Cprefile_inc;
+namespace NS_prefile_inc {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_prefile_inc(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_prefile_inc(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[4];
+};
+class Cprefile_inc: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rprefile_inc_ = 569//start_of_rule_list + 0
+ ,rhs1_Rprefile_inc_ = 1
+ ,R_Reof_ = 570//start_of_rule_list + 2
+ ,rhs1_Reof_ = 2
+ ,rhs2_Reof_ = 3
+ ,R_Rpossible_ws_ = 571//start_of_rule_list + 4
+ ,rhs1_Rpossible_ws_ = 4
+ ,rhs2_Rpossible_ws_ = 5
+ ,R_Rfile_string_ = 572//start_of_rule_list + 6
+ ,rhs1_Rfile_string_ = 6
+ ,rhs2_Rfile_string_ = 7
+ ,rhs3_Rfile_string_ = 8
+ ,rhs4_Rfile_string_ = 9
+ ,rhs5_Rfile_string_ = 10
+ };
+ //no of la sets = 3
+ //no of states = 15
+ Cprefile_inc();
+ ~Cprefile_inc();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[11];
+
+ public:
+ T_c_string* chrs_;
+ yacco2::CAbs_lr1_sym* error_raised_;
+
+ };
+struct Rprefile_inc;
+struct Reof;
+struct Rpossible_ws;
+struct Rfile_string;
+struct Rprefile_inc:public yacco2::CAbs_lr1_sym {
+ Rprefile_inc(yacco2::Parser* P);
+ void op();
+ public:
+};
+
+struct Reof:public yacco2::CAbs_lr1_sym {
+ Reof(yacco2::Parser* P);
+ public:
+};
+
+struct Rpossible_ws:public yacco2::CAbs_lr1_sym {
+ Rpossible_ws(yacco2::Parser* P);
+ public:
+};
+
+struct Rfile_string:public yacco2::CAbs_lr1_sym {
+ Rfile_string(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+ void sr5();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/prefile_inc.lex b/web/yacco2/compiler/grammars/prefile_inc.lex
new file mode 100644
index 0000000000..3592b7f443
--- /dev/null
+++ b/web/yacco2/compiler/grammars/prefile_inc.lex
@@ -0,0 +1,133 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: prefile_inc.lex
+Dates: 17 Juin 2003
+Purpose: file name recognizer for includes
+Returned: T_file_inclusion
+ One of the following errors can be included within T_file_inclusion
+ Lr1_err_bad_filename
+ Lr1_err_bad_esc
+ Lr1_err_bad_eos
+ Lr1_err_no_filename
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |prefile_inc| Thread.\fbreak
+File name recognizer for includes.
+It checks the file system to
+verify that the file exists.
+Inside the returned ``file-inclusion'' terminal
+is the file open findings whether the file name exists.
+It is up to the caller to check this error status.
+A null status means it's okay while ``bad filename''
+error symbol with the extracted filename string
+is used.
+@/
+fsm
+(fsm-id "prefile_inc.lex",fsm-filename prefile_inc,fsm-namespace NS_prefile_inc
+,fsm-class Cprefile_inc{
+ user-prefix-declaration
+#include "ws.h"
+#include "eol.h"
+#include "c_string.h"
+using namespace NS_yacco2_terminals;
+ ***
+ user-declaration
+ public:
+ T_c_string* chrs_;
+ yacco2::CAbs_lr1_sym* error_raised_;
+ ***
+ op
+ chrs_ = 0;
+ error_raised_ = 0;
+ ***
+ constructor
+ chrs_ = 0;
+ error_raised_ = 0;
+ ***
+ }
+,fsm-version "1.0" ,fsm-date "17 Juin 2003"
+,fsm-debug "false"
+,fsm-comments "Preprocessor source file from the ``include file'' directive.")
+parallel-parser
+(
+ parallel-thread-function
+ TH_prefile_inc
+ ***
+ parallel-la-boundary
+ eolr
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rprefile_inc (
+lhs{
+ op
+ Cprefile_inc* fsm = (Cprefile_inc*) rule_info__.parser__->fsm_tbl__;
+ T_file_inclusion* typ = new T_file_inclusion(fsm->chrs_,fsm->error_raised_);
+ typ->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(typ);
+ fsm->chrs_=0;
+ ***
+ }
+){
+ -> "@" Rpossible_ws Rfile_string Reof |.|
+}
+
+Reof (){
+ -> // eof,eog type error
+ -> ||| eol NS_eol::TH_eol
+}
+
+Rpossible_ws (){
+ -> // shift out conflict
+ -> ||| "ws" NS_ws::TH_ws
+}
+
+Rfile_string (){
+ -> ||| "c-string" NS_c_string::TH_c_string{
+ op
+ Cprefile_inc* fsm = (Cprefile_inc*) rule_info__.parser__->fsm_tbl__;
+ fsm->chrs_ = sf->p2__;
+ string* ps_fn = fsm->chrs_->c_string();
+ std::ifstream fle_chk;
+ fle_chk.open(ps_fn->c_str());
+ if(!fle_chk.good()){
+ fsm->error_raised_ = new Err_bad_filename(*ps_fn);
+ fsm->error_raised_->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ }else{
+ fle_chk.close();
+ }
+ ***
+ }
+ -> ||| "bad eos" NULL{
+ op
+ Cprefile_inc* fsm = (Cprefile_inc*) rule_info__.parser__->fsm_tbl__;
+ fsm->error_raised_ = sf->p2__;
+ ***
+ }
+ -> ||| "bad esc" NULL{
+ op
+ Cprefile_inc* fsm = (Cprefile_inc*) rule_info__.parser__->fsm_tbl__;
+ fsm->error_raised_ = sf->p2__;
+ ***
+ }
+ -> {
+ op
+ Cprefile_inc* fsm = (Cprefile_inc*) rule_info__.parser__->fsm_tbl__;
+ fsm->error_raised_ = new Err_no_filename;
+ fsm->error_raised_->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ Cprefile_inc* fsm = (Cprefile_inc*) rule_info__.parser__->fsm_tbl__;
+ fsm->error_raised_ = sf->p2__;
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/prefile_include.cpp b/web/yacco2/compiler/grammars/prefile_include.cpp
new file mode 100644
index 0000000000..036eaa5d9a
--- /dev/null
+++ b/web/yacco2/compiler/grammars/prefile_include.cpp
@@ -0,0 +1,185 @@
+/*
+ File: prefile_include.cpp
+ Date and Time: Fri Jan 30 18:55:20 2015
+*/
+#include "prefile_include.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_prefile_include;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 4;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+}
+ Cprefile_include::
+ Cprefile_include()
+ :yacco2::CAbs_fsm
+ ("prefile_include.lex"
+ ,"1.0"
+ ,"17 Juin 2003"
+ ,false
+ ,"Preprocessor source file from the ``include file'' directive."
+ ,"Fri Jan 30 18:55:20 2015 "
+ ,S1_Cprefile_include){
+
+ chrs_ = 0;
+ error_raised_ = 0;
+
+ }
+
+Cprefile_include::~Cprefile_include(){
+
+ for(int x = 0;x < 4;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cprefile_include::failed(){
+ return false;
+ }
+ void Cprefile_include::op(){
+ chrs_ = 0;
+ error_raised_ = 0;
+
+}
+int Cprefile_include::rhs_to_rules_mapping_[11] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,2 // subrule 4 for rule 3
+ ,2 // subrule 5 for rule 3
+ ,3 // subrule 6 for rule 4
+ ,3 // subrule 7 for rule 4
+ ,3 // subrule 8 for rule 4
+ ,3 // subrule 9 for rule 4
+ ,3 // subrule 10 for rule 4
+};
+Rprefile_include::Rprefile_include(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rprefile_include",0,Cprefile_include::R_Rprefile_include_,P,false,false){
+}
+
+void Rprefile_include::op(){
+ sstrace_rulesss
+
+ Cprefile_include* fsm = (Cprefile_include*) rule_info__.parser__->fsm_tbl__;
+ T_file_inclusion* typ = new T_file_inclusion(fsm->chrs_,fsm->error_raised_);
+ typ->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(typ);
+ fsm->chrs_=0;
+
+}
+Reof::Reof(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Reof",0,Cprefile_include::R_Reof_,P,false,false){
+}
+
+Rpossible_ws::Rpossible_ws(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rpossible_ws",0,Cprefile_include::R_Rpossible_ws_,P,false,false){
+}
+
+Rfile_string::Rfile_string(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfile_string",0,Cprefile_include::R_Rfile_string_,P,false,false){
+}
+
+void Rfile_string::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_c_string* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cprefile_include* fsm = (Cprefile_include*) rule_info__.parser__->fsm_tbl__;
+ fsm->chrs_ = sf->p2__;
+ string* ps_fn = fsm->chrs_->c_string();
+ std::ifstream fle_chk;
+ fle_chk.open(ps_fn->c_str());
+ if(!fle_chk.good()){
+ fsm->error_raised_ = new Err_bad_filename(*ps_fn);
+ fsm->error_raised_->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ }else{
+ fle_chk.close();
+ }
+
+}
+
+void Rfile_string::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Err_bad_eos* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cprefile_include* fsm = (Cprefile_include*) rule_info__.parser__->fsm_tbl__;
+ fsm->error_raised_ = sf->p2__;
+
+}
+
+void Rfile_string::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Err_bad_esc* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cprefile_include* fsm =
+ (Cprefile_include*) rule_info__.parser__->fsm_tbl__;
+ fsm->error_raised_ = sf->p2__;
+
+}
+
+void Rfile_string::sr4(){
+
+ Cprefile_include* fsm = (Cprefile_include*) rule_info__.parser__->fsm_tbl__;
+ fsm->error_raised_ = new Err_no_filename;
+ fsm->error_raised_->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+
+}
+
+void Rfile_string::sr5(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cprefile_include* fsm =
+ (Cprefile_include*) rule_info__.parser__->fsm_tbl__;
+ fsm->error_raised_ = sf->p2__;
+
+}
+
diff --git a/web/yacco2/compiler/grammars/prefile_include.fsc b/web/yacco2/compiler/grammars/prefile_include.fsc
new file mode 100644
index 0000000000..50f01e3cdc
--- /dev/null
+++ b/web/yacco2/compiler/grammars/prefile_include.fsc
@@ -0,0 +1,23 @@
+/*
+ File: prefile_include.fsc
+ Date and Time: Fri Jan 30 18:55:20 2015
+*/
+transitive n
+grammar-name "prefile_include"
+name-space "NS_prefile_include"
+thread-name "TH_prefile_include"
+monolithic n
+file-name "prefile_include.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ raw_at_sign
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 3
+ NS_c_string::TH_c_string
+ NS_eol::TH_eol
+ NS_ws::TH_ws
+end-list-of-used-threads
+fsm-comments
+"Preprocessor source file from the ``include file'' directive."
diff --git a/web/yacco2/compiler/grammars/prefile_include.h b/web/yacco2/compiler/grammars/prefile_include.h
new file mode 100644
index 0000000000..67eb767db9
--- /dev/null
+++ b/web/yacco2/compiler/grammars/prefile_include.h
@@ -0,0 +1,101 @@
+/*
+ File: prefile_include.h
+ Date and Time: Fri Jan 30 18:55:20 2015
+*/
+#ifndef __prefile_include_h__
+#define __prefile_include_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "ws.h"
+#include "eol.h"
+#include "c_string.h"
+using namespace NS_yacco2_terminals;
+
+extern yacco2::Thread_entry ITH_prefile_include;
+
+extern yacco2::State S1_Cprefile_include;
+namespace NS_prefile_include {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_prefile_include(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_prefile_include(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[4];
+};
+class Cprefile_include: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rprefile_include_ = 569//start_of_rule_list + 0
+ ,rhs1_Rprefile_include_ = 1
+ ,R_Reof_ = 570//start_of_rule_list + 2
+ ,rhs1_Reof_ = 2
+ ,rhs2_Reof_ = 3
+ ,R_Rpossible_ws_ = 571//start_of_rule_list + 4
+ ,rhs1_Rpossible_ws_ = 4
+ ,rhs2_Rpossible_ws_ = 5
+ ,R_Rfile_string_ = 572//start_of_rule_list + 6
+ ,rhs1_Rfile_string_ = 6
+ ,rhs2_Rfile_string_ = 7
+ ,rhs3_Rfile_string_ = 8
+ ,rhs4_Rfile_string_ = 9
+ ,rhs5_Rfile_string_ = 10
+ };
+ //no of la sets = 3
+ //no of states = 17
+ Cprefile_include();
+ ~Cprefile_include();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[11];
+
+ public:
+ T_c_string* chrs_;
+ yacco2::CAbs_lr1_sym* error_raised_;
+
+ };
+struct Rprefile_include;
+struct Reof;
+struct Rpossible_ws;
+struct Rfile_string;
+struct Rprefile_include:public yacco2::CAbs_lr1_sym {
+ Rprefile_include(yacco2::Parser* P);
+ void op();
+ public:
+};
+
+struct Reof:public yacco2::CAbs_lr1_sym {
+ Reof(yacco2::Parser* P);
+ public:
+};
+
+struct Rpossible_ws:public yacco2::CAbs_lr1_sym {
+ Rpossible_ws(yacco2::Parser* P);
+ public:
+};
+
+struct Rfile_string:public yacco2::CAbs_lr1_sym {
+ Rfile_string(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+ void sr5();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/prefile_include.lex b/web/yacco2/compiler/grammars/prefile_include.lex
new file mode 100644
index 0000000000..eabc49f3c8
--- /dev/null
+++ b/web/yacco2/compiler/grammars/prefile_include.lex
@@ -0,0 +1,135 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: prefile_include.lex
+Dates: 17 Juin 2003
+Purpose: file name recognizer for includes
+Returned: T_file_inclusion
+ One of the following errors can be included within T_file_inclusion
+ Lr1_err_bad_filename
+ Lr1_err_bad_esc
+ Lr1_err_bad_eos
+ Lr1_err_no_filename
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |prefile_include| Thread.\fbreak
+File name recognizer for includes.
+It checks the file system to
+verify that the file exists.
+Inside the returned ``file-inclusion'' terminal
+is the file open findings whether the file name exists.
+It is up to the caller to check this error status.
+A null status means it's okay while ``bad filename''
+error symbol with the extracted filename string
+is used.
+@/
+fsm
+(fsm-id "prefile_include.lex",fsm-filename prefile_include,fsm-namespace NS_prefile_include
+,fsm-class Cprefile_include{
+ user-prefix-declaration
+#include "ws.h"
+#include "eol.h"
+#include "c_string.h"
+using namespace NS_yacco2_terminals;
+ ***
+ user-declaration
+ public:
+ T_c_string* chrs_;
+ yacco2::CAbs_lr1_sym* error_raised_;
+ ***
+ op
+ chrs_ = 0;
+ error_raised_ = 0;
+ ***
+ constructor
+ chrs_ = 0;
+ error_raised_ = 0;
+ ***
+ }
+,fsm-version "1.0" ,fsm-date "17 Juin 2003"
+,fsm-debug "false"
+,fsm-comments "Preprocessor source file from the ``include file'' directive.")
+parallel-parser
+(
+ parallel-thread-function
+ TH_prefile_include
+ ***
+ parallel-la-boundary
+ eolr
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rprefile_include (
+lhs{
+ op
+ Cprefile_include* fsm = (Cprefile_include*) rule_info__.parser__->fsm_tbl__;
+ T_file_inclusion* typ = new T_file_inclusion(fsm->chrs_,fsm->error_raised_);
+ typ->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(typ);
+ fsm->chrs_=0;
+ ***
+ }
+){
+ -> "@" Rpossible_ws Rfile_string Reof
+}
+
+Reof (){
+ -> |.| // eof,eog type error
+ -> ||| eol NS_eol::TH_eol
+}
+
+Rpossible_ws (){
+ -> |.| // shift out conflict
+ -> ||| "ws" NS_ws::TH_ws
+}
+
+Rfile_string (){
+ -> ||| "c-string" NS_c_string::TH_c_string{
+ op
+ Cprefile_include* fsm = (Cprefile_include*) rule_info__.parser__->fsm_tbl__;
+ fsm->chrs_ = sf->p2__;
+ string* ps_fn = fsm->chrs_->c_string();
+ std::ifstream fle_chk;
+ fle_chk.open(ps_fn->c_str());
+ if(!fle_chk.good()){
+ fsm->error_raised_ = new Err_bad_filename(*ps_fn);
+ fsm->error_raised_->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ }else{
+ fle_chk.close();
+ }
+ ***
+ }
+ -> ||| "bad eos" NULL{
+ op
+ Cprefile_include* fsm = (Cprefile_include*) rule_info__.parser__->fsm_tbl__;
+ fsm->error_raised_ = sf->p2__;
+ ***
+ }
+ -> ||| "bad esc" NULL{
+ op
+ Cprefile_include* fsm =
+ (Cprefile_include*) rule_info__.parser__->fsm_tbl__;
+ fsm->error_raised_ = sf->p2__;
+ ***
+ }
+ -> |?| {
+ op
+ Cprefile_include* fsm = (Cprefile_include*) rule_info__.parser__->fsm_tbl__;
+ fsm->error_raised_ = new Err_no_filename;
+ fsm->error_raised_->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ Cprefile_include* fsm =
+ (Cprefile_include*) rule_info__.parser__->fsm_tbl__;
+ fsm->error_raised_ = sf->p2__;
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/prefile_includesym.cpp b/web/yacco2/compiler/grammars/prefile_includesym.cpp
new file mode 100644
index 0000000000..3f23184c26
--- /dev/null
+++ b/web/yacco2/compiler/grammars/prefile_includesym.cpp
@@ -0,0 +1,194 @@
+/*
+ File: prefile_includesym.cpp
+ Date and Time: Fri Jan 30 18:55:20 2015
+*/
+#include "prefile_include.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_prefile_include;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_prefile_include::TH_prefile_include(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_prefile_include;
+ NS_prefile_include::Cprefile_include Cprefile_include_;// parallel-parser's parse table
+#define ssPARSE_TABLE Cprefile_include_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_prefile_include::PROC_TH_prefile_include(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_prefile_include";
+ static bool one_time(false);
+ static NS_prefile_include::Cprefile_include* NS_prefile_include_Cprefile_include_(0);// parallel-parser's fsm table
+ static Parser* NS_prefile_include_Cprefile_include_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_prefile_include_Cprefile_include_ = new NS_prefile_include::Cprefile_include();// parallel-parser's fsm table
+ NS_prefile_include_Cprefile_include_parser = new Parser(*NS_prefile_include_Cprefile_include_,Caller_pp);
+ }
+ proc_parser = NS_prefile_include_Cprefile_include_parser;
+#include "wproc_pp_core.h"
+}
+void
+Cprefile_include::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rprefile_include_:{
+ Rprefile_include* sym;
+ if(re->rule_ == 0){
+ sym = new Rprefile_include(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rprefile_include*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 4;
+
+
+ sym->op();
+ return;}
+ case rhs1_Reof_:{
+ Reof* sym;
+ if(re->rule_ == 0){
+ sym = new Reof(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Reof*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Reof_:{
+ Reof* sym;
+ if(re->rule_ == 0){
+ sym = new Reof(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Reof*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rpossible_ws_:{
+ Rpossible_ws* sym;
+ if(re->rule_ == 0){
+ sym = new Rpossible_ws(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rpossible_ws*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rpossible_ws_:{
+ Rpossible_ws* sym;
+ if(re->rule_ == 0){
+ sym = new Rpossible_ws(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rpossible_ws*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rfile_string_:{
+ Rfile_string* sym;
+ if(re->rule_ == 0){
+ sym = new Rfile_string(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfile_string*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rfile_string_:{
+ Rfile_string* sym;
+ if(re->rule_ == 0){
+ sym = new Rfile_string(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfile_string*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rfile_string_:{
+ Rfile_string* sym;
+ if(re->rule_ == 0){
+ sym = new Rfile_string(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfile_string*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rfile_string_:{
+ Rfile_string* sym;
+ if(re->rule_ == 0){
+ sym = new Rfile_string(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfile_string*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr4();
+ return;}
+ case rhs5_Rfile_string_:{
+ Rfile_string* sym;
+ if(re->rule_ == 0){
+ sym = new Rfile_string(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfile_string*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr5();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/prefile_includetbl.cpp b/web/yacco2/compiler/grammars/prefile_includetbl.cpp
new file mode 100644
index 0000000000..a24293e50c
--- /dev/null
+++ b/web/yacco2/compiler/grammars/prefile_includetbl.cpp
@@ -0,0 +1,342 @@
+/*
+ File: prefile_includetbl.cpp
+ Date and Time: Fri Jan 30 18:55:20 2015
+*/
+#include "prefile_include.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_prefile_include;// grammar's ns
+// first set terminals
+// LR1_eolr
+yacco2::UCHAR LA1_Cprefile_include[] ={
+1
+,0,4
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+yacco2::UCHAR LA2_Cprefile_include[] ={
+1
+,0,17
+};
+// LR1_reduce_operator
+// LR1_invisible_shift_operator
+yacco2::UCHAR LA3_Cprefile_include[] ={
+1
+,0,48
+};
+extern yacco2::State S1_Cprefile_include;
+extern yacco2::State S2_Cprefile_include;
+extern yacco2::State S3_Cprefile_include;
+extern yacco2::State S4_Cprefile_include;
+extern yacco2::State S5_Cprefile_include;
+struct S5ttd_Cprefile_include{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S5ttd_Cprefile_include S5tt_Cprefile_include = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_eol
+};
+extern yacco2::State S6_Cprefile_include;
+extern yacco2::State S7_Cprefile_include;
+extern yacco2::State S8_Cprefile_include;
+extern yacco2::State S9_Cprefile_include;
+struct S9ttd_Cprefile_include{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S9ttd_Cprefile_include S9tt_Cprefile_include = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_ws
+};
+extern yacco2::State S10_Cprefile_include;
+extern yacco2::State S11_Cprefile_include;
+extern yacco2::State S12_Cprefile_include;
+extern yacco2::State S13_Cprefile_include;
+struct S13ttd_Cprefile_include{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S13ttd_Cprefile_include S13tt_Cprefile_include = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_c_string
+};
+extern yacco2::State S14_Cprefile_include;
+extern yacco2::State S15_Cprefile_include;
+extern yacco2::State S16_Cprefile_include;
+extern yacco2::State S17_Cprefile_include;
+struct S1std_Cprefile_include{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S1std_Cprefile_include S1st_Cprefile_include = {
+ 2
+ ,
+ {// start of table
+ {72,(State*)&S2_Cprefile_include} // shift sym: raw_at_sign
+ ,{569,(State*)&S1_Cprefile_include} // accept sym: Rprefile_include
+ }// end of shift table
+};
+yacco2::State S1_Cprefile_include = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Cprefile_include,0,0,0,0};
+struct S2std_Cprefile_include{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S2std_Cprefile_include S2st_Cprefile_include = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S9_Cprefile_include} // shift sym: LR1_parallel_operator
+ ,{5,(State*)&S11_Cprefile_include} // shift sym: LR1_invisible_shift_operator
+ ,{571,(State*)&S3_Cprefile_include} // shift sym: Rpossible_ws
+ }// end of shift table
+};
+yacco2::Shift_entry S2pse_Cprefile_include = {3,(State*)&S9_Cprefile_include};
+yacco2::Shift_entry S2ise_Cprefile_include = {5,(State*)&S11_Cprefile_include};
+yacco2::State S2_Cprefile_include = //State's vectored into symbol: "@"
+{2
+,(Shift_entry*)&S2pse_Cprefile_include,0,(Shift_entry*)&S2ise_Cprefile_include
+,0,(Shift_tbl*)&S2st_Cprefile_include,0,(State_s_thread_tbl*)&S9tt_Cprefile_include,0,0};
+struct S3std_Cprefile_include{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S3std_Cprefile_include S3st_Cprefile_include = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S12_Cprefile_include} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S13_Cprefile_include} // shift sym: LR1_parallel_operator
+ ,{572,(State*)&S4_Cprefile_include} // shift sym: Rfile_string
+ }// end of shift table
+};
+yacco2::Shift_entry S3pse_Cprefile_include = {3,(State*)&S13_Cprefile_include};
+yacco2::Shift_entry S3qse_Cprefile_include = {0,(State*)&S12_Cprefile_include};
+yacco2::State S3_Cprefile_include = //State's vectored into symbol: "Rpossible_ws"
+{3
+,(Shift_entry*)&S3pse_Cprefile_include,0,0,0,(Shift_tbl*)&S3st_Cprefile_include,0,(State_s_thread_tbl*)&S13tt_Cprefile_include,0,(Shift_entry*)&S3qse_Cprefile_include
+};
+struct S4std_Cprefile_include{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S4std_Cprefile_include S4st_Cprefile_include = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S5_Cprefile_include} // shift sym: LR1_parallel_operator
+ ,{5,(State*)&S7_Cprefile_include} // shift sym: LR1_invisible_shift_operator
+ ,{570,(State*)&S8_Cprefile_include} // shift sym: Reof
+ }// end of shift table
+};
+yacco2::Shift_entry S4pse_Cprefile_include = {3,(State*)&S5_Cprefile_include};
+yacco2::Shift_entry S4ise_Cprefile_include = {5,(State*)&S7_Cprefile_include};
+yacco2::State S4_Cprefile_include = //State's vectored into symbol: "Rfile_string"
+{4
+,(Shift_entry*)&S4pse_Cprefile_include,0,(Shift_entry*)&S4ise_Cprefile_include
+,0,(Shift_tbl*)&S4st_Cprefile_include,0,(State_s_thread_tbl*)&S5tt_Cprefile_include,0,0};
+struct S5std_Cprefile_include{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S5std_Cprefile_include S5st_Cprefile_include = {
+ 1
+ ,
+ {// start of table
+ {268,(State*)&S6_Cprefile_include} // shift sym: T_eol
+ }// end of shift table
+};
+yacco2::State S5_Cprefile_include = //State's vectored into symbol: "|||"
+{5
+,0,0,0,0,(Shift_tbl*)&S5st_Cprefile_include,0,0,0,0};
+struct S6rtd_Cprefile_include{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Cprefile_include S6rt_Cprefile_include = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cprefile_include,Cprefile_include::rhs2_Reof_}
+ }// end of reduce table
+};
+yacco2::State S6_Cprefile_include = //State's vectored into symbol: "eol"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Cprefile_include,0,0,0};
+struct S7rtd_Cprefile_include{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Cprefile_include S7rt_Cprefile_include = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cprefile_include,Cprefile_include::rhs1_Reof_}
+ }// end of reduce table
+};
+yacco2::State S7_Cprefile_include = //State's vectored into symbol: "|.|"
+{7
+,0,0,0,0,0,(Reduce_tbl*)&S7rt_Cprefile_include,0,0,0};
+struct S8rtd_Cprefile_include{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S8rtd_Cprefile_include S8rt_Cprefile_include = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cprefile_include,Cprefile_include::rhs1_Rprefile_include_}
+ }// end of reduce table
+};
+yacco2::State S8_Cprefile_include = //State's vectored into symbol: "Reof"
+{8
+,0,0,0,0,0,(Reduce_tbl*)&S8rt_Cprefile_include,0,0,0};
+struct S9std_Cprefile_include{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S9std_Cprefile_include S9st_Cprefile_include = {
+ 1
+ ,
+ {// start of table
+ {272,(State*)&S10_Cprefile_include} // shift sym: T_ws
+ }// end of shift table
+};
+yacco2::State S9_Cprefile_include = //State's vectored into symbol: "|||"
+{9
+,0,0,0,0,(Shift_tbl*)&S9st_Cprefile_include,0,0,0,0};
+struct S10rtd_Cprefile_include{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S10rtd_Cprefile_include S10rt_Cprefile_include = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cprefile_include,Cprefile_include::rhs2_Rpossible_ws_}
+ }// end of reduce table
+};
+yacco2::State S10_Cprefile_include = //State's vectored into symbol: "ws"
+{10
+,0,0,0,0,0,(Reduce_tbl*)&S10rt_Cprefile_include,0,0,0};
+struct S11rtd_Cprefile_include{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Cprefile_include S11rt_Cprefile_include = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cprefile_include,Cprefile_include::rhs1_Rpossible_ws_}
+ }// end of reduce table
+};
+yacco2::State S11_Cprefile_include = //State's vectored into symbol: "|.|"
+{11
+,0,0,0,0,0,(Reduce_tbl*)&S11rt_Cprefile_include,0,0,0};
+struct S12rtd_Cprefile_include{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S12rtd_Cprefile_include S12rt_Cprefile_include = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cprefile_include,Cprefile_include::rhs4_Rfile_string_}
+ }// end of reduce table
+};
+yacco2::State S12_Cprefile_include = //State's vectored into symbol: "|?|"
+{12
+,0,0,0,0,0,(Reduce_tbl*)&S12rt_Cprefile_include,0,0,0};
+struct S13std_Cprefile_include{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S13std_Cprefile_include S13st_Cprefile_include = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S14_Cprefile_include} // shift sym: LR1_questionable_shift_operator
+ ,{275,(State*)&S15_Cprefile_include} // shift sym: T_c_string
+ ,{394,(State*)&S16_Cprefile_include} // shift sym: Err_bad_eos
+ ,{395,(State*)&S17_Cprefile_include} // shift sym: Err_bad_esc
+ }// end of shift table
+};
+yacco2::Shift_entry S13qse_Cprefile_include = {0,(State*)&S14_Cprefile_include};
+yacco2::State S13_Cprefile_include = //State's vectored into symbol: "|||"
+{13
+,0,0,0,0,(Shift_tbl*)&S13st_Cprefile_include,0,0,0,(Shift_entry*)&S13qse_Cprefile_include
+};
+struct S14rtd_Cprefile_include{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S14rtd_Cprefile_include S14rt_Cprefile_include = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cprefile_include,Cprefile_include::rhs5_Rfile_string_}
+ }// end of reduce table
+};
+yacco2::State S14_Cprefile_include = //State's vectored into symbol: "|?|"
+{14
+,0,0,0,0,0,(Reduce_tbl*)&S14rt_Cprefile_include,0,0,0};
+struct S15rtd_Cprefile_include{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S15rtd_Cprefile_include S15rt_Cprefile_include = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cprefile_include,Cprefile_include::rhs1_Rfile_string_}
+ }// end of reduce table
+};
+yacco2::State S15_Cprefile_include = //State's vectored into symbol: "c-string"
+{15
+,0,0,0,0,0,(Reduce_tbl*)&S15rt_Cprefile_include,0,0,0};
+struct S16rtd_Cprefile_include{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S16rtd_Cprefile_include S16rt_Cprefile_include = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cprefile_include,Cprefile_include::rhs2_Rfile_string_}
+ }// end of reduce table
+};
+yacco2::State S16_Cprefile_include = //State's vectored into symbol: "bad eos"
+{16
+,0,0,0,0,0,(Reduce_tbl*)&S16rt_Cprefile_include,0,0,0};
+struct S17rtd_Cprefile_include{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S17rtd_Cprefile_include S17rt_Cprefile_include = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cprefile_include,Cprefile_include::rhs3_Rfile_string_}
+ }// end of reduce table
+};
+yacco2::State S17_Cprefile_include = //State's vectored into symbol: "bad esc"
+{17
+,0,0,0,0,0,(Reduce_tbl*)&S17rt_Cprefile_include,0,0,0};
diff --git a/web/yacco2/compiler/grammars/prefile_incsym.cpp b/web/yacco2/compiler/grammars/prefile_incsym.cpp
new file mode 100644
index 0000000000..4a042963f8
--- /dev/null
+++ b/web/yacco2/compiler/grammars/prefile_incsym.cpp
@@ -0,0 +1,194 @@
+/*
+ File: prefile_incsym.cpp
+ Date and Time: Fri Jan 30 18:55:20 2015
+*/
+#include "prefile_inc.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_prefile_inc;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_prefile_inc::TH_prefile_inc(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_prefile_inc;
+ NS_prefile_inc::Cprefile_inc Cprefile_inc_;// parallel-parser's parse table
+#define ssPARSE_TABLE Cprefile_inc_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_prefile_inc::PROC_TH_prefile_inc(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_prefile_inc";
+ static bool one_time(false);
+ static NS_prefile_inc::Cprefile_inc* NS_prefile_inc_Cprefile_inc_(0);// parallel-parser's fsm table
+ static Parser* NS_prefile_inc_Cprefile_inc_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_prefile_inc_Cprefile_inc_ = new NS_prefile_inc::Cprefile_inc();// parallel-parser's fsm table
+ NS_prefile_inc_Cprefile_inc_parser = new Parser(*NS_prefile_inc_Cprefile_inc_,Caller_pp);
+ }
+ proc_parser = NS_prefile_inc_Cprefile_inc_parser;
+#include "wproc_pp_core.h"
+}
+void
+Cprefile_inc::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rprefile_inc_:{
+ Rprefile_inc* sym;
+ if(re->rule_ == 0){
+ sym = new Rprefile_inc(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rprefile_inc*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ sym->op();
+ return;}
+ case rhs1_Reof_:{
+ Reof* sym;
+ if(re->rule_ == 0){
+ sym = new Reof(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Reof*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs2_Reof_:{
+ Reof* sym;
+ if(re->rule_ == 0){
+ sym = new Reof(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Reof*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rpossible_ws_:{
+ Rpossible_ws* sym;
+ if(re->rule_ == 0){
+ sym = new Rpossible_ws(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rpossible_ws*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs2_Rpossible_ws_:{
+ Rpossible_ws* sym;
+ if(re->rule_ == 0){
+ sym = new Rpossible_ws(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rpossible_ws*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rfile_string_:{
+ Rfile_string* sym;
+ if(re->rule_ == 0){
+ sym = new Rfile_string(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfile_string*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rfile_string_:{
+ Rfile_string* sym;
+ if(re->rule_ == 0){
+ sym = new Rfile_string(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfile_string*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rfile_string_:{
+ Rfile_string* sym;
+ if(re->rule_ == 0){
+ sym = new Rfile_string(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfile_string*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rfile_string_:{
+ Rfile_string* sym;
+ if(re->rule_ == 0){
+ sym = new Rfile_string(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfile_string*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ sym->sr4();
+ return;}
+ case rhs5_Rfile_string_:{
+ Rfile_string* sym;
+ if(re->rule_ == 0){
+ sym = new Rfile_string(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfile_string*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr5();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/prefile_inctbl.cpp b/web/yacco2/compiler/grammars/prefile_inctbl.cpp
new file mode 100644
index 0000000000..8f5470ec02
--- /dev/null
+++ b/web/yacco2/compiler/grammars/prefile_inctbl.cpp
@@ -0,0 +1,337 @@
+/*
+ File: prefile_inctbl.cpp
+ Date and Time: Fri Jan 30 18:55:20 2015
+*/
+#include "prefile_inc.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_prefile_inc;// grammar's ns
+// first set terminals
+// LR1_reduce_operator
+// LR1_invisible_shift_operator
+yacco2::UCHAR LA1_Cprefile_inc[] ={
+1
+,0,48
+};
+// LR1_invisible_shift_operator
+yacco2::UCHAR LA2_Cprefile_inc[] ={
+1
+,0,32
+};
+// LR1_eolr
+yacco2::UCHAR LA3_Cprefile_inc[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Cprefile_inc;
+extern yacco2::State S2_Cprefile_inc;
+extern yacco2::State S3_Cprefile_inc;
+extern yacco2::State S4_Cprefile_inc;
+extern yacco2::State S5_Cprefile_inc;
+extern yacco2::State S6_Cprefile_inc;
+extern yacco2::State S7_Cprefile_inc;
+struct S7ttd_Cprefile_inc{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S7ttd_Cprefile_inc S7tt_Cprefile_inc = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_ws
+};
+extern yacco2::State S8_Cprefile_inc;
+extern yacco2::State S9_Cprefile_inc;
+struct S9ttd_Cprefile_inc{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S9ttd_Cprefile_inc S9tt_Cprefile_inc = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_c_string
+};
+extern yacco2::State S10_Cprefile_inc;
+extern yacco2::State S11_Cprefile_inc;
+extern yacco2::State S12_Cprefile_inc;
+extern yacco2::State S13_Cprefile_inc;
+extern yacco2::State S14_Cprefile_inc;
+struct S14ttd_Cprefile_inc{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S14ttd_Cprefile_inc S14tt_Cprefile_inc = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_eol
+};
+extern yacco2::State S15_Cprefile_inc;
+struct S1std_Cprefile_inc{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S1std_Cprefile_inc S1st_Cprefile_inc = {
+ 2
+ ,
+ {// start of table
+ {72,(State*)&S2_Cprefile_inc} // shift sym: raw_at_sign
+ ,{569,(State*)&S1_Cprefile_inc} // accept sym: Rprefile_inc
+ }// end of shift table
+};
+yacco2::State S1_Cprefile_inc = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Cprefile_inc,0,0,0,0};
+struct S2std_Cprefile_inc{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S2std_Cprefile_inc S2st_Cprefile_inc = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S7_Cprefile_inc} // shift sym: LR1_parallel_operator
+ ,{571,(State*)&S3_Cprefile_inc} // shift sym: Rpossible_ws
+ }// end of shift table
+};
+yacco2::Shift_entry S2pse_Cprefile_inc = {3,(State*)&S7_Cprefile_inc};
+struct S2rtd_Cprefile_inc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Cprefile_inc S2rt_Cprefile_inc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cprefile_inc,Cprefile_inc::rhs1_Rpossible_ws_}
+ }// end of reduce table
+};
+yacco2::State S2_Cprefile_inc = //State's vectored into symbol: "@"
+{2
+,(Shift_entry*)&S2pse_Cprefile_inc,0,0,0,(Shift_tbl*)&S2st_Cprefile_inc,(Reduce_tbl*)&S2rt_Cprefile_inc,(State_s_thread_tbl*)&S7tt_Cprefile_inc,0,0};
+struct S3std_Cprefile_inc{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S3std_Cprefile_inc S3st_Cprefile_inc = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S9_Cprefile_inc} // shift sym: LR1_parallel_operator
+ ,{572,(State*)&S4_Cprefile_inc} // shift sym: Rfile_string
+ }// end of shift table
+};
+yacco2::Shift_entry S3pse_Cprefile_inc = {3,(State*)&S9_Cprefile_inc};
+struct S3rtd_Cprefile_inc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Cprefile_inc S3rt_Cprefile_inc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cprefile_inc,Cprefile_inc::rhs4_Rfile_string_}
+ }// end of reduce table
+};
+yacco2::State S3_Cprefile_inc = //State's vectored into symbol: "Rpossible_ws"
+{3
+,(Shift_entry*)&S3pse_Cprefile_inc,0,0,0,(Shift_tbl*)&S3st_Cprefile_inc,(Reduce_tbl*)&S3rt_Cprefile_inc,(State_s_thread_tbl*)&S9tt_Cprefile_inc,0,0};
+struct S4std_Cprefile_inc{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S4std_Cprefile_inc S4st_Cprefile_inc = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S14_Cprefile_inc} // shift sym: LR1_parallel_operator
+ ,{570,(State*)&S5_Cprefile_inc} // shift sym: Reof
+ }// end of shift table
+};
+yacco2::Shift_entry S4pse_Cprefile_inc = {3,(State*)&S14_Cprefile_inc};
+struct S4rtd_Cprefile_inc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Cprefile_inc S4rt_Cprefile_inc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cprefile_inc,Cprefile_inc::rhs1_Reof_}
+ }// end of reduce table
+};
+yacco2::State S4_Cprefile_inc = //State's vectored into symbol: "Rfile_string"
+{4
+,(Shift_entry*)&S4pse_Cprefile_inc,0,0,0,(Shift_tbl*)&S4st_Cprefile_inc,(Reduce_tbl*)&S4rt_Cprefile_inc,(State_s_thread_tbl*)&S14tt_Cprefile_inc,0,0};
+struct S5std_Cprefile_inc{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S5std_Cprefile_inc S5st_Cprefile_inc = {
+ 1
+ ,
+ {// start of table
+ {5,(State*)&S6_Cprefile_inc} // shift sym: LR1_invisible_shift_operator
+ }// end of shift table
+};
+yacco2::Shift_entry S5ise_Cprefile_inc = {5,(State*)&S6_Cprefile_inc};
+yacco2::State S5_Cprefile_inc = //State's vectored into symbol: "Reof"
+{5
+,0,0,(Shift_entry*)&S5ise_Cprefile_inc
+,0,(Shift_tbl*)&S5st_Cprefile_inc,0,0,0,0};
+struct S6rtd_Cprefile_inc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Cprefile_inc S6rt_Cprefile_inc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cprefile_inc,Cprefile_inc::rhs1_Rprefile_inc_}
+ }// end of reduce table
+};
+yacco2::State S6_Cprefile_inc = //State's vectored into symbol: "|.|"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Cprefile_inc,0,0,0};
+struct S7std_Cprefile_inc{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S7std_Cprefile_inc S7st_Cprefile_inc = {
+ 1
+ ,
+ {// start of table
+ {272,(State*)&S8_Cprefile_inc} // shift sym: T_ws
+ }// end of shift table
+};
+yacco2::State S7_Cprefile_inc = //State's vectored into symbol: "|||"
+{7
+,0,0,0,0,(Shift_tbl*)&S7st_Cprefile_inc,0,0,0,0};
+struct S8rtd_Cprefile_inc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S8rtd_Cprefile_inc S8rt_Cprefile_inc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cprefile_inc,Cprefile_inc::rhs2_Rpossible_ws_}
+ }// end of reduce table
+};
+yacco2::State S8_Cprefile_inc = //State's vectored into symbol: "ws"
+{8
+,0,0,0,0,0,(Reduce_tbl*)&S8rt_Cprefile_inc,0,0,0};
+struct S9std_Cprefile_inc{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S9std_Cprefile_inc S9st_Cprefile_inc = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S10_Cprefile_inc} // shift sym: LR1_questionable_shift_operator
+ ,{275,(State*)&S11_Cprefile_inc} // shift sym: T_c_string
+ ,{394,(State*)&S12_Cprefile_inc} // shift sym: Err_bad_eos
+ ,{395,(State*)&S13_Cprefile_inc} // shift sym: Err_bad_esc
+ }// end of shift table
+};
+yacco2::Shift_entry S9qse_Cprefile_inc = {0,(State*)&S10_Cprefile_inc};
+yacco2::State S9_Cprefile_inc = //State's vectored into symbol: "|||"
+{9
+,0,0,0,0,(Shift_tbl*)&S9st_Cprefile_inc,0,0,0,(Shift_entry*)&S9qse_Cprefile_inc
+};
+struct S10rtd_Cprefile_inc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S10rtd_Cprefile_inc S10rt_Cprefile_inc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cprefile_inc,Cprefile_inc::rhs5_Rfile_string_}
+ }// end of reduce table
+};
+yacco2::State S10_Cprefile_inc = //State's vectored into symbol: "|?|"
+{10
+,0,0,0,0,0,(Reduce_tbl*)&S10rt_Cprefile_inc,0,0,0};
+struct S11rtd_Cprefile_inc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Cprefile_inc S11rt_Cprefile_inc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cprefile_inc,Cprefile_inc::rhs1_Rfile_string_}
+ }// end of reduce table
+};
+yacco2::State S11_Cprefile_inc = //State's vectored into symbol: "c-string"
+{11
+,0,0,0,0,0,(Reduce_tbl*)&S11rt_Cprefile_inc,0,0,0};
+struct S12rtd_Cprefile_inc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S12rtd_Cprefile_inc S12rt_Cprefile_inc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cprefile_inc,Cprefile_inc::rhs2_Rfile_string_}
+ }// end of reduce table
+};
+yacco2::State S12_Cprefile_inc = //State's vectored into symbol: "bad eos"
+{12
+,0,0,0,0,0,(Reduce_tbl*)&S12rt_Cprefile_inc,0,0,0};
+struct S13rtd_Cprefile_inc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S13rtd_Cprefile_inc S13rt_Cprefile_inc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cprefile_inc,Cprefile_inc::rhs3_Rfile_string_}
+ }// end of reduce table
+};
+yacco2::State S13_Cprefile_inc = //State's vectored into symbol: "bad esc"
+{13
+,0,0,0,0,0,(Reduce_tbl*)&S13rt_Cprefile_inc,0,0,0};
+struct S14std_Cprefile_inc{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S14std_Cprefile_inc S14st_Cprefile_inc = {
+ 1
+ ,
+ {// start of table
+ {268,(State*)&S15_Cprefile_inc} // shift sym: T_eol
+ }// end of shift table
+};
+yacco2::State S14_Cprefile_inc = //State's vectored into symbol: "|||"
+{14
+,0,0,0,0,(Shift_tbl*)&S14st_Cprefile_inc,0,0,0,0};
+struct S15rtd_Cprefile_inc{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S15rtd_Cprefile_inc S15rt_Cprefile_inc = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cprefile_inc,Cprefile_inc::rhs2_Reof_}
+ }// end of reduce table
+};
+yacco2::State S15_Cprefile_inc = //State's vectored into symbol: "eol"
+{15
+,0,0,0,0,0,(Reduce_tbl*)&S15rt_Cprefile_inc,0,0,0};
diff --git a/web/yacco2/compiler/grammars/prt_fs_of_rules.cpp b/web/yacco2/compiler/grammars/prt_fs_of_rules.cpp
new file mode 100644
index 0000000000..459de3059b
--- /dev/null
+++ b/web/yacco2/compiler/grammars/prt_fs_of_rules.cpp
@@ -0,0 +1,80 @@
+/*
+ File: prt_fs_of_rules.cpp
+ Date and Time: Fri Jan 30 18:55:20 2015
+*/
+#include "prt_fs_of_rules.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_prt_fs_of_rules;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 3;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+}
+ Cprt_fs_of_rules::
+ Cprt_fs_of_rules()
+ :yacco2::CAbs_fsm
+ ("prt_fs_of_rules.lex"
+ ,"1.0"
+ ,"26 sept. 2005"
+ ,false
+ ,"Print first set per rule"
+ ,"Fri Jan 30 18:55:20 2015 "
+ ,S1_Cprt_fs_of_rules){
+
+ }
+
+Cprt_fs_of_rules::~Cprt_fs_of_rules(){
+
+ for(int x = 0;x < 3;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cprt_fs_of_rules::failed(){
+ return false;
+ }
+ void Cprt_fs_of_rules::op(){
+}
+int Cprt_fs_of_rules::rhs_to_rules_mapping_[5] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,2 // subrule 4 for rule 3
+};
+Rprt_first_set_rules::Rprt_first_set_rules(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rprt_first_set_rules",0,Cprt_fs_of_rules::R_Rprt_first_set_rules_,P,true,true){
+}
+
+Rrules::Rrules(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrules",0,Cprt_fs_of_rules::R_Rrules_,P,true,true){
+}
+
+Rrule_def::Rrule_def(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrule_def",0,Cprt_fs_of_rules::R_Rrule_def_,P,true,true){
+}
+
+void Rrule_def::sr1(){
+ struct SF{
+ rule_def* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ rule_def* rdef = sf->p1__;
+ PRT_RULE_S_FIRST_SET(rdef);
+
+}
+
diff --git a/web/yacco2/compiler/grammars/prt_fs_of_rules.fsc b/web/yacco2/compiler/grammars/prt_fs_of_rules.fsc
new file mode 100644
index 0000000000..5392fad0d0
--- /dev/null
+++ b/web/yacco2/compiler/grammars/prt_fs_of_rules.fsc
@@ -0,0 +1,20 @@
+/*
+ File: prt_fs_of_rules.fsc
+ Date and Time: Fri Jan 30 18:55:20 2015
+*/
+transitive n
+grammar-name "prt_fs_of_rules"
+name-space "NS_prt_fs_of_rules"
+thread-name "Cprt_fs_of_rules"
+monolithic y
+file-name "prt_fs_of_rules.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ rule_def
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"Print first set per rule"
diff --git a/web/yacco2/compiler/grammars/prt_fs_of_rules.h b/web/yacco2/compiler/grammars/prt_fs_of_rules.h
new file mode 100644
index 0000000000..9184924d74
--- /dev/null
+++ b/web/yacco2/compiler/grammars/prt_fs_of_rules.h
@@ -0,0 +1,70 @@
+/*
+ File: prt_fs_of_rules.h
+ Date and Time: Fri Jan 30 18:55:20 2015
+*/
+#ifndef __prt_fs_of_rules_h__
+#define __prt_fs_of_rules_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "o2_externs.h"
+
+// monolithic grammar: no thread
+extern yacco2::State S1_Cprt_fs_of_rules;
+namespace NS_prt_fs_of_rules {
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[3];
+};
+class Cprt_fs_of_rules: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rprt_first_set_rules_ = 569//start_of_rule_list + 0
+ ,rhs1_Rprt_first_set_rules_ = 1
+ ,R_Rrules_ = 570//start_of_rule_list + 2
+ ,rhs1_Rrules_ = 2
+ ,rhs2_Rrules_ = 3
+ ,R_Rrule_def_ = 571//start_of_rule_list + 4
+ ,rhs1_Rrule_def_ = 4
+ };
+ //no of la sets = 2
+ //no of states = 6
+ Cprt_fs_of_rules();
+ ~Cprt_fs_of_rules();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[5];
+ };
+struct Rprt_first_set_rules;
+struct Rrules;
+struct Rrule_def;
+struct Rprt_first_set_rules:public yacco2::CAbs_lr1_sym {
+ Rprt_first_set_rules(yacco2::Parser* P);
+ public:
+};
+
+struct Rrules:public yacco2::CAbs_lr1_sym {
+ Rrules(yacco2::Parser* P);
+ public:
+};
+
+struct Rrule_def:public yacco2::CAbs_lr1_sym {
+ Rrule_def(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/prt_fs_of_rules.lex b/web/yacco2/compiler/grammars/prt_fs_of_rules.lex
new file mode 100644
index 0000000000..f7e7340b47
--- /dev/null
+++ b/web/yacco2/compiler/grammars/prt_fs_of_rules.lex
@@ -0,0 +1,57 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: prt_fs_of_rules.lex
+Dates: 23 Sept. 2005
+Purpose: Print first set per rule.
+How: Read the rules' tree in prefix order filtering out:
+ accepting only rule-def tokens.
+ all other tokens with the grammar tree are bypassed
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |prt_fs_of_rules| grammar.\fbreak
+Print out the {\bf First set} per rule definition.
+The first set was created by |first_set_rules| grammar.
+For ease of reading, I sort the terminals by their lexicographical order.
+
+@/
+
+fsm
+(fsm-id "prt_fs_of_rules.lex"
+,fsm-filename prt_fs_of_rules
+,fsm-namespace NS_prt_fs_of_rules
+,fsm-class Cprt_fs_of_rules{
+ user-prefix-declaration
+#include "o2_externs.h"
+ ***
+ }
+,fsm-version "1.0",fsm-date "26 sept. 2005",fsm-debug "false"
+,fsm-comments "Print first set per rule")
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rprt_first_set_rules AD AB()
+{
+ -> Rrules eog
+}
+
+Rrules AD AB(){
+ -> Rrule_def
+ -> Rrules Rrule_def
+}
+
+Rrule_def AD AB(){
+ -> "rule-def" {
+ /@
+ Initialize for its subrule findings.
+ @/
+ op
+ rule_def* rdef = sf->p1__;
+ PRT_RULE_S_FIRST_SET(rdef);
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/prt_fs_of_rulessym.cpp b/web/yacco2/compiler/grammars/prt_fs_of_rulessym.cpp
new file mode 100644
index 0000000000..7c22f0a81f
--- /dev/null
+++ b/web/yacco2/compiler/grammars/prt_fs_of_rulessym.cpp
@@ -0,0 +1,84 @@
+/*
+ File: prt_fs_of_rulessym.cpp
+ Date and Time: Fri Jan 30 18:55:20 2015
+*/
+#include "prt_fs_of_rules.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_prt_fs_of_rules;// grammar's ns
+// first set terminals
+// monolithic grammar --- no thread
+void
+Cprt_fs_of_rules::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rprt_first_set_rules_:{
+ Rprt_first_set_rules* sym;
+ if(re->rule_ == 0){
+ sym = new Rprt_first_set_rules(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rprt_first_set_rules*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rrules_:{
+ Rrules* sym;
+ if(re->rule_ == 0){
+ sym = new Rrules(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrules*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rrules_:{
+ Rrules* sym;
+ if(re->rule_ == 0){
+ sym = new Rrules(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrules*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rrule_def_:{
+ Rrule_def* sym;
+ if(re->rule_ == 0){
+ sym = new Rrule_def(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrule_def*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/prt_fs_of_rulestbl.cpp b/web/yacco2/compiler/grammars/prt_fs_of_rulestbl.cpp
new file mode 100644
index 0000000000..4ef66c3263
--- /dev/null
+++ b/web/yacco2/compiler/grammars/prt_fs_of_rulestbl.cpp
@@ -0,0 +1,120 @@
+/*
+ File: prt_fs_of_rulestbl.cpp
+ Date and Time: Fri Jan 30 18:55:20 2015
+*/
+#include "prt_fs_of_rules.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_prt_fs_of_rules;// grammar's ns
+// first set terminals
+// LR1_eog
+// rule_def
+yacco2::UCHAR LA1_Cprt_fs_of_rules[] ={
+2
+,0,2
+,42,16
+};
+// LR1_eolr
+yacco2::UCHAR LA2_Cprt_fs_of_rules[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Cprt_fs_of_rules;
+extern yacco2::State S2_Cprt_fs_of_rules;
+extern yacco2::State S3_Cprt_fs_of_rules;
+extern yacco2::State S4_Cprt_fs_of_rules;
+extern yacco2::State S5_Cprt_fs_of_rules;
+extern yacco2::State S6_Cprt_fs_of_rules;
+struct S1std_Cprt_fs_of_rules{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S1std_Cprt_fs_of_rules S1st_Cprt_fs_of_rules = {
+ 4
+ ,
+ {// start of table
+ {340,(State*)&S2_Cprt_fs_of_rules} // shift sym: rule_def
+ ,{569,(State*)&S1_Cprt_fs_of_rules} // accept sym: Rprt_first_set_rules
+ ,{570,(State*)&S3_Cprt_fs_of_rules} // shift sym: Rrules
+ ,{571,(State*)&S6_Cprt_fs_of_rules} // shift sym: Rrule_def
+ }// end of shift table
+};
+yacco2::State S1_Cprt_fs_of_rules = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Cprt_fs_of_rules,0,0,0,0};
+struct S2rtd_Cprt_fs_of_rules{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Cprt_fs_of_rules S2rt_Cprt_fs_of_rules = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cprt_fs_of_rules,Cprt_fs_of_rules::rhs1_Rrule_def_}
+ }// end of reduce table
+};
+yacco2::State S2_Cprt_fs_of_rules = //State's vectored into symbol: "rule-def"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Cprt_fs_of_rules,0,0,0};
+struct S3std_Cprt_fs_of_rules{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S3std_Cprt_fs_of_rules S3st_Cprt_fs_of_rules = {
+ 3
+ ,
+ {// start of table
+ {1,(State*)&S4_Cprt_fs_of_rules} // shift sym: LR1_eog
+ ,{340,(State*)&S2_Cprt_fs_of_rules} // shift sym: rule_def
+ ,{571,(State*)&S5_Cprt_fs_of_rules} // shift sym: Rrule_def
+ }// end of shift table
+};
+yacco2::State S3_Cprt_fs_of_rules = //State's vectored into symbol: "Rrules"
+{3
+,0,0,0,0,(Shift_tbl*)&S3st_Cprt_fs_of_rules,0,0,0,0};
+struct S4rtd_Cprt_fs_of_rules{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Cprt_fs_of_rules S4rt_Cprt_fs_of_rules = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cprt_fs_of_rules,Cprt_fs_of_rules::rhs1_Rprt_first_set_rules_}
+ }// end of reduce table
+};
+yacco2::State S4_Cprt_fs_of_rules = //State's vectored into symbol: "eog"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Cprt_fs_of_rules,0,0,0};
+struct S5rtd_Cprt_fs_of_rules{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Cprt_fs_of_rules S5rt_Cprt_fs_of_rules = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cprt_fs_of_rules,Cprt_fs_of_rules::rhs2_Rrules_}
+ }// end of reduce table
+};
+yacco2::State S5_Cprt_fs_of_rules = //State's vectored into symbol: "Rrule_def"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Cprt_fs_of_rules,0,0,0};
+struct S6rtd_Cprt_fs_of_rules{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Cprt_fs_of_rules S6rt_Cprt_fs_of_rules = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cprt_fs_of_rules,Cprt_fs_of_rules::rhs1_Rrules_}
+ }// end of reduce table
+};
+yacco2::State S6_Cprt_fs_of_rules = //State's vectored into symbol: "Rrule_def"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Cprt_fs_of_rules,0,0,0};
diff --git a/web/yacco2/compiler/grammars/prt_sr_elements.cpp b/web/yacco2/compiler/grammars/prt_sr_elements.cpp
new file mode 100644
index 0000000000..a00d6489d4
--- /dev/null
+++ b/web/yacco2/compiler/grammars/prt_sr_elements.cpp
@@ -0,0 +1,251 @@
+/*
+ File: prt_sr_elements.cpp
+ Date and Time: Fri Jan 30 18:55:20 2015
+*/
+#include "prt_sr_elements.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_prt_sr_elements;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 5;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[4] = new Per_rule_s_reuse_table();
+}
+ Cprt_sr_elements::
+ Cprt_sr_elements()
+ :yacco2::CAbs_fsm
+ ("prt_sr_elements.lex"
+ ,"1.0"
+ ,"Sep. 2007"
+ ,false
+ ,"Print the subrule's symbol string."
+ ,"Fri Jan 30 18:55:20 2015 "
+ ,S1_Cprt_sr_elements){
+
+ }
+
+Cprt_sr_elements::~Cprt_sr_elements(){
+
+ for(int x = 0;x < 5;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cprt_sr_elements::failed(){
+ return false;
+ }
+ void Cprt_sr_elements::op(){
+elem_no_= 0;
+
+}
+int Cprt_sr_elements::rhs_to_rules_mapping_[12] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,2 // subrule 3 for rule 3
+ ,3 // subrule 4 for rule 4
+ ,3 // subrule 5 for rule 4
+ ,4 // subrule 6 for rule 5
+ ,4 // subrule 7 for rule 5
+ ,4 // subrule 8 for rule 5
+ ,4 // subrule 9 for rule 5
+ ,4 // subrule 10 for rule 5
+ ,4 // subrule 11 for rule 5
+};
+Rprt_sr_elements::Rprt_sr_elements(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rprt_sr_elements",0,Cprt_sr_elements::R_Rprt_sr_elements_,P,false,false){
+}
+
+Rsubrule::Rsubrule(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsubrule",0,Cprt_sr_elements::R_Rsubrule_,P,false,false){
+}
+
+Rsubrule_def::Rsubrule_def(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsubrule_def",0,Cprt_sr_elements::R_Rsubrule_def_,P,false,false){
+}
+
+void Rsubrule_def::sr1(){
+
+ Cprt_sr_elements* fsm = (Cprt_sr_elements*)rule_info__.parser__->fsm_tbl__;
+ fsm->elem_no_ = 0;
+
+}
+
+Relements::Relements(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Relements",0,Cprt_sr_elements::R_Relements_,P,false,false){
+}
+
+Relement::Relement(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Relement",0,Cprt_sr_elements::R_Relement_,P,false,false){
+}
+
+void Relement::sr1(){
+ struct SF{
+ refered_T* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cprt_sr_elements* fsm = (Cprt_sr_elements*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ char xlated_sym[Max_cweb_item_size];
+ XLATE_SYMBOLS_FOR_cweave(sf->p1__->its_t_def()->t_name()->c_str(),xlated_sym);
+ strcat(xlated_sym,"\\ \\ ");
+ *fsm->ow_index_file_ << xlated_sym << endl;
+
+}
+
+void Relement::sr2(){
+ struct SF{
+ refered_rule* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cprt_sr_elements* fsm = (Cprt_sr_elements*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ char xlated_sym[Max_cweb_item_size];
+ XLATE_SYMBOLS_FOR_cweave(sf->p1__->its_rule_def()->rule_name()->c_str(),xlated_sym);
+ strcat(xlated_sym,"\\ \\ ");
+ *fsm->ow_index_file_ << xlated_sym << endl;
+
+}
+
+void Relement::sr3(){
+
+ Cprt_sr_elements* fsm = (Cprt_sr_elements*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ if(fsm->elem_no_ == 1){// epsilon
+ KCHARP eps = "$\\epsilon$";
+ *fsm->ow_index_file_ << eps << endl;
+ }
+
+}
+
+void Relement::sr4(){
+ struct SF{
+ refered_T* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ refered_T* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ T_called_thread_eosubrule* p3__;
+ State* s3__;
+ bool abort3__;
+ Rule_s_reuse_entry* rule_s_reuse_entry3__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(3);
+
+ Cprt_sr_elements* fsm = (Cprt_sr_elements*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ char xlated_sym[Max_cweb_item_size];
+ XLATE_SYMBOLS_FOR_cweave(sf->p1__->its_t_def()->t_name()->c_str(),xlated_sym);
+ strcat(xlated_sym,"\\ \\ ");
+ *fsm->ow_index_file_ << xlated_sym << endl;
+ ++fsm->elem_no_;
+ char rtned_xlated_sym[Max_cweb_item_size];
+ XLATE_SYMBOLS_FOR_cweave(sf->p2__->its_t_def()->t_name()->c_str(),rtned_xlated_sym);
+ strcat(rtned_xlated_sym,"\\ \\ ");
+ *fsm->ow_index_file_ << rtned_xlated_sym << endl;
+
+ ++fsm->elem_no_;
+ char thd_xlated_sym[Max_cweb_item_size];
+ char full_thd_name[Max_cweb_item_size];
+ KCHARP full_thd_name_template = "%s::%s";
+ sprintf(full_thd_name,full_thd_name_template
+ ,sf->p3__->ns()->identifier()->c_str()
+ ,sf->p3__->called_thread_name()->identifier()->c_str()
+ );
+ XLATE_SYMBOLS_FOR_cweave((const char*)full_thd_name,thd_xlated_sym);
+ *fsm->ow_index_file_ << thd_xlated_sym << endl;
+
+}
+
+void Relement::sr5(){
+ struct SF{
+ refered_T* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ refered_T* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ T_null_call_thread_eosubrule* p3__;
+ State* s3__;
+ bool abort3__;
+ Rule_s_reuse_entry* rule_s_reuse_entry3__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(3);
+
+ Cprt_sr_elements* fsm = (Cprt_sr_elements*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ char xlated_sym[Max_cweb_item_size];
+ XLATE_SYMBOLS_FOR_cweave(sf->p1__->its_t_def()->t_name()->c_str(),xlated_sym);
+ strcat(xlated_sym,"\\ \\ ");
+ *fsm->ow_index_file_ << xlated_sym << endl;
+ ++fsm->elem_no_;
+ char rtned_xlated_sym[Max_cweb_item_size];
+ XLATE_SYMBOLS_FOR_cweave(sf->p2__->its_t_def()->t_name()->c_str(),rtned_xlated_sym);
+ strcat(rtned_xlated_sym,"\\ \\ ");
+ *fsm->ow_index_file_ << rtned_xlated_sym << endl;
+ ++fsm->elem_no_;
+ *fsm->ow_index_file_ << "NULL" << endl;
+
+}
+
+void Relement::sr6(){
+ struct SF{
+ refered_T* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ refered_T* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ CAbs_lr1_sym* p3__;
+ State* s3__;
+ bool abort3__;
+ Rule_s_reuse_entry* rule_s_reuse_entry3__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(3);
+
+ Cprt_sr_elements* fsm = (Cprt_sr_elements*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ char xlated_sym[Max_cweb_item_size];
+ XLATE_SYMBOLS_FOR_cweave(sf->p1__->its_t_def()->t_name()->c_str(),xlated_sym);
+ strcat(xlated_sym,"\\ \\ ");
+ *fsm->ow_index_file_ << xlated_sym << endl;
+ ++fsm->elem_no_;
+ char xlated_2_sym[Max_cweb_item_size];
+ XLATE_SYMBOLS_FOR_cweave(sf->p2__->its_t_def()->t_name()->c_str(),xlated_2_sym);
+ strcat(xlated_2_sym,"\\ \\ ");
+ *fsm->ow_index_file_ << xlated_2_sym << endl;
+
+}
+
diff --git a/web/yacco2/compiler/grammars/prt_sr_elements.fsc b/web/yacco2/compiler/grammars/prt_sr_elements.fsc
new file mode 100644
index 0000000000..fc6444b75a
--- /dev/null
+++ b/web/yacco2/compiler/grammars/prt_sr_elements.fsc
@@ -0,0 +1,20 @@
+/*
+ File: prt_sr_elements.fsc
+ Date and Time: Fri Jan 30 18:55:20 2015
+*/
+transitive n
+grammar-name "prt_sr_elements"
+name-space "NS_prt_sr_elements"
+thread-name "Cprt_sr_elements"
+monolithic y
+file-name "prt_sr_elements.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ T_subrule_def
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"Print the subrule's symbol string."
diff --git a/web/yacco2/compiler/grammars/prt_sr_elements.h b/web/yacco2/compiler/grammars/prt_sr_elements.h
new file mode 100644
index 0000000000..5b80a33065
--- /dev/null
+++ b/web/yacco2/compiler/grammars/prt_sr_elements.h
@@ -0,0 +1,104 @@
+/*
+ File: prt_sr_elements.h
+ Date and Time: Fri Jan 30 18:55:20 2015
+*/
+#ifndef __prt_sr_elements_h__
+#define __prt_sr_elements_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "o2_externs.h"
+extern void XLATE_SYMBOLS_FOR_cweave(const char* Sym_to_xlate,char* Xlated_sym);
+
+// monolithic grammar: no thread
+extern yacco2::State S1_Cprt_sr_elements;
+namespace NS_prt_sr_elements {
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[5];
+};
+class Cprt_sr_elements: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rprt_sr_elements_ = 569//start_of_rule_list + 0
+ ,rhs1_Rprt_sr_elements_ = 1
+ ,R_Rsubrule_ = 570//start_of_rule_list + 2
+ ,rhs1_Rsubrule_ = 2
+ ,R_Rsubrule_def_ = 571//start_of_rule_list + 4
+ ,rhs1_Rsubrule_def_ = 3
+ ,R_Relements_ = 572//start_of_rule_list + 6
+ ,rhs1_Relements_ = 4
+ ,rhs2_Relements_ = 5
+ ,R_Relement_ = 573//start_of_rule_list + 8
+ ,rhs1_Relement_ = 6
+ ,rhs2_Relement_ = 7
+ ,rhs3_Relement_ = 8
+ ,rhs4_Relement_ = 9
+ ,rhs5_Relement_ = 10
+ ,rhs6_Relement_ = 11
+ };
+ //no of la sets = 4
+ //no of states = 16
+ Cprt_sr_elements();
+ ~Cprt_sr_elements();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[12];
+
+ public:
+ char big_buf_[BIG_BUFFER_32K];
+ std::ofstream* ow_index_file_;
+ int elem_no_;
+
+ };
+struct Rprt_sr_elements;
+struct Rsubrule;
+struct Rsubrule_def;
+struct Relements;
+struct Relement;
+struct Rprt_sr_elements:public yacco2::CAbs_lr1_sym {
+ Rprt_sr_elements(yacco2::Parser* P);
+ public:
+};
+
+struct Rsubrule:public yacco2::CAbs_lr1_sym {
+ Rsubrule(yacco2::Parser* P);
+ public:
+};
+
+struct Rsubrule_def:public yacco2::CAbs_lr1_sym {
+ Rsubrule_def(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Relements:public yacco2::CAbs_lr1_sym {
+ Relements(yacco2::Parser* P);
+ public:
+};
+
+struct Relement:public yacco2::CAbs_lr1_sym {
+ Relement(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+ void sr5();
+ void sr6();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/prt_sr_elements.lex b/web/yacco2/compiler/grammars/prt_sr_elements.lex
new file mode 100644
index 0000000000..6a260b9fd7
--- /dev/null
+++ b/web/yacco2/compiler/grammars/prt_sr_elements.lex
@@ -0,0 +1,157 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: prt_sr_elements.lex
+Dates: 3 Sept. 2007
+Purpose: print the subrule's symbols.
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |prt_sr_elements.lex| Grammar.\fbreak
+Layout those elements on the subrule's rhs.
+Its output is directed to the grammar's index document being
+generated from the |prt_xrefs_docs.lex| grammar.
+@/
+fsm
+(fsm-id "prt_sr_elements.lex",fsm-filename prt_sr_elements,fsm-namespace NS_prt_sr_elements
+,fsm-class Cprt_sr_elements{
+ user-prefix-declaration
+#include "o2_externs.h"
+extern void XLATE_SYMBOLS_FOR_cweave(const char* Sym_to_xlate,char* Xlated_sym);
+ ***
+ user-declaration
+ public:
+ char big_buf_[BIG_BUFFER_32K];
+ std::ofstream* ow_index_file_;
+ int elem_no_;
+ ***
+ op
+elem_no_= 0;
+ ***
+}
+,fsm-version "1.0",fsm-date "Sep. 2007",fsm-debug "false"
+,fsm-comments "Print the subrule's symbol string.")
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rprt_sr_elements (){
+ -> Rsubrule eog
+}
+
+Rsubrule (){
+ -> Rsubrule_def Relements
+}
+
+Rsubrule_def (){
+ -> "subrule-def" {
+ op
+ Cprt_sr_elements* fsm = (Cprt_sr_elements*)rule_info__.parser__->fsm_tbl__;
+ fsm->elem_no_ = 0;
+ ***
+ }
+}
+
+Relements (){
+ -> Relement
+ -> Relements Relement
+}
+
+Relement
+/@
+Use of \invisibleshift to make grammar lr(1).
+@/
+
+(){
+ -> "refered-T" |.| {
+ op
+ Cprt_sr_elements* fsm = (Cprt_sr_elements*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ char xlated_sym[Max_cweb_item_size];
+ XLATE_SYMBOLS_FOR_cweave(sf->p1__->its_t_def()->t_name()->c_str(),xlated_sym);
+ strcat(xlated_sym,"\\ \\ ");
+ *fsm->ow_index_file_ << xlated_sym << endl;
+ ***
+ }
+ -> "refered-rule" {
+ op
+ Cprt_sr_elements* fsm = (Cprt_sr_elements*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ char xlated_sym[Max_cweb_item_size];
+ XLATE_SYMBOLS_FOR_cweave(sf->p1__->its_rule_def()->rule_name()->c_str(),xlated_sym);
+ strcat(xlated_sym,"\\ \\ ");
+ *fsm->ow_index_file_ << xlated_sym << endl;
+ ***
+ }
+ -> "eosubrule" {
+ op
+ Cprt_sr_elements* fsm = (Cprt_sr_elements*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ if(fsm->elem_no_ == 1){// epsilon
+ KCHARP eps = "$\\epsilon$";
+ *fsm->ow_index_file_ << eps << endl;
+ }
+ ***
+ }
+ -> "refered-T" "refered-T" "called thread eosubrule" {
+ op
+ Cprt_sr_elements* fsm = (Cprt_sr_elements*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ char xlated_sym[Max_cweb_item_size];
+ XLATE_SYMBOLS_FOR_cweave(sf->p1__->its_t_def()->t_name()->c_str(),xlated_sym);
+ strcat(xlated_sym,"\\ \\ ");
+ *fsm->ow_index_file_ << xlated_sym << endl;
+ ++fsm->elem_no_;
+ char rtned_xlated_sym[Max_cweb_item_size];
+ XLATE_SYMBOLS_FOR_cweave(sf->p2__->its_t_def()->t_name()->c_str(),rtned_xlated_sym);
+ strcat(rtned_xlated_sym,"\\ \\ ");
+ *fsm->ow_index_file_ << rtned_xlated_sym << endl;
+
+ ++fsm->elem_no_;
+ char thd_xlated_sym[Max_cweb_item_size];
+ char full_thd_name[Max_cweb_item_size];
+ KCHARP full_thd_name_template = "%s::%s";
+ sprintf(full_thd_name,full_thd_name_template
+ ,sf->p3__->ns()->identifier()->c_str()
+ ,sf->p3__->called_thread_name()->identifier()->c_str()
+ );
+ XLATE_SYMBOLS_FOR_cweave((const char*)full_thd_name,thd_xlated_sym);
+ *fsm->ow_index_file_ << thd_xlated_sym << endl;
+ ***
+ }
+ -> "refered-T" "refered-T" "null call thread eosubrule" {
+ op
+ Cprt_sr_elements* fsm = (Cprt_sr_elements*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ char xlated_sym[Max_cweb_item_size];
+ XLATE_SYMBOLS_FOR_cweave(sf->p1__->its_t_def()->t_name()->c_str(),xlated_sym);
+ strcat(xlated_sym,"\\ \\ ");
+ *fsm->ow_index_file_ << xlated_sym << endl;
+ ++fsm->elem_no_;
+ char rtned_xlated_sym[Max_cweb_item_size];
+ XLATE_SYMBOLS_FOR_cweave(sf->p2__->its_t_def()->t_name()->c_str(),rtned_xlated_sym);
+ strcat(rtned_xlated_sym,"\\ \\ ");
+ *fsm->ow_index_file_ << rtned_xlated_sym << endl;
+ ++fsm->elem_no_;
+ *fsm->ow_index_file_ << "NULL" << endl;
+ ***
+ }
+ -> "refered-T" "refered-T" |.|{
+ op
+ Cprt_sr_elements* fsm = (Cprt_sr_elements*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ char xlated_sym[Max_cweb_item_size];
+ XLATE_SYMBOLS_FOR_cweave(sf->p1__->its_t_def()->t_name()->c_str(),xlated_sym);
+ strcat(xlated_sym,"\\ \\ ");
+ *fsm->ow_index_file_ << xlated_sym << endl;
+ ++fsm->elem_no_;
+ char xlated_2_sym[Max_cweb_item_size];
+ XLATE_SYMBOLS_FOR_cweave(sf->p2__->its_t_def()->t_name()->c_str(),xlated_2_sym);
+ strcat(xlated_2_sym,"\\ \\ ");
+ *fsm->ow_index_file_ << xlated_2_sym << endl;
+ ***
+ }
+}
+
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/prt_sr_elementssym.cpp b/web/yacco2/compiler/grammars/prt_sr_elementssym.cpp
new file mode 100644
index 0000000000..c862aed19c
--- /dev/null
+++ b/web/yacco2/compiler/grammars/prt_sr_elementssym.cpp
@@ -0,0 +1,188 @@
+/*
+ File: prt_sr_elementssym.cpp
+ Date and Time: Fri Jan 30 18:55:20 2015
+*/
+#include "prt_sr_elements.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_prt_sr_elements;// grammar's ns
+// first set terminals
+// monolithic grammar --- no thread
+void
+Cprt_sr_elements::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rprt_sr_elements_:{
+ Rprt_sr_elements* sym;
+ if(re->rule_ == 0){
+ sym = new Rprt_sr_elements(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rprt_sr_elements*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rsubrule_:{
+ Rsubrule* sym;
+ if(re->rule_ == 0){
+ sym = new Rsubrule(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsubrule*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rsubrule_def_:{
+ Rsubrule_def* sym;
+ if(re->rule_ == 0){
+ sym = new Rsubrule_def(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsubrule_def*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Relements_:{
+ Relements* sym;
+ if(re->rule_ == 0){
+ sym = new Relements(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Relements*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Relements_:{
+ Relements* sym;
+ if(re->rule_ == 0){
+ sym = new Relements(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Relements*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Relement_:{
+ Relement* sym;
+ if(re->rule_ == 0){
+ sym = new Relement(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Relement*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Relement_:{
+ Relement* sym;
+ if(re->rule_ == 0){
+ sym = new Relement(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Relement*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Relement_:{
+ Relement* sym;
+ if(re->rule_ == 0){
+ sym = new Relement(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Relement*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Relement_:{
+ Relement* sym;
+ if(re->rule_ == 0){
+ sym = new Relement(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Relement*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ sym->sr4();
+ return;}
+ case rhs5_Relement_:{
+ Relement* sym;
+ if(re->rule_ == 0){
+ sym = new Relement(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Relement*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ sym->sr5();
+ return;}
+ case rhs6_Relement_:{
+ Relement* sym;
+ if(re->rule_ == 0){
+ sym = new Relement(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Relement*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ sym->sr6();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/prt_sr_elementstbl.cpp b/web/yacco2/compiler/grammars/prt_sr_elementstbl.cpp
new file mode 100644
index 0000000000..4c273e52f1
--- /dev/null
+++ b/web/yacco2/compiler/grammars/prt_sr_elementstbl.cpp
@@ -0,0 +1,309 @@
+/*
+ File: prt_sr_elementstbl.cpp
+ Date and Time: Fri Jan 30 18:55:20 2015
+*/
+#include "prt_sr_elements.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_prt_sr_elements;// grammar's ns
+// first set terminals
+// refered_T
+// refered_rule
+// T_eosubrule
+yacco2::UCHAR LA1_Cprt_sr_elements[] ={
+2
+,43,10
+,46,2
+};
+// LR1_eolr
+yacco2::UCHAR LA2_Cprt_sr_elements[] ={
+1
+,0,4
+};
+// refered_T
+// refered_rule
+// T_eosubrule
+// LR1_eog
+yacco2::UCHAR LA3_Cprt_sr_elements[] ={
+3
+,0,2
+,43,10
+,46,2
+};
+// LR1_eog
+yacco2::UCHAR LA4_Cprt_sr_elements[] ={
+1
+,0,2
+};
+extern yacco2::State S1_Cprt_sr_elements;
+extern yacco2::State S2_Cprt_sr_elements;
+extern yacco2::State S3_Cprt_sr_elements;
+extern yacco2::State S4_Cprt_sr_elements;
+extern yacco2::State S5_Cprt_sr_elements;
+extern yacco2::State S6_Cprt_sr_elements;
+extern yacco2::State S7_Cprt_sr_elements;
+extern yacco2::State S8_Cprt_sr_elements;
+extern yacco2::State S9_Cprt_sr_elements;
+extern yacco2::State S10_Cprt_sr_elements;
+extern yacco2::State S11_Cprt_sr_elements;
+extern yacco2::State S12_Cprt_sr_elements;
+extern yacco2::State S13_Cprt_sr_elements;
+extern yacco2::State S14_Cprt_sr_elements;
+extern yacco2::State S15_Cprt_sr_elements;
+extern yacco2::State S16_Cprt_sr_elements;
+struct S1std_Cprt_sr_elements{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S1std_Cprt_sr_elements S1st_Cprt_sr_elements = {
+ 4
+ ,
+ {// start of table
+ {342,(State*)&S2_Cprt_sr_elements} // shift sym: T_subrule_def
+ ,{569,(State*)&S1_Cprt_sr_elements} // accept sym: Rprt_sr_elements
+ ,{570,(State*)&S3_Cprt_sr_elements} // shift sym: Rsubrule
+ ,{571,(State*)&S5_Cprt_sr_elements} // shift sym: Rsubrule_def
+ }// end of shift table
+};
+yacco2::State S1_Cprt_sr_elements = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Cprt_sr_elements,0,0,0,0};
+struct S2rtd_Cprt_sr_elements{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Cprt_sr_elements S2rt_Cprt_sr_elements = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cprt_sr_elements,Cprt_sr_elements::rhs1_Rsubrule_def_}
+ }// end of reduce table
+};
+yacco2::State S2_Cprt_sr_elements = //State's vectored into symbol: "subrule-def"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Cprt_sr_elements,0,0,0};
+struct S3std_Cprt_sr_elements{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S3std_Cprt_sr_elements S3st_Cprt_sr_elements = {
+ 1
+ ,
+ {// start of table
+ {1,(State*)&S4_Cprt_sr_elements} // shift sym: LR1_eog
+ }// end of shift table
+};
+yacco2::State S3_Cprt_sr_elements = //State's vectored into symbol: "Rsubrule"
+{3
+,0,0,0,0,(Shift_tbl*)&S3st_Cprt_sr_elements,0,0,0,0};
+struct S4rtd_Cprt_sr_elements{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Cprt_sr_elements S4rt_Cprt_sr_elements = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cprt_sr_elements,Cprt_sr_elements::rhs1_Rprt_sr_elements_}
+ }// end of reduce table
+};
+yacco2::State S4_Cprt_sr_elements = //State's vectored into symbol: "eog"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Cprt_sr_elements,0,0,0};
+struct S5std_Cprt_sr_elements{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S5std_Cprt_sr_elements S5st_Cprt_sr_elements = {
+ 5
+ ,
+ {// start of table
+ {345,(State*)&S6_Cprt_sr_elements} // shift sym: refered_T
+ ,{347,(State*)&S12_Cprt_sr_elements} // shift sym: refered_rule
+ ,{369,(State*)&S13_Cprt_sr_elements} // shift sym: T_eosubrule
+ ,{572,(State*)&S14_Cprt_sr_elements} // shift sym: Relements
+ ,{573,(State*)&S16_Cprt_sr_elements} // shift sym: Relement
+ }// end of shift table
+};
+yacco2::State S5_Cprt_sr_elements = //State's vectored into symbol: "Rsubrule_def"
+{5
+,0,0,0,0,(Shift_tbl*)&S5st_Cprt_sr_elements,0,0,0,0};
+struct S6std_Cprt_sr_elements{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S6std_Cprt_sr_elements S6st_Cprt_sr_elements = {
+ 2
+ ,
+ {// start of table
+ {5,(State*)&S7_Cprt_sr_elements} // shift sym: LR1_invisible_shift_operator
+ ,{345,(State*)&S8_Cprt_sr_elements} // shift sym: refered_T
+ }// end of shift table
+};
+yacco2::Shift_entry S6ise_Cprt_sr_elements = {5,(State*)&S7_Cprt_sr_elements};
+yacco2::State S6_Cprt_sr_elements = //State's vectored into symbol: "refered-T"
+{6
+,0,0,(Shift_entry*)&S6ise_Cprt_sr_elements
+,0,(Shift_tbl*)&S6st_Cprt_sr_elements,0,0,0,0};
+struct S7rtd_Cprt_sr_elements{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Cprt_sr_elements S7rt_Cprt_sr_elements = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cprt_sr_elements,Cprt_sr_elements::rhs1_Relement_}
+ }// end of reduce table
+};
+yacco2::State S7_Cprt_sr_elements = //State's vectored into symbol: "|.|"
+{7
+,0,0,0,0,0,(Reduce_tbl*)&S7rt_Cprt_sr_elements,0,0,0};
+struct S8std_Cprt_sr_elements{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S8std_Cprt_sr_elements S8st_Cprt_sr_elements = {
+ 3
+ ,
+ {// start of table
+ {5,(State*)&S9_Cprt_sr_elements} // shift sym: LR1_invisible_shift_operator
+ ,{370,(State*)&S10_Cprt_sr_elements} // shift sym: T_called_thread_eosubrule
+ ,{371,(State*)&S11_Cprt_sr_elements} // shift sym: T_null_call_thread_eosubrule
+ }// end of shift table
+};
+yacco2::Shift_entry S8ise_Cprt_sr_elements = {5,(State*)&S9_Cprt_sr_elements};
+yacco2::State S8_Cprt_sr_elements = //State's vectored into symbol: "refered-T"
+{8
+,0,0,(Shift_entry*)&S8ise_Cprt_sr_elements
+,0,(Shift_tbl*)&S8st_Cprt_sr_elements,0,0,0,0};
+struct S9rtd_Cprt_sr_elements{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Cprt_sr_elements S9rt_Cprt_sr_elements = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cprt_sr_elements,Cprt_sr_elements::rhs6_Relement_}
+ }// end of reduce table
+};
+yacco2::State S9_Cprt_sr_elements = //State's vectored into symbol: "|.|"
+{9
+,0,0,0,0,0,(Reduce_tbl*)&S9rt_Cprt_sr_elements,0,0,0};
+struct S10rtd_Cprt_sr_elements{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S10rtd_Cprt_sr_elements S10rt_Cprt_sr_elements = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cprt_sr_elements,Cprt_sr_elements::rhs4_Relement_}
+ }// end of reduce table
+};
+yacco2::State S10_Cprt_sr_elements = //State's vectored into symbol: "called thread eosubrule"
+{10
+,0,0,0,0,0,(Reduce_tbl*)&S10rt_Cprt_sr_elements,0,0,0};
+struct S11rtd_Cprt_sr_elements{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Cprt_sr_elements S11rt_Cprt_sr_elements = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cprt_sr_elements,Cprt_sr_elements::rhs5_Relement_}
+ }// end of reduce table
+};
+yacco2::State S11_Cprt_sr_elements = //State's vectored into symbol: "null call thread eosubrule"
+{11
+,0,0,0,0,0,(Reduce_tbl*)&S11rt_Cprt_sr_elements,0,0,0};
+struct S12rtd_Cprt_sr_elements{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S12rtd_Cprt_sr_elements S12rt_Cprt_sr_elements = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cprt_sr_elements,Cprt_sr_elements::rhs2_Relement_}
+ }// end of reduce table
+};
+yacco2::State S12_Cprt_sr_elements = //State's vectored into symbol: "refered-rule"
+{12
+,0,0,0,0,0,(Reduce_tbl*)&S12rt_Cprt_sr_elements,0,0,0};
+struct S13rtd_Cprt_sr_elements{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S13rtd_Cprt_sr_elements S13rt_Cprt_sr_elements = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cprt_sr_elements,Cprt_sr_elements::rhs3_Relement_}
+ }// end of reduce table
+};
+yacco2::State S13_Cprt_sr_elements = //State's vectored into symbol: "eosubrule"
+{13
+,0,0,0,0,0,(Reduce_tbl*)&S13rt_Cprt_sr_elements,0,0,0};
+struct S14std_Cprt_sr_elements{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S14std_Cprt_sr_elements S14st_Cprt_sr_elements = {
+ 4
+ ,
+ {// start of table
+ {345,(State*)&S6_Cprt_sr_elements} // shift sym: refered_T
+ ,{347,(State*)&S12_Cprt_sr_elements} // shift sym: refered_rule
+ ,{369,(State*)&S13_Cprt_sr_elements} // shift sym: T_eosubrule
+ ,{573,(State*)&S15_Cprt_sr_elements} // shift sym: Relement
+ }// end of shift table
+};
+struct S14rtd_Cprt_sr_elements{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S14rtd_Cprt_sr_elements S14rt_Cprt_sr_elements = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cprt_sr_elements,Cprt_sr_elements::rhs1_Rsubrule_}
+ }// end of reduce table
+};
+yacco2::State S14_Cprt_sr_elements = //State's vectored into symbol: "Relements"
+{14
+,0,0,0,0,(Shift_tbl*)&S14st_Cprt_sr_elements,(Reduce_tbl*)&S14rt_Cprt_sr_elements,0,0,0};
+struct S15rtd_Cprt_sr_elements{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S15rtd_Cprt_sr_elements S15rt_Cprt_sr_elements = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cprt_sr_elements,Cprt_sr_elements::rhs2_Relements_}
+ }// end of reduce table
+};
+yacco2::State S15_Cprt_sr_elements = //State's vectored into symbol: "Relement"
+{15
+,0,0,0,0,0,(Reduce_tbl*)&S15rt_Cprt_sr_elements,0,0,0};
+struct S16rtd_Cprt_sr_elements{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S16rtd_Cprt_sr_elements S16rt_Cprt_sr_elements = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cprt_sr_elements,Cprt_sr_elements::rhs1_Relements_}
+ }// end of reduce table
+};
+yacco2::State S16_Cprt_sr_elements = //State's vectored into symbol: "Relement"
+{16
+,0,0,0,0,0,(Reduce_tbl*)&S16rt_Cprt_sr_elements,0,0,0};
diff --git a/web/yacco2/compiler/grammars/prt_xrefs_docs.cpp b/web/yacco2/compiler/grammars/prt_xrefs_docs.cpp
new file mode 100644
index 0000000000..47f2079f32
--- /dev/null
+++ b/web/yacco2/compiler/grammars/prt_xrefs_docs.cpp
@@ -0,0 +1,812 @@
+/*
+ File: prt_xrefs_docs.cpp
+ Date and Time: Fri Jan 30 18:55:21 2015
+*/
+#include "prt_xrefs_docs.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_prt_xrefs_docs;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 9;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[4] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[5] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[6] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[7] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[8] = new Per_rule_s_reuse_table();
+}
+ Cprt_xrefs_docs::
+ Cprt_xrefs_docs()
+ :yacco2::CAbs_fsm
+ ("prt_xrefs_docs.lex"
+ ,"1.0"
+ ,"29 Nov. 2005"
+ ,false
+ ,"Output xref doc --- \n``first set'' per rule, and referenced symbols."
+ ,"Fri Jan 30 18:55:21 2015 "
+ ,S1_Cprt_xrefs_docs){
+
+ }
+
+Cprt_xrefs_docs::~Cprt_xrefs_docs(){
+
+ for(int x = 0;x < 9;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cprt_xrefs_docs::failed(){
+ return false;
+ }
+ void Cprt_xrefs_docs::op(){
+ prt_sr_elems_filter_.insert(T_Enum::T_T_subrule_def_);
+ prt_sr_elems_filter_.insert(T_Enum::T_refered_T_);
+ prt_sr_elems_filter_.insert(T_Enum::T_T_eosubrule_);
+ prt_sr_elems_filter_.insert(T_Enum::T_refered_rule_);
+ prt_sr_elems_filter_.insert(T_Enum::T_T_called_thread_eosubrule_);
+ prt_sr_elems_filter_.insert(T_Enum::T_T_null_call_thread_eosubrule_);
+
+no_subrules_per_rule_.push_back(0);
+time_t theTime= time(0);
+char*cTime= ctime(&theTime);
+gened_date_time_+= string(cTime);
+int n= gened_date_time_.find('\n');
+gened_date_time_[n]= ' ';
+
+rule_def_= 0;
+subrule_def_= 0;
+rule_no_= 0;
+subrule_no_= 0;
+elem_no_= 0;
+no_of_rules_= 0;
+no_of_subrules_= 0;
+w_index_filename_+= grammar_filename_prefix_.c_str();
+w_index_filename_+= "_idx.w";
+ow_index_file_.open(w_index_filename_.c_str(),ios_base::out|ios::trunc);
+if(!ow_index_file_){
+CAbs_lr1_sym*sym= new Err_bad_filename(w_index_filename_.c_str());
+ sym->set_who_created(__FILE__,__LINE__);
+parser__->add_token_to_error_queue(*sym);
+parser__->set_stop_parse(true);
+return;
+}
+
+}
+int Cprt_xrefs_docs::rhs_to_rules_mapping_[18] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,2 // subrule 4 for rule 3
+ ,3 // subrule 5 for rule 4
+ ,4 // subrule 6 for rule 5
+ ,4 // subrule 7 for rule 5
+ ,5 // subrule 8 for rule 6
+ ,6 // subrule 9 for rule 7
+ ,7 // subrule 10 for rule 8
+ ,7 // subrule 11 for rule 8
+ ,8 // subrule 12 for rule 9
+ ,8 // subrule 13 for rule 9
+ ,8 // subrule 14 for rule 9
+ ,8 // subrule 15 for rule 9
+ ,8 // subrule 16 for rule 9
+ ,8 // subrule 17 for rule 9
+};
+
+void Cprt_xrefs_docs::determine_closure_derived_states(){
+ std::map <int , std::list<state_element*> >::iterator xi;
+ std::map <int , std::list<state_element*> >::iterator xie;
+ STATES_ITER_type si= LR1_STATES.begin();
+ STATES_ITER_type sie= LR1_STATES.end();
+ int integerize_the_subrule(0);
+ for(;si!=sie;++si){// read states
+ state*cur_state= *si;
+ using namespace NS_yacco2_T_enum;
+ S_VECTORS_ITER_type svi = cur_state->state_s_vector_.begin();
+ S_VECTORS_ITER_type svie = cur_state->state_s_vector_.end();
+ S_VECTORS_ITER_type tvi = cur_state->state_s_vector_.find(-T_Enum::T_T_eosubrule_);
+ if(tvi != svie){
+ reducing_states_list_.push_back(cur_state);
+ goto rd_vector_s_elems;
+ }
+ tvi = cur_state->state_s_vector_.find(-T_Enum::T_T_called_thread_eosubrule_);
+ if(tvi != svie){
+ reducing_states_list_.push_back(cur_state);
+ goto rd_vector_s_elems;
+ }
+ tvi = cur_state->state_s_vector_.find(-T_Enum::T_T_null_call_thread_eosubrule_);
+ if(tvi != svie){
+ reducing_states_list_.push_back(cur_state);
+ goto rd_vector_s_elems;
+ }
+rd_vector_s_elems:;
+ for(;svi!=svie;++svi){// rd the same vector's elements
+ S_VECTOR_ELEMS_ITER_type seli = svi->second.begin();
+ S_VECTOR_ELEMS_ITER_type selie = svi->second.end();
+ for(;seli!=selie;++seli){
+ state_element* se = *seli;
+ if(se->previous_state_ != 0) continue;
+ integerize_the_subrule = se->subrule_def_->its_grammar_s_pos();
+ xi = productions_derived_states_list_.find(integerize_the_subrule);
+ if(xi == productions_derived_states_list_.end()){
+ productions_derived_states_list_[integerize_the_subrule] = std::list<state_element*>();
+ }
+ xi = productions_derived_states_list_.find(integerize_the_subrule);
+ xi->second.push_back(se);
+ }
+ }
+ }
+}
+
+ void Cprt_xrefs_docs::add_symbol_to_xref_map(std::string& Key,std::string& Ref){
+ std::map<std::string, std::list<std::string> >::iterator i;
+ i = xref_of_used_symbols_.find(Key.c_str());
+ if(i ==xref_of_used_symbols_.end()){
+ xref_of_used_symbols_[Key.c_str()] = std::list<std::string>();
+ i = xref_of_used_symbols_.find(Key);
+ std::list<std::string>& xxx = i->second;
+ xxx.push_back(string(Ref.c_str()));
+ return;
+ }else{
+ std::list<std::string>& xxx = i->second;
+ xxx.push_back(string(Ref.c_str()));
+ }
+ }
+
+ void Cprt_xrefs_docs::prt_follow_set_local_yield(follow_element* Fe){
+ KCHARP w_follset_local_yield =
+ "\\FollSetreducinglocalyield %s";
+ sprintf(big_buf_,w_follset_local_yield," ");
+ ow_index_file_ << big_buf_ << endl;
+ KCHARP w_follset_t =
+ "%s";
+ char t_name[Max_cweb_item_size];
+ FOLLOW_SETS_ITER_type fsi = Fe->follow_set_.begin();
+ FOLLOW_SETS_ITER_type fsie = Fe->follow_set_.end();
+ for(;fsi != fsie;){// those Tes
+ T_in_stbl* t = *fsi;
+ t_name[0] = (char)0;
+ XLATE_SYMBOLS_FOR_cweave(t->t_def()->t_name()->c_str(),t_name);
+ sprintf(big_buf_,w_follset_t,t_name);
+ ow_index_file_ << big_buf_;
+ ++fsi;
+ if(fsi != fsie){
+ ow_index_file_ <<"," << endl;
+ }else{
+ ow_index_file_ <<"." << endl;
+ }
+ }
+ ow_index_file_ << endl;// end it with blank line
+ }
+
+
+ void Cprt_xrefs_docs::prt_follow_set_creators(follow_element* Fe){
+ char rule_name[Max_cweb_item_size];
+ KCHARP w_follset_start_str =
+ "\\halign{\n"
+ "\\span\\FollSettemplate\n"
+ "\\FollSettitle";
+ KCHARP w_follset_stateno_rule =
+ "{%s\\rulenameno{%i}}&\n" // rule+rule no
+ "{"; // start of the contributors
+
+ KCHARP w_follset_creators =
+ "\\FollSetcreators{%i}{%i}{%i}";
+
+ sprintf(big_buf_,w_follset_start_str,"");
+ ow_index_file_ << big_buf_ << endl;
+ rule_def* rd = (rule_def*)AST::content(*Fe->rule_def_t_);
+ rule_name[0] = (char)0;
+ XLATE_SYMBOLS_FOR_cweave(rd->rule_name()->c_str(),rule_name);
+ sprintf(big_buf_,w_follset_stateno_rule,rule_name,rd->rule_no());
+ ow_index_file_ << big_buf_ << endl;
+ SR_ELEMENTS_type::iterator sri = Fe->sr_elements_.begin();
+ SR_ELEMENTS_type::iterator srie = Fe->sr_elements_.end();
+ for(;sri != srie;++sri){// follow set contributors
+ AST* et = *sri;// eos
+ AST* pvrt = et->pr_;
+ refered_rule* rr = (refered_rule*)AST::content(*pvrt);
+ T_subrule_def* srd = rr->its_subrule_def();
+ rule_def* sr_d = srd->its_rule_def();
+ sprintf(big_buf_
+ ,w_follset_creators
+ ,sr_d->rule_no()
+ ,srd->subrule_no_of_rule()
+ ,rr->element_pos());
+
+ ow_index_file_ << big_buf_ << endl;
+ }
+ }
+
+ void Cprt_xrefs_docs::prt_follow_set_merges(follow_element* Fe){
+ KCHARP w_overflow_close_and_new_blank_rule =
+ "}\\cr\n"
+ "{}&\n" // blank sule name
+ "{%s"; // start of new meging list
+ KCHARP w_follset_merges =
+ "\\FollSetmerges{%i}"; // state where other follow set rule lies
+ MERGES_ITER_type mi = Fe->merges_.begin();
+ MERGES_ITER_type mie = Fe->merges_.end();
+ int overflow_limit(10);
+ int merge_cnt(0);
+ for(;mi != mie;++mi){// transitions
+ state* s = *mi;
+ ++merge_cnt;
+ if(merge_cnt > overflow_limit){
+ sprintf(big_buf_,w_overflow_close_and_new_blank_rule," ");
+ ow_index_file_ << big_buf_ << endl;
+ merge_cnt = 1;
+ }
+ sprintf(big_buf_,w_follset_merges,s->state_no_);
+ ow_index_file_ << big_buf_ << endl;
+ }
+ }
+
+ void Cprt_xrefs_docs::prt_follow_set_transitions(follow_element* Fe){
+ KCHARP w_follset_transitions =
+ "\\FollSettransition{%i}{%i}"; // rt bnded
+ TRANSITIONS_ITER_type ti = Fe->transitions_.begin();
+ TRANSITIONS_ITER_type tie = Fe->transitions_.end();
+ for(;ti != tie;++ti){// transitions
+ follow_element* tfe = *ti;
+ rule_def* rd = (rule_def*)AST::content(*tfe->rule_def_t_);
+ sprintf(big_buf_
+ ,w_follset_transitions
+ ,tfe->its_state_->state_no_
+ ,rd->rule_no());
+ ow_index_file_ << big_buf_ << endl;
+ }
+ KCHARP w_follset_end_str = "}%s\\cr";
+ sprintf(big_buf_,w_follset_end_str," ");
+ ow_index_file_ << big_buf_ << endl;
+ KCHARP w_follset_end_rule = "}%s";
+ sprintf(big_buf_,w_follset_end_rule," ");
+ ow_index_file_ << big_buf_ << endl;
+ }
+
+ void Cprt_xrefs_docs::prt_state_s_follow_set_rules(state* Cur_state){
+ KCHARP w_follset_stateno = // stateno
+ "\\FollSetstateno{%i}";
+ S_FOLLOW_SETS_ITER_type fsi = Cur_state->state_s_follow_set_map_.begin();
+ S_FOLLOW_SETS_ITER_type fsie = Cur_state->state_s_follow_set_map_.end();
+ if(fsi == fsie) return;// nada follow set info in this state
+ sprintf(big_buf_,w_follset_stateno,Cur_state->state_no_);
+ ow_index_file_ << big_buf_ << endl;
+ for(;fsi != fsie;++fsi){// state's follow set info
+ follow_element* fe = (*fsi).second;
+ prt_follow_set_creators(fe);
+ prt_follow_set_merges(fe);
+ prt_follow_set_transitions(fe);
+ prt_follow_set_local_yield(fe);
+ }
+ }
+
+
+ void Cprt_xrefs_docs::prt_states_follow_set(){
+ KCHARP w_states_follow_sets =
+ "@** Lr1 State's Follow sets and reducing lookahead sets.\\fbreak\n"
+ "\\FollSetnotesintro\n"
+ "\\fbreak";
+ ow_index_file_ << w_states_follow_sets << std::endl;
+ STATES_ITER_type si = LR1_STATES.begin();
+ STATES_ITER_type sie = LR1_STATES.end();
+ for(;si!=sie;++si){// walk the states
+ state* cur_state = *si;
+ prt_state_s_follow_set_rules(cur_state);
+ }
+ }
+
+ void Cprt_xrefs_docs::prt_common_follow_set_la(){
+ KCHARP w_common_follow_sets =
+ "@*1 Common Follow sets.\\fbreak\n";
+ ow_index_file_ << w_common_follow_sets << std::endl;
+ KCHARP w_common_follow_set =
+ "@*2 LA set: %i.\\fbreak\n"
+ "\\item{}\n"
+ "\\raggedright";
+ KCHARP la_set_entry_literal = "%s";
+ char t_name[Max_cweb_item_size];
+
+ COMMON_LA_SETS_ITER_type i = COMMON_LA_SETS.begin();
+ COMMON_LA_SETS_ITER_type ie = COMMON_LA_SETS.end();
+ for(int idx=0;i!=ie;++i,++idx){
+ LA_SET_type* la_set = *i;
+ sprintf(big_buf_,w_common_follow_set,idx+1);
+ ow_index_file_ << big_buf_ << endl;
+ LA_SET_ITER_type j = la_set->begin();// list out the T literals
+ LA_SET_ITER_type je = la_set->end();
+ for(;j!=je;){
+ T_in_stbl* tsym = *j;
+ t_name[0] = (char)0;
+ XLATE_SYMBOLS_FOR_cweave(tsym->t_def()->t_name()->c_str(),t_name);
+ sprintf(big_buf_,la_set_entry_literal,t_name);
+ ow_index_file_ << big_buf_;
+ ++j;
+ if(j!=je){
+ ow_index_file_ << "," << endl;
+ }else{
+ ow_index_file_ << "." << endl;
+ }
+ }
+ ow_index_file_ << endl; // close off the items
+ }
+ }
+
+Rprt_xrefs_docs::Rprt_xrefs_docs(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rprt_xrefs_docs",0,Cprt_xrefs_docs::R_Rprt_xrefs_docs_,P,false,false){
+}
+
+void Rprt_xrefs_docs::sr1(){
+
+ Cprt_xrefs_docs* fsm = (Cprt_xrefs_docs*)rule_info__.parser__->fsm_tbl__;
+
+ int rule_no = 1;
+
+ KCHARP w_doc_index =
+ "\\input \"supp-pdf\"\n"
+ "\\input \"/usr/local/yacco2/diagrams/o2mac.tex\"\n"
+ "\\IDXdoctitle{%s}{%s}";
+ char xlate_file[Max_cweb_item_size];
+ XLATE_SYMBOLS_FOR_cweave(fsm->w_index_filename_.c_str(),xlate_file);
+ sprintf(fsm->big_buf_
+ ,w_doc_index
+ ,xlate_file
+ ,xlate_file
+ );
+ fsm->ow_index_file_ << fsm->big_buf_ << std::endl;
+
+
+ KCHARP w_used_xref_index =
+ "@** Grammar symbols: Used cross reference.\\fbreak\n"
+ "Reference of each grammar's symbol used within each rule's productions. The index\n"
+ "uses the tripple: rule name, its subrule no, and the symbol's position\n"
+ " within the symbol string.";
+ fsm->ow_index_file_ << w_used_xref_index << std::endl;
+
+ char key[Max_cweb_item_size];
+ char xlate_key_sym[Max_cweb_item_size];
+ char xref_key[Max_cweb_item_size];
+ char xlate_sym[Max_cweb_item_size];
+ char xlated_rule[Max_cweb_item_size];
+ std::map<std::string, std::list<std::string> >::iterator i =
+ fsm->xref_of_used_symbols_.begin();
+ std::map<std::string, std::list<std::string> >::iterator ie =
+ fsm->xref_of_used_symbols_.end();
+ for(;i != ie;++i){
+ strcpy(key,i->first.c_str());
+ XLATE_SYMBOLS_FOR_cweave((const char*)key,xlate_key_sym);
+ fsm->ow_index_file_ << "@*2 " << xlate_key_sym << ":.\\fbreak" << endl;
+ std::list<std::string>& xxx = i->second;
+ std::list<std::string>::iterator k = xxx.begin();
+ std::list<std::string>::iterator ke = xxx.end();
+ for(;k != ke;++k){
+ strcpy(xref_key,k->c_str());
+ XLATE_SYMBOLS_FOR_cweave((const char*)xref_key,xlate_sym);
+ fsm->ow_index_file_ << xlate_sym << "\\ \\ " << endl;
+ }
+ fsm->ow_index_file_ << "\\fbreak" << endl;
+ }
+
+ KCHARP w_fs_index =
+ "@** Grammar Rules's First Sets.\\fbreak\n";
+ fsm->ow_index_file_ << w_fs_index << std::endl;
+
+ std::list<rule_def*>::iterator j = fsm->rules_for_fs_prt_.begin();
+ std::list<rule_def*>::iterator je = fsm->rules_for_fs_prt_.end();
+ for(;j != je;++j){
+ PRT_RULE_S_FIRST_SET(fsm->ow_index_file_,*j);
+ };
+ KCHARP w_lr_state_network =
+ "@*2 LR State Network.\\fbreak\n"
+ "\\LRstatenetwork\n";
+ KCHARP w_xref_rule_rank_to_literal =
+ "@.R$_{%i}$ --- %s@>\n";
+ fsm->ow_index_file_ << w_lr_state_network << std::endl;
+ fsm->determine_closure_derived_states();
+
+ std::map <int , std::list<state_element*> >::iterator xi;
+ std::map <int , std::list<state_element*> >::iterator xie;
+
+ xi= fsm->productions_derived_states_list_.begin();
+ xie = fsm->productions_derived_states_list_.end();
+ rule_def* ord(0);
+ rule_def* rd(0);
+
+ for(;xi!=xie;++xi){// walk all the derived productions list
+ std::list<state_element*>& selist = xi->second;
+ std::list<state_element*>::iterator f1st_el = selist.begin();
+ state_element* se = (state_element*)*f1st_el;
+ T_subrule_def* srd = se->subrule_def_;
+ rd = srd->its_rule_def();
+ if(ord != rd){
+ ord = rd;
+ XLATE_SYMBOLS_FOR_cweave(ord->rule_name()->c_str(),xlated_rule);
+ KCHARP w_rule_name =
+ "@*3 %s.\\fbreak";
+ sprintf(fsm->big_buf_
+ ,w_rule_name
+ ,xlated_rule
+ );
+ fsm->ow_index_file_ << fsm->big_buf_ << std::endl;
+ sprintf(fsm->big_buf_
+ ,w_xref_rule_rank_to_literal
+ ,rd->rule_no()
+ ,xlated_rule
+ );
+ fsm->ow_index_file_ << fsm->big_buf_ << std::endl;
+ }
+ KCHARP w_subrule =
+ "\\Subrulestartsymstrindent{%i} ";
+ sprintf(fsm->big_buf_
+ ,w_subrule
+ ,srd->subrule_no_of_rule()
+ );
+ fsm->ow_index_file_ << fsm->big_buf_;
+// print its rhs elements
+ AST* sr_t = srd->subrule_s_tree();
+
+ tok_can_ast_functor sr_elems_walk_functr;
+ ast_prefix_1forest prt_sr_elems_walk(*sr_t
+ ,&sr_elems_walk_functr,&fsm->prt_sr_elems_filter_,ACCEPT_FILTER);
+ tok_can<AST*> prt_sr_elems_can(prt_sr_elems_walk);
+ using namespace NS_prt_sr_elements;
+ Cprt_sr_elements prt_sr_elements_fsm;
+ prt_sr_elements_fsm.ow_index_file_ = &fsm->ow_index_file_;
+ Parser prt_sr_elements(prt_sr_elements_fsm,&prt_sr_elems_can,0);
+ prt_sr_elements.parse();
+
+ list<state_element*>& dlist = xi->second;
+ list<state_element*>::iterator yi = dlist.begin();
+ list<state_element*>::iterator yie = dlist.end();
+ KCHARP w_subrule_derived_states =
+ "\\Subrulederivedstatesindent ";
+ KCHARP w_merged = "{\\Mergedstate{%i}}";
+ std::set<int> chk_merge;
+ chk_merge.clear();
+ for(;yi!=yie;++yi){// derive state list per closured production
+ fsm->ow_index_file_ << w_subrule_derived_states << endl;
+ state_element* se = *yi;
+ state_element* dse = se;
+ for(;dse!=0;dse = dse->next_state_element_){// walk the derived plank
+ fsm->ow_index_file_ << dse->self_state_->state_no_;
+ if(dse->next_state_element_ != 0){
+ std::set<int>::iterator si =
+ chk_merge.find(dse->next_state_element_->self_state_->state_no_);
+ if(si != chk_merge.end()){
+ sprintf(fsm->big_buf_
+ ,w_merged
+ ,dse->goto_state_->state_no_
+ );
+ fsm->ow_index_file_ << fsm->big_buf_ << endl;
+ break;
+ }
+ }
+ chk_merge.insert(dse->self_state_->state_no_);
+ fsm->ow_index_file_ << "\\ \\ " << endl;
+ }
+ }
+ }
+
+ KCHARP w_list_of_reduced_states =
+ "@*2 List of reducing states.\\fbreak\n"
+ "\\Listofreducingstates\n"
+ "\\fbreak\n";
+ fsm->ow_index_file_ << w_list_of_reduced_states << std::endl;
+ fsm->ow_index_file_ << "\\Reducedstatelist" << std::endl;
+ std::vector <state* >::iterator ri = fsm->reducing_states_list_.begin();
+ std::vector <state* >::iterator rie = fsm->reducing_states_list_.end();
+ for(;ri != rie;++ri){
+ state* s = *ri;
+ fsm->ow_index_file_ << '{' << s->state_no_;
+ switch (s->state_type_){
+ case 0:{//shift only
+ break;
+ }
+ case 1:{
+ fsm->ow_index_file_ << "\\Reduceonly";
+ break;
+ }
+ case 2:{
+ fsm->ow_index_file_ << "\\ShiftReduce";
+ break;
+ }
+ case 3:{
+ fsm->ow_index_file_ << "\\MultipleReduces";
+ break;
+ }
+ case 4:{
+ fsm->ow_index_file_ << "\\ShiftandMultipleReduces";
+ break;
+ }
+ }
+ fsm->ow_index_file_ << "\\ \\ }" << std::endl;
+ }
+ fsm->prt_states_follow_set();
+ fsm->prt_common_follow_set_la();
+ fsm->ow_index_file_ << "@** Index." << endl;
+
+fsm->ow_index_file_.close();
+
+}
+
+Rrules::Rrules(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrules",0,Cprt_xrefs_docs::R_Rrules_,P,false,false){
+}
+
+Rrule::Rrule(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrule",0,Cprt_xrefs_docs::R_Rrule_,P,false,false){
+}
+
+Rrule_def::Rrule_def(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrule_def",0,Cprt_xrefs_docs::R_Rrule_def_,P,false,false){
+}
+
+void Rrule_def::sr1(){
+ struct SF{
+ rule_def* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cprt_xrefs_docs* fsm = (Cprt_xrefs_docs*)rule_info__.parser__->fsm_tbl__;
+ fsm->rule_def_ = sf->p1__;
+ fsm->rules_for_fs_prt_.push_back(fsm->rule_def_);
+ ++fsm->rule_no_;
+ fsm->subrule_no_ = 0;
+
+}
+
+Rsubrules::Rsubrules(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsubrules",0,Cprt_xrefs_docs::R_Rsubrules_,P,false,false){
+}
+
+Rsubrule::Rsubrule(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsubrule",0,Cprt_xrefs_docs::R_Rsubrule_,P,false,false){
+}
+
+Rsubrule_def::Rsubrule_def(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsubrule_def",0,Cprt_xrefs_docs::R_Rsubrule_def_,P,false,false){
+}
+
+void Rsubrule_def::sr1(){
+ struct SF{
+ T_subrule_def* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cprt_xrefs_docs* fsm = (Cprt_xrefs_docs*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->subrule_no_;
+ fsm->elem_no_ = 0;
+ fsm->subrule_def_ = sf->p1__;
+
+}
+
+Relements::Relements(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Relements",0,Cprt_xrefs_docs::R_Relements_,P,false,false){
+}
+
+Relement::Relement(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Relement",0,Cprt_xrefs_docs::R_Relement_,P,false,false){
+}
+
+void Relement::sr1(){
+ struct SF{
+ refered_T* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cprt_xrefs_docs* fsm = (Cprt_xrefs_docs*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ string xref_entry;
+ const char* xref_pattern = "%s %i.%i";
+ sprintf(fsm->big_buf_,xref_pattern
+ ,fsm->rule_def_->rule_name()->c_str(),fsm->subrule_no_,fsm->elem_no_);
+ xref_entry += fsm->big_buf_;
+ string xref_key(sf->p1__->its_t_def()->t_name()->c_str());
+ fsm->add_symbol_to_xref_map(xref_key,xref_entry);
+
+}
+
+void Relement::sr2(){
+ struct SF{
+ refered_rule* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cprt_xrefs_docs* fsm = (Cprt_xrefs_docs*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ string xref_entry;
+ const char* xref_pattern = "%s %i.%i";
+ sprintf(fsm->big_buf_,xref_pattern,
+ fsm->rule_def_->rule_name()->c_str(),fsm->subrule_no_,fsm->elem_no_);
+ xref_entry += fsm->big_buf_;
+ string xref_key(sf->p1__->its_rule_def()->rule_name()->c_str());
+ fsm->add_symbol_to_xref_map(xref_key,xref_entry);
+
+}
+
+void Relement::sr3(){
+
+ Cprt_xrefs_docs* fsm = (Cprt_xrefs_docs*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ if(fsm->elem_no_ == 1){// epsilon
+ string xref_entry;
+ const char* xref_pattern = "%s %i.%i";
+ sprintf(fsm->big_buf_,xref_pattern,
+ fsm->rule_def_->rule_name()->c_str(),fsm->subrule_no_,fsm->elem_no_);
+ xref_entry += fsm->big_buf_;
+ string xref_key("\\emptyrule");
+ fsm->add_symbol_to_xref_map(xref_key,xref_entry);
+ }
+
+}
+
+void Relement::sr4(){
+ struct SF{
+ refered_T* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ refered_T* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ T_called_thread_eosubrule* p3__;
+ State* s3__;
+ bool abort3__;
+ Rule_s_reuse_entry* rule_s_reuse_entry3__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(3);
+
+ Cprt_xrefs_docs* fsm = (Cprt_xrefs_docs*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ string xref_entry;
+ const char* xref_pattern = "%s %i.%i";
+ sprintf(fsm->big_buf_,xref_pattern,
+ fsm->rule_def_->rule_name()->c_str(),fsm->subrule_no_,fsm->elem_no_);
+ xref_entry += fsm->big_buf_;
+ string xref_key;
+ if(sf->p1__->its_t_def()->enum_id() == T_Enum::T_LR1_parallel_operator_){
+ xref_key += "|||";
+ }else{
+ xref_key += "|t|";
+ }
+ fsm->add_symbol_to_xref_map(xref_key,xref_entry);
+ ++fsm->elem_no_;
+ string xref_rtned_entry;
+ sprintf(fsm->big_buf_,xref_pattern,
+ fsm->rule_def_->rule_name()->c_str(),fsm->subrule_no_,fsm->elem_no_);
+ xref_rtned_entry += fsm->big_buf_;
+ string xref_rtned_key(sf->p2__->its_t_def()->t_name()->c_str());
+ fsm->add_symbol_to_xref_map(xref_rtned_key,xref_rtned_entry);
+ ++fsm->elem_no_;
+ string xref_thd_entry;
+ sprintf(fsm->big_buf_,xref_pattern,
+ fsm->rule_def_->rule_name()->c_str(),fsm->subrule_no_,fsm->elem_no_);
+ xref_thd_entry += fsm->big_buf_;
+ string xref_thd_key;
+ xref_thd_key += sf->p3__->ns()->identifier()->c_str();
+ xref_thd_key += "::";
+ xref_thd_key += sf->p3__->called_thread_name()->identifier()->c_str();
+ fsm->add_symbol_to_xref_map(xref_thd_key,xref_thd_entry);
+
+}
+
+void Relement::sr5(){
+ struct SF{
+ refered_T* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ refered_T* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ T_null_call_thread_eosubrule* p3__;
+ State* s3__;
+ bool abort3__;
+ Rule_s_reuse_entry* rule_s_reuse_entry3__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(3);
+
+ Cprt_xrefs_docs* fsm = (Cprt_xrefs_docs*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ string xref_entry;
+ const char* xref_pattern = "%s %i.%i";
+ sprintf(fsm->big_buf_,xref_pattern,
+ fsm->rule_def_->rule_name()->c_str(),fsm->subrule_no_,fsm->elem_no_);
+ xref_entry += fsm->big_buf_;
+ string xref_key;
+ if(sf->p1__->its_t_def()->enum_id() == T_Enum::T_LR1_parallel_operator_){
+ xref_key += "|||";
+ }else{
+ xref_key += "|t|";
+ }
+ fsm->add_symbol_to_xref_map(xref_key,xref_entry);
+
+ ++fsm->elem_no_;
+ string xref_rtned_key(sf->p2__->its_t_def()->t_name()->c_str());
+ string xref_rtned_entry;
+ sprintf(fsm->big_buf_,xref_pattern,
+ fsm->rule_def_->rule_name()->c_str(),fsm->subrule_no_,fsm->elem_no_);
+ xref_rtned_entry += fsm->big_buf_;
+ fsm->add_symbol_to_xref_map(xref_rtned_key,xref_rtned_entry);
+
+ ++fsm->elem_no_;
+ string xref_thd_entry;
+ sprintf(fsm->big_buf_,xref_pattern,
+ fsm->rule_def_->rule_name()->c_str(),fsm->subrule_no_,fsm->elem_no_);
+ xref_thd_entry += fsm->big_buf_;
+ string xref_thd_key("NULL thread");
+ fsm->add_symbol_to_xref_map(xref_thd_key,xref_thd_entry);
+
+}
+
+void Relement::sr6(){
+ struct SF{
+ refered_T* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ refered_T* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ CAbs_lr1_sym* p3__;
+ State* s3__;
+ bool abort3__;
+ Rule_s_reuse_entry* rule_s_reuse_entry3__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(3);
+
+ Cprt_xrefs_docs* fsm = (Cprt_xrefs_docs*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ string xref_entry;
+ const char* xref_pattern = "%s %i.%i";
+ sprintf(fsm->big_buf_,xref_pattern,
+ fsm->rule_def_->rule_name()->c_str(),fsm->subrule_no_,fsm->elem_no_);
+ xref_entry += fsm->big_buf_;
+ string xref_key(sf->p1__->its_t_def()->t_name()->c_str());
+ fsm->add_symbol_to_xref_map(xref_key,xref_entry);
+ ++fsm->elem_no_;
+ string xref_2_entry;
+ sprintf(fsm->big_buf_,xref_pattern,
+ fsm->rule_def_->rule_name()->c_str(),fsm->subrule_no_,fsm->elem_no_);
+ xref_2_entry += fsm->big_buf_;
+ string xref_2_key(sf->p2__->its_t_def()->t_name()->c_str());
+ fsm->add_symbol_to_xref_map(xref_2_key,xref_2_entry);
+
+}
+
diff --git a/web/yacco2/compiler/grammars/prt_xrefs_docs.fsc b/web/yacco2/compiler/grammars/prt_xrefs_docs.fsc
new file mode 100644
index 0000000000..051711e86b
--- /dev/null
+++ b/web/yacco2/compiler/grammars/prt_xrefs_docs.fsc
@@ -0,0 +1,20 @@
+/*
+ File: prt_xrefs_docs.fsc
+ Date and Time: Fri Jan 30 18:55:21 2015
+*/
+transitive n
+grammar-name "prt_xrefs_docs"
+name-space "NS_prt_xrefs_docs"
+thread-name "Cprt_xrefs_docs"
+monolithic y
+file-name "prt_xrefs_docs.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ rule_def
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"Output xref doc --- \n``first set'' per rule, and referenced symbols."
diff --git a/web/yacco2/compiler/grammars/prt_xrefs_docs.h b/web/yacco2/compiler/grammars/prt_xrefs_docs.h
new file mode 100644
index 0000000000..5f6be66289
--- /dev/null
+++ b/web/yacco2/compiler/grammars/prt_xrefs_docs.h
@@ -0,0 +1,175 @@
+/*
+ File: prt_xrefs_docs.h
+ Date and Time: Fri Jan 30 18:55:21 2015
+*/
+#ifndef __prt_xrefs_docs_h__
+#define __prt_xrefs_docs_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "time.h"
+#include "o2_externs.h"
+#include "prt_sr_elements.h"
+extern void PRT_RULE_S_FIRST_SET(std::ofstream& Ofile,NS_yacco2_terminals::rule_def* Rule_def);
+extern void XLATE_SYMBOLS_FOR_cweave(const char* Sym_to_xlate,char* Xlated_sym);
+extern int MPOST_CWEB_xlated_symbol(AST* Sym,char* Xlated_sym);
+extern STATES_type LR1_STATES;
+extern COMMON_LA_SETS_type COMMON_LA_SETS;
+
+
+// monolithic grammar: no thread
+extern yacco2::State S1_Cprt_xrefs_docs;
+namespace NS_prt_xrefs_docs {
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[9];
+};
+class Cprt_xrefs_docs: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rprt_xrefs_docs_ = 569//start_of_rule_list + 0
+ ,rhs1_Rprt_xrefs_docs_ = 1
+ ,R_Rrules_ = 570//start_of_rule_list + 2
+ ,rhs1_Rrules_ = 2
+ ,rhs2_Rrules_ = 3
+ ,R_Rrule_ = 571//start_of_rule_list + 4
+ ,rhs1_Rrule_ = 4
+ ,R_Rrule_def_ = 572//start_of_rule_list + 6
+ ,rhs1_Rrule_def_ = 5
+ ,R_Rsubrules_ = 573//start_of_rule_list + 8
+ ,rhs1_Rsubrules_ = 6
+ ,rhs2_Rsubrules_ = 7
+ ,R_Rsubrule_ = 574//start_of_rule_list + 10
+ ,rhs1_Rsubrule_ = 8
+ ,R_Rsubrule_def_ = 575//start_of_rule_list + 12
+ ,rhs1_Rsubrule_def_ = 9
+ ,R_Relements_ = 576//start_of_rule_list + 14
+ ,rhs1_Relements_ = 10
+ ,rhs2_Relements_ = 11
+ ,R_Relement_ = 577//start_of_rule_list + 16
+ ,rhs1_Relement_ = 12
+ ,rhs2_Relement_ = 13
+ ,rhs3_Relement_ = 14
+ ,rhs4_Relement_ = 15
+ ,rhs5_Relement_ = 16
+ ,rhs6_Relement_ = 17
+ };
+ //no of la sets = 6
+ //no of states = 23
+ Cprt_xrefs_docs();
+ ~Cprt_xrefs_docs();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[18];
+
+ public:
+ char big_buf_[BIG_BUFFER_32K];
+ set<int> prt_sr_elems_filter_;
+ std::map <int , std::string> xlated_names_;
+ std::map <int , std::list<state_element*> > productions_derived_states_list_;
+ std::vector <state* > reducing_states_list_;
+ std::vector <int> no_subrules_per_rule_;
+ std::string gened_date_time_;
+ std::string w_index_filename_;
+ std::ofstream ow_index_file_;
+ std::string grammar_filename_prefix_;
+ std::string fq_filename_noext_;
+ int rule_no_;
+ int subrule_no_;
+ int elem_no_;
+ int no_of_rules_;
+ int no_of_subrules_;
+ std::string rule_name_;
+ std::string elem_name_;
+ rule_def* rule_def_;
+ T_subrule_def* subrule_def_;
+ std::list<NS_yacco2_terminals::rule_def*> rules_for_fs_prt_;
+ std::map<std::string, std::list<std::string> > xref_of_used_symbols_;
+ void add_symbol_to_xref_map(std::string& Key,std::string& Ref);
+ void determine_closure_derived_states();
+ void prt_states_follow_set();
+ void prt_follow_set_local_yield(follow_element* Fe);
+ void prt_follow_set_creators(follow_element* Fe);
+ void prt_follow_set_transitions(follow_element* Fe);
+ void prt_follow_set_merges(follow_element* Fe);
+ void prt_state_s_follow_set_rules(state* Cur_state);
+ void prt_common_follow_set_la();
+
+ };
+struct Rprt_xrefs_docs;
+struct Rrules;
+struct Rrule;
+struct Rrule_def;
+struct Rsubrules;
+struct Rsubrule;
+struct Rsubrule_def;
+struct Relements;
+struct Relement;
+struct Rprt_xrefs_docs:public yacco2::CAbs_lr1_sym {
+ Rprt_xrefs_docs(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rrules:public yacco2::CAbs_lr1_sym {
+ Rrules(yacco2::Parser* P);
+ public:
+};
+
+struct Rrule:public yacco2::CAbs_lr1_sym {
+ Rrule(yacco2::Parser* P);
+ public:
+};
+
+struct Rrule_def:public yacco2::CAbs_lr1_sym {
+ Rrule_def(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rsubrules:public yacco2::CAbs_lr1_sym {
+ Rsubrules(yacco2::Parser* P);
+ public:
+};
+
+struct Rsubrule:public yacco2::CAbs_lr1_sym {
+ Rsubrule(yacco2::Parser* P);
+ public:
+};
+
+struct Rsubrule_def:public yacco2::CAbs_lr1_sym {
+ Rsubrule_def(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Relements:public yacco2::CAbs_lr1_sym {
+ Relements(yacco2::Parser* P);
+ public:
+};
+
+struct Relement:public yacco2::CAbs_lr1_sym {
+ Relement(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+ void sr5();
+ void sr6();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/prt_xrefs_docs.lex b/web/yacco2/compiler/grammars/prt_xrefs_docs.lex
new file mode 100644
index 0000000000..1c42774dcc
--- /dev/null
+++ b/web/yacco2/compiler/grammars/prt_xrefs_docs.lex
@@ -0,0 +1,745 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: prt_xrefs_docs.lex
+Dates: 3 Sept. 2007
+Purpose: Create various xref docs.
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |prt_xrefs_docs.lex| Grammar.\fbreak
+Various cross references:\fbreak
+\ptindent{1) used vocabulary symbols referenced against each rule's subrule and position}
+\ptindent{2) first set per rule}
+\ptindent{3) productions derived lr states}
+\ptindent{4) list of reducing lr states}
+\ptindent{5) Per state Follow set calculations}
+\ptindent{6) Commonized follow sets for reducing subrules}
+@/
+fsm
+(fsm-id "prt_xrefs_docs.lex",fsm-filename prt_xrefs_docs,fsm-namespace NS_prt_xrefs_docs
+,fsm-class Cprt_xrefs_docs{
+ user-prefix-declaration
+#include "time.h"
+#include "o2_externs.h"
+#include "prt_sr_elements.h"
+extern void PRT_RULE_S_FIRST_SET(std::ofstream& Ofile,NS_yacco2_terminals::rule_def* Rule_def);
+extern void XLATE_SYMBOLS_FOR_cweave(const char* Sym_to_xlate,char* Xlated_sym);
+extern int MPOST_CWEB_xlated_symbol(AST* Sym,char* Xlated_sym);
+extern STATES_type LR1_STATES;
+extern COMMON_LA_SETS_type COMMON_LA_SETS;
+
+ ***
+ user-declaration
+ public:
+ char big_buf_[BIG_BUFFER_32K];
+ set<int> prt_sr_elems_filter_;
+ std::map <int , std::string> xlated_names_;
+ std::map <int , std::list<state_element*> > productions_derived_states_list_;
+ std::vector <state* > reducing_states_list_;
+ std::vector <int> no_subrules_per_rule_;
+ std::string gened_date_time_;
+ std::string w_index_filename_;
+ std::ofstream ow_index_file_;
+ std::string grammar_filename_prefix_;
+ std::string fq_filename_noext_;
+ int rule_no_;
+ int subrule_no_;
+ int elem_no_;
+ int no_of_rules_;
+ int no_of_subrules_;
+ std::string rule_name_;
+ std::string elem_name_;
+ rule_def* rule_def_;
+ T_subrule_def* subrule_def_;
+ std::list<NS_yacco2_terminals::rule_def*> rules_for_fs_prt_;
+ std::map<std::string, std::list<std::string> > xref_of_used_symbols_;
+ void add_symbol_to_xref_map(std::string& Key,std::string& Ref);
+ void determine_closure_derived_states();
+ void prt_states_follow_set();
+ void prt_follow_set_local_yield(follow_element* Fe);
+ void prt_follow_set_creators(follow_element* Fe);
+ void prt_follow_set_transitions(follow_element* Fe);
+ void prt_follow_set_merges(follow_element* Fe);
+ void prt_state_s_follow_set_rules(state* Cur_state);
+ void prt_common_follow_set_la();
+ ***
+ user-implementation
+void Cprt_xrefs_docs::determine_closure_derived_states(){
+ std::map <int , std::list<state_element*> >::iterator xi;
+ std::map <int , std::list<state_element*> >::iterator xie;
+ STATES_ITER_type si= LR1_STATES.begin();
+ STATES_ITER_type sie= LR1_STATES.end();
+ int integerize_the_subrule(0);
+ for(;si!=sie;++si){// read states
+ state*cur_state= *si;
+ using namespace NS_yacco2_T_enum;
+ S_VECTORS_ITER_type svi = cur_state->state_s_vector_.begin();
+ S_VECTORS_ITER_type svie = cur_state->state_s_vector_.end();
+ S_VECTORS_ITER_type tvi = cur_state->state_s_vector_.find(-T_Enum::T_T_eosubrule_);
+ if(tvi != svie){
+ reducing_states_list_.push_back(cur_state);
+ goto rd_vector_s_elems;
+ }
+ tvi = cur_state->state_s_vector_.find(-T_Enum::T_T_called_thread_eosubrule_);
+ if(tvi != svie){
+ reducing_states_list_.push_back(cur_state);
+ goto rd_vector_s_elems;
+ }
+ tvi = cur_state->state_s_vector_.find(-T_Enum::T_T_null_call_thread_eosubrule_);
+ if(tvi != svie){
+ reducing_states_list_.push_back(cur_state);
+ goto rd_vector_s_elems;
+ }
+rd_vector_s_elems:;
+ for(;svi!=svie;++svi){// rd the same vector's elements
+ S_VECTOR_ELEMS_ITER_type seli = svi->second.begin();
+ S_VECTOR_ELEMS_ITER_type selie = svi->second.end();
+ for(;seli!=selie;++seli){
+ state_element* se = *seli;
+ if(se->previous_state_ != 0) continue;
+ integerize_the_subrule = se->subrule_def_->its_grammar_s_pos();
+ xi = productions_derived_states_list_.find(integerize_the_subrule);
+ if(xi == productions_derived_states_list_.end()){
+ productions_derived_states_list_[integerize_the_subrule] = std::list<state_element*>();
+ }
+ xi = productions_derived_states_list_.find(integerize_the_subrule);
+ xi->second.push_back(se);
+ }
+ }
+ }
+}
+/@
+@*3 |add_symbol_to_xref_map|.
+@/
+ void Cprt_xrefs_docs::add_symbol_to_xref_map(std::string& Key,std::string& Ref){
+ std::map<std::string, std::list<std::string> >::iterator i;
+ i = xref_of_used_symbols_.find(Key.c_str());
+ if(i ==xref_of_used_symbols_.end()){
+ xref_of_used_symbols_[Key.c_str()] = std::list<std::string>();
+ i = xref_of_used_symbols_.find(Key);
+ std::list<std::string>& xxx = i->second;
+ xxx.push_back(string(Ref.c_str()));
+ return;
+ }else{
+ std::list<std::string>& xxx = i->second;
+ xxx.push_back(string(Ref.c_str()));
+ }
+ }
+/@
+@*3 |prt_follow_set_local_yield|.
+@/
+ void Cprt_xrefs_docs::prt_follow_set_local_yield(follow_element* Fe){
+ KCHARP w_follset_local_yield =
+ "\\FollSetreducinglocalyield %s";
+ sprintf(big_buf_,w_follset_local_yield," ");
+ ow_index_file_ << big_buf_ << endl;
+ KCHARP w_follset_t =
+ "%s";
+ char t_name[Max_cweb_item_size];
+ FOLLOW_SETS_ITER_type fsi = Fe->follow_set_.begin();
+ FOLLOW_SETS_ITER_type fsie = Fe->follow_set_.end();
+ for(;fsi != fsie;){// those Tes
+ T_in_stbl* t = *fsi;
+ t_name[0] = (char)0;
+ XLATE_SYMBOLS_FOR_cweave(t->t_def()->t_name()->c_str(),t_name);
+ sprintf(big_buf_,w_follset_t,t_name);
+ ow_index_file_ << big_buf_;
+ ++fsi;
+ if(fsi != fsie){
+ ow_index_file_ <<"," << endl;
+ }else{
+ ow_index_file_ <<"." << endl;
+ }
+ }
+ ow_index_file_ << endl;// end it with blank line
+ }
+
+/@
+@*3 |prt_follow_set_creators|.
+@/
+ void Cprt_xrefs_docs::prt_follow_set_creators(follow_element* Fe){
+ char rule_name[Max_cweb_item_size];
+ KCHARP w_follset_start_str =
+ "\\halign{\n"
+ "\\span\\FollSettemplate\n"
+ "\\FollSettitle";
+ KCHARP w_follset_stateno_rule =
+ "{%s\\rulenameno{%i}}&\n" // rule+rule no
+ "{"; // start of the contributors
+
+ KCHARP w_follset_creators =
+ "\\FollSetcreators{%i}{%i}{%i}";
+
+ sprintf(big_buf_,w_follset_start_str,"");
+ ow_index_file_ << big_buf_ << endl;
+ rule_def* rd = (rule_def*)AST::content(*Fe->rule_def_t_);
+ rule_name[0] = (char)0;
+ XLATE_SYMBOLS_FOR_cweave(rd->rule_name()->c_str(),rule_name);
+ sprintf(big_buf_,w_follset_stateno_rule,rule_name,rd->rule_no());
+ ow_index_file_ << big_buf_ << endl;
+ SR_ELEMENTS_type::iterator sri = Fe->sr_elements_.begin();
+ SR_ELEMENTS_type::iterator srie = Fe->sr_elements_.end();
+ for(;sri != srie;++sri){// follow set contributors
+ AST* et = *sri;// eos
+ AST* pvrt = et->pr_;
+ refered_rule* rr = (refered_rule*)AST::content(*pvrt);
+ T_subrule_def* srd = rr->its_subrule_def();
+ rule_def* sr_d = srd->its_rule_def();
+ sprintf(big_buf_
+ ,w_follset_creators
+ ,sr_d->rule_no()
+ ,srd->subrule_no_of_rule()
+ ,rr->element_pos());
+
+ ow_index_file_ << big_buf_ << endl;
+ }
+ }
+/@
+@*3 |prt_follow_set_merges|.
+@/
+ void Cprt_xrefs_docs::prt_follow_set_merges(follow_element* Fe){
+ KCHARP w_overflow_close_and_new_blank_rule =
+ "}\\cr\n"
+ "{}&\n" // blank sule name
+ "{%s"; // start of new meging list
+ KCHARP w_follset_merges =
+ "\\FollSetmerges{%i}"; // state where other follow set rule lies
+ MERGES_ITER_type mi = Fe->merges_.begin();
+ MERGES_ITER_type mie = Fe->merges_.end();
+ int overflow_limit(10);
+ int merge_cnt(0);
+ for(;mi != mie;++mi){// transitions
+ state* s = *mi;
+ ++merge_cnt;
+ if(merge_cnt > overflow_limit){
+ sprintf(big_buf_,w_overflow_close_and_new_blank_rule," ");
+ ow_index_file_ << big_buf_ << endl;
+ merge_cnt = 1;
+ }
+ sprintf(big_buf_,w_follset_merges,s->state_no_);
+ ow_index_file_ << big_buf_ << endl;
+ }
+ }
+/@
+@*3 |prt_follow_set_transitions|.
+@/
+ void Cprt_xrefs_docs::prt_follow_set_transitions(follow_element* Fe){
+ KCHARP w_follset_transitions =
+ "\\FollSettransition{%i}{%i}"; // rt bnded
+ TRANSITIONS_ITER_type ti = Fe->transitions_.begin();
+ TRANSITIONS_ITER_type tie = Fe->transitions_.end();
+ for(;ti != tie;++ti){// transitions
+ follow_element* tfe = *ti;
+ rule_def* rd = (rule_def*)AST::content(*tfe->rule_def_t_);
+ sprintf(big_buf_
+ ,w_follset_transitions
+ ,tfe->its_state_->state_no_
+ ,rd->rule_no());
+ ow_index_file_ << big_buf_ << endl;
+ }
+ KCHARP w_follset_end_str = "}%s\\cr";
+ sprintf(big_buf_,w_follset_end_str," ");
+ ow_index_file_ << big_buf_ << endl;
+ KCHARP w_follset_end_rule = "}%s";
+ sprintf(big_buf_,w_follset_end_rule," ");
+ ow_index_file_ << big_buf_ << endl;
+ }
+/@
+@*3 |prt_state_s_follow_set_rules|.
+@/
+ void Cprt_xrefs_docs::prt_state_s_follow_set_rules(state* Cur_state){
+ KCHARP w_follset_stateno = // stateno
+ "\\FollSetstateno{%i}";
+ S_FOLLOW_SETS_ITER_type fsi = Cur_state->state_s_follow_set_map_.begin();
+ S_FOLLOW_SETS_ITER_type fsie = Cur_state->state_s_follow_set_map_.end();
+ if(fsi == fsie) return;// nada follow set info in this state
+ sprintf(big_buf_,w_follset_stateno,Cur_state->state_no_);
+ ow_index_file_ << big_buf_ << endl;
+ for(;fsi != fsie;++fsi){// state's follow set info
+ follow_element* fe = (*fsi).second;
+ prt_follow_set_creators(fe);
+ prt_follow_set_merges(fe);
+ prt_follow_set_transitions(fe);
+ prt_follow_set_local_yield(fe);
+ }
+ }
+
+/@
+@*3 |prt_states_follow_set|.
+@/
+ void Cprt_xrefs_docs::prt_states_follow_set(){
+ KCHARP w_states_follow_sets =
+ "@** Lr1 State's Follow sets and reducing lookahead sets.\\fbreak\n"
+ "\\FollSetnotesintro\n"
+ "\\fbreak";
+ ow_index_file_ << w_states_follow_sets << std::endl;
+ STATES_ITER_type si = LR1_STATES.begin();
+ STATES_ITER_type sie = LR1_STATES.end();
+ for(;si!=sie;++si){// walk the states
+ state* cur_state = *si;
+ prt_state_s_follow_set_rules(cur_state);
+ }
+ }
+/@
+@*3 |prt_common_follow_set_la|.
+@/
+ void Cprt_xrefs_docs::prt_common_follow_set_la(){
+ KCHARP w_common_follow_sets =
+ "@*1 Common Follow sets.\\fbreak\n";
+ ow_index_file_ << w_common_follow_sets << std::endl;
+ KCHARP w_common_follow_set =
+ "@*2 LA set: %i.\\fbreak\n"
+ "\\item{}\n"
+ "\\raggedright";
+ KCHARP la_set_entry_literal = "%s";
+ char t_name[Max_cweb_item_size];
+
+ COMMON_LA_SETS_ITER_type i = COMMON_LA_SETS.begin();
+ COMMON_LA_SETS_ITER_type ie = COMMON_LA_SETS.end();
+ for(int idx=0;i!=ie;++i,++idx){
+ LA_SET_type* la_set = *i;
+ sprintf(big_buf_,w_common_follow_set,idx+1);
+ ow_index_file_ << big_buf_ << endl;
+ LA_SET_ITER_type j = la_set->begin();// list out the T literals
+ LA_SET_ITER_type je = la_set->end();
+ for(;j!=je;){
+ T_in_stbl* tsym = *j;
+ t_name[0] = (char)0;
+ XLATE_SYMBOLS_FOR_cweave(tsym->t_def()->t_name()->c_str(),t_name);
+ sprintf(big_buf_,la_set_entry_literal,t_name);
+ ow_index_file_ << big_buf_;
+ ++j;
+ if(j!=je){
+ ow_index_file_ << "," << endl;
+ }else{
+ ow_index_file_ << "." << endl;
+ }
+ }
+ ow_index_file_ << endl; // close off the items
+ }
+ }
+ ***
+ op
+ prt_sr_elems_filter_.insert(T_Enum::T_T_subrule_def_);
+ prt_sr_elems_filter_.insert(T_Enum::T_refered_T_);
+ prt_sr_elems_filter_.insert(T_Enum::T_T_eosubrule_);
+ prt_sr_elems_filter_.insert(T_Enum::T_refered_rule_);
+ prt_sr_elems_filter_.insert(T_Enum::T_T_called_thread_eosubrule_);
+ prt_sr_elems_filter_.insert(T_Enum::T_T_null_call_thread_eosubrule_);
+
+no_subrules_per_rule_.push_back(0);
+time_t theTime= time(0);
+char*cTime= ctime(&theTime);
+gened_date_time_+= string(cTime);
+int n= gened_date_time_.find('\n');
+gened_date_time_[n]= ' ';
+
+rule_def_= 0;
+subrule_def_= 0;
+rule_no_= 0;
+subrule_no_= 0;
+elem_no_= 0;
+no_of_rules_= 0;
+no_of_subrules_= 0;
+w_index_filename_+= grammar_filename_prefix_.c_str();
+w_index_filename_+= "_idx.w";
+ow_index_file_.open(w_index_filename_.c_str(),ios_base::out|ios::trunc);
+if(!ow_index_file_){
+CAbs_lr1_sym*sym= new Err_bad_filename(w_index_filename_.c_str());
+ sym->set_who_created(__FILE__,__LINE__);
+parser__->add_token_to_error_queue(*sym);
+parser__->set_stop_parse(true);
+return;
+}
+ ***
+}
+,fsm-version "1.0",fsm-date "29 Nov. 2005",fsm-debug "false"
+,fsm-comments
+"Output xref doc --- \n``first set'' per rule, and referenced symbols.")
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rprt_xrefs_docs
+(){
+ -> Rrules eog {
+ op
+ Cprt_xrefs_docs* fsm = (Cprt_xrefs_docs*)rule_info__.parser__->fsm_tbl__;
+
+ int rule_no = 1;
+
+ KCHARP w_doc_index =
+ "\\input \"supp-pdf\"\n"
+ "\\input \"/usr/local/yacco2/diagrams/o2mac.tex\"\n"
+ "\\IDXdoctitle{%s}{%s}";
+ char xlate_file[Max_cweb_item_size];
+ XLATE_SYMBOLS_FOR_cweave(fsm->w_index_filename_.c_str(),xlate_file);
+ sprintf(fsm->big_buf_
+ ,w_doc_index
+ ,xlate_file
+ ,xlate_file
+ );
+ fsm->ow_index_file_ << fsm->big_buf_ << std::endl;
+
+
+ KCHARP w_used_xref_index =
+ "@** Grammar symbols: Used cross reference.\\fbreak\n"
+ "Reference of each grammar's symbol used within each rule's productions. The index\n"
+ "uses the tripple: rule name, its subrule no, and the symbol's position\n"
+ " within the symbol string.";
+ fsm->ow_index_file_ << w_used_xref_index << std::endl;
+
+ char key[Max_cweb_item_size];
+ char xlate_key_sym[Max_cweb_item_size];
+ char xref_key[Max_cweb_item_size];
+ char xlate_sym[Max_cweb_item_size];
+ char xlated_rule[Max_cweb_item_size];
+ std::map<std::string, std::list<std::string> >::iterator i =
+ fsm->xref_of_used_symbols_.begin();
+ std::map<std::string, std::list<std::string> >::iterator ie =
+ fsm->xref_of_used_symbols_.end();
+ for(;i != ie;++i){
+ strcpy(key,i->first.c_str());
+ XLATE_SYMBOLS_FOR_cweave((const char*)key,xlate_key_sym);
+ fsm->ow_index_file_ << "@*2 " << xlate_key_sym << ":.\\fbreak" << endl;
+ std::list<std::string>& xxx = i->second;
+ std::list<std::string>::iterator k = xxx.begin();
+ std::list<std::string>::iterator ke = xxx.end();
+ for(;k != ke;++k){
+ strcpy(xref_key,k->c_str());
+ XLATE_SYMBOLS_FOR_cweave((const char*)xref_key,xlate_sym);
+ fsm->ow_index_file_ << xlate_sym << "\\ \\ " << endl;
+ }
+ fsm->ow_index_file_ << "\\fbreak" << endl;
+ }
+
+ KCHARP w_fs_index =
+ "@** Grammar Rules's First Sets.\\fbreak\n";
+ fsm->ow_index_file_ << w_fs_index << std::endl;
+
+ std::list<rule_def*>::iterator j = fsm->rules_for_fs_prt_.begin();
+ std::list<rule_def*>::iterator je = fsm->rules_for_fs_prt_.end();
+ for(;j != je;++j){
+ PRT_RULE_S_FIRST_SET(fsm->ow_index_file_,*j);
+ };
+ KCHARP w_lr_state_network =
+ "@*2 LR State Network.\\fbreak\n"
+ "\\LRstatenetwork\n";
+ KCHARP w_xref_rule_rank_to_literal =
+ "@.R$_{%i}$ --- %s@>\n";
+ fsm->ow_index_file_ << w_lr_state_network << std::endl;
+ fsm->determine_closure_derived_states();
+
+ std::map <int , std::list<state_element*> >::iterator xi;
+ std::map <int , std::list<state_element*> >::iterator xie;
+
+ xi= fsm->productions_derived_states_list_.begin();
+ xie = fsm->productions_derived_states_list_.end();
+ rule_def* ord(0);
+ rule_def* rd(0);
+
+ for(;xi!=xie;++xi){// walk all the derived productions list
+ std::list<state_element*>& selist = xi->second;
+ std::list<state_element*>::iterator f1st_el = selist.begin();
+ state_element* se = (state_element*)*f1st_el;
+ T_subrule_def* srd = se->subrule_def_;
+ rd = srd->its_rule_def();
+ if(ord != rd){
+ ord = rd;
+ XLATE_SYMBOLS_FOR_cweave(ord->rule_name()->c_str(),xlated_rule);
+ KCHARP w_rule_name =
+ "@*3 %s.\\fbreak";
+ sprintf(fsm->big_buf_
+ ,w_rule_name
+ ,xlated_rule
+ );
+ fsm->ow_index_file_ << fsm->big_buf_ << std::endl;
+ sprintf(fsm->big_buf_
+ ,w_xref_rule_rank_to_literal
+ ,rd->rule_no()
+ ,xlated_rule
+ );
+ fsm->ow_index_file_ << fsm->big_buf_ << std::endl;
+ }
+ KCHARP w_subrule =
+ "\\Subrulestartsymstrindent{%i} ";
+ sprintf(fsm->big_buf_
+ ,w_subrule
+ ,srd->subrule_no_of_rule()
+ );
+ fsm->ow_index_file_ << fsm->big_buf_;
+// print its rhs elements
+ AST* sr_t = srd->subrule_s_tree();
+
+ tok_can_ast_functor sr_elems_walk_functr;
+ ast_prefix_1forest prt_sr_elems_walk(*sr_t
+ ,&sr_elems_walk_functr,&fsm->prt_sr_elems_filter_,ACCEPT_FILTER);
+ tok_can<AST*> prt_sr_elems_can(prt_sr_elems_walk);
+ using namespace NS_prt_sr_elements;
+ Cprt_sr_elements prt_sr_elements_fsm;
+ prt_sr_elements_fsm.ow_index_file_ = &fsm->ow_index_file_;
+ Parser prt_sr_elements(prt_sr_elements_fsm,&prt_sr_elems_can,0);
+ prt_sr_elements.parse();
+
+ list<state_element*>& dlist = xi->second;
+ list<state_element*>::iterator yi = dlist.begin();
+ list<state_element*>::iterator yie = dlist.end();
+ KCHARP w_subrule_derived_states =
+ "\\Subrulederivedstatesindent ";
+ KCHARP w_merged = "{\\Mergedstate{%i}}";
+ std::set<int> chk_merge;
+ chk_merge.clear();
+ for(;yi!=yie;++yi){// derive state list per closured production
+ fsm->ow_index_file_ << w_subrule_derived_states << endl;
+ state_element* se = *yi;
+ state_element* dse = se;
+ for(;dse!=0;dse = dse->next_state_element_){// walk the derived plank
+ fsm->ow_index_file_ << dse->self_state_->state_no_;
+ if(dse->next_state_element_ != 0){
+ std::set<int>::iterator si =
+ chk_merge.find(dse->next_state_element_->self_state_->state_no_);
+ if(si != chk_merge.end()){
+ sprintf(fsm->big_buf_
+ ,w_merged
+ ,dse->goto_state_->state_no_
+ );
+ fsm->ow_index_file_ << fsm->big_buf_ << endl;
+ break;
+ }
+ }
+ chk_merge.insert(dse->self_state_->state_no_);
+ fsm->ow_index_file_ << "\\ \\ " << endl;
+ }
+ }
+ }
+
+ KCHARP w_list_of_reduced_states =
+ "@*2 List of reducing states.\\fbreak\n"
+ "\\Listofreducingstates\n"
+ "\\fbreak\n";
+ fsm->ow_index_file_ << w_list_of_reduced_states << std::endl;
+ fsm->ow_index_file_ << "\\Reducedstatelist" << std::endl;
+ std::vector <state* >::iterator ri = fsm->reducing_states_list_.begin();
+ std::vector <state* >::iterator rie = fsm->reducing_states_list_.end();
+ for(;ri != rie;++ri){
+ state* s = *ri;
+ fsm->ow_index_file_ << '{' << s->state_no_;
+ switch (s->state_type_){
+ case 0:{//shift only
+ break;
+ }
+ case 1:{
+ fsm->ow_index_file_ << "\\Reduceonly";
+ break;
+ }
+ case 2:{
+ fsm->ow_index_file_ << "\\ShiftReduce";
+ break;
+ }
+ case 3:{
+ fsm->ow_index_file_ << "\\MultipleReduces";
+ break;
+ }
+ case 4:{
+ fsm->ow_index_file_ << "\\ShiftandMultipleReduces";
+ break;
+ }
+ }
+ fsm->ow_index_file_ << "\\ \\ }" << std::endl;
+ }
+ fsm->prt_states_follow_set();
+ fsm->prt_common_follow_set_la();
+ fsm->ow_index_file_ << "@** Index." << endl;
+
+fsm->ow_index_file_.close();
+ ***
+ }
+}
+
+Rrules (){
+ -> Rrule
+ -> Rrules Rrule
+}
+
+Rrule (){
+ -> Rrule_def Rsubrules
+}
+
+Rrule_def
+(){
+ -> "rule-def" {
+ op
+ Cprt_xrefs_docs* fsm = (Cprt_xrefs_docs*)rule_info__.parser__->fsm_tbl__;
+ fsm->rule_def_ = sf->p1__;
+ fsm->rules_for_fs_prt_.push_back(fsm->rule_def_);
+ ++fsm->rule_no_;
+ fsm->subrule_no_ = 0;
+ ***
+ }
+}
+
+Rsubrules (){
+ -> Rsubrule
+ -> Rsubrules Rsubrule
+}
+
+Rsubrule (){
+ -> Rsubrule_def Relements
+}
+
+Rsubrule_def (){
+ -> "subrule-def" {
+ op
+ Cprt_xrefs_docs* fsm = (Cprt_xrefs_docs*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->subrule_no_;
+ fsm->elem_no_ = 0;
+ fsm->subrule_def_ = sf->p1__;
+ ***
+ }
+}
+
+Relements (){
+ -> Relement
+ -> Relements Relement
+}
+
+Relement
+/@
+Use of \invisibleshift to make grammar lr(1).
+@/
+(){
+ -> "refered-T" |.| {
+ op
+ Cprt_xrefs_docs* fsm = (Cprt_xrefs_docs*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ string xref_entry;
+ const char* xref_pattern = "%s %i.%i";
+ sprintf(fsm->big_buf_,xref_pattern
+ ,fsm->rule_def_->rule_name()->c_str(),fsm->subrule_no_,fsm->elem_no_);
+ xref_entry += fsm->big_buf_;
+ string xref_key(sf->p1__->its_t_def()->t_name()->c_str());
+ fsm->add_symbol_to_xref_map(xref_key,xref_entry);
+ ***
+ }
+ -> "refered-rule" {
+ op
+ Cprt_xrefs_docs* fsm = (Cprt_xrefs_docs*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ string xref_entry;
+ const char* xref_pattern = "%s %i.%i";
+ sprintf(fsm->big_buf_,xref_pattern,
+ fsm->rule_def_->rule_name()->c_str(),fsm->subrule_no_,fsm->elem_no_);
+ xref_entry += fsm->big_buf_;
+ string xref_key(sf->p1__->its_rule_def()->rule_name()->c_str());
+ fsm->add_symbol_to_xref_map(xref_key,xref_entry);
+ ***
+ }
+ -> "eosubrule" {
+ op
+ Cprt_xrefs_docs* fsm = (Cprt_xrefs_docs*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ if(fsm->elem_no_ == 1){// epsilon
+ string xref_entry;
+ const char* xref_pattern = "%s %i.%i";
+ sprintf(fsm->big_buf_,xref_pattern,
+ fsm->rule_def_->rule_name()->c_str(),fsm->subrule_no_,fsm->elem_no_);
+ xref_entry += fsm->big_buf_;
+ string xref_key("\\emptyrule");
+ fsm->add_symbol_to_xref_map(xref_key,xref_entry);
+ }
+ ***
+ }
+ -> "refered-T" "refered-T" "called thread eosubrule" {
+ op
+ Cprt_xrefs_docs* fsm = (Cprt_xrefs_docs*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ string xref_entry;
+ const char* xref_pattern = "%s %i.%i";
+ sprintf(fsm->big_buf_,xref_pattern,
+ fsm->rule_def_->rule_name()->c_str(),fsm->subrule_no_,fsm->elem_no_);
+ xref_entry += fsm->big_buf_;
+ string xref_key;
+ if(sf->p1__->its_t_def()->enum_id() == T_Enum::T_LR1_parallel_operator_){
+ xref_key += "|||";
+ }else{
+ xref_key += "|t|";
+ }
+ fsm->add_symbol_to_xref_map(xref_key,xref_entry);
+ ++fsm->elem_no_;
+ string xref_rtned_entry;
+ sprintf(fsm->big_buf_,xref_pattern,
+ fsm->rule_def_->rule_name()->c_str(),fsm->subrule_no_,fsm->elem_no_);
+ xref_rtned_entry += fsm->big_buf_;
+ string xref_rtned_key(sf->p2__->its_t_def()->t_name()->c_str());
+ fsm->add_symbol_to_xref_map(xref_rtned_key,xref_rtned_entry);
+ ++fsm->elem_no_;
+ string xref_thd_entry;
+ sprintf(fsm->big_buf_,xref_pattern,
+ fsm->rule_def_->rule_name()->c_str(),fsm->subrule_no_,fsm->elem_no_);
+ xref_thd_entry += fsm->big_buf_;
+ string xref_thd_key;
+ xref_thd_key += sf->p3__->ns()->identifier()->c_str();
+ xref_thd_key += "::";
+ xref_thd_key += sf->p3__->called_thread_name()->identifier()->c_str();
+ fsm->add_symbol_to_xref_map(xref_thd_key,xref_thd_entry);
+ ***
+ }
+ -> "refered-T" "refered-T" "null call thread eosubrule" {
+ op
+ Cprt_xrefs_docs* fsm = (Cprt_xrefs_docs*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ string xref_entry;
+ const char* xref_pattern = "%s %i.%i";
+ sprintf(fsm->big_buf_,xref_pattern,
+ fsm->rule_def_->rule_name()->c_str(),fsm->subrule_no_,fsm->elem_no_);
+ xref_entry += fsm->big_buf_;
+ string xref_key;
+ if(sf->p1__->its_t_def()->enum_id() == T_Enum::T_LR1_parallel_operator_){
+ xref_key += "|||";
+ }else{
+ xref_key += "|t|";
+ }
+ fsm->add_symbol_to_xref_map(xref_key,xref_entry);
+
+ ++fsm->elem_no_;
+ string xref_rtned_key(sf->p2__->its_t_def()->t_name()->c_str());
+ string xref_rtned_entry;
+ sprintf(fsm->big_buf_,xref_pattern,
+ fsm->rule_def_->rule_name()->c_str(),fsm->subrule_no_,fsm->elem_no_);
+ xref_rtned_entry += fsm->big_buf_;
+ fsm->add_symbol_to_xref_map(xref_rtned_key,xref_rtned_entry);
+
+ ++fsm->elem_no_;
+ string xref_thd_entry;
+ sprintf(fsm->big_buf_,xref_pattern,
+ fsm->rule_def_->rule_name()->c_str(),fsm->subrule_no_,fsm->elem_no_);
+ xref_thd_entry += fsm->big_buf_;
+ string xref_thd_key("NULL thread");
+ fsm->add_symbol_to_xref_map(xref_thd_key,xref_thd_entry);
+ ***
+ }
+ -> "refered-T" "refered-T" |.|{
+ op
+ Cprt_xrefs_docs* fsm = (Cprt_xrefs_docs*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->elem_no_;
+ string xref_entry;
+ const char* xref_pattern = "%s %i.%i";
+ sprintf(fsm->big_buf_,xref_pattern,
+ fsm->rule_def_->rule_name()->c_str(),fsm->subrule_no_,fsm->elem_no_);
+ xref_entry += fsm->big_buf_;
+ string xref_key(sf->p1__->its_t_def()->t_name()->c_str());
+ fsm->add_symbol_to_xref_map(xref_key,xref_entry);
+ ++fsm->elem_no_;
+ string xref_2_entry;
+ sprintf(fsm->big_buf_,xref_pattern,
+ fsm->rule_def_->rule_name()->c_str(),fsm->subrule_no_,fsm->elem_no_);
+ xref_2_entry += fsm->big_buf_;
+ string xref_2_key(sf->p2__->its_t_def()->t_name()->c_str());
+ fsm->add_symbol_to_xref_map(xref_2_key,xref_2_entry);
+ ***
+ }
+}
+
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/prt_xrefs_docssym.cpp b/web/yacco2/compiler/grammars/prt_xrefs_docssym.cpp
new file mode 100644
index 0000000000..e3c01b9d92
--- /dev/null
+++ b/web/yacco2/compiler/grammars/prt_xrefs_docssym.cpp
@@ -0,0 +1,274 @@
+/*
+ File: prt_xrefs_docssym.cpp
+ Date and Time: Fri Jan 30 18:55:21 2015
+*/
+#include "prt_xrefs_docs.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_prt_xrefs_docs;// grammar's ns
+// first set terminals
+// monolithic grammar --- no thread
+void
+Cprt_xrefs_docs::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rprt_xrefs_docs_:{
+ Rprt_xrefs_docs* sym;
+ if(re->rule_ == 0){
+ sym = new Rprt_xrefs_docs(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rprt_xrefs_docs*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rrules_:{
+ Rrules* sym;
+ if(re->rule_ == 0){
+ sym = new Rrules(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrules*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rrules_:{
+ Rrules* sym;
+ if(re->rule_ == 0){
+ sym = new Rrules(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrules*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rrule_:{
+ Rrule* sym;
+ if(re->rule_ == 0){
+ sym = new Rrule(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrule*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rrule_def_:{
+ Rrule_def* sym;
+ if(re->rule_ == 0){
+ sym = new Rrule_def(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrule_def*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rsubrules_:{
+ Rsubrules* sym;
+ if(re->rule_ == 0){
+ sym = new Rsubrules(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsubrules*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rsubrules_:{
+ Rsubrules* sym;
+ if(re->rule_ == 0){
+ sym = new Rsubrules(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsubrules*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rsubrule_:{
+ Rsubrule* sym;
+ if(re->rule_ == 0){
+ sym = new Rsubrule(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsubrule*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rsubrule_def_:{
+ Rsubrule_def* sym;
+ if(re->rule_ == 0){
+ sym = new Rsubrule_def(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsubrule_def*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Relements_:{
+ Relements* sym;
+ if(re->rule_ == 0){
+ sym = new Relements(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Relements*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Relements_:{
+ Relements* sym;
+ if(re->rule_ == 0){
+ sym = new Relements(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Relements*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Relement_:{
+ Relement* sym;
+ if(re->rule_ == 0){
+ sym = new Relement(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Relement*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Relement_:{
+ Relement* sym;
+ if(re->rule_ == 0){
+ sym = new Relement(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Relement*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Relement_:{
+ Relement* sym;
+ if(re->rule_ == 0){
+ sym = new Relement(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Relement*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Relement_:{
+ Relement* sym;
+ if(re->rule_ == 0){
+ sym = new Relement(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Relement*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ sym->sr4();
+ return;}
+ case rhs5_Relement_:{
+ Relement* sym;
+ if(re->rule_ == 0){
+ sym = new Relement(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Relement*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ sym->sr5();
+ return;}
+ case rhs6_Relement_:{
+ Relement* sym;
+ if(re->rule_ == 0){
+ sym = new Relement(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Relement*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ sym->sr6();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/prt_xrefs_docstbl.cpp b/web/yacco2/compiler/grammars/prt_xrefs_docstbl.cpp
new file mode 100644
index 0000000000..76ba8fa82b
--- /dev/null
+++ b/web/yacco2/compiler/grammars/prt_xrefs_docstbl.cpp
@@ -0,0 +1,452 @@
+/*
+ File: prt_xrefs_docstbl.cpp
+ Date and Time: Fri Jan 30 18:55:21 2015
+*/
+#include "prt_xrefs_docs.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_prt_xrefs_docs;// grammar's ns
+// first set terminals
+// T_subrule_def
+yacco2::UCHAR LA1_Cprt_xrefs_docs[] ={
+1
+,42,64
+};
+// LR1_eolr
+yacco2::UCHAR LA2_Cprt_xrefs_docs[] ={
+1
+,0,4
+};
+// LR1_eog
+// rule_def
+yacco2::UCHAR LA3_Cprt_xrefs_docs[] ={
+2
+,0,2
+,42,16
+};
+// refered_T
+// refered_rule
+// T_eosubrule
+yacco2::UCHAR LA4_Cprt_xrefs_docs[] ={
+2
+,43,10
+,46,2
+};
+// LR1_eog
+// rule_def
+// T_subrule_def
+yacco2::UCHAR LA5_Cprt_xrefs_docs[] ={
+2
+,0,2
+,42,80
+};
+// LR1_eog
+// rule_def
+// T_subrule_def
+// refered_T
+// refered_rule
+// T_eosubrule
+yacco2::UCHAR LA6_Cprt_xrefs_docs[] ={
+4
+,0,2
+,42,80
+,43,10
+,46,2
+};
+extern yacco2::State S1_Cprt_xrefs_docs;
+extern yacco2::State S2_Cprt_xrefs_docs;
+extern yacco2::State S3_Cprt_xrefs_docs;
+extern yacco2::State S4_Cprt_xrefs_docs;
+extern yacco2::State S5_Cprt_xrefs_docs;
+extern yacco2::State S6_Cprt_xrefs_docs;
+extern yacco2::State S7_Cprt_xrefs_docs;
+extern yacco2::State S8_Cprt_xrefs_docs;
+extern yacco2::State S9_Cprt_xrefs_docs;
+extern yacco2::State S10_Cprt_xrefs_docs;
+extern yacco2::State S11_Cprt_xrefs_docs;
+extern yacco2::State S12_Cprt_xrefs_docs;
+extern yacco2::State S13_Cprt_xrefs_docs;
+extern yacco2::State S14_Cprt_xrefs_docs;
+extern yacco2::State S15_Cprt_xrefs_docs;
+extern yacco2::State S16_Cprt_xrefs_docs;
+extern yacco2::State S17_Cprt_xrefs_docs;
+extern yacco2::State S18_Cprt_xrefs_docs;
+extern yacco2::State S19_Cprt_xrefs_docs;
+extern yacco2::State S20_Cprt_xrefs_docs;
+extern yacco2::State S21_Cprt_xrefs_docs;
+extern yacco2::State S22_Cprt_xrefs_docs;
+extern yacco2::State S23_Cprt_xrefs_docs;
+struct S1std_Cprt_xrefs_docs{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S1std_Cprt_xrefs_docs S1st_Cprt_xrefs_docs = {
+ 5
+ ,
+ {// start of table
+ {340,(State*)&S2_Cprt_xrefs_docs} // shift sym: rule_def
+ ,{569,(State*)&S1_Cprt_xrefs_docs} // accept sym: Rprt_xrefs_docs
+ ,{570,(State*)&S3_Cprt_xrefs_docs} // shift sym: Rrules
+ ,{571,(State*)&S23_Cprt_xrefs_docs} // shift sym: Rrule
+ ,{572,(State*)&S6_Cprt_xrefs_docs} // shift sym: Rrule_def
+ }// end of shift table
+};
+yacco2::State S1_Cprt_xrefs_docs = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Cprt_xrefs_docs,0,0,0,0};
+struct S2rtd_Cprt_xrefs_docs{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Cprt_xrefs_docs S2rt_Cprt_xrefs_docs = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cprt_xrefs_docs,Cprt_xrefs_docs::rhs1_Rrule_def_}
+ }// end of reduce table
+};
+yacco2::State S2_Cprt_xrefs_docs = //State's vectored into symbol: "rule-def"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Cprt_xrefs_docs,0,0,0};
+struct S3std_Cprt_xrefs_docs{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S3std_Cprt_xrefs_docs S3st_Cprt_xrefs_docs = {
+ 4
+ ,
+ {// start of table
+ {1,(State*)&S4_Cprt_xrefs_docs} // shift sym: LR1_eog
+ ,{340,(State*)&S2_Cprt_xrefs_docs} // shift sym: rule_def
+ ,{571,(State*)&S5_Cprt_xrefs_docs} // shift sym: Rrule
+ ,{572,(State*)&S6_Cprt_xrefs_docs} // shift sym: Rrule_def
+ }// end of shift table
+};
+yacco2::State S3_Cprt_xrefs_docs = //State's vectored into symbol: "Rrules"
+{3
+,0,0,0,0,(Shift_tbl*)&S3st_Cprt_xrefs_docs,0,0,0,0};
+struct S4rtd_Cprt_xrefs_docs{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Cprt_xrefs_docs S4rt_Cprt_xrefs_docs = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cprt_xrefs_docs,Cprt_xrefs_docs::rhs1_Rprt_xrefs_docs_}
+ }// end of reduce table
+};
+yacco2::State S4_Cprt_xrefs_docs = //State's vectored into symbol: "eog"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Cprt_xrefs_docs,0,0,0};
+struct S5rtd_Cprt_xrefs_docs{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Cprt_xrefs_docs S5rt_Cprt_xrefs_docs = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cprt_xrefs_docs,Cprt_xrefs_docs::rhs2_Rrules_}
+ }// end of reduce table
+};
+yacco2::State S5_Cprt_xrefs_docs = //State's vectored into symbol: "Rrule"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Cprt_xrefs_docs,0,0,0};
+struct S6std_Cprt_xrefs_docs{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S6std_Cprt_xrefs_docs S6st_Cprt_xrefs_docs = {
+ 4
+ ,
+ {// start of table
+ {342,(State*)&S7_Cprt_xrefs_docs} // shift sym: T_subrule_def
+ ,{573,(State*)&S8_Cprt_xrefs_docs} // shift sym: Rsubrules
+ ,{574,(State*)&S22_Cprt_xrefs_docs} // shift sym: Rsubrule
+ ,{575,(State*)&S10_Cprt_xrefs_docs} // shift sym: Rsubrule_def
+ }// end of shift table
+};
+yacco2::State S6_Cprt_xrefs_docs = //State's vectored into symbol: "Rrule_def"
+{6
+,0,0,0,0,(Shift_tbl*)&S6st_Cprt_xrefs_docs,0,0,0,0};
+struct S7rtd_Cprt_xrefs_docs{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Cprt_xrefs_docs S7rt_Cprt_xrefs_docs = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cprt_xrefs_docs,Cprt_xrefs_docs::rhs1_Rsubrule_def_}
+ }// end of reduce table
+};
+yacco2::State S7_Cprt_xrefs_docs = //State's vectored into symbol: "subrule-def"
+{7
+,0,0,0,0,0,(Reduce_tbl*)&S7rt_Cprt_xrefs_docs,0,0,0};
+struct S8std_Cprt_xrefs_docs{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S8std_Cprt_xrefs_docs S8st_Cprt_xrefs_docs = {
+ 3
+ ,
+ {// start of table
+ {342,(State*)&S7_Cprt_xrefs_docs} // shift sym: T_subrule_def
+ ,{574,(State*)&S9_Cprt_xrefs_docs} // shift sym: Rsubrule
+ ,{575,(State*)&S10_Cprt_xrefs_docs} // shift sym: Rsubrule_def
+ }// end of shift table
+};
+struct S8rtd_Cprt_xrefs_docs{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S8rtd_Cprt_xrefs_docs S8rt_Cprt_xrefs_docs = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cprt_xrefs_docs,Cprt_xrefs_docs::rhs1_Rrule_}
+ }// end of reduce table
+};
+yacco2::State S8_Cprt_xrefs_docs = //State's vectored into symbol: "Rsubrules"
+{8
+,0,0,0,0,(Shift_tbl*)&S8st_Cprt_xrefs_docs,(Reduce_tbl*)&S8rt_Cprt_xrefs_docs,0,0,0};
+struct S9rtd_Cprt_xrefs_docs{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Cprt_xrefs_docs S9rt_Cprt_xrefs_docs = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cprt_xrefs_docs,Cprt_xrefs_docs::rhs2_Rsubrules_}
+ }// end of reduce table
+};
+yacco2::State S9_Cprt_xrefs_docs = //State's vectored into symbol: "Rsubrule"
+{9
+,0,0,0,0,0,(Reduce_tbl*)&S9rt_Cprt_xrefs_docs,0,0,0};
+struct S10std_Cprt_xrefs_docs{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S10std_Cprt_xrefs_docs S10st_Cprt_xrefs_docs = {
+ 5
+ ,
+ {// start of table
+ {345,(State*)&S11_Cprt_xrefs_docs} // shift sym: refered_T
+ ,{347,(State*)&S17_Cprt_xrefs_docs} // shift sym: refered_rule
+ ,{369,(State*)&S18_Cprt_xrefs_docs} // shift sym: T_eosubrule
+ ,{576,(State*)&S19_Cprt_xrefs_docs} // shift sym: Relements
+ ,{577,(State*)&S21_Cprt_xrefs_docs} // shift sym: Relement
+ }// end of shift table
+};
+yacco2::State S10_Cprt_xrefs_docs = //State's vectored into symbol: "Rsubrule_def"
+{10
+,0,0,0,0,(Shift_tbl*)&S10st_Cprt_xrefs_docs,0,0,0,0};
+struct S11std_Cprt_xrefs_docs{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S11std_Cprt_xrefs_docs S11st_Cprt_xrefs_docs = {
+ 2
+ ,
+ {// start of table
+ {5,(State*)&S12_Cprt_xrefs_docs} // shift sym: LR1_invisible_shift_operator
+ ,{345,(State*)&S13_Cprt_xrefs_docs} // shift sym: refered_T
+ }// end of shift table
+};
+yacco2::Shift_entry S11ise_Cprt_xrefs_docs = {5,(State*)&S12_Cprt_xrefs_docs};
+yacco2::State S11_Cprt_xrefs_docs = //State's vectored into symbol: "refered-T"
+{11
+,0,0,(Shift_entry*)&S11ise_Cprt_xrefs_docs
+,0,(Shift_tbl*)&S11st_Cprt_xrefs_docs,0,0,0,0};
+struct S12rtd_Cprt_xrefs_docs{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S12rtd_Cprt_xrefs_docs S12rt_Cprt_xrefs_docs = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cprt_xrefs_docs,Cprt_xrefs_docs::rhs1_Relement_}
+ }// end of reduce table
+};
+yacco2::State S12_Cprt_xrefs_docs = //State's vectored into symbol: "|.|"
+{12
+,0,0,0,0,0,(Reduce_tbl*)&S12rt_Cprt_xrefs_docs,0,0,0};
+struct S13std_Cprt_xrefs_docs{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S13std_Cprt_xrefs_docs S13st_Cprt_xrefs_docs = {
+ 3
+ ,
+ {// start of table
+ {5,(State*)&S14_Cprt_xrefs_docs} // shift sym: LR1_invisible_shift_operator
+ ,{370,(State*)&S15_Cprt_xrefs_docs} // shift sym: T_called_thread_eosubrule
+ ,{371,(State*)&S16_Cprt_xrefs_docs} // shift sym: T_null_call_thread_eosubrule
+ }// end of shift table
+};
+yacco2::Shift_entry S13ise_Cprt_xrefs_docs = {5,(State*)&S14_Cprt_xrefs_docs};
+yacco2::State S13_Cprt_xrefs_docs = //State's vectored into symbol: "refered-T"
+{13
+,0,0,(Shift_entry*)&S13ise_Cprt_xrefs_docs
+,0,(Shift_tbl*)&S13st_Cprt_xrefs_docs,0,0,0,0};
+struct S14rtd_Cprt_xrefs_docs{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S14rtd_Cprt_xrefs_docs S14rt_Cprt_xrefs_docs = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cprt_xrefs_docs,Cprt_xrefs_docs::rhs6_Relement_}
+ }// end of reduce table
+};
+yacco2::State S14_Cprt_xrefs_docs = //State's vectored into symbol: "|.|"
+{14
+,0,0,0,0,0,(Reduce_tbl*)&S14rt_Cprt_xrefs_docs,0,0,0};
+struct S15rtd_Cprt_xrefs_docs{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S15rtd_Cprt_xrefs_docs S15rt_Cprt_xrefs_docs = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cprt_xrefs_docs,Cprt_xrefs_docs::rhs4_Relement_}
+ }// end of reduce table
+};
+yacco2::State S15_Cprt_xrefs_docs = //State's vectored into symbol: "called thread eosubrule"
+{15
+,0,0,0,0,0,(Reduce_tbl*)&S15rt_Cprt_xrefs_docs,0,0,0};
+struct S16rtd_Cprt_xrefs_docs{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S16rtd_Cprt_xrefs_docs S16rt_Cprt_xrefs_docs = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cprt_xrefs_docs,Cprt_xrefs_docs::rhs5_Relement_}
+ }// end of reduce table
+};
+yacco2::State S16_Cprt_xrefs_docs = //State's vectored into symbol: "null call thread eosubrule"
+{16
+,0,0,0,0,0,(Reduce_tbl*)&S16rt_Cprt_xrefs_docs,0,0,0};
+struct S17rtd_Cprt_xrefs_docs{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S17rtd_Cprt_xrefs_docs S17rt_Cprt_xrefs_docs = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cprt_xrefs_docs,Cprt_xrefs_docs::rhs2_Relement_}
+ }// end of reduce table
+};
+yacco2::State S17_Cprt_xrefs_docs = //State's vectored into symbol: "refered-rule"
+{17
+,0,0,0,0,0,(Reduce_tbl*)&S17rt_Cprt_xrefs_docs,0,0,0};
+struct S18rtd_Cprt_xrefs_docs{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S18rtd_Cprt_xrefs_docs S18rt_Cprt_xrefs_docs = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cprt_xrefs_docs,Cprt_xrefs_docs::rhs3_Relement_}
+ }// end of reduce table
+};
+yacco2::State S18_Cprt_xrefs_docs = //State's vectored into symbol: "eosubrule"
+{18
+,0,0,0,0,0,(Reduce_tbl*)&S18rt_Cprt_xrefs_docs,0,0,0};
+struct S19std_Cprt_xrefs_docs{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S19std_Cprt_xrefs_docs S19st_Cprt_xrefs_docs = {
+ 4
+ ,
+ {// start of table
+ {345,(State*)&S11_Cprt_xrefs_docs} // shift sym: refered_T
+ ,{347,(State*)&S17_Cprt_xrefs_docs} // shift sym: refered_rule
+ ,{369,(State*)&S18_Cprt_xrefs_docs} // shift sym: T_eosubrule
+ ,{577,(State*)&S20_Cprt_xrefs_docs} // shift sym: Relement
+ }// end of shift table
+};
+struct S19rtd_Cprt_xrefs_docs{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S19rtd_Cprt_xrefs_docs S19rt_Cprt_xrefs_docs = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cprt_xrefs_docs,Cprt_xrefs_docs::rhs1_Rsubrule_}
+ }// end of reduce table
+};
+yacco2::State S19_Cprt_xrefs_docs = //State's vectored into symbol: "Relements"
+{19
+,0,0,0,0,(Shift_tbl*)&S19st_Cprt_xrefs_docs,(Reduce_tbl*)&S19rt_Cprt_xrefs_docs,0,0,0};
+struct S20rtd_Cprt_xrefs_docs{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S20rtd_Cprt_xrefs_docs S20rt_Cprt_xrefs_docs = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cprt_xrefs_docs,Cprt_xrefs_docs::rhs2_Relements_}
+ }// end of reduce table
+};
+yacco2::State S20_Cprt_xrefs_docs = //State's vectored into symbol: "Relement"
+{20
+,0,0,0,0,0,(Reduce_tbl*)&S20rt_Cprt_xrefs_docs,0,0,0};
+struct S21rtd_Cprt_xrefs_docs{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S21rtd_Cprt_xrefs_docs S21rt_Cprt_xrefs_docs = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cprt_xrefs_docs,Cprt_xrefs_docs::rhs1_Relements_}
+ }// end of reduce table
+};
+yacco2::State S21_Cprt_xrefs_docs = //State's vectored into symbol: "Relement"
+{21
+,0,0,0,0,0,(Reduce_tbl*)&S21rt_Cprt_xrefs_docs,0,0,0};
+struct S22rtd_Cprt_xrefs_docs{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S22rtd_Cprt_xrefs_docs S22rt_Cprt_xrefs_docs = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cprt_xrefs_docs,Cprt_xrefs_docs::rhs1_Rsubrules_}
+ }// end of reduce table
+};
+yacco2::State S22_Cprt_xrefs_docs = //State's vectored into symbol: "Rsubrule"
+{22
+,0,0,0,0,0,(Reduce_tbl*)&S22rt_Cprt_xrefs_docs,0,0,0};
+struct S23rtd_Cprt_xrefs_docs{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S23rtd_Cprt_xrefs_docs S23rt_Cprt_xrefs_docs = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cprt_xrefs_docs,Cprt_xrefs_docs::rhs1_Rrules_}
+ }// end of reduce table
+};
+yacco2::State S23_Cprt_xrefs_docs = //State's vectored into symbol: "Rrule"
+{23
+,0,0,0,0,0,(Reduce_tbl*)&S23rt_Cprt_xrefs_docs,0,0,0};
diff --git a/web/yacco2/compiler/grammars/rc_phrase.cpp b/web/yacco2/compiler/grammars/rc_phrase.cpp
new file mode 100644
index 0000000000..c880102c9c
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rc_phrase.cpp
@@ -0,0 +1,109 @@
+/*
+ File: rc_phrase.cpp
+ Date and Time: Fri Jan 30 18:55:21 2015
+*/
+#include "rc_phrase.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_rc_phrase;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 2;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+}
+ Crc_phrase::
+ Crc_phrase()
+ :yacco2::CAbs_fsm
+ ("rc_phrase.lex"
+ ,"1.0"
+ ,"24 May 2004"
+ ,false
+ ,"Dispatcher to parse raw character vocabulary."
+ ,"Fri Jan 30 18:55:21 2015 "
+ ,S1_Crc_phrase){
+
+ cweb_marker__ = 0;
+
+ }
+
+Crc_phrase::~Crc_phrase(){
+
+ for(int x = 0;x < 2;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Crc_phrase::failed(){
+ return false;
+ }
+ void Crc_phrase::op(){
+ if(CWEB_MARKER != 0){
+ cweb_marker__ = CWEB_MARKER;
+ CWEB_MARKER=0;
+ }
+
+}
+int Crc_phrase::rhs_to_rules_mapping_[5] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,1 // subrule 4 for rule 2
+};
+Rrc_phrase::Rrc_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrc_phrase",0,Crc_phrase::R_Rrc_phrase_,P,false,false){
+}
+
+Rphrase::Rphrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rphrase",0,Crc_phrase::R_Rphrase_,P,false,false){
+}
+
+void Rphrase::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_rc_phrase* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rphrase::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+
+}
+
+void Rphrase::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_open_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+
+}
+
diff --git a/web/yacco2/compiler/grammars/rc_phrase.fsc b/web/yacco2/compiler/grammars/rc_phrase.fsc
new file mode 100644
index 0000000000..df168223f1
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rc_phrase.fsc
@@ -0,0 +1,22 @@
+/*
+ File: rc_phrase.fsc
+ Date and Time: Fri Jan 30 18:55:21 2015
+*/
+transitive y
+grammar-name "rc_phrase"
+name-space "NS_rc_phrase"
+thread-name "Crc_phrase"
+monolithic y
+file-name "rc_phrase.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ LR1_questionable_shift_operator
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 1
+ NS_rc_phrase_th::TH_rc_phrase_th
+end-list-of-transitive-threads
+list-of-used-threads 1
+ NS_rc_phrase_th::TH_rc_phrase_th
+end-list-of-used-threads
+fsm-comments
+"Dispatcher to parse raw character vocabulary."
diff --git a/web/yacco2/compiler/grammars/rc_phrase.h b/web/yacco2/compiler/grammars/rc_phrase.h
new file mode 100644
index 0000000000..5feb0552c5
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rc_phrase.h
@@ -0,0 +1,70 @@
+/*
+ File: rc_phrase.h
+ Date and Time: Fri Jan 30 18:55:21 2015
+*/
+#ifndef __rc_phrase_h__
+#define __rc_phrase_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+ using namespace NS_yacco2_terminals;
+ #include "rc_phrase_th.h"
+ #include "o2_externs.h"
+
+// monolithic grammar: no thread
+extern yacco2::State S1_Crc_phrase;
+namespace NS_rc_phrase {
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[2];
+};
+class Crc_phrase: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rrc_phrase_ = 569//start_of_rule_list + 0
+ ,rhs1_Rrc_phrase_ = 1
+ ,R_Rphrase_ = 570//start_of_rule_list + 2
+ ,rhs1_Rphrase_ = 2
+ ,rhs2_Rphrase_ = 3
+ ,rhs3_Rphrase_ = 4
+ };
+ //no of la sets = 1
+ //no of states = 6
+ Crc_phrase();
+ ~Crc_phrase();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[5];
+
+ public: yacco2::AST* cweb_marker__;
+
+ };
+struct Rrc_phrase;
+struct Rphrase;
+struct Rrc_phrase:public yacco2::CAbs_lr1_sym {
+ Rrc_phrase(yacco2::Parser* P);
+ public:
+};
+
+struct Rphrase:public yacco2::CAbs_lr1_sym {
+ Rphrase(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/rc_phrase.lex b/web/yacco2/compiler/grammars/rc_phrase.lex
new file mode 100644
index 0000000000..b5816aec4a
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rc_phrase.lex
@@ -0,0 +1,77 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: rc_phrase.lex
+Dates: 24 May 2004
+Purpose: raw characters alphabet
+Grammar being parsed:
+ raw-characters
+ (file-name yacco2_rc
+ ,name-space NS_yacco2_rc)
+ {
+ 1+ terminal definitions where def is
+ terminal-key [AD AB attributes](sym-class C++ name)
+ or
+ terminal-key [AD AB attributes]
+ (sym-class C++ name {C++ directives block} )
+ }
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |rc_phrase| grammar.\fbreak
+Dispatcher to parse the raw character terminal symbols.
+@/
+fsm
+(fsm-id "rc_phrase.lex"
+,fsm-filename rc_phrase
+,fsm-namespace NS_rc_phrase
+,fsm-class Crc_phrase{
+ user-prefix-declaration
+ using namespace NS_yacco2_terminals;
+ #include "rc_phrase_th.h"
+ #include "o2_externs.h"
+ ***
+ user-declaration
+ public: yacco2::AST* cweb_marker__;
+ ***
+ op
+ if(CWEB_MARKER != 0){
+ cweb_marker__ = CWEB_MARKER;
+ CWEB_MARKER=0;
+ }
+ ***
+ constructor
+ cweb_marker__ = 0;
+ ***
+}
+,fsm-version "1.0",fsm-date "24 May 2004",fsm-debug "false"
+,fsm-comments "Dispatcher to parse raw character vocabulary.")
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+rules{
+Rrc_phrase (){
+ -> Rphrase
+}
+
+Rphrase (){
+ -> ||| "rc-phrase"
+ NS_rc_phrase_th::TH_rc_phrase_th {
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| |?| NULL { // thread has stop parsing with RSVP error
+ op
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ ***
+ }
+ -> |?| { // error due to no first set to start thread {
+ op
+ CAbs_lr1_sym* sym = new Err_no_open_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/rc_phrase_th.cpp b/web/yacco2/compiler/grammars/rc_phrase_th.cpp
new file mode 100644
index 0000000000..607f98a097
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rc_phrase_th.cpp
@@ -0,0 +1,580 @@
+/*
+ File: rc_phrase_th.cpp
+ Date and Time: Fri Jan 30 18:55:21 2015
+*/
+#include "rc_phrase_th.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_rc_phrase_th;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 17;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[4] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[5] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[6] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[7] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[8] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[9] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[10] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[11] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[12] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[13] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[14] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[15] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[16] = new Per_rule_s_reuse_table();
+}
+ Crc_phrase_th::
+ Crc_phrase_th()
+ :yacco2::CAbs_fsm
+ ("rc_phrase_th.lex"
+ ,"1.0"
+ ,"22 mar 2004"
+ ,false
+ ,"Raw character vocabulary parser."
+ ,"Fri Jan 30 18:55:21 2015 "
+ ,S1_Crc_phrase_th){
+
+ rc_phrase_ = 0;
+
+ }
+
+Crc_phrase_th::~Crc_phrase_th(){
+
+ for(int x = 0;x < 17;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Crc_phrase_th::failed(){
+ return false;
+ }
+ void Crc_phrase_th::op(){
+ if(rc_phrase_ != 0){
+ delete rc_phrase_;
+ rc_phrase_ = 0;
+ }
+ rc_phrase_ = new T_rc_phrase;
+ rc_phrase_->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ AST* t = new AST(*rc_phrase_);
+ rc_phrase_->phrase_tree(t);
+
+}
+int Crc_phrase_th::rhs_to_rules_mapping_[40] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,2 // subrule 4 for rule 3
+ ,2 // subrule 5 for rule 3
+ ,3 // subrule 6 for rule 4
+ ,4 // subrule 7 for rule 5
+ ,5 // subrule 8 for rule 6
+ ,5 // subrule 9 for rule 6
+ ,5 // subrule 10 for rule 6
+ ,6 // subrule 11 for rule 7
+ ,6 // subrule 12 for rule 7
+ ,7 // subrule 13 for rule 8
+ ,7 // subrule 14 for rule 8
+ ,8 // subrule 15 for rule 9
+ ,8 // subrule 16 for rule 9
+ ,8 // subrule 17 for rule 9
+ ,9 // subrule 18 for rule 10
+ ,9 // subrule 19 for rule 10
+ ,10 // subrule 20 for rule 11
+ ,11 // subrule 21 for rule 12
+ ,11 // subrule 22 for rule 12
+ ,12 // subrule 23 for rule 13
+ ,12 // subrule 24 for rule 13
+ ,12 // subrule 25 for rule 13
+ ,12 // subrule 26 for rule 13
+ ,12 // subrule 27 for rule 13
+ ,12 // subrule 28 for rule 13
+ ,13 // subrule 29 for rule 14
+ ,13 // subrule 30 for rule 14
+ ,13 // subrule 31 for rule 14
+ ,13 // subrule 32 for rule 14
+ ,13 // subrule 33 for rule 14
+ ,14 // subrule 34 for rule 15
+ ,14 // subrule 35 for rule 15
+ ,15 // subrule 36 for rule 16
+ ,15 // subrule 37 for rule 16
+ ,16 // subrule 38 for rule 17
+ ,16 // subrule 39 for rule 17
+};
+Rrc_phrase::Rrc_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrc_phrase",0,Crc_phrase_th::R_Rrc_phrase_,P,false,false){
+}
+
+void Rrc_phrase::sr1(){
+
+ Crc_phrase_th* fsm = (Crc_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ RSVP(fsm->rc_phrase_);
+ fsm->rc_phrase_ = 0;
+
+}
+
+Ropen_par::Ropen_par(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Ropen_par",0,Crc_phrase_th::R_Ropen_par_,P,false,false){
+}
+
+void Ropen_par::sr1(){
+
+ CAbs_lr1_sym* sym = new Err_no_open_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rclose_par::Rclose_par(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rclose_par",0,Crc_phrase_th::R_Rclose_par_,P,false,false){
+}
+
+void Rclose_par::sr1(){
+
+ CAbs_lr1_sym* sym = new Err_no_close_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rparameters::Rparameters(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rparameters",0,Crc_phrase_th::R_Rparameters_,P,false,false){
+}
+
+Rfilename_phrase::Rfilename_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfilename_phrase",0,Crc_phrase_th::R_Rfilename_phrase_,P,false,false){
+}
+
+Rfilename::Rfilename(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfilename",0,Crc_phrase_th::R_Rfilename_,P,false,false){
+}
+
+void Rfilename::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_filename_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rfilename::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_filename_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rfilename_id::Rfilename_id(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfilename_id",0,Crc_phrase_th::R_Rfilename_id_,P,false,false){
+}
+
+void Rfilename_id::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_identifier* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Crc_phrase_th* fsm = (Crc_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->rc_phrase_->filename_id(sf->p2__);
+
+}
+
+void Rfilename_id::sr2(){
+
+ CAbs_lr1_sym* sym = new Err_no_filename_id_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rnamespace_phrase::Rnamespace_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rnamespace_phrase",0,Crc_phrase_th::R_Rnamespace_phrase_,P,false,false){
+}
+
+void Rnamespace_phrase::sr2(){
+
+ CAbs_lr1_sym* sym = new Err_no_comma_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rnamespace::Rnamespace(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rnamespace",0,Crc_phrase_th::R_Rnamespace_,P,false,false){
+}
+
+void Rnamespace::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_namespace_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rnamespace::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_namespace_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rnamespace_id::Rnamespace_id(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rnamespace_id",0,Crc_phrase_th::R_Rnamespace_id_,P,false,false){
+}
+
+void Rnamespace_id::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_identifier* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Crc_phrase_th* fsm = (Crc_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->rc_phrase_->namespace_id(sf->p2__);
+
+}
+
+void Rnamespace_id::sr2(){
+
+ CAbs_lr1_sym* sym = new Err_no_namespace_id_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rsym_defs_phrase::Rsym_defs_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsym_defs_phrase",0,Crc_phrase_th::R_Rsym_defs_phrase_,P,false,false){
+}
+
+Rsym_defs::Rsym_defs(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsym_defs",0,Crc_phrase_th::R_Rsym_defs_,P,false,false){
+}
+
+Rsym_def::Rsym_def(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsym_def",0,Crc_phrase_th::R_Rsym_def_,P,false,false){
+}
+
+void Rsym_def::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_terminal_def* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Crc_phrase_th* fsm = (Crc_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ sf->p2__->classification(T_terminal_def::rc);
+ CAbs_lr1_sym* r =
+ fsm->rc_phrase_->add_t_to_alphabet(sf->p2__,rule_info__.parser__);
+ if(r == 0) return;
+ RSVP(r);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rsym_def::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rsym_def::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_lrk_sufx* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_improper_directive;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rsym_def::sr4(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_terminals_refs* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_improper_directive;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rsym_def::sr5(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_terminals_sufx* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_improper_directive;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rsym_def::sr6(){
+
+ CAbs_lr1_sym* sym = new Err_no_sym_defs_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rsym_def1::Rsym_def1(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsym_def1",0,Crc_phrase_th::R_Rsym_def1_,P,false,false){
+}
+
+void Rsym_def1::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_terminal_def* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Crc_phrase_th* fsm = (Crc_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ sf->p2__->classification(T_terminal_def::rc);
+ CAbs_lr1_sym* r =
+ fsm->rc_phrase_->add_t_to_alphabet(sf->p2__,rule_info__.parser__);
+ if(r == 0) return;
+ RSVP(r);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rsym_def1::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rsym_def1::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_lrk_sufx* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_improper_directive;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rsym_def1::sr4(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_terminals_refs* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_improper_directive;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rsym_def1::sr5(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_terminals_sufx* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_improper_directive;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Ropen_brace::Ropen_brace(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Ropen_brace",0,Crc_phrase_th::R_Ropen_brace_,P,false,false){
+}
+
+void Ropen_brace::sr1(){
+
+ CAbs_lr1_sym* sym = new Err_no_open_brace;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rclose_brace::Rclose_brace(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rclose_brace",0,Crc_phrase_th::R_Rclose_brace_,P,false,false){
+}
+
+void Rclose_brace::sr1(){
+
+ CAbs_lr1_sym* sym = new Err_no_close_brace;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rlint::Rlint(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlint",0,Crc_phrase_th::R_Rlint_,P,false,false){
+}
+
diff --git a/web/yacco2/compiler/grammars/rc_phrase_th.fsc b/web/yacco2/compiler/grammars/rc_phrase_th.fsc
new file mode 100644
index 0000000000..0d0e92cc1e
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rc_phrase_th.fsc
@@ -0,0 +1,25 @@
+/*
+ File: rc_phrase_th.fsc
+ Date and Time: Fri Jan 30 18:55:21 2015
+*/
+transitive y
+grammar-name "rc_phrase_th"
+name-space "NS_rc_phrase_th"
+thread-name "TH_rc_phrase_th"
+monolithic n
+file-name "rc_phrase_th.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 2
+ LR1_questionable_shift_operator
+ raw_open_bracket
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 1
+ NS_lint_balls::TH_lint_balls
+end-list-of-transitive-threads
+list-of-used-threads 3
+ NS_identifier::TH_identifier
+ NS_lint_balls::TH_lint_balls
+ NS_term_def_ph::TH_term_def_ph
+end-list-of-used-threads
+fsm-comments
+"Raw character vocabulary parser."
diff --git a/web/yacco2/compiler/grammars/rc_phrase_th.h b/web/yacco2/compiler/grammars/rc_phrase_th.h
new file mode 100644
index 0000000000..79cd0f6215
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rc_phrase_th.h
@@ -0,0 +1,239 @@
+/*
+ File: rc_phrase_th.h
+ Date and Time: Fri Jan 30 18:55:21 2015
+*/
+#ifndef __rc_phrase_th_h__
+#define __rc_phrase_th_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "lint_balls.h"
+#include "identifier.h"
+#include "term_def_ph.h"
+#include "c_string.h"
+
+extern yacco2::Thread_entry ITH_rc_phrase_th;
+
+extern yacco2::State S1_Crc_phrase_th;
+namespace NS_rc_phrase_th {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_rc_phrase_th(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_rc_phrase_th(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[17];
+};
+class Crc_phrase_th: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rrc_phrase_ = 569//start_of_rule_list + 0
+ ,rhs1_Rrc_phrase_ = 1
+ ,R_Ropen_par_ = 570//start_of_rule_list + 2
+ ,rhs1_Ropen_par_ = 2
+ ,rhs2_Ropen_par_ = 3
+ ,R_Rclose_par_ = 571//start_of_rule_list + 4
+ ,rhs1_Rclose_par_ = 4
+ ,rhs2_Rclose_par_ = 5
+ ,R_Rparameters_ = 572//start_of_rule_list + 6
+ ,rhs1_Rparameters_ = 6
+ ,R_Rfilename_phrase_ = 573//start_of_rule_list + 8
+ ,rhs1_Rfilename_phrase_ = 7
+ ,R_Rfilename_ = 574//start_of_rule_list + 10
+ ,rhs1_Rfilename_ = 8
+ ,rhs2_Rfilename_ = 9
+ ,rhs3_Rfilename_ = 10
+ ,R_Rfilename_id_ = 575//start_of_rule_list + 12
+ ,rhs1_Rfilename_id_ = 11
+ ,rhs2_Rfilename_id_ = 12
+ ,R_Rnamespace_phrase_ = 576//start_of_rule_list + 14
+ ,rhs1_Rnamespace_phrase_ = 13
+ ,rhs2_Rnamespace_phrase_ = 14
+ ,R_Rnamespace_ = 577//start_of_rule_list + 16
+ ,rhs1_Rnamespace_ = 15
+ ,rhs2_Rnamespace_ = 16
+ ,rhs3_Rnamespace_ = 17
+ ,R_Rnamespace_id_ = 578//start_of_rule_list + 18
+ ,rhs1_Rnamespace_id_ = 18
+ ,rhs2_Rnamespace_id_ = 19
+ ,R_Rsym_defs_phrase_ = 579//start_of_rule_list + 20
+ ,rhs1_Rsym_defs_phrase_ = 20
+ ,R_Rsym_defs_ = 580//start_of_rule_list + 22
+ ,rhs1_Rsym_defs_ = 21
+ ,rhs2_Rsym_defs_ = 22
+ ,R_Rsym_def_ = 581//start_of_rule_list + 24
+ ,rhs1_Rsym_def_ = 23
+ ,rhs2_Rsym_def_ = 24
+ ,rhs3_Rsym_def_ = 25
+ ,rhs4_Rsym_def_ = 26
+ ,rhs5_Rsym_def_ = 27
+ ,rhs6_Rsym_def_ = 28
+ ,R_Rsym_def1_ = 582//start_of_rule_list + 26
+ ,rhs1_Rsym_def1_ = 29
+ ,rhs2_Rsym_def1_ = 30
+ ,rhs3_Rsym_def1_ = 31
+ ,rhs4_Rsym_def1_ = 32
+ ,rhs5_Rsym_def1_ = 33
+ ,R_Ropen_brace_ = 583//start_of_rule_list + 28
+ ,rhs1_Ropen_brace_ = 34
+ ,rhs2_Ropen_brace_ = 35
+ ,R_Rclose_brace_ = 584//start_of_rule_list + 30
+ ,rhs1_Rclose_brace_ = 36
+ ,rhs2_Rclose_brace_ = 37
+ ,R_Rlint_ = 585//start_of_rule_list + 32
+ ,rhs1_Rlint_ = 38
+ ,rhs2_Rlint_ = 39
+ };
+ //no of la sets = 9
+ //no of states = 67
+ Crc_phrase_th();
+ ~Crc_phrase_th();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[40];
+
+ public:
+ T_rc_phrase* rc_phrase_;
+
+ };
+struct Rrc_phrase;
+struct Ropen_par;
+struct Rclose_par;
+struct Rparameters;
+struct Rfilename_phrase;
+struct Rfilename;
+struct Rfilename_id;
+struct Rnamespace_phrase;
+struct Rnamespace;
+struct Rnamespace_id;
+struct Rsym_defs_phrase;
+struct Rsym_defs;
+struct Rsym_def;
+struct Rsym_def1;
+struct Ropen_brace;
+struct Rclose_brace;
+struct Rlint;
+struct Rrc_phrase:public yacco2::CAbs_lr1_sym {
+ Rrc_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Ropen_par:public yacco2::CAbs_lr1_sym {
+ Ropen_par(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rclose_par:public yacco2::CAbs_lr1_sym {
+ Rclose_par(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rparameters:public yacco2::CAbs_lr1_sym {
+ Rparameters(yacco2::Parser* P);
+ public:
+};
+
+struct Rfilename_phrase:public yacco2::CAbs_lr1_sym {
+ Rfilename_phrase(yacco2::Parser* P);
+ public:
+};
+
+struct Rfilename:public yacco2::CAbs_lr1_sym {
+ Rfilename(yacco2::Parser* P);
+ public:
+ void sr2();
+ void sr3();
+};
+
+struct Rfilename_id:public yacco2::CAbs_lr1_sym {
+ Rfilename_id(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rnamespace_phrase:public yacco2::CAbs_lr1_sym {
+ Rnamespace_phrase(yacco2::Parser* P);
+ public:
+ void sr2();
+};
+
+struct Rnamespace:public yacco2::CAbs_lr1_sym {
+ Rnamespace(yacco2::Parser* P);
+ public:
+ void sr2();
+ void sr3();
+};
+
+struct Rnamespace_id:public yacco2::CAbs_lr1_sym {
+ Rnamespace_id(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rsym_defs_phrase:public yacco2::CAbs_lr1_sym {
+ Rsym_defs_phrase(yacco2::Parser* P);
+ public:
+};
+
+struct Rsym_defs:public yacco2::CAbs_lr1_sym {
+ Rsym_defs(yacco2::Parser* P);
+ public:
+};
+
+struct Rsym_def:public yacco2::CAbs_lr1_sym {
+ Rsym_def(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+ void sr5();
+ void sr6();
+};
+
+struct Rsym_def1:public yacco2::CAbs_lr1_sym {
+ Rsym_def1(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+ void sr5();
+};
+
+struct Ropen_brace:public yacco2::CAbs_lr1_sym {
+ Ropen_brace(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rclose_brace:public yacco2::CAbs_lr1_sym {
+ Rclose_brace(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rlint:public yacco2::CAbs_lr1_sym {
+ Rlint(yacco2::Parser* P);
+ public:
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/rc_phrase_th.lex b/web/yacco2/compiler/grammars/rc_phrase_th.lex
new file mode 100644
index 0000000000..6a9e0ab03d
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rc_phrase_th.lex
@@ -0,0 +1,349 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: rc_phrase_th.lex
+Dates: 23 Mar 2004
+Purpose: parse raw-char-symbols phrase
+ Rc_phrase keeps its own local symbol table: map and list.
+ The term_def_ph adds symbol to Yacco2's
+ global symbol table.
+Output: rc_phrase
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |rc_phrase_th| Thread.\fbreak
+Parse raw-char-symbols phrase.
+The |Rc_phrase| terminal keeps its own local symbol table:
+map and list.
+It calls the common backend |term_def_ph| thread
+extractor of symbol definition.
+ \fbreak
+Example of a raw chaacter vocabulary to parse:\fbreak
+\listing{"/usr/local/yacco2/diagrams+etc/rcsym.txt"}
+
+@/
+fsm
+(fsm-id "rc_phrase_th.lex"
+,fsm-filename rc_phrase_th
+,fsm-namespace NS_rc_phrase_th
+,fsm-class Crc_phrase_th{
+ user-prefix-declaration
+#include "lint_balls.h"
+#include "identifier.h"
+#include "term_def_ph.h"
+#include "c_string.h"
+ ***
+ user-declaration
+ public:
+ T_rc_phrase* rc_phrase_;
+ ***
+ constructor
+ rc_phrase_ = 0;
+ ***
+ op
+ if(rc_phrase_ != 0){
+ delete rc_phrase_;
+ rc_phrase_ = 0;
+ }
+ rc_phrase_ = new T_rc_phrase;
+ rc_phrase_->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ AST* t = new AST(*rc_phrase_);
+ rc_phrase_->phrase_tree(t);
+ ***
+}
+,fsm-version "1.0",fsm-date "22 mar 2004",fsm-debug "false"
+,fsm-comments "Raw character vocabulary parser.")
+parallel-parser
+(
+ parallel-thread-function
+ TH_rc_phrase_th
+ ***
+ parallel-la-boundary
+ eolr
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rrc_phrase (){
+ -> Rlint
+ Ropen_par Rlint
+ Rparameters Rlint
+ Rclose_par
+ Rlint
+ Rsym_defs_phrase
+ Rlint {
+ op
+ Crc_phrase_th* fsm = (Crc_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ RSVP(fsm->rc_phrase_);
+ fsm->rc_phrase_ = 0;
+ ***
+ }
+}
+
+Ropen_par (){
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_open_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> "("
+}
+
+Rclose_par (){
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_close_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ")"
+}
+//
+Rparameters (){
+ -> Rfilename_phrase Rlint
+ Rnamespace_phrase
+}
+
+Rfilename_phrase (){
+ -> Rfilename Rlint Rfilename_id
+}
+
+Rfilename (){
+ -> ||| "#file-name" NS_identifier::TH_identifier
+ -> ||| |?| NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_filename_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_filename_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rfilename_id (){
+ -> ||| identifier NS_identifier::TH_identifier {
+ op
+ Crc_phrase_th* fsm = (Crc_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->rc_phrase_->filename_id(sf->p2__);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_filename_id_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rnamespace_phrase (){
+ -> "," Rlint Rnamespace Rlint Rnamespace_id
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_comma_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rnamespace (){
+ -> ||| "#name-space" NS_identifier::TH_identifier
+ -> ||| |?| NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_namespace_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_namespace_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rnamespace_id (){
+ -> ||| identifier NS_identifier::TH_identifier {
+ op
+ Crc_phrase_th* fsm = (Crc_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->rc_phrase_->namespace_id(sf->p2__);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_namespace_id_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rsym_defs_phrase (){
+ -> Ropen_brace Rlint
+ Rsym_defs
+ Rclose_brace
+}
+
+Rsym_defs (){
+ -> Rsym_def Rlint
+ -> Rsym_defs Rsym_def1 Rlint
+}
+
+Rsym_def (){
+ -> ||| "terminal-def" NS_term_def_ph::TH_term_def_ph {
+ op
+ Crc_phrase_th* fsm = (Crc_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ sf->p2__->classification(T_terminal_def::rc);
+ CAbs_lr1_sym* r =
+ fsm->rc_phrase_->add_t_to_alphabet(sf->p2__,rule_info__.parser__);
+ if(r == 0) return;
+ RSVP(r);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| "#lrk-sufx" NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_improper_directive;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| "#terminals-refs" NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_improper_directive;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| "#terminals-sufx" NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_improper_directive;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_sym_defs_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rsym_def1 (){
+ -> ||| "terminal-def" NS_term_def_ph::TH_term_def_ph {
+ op
+ Crc_phrase_th* fsm = (Crc_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ sf->p2__->classification(T_terminal_def::rc);
+ CAbs_lr1_sym* r =
+ fsm->rc_phrase_->add_t_to_alphabet(sf->p2__,rule_info__.parser__);
+ if(r == 0) return;
+ RSVP(r);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| |+| NULL {
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| "#lrk-sufx" NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_improper_directive;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| "#terminals-refs" NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_improper_directive;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| "#terminals-sufx" NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_improper_directive;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Ropen_brace (){
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_open_brace;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> "{"
+}
+
+Rclose_brace (){
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_close_brace;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> "}"
+}
+
+Rlint (){
+ -> ||| lint NS_lint_balls::TH_lint_balls
+ ->
+}
+
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/rc_phrase_thsym.cpp b/web/yacco2/compiler/grammars/rc_phrase_thsym.cpp
new file mode 100644
index 0000000000..9499b6185b
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rc_phrase_thsym.cpp
@@ -0,0 +1,619 @@
+/*
+ File: rc_phrase_thsym.cpp
+ Date and Time: Fri Jan 30 18:55:21 2015
+*/
+#include "rc_phrase_th.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_rc_phrase_th;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_rc_phrase_th::TH_rc_phrase_th(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_rc_phrase_th;
+ NS_rc_phrase_th::Crc_phrase_th Crc_phrase_th_;// parallel-parser's parse table
+#define ssPARSE_TABLE Crc_phrase_th_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_rc_phrase_th::PROC_TH_rc_phrase_th(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_rc_phrase_th";
+ static bool one_time(false);
+ static NS_rc_phrase_th::Crc_phrase_th* NS_rc_phrase_th_Crc_phrase_th_(0);// parallel-parser's fsm table
+ static Parser* NS_rc_phrase_th_Crc_phrase_th_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_rc_phrase_th_Crc_phrase_th_ = new NS_rc_phrase_th::Crc_phrase_th();// parallel-parser's fsm table
+ NS_rc_phrase_th_Crc_phrase_th_parser = new Parser(*NS_rc_phrase_th_Crc_phrase_th_,Caller_pp);
+ }
+ proc_parser = NS_rc_phrase_th_Crc_phrase_th_parser;
+#include "wproc_pp_core.h"
+}
+void
+Crc_phrase_th::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rrc_phrase_:{
+ Rrc_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rrc_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrc_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 9;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Ropen_par_:{
+ Ropen_par* sym;
+ if(re->rule_ == 0){
+ sym = new Ropen_par(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ropen_par*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Ropen_par_:{
+ Ropen_par* sym;
+ if(re->rule_ == 0){
+ sym = new Ropen_par(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ropen_par*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rclose_par_:{
+ Rclose_par* sym;
+ if(re->rule_ == 0){
+ sym = new Rclose_par(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclose_par*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rclose_par_:{
+ Rclose_par* sym;
+ if(re->rule_ == 0){
+ sym = new Rclose_par(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclose_par*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rparameters_:{
+ Rparameters* sym;
+ if(re->rule_ == 0){
+ sym = new Rparameters(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rparameters*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ return;}
+ case rhs1_Rfilename_phrase_:{
+ Rfilename_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rfilename_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfilename_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ return;}
+ case rhs1_Rfilename_:{
+ Rfilename* sym;
+ if(re->rule_ == 0){
+ sym = new Rfilename(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfilename*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rfilename_:{
+ Rfilename* sym;
+ if(re->rule_ == 0){
+ sym = new Rfilename(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfilename*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rfilename_:{
+ Rfilename* sym;
+ if(re->rule_ == 0){
+ sym = new Rfilename(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfilename*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rfilename_id_:{
+ Rfilename_id* sym;
+ if(re->rule_ == 0){
+ sym = new Rfilename_id(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfilename_id*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rfilename_id_:{
+ Rfilename_id* sym;
+ if(re->rule_ == 0){
+ sym = new Rfilename_id(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfilename_id*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rnamespace_phrase_:{
+ Rnamespace_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ return;}
+ case rhs2_Rnamespace_phrase_:{
+ Rnamespace_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rnamespace_:{
+ Rnamespace* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rnamespace_:{
+ Rnamespace* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rnamespace_:{
+ Rnamespace* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rnamespace_id_:{
+ Rnamespace_id* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace_id(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace_id*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rnamespace_id_:{
+ Rnamespace_id* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace_id(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace_id*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rsym_defs_phrase_:{
+ Rsym_defs_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_defs_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_defs_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 4;
+
+
+ return;}
+ case rhs1_Rsym_defs_:{
+ Rsym_defs* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_defs(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_defs*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rsym_defs_:{
+ Rsym_defs* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_defs(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_defs*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ return;}
+ case rhs1_Rsym_def_:{
+ Rsym_def* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_def(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_def*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rsym_def_:{
+ Rsym_def* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_def(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_def*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rsym_def_:{
+ Rsym_def* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_def(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_def*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rsym_def_:{
+ Rsym_def* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_def(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_def*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr4();
+ return;}
+ case rhs5_Rsym_def_:{
+ Rsym_def* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_def(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_def*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr5();
+ return;}
+ case rhs6_Rsym_def_:{
+ Rsym_def* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_def(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_def*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr6();
+ return;}
+ case rhs1_Rsym_def1_:{
+ Rsym_def1* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_def1(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_def1*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rsym_def1_:{
+ Rsym_def1* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_def1(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_def1*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rsym_def1_:{
+ Rsym_def1* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_def1(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_def1*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rsym_def1_:{
+ Rsym_def1* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_def1(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_def1*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr4();
+ return;}
+ case rhs5_Rsym_def1_:{
+ Rsym_def1* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_def1(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_def1*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr5();
+ return;}
+ case rhs1_Ropen_brace_:{
+ Ropen_brace* sym;
+ if(re->rule_ == 0){
+ sym = new Ropen_brace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ropen_brace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Ropen_brace_:{
+ Ropen_brace* sym;
+ if(re->rule_ == 0){
+ sym = new Ropen_brace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ropen_brace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rclose_brace_:{
+ Rclose_brace* sym;
+ if(re->rule_ == 0){
+ sym = new Rclose_brace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclose_brace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rclose_brace_:{
+ Rclose_brace* sym;
+ if(re->rule_ == 0){
+ sym = new Rclose_brace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclose_brace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rlint_:{
+ Rlint* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rlint_:{
+ Rlint* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/rc_phrase_thtbl.cpp b/web/yacco2/compiler/grammars/rc_phrase_thtbl.cpp
new file mode 100644
index 0000000000..14603ab12e
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rc_phrase_thtbl.cpp
@@ -0,0 +1,1393 @@
+/*
+ File: rc_phrase_thtbl.cpp
+ Date and Time: Fri Jan 30 18:55:21 2015
+*/
+#include "rc_phrase_th.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_rc_phrase_th;// grammar's ns
+// first set terminals
+// LR1_eolr
+yacco2::UCHAR LA1_Crc_phrase_th[] ={
+1
+,0,4
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+yacco2::UCHAR LA2_Crc_phrase_th[] ={
+1
+,0,17
+};
+// LR1_questionable_shift_operator
+// raw_close_bracket
+yacco2::UCHAR LA3_Crc_phrase_th[] ={
+2
+,0,1
+,6,2
+};
+// LR1_questionable_shift_operator
+// raw_open_brace
+yacco2::UCHAR LA4_Crc_phrase_th[] ={
+2
+,0,1
+,16,8
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+// raw_close_brace
+yacco2::UCHAR LA5_Crc_phrase_th[] ={
+2
+,0,17
+,16,32
+};
+// LR1_questionable_shift_operator
+// raw_comma
+yacco2::UCHAR LA6_Crc_phrase_th[] ={
+2
+,0,1
+,6,16
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+// raw_close_bracket
+yacco2::UCHAR LA7_Crc_phrase_th[] ={
+2
+,0,17
+,6,2
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+// raw_comma
+yacco2::UCHAR LA8_Crc_phrase_th[] ={
+2
+,0,17
+,6,16
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+// raw_open_brace
+yacco2::UCHAR LA9_Crc_phrase_th[] ={
+2
+,0,17
+,16,8
+};
+extern yacco2::State S1_Crc_phrase_th;
+extern yacco2::State S2_Crc_phrase_th;
+struct S2ttd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S2ttd_Crc_phrase_th S2tt_Crc_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_lint_balls
+};
+extern yacco2::State S3_Crc_phrase_th;
+extern yacco2::State S4_Crc_phrase_th;
+extern yacco2::State S5_Crc_phrase_th;
+extern yacco2::State S6_Crc_phrase_th;
+extern yacco2::State S7_Crc_phrase_th;
+extern yacco2::State S8_Crc_phrase_th;
+extern yacco2::State S9_Crc_phrase_th;
+extern yacco2::State S10_Crc_phrase_th;
+extern yacco2::State S11_Crc_phrase_th;
+extern yacco2::State S12_Crc_phrase_th;
+extern yacco2::State S13_Crc_phrase_th;
+extern yacco2::State S14_Crc_phrase_th;
+extern yacco2::State S15_Crc_phrase_th;
+extern yacco2::State S16_Crc_phrase_th;
+extern yacco2::State S17_Crc_phrase_th;
+extern yacco2::State S18_Crc_phrase_th;
+extern yacco2::State S19_Crc_phrase_th;
+struct S19ttd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S19ttd_Crc_phrase_th S19tt_Crc_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_term_def_ph
+};
+extern yacco2::State S20_Crc_phrase_th;
+extern yacco2::State S21_Crc_phrase_th;
+extern yacco2::State S22_Crc_phrase_th;
+extern yacco2::State S23_Crc_phrase_th;
+extern yacco2::State S24_Crc_phrase_th;
+extern yacco2::State S25_Crc_phrase_th;
+extern yacco2::State S26_Crc_phrase_th;
+extern yacco2::State S27_Crc_phrase_th;
+extern yacco2::State S28_Crc_phrase_th;
+extern yacco2::State S29_Crc_phrase_th;
+extern yacco2::State S30_Crc_phrase_th;
+struct S30ttd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S30ttd_Crc_phrase_th S30tt_Crc_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S31_Crc_phrase_th;
+extern yacco2::State S32_Crc_phrase_th;
+extern yacco2::State S33_Crc_phrase_th;
+extern yacco2::State S34_Crc_phrase_th;
+extern yacco2::State S35_Crc_phrase_th;
+extern yacco2::State S36_Crc_phrase_th;
+extern yacco2::State S37_Crc_phrase_th;
+extern yacco2::State S38_Crc_phrase_th;
+extern yacco2::State S39_Crc_phrase_th;
+extern yacco2::State S40_Crc_phrase_th;
+extern yacco2::State S41_Crc_phrase_th;
+struct S41ttd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S41ttd_Crc_phrase_th S41tt_Crc_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S42_Crc_phrase_th;
+extern yacco2::State S43_Crc_phrase_th;
+extern yacco2::State S44_Crc_phrase_th;
+extern yacco2::State S45_Crc_phrase_th;
+extern yacco2::State S46_Crc_phrase_th;
+extern yacco2::State S47_Crc_phrase_th;
+extern yacco2::State S48_Crc_phrase_th;
+struct S48ttd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S48ttd_Crc_phrase_th S48tt_Crc_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S49_Crc_phrase_th;
+extern yacco2::State S50_Crc_phrase_th;
+extern yacco2::State S51_Crc_phrase_th;
+extern yacco2::State S52_Crc_phrase_th;
+extern yacco2::State S53_Crc_phrase_th;
+extern yacco2::State S54_Crc_phrase_th;
+struct S54ttd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S54ttd_Crc_phrase_th S54tt_Crc_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_term_def_ph
+};
+extern yacco2::State S55_Crc_phrase_th;
+extern yacco2::State S56_Crc_phrase_th;
+extern yacco2::State S57_Crc_phrase_th;
+extern yacco2::State S58_Crc_phrase_th;
+extern yacco2::State S59_Crc_phrase_th;
+extern yacco2::State S60_Crc_phrase_th;
+extern yacco2::State S61_Crc_phrase_th;
+extern yacco2::State S62_Crc_phrase_th;
+extern yacco2::State S63_Crc_phrase_th;
+extern yacco2::State S64_Crc_phrase_th;
+extern yacco2::State S65_Crc_phrase_th;
+struct S65ttd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S65ttd_Crc_phrase_th S65tt_Crc_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S66_Crc_phrase_th;
+extern yacco2::State S67_Crc_phrase_th;
+struct S1std_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S1std_Crc_phrase_th S1st_Crc_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S2_Crc_phrase_th} // shift sym: LR1_parallel_operator
+ ,{569,(State*)&S1_Crc_phrase_th} // accept sym: Rrc_phrase
+ ,{585,(State*)&S4_Crc_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S1pse_Crc_phrase_th = {3,(State*)&S2_Crc_phrase_th};
+struct S1rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S1rtd_Crc_phrase_th S1rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crc_phrase_th,Crc_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S1_Crc_phrase_th = //State's vectored into symbol: " No symbol"
+{1
+,(Shift_entry*)&S1pse_Crc_phrase_th,0,0,0,(Shift_tbl*)&S1st_Crc_phrase_th,(Reduce_tbl*)&S1rt_Crc_phrase_th,(State_s_thread_tbl*)&S2tt_Crc_phrase_th,0,0};
+struct S2std_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S2std_Crc_phrase_th S2st_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {375,(State*)&S3_Crc_phrase_th} // shift sym: T_lint
+ }// end of shift table
+};
+yacco2::State S2_Crc_phrase_th = //State's vectored into symbol: "|||"
+{2
+,0,0,0,0,(Shift_tbl*)&S2st_Crc_phrase_th,0,0,0,0};
+struct S3rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Crc_phrase_th S3rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crc_phrase_th,Crc_phrase_th::rhs1_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S3_Crc_phrase_th = //State's vectored into symbol: "lint"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_Crc_phrase_th,0,0,0};
+struct S4std_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S4std_Crc_phrase_th S4st_Crc_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S27_Crc_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{48,(State*)&S28_Crc_phrase_th} // shift sym: raw_open_bracket
+ ,{570,(State*)&S5_Crc_phrase_th} // shift sym: Ropen_par
+ }// end of shift table
+};
+yacco2::Shift_entry S4qse_Crc_phrase_th = {0,(State*)&S27_Crc_phrase_th};
+yacco2::State S4_Crc_phrase_th = //State's vectored into symbol: "Rlint"
+{4
+,0,0,0,0,(Shift_tbl*)&S4st_Crc_phrase_th,0,0,0,(Shift_entry*)&S4qse_Crc_phrase_th
+};
+struct S5std_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S5std_Crc_phrase_th S5st_Crc_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Crc_phrase_th} // shift sym: LR1_parallel_operator
+ ,{585,(State*)&S6_Crc_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S5pse_Crc_phrase_th = {3,(State*)&S2_Crc_phrase_th};
+struct S5rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Crc_phrase_th S5rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Crc_phrase_th,Crc_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S5_Crc_phrase_th = //State's vectored into symbol: "Ropen_par"
+{5
+,(Shift_entry*)&S5pse_Crc_phrase_th,0,0,0,(Shift_tbl*)&S5st_Crc_phrase_th,(Reduce_tbl*)&S5rt_Crc_phrase_th,(State_s_thread_tbl*)&S2tt_Crc_phrase_th,0,0};
+struct S6std_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S6std_Crc_phrase_th S6st_Crc_phrase_th = {
+ 5
+ ,
+ {// start of table
+ {0,(State*)&S29_Crc_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S30_Crc_phrase_th} // shift sym: LR1_parallel_operator
+ ,{572,(State*)&S7_Crc_phrase_th} // shift sym: Rparameters
+ ,{573,(State*)&S33_Crc_phrase_th} // shift sym: Rfilename_phrase
+ ,{574,(State*)&S45_Crc_phrase_th} // shift sym: Rfilename
+ }// end of shift table
+};
+yacco2::Shift_entry S6pse_Crc_phrase_th = {3,(State*)&S30_Crc_phrase_th};
+yacco2::Shift_entry S6qse_Crc_phrase_th = {0,(State*)&S29_Crc_phrase_th};
+yacco2::State S6_Crc_phrase_th = //State's vectored into symbol: "Rlint"
+{6
+,(Shift_entry*)&S6pse_Crc_phrase_th,0,0,0,(Shift_tbl*)&S6st_Crc_phrase_th,0,(State_s_thread_tbl*)&S30tt_Crc_phrase_th,0,(Shift_entry*)&S6qse_Crc_phrase_th
+};
+struct S7std_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S7std_Crc_phrase_th S7st_Crc_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Crc_phrase_th} // shift sym: LR1_parallel_operator
+ ,{585,(State*)&S8_Crc_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S7pse_Crc_phrase_th = {3,(State*)&S2_Crc_phrase_th};
+struct S7rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Crc_phrase_th S7rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Crc_phrase_th,Crc_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S7_Crc_phrase_th = //State's vectored into symbol: "Rparameters"
+{7
+,(Shift_entry*)&S7pse_Crc_phrase_th,0,0,0,(Shift_tbl*)&S7st_Crc_phrase_th,(Reduce_tbl*)&S7rt_Crc_phrase_th,(State_s_thread_tbl*)&S2tt_Crc_phrase_th,0,0};
+struct S8std_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S8std_Crc_phrase_th S8st_Crc_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S51_Crc_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{49,(State*)&S52_Crc_phrase_th} // shift sym: raw_close_bracket
+ ,{571,(State*)&S9_Crc_phrase_th} // shift sym: Rclose_par
+ }// end of shift table
+};
+yacco2::Shift_entry S8qse_Crc_phrase_th = {0,(State*)&S51_Crc_phrase_th};
+yacco2::State S8_Crc_phrase_th = //State's vectored into symbol: "Rlint"
+{8
+,0,0,0,0,(Shift_tbl*)&S8st_Crc_phrase_th,0,0,0,(Shift_entry*)&S8qse_Crc_phrase_th
+};
+struct S9std_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S9std_Crc_phrase_th S9st_Crc_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Crc_phrase_th} // shift sym: LR1_parallel_operator
+ ,{585,(State*)&S10_Crc_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S9pse_Crc_phrase_th = {3,(State*)&S2_Crc_phrase_th};
+struct S9rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Crc_phrase_th S9rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Crc_phrase_th,Crc_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S9_Crc_phrase_th = //State's vectored into symbol: "Rclose_par"
+{9
+,(Shift_entry*)&S9pse_Crc_phrase_th,0,0,0,(Shift_tbl*)&S9st_Crc_phrase_th,(Reduce_tbl*)&S9rt_Crc_phrase_th,(State_s_thread_tbl*)&S2tt_Crc_phrase_th,0,0};
+struct S10std_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S10std_Crc_phrase_th S10st_Crc_phrase_th = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S11_Crc_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{131,(State*)&S12_Crc_phrase_th} // shift sym: raw_open_brace
+ ,{579,(State*)&S13_Crc_phrase_th} // shift sym: Rsym_defs_phrase
+ ,{583,(State*)&S15_Crc_phrase_th} // shift sym: Ropen_brace
+ }// end of shift table
+};
+yacco2::Shift_entry S10qse_Crc_phrase_th = {0,(State*)&S11_Crc_phrase_th};
+yacco2::State S10_Crc_phrase_th = //State's vectored into symbol: "Rlint"
+{10
+,0,0,0,0,(Shift_tbl*)&S10st_Crc_phrase_th,0,0,0,(Shift_entry*)&S10qse_Crc_phrase_th
+};
+struct S11rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Crc_phrase_th S11rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Crc_phrase_th,Crc_phrase_th::rhs1_Ropen_brace_}
+ }// end of reduce table
+};
+yacco2::State S11_Crc_phrase_th = //State's vectored into symbol: "|?|"
+{11
+,0,0,0,0,0,(Reduce_tbl*)&S11rt_Crc_phrase_th,0,0,0};
+struct S12rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S12rtd_Crc_phrase_th S12rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Crc_phrase_th,Crc_phrase_th::rhs2_Ropen_brace_}
+ }// end of reduce table
+};
+yacco2::State S12_Crc_phrase_th = //State's vectored into symbol: "{"
+{12
+,0,0,0,0,0,(Reduce_tbl*)&S12rt_Crc_phrase_th,0,0,0};
+struct S13std_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S13std_Crc_phrase_th S13st_Crc_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Crc_phrase_th} // shift sym: LR1_parallel_operator
+ ,{585,(State*)&S14_Crc_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S13pse_Crc_phrase_th = {3,(State*)&S2_Crc_phrase_th};
+struct S13rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S13rtd_Crc_phrase_th S13rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crc_phrase_th,Crc_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S13_Crc_phrase_th = //State's vectored into symbol: "Rsym_defs_phrase"
+{13
+,(Shift_entry*)&S13pse_Crc_phrase_th,0,0,0,(Shift_tbl*)&S13st_Crc_phrase_th,(Reduce_tbl*)&S13rt_Crc_phrase_th,(State_s_thread_tbl*)&S2tt_Crc_phrase_th,0,0};
+struct S14rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S14rtd_Crc_phrase_th S14rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crc_phrase_th,Crc_phrase_th::rhs1_Rrc_phrase_}
+ }// end of reduce table
+};
+yacco2::State S14_Crc_phrase_th = //State's vectored into symbol: "Rlint"
+{14
+,0,0,0,0,0,(Reduce_tbl*)&S14rt_Crc_phrase_th,0,0,0};
+struct S15std_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S15std_Crc_phrase_th S15st_Crc_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Crc_phrase_th} // shift sym: LR1_parallel_operator
+ ,{585,(State*)&S16_Crc_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S15pse_Crc_phrase_th = {3,(State*)&S2_Crc_phrase_th};
+struct S15rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S15rtd_Crc_phrase_th S15rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Crc_phrase_th,Crc_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S15_Crc_phrase_th = //State's vectored into symbol: "Ropen_brace"
+{15
+,(Shift_entry*)&S15pse_Crc_phrase_th,0,0,0,(Shift_tbl*)&S15st_Crc_phrase_th,(Reduce_tbl*)&S15rt_Crc_phrase_th,(State_s_thread_tbl*)&S2tt_Crc_phrase_th,0,0};
+struct S16std_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S16std_Crc_phrase_th S16st_Crc_phrase_th = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S53_Crc_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S54_Crc_phrase_th} // shift sym: LR1_parallel_operator
+ ,{580,(State*)&S17_Crc_phrase_th} // shift sym: Rsym_defs
+ ,{581,(State*)&S62_Crc_phrase_th} // shift sym: Rsym_def
+ }// end of shift table
+};
+yacco2::Shift_entry S16pse_Crc_phrase_th = {3,(State*)&S54_Crc_phrase_th};
+yacco2::Shift_entry S16qse_Crc_phrase_th = {0,(State*)&S53_Crc_phrase_th};
+yacco2::State S16_Crc_phrase_th = //State's vectored into symbol: "Rlint"
+{16
+,(Shift_entry*)&S16pse_Crc_phrase_th,0,0,0,(Shift_tbl*)&S16st_Crc_phrase_th,0,(State_s_thread_tbl*)&S54tt_Crc_phrase_th,0,(Shift_entry*)&S16qse_Crc_phrase_th
+};
+struct S17std_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S17std_Crc_phrase_th S17st_Crc_phrase_th = {
+ 5
+ ,
+ {// start of table
+ {0,(State*)&S18_Crc_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S19_Crc_phrase_th} // shift sym: LR1_parallel_operator
+ ,{133,(State*)&S25_Crc_phrase_th} // shift sym: raw_close_brace
+ ,{582,(State*)&S60_Crc_phrase_th} // shift sym: Rsym_def1
+ ,{584,(State*)&S26_Crc_phrase_th} // shift sym: Rclose_brace
+ }// end of shift table
+};
+yacco2::Shift_entry S17pse_Crc_phrase_th = {3,(State*)&S19_Crc_phrase_th};
+yacco2::Shift_entry S17qse_Crc_phrase_th = {0,(State*)&S18_Crc_phrase_th};
+yacco2::State S17_Crc_phrase_th = //State's vectored into symbol: "Rsym_defs"
+{17
+,(Shift_entry*)&S17pse_Crc_phrase_th,0,0,0,(Shift_tbl*)&S17st_Crc_phrase_th,0,(State_s_thread_tbl*)&S19tt_Crc_phrase_th,0,(Shift_entry*)&S17qse_Crc_phrase_th
+};
+struct S18rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S18rtd_Crc_phrase_th S18rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crc_phrase_th,Crc_phrase_th::rhs1_Rclose_brace_}
+ }// end of reduce table
+};
+yacco2::State S18_Crc_phrase_th = //State's vectored into symbol: "|?|"
+{18
+,0,0,0,0,0,(Reduce_tbl*)&S18rt_Crc_phrase_th,0,0,0};
+struct S19std_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S19std_Crc_phrase_th S19st_Crc_phrase_th = {
+ 5
+ ,
+ {// start of table
+ {6,(State*)&S20_Crc_phrase_th} // shift sym: LR1_all_shift_operator
+ ,{319,(State*)&S21_Crc_phrase_th} // shift sym: T_terminals_refs
+ ,{320,(State*)&S22_Crc_phrase_th} // shift sym: T_terminals_sufx
+ ,{321,(State*)&S23_Crc_phrase_th} // shift sym: T_lrk_sufx
+ ,{331,(State*)&S24_Crc_phrase_th} // shift sym: T_terminal_def
+ }// end of shift table
+};
+yacco2::Shift_entry S19ase_Crc_phrase_th = {6,(State*)&S20_Crc_phrase_th};
+yacco2::State S19_Crc_phrase_th = //State's vectored into symbol: "|||"
+{19
+,0,(Shift_entry*)&S19ase_Crc_phrase_th
+,0,0,(Shift_tbl*)&S19st_Crc_phrase_th,0,0,0,0};
+struct S20rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S20rtd_Crc_phrase_th S20rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crc_phrase_th,Crc_phrase_th::rhs2_Rsym_def1_}
+ }// end of reduce table
+};
+yacco2::State S20_Crc_phrase_th = //State's vectored into symbol: "|+|"
+{20
+,0,0,0,0,0,(Reduce_tbl*)&S20rt_Crc_phrase_th,0,0,0};
+struct S21rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S21rtd_Crc_phrase_th S21rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crc_phrase_th,Crc_phrase_th::rhs4_Rsym_def1_}
+ }// end of reduce table
+};
+yacco2::State S21_Crc_phrase_th = //State's vectored into symbol: "#terminals-refs"
+{21
+,0,0,0,0,0,(Reduce_tbl*)&S21rt_Crc_phrase_th,0,0,0};
+struct S22rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S22rtd_Crc_phrase_th S22rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crc_phrase_th,Crc_phrase_th::rhs5_Rsym_def1_}
+ }// end of reduce table
+};
+yacco2::State S22_Crc_phrase_th = //State's vectored into symbol: "#terminals-sufx"
+{22
+,0,0,0,0,0,(Reduce_tbl*)&S22rt_Crc_phrase_th,0,0,0};
+struct S23rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S23rtd_Crc_phrase_th S23rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crc_phrase_th,Crc_phrase_th::rhs3_Rsym_def1_}
+ }// end of reduce table
+};
+yacco2::State S23_Crc_phrase_th = //State's vectored into symbol: "#lrk-sufx"
+{23
+,0,0,0,0,0,(Reduce_tbl*)&S23rt_Crc_phrase_th,0,0,0};
+struct S24rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S24rtd_Crc_phrase_th S24rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crc_phrase_th,Crc_phrase_th::rhs1_Rsym_def1_}
+ }// end of reduce table
+};
+yacco2::State S24_Crc_phrase_th = //State's vectored into symbol: "terminal-def"
+{24
+,0,0,0,0,0,(Reduce_tbl*)&S24rt_Crc_phrase_th,0,0,0};
+struct S25rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S25rtd_Crc_phrase_th S25rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crc_phrase_th,Crc_phrase_th::rhs2_Rclose_brace_}
+ }// end of reduce table
+};
+yacco2::State S25_Crc_phrase_th = //State's vectored into symbol: "}"
+{25
+,0,0,0,0,0,(Reduce_tbl*)&S25rt_Crc_phrase_th,0,0,0};
+struct S26rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S26rtd_Crc_phrase_th S26rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crc_phrase_th,Crc_phrase_th::rhs1_Rsym_defs_phrase_}
+ }// end of reduce table
+};
+yacco2::State S26_Crc_phrase_th = //State's vectored into symbol: "Rclose_brace"
+{26
+,0,0,0,0,0,(Reduce_tbl*)&S26rt_Crc_phrase_th,0,0,0};
+struct S27rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S27rtd_Crc_phrase_th S27rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Crc_phrase_th,Crc_phrase_th::rhs1_Ropen_par_}
+ }// end of reduce table
+};
+yacco2::State S27_Crc_phrase_th = //State's vectored into symbol: "|?|"
+{27
+,0,0,0,0,0,(Reduce_tbl*)&S27rt_Crc_phrase_th,0,0,0};
+struct S28rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S28rtd_Crc_phrase_th S28rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Crc_phrase_th,Crc_phrase_th::rhs2_Ropen_par_}
+ }// end of reduce table
+};
+yacco2::State S28_Crc_phrase_th = //State's vectored into symbol: "("
+{28
+,0,0,0,0,0,(Reduce_tbl*)&S28rt_Crc_phrase_th,0,0,0};
+struct S29rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S29rtd_Crc_phrase_th S29rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Crc_phrase_th,Crc_phrase_th::rhs3_Rfilename_}
+ }// end of reduce table
+};
+yacco2::State S29_Crc_phrase_th = //State's vectored into symbol: "|?|"
+{29
+,0,0,0,0,0,(Reduce_tbl*)&S29rt_Crc_phrase_th,0,0,0};
+struct S30std_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S30std_Crc_phrase_th S30st_Crc_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S31_Crc_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{303,(State*)&S32_Crc_phrase_th} // shift sym: T_file_name
+ }// end of shift table
+};
+yacco2::Shift_entry S30qse_Crc_phrase_th = {0,(State*)&S31_Crc_phrase_th};
+yacco2::State S30_Crc_phrase_th = //State's vectored into symbol: "|||"
+{30
+,0,0,0,0,(Shift_tbl*)&S30st_Crc_phrase_th,0,0,0,(Shift_entry*)&S30qse_Crc_phrase_th
+};
+struct S31rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S31rtd_Crc_phrase_th S31rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Crc_phrase_th,Crc_phrase_th::rhs2_Rfilename_}
+ }// end of reduce table
+};
+yacco2::State S31_Crc_phrase_th = //State's vectored into symbol: "|?|"
+{31
+,0,0,0,0,0,(Reduce_tbl*)&S31rt_Crc_phrase_th,0,0,0};
+struct S32rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S32rtd_Crc_phrase_th S32rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Crc_phrase_th,Crc_phrase_th::rhs1_Rfilename_}
+ }// end of reduce table
+};
+yacco2::State S32_Crc_phrase_th = //State's vectored into symbol: "#file-name"
+{32
+,0,0,0,0,0,(Reduce_tbl*)&S32rt_Crc_phrase_th,0,0,0};
+struct S33std_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S33std_Crc_phrase_th S33st_Crc_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Crc_phrase_th} // shift sym: LR1_parallel_operator
+ ,{585,(State*)&S34_Crc_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S33pse_Crc_phrase_th = {3,(State*)&S2_Crc_phrase_th};
+struct S33rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S33rtd_Crc_phrase_th S33rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Crc_phrase_th,Crc_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S33_Crc_phrase_th = //State's vectored into symbol: "Rfilename_phrase"
+{33
+,(Shift_entry*)&S33pse_Crc_phrase_th,0,0,0,(Shift_tbl*)&S33st_Crc_phrase_th,(Reduce_tbl*)&S33rt_Crc_phrase_th,(State_s_thread_tbl*)&S2tt_Crc_phrase_th,0,0};
+struct S34std_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S34std_Crc_phrase_th S34st_Crc_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S35_Crc_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{52,(State*)&S36_Crc_phrase_th} // shift sym: raw_comma
+ ,{576,(State*)&S44_Crc_phrase_th} // shift sym: Rnamespace_phrase
+ }// end of shift table
+};
+yacco2::Shift_entry S34qse_Crc_phrase_th = {0,(State*)&S35_Crc_phrase_th};
+yacco2::State S34_Crc_phrase_th = //State's vectored into symbol: "Rlint"
+{34
+,0,0,0,0,(Shift_tbl*)&S34st_Crc_phrase_th,0,0,0,(Shift_entry*)&S34qse_Crc_phrase_th
+};
+struct S35rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S35rtd_Crc_phrase_th S35rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Crc_phrase_th,Crc_phrase_th::rhs2_Rnamespace_phrase_}
+ }// end of reduce table
+};
+yacco2::State S35_Crc_phrase_th = //State's vectored into symbol: "|?|"
+{35
+,0,0,0,0,0,(Reduce_tbl*)&S35rt_Crc_phrase_th,0,0,0};
+struct S36std_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S36std_Crc_phrase_th S36st_Crc_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Crc_phrase_th} // shift sym: LR1_parallel_operator
+ ,{585,(State*)&S37_Crc_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S36pse_Crc_phrase_th = {3,(State*)&S2_Crc_phrase_th};
+struct S36rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S36rtd_Crc_phrase_th S36rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Crc_phrase_th,Crc_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S36_Crc_phrase_th = //State's vectored into symbol: ","
+{36
+,(Shift_entry*)&S36pse_Crc_phrase_th,0,0,0,(Shift_tbl*)&S36st_Crc_phrase_th,(Reduce_tbl*)&S36rt_Crc_phrase_th,(State_s_thread_tbl*)&S2tt_Crc_phrase_th,0,0};
+struct S37std_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S37std_Crc_phrase_th S37st_Crc_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S64_Crc_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S65_Crc_phrase_th} // shift sym: LR1_parallel_operator
+ ,{577,(State*)&S38_Crc_phrase_th} // shift sym: Rnamespace
+ }// end of shift table
+};
+yacco2::Shift_entry S37pse_Crc_phrase_th = {3,(State*)&S65_Crc_phrase_th};
+yacco2::Shift_entry S37qse_Crc_phrase_th = {0,(State*)&S64_Crc_phrase_th};
+yacco2::State S37_Crc_phrase_th = //State's vectored into symbol: "Rlint"
+{37
+,(Shift_entry*)&S37pse_Crc_phrase_th,0,0,0,(Shift_tbl*)&S37st_Crc_phrase_th,0,(State_s_thread_tbl*)&S65tt_Crc_phrase_th,0,(Shift_entry*)&S37qse_Crc_phrase_th
+};
+struct S38std_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S38std_Crc_phrase_th S38st_Crc_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Crc_phrase_th} // shift sym: LR1_parallel_operator
+ ,{585,(State*)&S39_Crc_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S38pse_Crc_phrase_th = {3,(State*)&S2_Crc_phrase_th};
+struct S38rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S38rtd_Crc_phrase_th S38rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Crc_phrase_th,Crc_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S38_Crc_phrase_th = //State's vectored into symbol: "Rnamespace"
+{38
+,(Shift_entry*)&S38pse_Crc_phrase_th,0,0,0,(Shift_tbl*)&S38st_Crc_phrase_th,(Reduce_tbl*)&S38rt_Crc_phrase_th,(State_s_thread_tbl*)&S2tt_Crc_phrase_th,0,0};
+struct S39std_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S39std_Crc_phrase_th S39st_Crc_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S40_Crc_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S41_Crc_phrase_th} // shift sym: LR1_parallel_operator
+ ,{578,(State*)&S43_Crc_phrase_th} // shift sym: Rnamespace_id
+ }// end of shift table
+};
+yacco2::Shift_entry S39pse_Crc_phrase_th = {3,(State*)&S41_Crc_phrase_th};
+yacco2::Shift_entry S39qse_Crc_phrase_th = {0,(State*)&S40_Crc_phrase_th};
+yacco2::State S39_Crc_phrase_th = //State's vectored into symbol: "Rlint"
+{39
+,(Shift_entry*)&S39pse_Crc_phrase_th,0,0,0,(Shift_tbl*)&S39st_Crc_phrase_th,0,(State_s_thread_tbl*)&S41tt_Crc_phrase_th,0,(Shift_entry*)&S39qse_Crc_phrase_th
+};
+struct S40rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S40rtd_Crc_phrase_th S40rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Crc_phrase_th,Crc_phrase_th::rhs2_Rnamespace_id_}
+ }// end of reduce table
+};
+yacco2::State S40_Crc_phrase_th = //State's vectored into symbol: "|?|"
+{40
+,0,0,0,0,0,(Reduce_tbl*)&S40rt_Crc_phrase_th,0,0,0};
+struct S41std_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S41std_Crc_phrase_th S41st_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {279,(State*)&S42_Crc_phrase_th} // shift sym: T_identifier
+ }// end of shift table
+};
+yacco2::State S41_Crc_phrase_th = //State's vectored into symbol: "|||"
+{41
+,0,0,0,0,(Shift_tbl*)&S41st_Crc_phrase_th,0,0,0,0};
+struct S42rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S42rtd_Crc_phrase_th S42rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Crc_phrase_th,Crc_phrase_th::rhs1_Rnamespace_id_}
+ }// end of reduce table
+};
+yacco2::State S42_Crc_phrase_th = //State's vectored into symbol: "identifier"
+{42
+,0,0,0,0,0,(Reduce_tbl*)&S42rt_Crc_phrase_th,0,0,0};
+struct S43rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S43rtd_Crc_phrase_th S43rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Crc_phrase_th,Crc_phrase_th::rhs1_Rnamespace_phrase_}
+ }// end of reduce table
+};
+yacco2::State S43_Crc_phrase_th = //State's vectored into symbol: "Rnamespace_id"
+{43
+,0,0,0,0,0,(Reduce_tbl*)&S43rt_Crc_phrase_th,0,0,0};
+struct S44rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S44rtd_Crc_phrase_th S44rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Crc_phrase_th,Crc_phrase_th::rhs1_Rparameters_}
+ }// end of reduce table
+};
+yacco2::State S44_Crc_phrase_th = //State's vectored into symbol: "Rnamespace_phrase"
+{44
+,0,0,0,0,0,(Reduce_tbl*)&S44rt_Crc_phrase_th,0,0,0};
+struct S45std_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S45std_Crc_phrase_th S45st_Crc_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Crc_phrase_th} // shift sym: LR1_parallel_operator
+ ,{585,(State*)&S46_Crc_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S45pse_Crc_phrase_th = {3,(State*)&S2_Crc_phrase_th};
+struct S45rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S45rtd_Crc_phrase_th S45rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Crc_phrase_th,Crc_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S45_Crc_phrase_th = //State's vectored into symbol: "Rfilename"
+{45
+,(Shift_entry*)&S45pse_Crc_phrase_th,0,0,0,(Shift_tbl*)&S45st_Crc_phrase_th,(Reduce_tbl*)&S45rt_Crc_phrase_th,(State_s_thread_tbl*)&S2tt_Crc_phrase_th,0,0};
+struct S46std_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S46std_Crc_phrase_th S46st_Crc_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S47_Crc_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S48_Crc_phrase_th} // shift sym: LR1_parallel_operator
+ ,{575,(State*)&S50_Crc_phrase_th} // shift sym: Rfilename_id
+ }// end of shift table
+};
+yacco2::Shift_entry S46pse_Crc_phrase_th = {3,(State*)&S48_Crc_phrase_th};
+yacco2::Shift_entry S46qse_Crc_phrase_th = {0,(State*)&S47_Crc_phrase_th};
+yacco2::State S46_Crc_phrase_th = //State's vectored into symbol: "Rlint"
+{46
+,(Shift_entry*)&S46pse_Crc_phrase_th,0,0,0,(Shift_tbl*)&S46st_Crc_phrase_th,0,(State_s_thread_tbl*)&S48tt_Crc_phrase_th,0,(Shift_entry*)&S46qse_Crc_phrase_th
+};
+struct S47rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S47rtd_Crc_phrase_th S47rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA8_Crc_phrase_th,Crc_phrase_th::rhs2_Rfilename_id_}
+ }// end of reduce table
+};
+yacco2::State S47_Crc_phrase_th = //State's vectored into symbol: "|?|"
+{47
+,0,0,0,0,0,(Reduce_tbl*)&S47rt_Crc_phrase_th,0,0,0};
+struct S48std_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S48std_Crc_phrase_th S48st_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {279,(State*)&S49_Crc_phrase_th} // shift sym: T_identifier
+ }// end of shift table
+};
+yacco2::State S48_Crc_phrase_th = //State's vectored into symbol: "|||"
+{48
+,0,0,0,0,(Shift_tbl*)&S48st_Crc_phrase_th,0,0,0,0};
+struct S49rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S49rtd_Crc_phrase_th S49rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA8_Crc_phrase_th,Crc_phrase_th::rhs1_Rfilename_id_}
+ }// end of reduce table
+};
+yacco2::State S49_Crc_phrase_th = //State's vectored into symbol: "identifier"
+{49
+,0,0,0,0,0,(Reduce_tbl*)&S49rt_Crc_phrase_th,0,0,0};
+struct S50rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S50rtd_Crc_phrase_th S50rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA8_Crc_phrase_th,Crc_phrase_th::rhs1_Rfilename_phrase_}
+ }// end of reduce table
+};
+yacco2::State S50_Crc_phrase_th = //State's vectored into symbol: "Rfilename_id"
+{50
+,0,0,0,0,0,(Reduce_tbl*)&S50rt_Crc_phrase_th,0,0,0};
+struct S51rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S51rtd_Crc_phrase_th S51rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA9_Crc_phrase_th,Crc_phrase_th::rhs1_Rclose_par_}
+ }// end of reduce table
+};
+yacco2::State S51_Crc_phrase_th = //State's vectored into symbol: "|?|"
+{51
+,0,0,0,0,0,(Reduce_tbl*)&S51rt_Crc_phrase_th,0,0,0};
+struct S52rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S52rtd_Crc_phrase_th S52rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA9_Crc_phrase_th,Crc_phrase_th::rhs2_Rclose_par_}
+ }// end of reduce table
+};
+yacco2::State S52_Crc_phrase_th = //State's vectored into symbol: ")"
+{52
+,0,0,0,0,0,(Reduce_tbl*)&S52rt_Crc_phrase_th,0,0,0};
+struct S53rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S53rtd_Crc_phrase_th S53rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crc_phrase_th,Crc_phrase_th::rhs6_Rsym_def_}
+ }// end of reduce table
+};
+yacco2::State S53_Crc_phrase_th = //State's vectored into symbol: "|?|"
+{53
+,0,0,0,0,0,(Reduce_tbl*)&S53rt_Crc_phrase_th,0,0,0};
+struct S54std_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S54std_Crc_phrase_th S54st_Crc_phrase_th = {
+ 5
+ ,
+ {// start of table
+ {0,(State*)&S55_Crc_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{319,(State*)&S56_Crc_phrase_th} // shift sym: T_terminals_refs
+ ,{320,(State*)&S57_Crc_phrase_th} // shift sym: T_terminals_sufx
+ ,{321,(State*)&S58_Crc_phrase_th} // shift sym: T_lrk_sufx
+ ,{331,(State*)&S59_Crc_phrase_th} // shift sym: T_terminal_def
+ }// end of shift table
+};
+yacco2::Shift_entry S54qse_Crc_phrase_th = {0,(State*)&S55_Crc_phrase_th};
+yacco2::State S54_Crc_phrase_th = //State's vectored into symbol: "|||"
+{54
+,0,0,0,0,(Shift_tbl*)&S54st_Crc_phrase_th,0,0,0,(Shift_entry*)&S54qse_Crc_phrase_th
+};
+struct S55rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S55rtd_Crc_phrase_th S55rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crc_phrase_th,Crc_phrase_th::rhs2_Rsym_def_}
+ }// end of reduce table
+};
+yacco2::State S55_Crc_phrase_th = //State's vectored into symbol: "|?|"
+{55
+,0,0,0,0,0,(Reduce_tbl*)&S55rt_Crc_phrase_th,0,0,0};
+struct S56rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S56rtd_Crc_phrase_th S56rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crc_phrase_th,Crc_phrase_th::rhs4_Rsym_def_}
+ }// end of reduce table
+};
+yacco2::State S56_Crc_phrase_th = //State's vectored into symbol: "#terminals-refs"
+{56
+,0,0,0,0,0,(Reduce_tbl*)&S56rt_Crc_phrase_th,0,0,0};
+struct S57rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S57rtd_Crc_phrase_th S57rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crc_phrase_th,Crc_phrase_th::rhs5_Rsym_def_}
+ }// end of reduce table
+};
+yacco2::State S57_Crc_phrase_th = //State's vectored into symbol: "#terminals-sufx"
+{57
+,0,0,0,0,0,(Reduce_tbl*)&S57rt_Crc_phrase_th,0,0,0};
+struct S58rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S58rtd_Crc_phrase_th S58rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crc_phrase_th,Crc_phrase_th::rhs3_Rsym_def_}
+ }// end of reduce table
+};
+yacco2::State S58_Crc_phrase_th = //State's vectored into symbol: "#lrk-sufx"
+{58
+,0,0,0,0,0,(Reduce_tbl*)&S58rt_Crc_phrase_th,0,0,0};
+struct S59rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S59rtd_Crc_phrase_th S59rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crc_phrase_th,Crc_phrase_th::rhs1_Rsym_def_}
+ }// end of reduce table
+};
+yacco2::State S59_Crc_phrase_th = //State's vectored into symbol: "terminal-def"
+{59
+,0,0,0,0,0,(Reduce_tbl*)&S59rt_Crc_phrase_th,0,0,0};
+struct S60std_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S60std_Crc_phrase_th S60st_Crc_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Crc_phrase_th} // shift sym: LR1_parallel_operator
+ ,{585,(State*)&S61_Crc_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S60pse_Crc_phrase_th = {3,(State*)&S2_Crc_phrase_th};
+struct S60rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S60rtd_Crc_phrase_th S60rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crc_phrase_th,Crc_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S60_Crc_phrase_th = //State's vectored into symbol: "Rsym_def1"
+{60
+,(Shift_entry*)&S60pse_Crc_phrase_th,0,0,0,(Shift_tbl*)&S60st_Crc_phrase_th,(Reduce_tbl*)&S60rt_Crc_phrase_th,(State_s_thread_tbl*)&S2tt_Crc_phrase_th,0,0};
+struct S61rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S61rtd_Crc_phrase_th S61rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crc_phrase_th,Crc_phrase_th::rhs2_Rsym_defs_}
+ }// end of reduce table
+};
+yacco2::State S61_Crc_phrase_th = //State's vectored into symbol: "Rlint"
+{61
+,0,0,0,0,0,(Reduce_tbl*)&S61rt_Crc_phrase_th,0,0,0};
+struct S62std_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S62std_Crc_phrase_th S62st_Crc_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Crc_phrase_th} // shift sym: LR1_parallel_operator
+ ,{585,(State*)&S63_Crc_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S62pse_Crc_phrase_th = {3,(State*)&S2_Crc_phrase_th};
+struct S62rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S62rtd_Crc_phrase_th S62rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crc_phrase_th,Crc_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S62_Crc_phrase_th = //State's vectored into symbol: "Rsym_def"
+{62
+,(Shift_entry*)&S62pse_Crc_phrase_th,0,0,0,(Shift_tbl*)&S62st_Crc_phrase_th,(Reduce_tbl*)&S62rt_Crc_phrase_th,(State_s_thread_tbl*)&S2tt_Crc_phrase_th,0,0};
+struct S63rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S63rtd_Crc_phrase_th S63rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crc_phrase_th,Crc_phrase_th::rhs1_Rsym_defs_}
+ }// end of reduce table
+};
+yacco2::State S63_Crc_phrase_th = //State's vectored into symbol: "Rlint"
+{63
+,0,0,0,0,0,(Reduce_tbl*)&S63rt_Crc_phrase_th,0,0,0};
+struct S64rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S64rtd_Crc_phrase_th S64rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Crc_phrase_th,Crc_phrase_th::rhs3_Rnamespace_}
+ }// end of reduce table
+};
+yacco2::State S64_Crc_phrase_th = //State's vectored into symbol: "|?|"
+{64
+,0,0,0,0,0,(Reduce_tbl*)&S64rt_Crc_phrase_th,0,0,0};
+struct S65std_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S65std_Crc_phrase_th S65st_Crc_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S66_Crc_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{304,(State*)&S67_Crc_phrase_th} // shift sym: T_name_space
+ }// end of shift table
+};
+yacco2::Shift_entry S65qse_Crc_phrase_th = {0,(State*)&S66_Crc_phrase_th};
+yacco2::State S65_Crc_phrase_th = //State's vectored into symbol: "|||"
+{65
+,0,0,0,0,(Shift_tbl*)&S65st_Crc_phrase_th,0,0,0,(Shift_entry*)&S65qse_Crc_phrase_th
+};
+struct S66rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S66rtd_Crc_phrase_th S66rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Crc_phrase_th,Crc_phrase_th::rhs2_Rnamespace_}
+ }// end of reduce table
+};
+yacco2::State S66_Crc_phrase_th = //State's vectored into symbol: "|?|"
+{66
+,0,0,0,0,0,(Reduce_tbl*)&S66rt_Crc_phrase_th,0,0,0};
+struct S67rtd_Crc_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S67rtd_Crc_phrase_th S67rt_Crc_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Crc_phrase_th,Crc_phrase_th::rhs1_Rnamespace_}
+ }// end of reduce table
+};
+yacco2::State S67_Crc_phrase_th = //State's vectored into symbol: "#name-space"
+{67
+,0,0,0,0,0,(Reduce_tbl*)&S67rt_Crc_phrase_th,0,0,0};
diff --git a/web/yacco2/compiler/grammars/rc_phrasesym.cpp b/web/yacco2/compiler/grammars/rc_phrasesym.cpp
new file mode 100644
index 0000000000..ff2d2d9913
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rc_phrasesym.cpp
@@ -0,0 +1,86 @@
+/*
+ File: rc_phrasesym.cpp
+ Date and Time: Fri Jan 30 18:55:21 2015
+*/
+#include "rc_phrase.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_rc_phrase;// grammar's ns
+// first set terminals
+// monolithic grammar --- no thread
+void
+Crc_phrase::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rrc_phrase_:{
+ Rrc_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rrc_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrc_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rphrase_:{
+ Rphrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rphrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rphrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rphrase_:{
+ Rphrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rphrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rphrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rphrase_:{
+ Rphrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rphrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rphrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/rc_phrasetbl.cpp b/web/yacco2/compiler/grammars/rc_phrasetbl.cpp
new file mode 100644
index 0000000000..fa713e3599
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rc_phrasetbl.cpp
@@ -0,0 +1,129 @@
+/*
+ File: rc_phrasetbl.cpp
+ Date and Time: Fri Jan 30 18:55:21 2015
+*/
+#include "rc_phrase.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_rc_phrase;// grammar's ns
+// first set terminals
+// LR1_eolr
+yacco2::UCHAR LA1_Crc_phrase[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Crc_phrase;
+extern yacco2::State S2_Crc_phrase;
+extern yacco2::State S3_Crc_phrase;
+struct S3ttd_Crc_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S3ttd_Crc_phrase S3tt_Crc_phrase = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_rc_phrase_th
+};
+extern yacco2::State S4_Crc_phrase;
+extern yacco2::State S5_Crc_phrase;
+extern yacco2::State S6_Crc_phrase;
+struct S1std_Crc_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S1std_Crc_phrase S1st_Crc_phrase = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S2_Crc_phrase} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S3_Crc_phrase} // shift sym: LR1_parallel_operator
+ ,{569,(State*)&S1_Crc_phrase} // accept sym: Rrc_phrase
+ ,{570,(State*)&S6_Crc_phrase} // shift sym: Rphrase
+ }// end of shift table
+};
+yacco2::Shift_entry S1pse_Crc_phrase = {3,(State*)&S3_Crc_phrase};
+yacco2::Shift_entry S1qse_Crc_phrase = {0,(State*)&S2_Crc_phrase};
+yacco2::State S1_Crc_phrase = //State's vectored into symbol: " No symbol"
+{1
+,(Shift_entry*)&S1pse_Crc_phrase,0,0,0,(Shift_tbl*)&S1st_Crc_phrase,0,(State_s_thread_tbl*)&S3tt_Crc_phrase,0,(Shift_entry*)&S1qse_Crc_phrase
+};
+struct S2rtd_Crc_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Crc_phrase S2rt_Crc_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crc_phrase,Crc_phrase::rhs3_Rphrase_}
+ }// end of reduce table
+};
+yacco2::State S2_Crc_phrase = //State's vectored into symbol: "|?|"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Crc_phrase,0,0,0};
+struct S3std_Crc_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S3std_Crc_phrase S3st_Crc_phrase = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S4_Crc_phrase} // shift sym: LR1_questionable_shift_operator
+ ,{337,(State*)&S5_Crc_phrase} // shift sym: T_rc_phrase
+ }// end of shift table
+};
+yacco2::Shift_entry S3qse_Crc_phrase = {0,(State*)&S4_Crc_phrase};
+yacco2::State S3_Crc_phrase = //State's vectored into symbol: "|||"
+{3
+,0,0,0,0,(Shift_tbl*)&S3st_Crc_phrase,0,0,0,(Shift_entry*)&S3qse_Crc_phrase
+};
+struct S4rtd_Crc_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Crc_phrase S4rt_Crc_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crc_phrase,Crc_phrase::rhs2_Rphrase_}
+ }// end of reduce table
+};
+yacco2::State S4_Crc_phrase = //State's vectored into symbol: "|?|"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Crc_phrase,0,0,0};
+struct S5rtd_Crc_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Crc_phrase S5rt_Crc_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crc_phrase,Crc_phrase::rhs1_Rphrase_}
+ }// end of reduce table
+};
+yacco2::State S5_Crc_phrase = //State's vectored into symbol: "rc-phrase"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Crc_phrase,0,0,0};
+struct S6rtd_Crc_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Crc_phrase S6rt_Crc_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crc_phrase,Crc_phrase::rhs1_Rrc_phrase_}
+ }// end of reduce table
+};
+yacco2::State S6_Crc_phrase = //State's vectored into symbol: "Rphrase"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Crc_phrase,0,0,0};
diff --git a/web/yacco2/compiler/grammars/rhs_bnd.cpp b/web/yacco2/compiler/grammars/rhs_bnd.cpp
new file mode 100644
index 0000000000..63f87ac306
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rhs_bnd.cpp
@@ -0,0 +1,72 @@
+/*
+ File: rhs_bnd.cpp
+ Date and Time: Fri Jan 30 18:55:22 2015
+*/
+#include "rhs_bnd.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_rhs_bnd;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 1;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+}
+ Crhs_bnd::
+ Crhs_bnd()
+ :yacco2::CAbs_fsm
+ ("rhs_bnd.lex"
+ ,"1.0"
+ ,"24 mar 2004"
+ ,false
+ ,"Determine end-of-subrule expression within a rule."
+ ,"Fri Jan 30 18:55:22 2015 "
+ ,S1_Crhs_bnd){
+
+ }
+
+Crhs_bnd::~Crhs_bnd(){
+
+ for(int x = 0;x < 1;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Crhs_bnd::failed(){
+ return false;
+ }
+ void Crhs_bnd::op(){
+}
+int Crhs_bnd::rhs_to_rules_mapping_[5] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,0 // subrule 2 for rule 1
+ ,0 // subrule 3 for rule 1
+ ,0 // subrule 4 for rule 1
+};
+Rrhs_bnd::Rrhs_bnd(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrhs_bnd",0,Crhs_bnd::R_Rrhs_bnd_,P,false,false){
+}
+
+void Rrhs_bnd::op(){
+ sstrace_rulesss
+
+ CAbs_lr1_sym* sym = new T_eosubrule;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ // pass back lookahead as start of thread
+ RSVP_WLA(sym,rule_info__.parser__->start_token__,sym->tok_co_ords__.rc_pos__);
+
+}
+void Rrhs_bnd::sr4(){
+
+ CAbs_lr1_sym* sym = new Err_subrule_overrun;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
diff --git a/web/yacco2/compiler/grammars/rhs_bnd.fsc b/web/yacco2/compiler/grammars/rhs_bnd.fsc
new file mode 100644
index 0000000000..7c8a730d16
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rhs_bnd.fsc
@@ -0,0 +1,23 @@
+/*
+ File: rhs_bnd.fsc
+ Date and Time: Fri Jan 30 18:55:22 2015
+*/
+transitive n
+grammar-name "rhs_bnd"
+name-space "NS_rhs_bnd"
+thread-name "TH_rhs_bnd"
+monolithic n
+file-name "rhs_bnd.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 4
+ LR1_eog
+ raw_minus
+ raw_open_brace
+ raw_close_brace
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"Determine end-of-subrule expression within a rule."
diff --git a/web/yacco2/compiler/grammars/rhs_bnd.h b/web/yacco2/compiler/grammars/rhs_bnd.h
new file mode 100644
index 0000000000..ebbcc9a497
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rhs_bnd.h
@@ -0,0 +1,59 @@
+/*
+ File: rhs_bnd.h
+ Date and Time: Fri Jan 30 18:55:22 2015
+*/
+#ifndef __rhs_bnd_h__
+#define __rhs_bnd_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+extern yacco2::Thread_entry ITH_rhs_bnd;
+
+extern yacco2::State S1_Crhs_bnd;
+namespace NS_rhs_bnd {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_rhs_bnd(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_rhs_bnd(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[1];
+};
+class Crhs_bnd: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rrhs_bnd_ = 569//start_of_rule_list + 0
+ ,rhs1_Rrhs_bnd_ = 1
+ ,rhs2_Rrhs_bnd_ = 2
+ ,rhs3_Rrhs_bnd_ = 3
+ ,rhs4_Rrhs_bnd_ = 4
+ };
+ //no of la sets = 1
+ //no of states = 6
+ Crhs_bnd();
+ ~Crhs_bnd();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[5];
+ };
+struct Rrhs_bnd;
+struct Rrhs_bnd:public yacco2::CAbs_lr1_sym {
+ Rrhs_bnd(yacco2::Parser* P);
+ void op();
+ public:
+ void sr4();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/rhs_bnd.lex b/web/yacco2/compiler/grammars/rhs_bnd.lex
new file mode 100644
index 0000000000..ece9930054
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rhs_bnd.lex
@@ -0,0 +1,82 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: rhs_bnd.lex
+Dates: 10 Jun 2004
+Purpose: finds the end-of-a-subrule's expression
+ The stoppers are:
+ { start of a syntax directed code block
+ } end of the rule's subrules
+ -> start of a new subrule expression
+Output: Err_subrule_overrun
+ eosubrule
+Note: Lookahead pair < token, pos > is the same start token
+ of this thread cuz an end-of-subrule is invisible
+ caused by either the start of another subrule definition
+ or the end of a rule definition.
+
+ To properly parse these other junction points, the token
+ stream must stay aligned at the point of invocation.
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |rhs_bnd| thread.\fbreak
+Finds the end-of-a-subrule's expression.
+The stoppers are:\fbreak
+\ptindent{\prtobrace --- start of a syntax directed code block}
+\ptindent{\prtcbrace --- end of the rule's subrules}
+\ptindent{\prtstartsr start of a new subrule expression}
+\fbreak
+Note:\fbreak
+Lookahead pair $<$ token, pos $>$ is the same start token
+of this thread cuz an end-of-subrule is invisible
+caused by either the start of another subrule definition
+or the end of a rule definition.
+
+To properly parse these other junction points, the token
+stream must stay aligned at the point of invocation.
+@/
+fsm
+(fsm-id "rhs_bnd.lex"
+,fsm-filename rhs_bnd
+,fsm-namespace NS_rhs_bnd
+,fsm-class Crhs_bnd
+,fsm-version "1.0",fsm-date "24 mar 2004",fsm-debug "false"
+,fsm-comments "Determine end-of-subrule expression within a rule.")
+parallel-parser
+(
+ parallel-thread-function
+ TH_rhs_bnd
+ ***
+ parallel-la-boundary
+ eolr
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rrhs_bnd (
+lhs{
+ op
+ CAbs_lr1_sym* sym = new T_eosubrule;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ // pass back lookahead as start of thread
+ RSVP_WLA(sym,rule_info__.parser__->start_token__,sym->tok_co_ords__.rc_pos__);
+ ***
+}
+){
+ -> "{"
+ -> "}"
+ -> "-" ">"
+ -> eog {
+ op
+ CAbs_lr1_sym* sym = new Err_subrule_overrun;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/rhs_bndsym.cpp b/web/yacco2/compiler/grammars/rhs_bndsym.cpp
new file mode 100644
index 0000000000..94bedb4c8c
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rhs_bndsym.cpp
@@ -0,0 +1,109 @@
+/*
+ File: rhs_bndsym.cpp
+ Date and Time: Fri Jan 30 18:55:22 2015
+*/
+#include "rhs_bnd.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_rhs_bnd;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_rhs_bnd::TH_rhs_bnd(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_rhs_bnd;
+ NS_rhs_bnd::Crhs_bnd Crhs_bnd_;// parallel-parser's parse table
+#define ssPARSE_TABLE Crhs_bnd_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_rhs_bnd::PROC_TH_rhs_bnd(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_rhs_bnd";
+ static bool one_time(false);
+ static NS_rhs_bnd::Crhs_bnd* NS_rhs_bnd_Crhs_bnd_(0);// parallel-parser's fsm table
+ static Parser* NS_rhs_bnd_Crhs_bnd_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_rhs_bnd_Crhs_bnd_ = new NS_rhs_bnd::Crhs_bnd();// parallel-parser's fsm table
+ NS_rhs_bnd_Crhs_bnd_parser = new Parser(*NS_rhs_bnd_Crhs_bnd_,Caller_pp);
+ }
+ proc_parser = NS_rhs_bnd_Crhs_bnd_parser;
+#include "wproc_pp_core.h"
+}
+void
+Crhs_bnd::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rrhs_bnd_:{
+ Rrhs_bnd* sym;
+ if(re->rule_ == 0){
+ sym = new Rrhs_bnd(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrhs_bnd*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs2_Rrhs_bnd_:{
+ Rrhs_bnd* sym;
+ if(re->rule_ == 0){
+ sym = new Rrhs_bnd(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrhs_bnd*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs3_Rrhs_bnd_:{
+ Rrhs_bnd* sym;
+ if(re->rule_ == 0){
+ sym = new Rrhs_bnd(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrhs_bnd*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->op();
+ return;}
+ case rhs4_Rrhs_bnd_:{
+ Rrhs_bnd* sym;
+ if(re->rule_ == 0){
+ sym = new Rrhs_bnd(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrhs_bnd*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr4();
+ sym->op();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/rhs_bndtbl.cpp b/web/yacco2/compiler/grammars/rhs_bndtbl.cpp
new file mode 100644
index 0000000000..b188711b3f
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rhs_bndtbl.cpp
@@ -0,0 +1,112 @@
+/*
+ File: rhs_bndtbl.cpp
+ Date and Time: Fri Jan 30 18:55:22 2015
+*/
+#include "rhs_bnd.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_rhs_bnd;// grammar's ns
+// first set terminals
+// LR1_eolr
+yacco2::UCHAR LA1_Crhs_bnd[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Crhs_bnd;
+extern yacco2::State S2_Crhs_bnd;
+extern yacco2::State S3_Crhs_bnd;
+extern yacco2::State S4_Crhs_bnd;
+extern yacco2::State S5_Crhs_bnd;
+extern yacco2::State S6_Crhs_bnd;
+struct S1std_Crhs_bnd{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S1std_Crhs_bnd S1st_Crhs_bnd = {
+ 5
+ ,
+ {// start of table
+ {1,(State*)&S2_Crhs_bnd} // shift sym: LR1_eog
+ ,{53,(State*)&S3_Crhs_bnd} // shift sym: raw_minus
+ ,{131,(State*)&S5_Crhs_bnd} // shift sym: raw_open_brace
+ ,{133,(State*)&S6_Crhs_bnd} // shift sym: raw_close_brace
+ ,{569,(State*)&S1_Crhs_bnd} // accept sym: Rrhs_bnd
+ }// end of shift table
+};
+yacco2::State S1_Crhs_bnd = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Crhs_bnd,0,0,0,0};
+struct S2rtd_Crhs_bnd{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Crhs_bnd S2rt_Crhs_bnd = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crhs_bnd,Crhs_bnd::rhs4_Rrhs_bnd_}
+ }// end of reduce table
+};
+yacco2::State S2_Crhs_bnd = //State's vectored into symbol: "eog"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Crhs_bnd,0,0,0};
+struct S3std_Crhs_bnd{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S3std_Crhs_bnd S3st_Crhs_bnd = {
+ 1
+ ,
+ {// start of table
+ {70,(State*)&S4_Crhs_bnd} // shift sym: raw_gt_than
+ }// end of shift table
+};
+yacco2::State S3_Crhs_bnd = //State's vectored into symbol: "-"
+{3
+,0,0,0,0,(Shift_tbl*)&S3st_Crhs_bnd,0,0,0,0};
+struct S4rtd_Crhs_bnd{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Crhs_bnd S4rt_Crhs_bnd = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crhs_bnd,Crhs_bnd::rhs3_Rrhs_bnd_}
+ }// end of reduce table
+};
+yacco2::State S4_Crhs_bnd = //State's vectored into symbol: ">"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Crhs_bnd,0,0,0};
+struct S5rtd_Crhs_bnd{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Crhs_bnd S5rt_Crhs_bnd = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crhs_bnd,Crhs_bnd::rhs1_Rrhs_bnd_}
+ }// end of reduce table
+};
+yacco2::State S5_Crhs_bnd = //State's vectored into symbol: "{"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Crhs_bnd,0,0,0};
+struct S6rtd_Crhs_bnd{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Crhs_bnd S6rt_Crhs_bnd = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crhs_bnd,Crhs_bnd::rhs2_Rrhs_bnd_}
+ }// end of reduce table
+};
+yacco2::State S6_Crhs_bnd = //State's vectored into symbol: "}"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Crhs_bnd,0,0,0};
diff --git a/web/yacco2/compiler/grammars/rhs_component.cpp b/web/yacco2/compiler/grammars/rhs_component.cpp
new file mode 100644
index 0000000000..6095280873
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rhs_component.cpp
@@ -0,0 +1,341 @@
+/*
+ File: rhs_component.cpp
+ Date and Time: Fri Jan 30 18:55:22 2015
+*/
+#include "rhs_component.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_rhs_component;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 1;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+}
+ Crhs_component::
+ Crhs_component()
+ :yacco2::CAbs_fsm
+ ("rhs_component.lex"
+ ,"1.0"
+ ,"24 mar 2004"
+ ,true
+ ,"Subule's individual component recognizer except eosubrule."
+ ,"Fri Jan 30 18:55:22 2015 "
+ ,S1_Crhs_component){
+
+ }
+
+Crhs_component::~Crhs_component(){
+
+ for(int x = 0;x < 1;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Crhs_component::failed(){
+ return false;
+ }
+ void Crhs_component::op(){
+}
+int Crhs_component::rhs_to_rules_mapping_[9] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,0 // subrule 2 for rule 1
+ ,0 // subrule 3 for rule 1
+ ,0 // subrule 4 for rule 1
+ ,0 // subrule 5 for rule 1
+ ,0 // subrule 6 for rule 1
+ ,0 // subrule 7 for rule 1
+ ,0 // subrule 8 for rule 1
+};
+
+ void Crhs_component::fnd_T_of_chr_str(const char* Str,yacco2::CAbs_lr1_sym* Tok){
+ T_sym_tbl_report_card report_card;
+ using namespace yacco2_stbl;
+ find_sym_in_stbl(report_card,*Str);
+ if(report_card.action_ == T_sym_tbl_report_card::not_fnd){
+ CAbs_lr1_sym* sym = new Err_subrule_use_undefined_T;
+ sym->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ RSVP_FSM(sym);
+ parser__->set_stop_parse(true);
+ return;
+ }
+ if(report_card.tbl_entry_->type_ != table_entry::terminal){
+ CAbs_lr1_sym* sym = new Err_not_T_or_R_in_subrule_expr;
+ sym->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ RSVP_FSM(sym);
+ parser__->set_stop_parse(true);
+ return;
+ }
+ report_card.tbl_entry_->used_ = true;
+ CAbs_lr1_sym* sym = report_card.tbl_entry_->symbol_;
+ T_in_stbl* T = (T_in_stbl*)sym;
+ refered_T* rT = new refered_T(*T);
+ rT->set_rc(*Tok,__FILE__,__LINE__);
+
+ T->add_T_into_xref(*rT);
+
+ RSVP_FSM(T);
+ parser__->set_stop_parse(true);
+ }
+
+yacco2::THR _YACCO2_CALL_TYPE
+NS_rhs_component::AR_Rrhs_component(yacco2::Parser* Caller_pp){
+ yacco2::KCHARP ar_name = "AR_Rrhs_component";
+#include "war_begin_code.h"
+
+ using namespace NS_yacco2_T_enum;
+ for(i=1;i<=ie;++i){
+ if(Caller_pp->pp_accept_queue__[i].accept_token__->enumerated_id__
+ == NS_yacco2_T_enum::T_Enum::T_T_in_stbl_){
+ goto arbitrated_parameter;
+ }
+ }
+ for(i=1;i<=ie;++i){
+ if(Caller_pp->pp_accept_queue__[i].accept_token__->enumerated_id__
+ == NS_yacco2_T_enum::T_Enum::T_rule_in_stbl_){
+ goto arbitrated_parameter;
+ }
+ }
+ for(i=1;i<=ie;++i){
+ if(Caller_pp->pp_accept_queue__[i].accept_token__->enumerated_id__
+ == NS_yacco2_T_enum::T_Enum::T_T_identifier_){
+ goto arbitrated_parameter;
+ }
+ }
+
+ for(i=1;i<=ie;++i){
+ if(Caller_pp->pp_accept_queue__[i].accept_token__->enumerated_id__
+ == NS_yacco2_T_enum::T_Enum::T_T_c_string_){
+ goto arbitrated_parameter;
+ }
+ }
+ for(i=1;i<=ie;++i){
+ if(Caller_pp->pp_accept_queue__[i].accept_token__->enumerated_id__
+ == NS_yacco2_T_enum::T_Enum::T_T_cweb_marker_){
+ goto arbitrated_parameter;
+ }
+ }
+ for(i=1;i<=ie;++i){
+ if(Caller_pp->pp_accept_queue__[i].accept_token__->enumerated_id__
+ == NS_yacco2_T_enum::T_Enum::T_kw_in_stbl_){
+ goto arbitrated_parameter;
+ }
+ }
+ for(i=1;i<=ie;++i){
+ if(Caller_pp->pp_accept_queue__[i].accept_token__->enumerated_id__
+ == NS_yacco2_T_enum::T_Enum::T_T_unquoted_string_){
+ goto arbitrated_parameter;
+ }
+ }
+
+#include "war_end_code.h"
+}
+
+Rrhs_component::Rrhs_component(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrhs_component",0,Crhs_component::R_Rrhs_component_,P,false,false){
+}
+
+void Rrhs_component::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_identifier* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ const char* skey = sf->p2__->identifier()->c_str();
+
+ rule_def* rdef = new rule_def(skey);
+ rdef->set_rc(*sf->p2__,__FILE__,__LINE__);
+ rule_in_stbl* ristbl = new rule_in_stbl(*rdef);
+ ristbl->set_rc(*sf->p2__,__FILE__,__LINE__);
+
+ refered_rule* rr = new refered_rule(*ristbl);
+ rr->set_rc(*sf->p2__,__FILE__,__LINE__);
+ ristbl->add_R_into_xref(*rr);
+ sf->p2__->set_auto_delete(true);
+ T_sym_tbl_report_card report_card;
+ using namespace yacco2_stbl;
+ add_sym_to_stbl(report_card,*skey,*ristbl,table_entry::used,table_entry::rule);
+ if(report_card.status_ != T_sym_tbl_report_card::okay){
+ report_card.err_entry_->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(report_card.err_entry_);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ ristbl->stbl_idx(report_card.pos_);
+ RSVP(ristbl);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rrhs_component::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_c_string* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Crhs_component* fsm = (Crhs_component*)rule_info__.parser__->fsm_tbl__;
+ fsm->fnd_T_of_chr_str(sf->p2__->c_string()->c_str(),sf->p2__);
+ sf->p2__->set_auto_delete(true);
+
+}
+
+void Rrhs_component::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_unquoted_string* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+ // only accept when no identifier
+ Crhs_component* fsm = (Crhs_component*)rule_info__.parser__->fsm_tbl__;
+ sf->p2__->set_auto_delete(true);
+ string eos_chk("->");
+ if(eos_chk == sf->p2__->unquoted_string()->c_str()){
+ rule_info__.parser__->set_abort_parse(true);
+ return;
+ }
+ fsm->fnd_T_of_chr_str(sf->p2__->unquoted_string()->c_str(),sf->p2__);
+
+}
+
+void Rrhs_component::sr4(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_cweb_comment* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ T_cweb_comment* k = sf->p2__;
+ AST* cwebk_t_ = new AST(*k);
+ AST* cweb_t_ = new AST();
+ T_cweb_marker* cw = new T_cweb_marker(cweb_t_);
+ cw->set_rc(*k,__FILE__,__LINE__);
+ AST::set_content(*cweb_t_,*cw);
+ AST::join_pts(*cweb_t_,*cwebk_t_);
+ RSVP(cw);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rrhs_component::sr5(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rrhs_component::sr6(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ rule_in_stbl* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ using namespace yacco2_stbl;
+ T_sym_tbl_report_card report_card;
+ find_sym_in_stbl(report_card,*sf->p2__->r_def()->rule_name()->c_str());
+ if(report_card.action_ == T_sym_tbl_report_card::not_fnd){
+ CAbs_lr1_sym* sym = new Err_rule_not_in_stbl;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ report_card.tbl_entry_->used_ = true;
+ refered_rule* rr = new refered_rule(*sf->p2__);
+ rr->set_rc(*sf->p2__,__FILE__,__LINE__);
+ sf->p2__->add_R_into_xref(*rr);
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rrhs_component::sr7(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_in_stbl* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ using namespace yacco2_stbl;
+ T_sym_tbl_report_card report_card;
+ find_sym_in_stbl(report_card,*sf->p2__->t_def()->t_name()->c_str());
+ if(report_card.action_ == T_sym_tbl_report_card::not_fnd){
+ CAbs_lr1_sym* sym = new Err_T_not_in_stbl;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ report_card.tbl_entry_->used_ = true;
+ refered_T* rt = new refered_T(*sf->p2__);
+ rt->set_rc(*sf->p2__,__FILE__,__LINE__);
+
+ sf->p2__->add_T_into_xref(*rt);
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rrhs_component::sr8(){
+
+ CAbs_lr1_sym* sym = new Err_not_T_or_R_in_subrule_expr;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
diff --git a/web/yacco2/compiler/grammars/rhs_component.fsc b/web/yacco2/compiler/grammars/rhs_component.fsc
new file mode 100644
index 0000000000..63cb3f15b7
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rhs_component.fsc
@@ -0,0 +1,27 @@
+/*
+ File: rhs_component.fsc
+ Date and Time: Fri Jan 30 18:55:22 2015
+*/
+transitive y
+grammar-name "rhs_component"
+name-space "NS_rhs_component"
+thread-name "TH_rhs_component"
+monolithic n
+file-name "rhs_component.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 0
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 4
+ NS_identifier::TH_identifier
+ NS_c_string::TH_c_string
+ NS_cweb_or_c_k::TH_cweb_or_c_k
+ NS_unq_str::TH_unq_str
+end-list-of-transitive-threads
+list-of-used-threads 4
+ NS_c_string::TH_c_string
+ NS_cweb_or_c_k::TH_cweb_or_c_k
+ NS_identifier::TH_identifier
+ NS_unq_str::TH_unq_str
+end-list-of-used-threads
+fsm-comments
+"Subule's individual component recognizer except eosubrule."
diff --git a/web/yacco2/compiler/grammars/rhs_component.h b/web/yacco2/compiler/grammars/rhs_component.h
new file mode 100644
index 0000000000..5ca6aab51a
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rhs_component.h
@@ -0,0 +1,82 @@
+/*
+ File: rhs_component.h
+ Date and Time: Fri Jan 30 18:55:22 2015
+*/
+#ifndef __rhs_component_h__
+#define __rhs_component_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "identifier.h"
+#include "c_string.h"
+#include "cweb_or_c_k.h"
+#include "unq_str.h"
+#include "yacco2_stbl.h"
+
+extern yacco2::Thread_entry ITH_rhs_component;
+
+extern yacco2::State S1_Crhs_component;
+namespace NS_rhs_component {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_rhs_component(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_rhs_component(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[1];
+};
+class Crhs_component: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rrhs_component_ = 569//start_of_rule_list + 0
+ ,rhs1_Rrhs_component_ = 1
+ ,rhs2_Rrhs_component_ = 2
+ ,rhs3_Rrhs_component_ = 3
+ ,rhs4_Rrhs_component_ = 4
+ ,rhs5_Rrhs_component_ = 5
+ ,rhs6_Rrhs_component_ = 6
+ ,rhs7_Rrhs_component_ = 7
+ ,rhs8_Rrhs_component_ = 8
+ };
+ //no of la sets = 1
+ //no of states = 10
+ Crhs_component();
+ ~Crhs_component();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[9];
+
+ public:
+ void fnd_T_of_chr_str(const char* Str,yacco2::CAbs_lr1_sym* Tok);
+
+ };
+struct Rrhs_component;
+yacco2::THR _YACCO2_CALL_TYPE
+AR_Rrhs_component(yacco2::Parser* Caller_pp);// rule's arbitrator
+struct Rrhs_component:public yacco2::CAbs_lr1_sym {
+ Rrhs_component(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+ void sr5();
+ void sr6();
+ void sr7();
+ void sr8();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/rhs_component.lex b/web/yacco2/compiler/grammars/rhs_component.lex
new file mode 100644
index 0000000000..db4a174128
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rhs_component.lex
@@ -0,0 +1,289 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: rhs_component.lex
+Dates: 10 Jun 2004
+Purpose: a component of subrule
+Output: rule_in_stbl
+ T_in_stbl
+ "|||"
+ assorted errors
+ "cweb-marker"
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |rhs_component| Thread.\fbreak
+A component of subrule.\fbreak
+\fbreak
+Note: the forest versus trees on T and \paralleloperator which is a T but
+i wanted clarity within {``subrule.lex''} to break out
+a regular grammar expression from a thread expression
+
+For clarity within the |subrule_def| grammar, eosubrule is
+recognized only by |rhs_bnd| grammar. Well now, $-$$>$ is a T.
+So I trap it in |fnd_T_of_chr_str| and abort the parse.
+This stops the recognition on RTorRcomponents of |subrule_def|.
+
+I could have used the enumeration approach to test its presence
+but what is its value in the sea of Terminals.
+It's not like the hardwired \paralleloperator
+lr k terminal that is fixed in place and time.
+
+@/
+fsm
+(fsm-id "rhs_component.lex"
+,fsm-filename rhs_component
+,fsm-namespace NS_rhs_component
+,fsm-class Crhs_component{
+ user-prefix-declaration
+#include "identifier.h"
+#include "c_string.h"
+#include "cweb_or_c_k.h"
+#include "unq_str.h"
+#include "yacco2_stbl.h"
+ ***
+ user-declaration
+ public:
+ void fnd_T_of_chr_str(const char* Str,yacco2::CAbs_lr1_sym* Tok);
+ ***
+ user-implementation
+ void Crhs_component::fnd_T_of_chr_str(const char* Str,yacco2::CAbs_lr1_sym* Tok){
+ T_sym_tbl_report_card report_card;
+ using namespace yacco2_stbl;
+ find_sym_in_stbl(report_card,*Str);
+ if(report_card.action_ == T_sym_tbl_report_card::not_fnd){
+ CAbs_lr1_sym* sym = new Err_subrule_use_undefined_T;
+ sym->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ RSVP_FSM(sym);
+ parser__->set_stop_parse(true);
+ return;
+ }
+ if(report_card.tbl_entry_->type_ != table_entry::terminal){
+ CAbs_lr1_sym* sym = new Err_not_T_or_R_in_subrule_expr;
+ sym->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ RSVP_FSM(sym);
+ parser__->set_stop_parse(true);
+ return;
+ }
+ report_card.tbl_entry_->used_ = true;
+ CAbs_lr1_sym* sym = report_card.tbl_entry_->symbol_;
+ T_in_stbl* T = (T_in_stbl*)sym;
+ refered_T* rT = new refered_T(*T);
+ rT->set_rc(*Tok,__FILE__,__LINE__);
+
+ T->add_T_into_xref(*rT);
+
+ RSVP_FSM(T);
+ parser__->set_stop_parse(true);
+ }
+ ***
+}
+,fsm-version "1.0",fsm-date "24 mar 2004",fsm-debug "true"
+,fsm-comments "Subule's individual component recognizer except eosubrule.")
+parallel-parser
+(
+ parallel-thread-function
+ TH_rhs_component
+ ***
+ parallel-la-boundary
+eolr
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rrhs_component (
+//lhs,
+parallel-control-monitor{
+/@
+ unquoted-string supersets identifier
+ and also includes other T like $-$$>$ and cweb comments ie cweb-marker.
+ Code only gets tried when \# parms in accept queue $>$ 1.
+ Single entry is one of identifier or cweb.
+@/
+ arbitrator-code
+ using namespace NS_yacco2_T_enum;
+ for(i=1;i<=ie;++i){
+ if(Caller_pp->pp_accept_queue__[i].accept_token__->enumerated_id__
+ == NS_yacco2_T_enum::T_Enum::T_T_in_stbl_){
+ goto arbitrated_parameter;
+ }
+ }
+ for(i=1;i<=ie;++i){
+ if(Caller_pp->pp_accept_queue__[i].accept_token__->enumerated_id__
+ == NS_yacco2_T_enum::T_Enum::T_rule_in_stbl_){
+ goto arbitrated_parameter;
+ }
+ }
+ for(i=1;i<=ie;++i){
+ if(Caller_pp->pp_accept_queue__[i].accept_token__->enumerated_id__
+ == NS_yacco2_T_enum::T_Enum::T_T_identifier_){
+ goto arbitrated_parameter;
+ }
+ }
+
+ for(i=1;i<=ie;++i){
+ if(Caller_pp->pp_accept_queue__[i].accept_token__->enumerated_id__
+ == NS_yacco2_T_enum::T_Enum::T_T_c_string_){
+ goto arbitrated_parameter;
+ }
+ }
+ for(i=1;i<=ie;++i){
+ if(Caller_pp->pp_accept_queue__[i].accept_token__->enumerated_id__
+ == NS_yacco2_T_enum::T_Enum::T_T_cweb_marker_){
+ goto arbitrated_parameter;
+ }
+ }
+ for(i=1;i<=ie;++i){
+ if(Caller_pp->pp_accept_queue__[i].accept_token__->enumerated_id__
+ == NS_yacco2_T_enum::T_Enum::T_kw_in_stbl_){
+ goto arbitrated_parameter;
+ }
+ }
+ for(i=1;i<=ie;++i){
+ if(Caller_pp->pp_accept_queue__[i].accept_token__->enumerated_id__
+ == NS_yacco2_T_enum::T_Enum::T_T_unquoted_string_){
+ goto arbitrated_parameter;
+ }
+ }
+ ***
+ }
+){
+ -> ||| identifier NS_identifier::TH_identifier {
+ /@
+ Used rule and not defined yet, so create it.
+ @/
+ op
+ const char* skey = sf->p2__->identifier()->c_str();
+
+ rule_def* rdef = new rule_def(skey);
+ rdef->set_rc(*sf->p2__,__FILE__,__LINE__);
+ rule_in_stbl* ristbl = new rule_in_stbl(*rdef);
+ ristbl->set_rc(*sf->p2__,__FILE__,__LINE__);
+
+ refered_rule* rr = new refered_rule(*ristbl);
+ rr->set_rc(*sf->p2__,__FILE__,__LINE__);
+ ristbl->add_R_into_xref(*rr);
+ sf->p2__->set_auto_delete(true);
+ T_sym_tbl_report_card report_card;
+ using namespace yacco2_stbl;
+ add_sym_to_stbl(report_card,*skey,*ristbl,table_entry::used,table_entry::rule);
+ if(report_card.status_ != T_sym_tbl_report_card::okay){
+ report_card.err_entry_->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(report_card.err_entry_);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ ristbl->stbl_idx(report_card.pos_);
+ RSVP(ristbl);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| "c-string" NS_c_string::TH_c_string {
+/@
+ Considered a T type.
+@/
+ op
+ Crhs_component* fsm = (Crhs_component*)rule_info__.parser__->fsm_tbl__;
+ fsm->fnd_T_of_chr_str(sf->p2__->c_string()->c_str(),sf->p2__);
+ sf->p2__->set_auto_delete(true);
+ ***
+ }
+ -> ||| "unquoted-string" NS_unq_str::TH_unq_str {
+/@
+ Considered a T type. Why the check on subrule vector: $-$$>$?
+ This is a context problem whereby my grammars use it and what happenes when
+ a language being defined also has it?
+ So i abort on the unprotected $-$$>$ so that |rhs_bnd| grammar
+ covers it as one of my grammar's terminals. The quoted version is passed thru as is.
+ Fractal logic on self contexts: The inner self and the outer contextual grounds.
+@/
+ op // only accept when no identifier
+ Crhs_component* fsm = (Crhs_component*)rule_info__.parser__->fsm_tbl__;
+ sf->p2__->set_auto_delete(true);
+ string eos_chk("->");
+ if(eos_chk == sf->p2__->unquoted_string()->c_str()){
+ rule_info__.parser__->set_abort_parse(true);
+ return;
+ }
+ fsm->fnd_T_of_chr_str(sf->p2__->unquoted_string()->c_str(),sf->p2__);
+ ***
+ }
+ -> ||| "cweb-comment" NS_cweb_or_c_k::TH_cweb_or_c_k {
+ op
+ T_cweb_comment* k = sf->p2__;
+ AST* cwebk_t_ = new AST(*k);
+ AST* cweb_t_ = new AST();
+ T_cweb_marker* cw = new T_cweb_marker(cweb_t_);
+ cw->set_rc(*k,__FILE__,__LINE__);
+ AST::set_content(*cweb_t_,*cw);
+ AST::join_pts(*cweb_t_,*cwebk_t_);
+ RSVP(cw);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| |+| NULL {
+/@
+ Forward the error.
+@/
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| "rule-in-stbl" NULL {
+ op
+ using namespace yacco2_stbl;
+ T_sym_tbl_report_card report_card;
+ find_sym_in_stbl(report_card,*sf->p2__->r_def()->rule_name()->c_str());
+ if(report_card.action_ == T_sym_tbl_report_card::not_fnd){
+ CAbs_lr1_sym* sym = new Err_rule_not_in_stbl;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ report_card.tbl_entry_->used_ = true;
+ refered_rule* rr = new refered_rule(*sf->p2__);
+ rr->set_rc(*sf->p2__,__FILE__,__LINE__);
+ sf->p2__->add_R_into_xref(*rr);
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| "T-in-stbl" NULL {
+ /@
+ Used T, so indicate its xreference.
+ @/
+ op
+ using namespace yacco2_stbl;
+ T_sym_tbl_report_card report_card;
+ find_sym_in_stbl(report_card,*sf->p2__->t_def()->t_name()->c_str());
+ if(report_card.action_ == T_sym_tbl_report_card::not_fnd){
+ CAbs_lr1_sym* sym = new Err_T_not_in_stbl;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ report_card.tbl_entry_->used_ = true;
+ refered_T* rt = new refered_T(*sf->p2__);
+ rt->set_rc(*sf->p2__,__FILE__,__LINE__);
+
+ sf->p2__->add_T_into_xref(*rt);
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| "kw-in-stbl" NULL {
+ op
+ CAbs_lr1_sym* sym = new Err_not_T_or_R_in_subrule_expr;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/rhs_componentsym.cpp b/web/yacco2/compiler/grammars/rhs_componentsym.cpp
new file mode 100644
index 0000000000..a1d05cc619
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rhs_componentsym.cpp
@@ -0,0 +1,168 @@
+/*
+ File: rhs_componentsym.cpp
+ Date and Time: Fri Jan 30 18:55:22 2015
+*/
+#include "rhs_component.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_rhs_component;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_rhs_component::TH_rhs_component(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_rhs_component;
+ NS_rhs_component::Crhs_component Crhs_component_;// parallel-parser's parse table
+#define ssPARSE_TABLE Crhs_component_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_rhs_component::PROC_TH_rhs_component(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_rhs_component";
+ static bool one_time(false);
+ static NS_rhs_component::Crhs_component* NS_rhs_component_Crhs_component_(0);// parallel-parser's fsm table
+ static Parser* NS_rhs_component_Crhs_component_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_rhs_component_Crhs_component_ = new NS_rhs_component::Crhs_component();// parallel-parser's fsm table
+ NS_rhs_component_Crhs_component_parser = new Parser(*NS_rhs_component_Crhs_component_,Caller_pp);
+ }
+ proc_parser = NS_rhs_component_Crhs_component_parser;
+#include "wproc_pp_core.h"
+}
+void
+Crhs_component::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rrhs_component_:{
+ Rrhs_component* sym;
+ if(re->rule_ == 0){
+ sym = new Rrhs_component(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrhs_component*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rrhs_component_:{
+ Rrhs_component* sym;
+ if(re->rule_ == 0){
+ sym = new Rrhs_component(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrhs_component*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rrhs_component_:{
+ Rrhs_component* sym;
+ if(re->rule_ == 0){
+ sym = new Rrhs_component(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrhs_component*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rrhs_component_:{
+ Rrhs_component* sym;
+ if(re->rule_ == 0){
+ sym = new Rrhs_component(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrhs_component*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr4();
+ return;}
+ case rhs5_Rrhs_component_:{
+ Rrhs_component* sym;
+ if(re->rule_ == 0){
+ sym = new Rrhs_component(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrhs_component*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr5();
+ return;}
+ case rhs6_Rrhs_component_:{
+ Rrhs_component* sym;
+ if(re->rule_ == 0){
+ sym = new Rrhs_component(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrhs_component*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr6();
+ return;}
+ case rhs7_Rrhs_component_:{
+ Rrhs_component* sym;
+ if(re->rule_ == 0){
+ sym = new Rrhs_component(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrhs_component*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr7();
+ return;}
+ case rhs8_Rrhs_component_:{
+ Rrhs_component* sym;
+ if(re->rule_ == 0){
+ sym = new Rrhs_component(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrhs_component*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr8();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/rhs_componenttbl.cpp b/web/yacco2/compiler/grammars/rhs_componenttbl.cpp
new file mode 100644
index 0000000000..1634ef5d6c
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rhs_componenttbl.cpp
@@ -0,0 +1,194 @@
+/*
+ File: rhs_componenttbl.cpp
+ Date and Time: Fri Jan 30 18:55:22 2015
+*/
+#include "rhs_component.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_rhs_component;// grammar's ns
+// first set terminals
+// LR1_eolr
+yacco2::UCHAR LA1_Crhs_component[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Crhs_component;
+extern yacco2::State S2_Crhs_component;
+struct S2ttd_Crhs_component{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[4];
+};
+S2ttd_Crhs_component S2tt_Crhs_component = {
+ 4 // no of threads
+ ,AR_Rrhs_component //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_c_string
+ ,(yacco2::Thread_entry*)&ITH_unq_str
+ ,(yacco2::Thread_entry*)&ITH_identifier
+ ,(yacco2::Thread_entry*)&ITH_cweb_or_c_k
+};
+extern yacco2::State S3_Crhs_component;
+extern yacco2::State S4_Crhs_component;
+extern yacco2::State S5_Crhs_component;
+extern yacco2::State S6_Crhs_component;
+extern yacco2::State S7_Crhs_component;
+extern yacco2::State S8_Crhs_component;
+extern yacco2::State S9_Crhs_component;
+extern yacco2::State S10_Crhs_component;
+struct S1std_Crhs_component{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S1std_Crhs_component S1st_Crhs_component = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Crhs_component} // shift sym: LR1_parallel_operator
+ ,{569,(State*)&S1_Crhs_component} // accept sym: Rrhs_component
+ }// end of shift table
+};
+yacco2::Shift_entry S1pse_Crhs_component = {3,(State*)&S2_Crhs_component};
+yacco2::State S1_Crhs_component = //State's vectored into symbol: " No symbol"
+{1
+,(Shift_entry*)&S1pse_Crhs_component,0,0,0,(Shift_tbl*)&S1st_Crhs_component,0,(State_s_thread_tbl*)&S2tt_Crhs_component,0,0};
+struct S2std_Crhs_component{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[8];
+};
+S2std_Crhs_component S2st_Crhs_component = {
+ 8
+ ,
+ {// start of table
+ {6,(State*)&S3_Crhs_component} // shift sym: LR1_all_shift_operator
+ ,{275,(State*)&S4_Crhs_component} // shift sym: T_c_string
+ ,{277,(State*)&S5_Crhs_component} // shift sym: T_unquoted_string
+ ,{279,(State*)&S6_Crhs_component} // shift sym: T_identifier
+ ,{344,(State*)&S7_Crhs_component} // shift sym: T_in_stbl
+ ,{346,(State*)&S8_Crhs_component} // shift sym: rule_in_stbl
+ ,{367,(State*)&S9_Crhs_component} // shift sym: kw_in_stbl
+ ,{372,(State*)&S10_Crhs_component} // shift sym: T_cweb_comment
+ }// end of shift table
+};
+yacco2::Shift_entry S2ase_Crhs_component = {6,(State*)&S3_Crhs_component};
+yacco2::State S2_Crhs_component = //State's vectored into symbol: "|||"
+{2
+,0,(Shift_entry*)&S2ase_Crhs_component
+,0,0,(Shift_tbl*)&S2st_Crhs_component,0,0,0,0};
+struct S3rtd_Crhs_component{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Crhs_component S3rt_Crhs_component = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crhs_component,Crhs_component::rhs5_Rrhs_component_}
+ }// end of reduce table
+};
+yacco2::State S3_Crhs_component = //State's vectored into symbol: "|+|"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_Crhs_component,0,0,0};
+struct S4rtd_Crhs_component{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Crhs_component S4rt_Crhs_component = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crhs_component,Crhs_component::rhs2_Rrhs_component_}
+ }// end of reduce table
+};
+yacco2::State S4_Crhs_component = //State's vectored into symbol: "c-string"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Crhs_component,0,0,0};
+struct S5rtd_Crhs_component{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Crhs_component S5rt_Crhs_component = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crhs_component,Crhs_component::rhs3_Rrhs_component_}
+ }// end of reduce table
+};
+yacco2::State S5_Crhs_component = //State's vectored into symbol: "unquoted-string"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Crhs_component,0,0,0};
+struct S6rtd_Crhs_component{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Crhs_component S6rt_Crhs_component = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crhs_component,Crhs_component::rhs1_Rrhs_component_}
+ }// end of reduce table
+};
+yacco2::State S6_Crhs_component = //State's vectored into symbol: "identifier"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Crhs_component,0,0,0};
+struct S7rtd_Crhs_component{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Crhs_component S7rt_Crhs_component = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crhs_component,Crhs_component::rhs7_Rrhs_component_}
+ }// end of reduce table
+};
+yacco2::State S7_Crhs_component = //State's vectored into symbol: "T-in-stbl"
+{7
+,0,0,0,0,0,(Reduce_tbl*)&S7rt_Crhs_component,0,0,0};
+struct S8rtd_Crhs_component{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S8rtd_Crhs_component S8rt_Crhs_component = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crhs_component,Crhs_component::rhs6_Rrhs_component_}
+ }// end of reduce table
+};
+yacco2::State S8_Crhs_component = //State's vectored into symbol: "rule-in-stbl"
+{8
+,0,0,0,0,0,(Reduce_tbl*)&S8rt_Crhs_component,0,0,0};
+struct S9rtd_Crhs_component{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Crhs_component S9rt_Crhs_component = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crhs_component,Crhs_component::rhs8_Rrhs_component_}
+ }// end of reduce table
+};
+yacco2::State S9_Crhs_component = //State's vectored into symbol: "kw-in-stbl"
+{9
+,0,0,0,0,0,(Reduce_tbl*)&S9rt_Crhs_component,0,0,0};
+struct S10rtd_Crhs_component{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S10rtd_Crhs_component S10rt_Crhs_component = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crhs_component,Crhs_component::rhs4_Rrhs_component_}
+ }// end of reduce table
+};
+yacco2::State S10_Crhs_component = //State's vectored into symbol: "cweb-comment"
+{10
+,0,0,0,0,0,(Reduce_tbl*)&S10rt_Crhs_component,0,0,0};
diff --git a/web/yacco2/compiler/grammars/rtn_component.cpp b/web/yacco2/compiler/grammars/rtn_component.cpp
new file mode 100644
index 0000000000..751b35ce33
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rtn_component.cpp
@@ -0,0 +1,223 @@
+/*
+ File: rtn_component.cpp
+ Date and Time: Fri Jan 30 18:55:22 2015
+*/
+#include "rtn_component.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_rtn_component;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 1;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+}
+ Crtn_component::
+ Crtn_component()
+ :yacco2::CAbs_fsm
+ ("rtn_component.lex"
+ ,"1.0"
+ ,"16 dec. 2005"
+ ,false
+ ,"Recognizer of returned T from a thread call expression."
+ ,"Fri Jan 30 18:55:22 2015 "
+ ,S1_Crtn_component){
+
+ }
+
+Crtn_component::~Crtn_component(){
+
+ for(int x = 0;x < 1;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Crtn_component::failed(){
+ return false;
+ }
+ void Crtn_component::op(){
+}
+int Crtn_component::rhs_to_rules_mapping_[8] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,0 // subrule 2 for rule 1
+ ,0 // subrule 3 for rule 1
+ ,0 // subrule 4 for rule 1
+ ,0 // subrule 5 for rule 1
+ ,0 // subrule 6 for rule 1
+ ,0 // subrule 7 for rule 1
+};
+
+ void Crtn_component::fnd_T_of_chr_str(const char* Str,yacco2::CAbs_lr1_sym* Tok){
+ T_sym_tbl_report_card report_card;
+ using namespace yacco2_stbl;
+ find_sym_in_stbl(report_card,*Str);
+ if(report_card.action_ == T_sym_tbl_report_card::not_fnd){
+ CAbs_lr1_sym* sym = new Err_subrule_use_undefined_T;
+ sym->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ RSVP_FSM(sym);
+ parser__->set_stop_parse(true);
+ return;
+ }
+ if(report_card.tbl_entry_->type_ != table_entry::terminal){
+ CAbs_lr1_sym* sym = new Err_not_T_for_rtned_token_from_th;
+ sym->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ RSVP_FSM(sym);
+ parser__->set_stop_parse(true);
+ return;
+ }
+ report_card.tbl_entry_->used_ = true;
+ CAbs_lr1_sym* sym = report_card.tbl_entry_->symbol_;
+ T_in_stbl* T = (T_in_stbl*)sym;
+ refered_T* rT = new refered_T(*T);
+ rT->set_rc(*Tok,__FILE__,__LINE__);
+
+ T->add_T_into_xref(*rT);
+
+ RSVP_FSM(T);
+ parser__->set_stop_parse(true);
+ }
+
+yacco2::THR _YACCO2_CALL_TYPE
+NS_rtn_component::AR_Rrtn_component(yacco2::Parser* Caller_pp){
+ yacco2::KCHARP ar_name = "AR_Rrtn_component";
+#include "war_begin_code.h"
+
+ using namespace NS_yacco2_T_enum;
+ for(i=1;i<=ie;++i){
+ if(Caller_pp->pp_accept_queue__[i].accept_token__->enumerated_id__
+ != NS_yacco2_T_enum::T_Enum::T_T_unquoted_string_){// bypass unq str
+ goto arbitrated_parameter;
+ }
+ }
+
+#include "war_end_code.h"
+}
+
+Rrtn_component::Rrtn_component(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrtn_component",0,Crtn_component::R_Rrtn_component_,P,false,false){
+}
+
+void Rrtn_component::sr1(){
+ // used rule and not defined, so create it
+ CAbs_lr1_sym* sym = new Err_not_T_for_rtned_token_from_th;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rrtn_component::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_c_string* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Crtn_component* fsm = (Crtn_component*)rule_info__.parser__->fsm_tbl__;
+ fsm->fnd_T_of_chr_str(sf->p2__->c_string()->c_str(),sf->p2__);// stop parsing in call
+ sf->p2__->set_auto_delete(true);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rrtn_component::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_unquoted_string* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+ // only accept when no identifier
+ Crtn_component* fsm = (Crtn_component*)rule_info__.parser__->fsm_tbl__;
+ fsm->fnd_T_of_chr_str(sf->p2__->unquoted_string()->c_str(),sf->p2__);// stop parsing in call
+ sf->p2__->set_auto_delete(true);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rrtn_component::sr4(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rrtn_component::sr5(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_in_stbl* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ using namespace yacco2_stbl;
+ T_sym_tbl_report_card report_card;
+ find_sym_in_stbl(report_card,*sf->p2__->t_def()->t_name()->c_str());
+ if(report_card.action_ == T_sym_tbl_report_card::not_fnd){
+ CAbs_lr1_sym* sym = new Err_T_not_in_stbl;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ report_card.tbl_entry_->used_ = true;
+ refered_T* rt = new refered_T(*sf->p2__);
+ rt->set_rc(*sf->p2__,__FILE__,__LINE__);
+
+ sf->p2__->add_T_into_xref(*rt);
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rrtn_component::sr6(){
+
+ CAbs_lr1_sym* sym = new Err_not_T_for_rtned_token_from_th;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rrtn_component::sr7(){
+
+ CAbs_lr1_sym* sym = new Err_not_T_for_rtned_token_from_th;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+
+}
+
diff --git a/web/yacco2/compiler/grammars/rtn_component.fsc b/web/yacco2/compiler/grammars/rtn_component.fsc
new file mode 100644
index 0000000000..b377a436d2
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rtn_component.fsc
@@ -0,0 +1,25 @@
+/*
+ File: rtn_component.fsc
+ Date and Time: Fri Jan 30 18:55:22 2015
+*/
+transitive y
+grammar-name "rtn_component"
+name-space "NS_rtn_component"
+thread-name "TH_rtn_component"
+monolithic n
+file-name "rtn_component.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 0
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 3
+ NS_unq_str::TH_unq_str
+ NS_identifier::TH_identifier
+ NS_c_string::TH_c_string
+end-list-of-transitive-threads
+list-of-used-threads 3
+ NS_c_string::TH_c_string
+ NS_identifier::TH_identifier
+ NS_unq_str::TH_unq_str
+end-list-of-used-threads
+fsm-comments
+"Recognizer of returned T from a thread call expression."
diff --git a/web/yacco2/compiler/grammars/rtn_component.h b/web/yacco2/compiler/grammars/rtn_component.h
new file mode 100644
index 0000000000..a3b0789200
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rtn_component.h
@@ -0,0 +1,79 @@
+/*
+ File: rtn_component.h
+ Date and Time: Fri Jan 30 18:55:22 2015
+*/
+#ifndef __rtn_component_h__
+#define __rtn_component_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "identifier.h"
+#include "c_string.h"
+#include "unq_str.h"
+#include "yacco2_stbl.h"
+
+extern yacco2::Thread_entry ITH_rtn_component;
+
+extern yacco2::State S1_Crtn_component;
+namespace NS_rtn_component {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_rtn_component(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_rtn_component(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[1];
+};
+class Crtn_component: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rrtn_component_ = 569//start_of_rule_list + 0
+ ,rhs1_Rrtn_component_ = 1
+ ,rhs2_Rrtn_component_ = 2
+ ,rhs3_Rrtn_component_ = 3
+ ,rhs4_Rrtn_component_ = 4
+ ,rhs5_Rrtn_component_ = 5
+ ,rhs6_Rrtn_component_ = 6
+ ,rhs7_Rrtn_component_ = 7
+ };
+ //no of la sets = 1
+ //no of states = 9
+ Crtn_component();
+ ~Crtn_component();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[8];
+
+ public:
+ void fnd_T_of_chr_str(const char* Str,yacco2::CAbs_lr1_sym* Tok);
+
+ };
+struct Rrtn_component;
+yacco2::THR _YACCO2_CALL_TYPE
+AR_Rrtn_component(yacco2::Parser* Caller_pp);// rule's arbitrator
+struct Rrtn_component:public yacco2::CAbs_lr1_sym {
+ Rrtn_component(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+ void sr5();
+ void sr6();
+ void sr7();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/rtn_component.lex b/web/yacco2/compiler/grammars/rtn_component.lex
new file mode 100644
index 0000000000..d033e39c61
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rtn_component.lex
@@ -0,0 +1,173 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: rtn_component.lex
+Dates: 16 Dec, 2005
+Purpose: a T returned from a thread
+Output: T_in_stbl
+ "|||"
+ assorted errors
+
+
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |rtn_component| Thread.\fbreak
+A T returned from a thread.
+@/
+fsm
+(fsm-id "rtn_component.lex"
+,fsm-filename rtn_component
+,fsm-namespace NS_rtn_component
+,fsm-class Crtn_component{
+ user-prefix-declaration
+#include "identifier.h"
+#include "c_string.h"
+#include "unq_str.h"
+#include "yacco2_stbl.h"
+ ***
+ user-declaration
+ public:
+ void fnd_T_of_chr_str(const char* Str,yacco2::CAbs_lr1_sym* Tok);
+ ***
+ user-implementation
+ void Crtn_component::fnd_T_of_chr_str(const char* Str,yacco2::CAbs_lr1_sym* Tok){
+ T_sym_tbl_report_card report_card;
+ using namespace yacco2_stbl;
+ find_sym_in_stbl(report_card,*Str);
+ if(report_card.action_ == T_sym_tbl_report_card::not_fnd){
+ CAbs_lr1_sym* sym = new Err_subrule_use_undefined_T;
+ sym->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ RSVP_FSM(sym);
+ parser__->set_stop_parse(true);
+ return;
+ }
+ if(report_card.tbl_entry_->type_ != table_entry::terminal){
+ CAbs_lr1_sym* sym = new Err_not_T_for_rtned_token_from_th;
+ sym->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ RSVP_FSM(sym);
+ parser__->set_stop_parse(true);
+ return;
+ }
+ report_card.tbl_entry_->used_ = true;
+ CAbs_lr1_sym* sym = report_card.tbl_entry_->symbol_;
+ T_in_stbl* T = (T_in_stbl*)sym;
+ refered_T* rT = new refered_T(*T);
+ rT->set_rc(*Tok,__FILE__,__LINE__);
+
+ T->add_T_into_xref(*rT);
+
+ RSVP_FSM(T);
+ parser__->set_stop_parse(true);
+ }
+ ***
+}
+,fsm-version "1.0",fsm-date "16 dec. 2005",fsm-debug "false"
+,fsm-comments "Recognizer of returned T from a thread call expression.")
+parallel-parser
+(
+ parallel-thread-function
+ TH_rtn_component
+ ***
+ parallel-la-boundary
+eolr
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rrtn_component (
+lhs
+,parallel-control-monitor{
+ /@
+ unquoted-string supersets identifier
+ and also includes other T like $-$$>$ and cweb comments ie cweb-marker.
+ Code only gets tried when \# parms in accept queue $>$ 1.
+ Single entry is one of identifier or cweb.
+ @/
+ arbitrator-code
+ using namespace NS_yacco2_T_enum;
+ for(i=1;i<=ie;++i){
+ if(Caller_pp->pp_accept_queue__[i].accept_token__->enumerated_id__
+ != NS_yacco2_T_enum::T_Enum::T_T_unquoted_string_){// bypass unq str
+ goto arbitrated_parameter;
+ }
+ }
+ ***
+ }
+){
+ -> ||| identifier NS_identifier::TH_identifier {
+ op // used rule and not defined, so create it
+ CAbs_lr1_sym* sym = new Err_not_T_for_rtned_token_from_th;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| "c-string" NS_c_string::TH_c_string { // T type
+ op
+ Crtn_component* fsm = (Crtn_component*)rule_info__.parser__->fsm_tbl__;
+ fsm->fnd_T_of_chr_str(sf->p2__->c_string()->c_str(),sf->p2__);// stop parsing in call
+ sf->p2__->set_auto_delete(true);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| "unquoted-string" NS_unq_str::TH_unq_str {// T type
+ op // only accept when no identifier
+ Crtn_component* fsm = (Crtn_component*)rule_info__.parser__->fsm_tbl__;
+ fsm->fnd_T_of_chr_str(sf->p2__->unquoted_string()->c_str(),sf->p2__);// stop parsing in call
+ sf->p2__->set_auto_delete(true);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| |+| NULL { // forward errors
+/@
+ Forward the error.
+@/
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| "T-in-stbl" NULL {
+ op
+ using namespace yacco2_stbl;
+ T_sym_tbl_report_card report_card;
+ find_sym_in_stbl(report_card,*sf->p2__->t_def()->t_name()->c_str());
+ if(report_card.action_ == T_sym_tbl_report_card::not_fnd){
+ CAbs_lr1_sym* sym = new Err_T_not_in_stbl;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ report_card.tbl_entry_->used_ = true;
+ refered_T* rt = new refered_T(*sf->p2__);
+ rt->set_rc(*sf->p2__,__FILE__,__LINE__);
+
+ sf->p2__->add_T_into_xref(*rt);
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| "rule-in-stbl" NULL {
+ op
+ CAbs_lr1_sym* sym = new Err_not_T_for_rtned_token_from_th;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| "kw-in-stbl" NULL {
+ op
+ CAbs_lr1_sym* sym = new Err_not_T_for_rtned_token_from_th;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/rtn_componentsym.cpp b/web/yacco2/compiler/grammars/rtn_componentsym.cpp
new file mode 100644
index 0000000000..2fcfa02a66
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rtn_componentsym.cpp
@@ -0,0 +1,153 @@
+/*
+ File: rtn_componentsym.cpp
+ Date and Time: Fri Jan 30 18:55:22 2015
+*/
+#include "rtn_component.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_rtn_component;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_rtn_component::TH_rtn_component(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_rtn_component;
+ NS_rtn_component::Crtn_component Crtn_component_;// parallel-parser's parse table
+#define ssPARSE_TABLE Crtn_component_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_rtn_component::PROC_TH_rtn_component(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_rtn_component";
+ static bool one_time(false);
+ static NS_rtn_component::Crtn_component* NS_rtn_component_Crtn_component_(0);// parallel-parser's fsm table
+ static Parser* NS_rtn_component_Crtn_component_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_rtn_component_Crtn_component_ = new NS_rtn_component::Crtn_component();// parallel-parser's fsm table
+ NS_rtn_component_Crtn_component_parser = new Parser(*NS_rtn_component_Crtn_component_,Caller_pp);
+ }
+ proc_parser = NS_rtn_component_Crtn_component_parser;
+#include "wproc_pp_core.h"
+}
+void
+Crtn_component::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rrtn_component_:{
+ Rrtn_component* sym;
+ if(re->rule_ == 0){
+ sym = new Rrtn_component(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrtn_component*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rrtn_component_:{
+ Rrtn_component* sym;
+ if(re->rule_ == 0){
+ sym = new Rrtn_component(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrtn_component*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rrtn_component_:{
+ Rrtn_component* sym;
+ if(re->rule_ == 0){
+ sym = new Rrtn_component(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrtn_component*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rrtn_component_:{
+ Rrtn_component* sym;
+ if(re->rule_ == 0){
+ sym = new Rrtn_component(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrtn_component*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr4();
+ return;}
+ case rhs5_Rrtn_component_:{
+ Rrtn_component* sym;
+ if(re->rule_ == 0){
+ sym = new Rrtn_component(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrtn_component*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr5();
+ return;}
+ case rhs6_Rrtn_component_:{
+ Rrtn_component* sym;
+ if(re->rule_ == 0){
+ sym = new Rrtn_component(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrtn_component*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr6();
+ return;}
+ case rhs7_Rrtn_component_:{
+ Rrtn_component* sym;
+ if(re->rule_ == 0){
+ sym = new Rrtn_component(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrtn_component*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr7();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/rtn_componenttbl.cpp b/web/yacco2/compiler/grammars/rtn_componenttbl.cpp
new file mode 100644
index 0000000000..100de1962a
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rtn_componenttbl.cpp
@@ -0,0 +1,177 @@
+/*
+ File: rtn_componenttbl.cpp
+ Date and Time: Fri Jan 30 18:55:22 2015
+*/
+#include "rtn_component.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_rtn_component;// grammar's ns
+// first set terminals
+// LR1_eolr
+yacco2::UCHAR LA1_Crtn_component[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Crtn_component;
+extern yacco2::State S2_Crtn_component;
+struct S2ttd_Crtn_component{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[3];
+};
+S2ttd_Crtn_component S2tt_Crtn_component = {
+ 3 // no of threads
+ ,AR_Rrtn_component //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_c_string
+ ,(yacco2::Thread_entry*)&ITH_unq_str
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S3_Crtn_component;
+extern yacco2::State S4_Crtn_component;
+extern yacco2::State S5_Crtn_component;
+extern yacco2::State S6_Crtn_component;
+extern yacco2::State S7_Crtn_component;
+extern yacco2::State S8_Crtn_component;
+extern yacco2::State S9_Crtn_component;
+struct S1std_Crtn_component{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S1std_Crtn_component S1st_Crtn_component = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Crtn_component} // shift sym: LR1_parallel_operator
+ ,{569,(State*)&S1_Crtn_component} // accept sym: Rrtn_component
+ }// end of shift table
+};
+yacco2::Shift_entry S1pse_Crtn_component = {3,(State*)&S2_Crtn_component};
+yacco2::State S1_Crtn_component = //State's vectored into symbol: " No symbol"
+{1
+,(Shift_entry*)&S1pse_Crtn_component,0,0,0,(Shift_tbl*)&S1st_Crtn_component,0,(State_s_thread_tbl*)&S2tt_Crtn_component,0,0};
+struct S2std_Crtn_component{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[7];
+};
+S2std_Crtn_component S2st_Crtn_component = {
+ 7
+ ,
+ {// start of table
+ {6,(State*)&S3_Crtn_component} // shift sym: LR1_all_shift_operator
+ ,{275,(State*)&S4_Crtn_component} // shift sym: T_c_string
+ ,{277,(State*)&S5_Crtn_component} // shift sym: T_unquoted_string
+ ,{279,(State*)&S6_Crtn_component} // shift sym: T_identifier
+ ,{344,(State*)&S7_Crtn_component} // shift sym: T_in_stbl
+ ,{346,(State*)&S8_Crtn_component} // shift sym: rule_in_stbl
+ ,{367,(State*)&S9_Crtn_component} // shift sym: kw_in_stbl
+ }// end of shift table
+};
+yacco2::Shift_entry S2ase_Crtn_component = {6,(State*)&S3_Crtn_component};
+yacco2::State S2_Crtn_component = //State's vectored into symbol: "|||"
+{2
+,0,(Shift_entry*)&S2ase_Crtn_component
+,0,0,(Shift_tbl*)&S2st_Crtn_component,0,0,0,0};
+struct S3rtd_Crtn_component{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Crtn_component S3rt_Crtn_component = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crtn_component,Crtn_component::rhs4_Rrtn_component_}
+ }// end of reduce table
+};
+yacco2::State S3_Crtn_component = //State's vectored into symbol: "|+|"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_Crtn_component,0,0,0};
+struct S4rtd_Crtn_component{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Crtn_component S4rt_Crtn_component = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crtn_component,Crtn_component::rhs2_Rrtn_component_}
+ }// end of reduce table
+};
+yacco2::State S4_Crtn_component = //State's vectored into symbol: "c-string"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Crtn_component,0,0,0};
+struct S5rtd_Crtn_component{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Crtn_component S5rt_Crtn_component = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crtn_component,Crtn_component::rhs3_Rrtn_component_}
+ }// end of reduce table
+};
+yacco2::State S5_Crtn_component = //State's vectored into symbol: "unquoted-string"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Crtn_component,0,0,0};
+struct S6rtd_Crtn_component{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Crtn_component S6rt_Crtn_component = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crtn_component,Crtn_component::rhs1_Rrtn_component_}
+ }// end of reduce table
+};
+yacco2::State S6_Crtn_component = //State's vectored into symbol: "identifier"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Crtn_component,0,0,0};
+struct S7rtd_Crtn_component{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Crtn_component S7rt_Crtn_component = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crtn_component,Crtn_component::rhs5_Rrtn_component_}
+ }// end of reduce table
+};
+yacco2::State S7_Crtn_component = //State's vectored into symbol: "T-in-stbl"
+{7
+,0,0,0,0,0,(Reduce_tbl*)&S7rt_Crtn_component,0,0,0};
+struct S8rtd_Crtn_component{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S8rtd_Crtn_component S8rt_Crtn_component = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crtn_component,Crtn_component::rhs6_Rrtn_component_}
+ }// end of reduce table
+};
+yacco2::State S8_Crtn_component = //State's vectored into symbol: "rule-in-stbl"
+{8
+,0,0,0,0,0,(Reduce_tbl*)&S8rt_Crtn_component,0,0,0};
+struct S9rtd_Crtn_component{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Crtn_component S9rt_Crtn_component = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crtn_component,Crtn_component::rhs7_Rrtn_component_}
+ }// end of reduce table
+};
+yacco2::State S9_Crtn_component = //State's vectored into symbol: "kw-in-stbl"
+{9
+,0,0,0,0,0,(Reduce_tbl*)&S9rt_Crtn_component,0,0,0};
diff --git a/web/yacco2/compiler/grammars/rule_def_phrase.cpp b/web/yacco2/compiler/grammars/rule_def_phrase.cpp
new file mode 100644
index 0000000000..82ff379324
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rule_def_phrase.cpp
@@ -0,0 +1,604 @@
+/*
+ File: rule_def_phrase.cpp
+ Date and Time: Fri Jan 30 18:55:22 2015
+*/
+#include "rule_def_phrase.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_rule_def_phrase;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 16;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[4] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[5] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[6] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[7] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[8] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[9] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[10] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[11] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[12] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[13] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[14] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[15] = new Per_rule_s_reuse_table();
+}
+ Crule_def_phrase::
+ Crule_def_phrase()
+ :yacco2::CAbs_fsm
+ ("rule_def_phrase.lex"
+ ,"1.0"
+ ,"24 mar 2004"
+ ,false
+ ,"Parse a grammar's rule definition."
+ ,"Fri Jan 30 18:55:22 2015 "
+ ,S1_Crule_def_phrase){
+
+ rule_def_ = 0;
+
+ }
+
+Crule_def_phrase::~Crule_def_phrase(){
+
+ for(int x = 0;x < 16;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Crule_def_phrase::failed(){
+ return false;
+ }
+ void Crule_def_phrase::op(){
+ rule_def_ = 0;
+
+}
+int Crule_def_phrase::rhs_to_rules_mapping_[38] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,1 // subrule 4 for rule 2
+ ,2 // subrule 5 for rule 3
+ ,2 // subrule 6 for rule 3
+ ,2 // subrule 7 for rule 3
+ ,2 // subrule 8 for rule 3
+ ,3 // subrule 9 for rule 4
+ ,3 // subrule 10 for rule 4
+ ,3 // subrule 11 for rule 4
+ ,4 // subrule 12 for rule 5
+ ,4 // subrule 13 for rule 5
+ ,5 // subrule 14 for rule 6
+ ,5 // subrule 15 for rule 6
+ ,5 // subrule 16 for rule 6
+ ,6 // subrule 17 for rule 7
+ ,6 // subrule 18 for rule 7
+ ,6 // subrule 19 for rule 7
+ ,7 // subrule 20 for rule 8
+ ,7 // subrule 21 for rule 8
+ ,8 // subrule 22 for rule 9
+ ,8 // subrule 23 for rule 9
+ ,9 // subrule 24 for rule 10
+ ,10 // subrule 25 for rule 11
+ ,10 // subrule 26 for rule 11
+ ,10 // subrule 27 for rule 11
+ ,11 // subrule 28 for rule 12
+ ,11 // subrule 29 for rule 12
+ ,12 // subrule 30 for rule 13
+ ,12 // subrule 31 for rule 13
+ ,13 // subrule 32 for rule 14
+ ,13 // subrule 33 for rule 14
+ ,14 // subrule 34 for rule 15
+ ,14 // subrule 35 for rule 15
+ ,15 // subrule 36 for rule 16
+ ,15 // subrule 37 for rule 16
+};
+Rrule_def_phrase::Rrule_def_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrule_def_phrase",0,Crule_def_phrase::R_Rrule_def_phrase_,P,false,false){
+}
+
+void Rrule_def_phrase::sr1(){
+
+ Crule_def_phrase* fsm = (Crule_def_phrase*)rule_info__.parser__->fsm_tbl__;
+ fsm->rule_def_->bld_its_tree();
+ RSVP(fsm->rule_def_);
+ fsm->rule_def_ = 0;
+
+}
+
+Rrule_cweb_k::Rrule_cweb_k(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrule_cweb_k",0,Crule_def_phrase::R_Rrule_cweb_k_,P,false,false){
+}
+
+void Rrule_cweb_k::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_cweb_comment* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Crule_def_phrase* fsm = (Crule_def_phrase*)rule_info__.parser__->fsm_tbl__;
+ T_cweb_comment* k = sf->p2__;
+ AST* cwebk_t_ = new AST(*k);
+ AST* cweb_t_ = new AST();
+ T_cweb_marker* cw = new T_cweb_marker(cweb_t_);
+ cw->set_rc(*k,__FILE__,__LINE__);
+ fsm->rule_def_->add_cweb_marker(cweb_t_);
+ AST::set_content(*cweb_t_,*cw);
+ AST::join_pts(*cweb_t_,*cwebk_t_);
+
+}
+
+void Rrule_cweb_k::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rid::Rid(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rid",0,Crule_def_phrase::R_Rid_,P,false,false){
+}
+
+void Rid::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_identifier* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Crule_def_phrase* fsm = (Crule_def_phrase*)rule_info__.parser__->fsm_tbl__;
+ const char* skey = sf->p2__->identifier()->c_str();
+ fsm->rule_def_ = new rule_def(skey);
+ rule_in_stbl* ristbl = new rule_in_stbl(*fsm->rule_def_);
+ fsm->rule_def_->set_rc(*sf->p2__,__FILE__,__LINE__);
+ sf->p2__->set_auto_delete(true);
+ T_sym_tbl_report_card report_card;
+ using namespace yacco2_stbl;
+ add_sym_to_stbl(report_card,*skey,*ristbl,table_entry::defed,table_entry::rule);
+ if(report_card.status_ != T_sym_tbl_report_card::okay){
+ report_card.err_entry_->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(report_card.err_entry_);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ ristbl->stbl_idx(report_card.pos_);
+ report_card.tbl_entry_->defined_ = true;
+
+}
+
+void Rid::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ rule_in_stbl* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Crule_def_phrase* fsm = (Crule_def_phrase*)rule_info__.parser__->fsm_tbl__;
+ using namespace yacco2_stbl;
+ T_sym_tbl_report_card report_card;
+ find_sym_in_stbl(report_card,*sf->p2__->r_def()->rule_name()->c_str());
+ if(report_card.action_ == T_sym_tbl_report_card::not_fnd){
+ CAbs_lr1_sym* sym = new Err_rule_not_in_stbl;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ if(report_card.tbl_entry_->defined_ == true){
+ CAbs_lr1_sym* sym = new Err_rule_already_defined;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ fsm->rule_def_ = sf->p2__->r_def();
+ report_card.tbl_entry_->defined_ = true;
+
+}
+
+void Rid::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ CAbs_lr1_sym* sym = new Err_stble_has_entry_but_not_a_rule;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+
+}
+
+void Rid::sr4(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_no_rule_name_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rad_ab_tags::Rad_ab_tags(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rad_ab_tags",0,Crule_def_phrase::R_Rad_ab_tags_,P,false,false){
+}
+
+Rad_ab_tag::Rad_ab_tag(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rad_ab_tag",0,Crule_def_phrase::R_Rad_ab_tag_,P,false,false){
+}
+
+void Rad_ab_tag::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_AD* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Crule_def_phrase* fsm = (Crule_def_phrase*)rule_info__.parser__->fsm_tbl__;
+ if(fsm->rule_def_->autodelete() == true){
+ CAbs_lr1_sym* sym = new Err_already_defined_AD;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ fsm->rule_def_->autodelete(true);
+
+}
+
+void Rad_ab_tag::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_AB* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Crule_def_phrase* fsm = (Crule_def_phrase*)rule_info__.parser__->fsm_tbl__;
+ if(fsm->rule_def_->autoabort() == true){
+ CAbs_lr1_sym* sym = new Err_already_defined_AB;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ fsm->rule_def_->autoabort(true);
+
+}
+
+Rrule_parameters::Rrule_parameters(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrule_parameters",0,Crule_def_phrase::R_Rrule_parameters_,P,false,false){
+}
+
+Rrule_parameter::Rrule_parameter(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrule_parameter",0,Crule_def_phrase::R_Rrule_parameter_,P,false,false){
+}
+
+void Rrule_parameter::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ CAbs_lr1_sym* sym = new Err_not_lhs_pcnrl_mntr;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rlhs_phrase::Rlhs_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlhs_phrase",0,Crule_def_phrase::R_Rlhs_phrase_,P,false,false){
+}
+
+void Rlhs_phrase::sr1(){
+ struct SF{
+ LR1_fset_transience_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_rule_lhs_phrase* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Crule_def_phrase* fsm = (Crule_def_phrase*)rule_info__.parser__->fsm_tbl__;
+ fsm->rule_def_->rule_lhs(sf->p2__);
+
+}
+
+void Rlhs_phrase::sr2(){
+ struct SF{
+ LR1_fset_transience_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rparallel_monitor_phrase::Rparallel_monitor_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rparallel_monitor_phrase",0,Crule_def_phrase::R_Rparallel_monitor_phrase_,P,false,false){
+}
+
+void Rparallel_monitor_phrase::sr1(){
+ struct SF{
+ LR1_fset_transience_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_parallel_monitor_phrase* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Crule_def_phrase* fsm = (Crule_def_phrase*)rule_info__.parser__->fsm_tbl__;
+ fsm->rule_def_->parallel_mntr(sf->p2__);
+
+}
+
+void Rparallel_monitor_phrase::sr2(){
+ struct SF{
+ LR1_fset_transience_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rrule_body::Rrule_body(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrule_body",0,Crule_def_phrase::R_Rrule_body_,P,false,false){
+}
+
+Rsubrules::Rsubrules(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsubrules",0,Crule_def_phrase::R_Rsubrules_,P,false,false){
+}
+
+void Rsubrules::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_subrules_phrase* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Crule_def_phrase* fsm = (Crule_def_phrase*)rule_info__.parser__->fsm_tbl__;
+ fsm->rule_def_->subrules(sf->p2__);
+ // distribute rule def to its subrules
+ std::vector<T_subrule_def*>::iterator i = sf->p2__->subrules()->begin();
+ std::vector<T_subrule_def*>::iterator ie = sf->p2__->subrules()->end();
+ for(;i != ie;++i){
+ T_subrule_def* srd = *i;
+ srd->its_rule_def(fsm->rule_def_);
+ }
+
+}
+
+void Rsubrules::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rsubrules::sr3(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_no_sub_rule_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Ropen_par::Ropen_par(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Ropen_par",0,Crule_def_phrase::R_Ropen_par_,P,false,false){
+}
+
+void Ropen_par::sr1(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_no_open_parenthesis;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rclose_par::Rclose_par(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rclose_par",0,Crule_def_phrase::R_Rclose_par_,P,false,false){
+}
+
+void Rclose_par::sr1(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_no_close_parenthesis;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Ropen_brace::Ropen_brace(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Ropen_brace",0,Crule_def_phrase::R_Ropen_brace_,P,false,false){
+}
+
+void Ropen_brace::sr1(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_no_open_brace;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rclose_brace::Rclose_brace(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rclose_brace",0,Crule_def_phrase::R_Rclose_brace_,P,false,false){
+}
+
+void Rclose_brace::sr1(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_no_close_brace;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rlint::Rlint(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlint",0,Crule_def_phrase::R_Rlint_,P,false,false){
+}
+
diff --git a/web/yacco2/compiler/grammars/rule_def_phrase.fsc b/web/yacco2/compiler/grammars/rule_def_phrase.fsc
new file mode 100644
index 0000000000..f0ff8d9a5f
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rule_def_phrase.fsc
@@ -0,0 +1,26 @@
+/*
+ File: rule_def_phrase.fsc
+ Date and Time: Fri Jan 30 18:55:22 2015
+*/
+transitive y
+grammar-name "rule_def_phrase"
+name-space "NS_rule_def_phrase"
+thread-name "TH_rule_def_phrase"
+monolithic n
+file-name "rule_def_phrase.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ LR1_questionable_shift_operator
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 1
+ NS_identifier::TH_identifier
+end-list-of-transitive-threads
+list-of-used-threads 5
+ NS_cweb_or_c_k::TH_cweb_or_c_k
+ NS_identifier::TH_identifier
+ NS_lint_balls::TH_lint_balls
+ NS_subrules_phrase::TH_subrules_phrase
+ NS_t_def_delabort_tags::TH_t_def_delabort_tags
+end-list-of-used-threads
+fsm-comments
+"Parse a grammar's rule definition."
diff --git a/web/yacco2/compiler/grammars/rule_def_phrase.h b/web/yacco2/compiler/grammars/rule_def_phrase.h
new file mode 100644
index 0000000000..6aacd2737c
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rule_def_phrase.h
@@ -0,0 +1,231 @@
+/*
+ File: rule_def_phrase.h
+ Date and Time: Fri Jan 30 18:55:22 2015
+*/
+#ifndef __rule_def_phrase_h__
+#define __rule_def_phrase_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "lint_balls.h"
+#include "cweb_or_c_k.h"
+#include "identifier.h"
+#include "c_string.h"
+#include "t_def_delabort_tags.h"
+#include "subrules_phrase.h"
+#include "rule_lhs_phrase.h"
+#include "yacco2_stbl.h"
+#include "parallel_monitor_ph.h"
+
+extern yacco2::Thread_entry ITH_rule_def_phrase;
+
+extern yacco2::State S1_Crule_def_phrase;
+namespace NS_rule_def_phrase {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_rule_def_phrase(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_rule_def_phrase(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[16];
+};
+class Crule_def_phrase: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rrule_def_phrase_ = 569//start_of_rule_list + 0
+ ,rhs1_Rrule_def_phrase_ = 1
+ ,R_Rrule_cweb_k_ = 570//start_of_rule_list + 2
+ ,rhs1_Rrule_cweb_k_ = 2
+ ,rhs2_Rrule_cweb_k_ = 3
+ ,rhs3_Rrule_cweb_k_ = 4
+ ,R_Rid_ = 571//start_of_rule_list + 4
+ ,rhs1_Rid_ = 5
+ ,rhs2_Rid_ = 6
+ ,rhs3_Rid_ = 7
+ ,rhs4_Rid_ = 8
+ ,R_Rad_ab_tags_ = 572//start_of_rule_list + 6
+ ,rhs1_Rad_ab_tags_ = 9
+ ,rhs2_Rad_ab_tags_ = 10
+ ,rhs3_Rad_ab_tags_ = 11
+ ,R_Rad_ab_tag_ = 573//start_of_rule_list + 8
+ ,rhs1_Rad_ab_tag_ = 12
+ ,rhs2_Rad_ab_tag_ = 13
+ ,R_Rrule_parameters_ = 574//start_of_rule_list + 10
+ ,rhs1_Rrule_parameters_ = 14
+ ,rhs2_Rrule_parameters_ = 15
+ ,rhs3_Rrule_parameters_ = 16
+ ,R_Rrule_parameter_ = 575//start_of_rule_list + 12
+ ,rhs1_Rrule_parameter_ = 17
+ ,rhs2_Rrule_parameter_ = 18
+ ,rhs3_Rrule_parameter_ = 19
+ ,R_Rlhs_phrase_ = 576//start_of_rule_list + 14
+ ,rhs1_Rlhs_phrase_ = 20
+ ,rhs2_Rlhs_phrase_ = 21
+ ,R_Rparallel_monitor_phrase_ = 577//start_of_rule_list + 16
+ ,rhs1_Rparallel_monitor_phrase_ = 22
+ ,rhs2_Rparallel_monitor_phrase_ = 23
+ ,R_Rrule_body_ = 578//start_of_rule_list + 18
+ ,rhs1_Rrule_body_ = 24
+ ,R_Rsubrules_ = 579//start_of_rule_list + 20
+ ,rhs1_Rsubrules_ = 25
+ ,rhs2_Rsubrules_ = 26
+ ,rhs3_Rsubrules_ = 27
+ ,R_Ropen_par_ = 580//start_of_rule_list + 22
+ ,rhs1_Ropen_par_ = 28
+ ,rhs2_Ropen_par_ = 29
+ ,R_Rclose_par_ = 581//start_of_rule_list + 24
+ ,rhs1_Rclose_par_ = 30
+ ,rhs2_Rclose_par_ = 31
+ ,R_Ropen_brace_ = 582//start_of_rule_list + 26
+ ,rhs1_Ropen_brace_ = 32
+ ,rhs2_Ropen_brace_ = 33
+ ,R_Rclose_brace_ = 583//start_of_rule_list + 28
+ ,rhs1_Rclose_brace_ = 34
+ ,rhs2_Rclose_brace_ = 35
+ ,R_Rlint_ = 584//start_of_rule_list + 30
+ ,rhs1_Rlint_ = 36
+ ,rhs2_Rlint_ = 37
+ };
+ //no of la sets = 10
+ //no of states = 64
+ Crule_def_phrase();
+ ~Crule_def_phrase();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[38];
+
+ public:
+ rule_def* rule_def_;
+
+ };
+struct Rrule_def_phrase;
+struct Rrule_cweb_k;
+struct Rid;
+struct Rad_ab_tags;
+struct Rad_ab_tag;
+struct Rrule_parameters;
+struct Rrule_parameter;
+struct Rlhs_phrase;
+struct Rparallel_monitor_phrase;
+struct Rrule_body;
+struct Rsubrules;
+struct Ropen_par;
+struct Rclose_par;
+struct Ropen_brace;
+struct Rclose_brace;
+struct Rlint;
+struct Rrule_def_phrase:public yacco2::CAbs_lr1_sym {
+ Rrule_def_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rrule_cweb_k:public yacco2::CAbs_lr1_sym {
+ Rrule_cweb_k(yacco2::Parser* P);
+ public:
+ void sr2();
+ void sr3();
+};
+
+struct Rid:public yacco2::CAbs_lr1_sym {
+ Rid(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+};
+
+struct Rad_ab_tags:public yacco2::CAbs_lr1_sym {
+ Rad_ab_tags(yacco2::Parser* P);
+ public:
+};
+
+struct Rad_ab_tag:public yacco2::CAbs_lr1_sym {
+ Rad_ab_tag(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rrule_parameters:public yacco2::CAbs_lr1_sym {
+ Rrule_parameters(yacco2::Parser* P);
+ public:
+};
+
+struct Rrule_parameter:public yacco2::CAbs_lr1_sym {
+ Rrule_parameter(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rlhs_phrase:public yacco2::CAbs_lr1_sym {
+ Rlhs_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rparallel_monitor_phrase:public yacco2::CAbs_lr1_sym {
+ Rparallel_monitor_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rrule_body:public yacco2::CAbs_lr1_sym {
+ Rrule_body(yacco2::Parser* P);
+ public:
+};
+
+struct Rsubrules:public yacco2::CAbs_lr1_sym {
+ Rsubrules(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Ropen_par:public yacco2::CAbs_lr1_sym {
+ Ropen_par(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rclose_par:public yacco2::CAbs_lr1_sym {
+ Rclose_par(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Ropen_brace:public yacco2::CAbs_lr1_sym {
+ Ropen_brace(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rclose_brace:public yacco2::CAbs_lr1_sym {
+ Rclose_brace(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rlint:public yacco2::CAbs_lr1_sym {
+ Rlint(yacco2::Parser* P);
+ public:
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/rule_def_phrase.lex b/web/yacco2/compiler/grammars/rule_def_phrase.lex
new file mode 100644
index 0000000000..4be40138fb
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rule_def_phrase.lex
@@ -0,0 +1,340 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: rule_def_phrase.lex
+Dates: 3 Jun 2004
+Purpose: parse a rule definition construct
+ Verifies if the symbol being defined is duplicate
+ within yacco2's symbol table.
+ Adds symbol to global symbol table.
+Output: rule_def
+ assorted errors
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+Parse a grammar's rule definition.\fbreak
+\fbreak
+Example of a rule definition to parse:\fbreak
+\listing{"/usr/local/yacco2/diagrams+etc/ruledef.txt"}
+@/
+fsm
+(fsm-id "rule_def_phrase.lex"
+,fsm-filename rule_def_phrase
+,fsm-namespace NS_rule_def_phrase
+,fsm-class Crule_def_phrase{
+ user-prefix-declaration
+#include "lint_balls.h"
+#include "cweb_or_c_k.h"
+#include "identifier.h"
+#include "c_string.h"
+#include "t_def_delabort_tags.h"
+#include "subrules_phrase.h"
+#include "rule_lhs_phrase.h"
+#include "yacco2_stbl.h"
+#include "parallel_monitor_ph.h"
+ ***
+ user-declaration
+ public:
+ rule_def* rule_def_;
+ ***
+ op
+ rule_def_ = 0;
+ ***
+ constructor
+ rule_def_ = 0;
+ ***
+}
+,fsm-version "1.0",fsm-date "24 mar 2004",fsm-debug "false"
+,fsm-comments "Parse a grammar's rule definition.")
+parallel-parser
+(
+ parallel-thread-function
+ TH_rule_def_phrase
+ ***
+ parallel-la-boundary
+ eolr
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rrule_def_phrase (){
+ -> Rid Rlint Rad_ab_tags
+ Rlint Rrule_cweb_k Rlint
+ Ropen_par Rlint
+ Rrule_parameters
+ Rclose_par Rlint
+ Rrule_body
+ {
+ op
+ Crule_def_phrase* fsm = (Crule_def_phrase*)rule_info__.parser__->fsm_tbl__;
+ fsm->rule_def_->bld_its_tree();
+ RSVP(fsm->rule_def_);
+ fsm->rule_def_ = 0;
+ ***
+ }
+}
+
+Rrule_cweb_k (){
+ ->
+ -> ||| "cweb-comment" NS_cweb_or_c_k::TH_cweb_or_c_k {
+ op
+ Crule_def_phrase* fsm = (Crule_def_phrase*)rule_info__.parser__->fsm_tbl__;
+ T_cweb_comment* k = sf->p2__;
+ AST* cwebk_t_ = new AST(*k);
+ AST* cweb_t_ = new AST();
+ T_cweb_marker* cw = new T_cweb_marker(cweb_t_);
+ cw->set_rc(*k,__FILE__,__LINE__);
+ fsm->rule_def_->add_cweb_marker(cweb_t_);
+ AST::set_content(*cweb_t_,*cw);
+ AST::join_pts(*cweb_t_,*cwebk_t_);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+Rid (){
+ -> ||| identifier NS_identifier::TH_identifier {
+ op
+ Crule_def_phrase* fsm = (Crule_def_phrase*)rule_info__.parser__->fsm_tbl__;
+ const char* skey = sf->p2__->identifier()->c_str();
+ fsm->rule_def_ = new rule_def(skey);
+ rule_in_stbl* ristbl = new rule_in_stbl(*fsm->rule_def_);
+ fsm->rule_def_->set_rc(*sf->p2__,__FILE__,__LINE__);
+ sf->p2__->set_auto_delete(true);
+ T_sym_tbl_report_card report_card;
+ using namespace yacco2_stbl;
+ add_sym_to_stbl(report_card,*skey,*ristbl,table_entry::defed,table_entry::rule);
+ if(report_card.status_ != T_sym_tbl_report_card::okay){
+ report_card.err_entry_->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(report_card.err_entry_);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ ristbl->stbl_idx(report_card.pos_);
+ report_card.tbl_entry_->defined_ = true;
+ ***
+ }
+ -> ||| "rule-in-stbl" NULL {// referenced created it, now set defined
+ op
+ Crule_def_phrase* fsm = (Crule_def_phrase*)rule_info__.parser__->fsm_tbl__;
+ using namespace yacco2_stbl;
+ T_sym_tbl_report_card report_card;
+ find_sym_in_stbl(report_card,*sf->p2__->r_def()->rule_name()->c_str());
+ if(report_card.action_ == T_sym_tbl_report_card::not_fnd){
+ CAbs_lr1_sym* sym = new Err_rule_not_in_stbl;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ if(report_card.tbl_entry_->defined_ == true){
+ CAbs_lr1_sym* sym = new Err_rule_already_defined;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ fsm->rule_def_ = sf->p2__->r_def();
+ report_card.tbl_entry_->defined_ = true;
+ ***
+ }
+ -> ||| |?| NULL {// other sym. tbl type entry
+ op
+ CAbs_lr1_sym* sym = new Err_stble_has_entry_but_not_a_rule;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_rule_name_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rad_ab_tags (){
+ -> Rad_ab_tag Rlint
+ -> Rad_ab_tags Rad_ab_tag Rlint
+ ->
+}
+
+Rad_ab_tag (){
+ -> ||| "#AD" NS_t_def_delabort_tags::TH_t_def_delabort_tags {
+ op
+ Crule_def_phrase* fsm = (Crule_def_phrase*)rule_info__.parser__->fsm_tbl__;
+ if(fsm->rule_def_->autodelete() == true){
+ CAbs_lr1_sym* sym = new Err_already_defined_AD;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ fsm->rule_def_->autodelete(true);
+ ***
+ }
+ -> ||| "#AB" NULL {
+ op
+ Crule_def_phrase* fsm = (Crule_def_phrase*)rule_info__.parser__->fsm_tbl__;
+ if(fsm->rule_def_->autoabort() == true){
+ CAbs_lr1_sym* sym = new Err_already_defined_AB;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ fsm->rule_def_->autoabort(true);
+ ***
+ }
+}
+
+Rrule_parameters (){
+ -> // correct that epsilon works instead of inv shift
+ -> Rrule_parameter
+ -> Rrule_parameters "," Rrule_parameter
+}
+
+Rrule_parameter (){
+ -> ||| |?| NULL{
+ op
+ CAbs_lr1_sym* sym = new Err_not_lhs_pcnrl_mntr;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| "#lhs" NS_identifier::TH_identifier Rlhs_phrase
+ -> ||| "#parallel-control-monitor" NULL Rparallel_monitor_phrase
+
+}
+
+Rlhs_phrase (){
+ -> |t| "rule-lhs-phrase" NS_rule_lhs_phrase::PROC_TH_rule_lhs_phrase {
+ op
+ Crule_def_phrase* fsm = (Crule_def_phrase*)rule_info__.parser__->fsm_tbl__;
+ fsm->rule_def_->rule_lhs(sf->p2__);
+ ***
+ }
+ -> |t| |?| NULL{ //pass on its error
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rparallel_monitor_phrase (){
+ -> |t| "parallel-monitor-phrase" NS_parallel_monitor_ph::PROC_TH_parallel_monitor_ph {
+ op
+ Crule_def_phrase* fsm = (Crule_def_phrase*)rule_info__.parser__->fsm_tbl__;
+ fsm->rule_def_->parallel_mntr(sf->p2__);
+ ***
+ }
+ -> |t| |?| NULL{
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rrule_body (){
+ -> Ropen_brace Rlint
+ Rsubrules Rlint
+ Rclose_brace Rlint
+}
+
+Rsubrules (){
+ -> ||| "subrules-phrase" NS_subrules_phrase::TH_subrules_phrase{
+ op
+ Crule_def_phrase* fsm = (Crule_def_phrase*)rule_info__.parser__->fsm_tbl__;
+ fsm->rule_def_->subrules(sf->p2__);
+ // distribute rule def to its subrules
+ std::vector<T_subrule_def*>::iterator i = sf->p2__->subrules()->begin();
+ std::vector<T_subrule_def*>::iterator ie = sf->p2__->subrules()->end();
+ for(;i != ie;++i){
+ T_subrule_def* srd = *i;
+ srd->its_rule_def(fsm->rule_def_);
+ }
+ ***
+ }
+ -> ||| |?| NULL{
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_sub_rule_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Ropen_par (){
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_open_parenthesis;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> "("
+}
+
+Rclose_par (){
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_close_parenthesis;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ")"
+}
+
+Ropen_brace (){
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_open_brace;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> "{"
+}
+
+Rclose_brace (){
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_close_brace;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> "}"
+}
+
+Rlint (){
+ -> ||| lint NS_lint_balls::TH_lint_balls
+ ->
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/rule_def_phrasesym.cpp b/web/yacco2/compiler/grammars/rule_def_phrasesym.cpp
new file mode 100644
index 0000000000..7f25b3e6cc
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rule_def_phrasesym.cpp
@@ -0,0 +1,587 @@
+/*
+ File: rule_def_phrasesym.cpp
+ Date and Time: Fri Jan 30 18:55:22 2015
+*/
+#include "rule_def_phrase.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_rule_def_phrase;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_rule_def_phrase::TH_rule_def_phrase(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_rule_def_phrase;
+ NS_rule_def_phrase::Crule_def_phrase Crule_def_phrase_;// parallel-parser's parse table
+#define ssPARSE_TABLE Crule_def_phrase_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_rule_def_phrase::PROC_TH_rule_def_phrase(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_rule_def_phrase";
+ static bool one_time(false);
+ static NS_rule_def_phrase::Crule_def_phrase* NS_rule_def_phrase_Crule_def_phrase_(0);// parallel-parser's fsm table
+ static Parser* NS_rule_def_phrase_Crule_def_phrase_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_rule_def_phrase_Crule_def_phrase_ = new NS_rule_def_phrase::Crule_def_phrase();// parallel-parser's fsm table
+ NS_rule_def_phrase_Crule_def_phrase_parser = new Parser(*NS_rule_def_phrase_Crule_def_phrase_,Caller_pp);
+ }
+ proc_parser = NS_rule_def_phrase_Crule_def_phrase_parser;
+#include "wproc_pp_core.h"
+}
+void
+Crule_def_phrase::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rrule_def_phrase_:{
+ Rrule_def_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rrule_def_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrule_def_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 12;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rrule_cweb_k_:{
+ Rrule_cweb_k* sym;
+ if(re->rule_ == 0){
+ sym = new Rrule_cweb_k(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrule_cweb_k*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs2_Rrule_cweb_k_:{
+ Rrule_cweb_k* sym;
+ if(re->rule_ == 0){
+ sym = new Rrule_cweb_k(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrule_cweb_k*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rrule_cweb_k_:{
+ Rrule_cweb_k* sym;
+ if(re->rule_ == 0){
+ sym = new Rrule_cweb_k(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrule_cweb_k*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rid_:{
+ Rid* sym;
+ if(re->rule_ == 0){
+ sym = new Rid(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rid*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rid_:{
+ Rid* sym;
+ if(re->rule_ == 0){
+ sym = new Rid(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rid*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rid_:{
+ Rid* sym;
+ if(re->rule_ == 0){
+ sym = new Rid(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rid*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rid_:{
+ Rid* sym;
+ if(re->rule_ == 0){
+ sym = new Rid(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rid*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr4();
+ return;}
+ case rhs1_Rad_ab_tags_:{
+ Rad_ab_tags* sym;
+ if(re->rule_ == 0){
+ sym = new Rad_ab_tags(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rad_ab_tags*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rad_ab_tags_:{
+ Rad_ab_tags* sym;
+ if(re->rule_ == 0){
+ sym = new Rad_ab_tags(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rad_ab_tags*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ return;}
+ case rhs3_Rad_ab_tags_:{
+ Rad_ab_tags* sym;
+ if(re->rule_ == 0){
+ sym = new Rad_ab_tags(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rad_ab_tags*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs1_Rad_ab_tag_:{
+ Rad_ab_tag* sym;
+ if(re->rule_ == 0){
+ sym = new Rad_ab_tag(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rad_ab_tag*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rad_ab_tag_:{
+ Rad_ab_tag* sym;
+ if(re->rule_ == 0){
+ sym = new Rad_ab_tag(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rad_ab_tag*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rrule_parameters_:{
+ Rrule_parameters* sym;
+ if(re->rule_ == 0){
+ sym = new Rrule_parameters(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrule_parameters*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs2_Rrule_parameters_:{
+ Rrule_parameters* sym;
+ if(re->rule_ == 0){
+ sym = new Rrule_parameters(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrule_parameters*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs3_Rrule_parameters_:{
+ Rrule_parameters* sym;
+ if(re->rule_ == 0){
+ sym = new Rrule_parameters(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrule_parameters*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ return;}
+ case rhs1_Rrule_parameter_:{
+ Rrule_parameter* sym;
+ if(re->rule_ == 0){
+ sym = new Rrule_parameter(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrule_parameter*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rrule_parameter_:{
+ Rrule_parameter* sym;
+ if(re->rule_ == 0){
+ sym = new Rrule_parameter(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrule_parameter*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ return;}
+ case rhs3_Rrule_parameter_:{
+ Rrule_parameter* sym;
+ if(re->rule_ == 0){
+ sym = new Rrule_parameter(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrule_parameter*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ return;}
+ case rhs1_Rlhs_phrase_:{
+ Rlhs_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rlhs_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlhs_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rlhs_phrase_:{
+ Rlhs_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rlhs_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlhs_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rparallel_monitor_phrase_:{
+ Rparallel_monitor_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rparallel_monitor_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rparallel_monitor_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rparallel_monitor_phrase_:{
+ Rparallel_monitor_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rparallel_monitor_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rparallel_monitor_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rrule_body_:{
+ Rrule_body* sym;
+ if(re->rule_ == 0){
+ sym = new Rrule_body(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrule_body*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 6;
+
+
+ return;}
+ case rhs1_Rsubrules_:{
+ Rsubrules* sym;
+ if(re->rule_ == 0){
+ sym = new Rsubrules(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsubrules*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rsubrules_:{
+ Rsubrules* sym;
+ if(re->rule_ == 0){
+ sym = new Rsubrules(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsubrules*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rsubrules_:{
+ Rsubrules* sym;
+ if(re->rule_ == 0){
+ sym = new Rsubrules(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsubrules*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Ropen_par_:{
+ Ropen_par* sym;
+ if(re->rule_ == 0){
+ sym = new Ropen_par(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ropen_par*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Ropen_par_:{
+ Ropen_par* sym;
+ if(re->rule_ == 0){
+ sym = new Ropen_par(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ropen_par*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rclose_par_:{
+ Rclose_par* sym;
+ if(re->rule_ == 0){
+ sym = new Rclose_par(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclose_par*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rclose_par_:{
+ Rclose_par* sym;
+ if(re->rule_ == 0){
+ sym = new Rclose_par(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclose_par*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Ropen_brace_:{
+ Ropen_brace* sym;
+ if(re->rule_ == 0){
+ sym = new Ropen_brace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ropen_brace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Ropen_brace_:{
+ Ropen_brace* sym;
+ if(re->rule_ == 0){
+ sym = new Ropen_brace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ropen_brace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rclose_brace_:{
+ Rclose_brace* sym;
+ if(re->rule_ == 0){
+ sym = new Rclose_brace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclose_brace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rclose_brace_:{
+ Rclose_brace* sym;
+ if(re->rule_ == 0){
+ sym = new Rclose_brace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclose_brace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rlint_:{
+ Rlint* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rlint_:{
+ Rlint* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/rule_def_phrasetbl.cpp b/web/yacco2/compiler/grammars/rule_def_phrasetbl.cpp
new file mode 100644
index 0000000000..7052ddbc55
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rule_def_phrasetbl.cpp
@@ -0,0 +1,1361 @@
+/*
+ File: rule_def_phrasetbl.cpp
+ Date and Time: Fri Jan 30 18:55:22 2015
+*/
+#include "rule_def_phrase.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_rule_def_phrase;// grammar's ns
+// first set terminals
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+// raw_open_bracket
+yacco2::UCHAR LA1_Crule_def_phrase[] ={
+2
+,0,17
+,6,1
+};
+// LR1_eolr
+yacco2::UCHAR LA2_Crule_def_phrase[] ={
+1
+,0,4
+};
+// LR1_questionable_shift_operator
+// raw_open_bracket
+yacco2::UCHAR LA3_Crule_def_phrase[] ={
+2
+,0,1
+,6,1
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+// raw_close_bracket
+// raw_comma
+yacco2::UCHAR LA4_Crule_def_phrase[] ={
+2
+,0,17
+,6,18
+};
+// LR1_questionable_shift_operator
+// raw_close_bracket
+// raw_comma
+yacco2::UCHAR LA5_Crule_def_phrase[] ={
+2
+,0,1
+,6,18
+};
+// LR1_questionable_shift_operator
+// raw_open_brace
+yacco2::UCHAR LA6_Crule_def_phrase[] ={
+2
+,0,1
+,16,8
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+yacco2::UCHAR LA7_Crule_def_phrase[] ={
+1
+,0,17
+};
+// LR1_questionable_shift_operator
+// raw_close_brace
+yacco2::UCHAR LA8_Crule_def_phrase[] ={
+2
+,0,1
+,16,32
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+// raw_open_brace
+yacco2::UCHAR LA9_Crule_def_phrase[] ={
+2
+,0,17
+,16,8
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+// raw_close_brace
+yacco2::UCHAR LA10_Crule_def_phrase[] ={
+2
+,0,17
+,16,32
+};
+extern yacco2::State S1_Crule_def_phrase;
+extern yacco2::State S2_Crule_def_phrase;
+extern yacco2::State S3_Crule_def_phrase;
+struct S3ttd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S3ttd_Crule_def_phrase S3tt_Crule_def_phrase = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S4_Crule_def_phrase;
+extern yacco2::State S5_Crule_def_phrase;
+extern yacco2::State S6_Crule_def_phrase;
+extern yacco2::State S7_Crule_def_phrase;
+extern yacco2::State S8_Crule_def_phrase;
+extern yacco2::State S9_Crule_def_phrase;
+extern yacco2::State S10_Crule_def_phrase;
+struct S10ttd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[2];
+};
+S10ttd_Crule_def_phrase S10tt_Crule_def_phrase = {
+ 2 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_t_def_delabort_tags
+ ,(yacco2::Thread_entry*)&ITH_lint_balls
+};
+extern yacco2::State S11_Crule_def_phrase;
+extern yacco2::State S12_Crule_def_phrase;
+extern yacco2::State S13_Crule_def_phrase;
+extern yacco2::State S14_Crule_def_phrase;
+extern yacco2::State S15_Crule_def_phrase;
+extern yacco2::State S16_Crule_def_phrase;
+extern yacco2::State S17_Crule_def_phrase;
+extern yacco2::State S18_Crule_def_phrase;
+extern yacco2::State S19_Crule_def_phrase;
+extern yacco2::State S20_Crule_def_phrase;
+extern yacco2::State S21_Crule_def_phrase;
+struct S21ttd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S21ttd_Crule_def_phrase S21tt_Crule_def_phrase = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S22_Crule_def_phrase;
+extern yacco2::State S23_Crule_def_phrase;
+extern yacco2::State S24_Crule_def_phrase;
+extern yacco2::State S25_Crule_def_phrase;
+extern yacco2::State S26_Crule_def_phrase;
+extern yacco2::State S27_Crule_def_phrase;
+extern yacco2::State S28_Crule_def_phrase;
+extern yacco2::State S29_Crule_def_phrase;
+extern yacco2::State S30_Crule_def_phrase;
+extern yacco2::State S31_Crule_def_phrase;
+extern yacco2::State S32_Crule_def_phrase;
+extern yacco2::State S33_Crule_def_phrase;
+extern yacco2::State S34_Crule_def_phrase;
+extern yacco2::State S35_Crule_def_phrase;
+extern yacco2::State S36_Crule_def_phrase;
+extern yacco2::State S37_Crule_def_phrase;
+extern yacco2::State S38_Crule_def_phrase;
+extern yacco2::State S39_Crule_def_phrase;
+extern yacco2::State S40_Crule_def_phrase;
+extern yacco2::State S41_Crule_def_phrase;
+extern yacco2::State S42_Crule_def_phrase;
+extern yacco2::State S43_Crule_def_phrase;
+extern yacco2::State S44_Crule_def_phrase;
+extern yacco2::State S45_Crule_def_phrase;
+extern yacco2::State S46_Crule_def_phrase;
+struct S46ttd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S46ttd_Crule_def_phrase S46tt_Crule_def_phrase = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_lint_balls
+};
+extern yacco2::State S47_Crule_def_phrase;
+extern yacco2::State S48_Crule_def_phrase;
+struct S48ttd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S48ttd_Crule_def_phrase S48tt_Crule_def_phrase = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_t_def_delabort_tags
+};
+extern yacco2::State S49_Crule_def_phrase;
+extern yacco2::State S50_Crule_def_phrase;
+extern yacco2::State S51_Crule_def_phrase;
+extern yacco2::State S52_Crule_def_phrase;
+extern yacco2::State S53_Crule_def_phrase;
+struct S53ttd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S53ttd_Crule_def_phrase S53tt_Crule_def_phrase = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_cweb_or_c_k
+};
+extern yacco2::State S54_Crule_def_phrase;
+extern yacco2::State S55_Crule_def_phrase;
+extern yacco2::State S56_Crule_def_phrase;
+extern yacco2::State S57_Crule_def_phrase;
+extern yacco2::State S58_Crule_def_phrase;
+extern yacco2::State S59_Crule_def_phrase;
+extern yacco2::State S60_Crule_def_phrase;
+extern yacco2::State S61_Crule_def_phrase;
+extern yacco2::State S62_Crule_def_phrase;
+struct S62ttd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S62ttd_Crule_def_phrase S62tt_Crule_def_phrase = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_subrules_phrase
+};
+extern yacco2::State S63_Crule_def_phrase;
+extern yacco2::State S64_Crule_def_phrase;
+struct S1std_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S1std_Crule_def_phrase S1st_Crule_def_phrase = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S2_Crule_def_phrase} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S3_Crule_def_phrase} // shift sym: LR1_parallel_operator
+ ,{569,(State*)&S1_Crule_def_phrase} // accept sym: Rrule_def_phrase
+ ,{571,(State*)&S7_Crule_def_phrase} // shift sym: Rid
+ }// end of shift table
+};
+yacco2::Shift_entry S1pse_Crule_def_phrase = {3,(State*)&S3_Crule_def_phrase};
+yacco2::Shift_entry S1qse_Crule_def_phrase = {0,(State*)&S2_Crule_def_phrase};
+yacco2::State S1_Crule_def_phrase = //State's vectored into symbol: " No symbol"
+{1
+,(Shift_entry*)&S1pse_Crule_def_phrase,0,0,0,(Shift_tbl*)&S1st_Crule_def_phrase,0,(State_s_thread_tbl*)&S3tt_Crule_def_phrase,0,(Shift_entry*)&S1qse_Crule_def_phrase
+};
+struct S2rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Crule_def_phrase S2rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crule_def_phrase,Crule_def_phrase::rhs4_Rid_}
+ }// end of reduce table
+};
+yacco2::State S2_Crule_def_phrase = //State's vectored into symbol: "|?|"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Crule_def_phrase,0,0,0};
+struct S3std_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S3std_Crule_def_phrase S3st_Crule_def_phrase = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S4_Crule_def_phrase} // shift sym: LR1_questionable_shift_operator
+ ,{279,(State*)&S5_Crule_def_phrase} // shift sym: T_identifier
+ ,{346,(State*)&S6_Crule_def_phrase} // shift sym: rule_in_stbl
+ }// end of shift table
+};
+yacco2::Shift_entry S3qse_Crule_def_phrase = {0,(State*)&S4_Crule_def_phrase};
+yacco2::State S3_Crule_def_phrase = //State's vectored into symbol: "|||"
+{3
+,0,0,0,0,(Shift_tbl*)&S3st_Crule_def_phrase,0,0,0,(Shift_entry*)&S3qse_Crule_def_phrase
+};
+struct S4rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Crule_def_phrase S4rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crule_def_phrase,Crule_def_phrase::rhs3_Rid_}
+ }// end of reduce table
+};
+yacco2::State S4_Crule_def_phrase = //State's vectored into symbol: "|?|"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Crule_def_phrase,0,0,0};
+struct S5rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Crule_def_phrase S5rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crule_def_phrase,Crule_def_phrase::rhs1_Rid_}
+ }// end of reduce table
+};
+yacco2::State S5_Crule_def_phrase = //State's vectored into symbol: "identifier"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Crule_def_phrase,0,0,0};
+struct S6rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Crule_def_phrase S6rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crule_def_phrase,Crule_def_phrase::rhs2_Rid_}
+ }// end of reduce table
+};
+yacco2::State S6_Crule_def_phrase = //State's vectored into symbol: "rule-in-stbl"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Crule_def_phrase,0,0,0};
+struct S7std_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S7std_Crule_def_phrase S7st_Crule_def_phrase = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S46_Crule_def_phrase} // shift sym: LR1_parallel_operator
+ ,{584,(State*)&S8_Crule_def_phrase} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S7pse_Crule_def_phrase = {3,(State*)&S46_Crule_def_phrase};
+struct S7rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Crule_def_phrase S7rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crule_def_phrase,Crule_def_phrase::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S7_Crule_def_phrase = //State's vectored into symbol: "Rid"
+{7
+,(Shift_entry*)&S7pse_Crule_def_phrase,0,0,0,(Shift_tbl*)&S7st_Crule_def_phrase,(Reduce_tbl*)&S7rt_Crule_def_phrase,(State_s_thread_tbl*)&S46tt_Crule_def_phrase,0,0};
+struct S8std_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S8std_Crule_def_phrase S8st_Crule_def_phrase = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S48_Crule_def_phrase} // shift sym: LR1_parallel_operator
+ ,{572,(State*)&S9_Crule_def_phrase} // shift sym: Rad_ab_tags
+ ,{573,(State*)&S51_Crule_def_phrase} // shift sym: Rad_ab_tag
+ }// end of shift table
+};
+yacco2::Shift_entry S8pse_Crule_def_phrase = {3,(State*)&S48_Crule_def_phrase};
+struct S8rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S8rtd_Crule_def_phrase S8rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crule_def_phrase,Crule_def_phrase::rhs3_Rad_ab_tags_}
+ }// end of reduce table
+};
+yacco2::State S8_Crule_def_phrase = //State's vectored into symbol: "Rlint"
+{8
+,(Shift_entry*)&S8pse_Crule_def_phrase,0,0,0,(Shift_tbl*)&S8st_Crule_def_phrase,(Reduce_tbl*)&S8rt_Crule_def_phrase,(State_s_thread_tbl*)&S48tt_Crule_def_phrase,0,0};
+struct S9std_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S9std_Crule_def_phrase S9st_Crule_def_phrase = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S10_Crule_def_phrase} // shift sym: LR1_parallel_operator
+ ,{573,(State*)&S49_Crule_def_phrase} // shift sym: Rad_ab_tag
+ ,{584,(State*)&S14_Crule_def_phrase} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S9pse_Crule_def_phrase = {3,(State*)&S10_Crule_def_phrase};
+struct S9rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Crule_def_phrase S9rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Crule_def_phrase,Crule_def_phrase::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S9_Crule_def_phrase = //State's vectored into symbol: "Rad_ab_tags"
+{9
+,(Shift_entry*)&S9pse_Crule_def_phrase,0,0,0,(Shift_tbl*)&S9st_Crule_def_phrase,(Reduce_tbl*)&S9rt_Crule_def_phrase,(State_s_thread_tbl*)&S10tt_Crule_def_phrase,0,0};
+struct S10std_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S10std_Crule_def_phrase S10st_Crule_def_phrase = {
+ 3
+ ,
+ {// start of table
+ {285,(State*)&S11_Crule_def_phrase} // shift sym: T_AD
+ ,{286,(State*)&S12_Crule_def_phrase} // shift sym: T_AB
+ ,{375,(State*)&S13_Crule_def_phrase} // shift sym: T_lint
+ }// end of shift table
+};
+yacco2::State S10_Crule_def_phrase = //State's vectored into symbol: "|||"
+{10
+,0,0,0,0,(Shift_tbl*)&S10st_Crule_def_phrase,0,0,0,0};
+struct S11rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Crule_def_phrase S11rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crule_def_phrase,Crule_def_phrase::rhs1_Rad_ab_tag_}
+ }// end of reduce table
+};
+yacco2::State S11_Crule_def_phrase = //State's vectored into symbol: "#AD"
+{11
+,0,0,0,0,0,(Reduce_tbl*)&S11rt_Crule_def_phrase,0,0,0};
+struct S12rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S12rtd_Crule_def_phrase S12rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crule_def_phrase,Crule_def_phrase::rhs2_Rad_ab_tag_}
+ }// end of reduce table
+};
+yacco2::State S12_Crule_def_phrase = //State's vectored into symbol: "#AB"
+{12
+,0,0,0,0,0,(Reduce_tbl*)&S12rt_Crule_def_phrase,0,0,0};
+struct S13rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S13rtd_Crule_def_phrase S13rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Crule_def_phrase,Crule_def_phrase::rhs1_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S13_Crule_def_phrase = //State's vectored into symbol: "lint"
+{13
+,0,0,0,0,0,(Reduce_tbl*)&S13rt_Crule_def_phrase,0,0,0};
+struct S14std_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S14std_Crule_def_phrase S14st_Crule_def_phrase = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S53_Crule_def_phrase} // shift sym: LR1_parallel_operator
+ ,{570,(State*)&S15_Crule_def_phrase} // shift sym: Rrule_cweb_k
+ }// end of shift table
+};
+yacco2::Shift_entry S14pse_Crule_def_phrase = {3,(State*)&S53_Crule_def_phrase};
+struct S14rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S14rtd_Crule_def_phrase S14rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crule_def_phrase,Crule_def_phrase::rhs1_Rrule_cweb_k_}
+ }// end of reduce table
+};
+yacco2::State S14_Crule_def_phrase = //State's vectored into symbol: "Rlint"
+{14
+,(Shift_entry*)&S14pse_Crule_def_phrase,0,0,0,(Shift_tbl*)&S14st_Crule_def_phrase,(Reduce_tbl*)&S14rt_Crule_def_phrase,(State_s_thread_tbl*)&S53tt_Crule_def_phrase,0,0};
+struct S15std_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S15std_Crule_def_phrase S15st_Crule_def_phrase = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S46_Crule_def_phrase} // shift sym: LR1_parallel_operator
+ ,{584,(State*)&S16_Crule_def_phrase} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S15pse_Crule_def_phrase = {3,(State*)&S46_Crule_def_phrase};
+struct S15rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S15rtd_Crule_def_phrase S15rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Crule_def_phrase,Crule_def_phrase::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S15_Crule_def_phrase = //State's vectored into symbol: "Rrule_cweb_k"
+{15
+,(Shift_entry*)&S15pse_Crule_def_phrase,0,0,0,(Shift_tbl*)&S15st_Crule_def_phrase,(Reduce_tbl*)&S15rt_Crule_def_phrase,(State_s_thread_tbl*)&S46tt_Crule_def_phrase,0,0};
+struct S16std_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S16std_Crule_def_phrase S16st_Crule_def_phrase = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S56_Crule_def_phrase} // shift sym: LR1_questionable_shift_operator
+ ,{48,(State*)&S57_Crule_def_phrase} // shift sym: raw_open_bracket
+ ,{580,(State*)&S17_Crule_def_phrase} // shift sym: Ropen_par
+ }// end of shift table
+};
+yacco2::Shift_entry S16qse_Crule_def_phrase = {0,(State*)&S56_Crule_def_phrase};
+yacco2::State S16_Crule_def_phrase = //State's vectored into symbol: "Rlint"
+{16
+,0,0,0,0,(Shift_tbl*)&S16st_Crule_def_phrase,0,0,0,(Shift_entry*)&S16qse_Crule_def_phrase
+};
+struct S17std_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S17std_Crule_def_phrase S17st_Crule_def_phrase = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S46_Crule_def_phrase} // shift sym: LR1_parallel_operator
+ ,{584,(State*)&S18_Crule_def_phrase} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S17pse_Crule_def_phrase = {3,(State*)&S46_Crule_def_phrase};
+struct S17rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S17rtd_Crule_def_phrase S17rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Crule_def_phrase,Crule_def_phrase::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S17_Crule_def_phrase = //State's vectored into symbol: "Ropen_par"
+{17
+,(Shift_entry*)&S17pse_Crule_def_phrase,0,0,0,(Shift_tbl*)&S17st_Crule_def_phrase,(Reduce_tbl*)&S17rt_Crule_def_phrase,(State_s_thread_tbl*)&S46tt_Crule_def_phrase,0,0};
+struct S18std_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S18std_Crule_def_phrase S18st_Crule_def_phrase = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S21_Crule_def_phrase} // shift sym: LR1_parallel_operator
+ ,{574,(State*)&S19_Crule_def_phrase} // shift sym: Rrule_parameters
+ ,{575,(State*)&S58_Crule_def_phrase} // shift sym: Rrule_parameter
+ }// end of shift table
+};
+yacco2::Shift_entry S18pse_Crule_def_phrase = {3,(State*)&S21_Crule_def_phrase};
+struct S18rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S18rtd_Crule_def_phrase S18rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crule_def_phrase,Crule_def_phrase::rhs1_Rrule_parameters_}
+ }// end of reduce table
+};
+yacco2::State S18_Crule_def_phrase = //State's vectored into symbol: "Rlint"
+{18
+,(Shift_entry*)&S18pse_Crule_def_phrase,0,0,0,(Shift_tbl*)&S18st_Crule_def_phrase,(Reduce_tbl*)&S18rt_Crule_def_phrase,(State_s_thread_tbl*)&S21tt_Crule_def_phrase,0,0};
+struct S19std_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S19std_Crule_def_phrase S19st_Crule_def_phrase = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S59_Crule_def_phrase} // shift sym: LR1_questionable_shift_operator
+ ,{49,(State*)&S60_Crule_def_phrase} // shift sym: raw_close_bracket
+ ,{52,(State*)&S20_Crule_def_phrase} // shift sym: raw_comma
+ ,{581,(State*)&S34_Crule_def_phrase} // shift sym: Rclose_par
+ }// end of shift table
+};
+yacco2::Shift_entry S19qse_Crule_def_phrase = {0,(State*)&S59_Crule_def_phrase};
+yacco2::State S19_Crule_def_phrase = //State's vectored into symbol: "Rrule_parameters"
+{19
+,0,0,0,0,(Shift_tbl*)&S19st_Crule_def_phrase,0,0,0,(Shift_entry*)&S19qse_Crule_def_phrase
+};
+struct S20std_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S20std_Crule_def_phrase S20st_Crule_def_phrase = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S21_Crule_def_phrase} // shift sym: LR1_parallel_operator
+ ,{575,(State*)&S33_Crule_def_phrase} // shift sym: Rrule_parameter
+ }// end of shift table
+};
+yacco2::Shift_entry S20pse_Crule_def_phrase = {3,(State*)&S21_Crule_def_phrase};
+yacco2::State S20_Crule_def_phrase = //State's vectored into symbol: ","
+{20
+,(Shift_entry*)&S20pse_Crule_def_phrase,0,0,0,(Shift_tbl*)&S20st_Crule_def_phrase,0,(State_s_thread_tbl*)&S21tt_Crule_def_phrase,0,0};
+struct S21std_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S21std_Crule_def_phrase S21st_Crule_def_phrase = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S22_Crule_def_phrase} // shift sym: LR1_questionable_shift_operator
+ ,{291,(State*)&S23_Crule_def_phrase} // shift sym: T_parallel_control_monitor
+ ,{307,(State*)&S28_Crule_def_phrase} // shift sym: T_lhs
+ }// end of shift table
+};
+yacco2::Shift_entry S21qse_Crule_def_phrase = {0,(State*)&S22_Crule_def_phrase};
+yacco2::State S21_Crule_def_phrase = //State's vectored into symbol: "|||"
+{21
+,0,0,0,0,(Shift_tbl*)&S21st_Crule_def_phrase,0,0,0,(Shift_entry*)&S21qse_Crule_def_phrase
+};
+struct S22rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S22rtd_Crule_def_phrase S22rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crule_def_phrase,Crule_def_phrase::rhs1_Rrule_parameter_}
+ }// end of reduce table
+};
+yacco2::State S22_Crule_def_phrase = //State's vectored into symbol: "|?|"
+{22
+,0,0,0,0,0,(Reduce_tbl*)&S22rt_Crule_def_phrase,0,0,0};
+struct S23std_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S23std_Crule_def_phrase S23st_Crule_def_phrase = {
+ 2
+ ,
+ {// start of table
+ {7,(State*)&S24_Crule_def_phrase} // shift sym: LR1_fset_transience_operator
+ ,{577,(State*)&S27_Crule_def_phrase} // shift sym: Rparallel_monitor_phrase
+ }// end of shift table
+};
+yacco2::Shift_entry S23pcse_Crule_def_phrase = {7,(State*)&S24_Crule_def_phrase};
+yacco2::State S23_Crule_def_phrase = //State's vectored into symbol: "#parallel-control-monitor"
+{23
+,0,0,0,(Shift_entry*)&S23pcse_Crule_def_phrase,(Shift_tbl*)&S23st_Crule_def_phrase,0,0,(yacco2::Type_pc_fnct_ptr)&NS_parallel_monitor_ph::PROC_TH_parallel_monitor_ph,0};
+struct S24std_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S24std_Crule_def_phrase S24st_Crule_def_phrase = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S25_Crule_def_phrase} // shift sym: LR1_questionable_shift_operator
+ ,{339,(State*)&S26_Crule_def_phrase} // shift sym: T_parallel_monitor_phrase
+ }// end of shift table
+};
+yacco2::Shift_entry S24qse_Crule_def_phrase = {0,(State*)&S25_Crule_def_phrase};
+yacco2::State S24_Crule_def_phrase = //State's vectored into symbol: "|t|"
+{24
+,0,0,0,0,(Shift_tbl*)&S24st_Crule_def_phrase,0,0,0,(Shift_entry*)&S24qse_Crule_def_phrase
+};
+struct S25rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S25rtd_Crule_def_phrase S25rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crule_def_phrase,Crule_def_phrase::rhs2_Rparallel_monitor_phrase_}
+ }// end of reduce table
+};
+yacco2::State S25_Crule_def_phrase = //State's vectored into symbol: "|?|"
+{25
+,0,0,0,0,0,(Reduce_tbl*)&S25rt_Crule_def_phrase,0,0,0};
+struct S26rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S26rtd_Crule_def_phrase S26rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crule_def_phrase,Crule_def_phrase::rhs1_Rparallel_monitor_phrase_}
+ }// end of reduce table
+};
+yacco2::State S26_Crule_def_phrase = //State's vectored into symbol: "parallel-monitor-phrase"
+{26
+,0,0,0,0,0,(Reduce_tbl*)&S26rt_Crule_def_phrase,0,0,0};
+struct S27rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S27rtd_Crule_def_phrase S27rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crule_def_phrase,Crule_def_phrase::rhs3_Rrule_parameter_}
+ }// end of reduce table
+};
+yacco2::State S27_Crule_def_phrase = //State's vectored into symbol: "Rparallel_monitor_phrase"
+{27
+,0,0,0,0,0,(Reduce_tbl*)&S27rt_Crule_def_phrase,0,0,0};
+struct S28std_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S28std_Crule_def_phrase S28st_Crule_def_phrase = {
+ 2
+ ,
+ {// start of table
+ {7,(State*)&S29_Crule_def_phrase} // shift sym: LR1_fset_transience_operator
+ ,{576,(State*)&S32_Crule_def_phrase} // shift sym: Rlhs_phrase
+ }// end of shift table
+};
+yacco2::Shift_entry S28pcse_Crule_def_phrase = {7,(State*)&S29_Crule_def_phrase};
+yacco2::State S28_Crule_def_phrase = //State's vectored into symbol: "#lhs"
+{28
+,0,0,0,(Shift_entry*)&S28pcse_Crule_def_phrase,(Shift_tbl*)&S28st_Crule_def_phrase,0,0,(yacco2::Type_pc_fnct_ptr)&NS_rule_lhs_phrase::PROC_TH_rule_lhs_phrase,0};
+struct S29std_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S29std_Crule_def_phrase S29st_Crule_def_phrase = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S30_Crule_def_phrase} // shift sym: LR1_questionable_shift_operator
+ ,{338,(State*)&S31_Crule_def_phrase} // shift sym: T_rule_lhs_phrase
+ }// end of shift table
+};
+yacco2::Shift_entry S29qse_Crule_def_phrase = {0,(State*)&S30_Crule_def_phrase};
+yacco2::State S29_Crule_def_phrase = //State's vectored into symbol: "|t|"
+{29
+,0,0,0,0,(Shift_tbl*)&S29st_Crule_def_phrase,0,0,0,(Shift_entry*)&S29qse_Crule_def_phrase
+};
+struct S30rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S30rtd_Crule_def_phrase S30rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crule_def_phrase,Crule_def_phrase::rhs2_Rlhs_phrase_}
+ }// end of reduce table
+};
+yacco2::State S30_Crule_def_phrase = //State's vectored into symbol: "|?|"
+{30
+,0,0,0,0,0,(Reduce_tbl*)&S30rt_Crule_def_phrase,0,0,0};
+struct S31rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S31rtd_Crule_def_phrase S31rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crule_def_phrase,Crule_def_phrase::rhs1_Rlhs_phrase_}
+ }// end of reduce table
+};
+yacco2::State S31_Crule_def_phrase = //State's vectored into symbol: "rule-lhs-phrase"
+{31
+,0,0,0,0,0,(Reduce_tbl*)&S31rt_Crule_def_phrase,0,0,0};
+struct S32rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S32rtd_Crule_def_phrase S32rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crule_def_phrase,Crule_def_phrase::rhs2_Rrule_parameter_}
+ }// end of reduce table
+};
+yacco2::State S32_Crule_def_phrase = //State's vectored into symbol: "Rlhs_phrase"
+{32
+,0,0,0,0,0,(Reduce_tbl*)&S32rt_Crule_def_phrase,0,0,0};
+struct S33rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S33rtd_Crule_def_phrase S33rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crule_def_phrase,Crule_def_phrase::rhs3_Rrule_parameters_}
+ }// end of reduce table
+};
+yacco2::State S33_Crule_def_phrase = //State's vectored into symbol: "Rrule_parameter"
+{33
+,0,0,0,0,0,(Reduce_tbl*)&S33rt_Crule_def_phrase,0,0,0};
+struct S34std_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S34std_Crule_def_phrase S34st_Crule_def_phrase = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S46_Crule_def_phrase} // shift sym: LR1_parallel_operator
+ ,{584,(State*)&S35_Crule_def_phrase} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S34pse_Crule_def_phrase = {3,(State*)&S46_Crule_def_phrase};
+struct S34rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S34rtd_Crule_def_phrase S34rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Crule_def_phrase,Crule_def_phrase::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S34_Crule_def_phrase = //State's vectored into symbol: "Rclose_par"
+{34
+,(Shift_entry*)&S34pse_Crule_def_phrase,0,0,0,(Shift_tbl*)&S34st_Crule_def_phrase,(Reduce_tbl*)&S34rt_Crule_def_phrase,(State_s_thread_tbl*)&S46tt_Crule_def_phrase,0,0};
+struct S35std_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S35std_Crule_def_phrase S35st_Crule_def_phrase = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S36_Crule_def_phrase} // shift sym: LR1_questionable_shift_operator
+ ,{131,(State*)&S37_Crule_def_phrase} // shift sym: raw_open_brace
+ ,{578,(State*)&S38_Crule_def_phrase} // shift sym: Rrule_body
+ ,{582,(State*)&S39_Crule_def_phrase} // shift sym: Ropen_brace
+ }// end of shift table
+};
+yacco2::Shift_entry S35qse_Crule_def_phrase = {0,(State*)&S36_Crule_def_phrase};
+yacco2::State S35_Crule_def_phrase = //State's vectored into symbol: "Rlint"
+{35
+,0,0,0,0,(Shift_tbl*)&S35st_Crule_def_phrase,0,0,0,(Shift_entry*)&S35qse_Crule_def_phrase
+};
+struct S36rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S36rtd_Crule_def_phrase S36rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Crule_def_phrase,Crule_def_phrase::rhs1_Ropen_brace_}
+ }// end of reduce table
+};
+yacco2::State S36_Crule_def_phrase = //State's vectored into symbol: "|?|"
+{36
+,0,0,0,0,0,(Reduce_tbl*)&S36rt_Crule_def_phrase,0,0,0};
+struct S37rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S37rtd_Crule_def_phrase S37rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Crule_def_phrase,Crule_def_phrase::rhs2_Ropen_brace_}
+ }// end of reduce table
+};
+yacco2::State S37_Crule_def_phrase = //State's vectored into symbol: "{"
+{37
+,0,0,0,0,0,(Reduce_tbl*)&S37rt_Crule_def_phrase,0,0,0};
+struct S38rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S38rtd_Crule_def_phrase S38rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Crule_def_phrase,Crule_def_phrase::rhs1_Rrule_def_phrase_}
+ }// end of reduce table
+};
+yacco2::State S38_Crule_def_phrase = //State's vectored into symbol: "Rrule_body"
+{38
+,0,0,0,0,0,(Reduce_tbl*)&S38rt_Crule_def_phrase,0,0,0};
+struct S39std_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S39std_Crule_def_phrase S39st_Crule_def_phrase = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S46_Crule_def_phrase} // shift sym: LR1_parallel_operator
+ ,{584,(State*)&S40_Crule_def_phrase} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S39pse_Crule_def_phrase = {3,(State*)&S46_Crule_def_phrase};
+struct S39rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S39rtd_Crule_def_phrase S39rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Crule_def_phrase,Crule_def_phrase::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S39_Crule_def_phrase = //State's vectored into symbol: "Ropen_brace"
+{39
+,(Shift_entry*)&S39pse_Crule_def_phrase,0,0,0,(Shift_tbl*)&S39st_Crule_def_phrase,(Reduce_tbl*)&S39rt_Crule_def_phrase,(State_s_thread_tbl*)&S46tt_Crule_def_phrase,0,0};
+struct S40std_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S40std_Crule_def_phrase S40st_Crule_def_phrase = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S61_Crule_def_phrase} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S62_Crule_def_phrase} // shift sym: LR1_parallel_operator
+ ,{579,(State*)&S41_Crule_def_phrase} // shift sym: Rsubrules
+ }// end of shift table
+};
+yacco2::Shift_entry S40pse_Crule_def_phrase = {3,(State*)&S62_Crule_def_phrase};
+yacco2::Shift_entry S40qse_Crule_def_phrase = {0,(State*)&S61_Crule_def_phrase};
+yacco2::State S40_Crule_def_phrase = //State's vectored into symbol: "Rlint"
+{40
+,(Shift_entry*)&S40pse_Crule_def_phrase,0,0,0,(Shift_tbl*)&S40st_Crule_def_phrase,0,(State_s_thread_tbl*)&S62tt_Crule_def_phrase,0,(Shift_entry*)&S40qse_Crule_def_phrase
+};
+struct S41std_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S41std_Crule_def_phrase S41st_Crule_def_phrase = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S46_Crule_def_phrase} // shift sym: LR1_parallel_operator
+ ,{584,(State*)&S42_Crule_def_phrase} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S41pse_Crule_def_phrase = {3,(State*)&S46_Crule_def_phrase};
+struct S41rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S41rtd_Crule_def_phrase S41rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA8_Crule_def_phrase,Crule_def_phrase::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S41_Crule_def_phrase = //State's vectored into symbol: "Rsubrules"
+{41
+,(Shift_entry*)&S41pse_Crule_def_phrase,0,0,0,(Shift_tbl*)&S41st_Crule_def_phrase,(Reduce_tbl*)&S41rt_Crule_def_phrase,(State_s_thread_tbl*)&S46tt_Crule_def_phrase,0,0};
+struct S42std_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S42std_Crule_def_phrase S42st_Crule_def_phrase = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S43_Crule_def_phrase} // shift sym: LR1_questionable_shift_operator
+ ,{133,(State*)&S44_Crule_def_phrase} // shift sym: raw_close_brace
+ ,{583,(State*)&S45_Crule_def_phrase} // shift sym: Rclose_brace
+ }// end of shift table
+};
+yacco2::Shift_entry S42qse_Crule_def_phrase = {0,(State*)&S43_Crule_def_phrase};
+yacco2::State S42_Crule_def_phrase = //State's vectored into symbol: "Rlint"
+{42
+,0,0,0,0,(Shift_tbl*)&S42st_Crule_def_phrase,0,0,0,(Shift_entry*)&S42qse_Crule_def_phrase
+};
+struct S43rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S43rtd_Crule_def_phrase S43rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Crule_def_phrase,Crule_def_phrase::rhs1_Rclose_brace_}
+ }// end of reduce table
+};
+yacco2::State S43_Crule_def_phrase = //State's vectored into symbol: "|?|"
+{43
+,0,0,0,0,0,(Reduce_tbl*)&S43rt_Crule_def_phrase,0,0,0};
+struct S44rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S44rtd_Crule_def_phrase S44rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Crule_def_phrase,Crule_def_phrase::rhs2_Rclose_brace_}
+ }// end of reduce table
+};
+yacco2::State S44_Crule_def_phrase = //State's vectored into symbol: "}"
+{44
+,0,0,0,0,0,(Reduce_tbl*)&S44rt_Crule_def_phrase,0,0,0};
+struct S45std_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S45std_Crule_def_phrase S45st_Crule_def_phrase = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S46_Crule_def_phrase} // shift sym: LR1_parallel_operator
+ ,{584,(State*)&S47_Crule_def_phrase} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S45pse_Crule_def_phrase = {3,(State*)&S46_Crule_def_phrase};
+struct S45rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S45rtd_Crule_def_phrase S45rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Crule_def_phrase,Crule_def_phrase::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S45_Crule_def_phrase = //State's vectored into symbol: "Rclose_brace"
+{45
+,(Shift_entry*)&S45pse_Crule_def_phrase,0,0,0,(Shift_tbl*)&S45st_Crule_def_phrase,(Reduce_tbl*)&S45rt_Crule_def_phrase,(State_s_thread_tbl*)&S46tt_Crule_def_phrase,0,0};
+struct S46std_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S46std_Crule_def_phrase S46st_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {375,(State*)&S13_Crule_def_phrase} // shift sym: T_lint
+ }// end of shift table
+};
+yacco2::State S46_Crule_def_phrase = //State's vectored into symbol: "|||"
+{46
+,0,0,0,0,(Shift_tbl*)&S46st_Crule_def_phrase,0,0,0,0};
+struct S47rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S47rtd_Crule_def_phrase S47rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Crule_def_phrase,Crule_def_phrase::rhs1_Rrule_body_}
+ }// end of reduce table
+};
+yacco2::State S47_Crule_def_phrase = //State's vectored into symbol: "Rlint"
+{47
+,0,0,0,0,0,(Reduce_tbl*)&S47rt_Crule_def_phrase,0,0,0};
+struct S48std_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S48std_Crule_def_phrase S48st_Crule_def_phrase = {
+ 2
+ ,
+ {// start of table
+ {285,(State*)&S11_Crule_def_phrase} // shift sym: T_AD
+ ,{286,(State*)&S12_Crule_def_phrase} // shift sym: T_AB
+ }// end of shift table
+};
+yacco2::State S48_Crule_def_phrase = //State's vectored into symbol: "|||"
+{48
+,0,0,0,0,(Shift_tbl*)&S48st_Crule_def_phrase,0,0,0,0};
+struct S49std_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S49std_Crule_def_phrase S49st_Crule_def_phrase = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S46_Crule_def_phrase} // shift sym: LR1_parallel_operator
+ ,{584,(State*)&S50_Crule_def_phrase} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S49pse_Crule_def_phrase = {3,(State*)&S46_Crule_def_phrase};
+struct S49rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S49rtd_Crule_def_phrase S49rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crule_def_phrase,Crule_def_phrase::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S49_Crule_def_phrase = //State's vectored into symbol: "Rad_ab_tag"
+{49
+,(Shift_entry*)&S49pse_Crule_def_phrase,0,0,0,(Shift_tbl*)&S49st_Crule_def_phrase,(Reduce_tbl*)&S49rt_Crule_def_phrase,(State_s_thread_tbl*)&S46tt_Crule_def_phrase,0,0};
+struct S50rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S50rtd_Crule_def_phrase S50rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crule_def_phrase,Crule_def_phrase::rhs2_Rad_ab_tags_}
+ }// end of reduce table
+};
+yacco2::State S50_Crule_def_phrase = //State's vectored into symbol: "Rlint"
+{50
+,0,0,0,0,0,(Reduce_tbl*)&S50rt_Crule_def_phrase,0,0,0};
+struct S51std_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S51std_Crule_def_phrase S51st_Crule_def_phrase = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S46_Crule_def_phrase} // shift sym: LR1_parallel_operator
+ ,{584,(State*)&S52_Crule_def_phrase} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S51pse_Crule_def_phrase = {3,(State*)&S46_Crule_def_phrase};
+struct S51rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S51rtd_Crule_def_phrase S51rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crule_def_phrase,Crule_def_phrase::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S51_Crule_def_phrase = //State's vectored into symbol: "Rad_ab_tag"
+{51
+,(Shift_entry*)&S51pse_Crule_def_phrase,0,0,0,(Shift_tbl*)&S51st_Crule_def_phrase,(Reduce_tbl*)&S51rt_Crule_def_phrase,(State_s_thread_tbl*)&S46tt_Crule_def_phrase,0,0};
+struct S52rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S52rtd_Crule_def_phrase S52rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crule_def_phrase,Crule_def_phrase::rhs1_Rad_ab_tags_}
+ }// end of reduce table
+};
+yacco2::State S52_Crule_def_phrase = //State's vectored into symbol: "Rlint"
+{52
+,0,0,0,0,0,(Reduce_tbl*)&S52rt_Crule_def_phrase,0,0,0};
+struct S53std_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S53std_Crule_def_phrase S53st_Crule_def_phrase = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S54_Crule_def_phrase} // shift sym: LR1_questionable_shift_operator
+ ,{372,(State*)&S55_Crule_def_phrase} // shift sym: T_cweb_comment
+ }// end of shift table
+};
+yacco2::Shift_entry S53qse_Crule_def_phrase = {0,(State*)&S54_Crule_def_phrase};
+yacco2::State S53_Crule_def_phrase = //State's vectored into symbol: "|||"
+{53
+,0,0,0,0,(Shift_tbl*)&S53st_Crule_def_phrase,0,0,0,(Shift_entry*)&S53qse_Crule_def_phrase
+};
+struct S54rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S54rtd_Crule_def_phrase S54rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crule_def_phrase,Crule_def_phrase::rhs3_Rrule_cweb_k_}
+ }// end of reduce table
+};
+yacco2::State S54_Crule_def_phrase = //State's vectored into symbol: "|?|"
+{54
+,0,0,0,0,0,(Reduce_tbl*)&S54rt_Crule_def_phrase,0,0,0};
+struct S55rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S55rtd_Crule_def_phrase S55rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crule_def_phrase,Crule_def_phrase::rhs2_Rrule_cweb_k_}
+ }// end of reduce table
+};
+yacco2::State S55_Crule_def_phrase = //State's vectored into symbol: "cweb-comment"
+{55
+,0,0,0,0,0,(Reduce_tbl*)&S55rt_Crule_def_phrase,0,0,0};
+struct S56rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S56rtd_Crule_def_phrase S56rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Crule_def_phrase,Crule_def_phrase::rhs1_Ropen_par_}
+ }// end of reduce table
+};
+yacco2::State S56_Crule_def_phrase = //State's vectored into symbol: "|?|"
+{56
+,0,0,0,0,0,(Reduce_tbl*)&S56rt_Crule_def_phrase,0,0,0};
+struct S57rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S57rtd_Crule_def_phrase S57rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Crule_def_phrase,Crule_def_phrase::rhs2_Ropen_par_}
+ }// end of reduce table
+};
+yacco2::State S57_Crule_def_phrase = //State's vectored into symbol: "("
+{57
+,0,0,0,0,0,(Reduce_tbl*)&S57rt_Crule_def_phrase,0,0,0};
+struct S58rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S58rtd_Crule_def_phrase S58rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crule_def_phrase,Crule_def_phrase::rhs2_Rrule_parameters_}
+ }// end of reduce table
+};
+yacco2::State S58_Crule_def_phrase = //State's vectored into symbol: "Rrule_parameter"
+{58
+,0,0,0,0,0,(Reduce_tbl*)&S58rt_Crule_def_phrase,0,0,0};
+struct S59rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S59rtd_Crule_def_phrase S59rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA9_Crule_def_phrase,Crule_def_phrase::rhs1_Rclose_par_}
+ }// end of reduce table
+};
+yacco2::State S59_Crule_def_phrase = //State's vectored into symbol: "|?|"
+{59
+,0,0,0,0,0,(Reduce_tbl*)&S59rt_Crule_def_phrase,0,0,0};
+struct S60rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S60rtd_Crule_def_phrase S60rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA9_Crule_def_phrase,Crule_def_phrase::rhs2_Rclose_par_}
+ }// end of reduce table
+};
+yacco2::State S60_Crule_def_phrase = //State's vectored into symbol: ")"
+{60
+,0,0,0,0,0,(Reduce_tbl*)&S60rt_Crule_def_phrase,0,0,0};
+struct S61rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S61rtd_Crule_def_phrase S61rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA10_Crule_def_phrase,Crule_def_phrase::rhs3_Rsubrules_}
+ }// end of reduce table
+};
+yacco2::State S61_Crule_def_phrase = //State's vectored into symbol: "|?|"
+{61
+,0,0,0,0,0,(Reduce_tbl*)&S61rt_Crule_def_phrase,0,0,0};
+struct S62std_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S62std_Crule_def_phrase S62st_Crule_def_phrase = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S63_Crule_def_phrase} // shift sym: LR1_questionable_shift_operator
+ ,{343,(State*)&S64_Crule_def_phrase} // shift sym: T_subrules_phrase
+ }// end of shift table
+};
+yacco2::Shift_entry S62qse_Crule_def_phrase = {0,(State*)&S63_Crule_def_phrase};
+yacco2::State S62_Crule_def_phrase = //State's vectored into symbol: "|||"
+{62
+,0,0,0,0,(Shift_tbl*)&S62st_Crule_def_phrase,0,0,0,(Shift_entry*)&S62qse_Crule_def_phrase
+};
+struct S63rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S63rtd_Crule_def_phrase S63rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA10_Crule_def_phrase,Crule_def_phrase::rhs2_Rsubrules_}
+ }// end of reduce table
+};
+yacco2::State S63_Crule_def_phrase = //State's vectored into symbol: "|?|"
+{63
+,0,0,0,0,0,(Reduce_tbl*)&S63rt_Crule_def_phrase,0,0,0};
+struct S64rtd_Crule_def_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S64rtd_Crule_def_phrase S64rt_Crule_def_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA10_Crule_def_phrase,Crule_def_phrase::rhs1_Rsubrules_}
+ }// end of reduce table
+};
+yacco2::State S64_Crule_def_phrase = //State's vectored into symbol: "subrules-phrase"
+{64
+,0,0,0,0,0,(Reduce_tbl*)&S64rt_Crule_def_phrase,0,0,0};
diff --git a/web/yacco2/compiler/grammars/rule_lhs_phrase.cpp b/web/yacco2/compiler/grammars/rule_lhs_phrase.cpp
new file mode 100644
index 0000000000..b748a5ad2d
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rule_lhs_phrase.cpp
@@ -0,0 +1,779 @@
+/*
+ File: rule_lhs_phrase.cpp
+ Date and Time: Fri Jan 30 18:55:23 2015
+*/
+#include "rule_lhs_phrase.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_rule_lhs_phrase;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 16;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[4] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[5] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[6] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[7] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[8] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[9] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[10] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[11] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[12] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[13] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[14] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[15] = new Per_rule_s_reuse_table();
+}
+ Crule_lhs_phrase::
+ Crule_lhs_phrase()
+ :yacco2::CAbs_fsm
+ ("rule_lhs_phrase.lex"
+ ,"1.0"
+ ,"24 mar 2004"
+ ,false
+ ,"Parse a rule's ``lhs'' directive."
+ ,"Fri Jan 30 18:55:23 2015 "
+ ,S1_Crule_lhs_phrase){
+
+ rule_lhs_phrase_ = 0;
+
+ }
+
+Crule_lhs_phrase::~Crule_lhs_phrase(){
+
+ for(int x = 0;x < 16;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Crule_lhs_phrase::failed(){
+ return false;
+ }
+ void Crule_lhs_phrase::op(){
+ if(rule_lhs_phrase_ != 0){
+ delete rule_lhs_phrase_;
+ rule_lhs_phrase_ = 0;
+ }
+ rule_lhs_phrase_ = new T_rule_lhs_phrase;
+ rule_lhs_phrase_->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ AST* t = new AST(*rule_lhs_phrase_);
+ rule_lhs_phrase_->phrase_tree(t);
+
+}
+int Crule_lhs_phrase::rhs_to_rules_mapping_[39] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,2 // subrule 4 for rule 3
+ ,2 // subrule 5 for rule 3
+ ,3 // subrule 6 for rule 4
+ ,4 // subrule 7 for rule 5
+ ,4 // subrule 8 for rule 5
+ ,4 // subrule 9 for rule 5
+ ,4 // subrule 10 for rule 5
+ ,4 // subrule 11 for rule 5
+ ,4 // subrule 12 for rule 5
+ ,4 // subrule 13 for rule 5
+ ,5 // subrule 14 for rule 6
+ ,5 // subrule 15 for rule 6
+ ,6 // subrule 16 for rule 7
+ ,6 // subrule 17 for rule 7
+ ,7 // subrule 18 for rule 8
+ ,7 // subrule 19 for rule 8
+ ,8 // subrule 20 for rule 9
+ ,8 // subrule 21 for rule 9
+ ,9 // subrule 22 for rule 10
+ ,10 // subrule 23 for rule 11
+ ,10 // subrule 24 for rule 11
+ ,10 // subrule 25 for rule 11
+ ,10 // subrule 26 for rule 11
+ ,10 // subrule 27 for rule 11
+ ,10 // subrule 28 for rule 11
+ ,11 // subrule 29 for rule 12
+ ,11 // subrule 30 for rule 12
+ ,12 // subrule 31 for rule 13
+ ,12 // subrule 32 for rule 13
+ ,13 // subrule 33 for rule 14
+ ,14 // subrule 34 for rule 15
+ ,14 // subrule 35 for rule 15
+ ,14 // subrule 36 for rule 15
+ ,15 // subrule 37 for rule 16
+ ,15 // subrule 38 for rule 16
+};
+
+ void Crule_lhs_phrase::
+ add_sdc_to_directive(yacco2::CAbs_lr1_sym* Dir,T_syntax_code* Sdc){
+ using namespace NS_yacco2_T_enum;
+ using namespace NS_yacco2_terminals;
+ yacco2::INT eid = Dir->enumerated_id__;
+ switch (eid){
+ case T_Enum::T_T_user_declaration_: {
+ T_user_declaration* k = (T_user_declaration*)Dir;
+ k->syntax_code(Sdc);
+ break;
+ }
+ case T_Enum::T_T_constructor_: {
+ T_constructor* k = (T_constructor*)Dir;
+ k->syntax_code(Sdc);
+ break;
+ }
+ case T_Enum::T_T_destructor_: {
+ T_destructor* k = (T_destructor*)Dir;
+ k->syntax_code(Sdc);
+ break;
+ }
+ case T_Enum::T_T_op_: {
+ T_op* k = (T_op*)Dir;
+ k->syntax_code(Sdc);
+ break;
+ }
+ case T_Enum::T_T_user_implementation_: {
+ T_user_implementation* k = (T_user_implementation*)Dir;
+ k->syntax_code(Sdc);
+ break;
+ }
+ default: {
+ CAbs_lr1_sym* sym = new Err_improper_directive;
+ sym->set_rc(*Dir,__FILE__,__LINE__);
+ RSVP_FSM(sym);
+ parser__->set_stop_parse(true);
+ return;
+ }
+ }
+ rule_lhs_phrase_->add_directive_to_lhs(Dir,parser__);
+ }
+
+Rrule_lhs_phrase::Rrule_lhs_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrule_lhs_phrase",0,Crule_lhs_phrase::R_Rrule_lhs_phrase_,P,false,false){
+}
+
+void Rrule_lhs_phrase::sr1(){
+
+ Crule_lhs_phrase* fsm = (Crule_lhs_phrase*)rule_info__.parser__->fsm_tbl__;
+ RSVP(fsm->rule_lhs_phrase_);
+ fsm->rule_lhs_phrase_ = 0;
+
+}
+
+Rlhs::Rlhs(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlhs",0,Crule_lhs_phrase::R_Rlhs_,P,false,false){
+}
+
+void Rlhs::sr2(){
+
+ rule_info__.parser__->set_abort_parse(true);
+
+}
+
+Rpotential_directives::Rpotential_directives(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rpotential_directives",0,Crule_lhs_phrase::R_Rpotential_directives_,P,false,false){
+}
+
+Rmust_directive_phrase::Rmust_directive_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rmust_directive_phrase",0,Crule_lhs_phrase::R_Rmust_directive_phrase_,P,false,false){
+}
+
+void Rmust_directive_phrase::sr1(){
+ struct SF{
+ Rdirective_cweb_k* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Rlint* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ Rmust_directive* p3__;
+ State* s3__;
+ bool abort3__;
+ Rule_s_reuse_entry* rule_s_reuse_entry3__;
+ Rsyntax_code* p4__;
+ State* s4__;
+ bool abort4__;
+ Rule_s_reuse_entry* rule_s_reuse_entry4__;
+ Rlint* p5__;
+ State* s5__;
+ bool abort5__;
+ Rule_s_reuse_entry* rule_s_reuse_entry5__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(5);
+
+ AST* cwebt = sf->p1__->cweb_t_;
+ Rmust_directive* dir = sf->p3__;
+ Rsyntax_code* sdc = sf->p4__;
+ if(cwebt != 0)
+ sdc->syntax_code_->add_cweb_marker(cwebt);
+ Crule_lhs_phrase* fsm = (Crule_lhs_phrase*)rule_info__.parser__->fsm_tbl__;
+ fsm->add_sdc_to_directive(dir->directive_,sdc->syntax_code_);
+
+}
+
+Rmust_directive::Rmust_directive(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rmust_directive",0,Crule_lhs_phrase::R_Rmust_directive_,P,false,false){
+}
+
+void Rmust_directive::ctor(){
+
+ directive_ = 0;
+
+}
+void Rmust_directive::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_user_declaration* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = sf->p2__;
+
+}
+
+void Rmust_directive::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_user_implementation* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = sf->p2__;
+
+}
+
+void Rmust_directive::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_constructor* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = sf->p2__;
+
+}
+
+void Rmust_directive::sr4(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_destructor* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = sf->p2__;
+
+}
+
+void Rmust_directive::sr5(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_op* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = sf->p2__;
+
+}
+
+void Rmust_directive::sr6(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = 0;
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_bad_directive;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rmust_directive::sr7(){
+
+ CAbs_lr1_sym* sym = new Err_no_directive_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rclose_brace::Rclose_brace(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rclose_brace",0,Crule_lhs_phrase::R_Rclose_brace_,P,false,false){
+}
+
+void Rclose_brace::sr1(){
+
+ CAbs_lr1_sym* sym = new Err_no_close_brace;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rmaybe_more_directives::Rmaybe_more_directives(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rmaybe_more_directives",0,Crule_lhs_phrase::R_Rmaybe_more_directives_,P,false,false){
+}
+
+Rmaybe_directive_phrases::Rmaybe_directive_phrases(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rmaybe_directive_phrases",0,Crule_lhs_phrase::R_Rmaybe_directive_phrases_,P,false,false){
+}
+
+Rmaybe_directive_phrase::Rmaybe_directive_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rmaybe_directive_phrase",0,Crule_lhs_phrase::R_Rmaybe_directive_phrase_,P,false,false){
+}
+
+void Rmaybe_directive_phrase::sr1(){
+ struct SF{
+ Rcweb_k* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Rlint* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ Rdirective* p3__;
+ State* s3__;
+ bool abort3__;
+ Rule_s_reuse_entry* rule_s_reuse_entry3__;
+ Rsyntax_code* p4__;
+ State* s4__;
+ bool abort4__;
+ Rule_s_reuse_entry* rule_s_reuse_entry4__;
+ Rlint* p5__;
+ State* s5__;
+ bool abort5__;
+ Rule_s_reuse_entry* rule_s_reuse_entry5__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(5);
+
+ AST* cwebt = sf->p1__->cweb_t_;
+ Rdirective* dir = sf->p3__;
+ Rsyntax_code* sdc = sf->p4__;
+ if(cwebt != 0)
+ sdc->syntax_code_->add_cweb_marker(cwebt);
+ Crule_lhs_phrase* fsm = (Crule_lhs_phrase*)rule_info__.parser__->fsm_tbl__;
+ fsm->add_sdc_to_directive(dir->directive_,sdc->syntax_code_);
+
+}
+
+void Rmaybe_directive_phrase::sr2(){
+ struct SF{
+ Rdirective* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Rsyntax_code* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ Rlint* p3__;
+ State* s3__;
+ bool abort3__;
+ Rule_s_reuse_entry* rule_s_reuse_entry3__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(3);
+
+ Rdirective* dir = sf->p1__;
+ Rsyntax_code* sdc = sf->p2__;
+ Crule_lhs_phrase* fsm = (Crule_lhs_phrase*)rule_info__.parser__->fsm_tbl__;
+ fsm->add_sdc_to_directive(dir->directive_,sdc->syntax_code_);
+
+}
+
+Rdirective_phrase::Rdirective_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rdirective_phrase",0,Crule_lhs_phrase::R_Rdirective_phrase_,P,false,false){
+}
+
+void Rdirective_phrase::sr1(){
+ struct SF{
+ Rcweb_k* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Rlint* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ Rdirective* p3__;
+ State* s3__;
+ bool abort3__;
+ Rule_s_reuse_entry* rule_s_reuse_entry3__;
+ Rsyntax_code* p4__;
+ State* s4__;
+ bool abort4__;
+ Rule_s_reuse_entry* rule_s_reuse_entry4__;
+ Rlint* p5__;
+ State* s5__;
+ bool abort5__;
+ Rule_s_reuse_entry* rule_s_reuse_entry5__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(5);
+
+ AST* cwebt = sf->p1__->cweb_t_;
+ Rdirective* dir = sf->p3__;
+ Rsyntax_code* sdc = sf->p4__;
+ if(cwebt != 0)
+ sdc->syntax_code_->add_cweb_marker(cwebt);
+ Crule_lhs_phrase* fsm = (Crule_lhs_phrase*)rule_info__.parser__->fsm_tbl__;
+ fsm->add_sdc_to_directive(dir->directive_,sdc->syntax_code_);
+
+}
+
+Rdirective::Rdirective(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rdirective",0,Crule_lhs_phrase::R_Rdirective_,P,false,false){
+}
+
+void Rdirective::ctor(){
+
+ directive_ = 0;
+
+}
+void Rdirective::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_user_declaration* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = sf->p2__;
+
+}
+
+void Rdirective::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_user_implementation* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = sf->p2__;
+
+}
+
+void Rdirective::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_constructor* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = sf->p2__;
+
+}
+
+void Rdirective::sr4(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_destructor* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = sf->p2__;
+
+}
+
+void Rdirective::sr5(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_op* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = sf->p2__;
+
+}
+
+void Rdirective::sr6(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = 0;
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_bad_directive;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rsyntax_code::Rsyntax_code(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsyntax_code",0,Crule_lhs_phrase::R_Rsyntax_code_,P,false,false){
+}
+
+void Rsyntax_code::ctor(){
+
+ syntax_code_ = 0;
+
+}
+void Rsyntax_code::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_syntax_code* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ syntax_code_ = sf->p2__;
+
+}
+
+void Rsyntax_code::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rlint::Rlint(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlint",0,Crule_lhs_phrase::R_Rlint_,P,false,false){
+}
+
+Rcweb_marker::Rcweb_marker(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rcweb_marker",0,Crule_lhs_phrase::R_Rcweb_marker_,P,false,false){
+}
+
+void Rcweb_marker::ctor(){
+
+ cweb_t_ = 0;
+
+}
+void Rcweb_marker::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_cweb_comment* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ T_cweb_comment* k = sf->p2__;
+ AST* cwebk_t_ = new AST(*k);
+ cweb_t_ = new AST();
+ T_cweb_marker* cw = new T_cweb_marker(cweb_t_);
+ cw->set_rc(*k,__FILE__,__LINE__);
+ AST::set_content(*cweb_t_,*cw);
+ AST::join_pts(*cweb_t_,*cwebk_t_);
+
+
+}
+
+Rdirective_cweb_k::Rdirective_cweb_k(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rdirective_cweb_k",0,Crule_lhs_phrase::R_Rdirective_cweb_k_,P,false,false){
+}
+
+void Rdirective_cweb_k::ctor(){
+
+ cweb_t_ = 0;
+
+}
+void Rdirective_cweb_k::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_cweb_comment* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ T_cweb_comment* k = sf->p2__;
+ AST* cwebk_t_ = new AST(*k);
+ cweb_t_ = new AST();
+ T_cweb_marker* cw = new T_cweb_marker(cweb_t_);
+ cw->set_rc(*k,__FILE__,__LINE__);
+ AST::set_content(*cweb_t_,*cw);
+ AST::join_pts(*cweb_t_,*cwebk_t_);
+
+
+}
+
+void Rdirective_cweb_k::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Err_comment_overrun* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rcweb_k::Rcweb_k(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rcweb_k",0,Crule_lhs_phrase::R_Rcweb_k_,P,false,false){
+}
+
+void Rcweb_k::ctor(){
+
+ cweb_t_ = 0;
+
+}
+void Rcweb_k::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_cweb_comment* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ T_cweb_comment* k = sf->p2__;
+ AST* cwebk_t_ = new AST(*k);
+ cweb_t_ = new AST();
+ T_cweb_marker* cw = new T_cweb_marker(cweb_t_);
+ cw->set_rc(*k,__FILE__,__LINE__);
+ AST::set_content(*cweb_t_,*cw);
+ AST::join_pts(*cweb_t_,*cwebk_t_);
+
+}
+
+void Rcweb_k::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Err_comment_overrun* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
diff --git a/web/yacco2/compiler/grammars/rule_lhs_phrase.fsc b/web/yacco2/compiler/grammars/rule_lhs_phrase.fsc
new file mode 100644
index 0000000000..edca8d0ebf
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rule_lhs_phrase.fsc
@@ -0,0 +1,24 @@
+/*
+ File: rule_lhs_phrase.fsc
+ Date and Time: Fri Jan 30 18:55:23 2015
+*/
+transitive n
+grammar-name "rule_lhs_phrase"
+name-space "NS_rule_lhs_phrase"
+thread-name "TH_rule_lhs_phrase"
+monolithic n
+file-name "rule_lhs_phrase.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ T_lhs
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 4
+ NS_cweb_or_c_k::TH_cweb_or_c_k
+ NS_identifier::TH_identifier
+ NS_lint_balls::TH_lint_balls
+ NS_o2_sdc::TH_o2_sdc
+end-list-of-used-threads
+fsm-comments
+"Parse a rule's ``lhs'' directive."
diff --git a/web/yacco2/compiler/grammars/rule_lhs_phrase.h b/web/yacco2/compiler/grammars/rule_lhs_phrase.h
new file mode 100644
index 0000000000..8a87283e5a
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rule_lhs_phrase.h
@@ -0,0 +1,261 @@
+/*
+ File: rule_lhs_phrase.h
+ Date and Time: Fri Jan 30 18:55:23 2015
+*/
+#ifndef __rule_lhs_phrase_h__
+#define __rule_lhs_phrase_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+ using namespace NS_yacco2_terminals;
+#include "lint_balls.h"
+#include "cweb_or_c_k.h"
+
+#include "identifier.h"
+#include "c_string.h"
+#include "o2_sdc.h"
+
+extern yacco2::Thread_entry ITH_rule_lhs_phrase;
+
+extern yacco2::State S1_Crule_lhs_phrase;
+namespace NS_rule_lhs_phrase {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_rule_lhs_phrase(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_rule_lhs_phrase(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[16];
+};
+class Crule_lhs_phrase: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rrule_lhs_phrase_ = 569//start_of_rule_list + 0
+ ,rhs1_Rrule_lhs_phrase_ = 1
+ ,R_Rlhs_ = 570//start_of_rule_list + 2
+ ,rhs1_Rlhs_ = 2
+ ,rhs2_Rlhs_ = 3
+ ,R_Rpotential_directives_ = 571//start_of_rule_list + 4
+ ,rhs1_Rpotential_directives_ = 4
+ ,rhs2_Rpotential_directives_ = 5
+ ,R_Rmust_directive_phrase_ = 572//start_of_rule_list + 6
+ ,rhs1_Rmust_directive_phrase_ = 6
+ ,R_Rmust_directive_ = 573//start_of_rule_list + 8
+ ,rhs1_Rmust_directive_ = 7
+ ,rhs2_Rmust_directive_ = 8
+ ,rhs3_Rmust_directive_ = 9
+ ,rhs4_Rmust_directive_ = 10
+ ,rhs5_Rmust_directive_ = 11
+ ,rhs6_Rmust_directive_ = 12
+ ,rhs7_Rmust_directive_ = 13
+ ,R_Rclose_brace_ = 574//start_of_rule_list + 10
+ ,rhs1_Rclose_brace_ = 14
+ ,rhs2_Rclose_brace_ = 15
+ ,R_Rmaybe_more_directives_ = 575//start_of_rule_list + 12
+ ,rhs1_Rmaybe_more_directives_ = 16
+ ,rhs2_Rmaybe_more_directives_ = 17
+ ,R_Rmaybe_directive_phrases_ = 576//start_of_rule_list + 14
+ ,rhs1_Rmaybe_directive_phrases_ = 18
+ ,rhs2_Rmaybe_directive_phrases_ = 19
+ ,R_Rmaybe_directive_phrase_ = 577//start_of_rule_list + 16
+ ,rhs1_Rmaybe_directive_phrase_ = 20
+ ,rhs2_Rmaybe_directive_phrase_ = 21
+ ,R_Rdirective_phrase_ = 578//start_of_rule_list + 18
+ ,rhs1_Rdirective_phrase_ = 22
+ ,R_Rdirective_ = 579//start_of_rule_list + 20
+ ,rhs1_Rdirective_ = 23
+ ,rhs2_Rdirective_ = 24
+ ,rhs3_Rdirective_ = 25
+ ,rhs4_Rdirective_ = 26
+ ,rhs5_Rdirective_ = 27
+ ,rhs6_Rdirective_ = 28
+ ,R_Rsyntax_code_ = 580//start_of_rule_list + 22
+ ,rhs1_Rsyntax_code_ = 29
+ ,rhs2_Rsyntax_code_ = 30
+ ,R_Rlint_ = 581//start_of_rule_list + 24
+ ,rhs1_Rlint_ = 31
+ ,rhs2_Rlint_ = 32
+ ,R_Rcweb_marker_ = 582//start_of_rule_list + 26
+ ,rhs1_Rcweb_marker_ = 33
+ ,R_Rdirective_cweb_k_ = 583//start_of_rule_list + 28
+ ,rhs1_Rdirective_cweb_k_ = 34
+ ,rhs2_Rdirective_cweb_k_ = 35
+ ,rhs3_Rdirective_cweb_k_ = 36
+ ,R_Rcweb_k_ = 584//start_of_rule_list + 30
+ ,rhs1_Rcweb_k_ = 37
+ ,rhs2_Rcweb_k_ = 38
+ };
+ //no of la sets = 6
+ //no of states = 56
+ Crule_lhs_phrase();
+ ~Crule_lhs_phrase();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[39];
+
+ public:
+ void add_sdc_to_directive(yacco2::CAbs_lr1_sym* Dir,T_syntax_code* Sdc);
+ T_rule_lhs_phrase* rule_lhs_phrase_;
+
+ };
+struct Rrule_lhs_phrase;
+struct Rlhs;
+struct Rpotential_directives;
+struct Rmust_directive_phrase;
+struct Rmust_directive;
+struct Rclose_brace;
+struct Rmaybe_more_directives;
+struct Rmaybe_directive_phrases;
+struct Rmaybe_directive_phrase;
+struct Rdirective_phrase;
+struct Rdirective;
+struct Rsyntax_code;
+struct Rlint;
+struct Rcweb_marker;
+struct Rdirective_cweb_k;
+struct Rcweb_k;
+struct Rrule_lhs_phrase:public yacco2::CAbs_lr1_sym {
+ Rrule_lhs_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rlhs:public yacco2::CAbs_lr1_sym {
+ Rlhs(yacco2::Parser* P);
+ public:
+ void sr2();
+};
+
+struct Rpotential_directives:public yacco2::CAbs_lr1_sym {
+ Rpotential_directives(yacco2::Parser* P);
+ public:
+};
+
+struct Rmust_directive_phrase:public yacco2::CAbs_lr1_sym {
+ Rmust_directive_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rmust_directive:public yacco2::CAbs_lr1_sym {
+ Rmust_directive(yacco2::Parser* P);
+ void ctor();
+
+ CAbs_lr1_sym* directive_;
+
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+ void sr5();
+ void sr6();
+ void sr7();
+};
+
+struct Rclose_brace:public yacco2::CAbs_lr1_sym {
+ Rclose_brace(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rmaybe_more_directives:public yacco2::CAbs_lr1_sym {
+ Rmaybe_more_directives(yacco2::Parser* P);
+ public:
+};
+
+struct Rmaybe_directive_phrases:public yacco2::CAbs_lr1_sym {
+ Rmaybe_directive_phrases(yacco2::Parser* P);
+ public:
+};
+
+struct Rmaybe_directive_phrase:public yacco2::CAbs_lr1_sym {
+ Rmaybe_directive_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rdirective_phrase:public yacco2::CAbs_lr1_sym {
+ Rdirective_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rdirective:public yacco2::CAbs_lr1_sym {
+ Rdirective(yacco2::Parser* P);
+ void ctor();
+
+ CAbs_lr1_sym* directive_;
+
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+ void sr5();
+ void sr6();
+};
+
+struct Rsyntax_code:public yacco2::CAbs_lr1_sym {
+ Rsyntax_code(yacco2::Parser* P);
+ void ctor();
+
+ T_syntax_code* syntax_code_;
+
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rlint:public yacco2::CAbs_lr1_sym {
+ Rlint(yacco2::Parser* P);
+ public:
+};
+
+struct Rcweb_marker:public yacco2::CAbs_lr1_sym {
+ Rcweb_marker(yacco2::Parser* P);
+ void ctor();
+
+ AST* cweb_t_;
+
+ public:
+ void sr1();
+};
+
+struct Rdirective_cweb_k:public yacco2::CAbs_lr1_sym {
+ Rdirective_cweb_k(yacco2::Parser* P);
+ void ctor();
+
+ AST* cweb_t_;
+
+ public:
+ void sr2();
+ void sr3();
+};
+
+struct Rcweb_k:public yacco2::CAbs_lr1_sym {
+ Rcweb_k(yacco2::Parser* P);
+ void ctor();
+
+ AST* cweb_t_;
+
+ public:
+ void sr1();
+ void sr2();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/rule_lhs_phrase.lex b/web/yacco2/compiler/grammars/rule_lhs_phrase.lex
new file mode 100644
index 0000000000..f5bc58b9c3
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rule_lhs_phrase.lex
@@ -0,0 +1,424 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: rule_lhs_phrase.lex
+Dates: 3 Jun 2004
+Purpose: parse rule's lhs construct
+Output: T_rule_lhs_phrase
+ assorted errors
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |rule_lhs_phrase| Thread.\fbreak
+Parse rule's lhs construct.\fbreak
+\fbreak
+Example of a rule's lhs to parse:\fbreak
+\listing{"/usr/local/yacco2/diagrams+etc/rulelhs.txt"}
+This thread is a ``chained procedure call''.
+@/
+fsm
+(fsm-id "rule_lhs_phrase.lex"
+,fsm-filename rule_lhs_phrase
+,fsm-namespace NS_rule_lhs_phrase
+,fsm-class Crule_lhs_phrase{
+ user-prefix-declaration
+ using namespace NS_yacco2_terminals;
+#include "lint_balls.h"
+#include "cweb_or_c_k.h"
+
+#include "identifier.h"
+#include "c_string.h"
+#include "o2_sdc.h"
+ ***
+ user-declaration
+ public:
+ void add_sdc_to_directive(yacco2::CAbs_lr1_sym* Dir,T_syntax_code* Sdc);
+ T_rule_lhs_phrase* rule_lhs_phrase_;
+ ***
+ user-implementation
+ void Crule_lhs_phrase::
+ add_sdc_to_directive(yacco2::CAbs_lr1_sym* Dir,T_syntax_code* Sdc){
+ using namespace NS_yacco2_T_enum;
+ using namespace NS_yacco2_terminals;
+ yacco2::INT eid = Dir->enumerated_id__;
+ switch (eid){
+ case T_Enum::T_T_user_declaration_: {
+ T_user_declaration* k = (T_user_declaration*)Dir;
+ k->syntax_code(Sdc);
+ break;
+ }
+ case T_Enum::T_T_constructor_: {
+ T_constructor* k = (T_constructor*)Dir;
+ k->syntax_code(Sdc);
+ break;
+ }
+ case T_Enum::T_T_destructor_: {
+ T_destructor* k = (T_destructor*)Dir;
+ k->syntax_code(Sdc);
+ break;
+ }
+ case T_Enum::T_T_op_: {
+ T_op* k = (T_op*)Dir;
+ k->syntax_code(Sdc);
+ break;
+ }
+ case T_Enum::T_T_user_implementation_: {
+ T_user_implementation* k = (T_user_implementation*)Dir;
+ k->syntax_code(Sdc);
+ break;
+ }
+ default: {
+ CAbs_lr1_sym* sym = new Err_improper_directive;
+ sym->set_rc(*Dir,__FILE__,__LINE__);
+ RSVP_FSM(sym);
+ parser__->set_stop_parse(true);
+ return;
+ }
+ }
+ rule_lhs_phrase_->add_directive_to_lhs(Dir,parser__);
+ }
+ ***
+ op
+ if(rule_lhs_phrase_ != 0){
+ delete rule_lhs_phrase_;
+ rule_lhs_phrase_ = 0;
+ }
+ rule_lhs_phrase_ = new T_rule_lhs_phrase;
+ rule_lhs_phrase_->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ AST* t = new AST(*rule_lhs_phrase_);
+ rule_lhs_phrase_->phrase_tree(t);
+ ***
+ constructor
+ rule_lhs_phrase_ = 0;
+ ***
+}
+,fsm-version "1.0",fsm-date "24 mar 2004",fsm-debug "false"
+,fsm-comments "Parse a rule's ``lhs'' directive.")
+parallel-parser
+(
+ parallel-thread-function
+ TH_rule_lhs_phrase
+ ***
+ parallel-la-boundary
+ eolr
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rrule_lhs_phrase (){
+ -> "#lhs"
+ Rlint Rpotential_directives Rlint {
+ op
+ Crule_lhs_phrase* fsm = (Crule_lhs_phrase*)rule_info__.parser__->fsm_tbl__;
+ RSVP(fsm->rule_lhs_phrase_);
+ fsm->rule_lhs_phrase_ = 0;
+ ***
+ }
+}
+
+Rlhs (){
+ -> ||| "#lhs" NS_identifier::TH_identifier
+ -> ||| |?| NULL{
+ op
+ rule_info__.parser__->set_abort_parse(true);
+ ***
+ }
+}
+
+Rpotential_directives (){
+ -> |.| // no syntax code: end of subsule
+ -> "{" Rlint Rmust_directive_phrase Rmaybe_more_directives Rclose_brace Rlint
+}
+
+Rmust_directive_phrase (){
+ -> Rdirective_cweb_k Rlint Rmust_directive Rsyntax_code Rlint {
+ op
+ AST* cwebt = sf->p1__->cweb_t_;
+ Rmust_directive* dir = sf->p3__;
+ Rsyntax_code* sdc = sf->p4__;
+ if(cwebt != 0)
+ sdc->syntax_code_->add_cweb_marker(cwebt);
+ Crule_lhs_phrase* fsm = (Crule_lhs_phrase*)rule_info__.parser__->fsm_tbl__;
+ fsm->add_sdc_to_directive(dir->directive_,sdc->syntax_code_);
+ ***
+ }
+}
+
+Rmust_directive (
+lhs {
+ user-declaration
+ CAbs_lr1_sym* directive_;
+ ***
+ constructor
+ directive_ = 0;
+ ***
+ }
+){
+ -> ||| "#user-declaration" NS_identifier::TH_identifier {
+ op
+ directive_ = sf->p2__;
+ ***
+ }
+ -> ||| "#user-implementation" NULL {
+ op
+ directive_ = sf->p2__;
+ ***
+ }
+ -> ||| "#constructor" NULL {
+ op
+ directive_ = sf->p2__;
+ ***
+ }
+ -> ||| "#destructor" NULL {
+ op
+ directive_ = sf->p2__;
+ ***
+ }
+ -> ||| "#op" NULL {
+ op
+ directive_ = sf->p2__;
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ directive_ = 0;
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_bad_directive;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_directive_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rclose_brace (){
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_close_brace;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> "}"
+}
+
+Rmaybe_more_directives (){
+ ->
+ -> Rmaybe_directive_phrases
+}
+
+Rmaybe_directive_phrases (){
+ -> Rmaybe_directive_phrase
+ -> Rmaybe_directive_phrases Rmaybe_directive_phrase
+}
+
+Rmaybe_directive_phrase (){
+ -> Rcweb_k Rlint Rdirective Rsyntax_code Rlint {
+ op
+ AST* cwebt = sf->p1__->cweb_t_;
+ Rdirective* dir = sf->p3__;
+ Rsyntax_code* sdc = sf->p4__;
+ if(cwebt != 0)
+ sdc->syntax_code_->add_cweb_marker(cwebt);
+ Crule_lhs_phrase* fsm = (Crule_lhs_phrase*)rule_info__.parser__->fsm_tbl__;
+ fsm->add_sdc_to_directive(dir->directive_,sdc->syntax_code_);
+ ***
+ }
+ -> Rdirective Rsyntax_code Rlint {
+ op
+ Rdirective* dir = sf->p1__;
+ Rsyntax_code* sdc = sf->p2__;
+ Crule_lhs_phrase* fsm = (Crule_lhs_phrase*)rule_info__.parser__->fsm_tbl__;
+ fsm->add_sdc_to_directive(dir->directive_,sdc->syntax_code_);
+ ***
+ }
+}
+
+Rdirective_phrase (){
+ -> Rcweb_k Rlint Rdirective Rsyntax_code Rlint {
+ op
+ AST* cwebt = sf->p1__->cweb_t_;
+ Rdirective* dir = sf->p3__;
+ Rsyntax_code* sdc = sf->p4__;
+ if(cwebt != 0)
+ sdc->syntax_code_->add_cweb_marker(cwebt);
+ Crule_lhs_phrase* fsm = (Crule_lhs_phrase*)rule_info__.parser__->fsm_tbl__;
+ fsm->add_sdc_to_directive(dir->directive_,sdc->syntax_code_);
+ ***
+ }
+}
+
+
+Rdirective (
+lhs {
+ user-declaration
+ CAbs_lr1_sym* directive_;
+ ***
+ constructor
+ directive_ = 0;
+ ***
+ }
+){
+ -> ||| "#user-declaration" NS_identifier::TH_identifier {
+ op
+ directive_ = sf->p2__;
+ ***
+ }
+ -> ||| "#user-implementation" NULL {
+ op
+ directive_ = sf->p2__;
+ ***
+ }
+ -> ||| "#constructor" NULL {
+ op
+ directive_ = sf->p2__;
+ ***
+ }
+ -> ||| "#destructor" NULL {
+ op
+ directive_ = sf->p2__;
+ ***
+ }
+ -> ||| "#op" NULL {
+ op
+ directive_ = sf->p2__;
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ directive_ = 0;
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_bad_directive;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+
+Rsyntax_code (
+lhs {
+ user-declaration
+ T_syntax_code* syntax_code_;
+ ***
+ constructor
+ syntax_code_ = 0;
+ ***
+ }
+){
+ -> ||| "syntax-code" NS_o2_sdc::TH_o2_sdc {
+ op
+ syntax_code_ = sf->p2__;
+ ***
+ }
+ -> ||| |?| NULL { // catcher in the Rye? These are errors
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rlint (){
+ -> ||| lint NS_lint_balls::TH_lint_balls
+ ->
+}
+
+Rcweb_marker (
+lhs {
+ user-declaration
+ AST* cweb_t_;
+ ***
+ constructor
+ cweb_t_ = 0;
+ ***
+}
+){
+ -> ||| "cweb-comment" NS_cweb_or_c_k::TH_cweb_or_c_k {
+ op
+ T_cweb_comment* k = sf->p2__;
+ AST* cwebk_t_ = new AST(*k);
+ cweb_t_ = new AST();
+ T_cweb_marker* cw = new T_cweb_marker(cweb_t_);
+ cw->set_rc(*k,__FILE__,__LINE__);
+ AST::set_content(*cweb_t_,*cw);
+ AST::join_pts(*cweb_t_,*cwebk_t_);
+
+ ***
+ }
+}
+
+Rdirective_cweb_k (
+lhs {
+ user-declaration
+ AST* cweb_t_;
+ ***
+ constructor
+ cweb_t_ = 0;
+ ***
+ }
+){
+ ->
+ -> ||| "cweb-comment" NS_cweb_or_c_k::TH_cweb_or_c_k {
+ op
+ T_cweb_comment* k = sf->p2__;
+ AST* cwebk_t_ = new AST(*k);
+ cweb_t_ = new AST();
+ T_cweb_marker* cw = new T_cweb_marker(cweb_t_);
+ cw->set_rc(*k,__FILE__,__LINE__);
+ AST::set_content(*cweb_t_,*cw);
+ AST::join_pts(*cweb_t_,*cwebk_t_);
+
+ ***
+ }
+ -> ||| "comment-overrun" NULL {
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rcweb_k (
+lhs {
+ user-declaration
+ AST* cweb_t_;
+ ***
+ constructor
+ cweb_t_ = 0;
+ ***
+ }
+){
+ -> ||| "cweb-comment" NS_cweb_or_c_k::TH_cweb_or_c_k {
+ op
+ T_cweb_comment* k = sf->p2__;
+ AST* cwebk_t_ = new AST(*k);
+ cweb_t_ = new AST();
+ T_cweb_marker* cw = new T_cweb_marker(cweb_t_);
+ cw->set_rc(*k,__FILE__,__LINE__);
+ AST::set_content(*cweb_t_,*cw);
+ AST::join_pts(*cweb_t_,*cwebk_t_);
+ ***
+ }
+ -> ||| "comment-overrun" NULL {
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/rule_lhs_phrasesym.cpp b/web/yacco2/compiler/grammars/rule_lhs_phrasesym.cpp
new file mode 100644
index 0000000000..fa9ff7534b
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rule_lhs_phrasesym.cpp
@@ -0,0 +1,628 @@
+/*
+ File: rule_lhs_phrasesym.cpp
+ Date and Time: Fri Jan 30 18:55:23 2015
+*/
+#include "rule_lhs_phrase.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_rule_lhs_phrase;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_rule_lhs_phrase::TH_rule_lhs_phrase(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_rule_lhs_phrase;
+ NS_rule_lhs_phrase::Crule_lhs_phrase Crule_lhs_phrase_;// parallel-parser's parse table
+#define ssPARSE_TABLE Crule_lhs_phrase_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_rule_lhs_phrase::PROC_TH_rule_lhs_phrase(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_rule_lhs_phrase";
+ static bool one_time(false);
+ static NS_rule_lhs_phrase::Crule_lhs_phrase* NS_rule_lhs_phrase_Crule_lhs_phrase_(0);// parallel-parser's fsm table
+ static Parser* NS_rule_lhs_phrase_Crule_lhs_phrase_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_rule_lhs_phrase_Crule_lhs_phrase_ = new NS_rule_lhs_phrase::Crule_lhs_phrase();// parallel-parser's fsm table
+ NS_rule_lhs_phrase_Crule_lhs_phrase_parser = new Parser(*NS_rule_lhs_phrase_Crule_lhs_phrase_,Caller_pp);
+ }
+ proc_parser = NS_rule_lhs_phrase_Crule_lhs_phrase_parser;
+#include "wproc_pp_core.h"
+}
+void
+Crule_lhs_phrase::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rrule_lhs_phrase_:{
+ Rrule_lhs_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rrule_lhs_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrule_lhs_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 4;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rlhs_:{
+ Rlhs* sym;
+ if(re->rule_ == 0){
+ sym = new Rlhs(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlhs*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rlhs_:{
+ Rlhs* sym;
+ if(re->rule_ == 0){
+ sym = new Rlhs(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlhs*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rpotential_directives_:{
+ Rpotential_directives* sym;
+ if(re->rule_ == 0){
+ sym = new Rpotential_directives(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rpotential_directives*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rpotential_directives_:{
+ Rpotential_directives* sym;
+ if(re->rule_ == 0){
+ sym = new Rpotential_directives(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rpotential_directives*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 6;
+
+
+ return;}
+ case rhs1_Rmust_directive_phrase_:{
+ Rmust_directive_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rmust_directive_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmust_directive_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rmust_directive_:{
+ Rmust_directive* sym;
+ if(re->rule_ == 0){
+ sym = new Rmust_directive(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmust_directive*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rmust_directive_:{
+ Rmust_directive* sym;
+ if(re->rule_ == 0){
+ sym = new Rmust_directive(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmust_directive*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rmust_directive_:{
+ Rmust_directive* sym;
+ if(re->rule_ == 0){
+ sym = new Rmust_directive(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmust_directive*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rmust_directive_:{
+ Rmust_directive* sym;
+ if(re->rule_ == 0){
+ sym = new Rmust_directive(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmust_directive*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr4();
+ return;}
+ case rhs5_Rmust_directive_:{
+ Rmust_directive* sym;
+ if(re->rule_ == 0){
+ sym = new Rmust_directive(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmust_directive*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr5();
+ return;}
+ case rhs6_Rmust_directive_:{
+ Rmust_directive* sym;
+ if(re->rule_ == 0){
+ sym = new Rmust_directive(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmust_directive*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr6();
+ return;}
+ case rhs7_Rmust_directive_:{
+ Rmust_directive* sym;
+ if(re->rule_ == 0){
+ sym = new Rmust_directive(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmust_directive*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr7();
+ return;}
+ case rhs1_Rclose_brace_:{
+ Rclose_brace* sym;
+ if(re->rule_ == 0){
+ sym = new Rclose_brace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclose_brace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rclose_brace_:{
+ Rclose_brace* sym;
+ if(re->rule_ == 0){
+ sym = new Rclose_brace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclose_brace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rmaybe_more_directives_:{
+ Rmaybe_more_directives* sym;
+ if(re->rule_ == 0){
+ sym = new Rmaybe_more_directives(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmaybe_more_directives*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs2_Rmaybe_more_directives_:{
+ Rmaybe_more_directives* sym;
+ if(re->rule_ == 0){
+ sym = new Rmaybe_more_directives(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmaybe_more_directives*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rmaybe_directive_phrases_:{
+ Rmaybe_directive_phrases* sym;
+ if(re->rule_ == 0){
+ sym = new Rmaybe_directive_phrases(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmaybe_directive_phrases*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rmaybe_directive_phrases_:{
+ Rmaybe_directive_phrases* sym;
+ if(re->rule_ == 0){
+ sym = new Rmaybe_directive_phrases(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmaybe_directive_phrases*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rmaybe_directive_phrase_:{
+ Rmaybe_directive_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rmaybe_directive_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmaybe_directive_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rmaybe_directive_phrase_:{
+ Rmaybe_directive_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rmaybe_directive_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmaybe_directive_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rdirective_phrase_:{
+ Rdirective_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr4();
+ return;}
+ case rhs5_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr5();
+ return;}
+ case rhs6_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr6();
+ return;}
+ case rhs1_Rsyntax_code_:{
+ Rsyntax_code* sym;
+ if(re->rule_ == 0){
+ sym = new Rsyntax_code(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsyntax_code*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rsyntax_code_:{
+ Rsyntax_code* sym;
+ if(re->rule_ == 0){
+ sym = new Rsyntax_code(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsyntax_code*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rlint_:{
+ Rlint* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rlint_:{
+ Rlint* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs1_Rcweb_marker_:{
+ Rcweb_marker* sym;
+ if(re->rule_ == 0){
+ sym = new Rcweb_marker(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rcweb_marker*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rdirective_cweb_k_:{
+ Rdirective_cweb_k* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective_cweb_k(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective_cweb_k*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs2_Rdirective_cweb_k_:{
+ Rdirective_cweb_k* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective_cweb_k(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective_cweb_k*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rdirective_cweb_k_:{
+ Rdirective_cweb_k* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective_cweb_k(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective_cweb_k*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rcweb_k_:{
+ Rcweb_k* sym;
+ if(re->rule_ == 0){
+ sym = new Rcweb_k(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rcweb_k*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rcweb_k_:{
+ Rcweb_k* sym;
+ if(re->rule_ == 0){
+ sym = new Rcweb_k(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rcweb_k*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/rule_lhs_phrasetbl.cpp b/web/yacco2/compiler/grammars/rule_lhs_phrasetbl.cpp
new file mode 100644
index 0000000000..f9d0b0b4fc
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rule_lhs_phrasetbl.cpp
@@ -0,0 +1,1176 @@
+/*
+ File: rule_lhs_phrasetbl.cpp
+ Date and Time: Fri Jan 30 18:55:23 2015
+*/
+#include "rule_lhs_phrase.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_rule_lhs_phrase;// grammar's ns
+// first set terminals
+// LR1_invisible_shift_operator
+// raw_open_brace
+yacco2::UCHAR LA1_Crule_lhs_phrase[] ={
+2
+,0,32
+,16,8
+};
+// LR1_eolr
+yacco2::UCHAR LA2_Crule_lhs_phrase[] ={
+1
+,0,4
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+yacco2::UCHAR LA3_Crule_lhs_phrase[] ={
+1
+,0,17
+};
+// LR1_questionable_shift_operator
+// raw_close_brace
+yacco2::UCHAR LA4_Crule_lhs_phrase[] ={
+2
+,0,1
+,16,32
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+// raw_close_brace
+yacco2::UCHAR LA5_Crule_lhs_phrase[] ={
+2
+,0,17
+,16,32
+};
+// LR1_reduce_operator
+yacco2::UCHAR LA6_Crule_lhs_phrase[] ={
+1
+,0,16
+};
+extern yacco2::State S1_Crule_lhs_phrase;
+extern yacco2::State S2_Crule_lhs_phrase;
+extern yacco2::State S3_Crule_lhs_phrase;
+extern yacco2::State S4_Crule_lhs_phrase;
+extern yacco2::State S5_Crule_lhs_phrase;
+extern yacco2::State S6_Crule_lhs_phrase;
+extern yacco2::State S7_Crule_lhs_phrase;
+extern yacco2::State S8_Crule_lhs_phrase;
+extern yacco2::State S9_Crule_lhs_phrase;
+extern yacco2::State S10_Crule_lhs_phrase;
+extern yacco2::State S11_Crule_lhs_phrase;
+extern yacco2::State S12_Crule_lhs_phrase;
+struct S12ttd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S12ttd_Crule_lhs_phrase S12tt_Crule_lhs_phrase = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_lint_balls
+};
+extern yacco2::State S13_Crule_lhs_phrase;
+extern yacco2::State S14_Crule_lhs_phrase;
+extern yacco2::State S15_Crule_lhs_phrase;
+extern yacco2::State S16_Crule_lhs_phrase;
+extern yacco2::State S17_Crule_lhs_phrase;
+struct S17ttd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S17ttd_Crule_lhs_phrase S17tt_Crule_lhs_phrase = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_cweb_or_c_k
+};
+extern yacco2::State S18_Crule_lhs_phrase;
+extern yacco2::State S19_Crule_lhs_phrase;
+extern yacco2::State S20_Crule_lhs_phrase;
+extern yacco2::State S21_Crule_lhs_phrase;
+extern yacco2::State S22_Crule_lhs_phrase;
+extern yacco2::State S23_Crule_lhs_phrase;
+struct S23ttd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S23ttd_Crule_lhs_phrase S23tt_Crule_lhs_phrase = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_o2_sdc
+};
+extern yacco2::State S24_Crule_lhs_phrase;
+extern yacco2::State S25_Crule_lhs_phrase;
+extern yacco2::State S26_Crule_lhs_phrase;
+extern yacco2::State S27_Crule_lhs_phrase;
+extern yacco2::State S28_Crule_lhs_phrase;
+struct S28ttd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[2];
+};
+S28ttd_Crule_lhs_phrase S28tt_Crule_lhs_phrase = {
+ 2 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+ ,(yacco2::Thread_entry*)&ITH_cweb_or_c_k
+};
+extern yacco2::State S29_Crule_lhs_phrase;
+extern yacco2::State S30_Crule_lhs_phrase;
+extern yacco2::State S31_Crule_lhs_phrase;
+extern yacco2::State S32_Crule_lhs_phrase;
+extern yacco2::State S33_Crule_lhs_phrase;
+extern yacco2::State S34_Crule_lhs_phrase;
+extern yacco2::State S35_Crule_lhs_phrase;
+extern yacco2::State S36_Crule_lhs_phrase;
+extern yacco2::State S37_Crule_lhs_phrase;
+extern yacco2::State S38_Crule_lhs_phrase;
+extern yacco2::State S39_Crule_lhs_phrase;
+extern yacco2::State S40_Crule_lhs_phrase;
+extern yacco2::State S41_Crule_lhs_phrase;
+extern yacco2::State S42_Crule_lhs_phrase;
+extern yacco2::State S43_Crule_lhs_phrase;
+extern yacco2::State S44_Crule_lhs_phrase;
+extern yacco2::State S45_Crule_lhs_phrase;
+extern yacco2::State S46_Crule_lhs_phrase;
+extern yacco2::State S47_Crule_lhs_phrase;
+extern yacco2::State S48_Crule_lhs_phrase;
+extern yacco2::State S49_Crule_lhs_phrase;
+struct S49ttd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S49ttd_Crule_lhs_phrase S49tt_Crule_lhs_phrase = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S50_Crule_lhs_phrase;
+extern yacco2::State S51_Crule_lhs_phrase;
+extern yacco2::State S52_Crule_lhs_phrase;
+extern yacco2::State S53_Crule_lhs_phrase;
+extern yacco2::State S54_Crule_lhs_phrase;
+extern yacco2::State S55_Crule_lhs_phrase;
+extern yacco2::State S56_Crule_lhs_phrase;
+struct S56ttd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S56ttd_Crule_lhs_phrase S56tt_Crule_lhs_phrase = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+struct S1std_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S1std_Crule_lhs_phrase S1st_Crule_lhs_phrase = {
+ 2
+ ,
+ {// start of table
+ {307,(State*)&S2_Crule_lhs_phrase} // shift sym: T_lhs
+ ,{569,(State*)&S1_Crule_lhs_phrase} // accept sym: Rrule_lhs_phrase
+ }// end of shift table
+};
+yacco2::State S1_Crule_lhs_phrase = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Crule_lhs_phrase,0,0,0,0};
+struct S2std_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S2std_Crule_lhs_phrase S2st_Crule_lhs_phrase = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S12_Crule_lhs_phrase} // shift sym: LR1_parallel_operator
+ ,{581,(State*)&S3_Crule_lhs_phrase} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S2pse_Crule_lhs_phrase = {3,(State*)&S12_Crule_lhs_phrase};
+struct S2rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Crule_lhs_phrase S2rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crule_lhs_phrase,Crule_lhs_phrase::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S2_Crule_lhs_phrase = //State's vectored into symbol: "#lhs"
+{2
+,(Shift_entry*)&S2pse_Crule_lhs_phrase,0,0,0,(Shift_tbl*)&S2st_Crule_lhs_phrase,(Reduce_tbl*)&S2rt_Crule_lhs_phrase,(State_s_thread_tbl*)&S12tt_Crule_lhs_phrase,0,0};
+struct S3std_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S3std_Crule_lhs_phrase S3st_Crule_lhs_phrase = {
+ 3
+ ,
+ {// start of table
+ {5,(State*)&S4_Crule_lhs_phrase} // shift sym: LR1_invisible_shift_operator
+ ,{131,(State*)&S5_Crule_lhs_phrase} // shift sym: raw_open_brace
+ ,{571,(State*)&S15_Crule_lhs_phrase} // shift sym: Rpotential_directives
+ }// end of shift table
+};
+yacco2::Shift_entry S3ise_Crule_lhs_phrase = {5,(State*)&S4_Crule_lhs_phrase};
+yacco2::State S3_Crule_lhs_phrase = //State's vectored into symbol: "Rlint"
+{3
+,0,0,(Shift_entry*)&S3ise_Crule_lhs_phrase
+,0,(Shift_tbl*)&S3st_Crule_lhs_phrase,0,0,0,0};
+struct S4rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Crule_lhs_phrase S4rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Crule_lhs_phrase,Crule_lhs_phrase::rhs1_Rpotential_directives_}
+ }// end of reduce table
+};
+yacco2::State S4_Crule_lhs_phrase = //State's vectored into symbol: "|.|"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Crule_lhs_phrase,0,0,0};
+struct S5std_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S5std_Crule_lhs_phrase S5st_Crule_lhs_phrase = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S12_Crule_lhs_phrase} // shift sym: LR1_parallel_operator
+ ,{581,(State*)&S6_Crule_lhs_phrase} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S5pse_Crule_lhs_phrase = {3,(State*)&S12_Crule_lhs_phrase};
+struct S5rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Crule_lhs_phrase S5rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Crule_lhs_phrase,Crule_lhs_phrase::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S5_Crule_lhs_phrase = //State's vectored into symbol: "{"
+{5
+,(Shift_entry*)&S5pse_Crule_lhs_phrase,0,0,0,(Shift_tbl*)&S5st_Crule_lhs_phrase,(Reduce_tbl*)&S5rt_Crule_lhs_phrase,(State_s_thread_tbl*)&S12tt_Crule_lhs_phrase,0,0};
+struct S6std_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S6std_Crule_lhs_phrase S6st_Crule_lhs_phrase = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S17_Crule_lhs_phrase} // shift sym: LR1_parallel_operator
+ ,{572,(State*)&S7_Crule_lhs_phrase} // shift sym: Rmust_directive_phrase
+ ,{583,(State*)&S20_Crule_lhs_phrase} // shift sym: Rdirective_cweb_k
+ }// end of shift table
+};
+yacco2::Shift_entry S6pse_Crule_lhs_phrase = {3,(State*)&S17_Crule_lhs_phrase};
+struct S6rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Crule_lhs_phrase S6rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Crule_lhs_phrase,Crule_lhs_phrase::rhs1_Rdirective_cweb_k_}
+ }// end of reduce table
+};
+yacco2::State S6_Crule_lhs_phrase = //State's vectored into symbol: "Rlint"
+{6
+,(Shift_entry*)&S6pse_Crule_lhs_phrase,0,0,0,(Shift_tbl*)&S6st_Crule_lhs_phrase,(Reduce_tbl*)&S6rt_Crule_lhs_phrase,(State_s_thread_tbl*)&S17tt_Crule_lhs_phrase,0,0};
+struct S7std_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[6];
+};
+S7std_Crule_lhs_phrase S7st_Crule_lhs_phrase = {
+ 6
+ ,
+ {// start of table
+ {3,(State*)&S28_Crule_lhs_phrase} // shift sym: LR1_parallel_operator
+ ,{575,(State*)&S8_Crule_lhs_phrase} // shift sym: Rmaybe_more_directives
+ ,{576,(State*)&S37_Crule_lhs_phrase} // shift sym: Rmaybe_directive_phrases
+ ,{577,(State*)&S47_Crule_lhs_phrase} // shift sym: Rmaybe_directive_phrase
+ ,{579,(State*)&S39_Crule_lhs_phrase} // shift sym: Rdirective
+ ,{584,(State*)&S42_Crule_lhs_phrase} // shift sym: Rcweb_k
+ }// end of shift table
+};
+yacco2::Shift_entry S7pse_Crule_lhs_phrase = {3,(State*)&S28_Crule_lhs_phrase};
+struct S7rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Crule_lhs_phrase S7rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Crule_lhs_phrase,Crule_lhs_phrase::rhs1_Rmaybe_more_directives_}
+ }// end of reduce table
+};
+yacco2::State S7_Crule_lhs_phrase = //State's vectored into symbol: "Rmust_directive_phrase"
+{7
+,(Shift_entry*)&S7pse_Crule_lhs_phrase,0,0,0,(Shift_tbl*)&S7st_Crule_lhs_phrase,(Reduce_tbl*)&S7rt_Crule_lhs_phrase,(State_s_thread_tbl*)&S28tt_Crule_lhs_phrase,0,0};
+struct S8std_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S8std_Crule_lhs_phrase S8st_Crule_lhs_phrase = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S9_Crule_lhs_phrase} // shift sym: LR1_questionable_shift_operator
+ ,{133,(State*)&S10_Crule_lhs_phrase} // shift sym: raw_close_brace
+ ,{574,(State*)&S11_Crule_lhs_phrase} // shift sym: Rclose_brace
+ }// end of shift table
+};
+yacco2::Shift_entry S8qse_Crule_lhs_phrase = {0,(State*)&S9_Crule_lhs_phrase};
+yacco2::State S8_Crule_lhs_phrase = //State's vectored into symbol: "Rmaybe_more_directives"
+{8
+,0,0,0,0,(Shift_tbl*)&S8st_Crule_lhs_phrase,0,0,0,(Shift_entry*)&S8qse_Crule_lhs_phrase
+};
+struct S9rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Crule_lhs_phrase S9rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Crule_lhs_phrase,Crule_lhs_phrase::rhs1_Rclose_brace_}
+ }// end of reduce table
+};
+yacco2::State S9_Crule_lhs_phrase = //State's vectored into symbol: "|?|"
+{9
+,0,0,0,0,0,(Reduce_tbl*)&S9rt_Crule_lhs_phrase,0,0,0};
+struct S10rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S10rtd_Crule_lhs_phrase S10rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Crule_lhs_phrase,Crule_lhs_phrase::rhs2_Rclose_brace_}
+ }// end of reduce table
+};
+yacco2::State S10_Crule_lhs_phrase = //State's vectored into symbol: "}"
+{10
+,0,0,0,0,0,(Reduce_tbl*)&S10rt_Crule_lhs_phrase,0,0,0};
+struct S11std_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S11std_Crule_lhs_phrase S11st_Crule_lhs_phrase = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S12_Crule_lhs_phrase} // shift sym: LR1_parallel_operator
+ ,{581,(State*)&S14_Crule_lhs_phrase} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S11pse_Crule_lhs_phrase = {3,(State*)&S12_Crule_lhs_phrase};
+struct S11rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Crule_lhs_phrase S11rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Crule_lhs_phrase,Crule_lhs_phrase::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S11_Crule_lhs_phrase = //State's vectored into symbol: "Rclose_brace"
+{11
+,(Shift_entry*)&S11pse_Crule_lhs_phrase,0,0,0,(Shift_tbl*)&S11st_Crule_lhs_phrase,(Reduce_tbl*)&S11rt_Crule_lhs_phrase,(State_s_thread_tbl*)&S12tt_Crule_lhs_phrase,0,0};
+struct S12std_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S12std_Crule_lhs_phrase S12st_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {375,(State*)&S13_Crule_lhs_phrase} // shift sym: T_lint
+ }// end of shift table
+};
+yacco2::State S12_Crule_lhs_phrase = //State's vectored into symbol: "|||"
+{12
+,0,0,0,0,(Shift_tbl*)&S12st_Crule_lhs_phrase,0,0,0,0};
+struct S13rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S13rtd_Crule_lhs_phrase S13rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Crule_lhs_phrase,Crule_lhs_phrase::rhs1_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S13_Crule_lhs_phrase = //State's vectored into symbol: "lint"
+{13
+,0,0,0,0,0,(Reduce_tbl*)&S13rt_Crule_lhs_phrase,0,0,0};
+struct S14rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S14rtd_Crule_lhs_phrase S14rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Crule_lhs_phrase,Crule_lhs_phrase::rhs2_Rpotential_directives_}
+ }// end of reduce table
+};
+yacco2::State S14_Crule_lhs_phrase = //State's vectored into symbol: "Rlint"
+{14
+,0,0,0,0,0,(Reduce_tbl*)&S14rt_Crule_lhs_phrase,0,0,0};
+struct S15std_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S15std_Crule_lhs_phrase S15st_Crule_lhs_phrase = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S12_Crule_lhs_phrase} // shift sym: LR1_parallel_operator
+ ,{581,(State*)&S16_Crule_lhs_phrase} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S15pse_Crule_lhs_phrase = {3,(State*)&S12_Crule_lhs_phrase};
+struct S15rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S15rtd_Crule_lhs_phrase S15rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Crule_lhs_phrase,Crule_lhs_phrase::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S15_Crule_lhs_phrase = //State's vectored into symbol: "Rpotential_directives"
+{15
+,(Shift_entry*)&S15pse_Crule_lhs_phrase,0,0,0,(Shift_tbl*)&S15st_Crule_lhs_phrase,(Reduce_tbl*)&S15rt_Crule_lhs_phrase,(State_s_thread_tbl*)&S12tt_Crule_lhs_phrase,0,0};
+struct S16rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S16rtd_Crule_lhs_phrase S16rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Crule_lhs_phrase,Crule_lhs_phrase::rhs1_Rrule_lhs_phrase_}
+ }// end of reduce table
+};
+yacco2::State S16_Crule_lhs_phrase = //State's vectored into symbol: "Rlint"
+{16
+,0,0,0,0,0,(Reduce_tbl*)&S16rt_Crule_lhs_phrase,0,0,0};
+struct S17std_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S17std_Crule_lhs_phrase S17st_Crule_lhs_phrase = {
+ 2
+ ,
+ {// start of table
+ {372,(State*)&S18_Crule_lhs_phrase} // shift sym: T_cweb_comment
+ ,{396,(State*)&S19_Crule_lhs_phrase} // shift sym: Err_comment_overrun
+ }// end of shift table
+};
+yacco2::State S17_Crule_lhs_phrase = //State's vectored into symbol: "|||"
+{17
+,0,0,0,0,(Shift_tbl*)&S17st_Crule_lhs_phrase,0,0,0,0};
+struct S18rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S18rtd_Crule_lhs_phrase S18rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Crule_lhs_phrase,Crule_lhs_phrase::rhs2_Rdirective_cweb_k_}
+ }// end of reduce table
+};
+yacco2::State S18_Crule_lhs_phrase = //State's vectored into symbol: "cweb-comment"
+{18
+,0,0,0,0,0,(Reduce_tbl*)&S18rt_Crule_lhs_phrase,0,0,0};
+struct S19rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S19rtd_Crule_lhs_phrase S19rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Crule_lhs_phrase,Crule_lhs_phrase::rhs3_Rdirective_cweb_k_}
+ }// end of reduce table
+};
+yacco2::State S19_Crule_lhs_phrase = //State's vectored into symbol: "comment-overrun"
+{19
+,0,0,0,0,0,(Reduce_tbl*)&S19rt_Crule_lhs_phrase,0,0,0};
+struct S20std_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S20std_Crule_lhs_phrase S20st_Crule_lhs_phrase = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S12_Crule_lhs_phrase} // shift sym: LR1_parallel_operator
+ ,{581,(State*)&S21_Crule_lhs_phrase} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S20pse_Crule_lhs_phrase = {3,(State*)&S12_Crule_lhs_phrase};
+struct S20rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S20rtd_Crule_lhs_phrase S20rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Crule_lhs_phrase,Crule_lhs_phrase::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S20_Crule_lhs_phrase = //State's vectored into symbol: "Rdirective_cweb_k"
+{20
+,(Shift_entry*)&S20pse_Crule_lhs_phrase,0,0,0,(Shift_tbl*)&S20st_Crule_lhs_phrase,(Reduce_tbl*)&S20rt_Crule_lhs_phrase,(State_s_thread_tbl*)&S12tt_Crule_lhs_phrase,0,0};
+struct S21std_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S21std_Crule_lhs_phrase S21st_Crule_lhs_phrase = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S48_Crule_lhs_phrase} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S49_Crule_lhs_phrase} // shift sym: LR1_parallel_operator
+ ,{573,(State*)&S22_Crule_lhs_phrase} // shift sym: Rmust_directive
+ }// end of shift table
+};
+yacco2::Shift_entry S21pse_Crule_lhs_phrase = {3,(State*)&S49_Crule_lhs_phrase};
+yacco2::Shift_entry S21qse_Crule_lhs_phrase = {0,(State*)&S48_Crule_lhs_phrase};
+yacco2::State S21_Crule_lhs_phrase = //State's vectored into symbol: "Rlint"
+{21
+,(Shift_entry*)&S21pse_Crule_lhs_phrase,0,0,0,(Shift_tbl*)&S21st_Crule_lhs_phrase,0,(State_s_thread_tbl*)&S49tt_Crule_lhs_phrase,0,(Shift_entry*)&S21qse_Crule_lhs_phrase
+};
+struct S22std_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S22std_Crule_lhs_phrase S22st_Crule_lhs_phrase = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S23_Crule_lhs_phrase} // shift sym: LR1_parallel_operator
+ ,{580,(State*)&S26_Crule_lhs_phrase} // shift sym: Rsyntax_code
+ }// end of shift table
+};
+yacco2::Shift_entry S22pse_Crule_lhs_phrase = {3,(State*)&S23_Crule_lhs_phrase};
+yacco2::State S22_Crule_lhs_phrase = //State's vectored into symbol: "Rmust_directive"
+{22
+,(Shift_entry*)&S22pse_Crule_lhs_phrase,0,0,0,(Shift_tbl*)&S22st_Crule_lhs_phrase,0,(State_s_thread_tbl*)&S23tt_Crule_lhs_phrase,0,0};
+struct S23std_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S23std_Crule_lhs_phrase S23st_Crule_lhs_phrase = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S24_Crule_lhs_phrase} // shift sym: LR1_questionable_shift_operator
+ ,{326,(State*)&S25_Crule_lhs_phrase} // shift sym: T_syntax_code
+ }// end of shift table
+};
+yacco2::Shift_entry S23qse_Crule_lhs_phrase = {0,(State*)&S24_Crule_lhs_phrase};
+yacco2::State S23_Crule_lhs_phrase = //State's vectored into symbol: "|||"
+{23
+,0,0,0,0,(Shift_tbl*)&S23st_Crule_lhs_phrase,0,0,0,(Shift_entry*)&S23qse_Crule_lhs_phrase
+};
+struct S24rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S24rtd_Crule_lhs_phrase S24rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crule_lhs_phrase,Crule_lhs_phrase::rhs2_Rsyntax_code_}
+ }// end of reduce table
+};
+yacco2::State S24_Crule_lhs_phrase = //State's vectored into symbol: "|?|"
+{24
+,0,0,0,0,0,(Reduce_tbl*)&S24rt_Crule_lhs_phrase,0,0,0};
+struct S25rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S25rtd_Crule_lhs_phrase S25rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crule_lhs_phrase,Crule_lhs_phrase::rhs1_Rsyntax_code_}
+ }// end of reduce table
+};
+yacco2::State S25_Crule_lhs_phrase = //State's vectored into symbol: "syntax-code"
+{25
+,0,0,0,0,0,(Reduce_tbl*)&S25rt_Crule_lhs_phrase,0,0,0};
+struct S26std_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S26std_Crule_lhs_phrase S26st_Crule_lhs_phrase = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S12_Crule_lhs_phrase} // shift sym: LR1_parallel_operator
+ ,{581,(State*)&S27_Crule_lhs_phrase} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S26pse_Crule_lhs_phrase = {3,(State*)&S12_Crule_lhs_phrase};
+struct S26rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S26rtd_Crule_lhs_phrase S26rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crule_lhs_phrase,Crule_lhs_phrase::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S26_Crule_lhs_phrase = //State's vectored into symbol: "Rsyntax_code"
+{26
+,(Shift_entry*)&S26pse_Crule_lhs_phrase,0,0,0,(Shift_tbl*)&S26st_Crule_lhs_phrase,(Reduce_tbl*)&S26rt_Crule_lhs_phrase,(State_s_thread_tbl*)&S12tt_Crule_lhs_phrase,0,0};
+struct S27rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S27rtd_Crule_lhs_phrase S27rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crule_lhs_phrase,Crule_lhs_phrase::rhs1_Rmust_directive_phrase_}
+ }// end of reduce table
+};
+yacco2::State S27_Crule_lhs_phrase = //State's vectored into symbol: "Rlint"
+{27
+,0,0,0,0,0,(Reduce_tbl*)&S27rt_Crule_lhs_phrase,0,0,0};
+struct S28std_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[8];
+};
+S28std_Crule_lhs_phrase S28st_Crule_lhs_phrase = {
+ 8
+ ,
+ {// start of table
+ {0,(State*)&S29_Crule_lhs_phrase} // shift sym: LR1_questionable_shift_operator
+ ,{308,(State*)&S30_Crule_lhs_phrase} // shift sym: T_user_declaration
+ ,{311,(State*)&S31_Crule_lhs_phrase} // shift sym: T_constructor
+ ,{312,(State*)&S32_Crule_lhs_phrase} // shift sym: T_destructor
+ ,{313,(State*)&S33_Crule_lhs_phrase} // shift sym: T_op
+ ,{315,(State*)&S34_Crule_lhs_phrase} // shift sym: T_user_implementation
+ ,{372,(State*)&S35_Crule_lhs_phrase} // shift sym: T_cweb_comment
+ ,{396,(State*)&S36_Crule_lhs_phrase} // shift sym: Err_comment_overrun
+ }// end of shift table
+};
+yacco2::Shift_entry S28qse_Crule_lhs_phrase = {0,(State*)&S29_Crule_lhs_phrase};
+yacco2::State S28_Crule_lhs_phrase = //State's vectored into symbol: "|||"
+{28
+,0,0,0,0,(Shift_tbl*)&S28st_Crule_lhs_phrase,0,0,0,(Shift_entry*)&S28qse_Crule_lhs_phrase
+};
+struct S29rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S29rtd_Crule_lhs_phrase S29rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Crule_lhs_phrase,Crule_lhs_phrase::rhs6_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S29_Crule_lhs_phrase = //State's vectored into symbol: "|?|"
+{29
+,0,0,0,0,0,(Reduce_tbl*)&S29rt_Crule_lhs_phrase,0,0,0};
+struct S30rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S30rtd_Crule_lhs_phrase S30rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Crule_lhs_phrase,Crule_lhs_phrase::rhs1_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S30_Crule_lhs_phrase = //State's vectored into symbol: "#user-declaration"
+{30
+,0,0,0,0,0,(Reduce_tbl*)&S30rt_Crule_lhs_phrase,0,0,0};
+struct S31rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S31rtd_Crule_lhs_phrase S31rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Crule_lhs_phrase,Crule_lhs_phrase::rhs3_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S31_Crule_lhs_phrase = //State's vectored into symbol: "#constructor"
+{31
+,0,0,0,0,0,(Reduce_tbl*)&S31rt_Crule_lhs_phrase,0,0,0};
+struct S32rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S32rtd_Crule_lhs_phrase S32rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Crule_lhs_phrase,Crule_lhs_phrase::rhs4_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S32_Crule_lhs_phrase = //State's vectored into symbol: "#destructor"
+{32
+,0,0,0,0,0,(Reduce_tbl*)&S32rt_Crule_lhs_phrase,0,0,0};
+struct S33rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S33rtd_Crule_lhs_phrase S33rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Crule_lhs_phrase,Crule_lhs_phrase::rhs5_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S33_Crule_lhs_phrase = //State's vectored into symbol: "#op"
+{33
+,0,0,0,0,0,(Reduce_tbl*)&S33rt_Crule_lhs_phrase,0,0,0};
+struct S34rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S34rtd_Crule_lhs_phrase S34rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Crule_lhs_phrase,Crule_lhs_phrase::rhs2_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S34_Crule_lhs_phrase = //State's vectored into symbol: "#user-implementation"
+{34
+,0,0,0,0,0,(Reduce_tbl*)&S34rt_Crule_lhs_phrase,0,0,0};
+struct S35rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S35rtd_Crule_lhs_phrase S35rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Crule_lhs_phrase,Crule_lhs_phrase::rhs1_Rcweb_k_}
+ }// end of reduce table
+};
+yacco2::State S35_Crule_lhs_phrase = //State's vectored into symbol: "cweb-comment"
+{35
+,0,0,0,0,0,(Reduce_tbl*)&S35rt_Crule_lhs_phrase,0,0,0};
+struct S36rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S36rtd_Crule_lhs_phrase S36rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Crule_lhs_phrase,Crule_lhs_phrase::rhs2_Rcweb_k_}
+ }// end of reduce table
+};
+yacco2::State S36_Crule_lhs_phrase = //State's vectored into symbol: "comment-overrun"
+{36
+,0,0,0,0,0,(Reduce_tbl*)&S36rt_Crule_lhs_phrase,0,0,0};
+struct S37std_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S37std_Crule_lhs_phrase S37st_Crule_lhs_phrase = {
+ 4
+ ,
+ {// start of table
+ {3,(State*)&S28_Crule_lhs_phrase} // shift sym: LR1_parallel_operator
+ ,{577,(State*)&S38_Crule_lhs_phrase} // shift sym: Rmaybe_directive_phrase
+ ,{579,(State*)&S39_Crule_lhs_phrase} // shift sym: Rdirective
+ ,{584,(State*)&S42_Crule_lhs_phrase} // shift sym: Rcweb_k
+ }// end of shift table
+};
+yacco2::Shift_entry S37pse_Crule_lhs_phrase = {3,(State*)&S28_Crule_lhs_phrase};
+struct S37rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S37rtd_Crule_lhs_phrase S37rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Crule_lhs_phrase,Crule_lhs_phrase::rhs2_Rmaybe_more_directives_}
+ }// end of reduce table
+};
+yacco2::State S37_Crule_lhs_phrase = //State's vectored into symbol: "Rmaybe_directive_phrases"
+{37
+,(Shift_entry*)&S37pse_Crule_lhs_phrase,0,0,0,(Shift_tbl*)&S37st_Crule_lhs_phrase,(Reduce_tbl*)&S37rt_Crule_lhs_phrase,(State_s_thread_tbl*)&S28tt_Crule_lhs_phrase,0,0};
+struct S38rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S38rtd_Crule_lhs_phrase S38rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crule_lhs_phrase,Crule_lhs_phrase::rhs2_Rmaybe_directive_phrases_}
+ }// end of reduce table
+};
+yacco2::State S38_Crule_lhs_phrase = //State's vectored into symbol: "Rmaybe_directive_phrase"
+{38
+,0,0,0,0,0,(Reduce_tbl*)&S38rt_Crule_lhs_phrase,0,0,0};
+struct S39std_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S39std_Crule_lhs_phrase S39st_Crule_lhs_phrase = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S23_Crule_lhs_phrase} // shift sym: LR1_parallel_operator
+ ,{580,(State*)&S40_Crule_lhs_phrase} // shift sym: Rsyntax_code
+ }// end of shift table
+};
+yacco2::Shift_entry S39pse_Crule_lhs_phrase = {3,(State*)&S23_Crule_lhs_phrase};
+yacco2::State S39_Crule_lhs_phrase = //State's vectored into symbol: "Rdirective"
+{39
+,(Shift_entry*)&S39pse_Crule_lhs_phrase,0,0,0,(Shift_tbl*)&S39st_Crule_lhs_phrase,0,(State_s_thread_tbl*)&S23tt_Crule_lhs_phrase,0,0};
+struct S40std_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S40std_Crule_lhs_phrase S40st_Crule_lhs_phrase = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S12_Crule_lhs_phrase} // shift sym: LR1_parallel_operator
+ ,{581,(State*)&S41_Crule_lhs_phrase} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S40pse_Crule_lhs_phrase = {3,(State*)&S12_Crule_lhs_phrase};
+struct S40rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S40rtd_Crule_lhs_phrase S40rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crule_lhs_phrase,Crule_lhs_phrase::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S40_Crule_lhs_phrase = //State's vectored into symbol: "Rsyntax_code"
+{40
+,(Shift_entry*)&S40pse_Crule_lhs_phrase,0,0,0,(Shift_tbl*)&S40st_Crule_lhs_phrase,(Reduce_tbl*)&S40rt_Crule_lhs_phrase,(State_s_thread_tbl*)&S12tt_Crule_lhs_phrase,0,0};
+struct S41rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S41rtd_Crule_lhs_phrase S41rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crule_lhs_phrase,Crule_lhs_phrase::rhs2_Rmaybe_directive_phrase_}
+ }// end of reduce table
+};
+yacco2::State S41_Crule_lhs_phrase = //State's vectored into symbol: "Rlint"
+{41
+,0,0,0,0,0,(Reduce_tbl*)&S41rt_Crule_lhs_phrase,0,0,0};
+struct S42std_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S42std_Crule_lhs_phrase S42st_Crule_lhs_phrase = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S12_Crule_lhs_phrase} // shift sym: LR1_parallel_operator
+ ,{581,(State*)&S43_Crule_lhs_phrase} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S42pse_Crule_lhs_phrase = {3,(State*)&S12_Crule_lhs_phrase};
+struct S42rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S42rtd_Crule_lhs_phrase S42rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Crule_lhs_phrase,Crule_lhs_phrase::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S42_Crule_lhs_phrase = //State's vectored into symbol: "Rcweb_k"
+{42
+,(Shift_entry*)&S42pse_Crule_lhs_phrase,0,0,0,(Shift_tbl*)&S42st_Crule_lhs_phrase,(Reduce_tbl*)&S42rt_Crule_lhs_phrase,(State_s_thread_tbl*)&S12tt_Crule_lhs_phrase,0,0};
+struct S43std_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S43std_Crule_lhs_phrase S43st_Crule_lhs_phrase = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S56_Crule_lhs_phrase} // shift sym: LR1_parallel_operator
+ ,{579,(State*)&S44_Crule_lhs_phrase} // shift sym: Rdirective
+ }// end of shift table
+};
+yacco2::Shift_entry S43pse_Crule_lhs_phrase = {3,(State*)&S56_Crule_lhs_phrase};
+yacco2::State S43_Crule_lhs_phrase = //State's vectored into symbol: "Rlint"
+{43
+,(Shift_entry*)&S43pse_Crule_lhs_phrase,0,0,0,(Shift_tbl*)&S43st_Crule_lhs_phrase,0,(State_s_thread_tbl*)&S56tt_Crule_lhs_phrase,0,0};
+struct S44std_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S44std_Crule_lhs_phrase S44st_Crule_lhs_phrase = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S23_Crule_lhs_phrase} // shift sym: LR1_parallel_operator
+ ,{580,(State*)&S45_Crule_lhs_phrase} // shift sym: Rsyntax_code
+ }// end of shift table
+};
+yacco2::Shift_entry S44pse_Crule_lhs_phrase = {3,(State*)&S23_Crule_lhs_phrase};
+yacco2::State S44_Crule_lhs_phrase = //State's vectored into symbol: "Rdirective"
+{44
+,(Shift_entry*)&S44pse_Crule_lhs_phrase,0,0,0,(Shift_tbl*)&S44st_Crule_lhs_phrase,0,(State_s_thread_tbl*)&S23tt_Crule_lhs_phrase,0,0};
+struct S45std_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S45std_Crule_lhs_phrase S45st_Crule_lhs_phrase = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S12_Crule_lhs_phrase} // shift sym: LR1_parallel_operator
+ ,{581,(State*)&S46_Crule_lhs_phrase} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S45pse_Crule_lhs_phrase = {3,(State*)&S12_Crule_lhs_phrase};
+struct S45rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S45rtd_Crule_lhs_phrase S45rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crule_lhs_phrase,Crule_lhs_phrase::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S45_Crule_lhs_phrase = //State's vectored into symbol: "Rsyntax_code"
+{45
+,(Shift_entry*)&S45pse_Crule_lhs_phrase,0,0,0,(Shift_tbl*)&S45st_Crule_lhs_phrase,(Reduce_tbl*)&S45rt_Crule_lhs_phrase,(State_s_thread_tbl*)&S12tt_Crule_lhs_phrase,0,0};
+struct S46rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S46rtd_Crule_lhs_phrase S46rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crule_lhs_phrase,Crule_lhs_phrase::rhs1_Rmaybe_directive_phrase_}
+ }// end of reduce table
+};
+yacco2::State S46_Crule_lhs_phrase = //State's vectored into symbol: "Rlint"
+{46
+,0,0,0,0,0,(Reduce_tbl*)&S46rt_Crule_lhs_phrase,0,0,0};
+struct S47rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S47rtd_Crule_lhs_phrase S47rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crule_lhs_phrase,Crule_lhs_phrase::rhs1_Rmaybe_directive_phrases_}
+ }// end of reduce table
+};
+yacco2::State S47_Crule_lhs_phrase = //State's vectored into symbol: "Rmaybe_directive_phrase"
+{47
+,0,0,0,0,0,(Reduce_tbl*)&S47rt_Crule_lhs_phrase,0,0,0};
+struct S48rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S48rtd_Crule_lhs_phrase S48rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Crule_lhs_phrase,Crule_lhs_phrase::rhs7_Rmust_directive_}
+ }// end of reduce table
+};
+yacco2::State S48_Crule_lhs_phrase = //State's vectored into symbol: "|?|"
+{48
+,0,0,0,0,0,(Reduce_tbl*)&S48rt_Crule_lhs_phrase,0,0,0};
+struct S49std_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[6];
+};
+S49std_Crule_lhs_phrase S49st_Crule_lhs_phrase = {
+ 6
+ ,
+ {// start of table
+ {0,(State*)&S50_Crule_lhs_phrase} // shift sym: LR1_questionable_shift_operator
+ ,{308,(State*)&S51_Crule_lhs_phrase} // shift sym: T_user_declaration
+ ,{311,(State*)&S52_Crule_lhs_phrase} // shift sym: T_constructor
+ ,{312,(State*)&S53_Crule_lhs_phrase} // shift sym: T_destructor
+ ,{313,(State*)&S54_Crule_lhs_phrase} // shift sym: T_op
+ ,{315,(State*)&S55_Crule_lhs_phrase} // shift sym: T_user_implementation
+ }// end of shift table
+};
+yacco2::Shift_entry S49qse_Crule_lhs_phrase = {0,(State*)&S50_Crule_lhs_phrase};
+yacco2::State S49_Crule_lhs_phrase = //State's vectored into symbol: "|||"
+{49
+,0,0,0,0,(Shift_tbl*)&S49st_Crule_lhs_phrase,0,0,0,(Shift_entry*)&S49qse_Crule_lhs_phrase
+};
+struct S50rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S50rtd_Crule_lhs_phrase S50rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Crule_lhs_phrase,Crule_lhs_phrase::rhs6_Rmust_directive_}
+ }// end of reduce table
+};
+yacco2::State S50_Crule_lhs_phrase = //State's vectored into symbol: "|?|"
+{50
+,0,0,0,0,0,(Reduce_tbl*)&S50rt_Crule_lhs_phrase,0,0,0};
+struct S51rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S51rtd_Crule_lhs_phrase S51rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Crule_lhs_phrase,Crule_lhs_phrase::rhs1_Rmust_directive_}
+ }// end of reduce table
+};
+yacco2::State S51_Crule_lhs_phrase = //State's vectored into symbol: "#user-declaration"
+{51
+,0,0,0,0,0,(Reduce_tbl*)&S51rt_Crule_lhs_phrase,0,0,0};
+struct S52rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S52rtd_Crule_lhs_phrase S52rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Crule_lhs_phrase,Crule_lhs_phrase::rhs3_Rmust_directive_}
+ }// end of reduce table
+};
+yacco2::State S52_Crule_lhs_phrase = //State's vectored into symbol: "#constructor"
+{52
+,0,0,0,0,0,(Reduce_tbl*)&S52rt_Crule_lhs_phrase,0,0,0};
+struct S53rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S53rtd_Crule_lhs_phrase S53rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Crule_lhs_phrase,Crule_lhs_phrase::rhs4_Rmust_directive_}
+ }// end of reduce table
+};
+yacco2::State S53_Crule_lhs_phrase = //State's vectored into symbol: "#destructor"
+{53
+,0,0,0,0,0,(Reduce_tbl*)&S53rt_Crule_lhs_phrase,0,0,0};
+struct S54rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S54rtd_Crule_lhs_phrase S54rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Crule_lhs_phrase,Crule_lhs_phrase::rhs5_Rmust_directive_}
+ }// end of reduce table
+};
+yacco2::State S54_Crule_lhs_phrase = //State's vectored into symbol: "#op"
+{54
+,0,0,0,0,0,(Reduce_tbl*)&S54rt_Crule_lhs_phrase,0,0,0};
+struct S55rtd_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S55rtd_Crule_lhs_phrase S55rt_Crule_lhs_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Crule_lhs_phrase,Crule_lhs_phrase::rhs2_Rmust_directive_}
+ }// end of reduce table
+};
+yacco2::State S55_Crule_lhs_phrase = //State's vectored into symbol: "#user-implementation"
+{55
+,0,0,0,0,0,(Reduce_tbl*)&S55rt_Crule_lhs_phrase,0,0,0};
+struct S56std_Crule_lhs_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[6];
+};
+S56std_Crule_lhs_phrase S56st_Crule_lhs_phrase = {
+ 6
+ ,
+ {// start of table
+ {0,(State*)&S29_Crule_lhs_phrase} // shift sym: LR1_questionable_shift_operator
+ ,{308,(State*)&S30_Crule_lhs_phrase} // shift sym: T_user_declaration
+ ,{311,(State*)&S31_Crule_lhs_phrase} // shift sym: T_constructor
+ ,{312,(State*)&S32_Crule_lhs_phrase} // shift sym: T_destructor
+ ,{313,(State*)&S33_Crule_lhs_phrase} // shift sym: T_op
+ ,{315,(State*)&S34_Crule_lhs_phrase} // shift sym: T_user_implementation
+ }// end of shift table
+};
+yacco2::Shift_entry S56qse_Crule_lhs_phrase = {0,(State*)&S29_Crule_lhs_phrase};
+yacco2::State S56_Crule_lhs_phrase = //State's vectored into symbol: "|||"
+{56
+,0,0,0,0,(Shift_tbl*)&S56st_Crule_lhs_phrase,0,0,0,(Shift_entry*)&S56qse_Crule_lhs_phrase
+};
diff --git a/web/yacco2/compiler/grammars/rules_phrase.cpp b/web/yacco2/compiler/grammars/rules_phrase.cpp
new file mode 100644
index 0000000000..9c0f597783
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rules_phrase.cpp
@@ -0,0 +1,109 @@
+/*
+ File: rules_phrase.cpp
+ Date and Time: Fri Jan 30 18:55:23 2015
+*/
+#include "rules_phrase.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_rules_phrase;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 2;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+}
+ Crules_phrase::
+ Crules_phrase()
+ :yacco2::CAbs_fsm
+ ("rules_phrase.lex"
+ ,"1.0"
+ ,"3 Jun 2004"
+ ,false
+ ,"Dispatcher to parse the grammar's rules."
+ ,"Fri Jan 30 18:55:23 2015 "
+ ,S1_Crules_phrase){
+
+ cweb_marker__ = 0;
+
+ }
+
+Crules_phrase::~Crules_phrase(){
+
+ for(int x = 0;x < 2;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Crules_phrase::failed(){
+ return false;
+ }
+ void Crules_phrase::op(){
+ if(CWEB_MARKER != 0){
+ cweb_marker__ = CWEB_MARKER;
+ CWEB_MARKER=0;
+ }
+
+}
+int Crules_phrase::rhs_to_rules_mapping_[5] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,1 // subrule 4 for rule 2
+};
+Rrules_phrase::Rrules_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrules_phrase",0,Crules_phrase::R_Rrules_phrase_,P,false,false){
+}
+
+Rphrase::Rphrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rphrase",0,Crules_phrase::R_Rphrase_,P,false,false){
+}
+
+void Rphrase::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_rules_phrase* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rphrase::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+
+}
+
+void Rphrase::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_open_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+
+}
+
diff --git a/web/yacco2/compiler/grammars/rules_phrase.fsc b/web/yacco2/compiler/grammars/rules_phrase.fsc
new file mode 100644
index 0000000000..43c0627021
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rules_phrase.fsc
@@ -0,0 +1,22 @@
+/*
+ File: rules_phrase.fsc
+ Date and Time: Fri Jan 30 18:55:23 2015
+*/
+transitive y
+grammar-name "rules_phrase"
+name-space "NS_rules_phrase"
+thread-name "Crules_phrase"
+monolithic y
+file-name "rules_phrase.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ LR1_questionable_shift_operator
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 1
+ NS_rules_phrase_th::TH_rules_phrase_th
+end-list-of-transitive-threads
+list-of-used-threads 1
+ NS_rules_phrase_th::TH_rules_phrase_th
+end-list-of-used-threads
+fsm-comments
+"Dispatcher to parse the grammar's rules."
diff --git a/web/yacco2/compiler/grammars/rules_phrase.h b/web/yacco2/compiler/grammars/rules_phrase.h
new file mode 100644
index 0000000000..bd96d5e022
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rules_phrase.h
@@ -0,0 +1,69 @@
+/*
+ File: rules_phrase.h
+ Date and Time: Fri Jan 30 18:55:23 2015
+*/
+#ifndef __rules_phrase_h__
+#define __rules_phrase_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "rules_phrase_th.h"
+#include "o2_externs.h"
+
+// monolithic grammar: no thread
+extern yacco2::State S1_Crules_phrase;
+namespace NS_rules_phrase {
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[2];
+};
+class Crules_phrase: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rrules_phrase_ = 569//start_of_rule_list + 0
+ ,rhs1_Rrules_phrase_ = 1
+ ,R_Rphrase_ = 570//start_of_rule_list + 2
+ ,rhs1_Rphrase_ = 2
+ ,rhs2_Rphrase_ = 3
+ ,rhs3_Rphrase_ = 4
+ };
+ //no of la sets = 1
+ //no of states = 6
+ Crules_phrase();
+ ~Crules_phrase();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[5];
+
+ public: yacco2::AST* cweb_marker__;
+
+ };
+struct Rrules_phrase;
+struct Rphrase;
+struct Rrules_phrase:public yacco2::CAbs_lr1_sym {
+ Rrules_phrase(yacco2::Parser* P);
+ public:
+};
+
+struct Rphrase:public yacco2::CAbs_lr1_sym {
+ Rphrase(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/rules_phrase.lex b/web/yacco2/compiler/grammars/rules_phrase.lex
new file mode 100644
index 0000000000..0a8a332503
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rules_phrase.lex
@@ -0,0 +1,72 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: rules_phrase.lex
+Dates: 24 May 2004
+Purpose: rules alphabet
+Grammar being parsed:
+ rules
+ {
+ 1+ rule definition where def is
+ rule-name [AD AB attributes] ([lhs,arbritrator syn. code])
+ { <subrule defs>+ }
+ }
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |rules_phrase| grammar.\fbreak
+Dispatcher to parse rules alphabet.
+@/
+fsm
+(fsm-id "rules_phrase.lex"
+,fsm-filename rules_phrase
+,fsm-namespace NS_rules_phrase
+,fsm-class Crules_phrase{
+ user-prefix-declaration
+#include "rules_phrase_th.h"
+#include "o2_externs.h"
+ ***
+ user-declaration
+ public: yacco2::AST* cweb_marker__;
+ ***
+ op
+ if(CWEB_MARKER != 0){
+ cweb_marker__ = CWEB_MARKER;
+ CWEB_MARKER=0;
+ }
+ ***
+ constructor
+ cweb_marker__ = 0;
+ ***
+}
+,fsm-version "1.0",fsm-date "3 Jun 2004",fsm-debug "false"
+,fsm-comments "Dispatcher to parse the grammar's rules.")
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rrules_phrase (){
+ -> Rphrase
+}
+
+Rphrase (){
+ -> ||| "rules-phrase" NS_rules_phrase_th::TH_rules_phrase_th {
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_open_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/rules_phrase_th.cpp b/web/yacco2/compiler/grammars/rules_phrase_th.cpp
new file mode 100644
index 0000000000..f7cc9948f6
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rules_phrase_th.cpp
@@ -0,0 +1,354 @@
+/*
+ File: rules_phrase_th.cpp
+ Date and Time: Fri Jan 30 18:55:23 2015
+*/
+#include "rules_phrase_th.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_rules_phrase_th;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 11;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[4] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[5] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[6] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[7] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[8] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[9] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[10] = new Per_rule_s_reuse_table();
+}
+ Crules_phrase_th::
+ Crules_phrase_th()
+ :yacco2::CAbs_fsm
+ ("rules_phrase_th.lex"
+ ,"1.0"
+ ,"22 mar 2004"
+ ,false
+ ,"Parse all of the grammar's rules."
+ ,"Fri Jan 30 18:55:23 2015 "
+ ,S1_Crules_phrase_th){
+
+ rules_phrase_ = 0;
+ end_rules_t_ = 0;
+
+ }
+
+Crules_phrase_th::~Crules_phrase_th(){
+
+ for(int x = 0;x < 11;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Crules_phrase_th::failed(){
+ return false;
+ }
+ void Crules_phrase_th::op(){
+ if(rules_phrase_ != 0){
+ delete rules_phrase_;
+ rules_phrase_ = 0;
+ end_rules_t_ = 0;
+ }
+ rules_phrase_ = new T_rules_phrase;
+ rules_phrase_->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ AST* t = new AST(*rules_phrase_);
+ rules_phrase_->phrase_tree(t);
+
+}
+int Crules_phrase_th::rhs_to_rules_mapping_[26] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,2 // subrule 3 for rule 3
+ ,2 // subrule 4 for rule 3
+ ,3 // subrule 5 for rule 4
+ ,3 // subrule 6 for rule 4
+ ,3 // subrule 7 for rule 4
+ ,4 // subrule 8 for rule 5
+ ,4 // subrule 9 for rule 5
+ ,5 // subrule 10 for rule 6
+ ,5 // subrule 11 for rule 6
+ ,6 // subrule 12 for rule 7
+ ,6 // subrule 13 for rule 7
+ ,7 // subrule 14 for rule 8
+ ,7 // subrule 15 for rule 8
+ ,7 // subrule 16 for rule 8
+ ,8 // subrule 17 for rule 9
+ ,8 // subrule 18 for rule 9
+ ,9 // subrule 19 for rule 10
+ ,9 // subrule 20 for rule 10
+ ,10 // subrule 21 for rule 11
+ ,10 // subrule 22 for rule 11
+ ,10 // subrule 23 for rule 11
+ ,10 // subrule 24 for rule 11
+ ,10 // subrule 25 for rule 11
+};
+Rrules_phrase::Rrules_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrules_phrase",0,Crules_phrase_th::R_Rrules_phrase_,P,false,false){
+}
+
+void Rrules_phrase::sr1(){
+
+ Crules_phrase_th* fsm = (Crules_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ RSVP(fsm->rules_phrase_);
+ fsm->rules_phrase_ = 0;
+
+}
+
+Rrule_defs_phrase::Rrule_defs_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrule_defs_phrase",0,Crules_phrase_th::R_Rrule_defs_phrase_,P,false,false){
+}
+
+Rrule_defs::Rrule_defs(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrule_defs",0,Crules_phrase_th::R_Rrule_defs_,P,false,false){
+}
+
+Rrule_def::Rrule_def(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrule_def",0,Crules_phrase_th::R_Rrule_def_,P,false,false){
+}
+
+void Rrule_def::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ rule_def* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Crules_phrase_th* fsm = (Crules_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* r =
+ fsm->rules_phrase_->add_r_to_alphabet(sf->p2__,rule_info__.parser__);
+ if(r != 0){
+ RSVP(r);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ AST* rt = sf->p2__->rule_s_tree();
+ // ms has a bug so use temporary
+ AST* t = fsm->rules_phrase_->phrase_tree();
+ if(fsm->end_rules_t_ == 0){
+ AST::join_pts(*t,*rt);
+ }else{
+ AST::join_sts(*fsm->end_rules_t_,*rt);
+ }
+ fsm->end_rules_t_ = rt;
+
+}
+
+void Rrule_def::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rrule_def::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_rule_name_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rrule_def1::Rrule_def1(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrule_def1",0,Crules_phrase_th::R_Rrule_def1_,P,false,false){
+}
+
+void Rrule_def1::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ rule_def* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Crules_phrase_th* fsm = (Crules_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* r = fsm->rules_phrase_->add_r_to_alphabet(sf->p2__,rule_info__.parser__);
+ if(r != 0){
+ RSVP(r);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ AST* rt = sf->p2__->rule_s_tree();
+ AST::join_sts(*fsm->end_rules_t_,*rt);
+ fsm->end_rules_t_ = rt;
+
+}
+
+void Rrule_def1::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Ropen_brace::Ropen_brace(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Ropen_brace",0,Crules_phrase_th::R_Ropen_brace_,P,false,false){
+}
+
+void Ropen_brace::sr1(){
+
+ CAbs_lr1_sym* sym = new Err_no_open_brace;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rclose_brace::Rclose_brace(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rclose_brace",0,Crules_phrase_th::R_Rclose_brace_,P,false,false){
+}
+
+void Rclose_brace::sr1(){
+
+ CAbs_lr1_sym* sym = new Err_no_close_brace_ending_rules_defs;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rlint_or_cweb_or_error::Rlint_or_cweb_or_error(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlint_or_cweb_or_error",0,Crules_phrase_th::R_Rlint_or_cweb_or_error_,P,false,false){
+}
+
+void Rlint_or_cweb_or_error::sr2(){
+
+ CAbs_lr1_sym* sym = new Err_improper_closing_of_rules;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rlint_or_cweb::Rlint_or_cweb(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlint_or_cweb",0,Crules_phrase_th::R_Rlint_or_cweb_,P,false,false){
+}
+
+Rfluffs_or_cweb::Rfluffs_or_cweb(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfluffs_or_cweb",0,Crules_phrase_th::R_Rfluffs_or_cweb_,P,false,false){
+}
+
+Rfluff_or_cweb::Rfluff_or_cweb(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfluff_or_cweb",0,Crules_phrase_th::R_Rfluff_or_cweb_,P,false,false){
+}
+
+void Rfluff_or_cweb::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_comment* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+
+}
+
+void Rfluff_or_cweb::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_cweb_comment* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Crules_phrase_th* fsm = (Crules_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ AST* t = fsm->rules_phrase_->phrase_tree();
+ T_cweb_comment* k = sf->p2__;
+ AST* cwebk_t_ = new AST(*k);
+ AST* rt = new AST();
+ T_cweb_marker* cw = new T_cweb_marker(rt);
+ cw->set_rc(*k,__FILE__,__LINE__);
+ AST::set_content(*rt,*cw);
+ AST::join_pts(*rt,*cwebk_t_);
+
+ if(fsm->end_rules_t_ == 0){
+ AST::join_pts(*t,*rt);
+ }else{
+ AST::join_sts(*fsm->end_rules_t_,*rt);
+ }
+ fsm->end_rules_t_ = rt;
+
+}
+
+void Rfluff_or_cweb::sr4(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Err_comment_overrun* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
diff --git a/web/yacco2/compiler/grammars/rules_phrase_th.fsc b/web/yacco2/compiler/grammars/rules_phrase_th.fsc
new file mode 100644
index 0000000000..f9408fc6fa
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rules_phrase_th.fsc
@@ -0,0 +1,28 @@
+/*
+ File: rules_phrase_th.fsc
+ Date and Time: Fri Jan 30 18:55:23 2015
+*/
+transitive y
+grammar-name "rules_phrase_th"
+name-space "NS_rules_phrase_th"
+thread-name "TH_rules_phrase_th"
+monolithic n
+file-name "rules_phrase_th.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 2
+ LR1_questionable_shift_operator
+ raw_open_brace
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 3
+ NS_eol::TH_eol
+ NS_cweb_or_c_k::TH_cweb_or_c_k
+ NS_ws::TH_ws
+end-list-of-transitive-threads
+list-of-used-threads 4
+ NS_cweb_or_c_k::TH_cweb_or_c_k
+ NS_eol::TH_eol
+ NS_rule_def_phrase::TH_rule_def_phrase
+ NS_ws::TH_ws
+end-list-of-used-threads
+fsm-comments
+"Parse all of the grammar's rules."
diff --git a/web/yacco2/compiler/grammars/rules_phrase_th.h b/web/yacco2/compiler/grammars/rules_phrase_th.h
new file mode 100644
index 0000000000..4467c650d3
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rules_phrase_th.h
@@ -0,0 +1,174 @@
+/*
+ File: rules_phrase_th.h
+ Date and Time: Fri Jan 30 18:55:23 2015
+*/
+#ifndef __rules_phrase_th_h__
+#define __rules_phrase_th_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "ws.h"
+#include "eol.h"
+#include "c_comments.h"
+#include "cweb_or_c_k.h"
+
+#include "rule_def_phrase.h"
+#include "o2_externs.h"
+
+extern yacco2::Thread_entry ITH_rules_phrase_th;
+
+extern yacco2::State S1_Crules_phrase_th;
+namespace NS_rules_phrase_th {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_rules_phrase_th(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_rules_phrase_th(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[11];
+};
+class Crules_phrase_th: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rrules_phrase_ = 569//start_of_rule_list + 0
+ ,rhs1_Rrules_phrase_ = 1
+ ,R_Rrule_defs_phrase_ = 570//start_of_rule_list + 2
+ ,rhs1_Rrule_defs_phrase_ = 2
+ ,R_Rrule_defs_ = 571//start_of_rule_list + 4
+ ,rhs1_Rrule_defs_ = 3
+ ,rhs2_Rrule_defs_ = 4
+ ,R_Rrule_def_ = 572//start_of_rule_list + 6
+ ,rhs1_Rrule_def_ = 5
+ ,rhs2_Rrule_def_ = 6
+ ,rhs3_Rrule_def_ = 7
+ ,R_Rrule_def1_ = 573//start_of_rule_list + 8
+ ,rhs1_Rrule_def1_ = 8
+ ,rhs2_Rrule_def1_ = 9
+ ,R_Ropen_brace_ = 574//start_of_rule_list + 10
+ ,rhs1_Ropen_brace_ = 10
+ ,rhs2_Ropen_brace_ = 11
+ ,R_Rclose_brace_ = 575//start_of_rule_list + 12
+ ,rhs1_Rclose_brace_ = 12
+ ,rhs2_Rclose_brace_ = 13
+ ,R_Rlint_or_cweb_or_error_ = 576//start_of_rule_list + 14
+ ,rhs1_Rlint_or_cweb_or_error_ = 14
+ ,rhs2_Rlint_or_cweb_or_error_ = 15
+ ,rhs3_Rlint_or_cweb_or_error_ = 16
+ ,R_Rlint_or_cweb_ = 577//start_of_rule_list + 16
+ ,rhs1_Rlint_or_cweb_ = 17
+ ,rhs2_Rlint_or_cweb_ = 18
+ ,R_Rfluffs_or_cweb_ = 578//start_of_rule_list + 18
+ ,rhs1_Rfluffs_or_cweb_ = 19
+ ,rhs2_Rfluffs_or_cweb_ = 20
+ ,R_Rfluff_or_cweb_ = 579//start_of_rule_list + 20
+ ,rhs1_Rfluff_or_cweb_ = 21
+ ,rhs2_Rfluff_or_cweb_ = 22
+ ,rhs3_Rfluff_or_cweb_ = 23
+ ,rhs4_Rfluff_or_cweb_ = 24
+ ,rhs5_Rfluff_or_cweb_ = 25
+ };
+ //no of la sets = 6
+ //no of states = 36
+ Crules_phrase_th();
+ ~Crules_phrase_th();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[26];
+
+ public:
+ T_rules_phrase* rules_phrase_;
+ AST* end_rules_t_;
+
+ };
+struct Rrules_phrase;
+struct Rrule_defs_phrase;
+struct Rrule_defs;
+struct Rrule_def;
+struct Rrule_def1;
+struct Ropen_brace;
+struct Rclose_brace;
+struct Rlint_or_cweb_or_error;
+struct Rlint_or_cweb;
+struct Rfluffs_or_cweb;
+struct Rfluff_or_cweb;
+struct Rrules_phrase:public yacco2::CAbs_lr1_sym {
+ Rrules_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rrule_defs_phrase:public yacco2::CAbs_lr1_sym {
+ Rrule_defs_phrase(yacco2::Parser* P);
+ public:
+};
+
+struct Rrule_defs:public yacco2::CAbs_lr1_sym {
+ Rrule_defs(yacco2::Parser* P);
+ public:
+};
+
+struct Rrule_def:public yacco2::CAbs_lr1_sym {
+ Rrule_def(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Rrule_def1:public yacco2::CAbs_lr1_sym {
+ Rrule_def1(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Ropen_brace:public yacco2::CAbs_lr1_sym {
+ Ropen_brace(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rclose_brace:public yacco2::CAbs_lr1_sym {
+ Rclose_brace(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rlint_or_cweb_or_error:public yacco2::CAbs_lr1_sym {
+ Rlint_or_cweb_or_error(yacco2::Parser* P);
+ public:
+ void sr2();
+};
+
+struct Rlint_or_cweb:public yacco2::CAbs_lr1_sym {
+ Rlint_or_cweb(yacco2::Parser* P);
+ public:
+};
+
+struct Rfluffs_or_cweb:public yacco2::CAbs_lr1_sym {
+ Rfluffs_or_cweb(yacco2::Parser* P);
+ public:
+};
+
+struct Rfluff_or_cweb:public yacco2::CAbs_lr1_sym {
+ Rfluff_or_cweb(yacco2::Parser* P);
+ public:
+ void sr2();
+ void sr3();
+ void sr4();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/rules_phrase_th.lex b/web/yacco2/compiler/grammars/rules_phrase_th.lex
new file mode 100644
index 0000000000..f179e983a9
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rules_phrase_th.lex
@@ -0,0 +1,236 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: rules_phrase_th.lex
+Dates: 3 Jun 2004
+Purpose: parse rules phrase
+ The keeps its own local symbol table: map and list.
+ The rule_def_phrase adds symbol to Yacco2's
+ global symbol table.
+Output: rules_phrase
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |rules_phrase_th| Thread.\fbreak
+Parse all of the grammar's rules.
+The |rule_def_phrase| adds each rule defined to \O2's
+global symbol table.
+@/
+fsm
+(fsm-id "rules_phrase_th.lex"
+,fsm-filename rules_phrase_th
+,fsm-namespace NS_rules_phrase_th
+,fsm-class Crules_phrase_th{
+ user-prefix-declaration
+#include "ws.h"
+#include "eol.h"
+#include "c_comments.h"
+#include "cweb_or_c_k.h"
+
+#include "rule_def_phrase.h"
+#include "o2_externs.h"
+ ***
+ user-declaration
+ public:
+ T_rules_phrase* rules_phrase_;
+ AST* end_rules_t_;
+ ***
+ constructor
+ rules_phrase_ = 0;
+ end_rules_t_ = 0;
+ ***
+ op
+ if(rules_phrase_ != 0){
+ delete rules_phrase_;
+ rules_phrase_ = 0;
+ end_rules_t_ = 0;
+ }
+ rules_phrase_ = new T_rules_phrase;
+ rules_phrase_->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ AST* t = new AST(*rules_phrase_);
+ rules_phrase_->phrase_tree(t);
+ ***
+}
+,fsm-version "1.0",fsm-date "22 mar 2004",fsm-debug "false"
+,fsm-comments "Parse all of the grammar's rules.")
+parallel-parser
+(
+ parallel-thread-function
+ TH_rules_phrase_th
+ ***
+ parallel-la-boundary
+ eolr
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rrules_phrase (){
+ -> Rlint_or_cweb Rrule_defs_phrase Rlint_or_cweb_or_error {
+ op
+ Crules_phrase_th* fsm = (Crules_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ RSVP(fsm->rules_phrase_);
+ fsm->rules_phrase_ = 0;
+ ***
+ }
+}
+
+Rrule_defs_phrase (){
+ -> Ropen_brace
+ Rlint_or_cweb
+ Rrule_defs
+ Rlint_or_cweb
+ Rclose_brace
+}
+
+Rrule_defs (){
+ -> Rrule_def Rlint_or_cweb
+ -> Rrule_defs Rrule_def1 Rlint_or_cweb
+}
+
+Rrule_def (){
+ -> ||| "rule-def" NS_rule_def_phrase::TH_rule_def_phrase {
+ op
+ Crules_phrase_th* fsm = (Crules_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* r =
+ fsm->rules_phrase_->add_r_to_alphabet(sf->p2__,rule_info__.parser__);
+ if(r != 0){
+ RSVP(r);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ AST* rt = sf->p2__->rule_s_tree();
+ // ms has a bug so use temporary
+ AST* t = fsm->rules_phrase_->phrase_tree();
+ if(fsm->end_rules_t_ == 0){
+ AST::join_pts(*t,*rt);
+ }else{
+ AST::join_sts(*fsm->end_rules_t_,*rt);
+ }
+ fsm->end_rules_t_ = rt;
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_rule_name_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rrule_def1 (){
+ -> ||| "rule-def" NS_rule_def_phrase::TH_rule_def_phrase {
+ op
+ Crules_phrase_th* fsm = (Crules_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* r = fsm->rules_phrase_->add_r_to_alphabet(sf->p2__,rule_info__.parser__);
+ if(r != 0){
+ RSVP(r);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ AST* rt = sf->p2__->rule_s_tree();
+ AST::join_sts(*fsm->end_rules_t_,*rt);
+ fsm->end_rules_t_ = rt;
+ ***
+ }
+ -> ||| |+| NULL {
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Ropen_brace (){
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_open_brace;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> "{"
+}
+
+Rclose_brace (){
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_close_brace_ending_rules_defs;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> "}"
+}
+
+Rlint_or_cweb_or_error (){
+ ->
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_improper_closing_of_rules;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> Rfluffs_or_cweb |.|
+}
+
+Rlint_or_cweb (){
+ ->
+ -> Rfluffs_or_cweb
+}
+
+Rfluffs_or_cweb (){
+ -> Rfluff_or_cweb
+ -> Rfluffs_or_cweb Rfluff_or_cweb
+}
+
+Rfluff_or_cweb (){
+ -> ||| ws NS_ws::TH_ws
+ -> ||| comment NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ ***
+ }
+ -> ||| "cweb-comment" NS_cweb_or_c_k::TH_cweb_or_c_k {
+ op
+ Crules_phrase_th* fsm = (Crules_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ AST* t = fsm->rules_phrase_->phrase_tree();
+ T_cweb_comment* k = sf->p2__;
+ AST* cwebk_t_ = new AST(*k);
+ AST* rt = new AST();
+ T_cweb_marker* cw = new T_cweb_marker(rt);
+ cw->set_rc(*k,__FILE__,__LINE__);
+ AST::set_content(*rt,*cw);
+ AST::join_pts(*rt,*cwebk_t_);
+
+ if(fsm->end_rules_t_ == 0){
+ AST::join_pts(*t,*rt);
+ }else{
+ AST::join_sts(*fsm->end_rules_t_,*rt);
+ }
+ fsm->end_rules_t_ = rt;
+ ***
+ }
+ -> ||| "comment-overrun" NULL {
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| eol NS_eol::TH_eol
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/rules_phrase_thsym.cpp b/web/yacco2/compiler/grammars/rules_phrase_thsym.cpp
new file mode 100644
index 0000000000..147c54ed64
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rules_phrase_thsym.cpp
@@ -0,0 +1,410 @@
+/*
+ File: rules_phrase_thsym.cpp
+ Date and Time: Fri Jan 30 18:55:23 2015
+*/
+#include "rules_phrase_th.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_rules_phrase_th;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_rules_phrase_th::TH_rules_phrase_th(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_rules_phrase_th;
+ NS_rules_phrase_th::Crules_phrase_th Crules_phrase_th_;// parallel-parser's parse table
+#define ssPARSE_TABLE Crules_phrase_th_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_rules_phrase_th::PROC_TH_rules_phrase_th(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_rules_phrase_th";
+ static bool one_time(false);
+ static NS_rules_phrase_th::Crules_phrase_th* NS_rules_phrase_th_Crules_phrase_th_(0);// parallel-parser's fsm table
+ static Parser* NS_rules_phrase_th_Crules_phrase_th_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_rules_phrase_th_Crules_phrase_th_ = new NS_rules_phrase_th::Crules_phrase_th();// parallel-parser's fsm table
+ NS_rules_phrase_th_Crules_phrase_th_parser = new Parser(*NS_rules_phrase_th_Crules_phrase_th_,Caller_pp);
+ }
+ proc_parser = NS_rules_phrase_th_Crules_phrase_th_parser;
+#include "wproc_pp_core.h"
+}
+void
+Crules_phrase_th::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rrules_phrase_:{
+ Rrules_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rrules_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrules_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rrule_defs_phrase_:{
+ Rrule_defs_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rrule_defs_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrule_defs_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ return;}
+ case rhs1_Rrule_defs_:{
+ Rrule_defs* sym;
+ if(re->rule_ == 0){
+ sym = new Rrule_defs(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrule_defs*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rrule_defs_:{
+ Rrule_defs* sym;
+ if(re->rule_ == 0){
+ sym = new Rrule_defs(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrule_defs*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ return;}
+ case rhs1_Rrule_def_:{
+ Rrule_def* sym;
+ if(re->rule_ == 0){
+ sym = new Rrule_def(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrule_def*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rrule_def_:{
+ Rrule_def* sym;
+ if(re->rule_ == 0){
+ sym = new Rrule_def(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrule_def*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rrule_def_:{
+ Rrule_def* sym;
+ if(re->rule_ == 0){
+ sym = new Rrule_def(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrule_def*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rrule_def1_:{
+ Rrule_def1* sym;
+ if(re->rule_ == 0){
+ sym = new Rrule_def1(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrule_def1*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rrule_def1_:{
+ Rrule_def1* sym;
+ if(re->rule_ == 0){
+ sym = new Rrule_def1(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrule_def1*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Ropen_brace_:{
+ Ropen_brace* sym;
+ if(re->rule_ == 0){
+ sym = new Ropen_brace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ropen_brace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Ropen_brace_:{
+ Ropen_brace* sym;
+ if(re->rule_ == 0){
+ sym = new Ropen_brace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ropen_brace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rclose_brace_:{
+ Rclose_brace* sym;
+ if(re->rule_ == 0){
+ sym = new Rclose_brace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclose_brace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rclose_brace_:{
+ Rclose_brace* sym;
+ if(re->rule_ == 0){
+ sym = new Rclose_brace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclose_brace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rlint_or_cweb_or_error_:{
+ Rlint_or_cweb_or_error* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint_or_cweb_or_error(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint_or_cweb_or_error*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs2_Rlint_or_cweb_or_error_:{
+ Rlint_or_cweb_or_error* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint_or_cweb_or_error(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint_or_cweb_or_error*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rlint_or_cweb_or_error_:{
+ Rlint_or_cweb_or_error* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint_or_cweb_or_error(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint_or_cweb_or_error*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rlint_or_cweb_:{
+ Rlint_or_cweb* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint_or_cweb(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint_or_cweb*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs2_Rlint_or_cweb_:{
+ Rlint_or_cweb* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint_or_cweb(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint_or_cweb*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rfluffs_or_cweb_:{
+ Rfluffs_or_cweb* sym;
+ if(re->rule_ == 0){
+ sym = new Rfluffs_or_cweb(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfluffs_or_cweb*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rfluffs_or_cweb_:{
+ Rfluffs_or_cweb* sym;
+ if(re->rule_ == 0){
+ sym = new Rfluffs_or_cweb(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfluffs_or_cweb*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rfluff_or_cweb_:{
+ Rfluff_or_cweb* sym;
+ if(re->rule_ == 0){
+ sym = new Rfluff_or_cweb(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfluff_or_cweb*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rfluff_or_cweb_:{
+ Rfluff_or_cweb* sym;
+ if(re->rule_ == 0){
+ sym = new Rfluff_or_cweb(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfluff_or_cweb*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rfluff_or_cweb_:{
+ Rfluff_or_cweb* sym;
+ if(re->rule_ == 0){
+ sym = new Rfluff_or_cweb(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfluff_or_cweb*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rfluff_or_cweb_:{
+ Rfluff_or_cweb* sym;
+ if(re->rule_ == 0){
+ sym = new Rfluff_or_cweb(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfluff_or_cweb*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr4();
+ return;}
+ case rhs5_Rfluff_or_cweb_:{
+ Rfluff_or_cweb* sym;
+ if(re->rule_ == 0){
+ sym = new Rfluff_or_cweb(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfluff_or_cweb*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/rules_phrase_thtbl.cpp b/web/yacco2/compiler/grammars/rules_phrase_thtbl.cpp
new file mode 100644
index 0000000000..6cfcc651e3
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rules_phrase_thtbl.cpp
@@ -0,0 +1,782 @@
+/*
+ File: rules_phrase_thtbl.cpp
+ Date and Time: Fri Jan 30 18:55:23 2015
+*/
+#include "rules_phrase_th.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_rules_phrase_th;// grammar's ns
+// first set terminals
+// LR1_questionable_shift_operator
+// raw_open_brace
+yacco2::UCHAR LA1_Crules_phrase_th[] ={
+2
+,0,1
+,16,8
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+// LR1_invisible_shift_operator
+// raw_open_brace
+// raw_close_brace
+yacco2::UCHAR LA2_Crules_phrase_th[] ={
+2
+,0,49
+,16,40
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+yacco2::UCHAR LA3_Crules_phrase_th[] ={
+1
+,0,17
+};
+// LR1_eolr
+yacco2::UCHAR LA4_Crules_phrase_th[] ={
+1
+,0,4
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+// raw_open_brace
+// raw_close_brace
+yacco2::UCHAR LA5_Crules_phrase_th[] ={
+2
+,0,17
+,16,40
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+// raw_close_brace
+yacco2::UCHAR LA6_Crules_phrase_th[] ={
+2
+,0,17
+,16,32
+};
+extern yacco2::State S1_Crules_phrase_th;
+extern yacco2::State S2_Crules_phrase_th;
+struct S2ttd_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[3];
+};
+S2ttd_Crules_phrase_th S2tt_Crules_phrase_th = {
+ 3 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_eol
+ ,(yacco2::Thread_entry*)&ITH_ws
+ ,(yacco2::Thread_entry*)&ITH_cweb_or_c_k
+};
+extern yacco2::State S3_Crules_phrase_th;
+extern yacco2::State S4_Crules_phrase_th;
+extern yacco2::State S5_Crules_phrase_th;
+extern yacco2::State S6_Crules_phrase_th;
+extern yacco2::State S7_Crules_phrase_th;
+extern yacco2::State S8_Crules_phrase_th;
+extern yacco2::State S9_Crules_phrase_th;
+extern yacco2::State S10_Crules_phrase_th;
+extern yacco2::State S11_Crules_phrase_th;
+extern yacco2::State S12_Crules_phrase_th;
+extern yacco2::State S13_Crules_phrase_th;
+extern yacco2::State S14_Crules_phrase_th;
+extern yacco2::State S15_Crules_phrase_th;
+extern yacco2::State S16_Crules_phrase_th;
+extern yacco2::State S17_Crules_phrase_th;
+extern yacco2::State S18_Crules_phrase_th;
+extern yacco2::State S19_Crules_phrase_th;
+extern yacco2::State S20_Crules_phrase_th;
+extern yacco2::State S21_Crules_phrase_th;
+struct S21ttd_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[4];
+};
+S21ttd_Crules_phrase_th S21tt_Crules_phrase_th = {
+ 4 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_eol
+ ,(yacco2::Thread_entry*)&ITH_ws
+ ,(yacco2::Thread_entry*)&ITH_rule_def_phrase
+ ,(yacco2::Thread_entry*)&ITH_cweb_or_c_k
+};
+extern yacco2::State S22_Crules_phrase_th;
+extern yacco2::State S23_Crules_phrase_th;
+extern yacco2::State S24_Crules_phrase_th;
+extern yacco2::State S25_Crules_phrase_th;
+extern yacco2::State S26_Crules_phrase_th;
+extern yacco2::State S27_Crules_phrase_th;
+extern yacco2::State S28_Crules_phrase_th;
+extern yacco2::State S29_Crules_phrase_th;
+extern yacco2::State S30_Crules_phrase_th;
+struct S30ttd_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S30ttd_Crules_phrase_th S30tt_Crules_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_rule_def_phrase
+};
+extern yacco2::State S31_Crules_phrase_th;
+extern yacco2::State S32_Crules_phrase_th;
+extern yacco2::State S33_Crules_phrase_th;
+extern yacco2::State S34_Crules_phrase_th;
+extern yacco2::State S35_Crules_phrase_th;
+extern yacco2::State S36_Crules_phrase_th;
+struct S1std_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S1std_Crules_phrase_th S1st_Crules_phrase_th = {
+ 5
+ ,
+ {// start of table
+ {3,(State*)&S2_Crules_phrase_th} // shift sym: LR1_parallel_operator
+ ,{569,(State*)&S1_Crules_phrase_th} // accept sym: Rrules_phrase
+ ,{577,(State*)&S8_Crules_phrase_th} // shift sym: Rlint_or_cweb
+ ,{578,(State*)&S28_Crules_phrase_th} // shift sym: Rfluffs_or_cweb
+ ,{579,(State*)&S17_Crules_phrase_th} // shift sym: Rfluff_or_cweb
+ }// end of shift table
+};
+yacco2::Shift_entry S1pse_Crules_phrase_th = {3,(State*)&S2_Crules_phrase_th};
+struct S1rtd_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S1rtd_Crules_phrase_th S1rt_Crules_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crules_phrase_th,Crules_phrase_th::rhs1_Rlint_or_cweb_}
+ }// end of reduce table
+};
+yacco2::State S1_Crules_phrase_th = //State's vectored into symbol: " No symbol"
+{1
+,(Shift_entry*)&S1pse_Crules_phrase_th,0,0,0,(Shift_tbl*)&S1st_Crules_phrase_th,(Reduce_tbl*)&S1rt_Crules_phrase_th,(State_s_thread_tbl*)&S2tt_Crules_phrase_th,0,0};
+struct S2std_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S2std_Crules_phrase_th S2st_Crules_phrase_th = {
+ 5
+ ,
+ {// start of table
+ {268,(State*)&S3_Crules_phrase_th} // shift sym: T_eol
+ ,{271,(State*)&S4_Crules_phrase_th} // shift sym: T_comment
+ ,{272,(State*)&S5_Crules_phrase_th} // shift sym: T_ws
+ ,{372,(State*)&S6_Crules_phrase_th} // shift sym: T_cweb_comment
+ ,{396,(State*)&S7_Crules_phrase_th} // shift sym: Err_comment_overrun
+ }// end of shift table
+};
+yacco2::State S2_Crules_phrase_th = //State's vectored into symbol: "|||"
+{2
+,0,0,0,0,(Shift_tbl*)&S2st_Crules_phrase_th,0,0,0,0};
+struct S3rtd_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Crules_phrase_th S3rt_Crules_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Crules_phrase_th,Crules_phrase_th::rhs5_Rfluff_or_cweb_}
+ }// end of reduce table
+};
+yacco2::State S3_Crules_phrase_th = //State's vectored into symbol: "eol"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_Crules_phrase_th,0,0,0};
+struct S4rtd_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Crules_phrase_th S4rt_Crules_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Crules_phrase_th,Crules_phrase_th::rhs2_Rfluff_or_cweb_}
+ }// end of reduce table
+};
+yacco2::State S4_Crules_phrase_th = //State's vectored into symbol: "comment"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Crules_phrase_th,0,0,0};
+struct S5rtd_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Crules_phrase_th S5rt_Crules_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Crules_phrase_th,Crules_phrase_th::rhs1_Rfluff_or_cweb_}
+ }// end of reduce table
+};
+yacco2::State S5_Crules_phrase_th = //State's vectored into symbol: "ws"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Crules_phrase_th,0,0,0};
+struct S6rtd_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Crules_phrase_th S6rt_Crules_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Crules_phrase_th,Crules_phrase_th::rhs3_Rfluff_or_cweb_}
+ }// end of reduce table
+};
+yacco2::State S6_Crules_phrase_th = //State's vectored into symbol: "cweb-comment"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Crules_phrase_th,0,0,0};
+struct S7rtd_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Crules_phrase_th S7rt_Crules_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Crules_phrase_th,Crules_phrase_th::rhs4_Rfluff_or_cweb_}
+ }// end of reduce table
+};
+yacco2::State S7_Crules_phrase_th = //State's vectored into symbol: "comment-overrun"
+{7
+,0,0,0,0,0,(Reduce_tbl*)&S7rt_Crules_phrase_th,0,0,0};
+struct S8std_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S8std_Crules_phrase_th S8st_Crules_phrase_th = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S9_Crules_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{131,(State*)&S10_Crules_phrase_th} // shift sym: raw_open_brace
+ ,{570,(State*)&S11_Crules_phrase_th} // shift sym: Rrule_defs_phrase
+ ,{574,(State*)&S18_Crules_phrase_th} // shift sym: Ropen_brace
+ }// end of shift table
+};
+yacco2::Shift_entry S8qse_Crules_phrase_th = {0,(State*)&S9_Crules_phrase_th};
+yacco2::State S8_Crules_phrase_th = //State's vectored into symbol: "Rlint_or_cweb"
+{8
+,0,0,0,0,(Shift_tbl*)&S8st_Crules_phrase_th,0,0,0,(Shift_entry*)&S8qse_Crules_phrase_th
+};
+struct S9rtd_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Crules_phrase_th S9rt_Crules_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Crules_phrase_th,Crules_phrase_th::rhs1_Ropen_brace_}
+ }// end of reduce table
+};
+yacco2::State S9_Crules_phrase_th = //State's vectored into symbol: "|?|"
+{9
+,0,0,0,0,0,(Reduce_tbl*)&S9rt_Crules_phrase_th,0,0,0};
+struct S10rtd_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S10rtd_Crules_phrase_th S10rt_Crules_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Crules_phrase_th,Crules_phrase_th::rhs2_Ropen_brace_}
+ }// end of reduce table
+};
+yacco2::State S10_Crules_phrase_th = //State's vectored into symbol: "{"
+{10
+,0,0,0,0,0,(Reduce_tbl*)&S10rt_Crules_phrase_th,0,0,0};
+struct S11std_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S11std_Crules_phrase_th S11st_Crules_phrase_th = {
+ 5
+ ,
+ {// start of table
+ {0,(State*)&S12_Crules_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S2_Crules_phrase_th} // shift sym: LR1_parallel_operator
+ ,{576,(State*)&S13_Crules_phrase_th} // shift sym: Rlint_or_cweb_or_error
+ ,{578,(State*)&S14_Crules_phrase_th} // shift sym: Rfluffs_or_cweb
+ ,{579,(State*)&S17_Crules_phrase_th} // shift sym: Rfluff_or_cweb
+ }// end of shift table
+};
+yacco2::Shift_entry S11pse_Crules_phrase_th = {3,(State*)&S2_Crules_phrase_th};
+yacco2::Shift_entry S11qse_Crules_phrase_th = {0,(State*)&S12_Crules_phrase_th};
+struct S11rtd_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Crules_phrase_th S11rt_Crules_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Crules_phrase_th,Crules_phrase_th::rhs1_Rlint_or_cweb_or_error_}
+ }// end of reduce table
+};
+yacco2::State S11_Crules_phrase_th = //State's vectored into symbol: "Rrule_defs_phrase"
+{11
+,(Shift_entry*)&S11pse_Crules_phrase_th,0,0,0,(Shift_tbl*)&S11st_Crules_phrase_th,(Reduce_tbl*)&S11rt_Crules_phrase_th,(State_s_thread_tbl*)&S2tt_Crules_phrase_th,0,(Shift_entry*)&S11qse_Crules_phrase_th
+};
+struct S12rtd_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S12rtd_Crules_phrase_th S12rt_Crules_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Crules_phrase_th,Crules_phrase_th::rhs2_Rlint_or_cweb_or_error_}
+ }// end of reduce table
+};
+yacco2::State S12_Crules_phrase_th = //State's vectored into symbol: "|?|"
+{12
+,0,0,0,0,0,(Reduce_tbl*)&S12rt_Crules_phrase_th,0,0,0};
+struct S13rtd_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S13rtd_Crules_phrase_th S13rt_Crules_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Crules_phrase_th,Crules_phrase_th::rhs1_Rrules_phrase_}
+ }// end of reduce table
+};
+yacco2::State S13_Crules_phrase_th = //State's vectored into symbol: "Rlint_or_cweb_or_error"
+{13
+,0,0,0,0,0,(Reduce_tbl*)&S13rt_Crules_phrase_th,0,0,0};
+struct S14std_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S14std_Crules_phrase_th S14st_Crules_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S2_Crules_phrase_th} // shift sym: LR1_parallel_operator
+ ,{5,(State*)&S15_Crules_phrase_th} // shift sym: LR1_invisible_shift_operator
+ ,{579,(State*)&S16_Crules_phrase_th} // shift sym: Rfluff_or_cweb
+ }// end of shift table
+};
+yacco2::Shift_entry S14pse_Crules_phrase_th = {3,(State*)&S2_Crules_phrase_th};
+yacco2::Shift_entry S14ise_Crules_phrase_th = {5,(State*)&S15_Crules_phrase_th};
+yacco2::State S14_Crules_phrase_th = //State's vectored into symbol: "Rfluffs_or_cweb"
+{14
+,(Shift_entry*)&S14pse_Crules_phrase_th,0,(Shift_entry*)&S14ise_Crules_phrase_th
+,0,(Shift_tbl*)&S14st_Crules_phrase_th,0,(State_s_thread_tbl*)&S2tt_Crules_phrase_th,0,0};
+struct S15rtd_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S15rtd_Crules_phrase_th S15rt_Crules_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Crules_phrase_th,Crules_phrase_th::rhs3_Rlint_or_cweb_or_error_}
+ }// end of reduce table
+};
+yacco2::State S15_Crules_phrase_th = //State's vectored into symbol: "|.|"
+{15
+,0,0,0,0,0,(Reduce_tbl*)&S15rt_Crules_phrase_th,0,0,0};
+struct S16rtd_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S16rtd_Crules_phrase_th S16rt_Crules_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Crules_phrase_th,Crules_phrase_th::rhs2_Rfluffs_or_cweb_}
+ }// end of reduce table
+};
+yacco2::State S16_Crules_phrase_th = //State's vectored into symbol: "Rfluff_or_cweb"
+{16
+,0,0,0,0,0,(Reduce_tbl*)&S16rt_Crules_phrase_th,0,0,0};
+struct S17rtd_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S17rtd_Crules_phrase_th S17rt_Crules_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Crules_phrase_th,Crules_phrase_th::rhs1_Rfluffs_or_cweb_}
+ }// end of reduce table
+};
+yacco2::State S17_Crules_phrase_th = //State's vectored into symbol: "Rfluff_or_cweb"
+{17
+,0,0,0,0,0,(Reduce_tbl*)&S17rt_Crules_phrase_th,0,0,0};
+struct S18std_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S18std_Crules_phrase_th S18st_Crules_phrase_th = {
+ 4
+ ,
+ {// start of table
+ {3,(State*)&S2_Crules_phrase_th} // shift sym: LR1_parallel_operator
+ ,{577,(State*)&S19_Crules_phrase_th} // shift sym: Rlint_or_cweb
+ ,{578,(State*)&S28_Crules_phrase_th} // shift sym: Rfluffs_or_cweb
+ ,{579,(State*)&S17_Crules_phrase_th} // shift sym: Rfluff_or_cweb
+ }// end of shift table
+};
+yacco2::Shift_entry S18pse_Crules_phrase_th = {3,(State*)&S2_Crules_phrase_th};
+struct S18rtd_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S18rtd_Crules_phrase_th S18rt_Crules_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Crules_phrase_th,Crules_phrase_th::rhs1_Rlint_or_cweb_}
+ }// end of reduce table
+};
+yacco2::State S18_Crules_phrase_th = //State's vectored into symbol: "Ropen_brace"
+{18
+,(Shift_entry*)&S18pse_Crules_phrase_th,0,0,0,(Shift_tbl*)&S18st_Crules_phrase_th,(Reduce_tbl*)&S18rt_Crules_phrase_th,(State_s_thread_tbl*)&S2tt_Crules_phrase_th,0,0};
+struct S19std_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S19std_Crules_phrase_th S19st_Crules_phrase_th = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S29_Crules_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S30_Crules_phrase_th} // shift sym: LR1_parallel_operator
+ ,{571,(State*)&S20_Crules_phrase_th} // shift sym: Rrule_defs
+ ,{572,(State*)&S35_Crules_phrase_th} // shift sym: Rrule_def
+ }// end of shift table
+};
+yacco2::Shift_entry S19pse_Crules_phrase_th = {3,(State*)&S30_Crules_phrase_th};
+yacco2::Shift_entry S19qse_Crules_phrase_th = {0,(State*)&S29_Crules_phrase_th};
+yacco2::State S19_Crules_phrase_th = //State's vectored into symbol: "Rlint_or_cweb"
+{19
+,(Shift_entry*)&S19pse_Crules_phrase_th,0,0,0,(Shift_tbl*)&S19st_Crules_phrase_th,0,(State_s_thread_tbl*)&S30tt_Crules_phrase_th,0,(Shift_entry*)&S19qse_Crules_phrase_th
+};
+struct S20std_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S20std_Crules_phrase_th S20st_Crules_phrase_th = {
+ 5
+ ,
+ {// start of table
+ {3,(State*)&S21_Crules_phrase_th} // shift sym: LR1_parallel_operator
+ ,{573,(State*)&S33_Crules_phrase_th} // shift sym: Rrule_def1
+ ,{577,(State*)&S24_Crules_phrase_th} // shift sym: Rlint_or_cweb
+ ,{578,(State*)&S28_Crules_phrase_th} // shift sym: Rfluffs_or_cweb
+ ,{579,(State*)&S17_Crules_phrase_th} // shift sym: Rfluff_or_cweb
+ }// end of shift table
+};
+yacco2::Shift_entry S20pse_Crules_phrase_th = {3,(State*)&S21_Crules_phrase_th};
+struct S20rtd_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S20rtd_Crules_phrase_th S20rt_Crules_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crules_phrase_th,Crules_phrase_th::rhs1_Rlint_or_cweb_}
+ }// end of reduce table
+};
+yacco2::State S20_Crules_phrase_th = //State's vectored into symbol: "Rrule_defs"
+{20
+,(Shift_entry*)&S20pse_Crules_phrase_th,0,0,0,(Shift_tbl*)&S20st_Crules_phrase_th,(Reduce_tbl*)&S20rt_Crules_phrase_th,(State_s_thread_tbl*)&S21tt_Crules_phrase_th,0,0};
+struct S21std_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[7];
+};
+S21std_Crules_phrase_th S21st_Crules_phrase_th = {
+ 7
+ ,
+ {// start of table
+ {6,(State*)&S22_Crules_phrase_th} // shift sym: LR1_all_shift_operator
+ ,{268,(State*)&S3_Crules_phrase_th} // shift sym: T_eol
+ ,{271,(State*)&S4_Crules_phrase_th} // shift sym: T_comment
+ ,{272,(State*)&S5_Crules_phrase_th} // shift sym: T_ws
+ ,{340,(State*)&S23_Crules_phrase_th} // shift sym: rule_def
+ ,{372,(State*)&S6_Crules_phrase_th} // shift sym: T_cweb_comment
+ ,{396,(State*)&S7_Crules_phrase_th} // shift sym: Err_comment_overrun
+ }// end of shift table
+};
+yacco2::Shift_entry S21ase_Crules_phrase_th = {6,(State*)&S22_Crules_phrase_th};
+yacco2::State S21_Crules_phrase_th = //State's vectored into symbol: "|||"
+{21
+,0,(Shift_entry*)&S21ase_Crules_phrase_th
+,0,0,(Shift_tbl*)&S21st_Crules_phrase_th,0,0,0,0};
+struct S22rtd_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S22rtd_Crules_phrase_th S22rt_Crules_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Crules_phrase_th,Crules_phrase_th::rhs2_Rrule_def1_}
+ }// end of reduce table
+};
+yacco2::State S22_Crules_phrase_th = //State's vectored into symbol: "|+|"
+{22
+,0,0,0,0,0,(Reduce_tbl*)&S22rt_Crules_phrase_th,0,0,0};
+struct S23rtd_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S23rtd_Crules_phrase_th S23rt_Crules_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Crules_phrase_th,Crules_phrase_th::rhs1_Rrule_def1_}
+ }// end of reduce table
+};
+yacco2::State S23_Crules_phrase_th = //State's vectored into symbol: "rule-def"
+{23
+,0,0,0,0,0,(Reduce_tbl*)&S23rt_Crules_phrase_th,0,0,0};
+struct S24std_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S24std_Crules_phrase_th S24st_Crules_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S25_Crules_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{133,(State*)&S26_Crules_phrase_th} // shift sym: raw_close_brace
+ ,{575,(State*)&S27_Crules_phrase_th} // shift sym: Rclose_brace
+ }// end of shift table
+};
+yacco2::Shift_entry S24qse_Crules_phrase_th = {0,(State*)&S25_Crules_phrase_th};
+yacco2::State S24_Crules_phrase_th = //State's vectored into symbol: "Rlint_or_cweb"
+{24
+,0,0,0,0,(Shift_tbl*)&S24st_Crules_phrase_th,0,0,0,(Shift_entry*)&S24qse_Crules_phrase_th
+};
+struct S25rtd_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S25rtd_Crules_phrase_th S25rt_Crules_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Crules_phrase_th,Crules_phrase_th::rhs1_Rclose_brace_}
+ }// end of reduce table
+};
+yacco2::State S25_Crules_phrase_th = //State's vectored into symbol: "|?|"
+{25
+,0,0,0,0,0,(Reduce_tbl*)&S25rt_Crules_phrase_th,0,0,0};
+struct S26rtd_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S26rtd_Crules_phrase_th S26rt_Crules_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Crules_phrase_th,Crules_phrase_th::rhs2_Rclose_brace_}
+ }// end of reduce table
+};
+yacco2::State S26_Crules_phrase_th = //State's vectored into symbol: "}"
+{26
+,0,0,0,0,0,(Reduce_tbl*)&S26rt_Crules_phrase_th,0,0,0};
+struct S27rtd_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S27rtd_Crules_phrase_th S27rt_Crules_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Crules_phrase_th,Crules_phrase_th::rhs1_Rrule_defs_phrase_}
+ }// end of reduce table
+};
+yacco2::State S27_Crules_phrase_th = //State's vectored into symbol: "Rclose_brace"
+{27
+,0,0,0,0,0,(Reduce_tbl*)&S27rt_Crules_phrase_th,0,0,0};
+struct S28std_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S28std_Crules_phrase_th S28st_Crules_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Crules_phrase_th} // shift sym: LR1_parallel_operator
+ ,{579,(State*)&S16_Crules_phrase_th} // shift sym: Rfluff_or_cweb
+ }// end of shift table
+};
+yacco2::Shift_entry S28pse_Crules_phrase_th = {3,(State*)&S2_Crules_phrase_th};
+struct S28rtd_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S28rtd_Crules_phrase_th S28rt_Crules_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crules_phrase_th,Crules_phrase_th::rhs2_Rlint_or_cweb_}
+ }// end of reduce table
+};
+yacco2::State S28_Crules_phrase_th = //State's vectored into symbol: "Rfluffs_or_cweb"
+{28
+,(Shift_entry*)&S28pse_Crules_phrase_th,0,0,0,(Shift_tbl*)&S28st_Crules_phrase_th,(Reduce_tbl*)&S28rt_Crules_phrase_th,(State_s_thread_tbl*)&S2tt_Crules_phrase_th,0,0};
+struct S29rtd_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S29rtd_Crules_phrase_th S29rt_Crules_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Crules_phrase_th,Crules_phrase_th::rhs3_Rrule_def_}
+ }// end of reduce table
+};
+yacco2::State S29_Crules_phrase_th = //State's vectored into symbol: "|?|"
+{29
+,0,0,0,0,0,(Reduce_tbl*)&S29rt_Crules_phrase_th,0,0,0};
+struct S30std_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S30std_Crules_phrase_th S30st_Crules_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S31_Crules_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{340,(State*)&S32_Crules_phrase_th} // shift sym: rule_def
+ }// end of shift table
+};
+yacco2::Shift_entry S30qse_Crules_phrase_th = {0,(State*)&S31_Crules_phrase_th};
+yacco2::State S30_Crules_phrase_th = //State's vectored into symbol: "|||"
+{30
+,0,0,0,0,(Shift_tbl*)&S30st_Crules_phrase_th,0,0,0,(Shift_entry*)&S30qse_Crules_phrase_th
+};
+struct S31rtd_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S31rtd_Crules_phrase_th S31rt_Crules_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Crules_phrase_th,Crules_phrase_th::rhs2_Rrule_def_}
+ }// end of reduce table
+};
+yacco2::State S31_Crules_phrase_th = //State's vectored into symbol: "|?|"
+{31
+,0,0,0,0,0,(Reduce_tbl*)&S31rt_Crules_phrase_th,0,0,0};
+struct S32rtd_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S32rtd_Crules_phrase_th S32rt_Crules_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Crules_phrase_th,Crules_phrase_th::rhs1_Rrule_def_}
+ }// end of reduce table
+};
+yacco2::State S32_Crules_phrase_th = //State's vectored into symbol: "rule-def"
+{32
+,0,0,0,0,0,(Reduce_tbl*)&S32rt_Crules_phrase_th,0,0,0};
+struct S33std_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S33std_Crules_phrase_th S33st_Crules_phrase_th = {
+ 4
+ ,
+ {// start of table
+ {3,(State*)&S2_Crules_phrase_th} // shift sym: LR1_parallel_operator
+ ,{577,(State*)&S34_Crules_phrase_th} // shift sym: Rlint_or_cweb
+ ,{578,(State*)&S28_Crules_phrase_th} // shift sym: Rfluffs_or_cweb
+ ,{579,(State*)&S17_Crules_phrase_th} // shift sym: Rfluff_or_cweb
+ }// end of shift table
+};
+yacco2::Shift_entry S33pse_Crules_phrase_th = {3,(State*)&S2_Crules_phrase_th};
+struct S33rtd_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S33rtd_Crules_phrase_th S33rt_Crules_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Crules_phrase_th,Crules_phrase_th::rhs1_Rlint_or_cweb_}
+ }// end of reduce table
+};
+yacco2::State S33_Crules_phrase_th = //State's vectored into symbol: "Rrule_def1"
+{33
+,(Shift_entry*)&S33pse_Crules_phrase_th,0,0,0,(Shift_tbl*)&S33st_Crules_phrase_th,(Reduce_tbl*)&S33rt_Crules_phrase_th,(State_s_thread_tbl*)&S2tt_Crules_phrase_th,0,0};
+struct S34rtd_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S34rtd_Crules_phrase_th S34rt_Crules_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Crules_phrase_th,Crules_phrase_th::rhs2_Rrule_defs_}
+ }// end of reduce table
+};
+yacco2::State S34_Crules_phrase_th = //State's vectored into symbol: "Rlint_or_cweb"
+{34
+,0,0,0,0,0,(Reduce_tbl*)&S34rt_Crules_phrase_th,0,0,0};
+struct S35std_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S35std_Crules_phrase_th S35st_Crules_phrase_th = {
+ 4
+ ,
+ {// start of table
+ {3,(State*)&S2_Crules_phrase_th} // shift sym: LR1_parallel_operator
+ ,{577,(State*)&S36_Crules_phrase_th} // shift sym: Rlint_or_cweb
+ ,{578,(State*)&S28_Crules_phrase_th} // shift sym: Rfluffs_or_cweb
+ ,{579,(State*)&S17_Crules_phrase_th} // shift sym: Rfluff_or_cweb
+ }// end of shift table
+};
+yacco2::Shift_entry S35pse_Crules_phrase_th = {3,(State*)&S2_Crules_phrase_th};
+struct S35rtd_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S35rtd_Crules_phrase_th S35rt_Crules_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Crules_phrase_th,Crules_phrase_th::rhs1_Rlint_or_cweb_}
+ }// end of reduce table
+};
+yacco2::State S35_Crules_phrase_th = //State's vectored into symbol: "Rrule_def"
+{35
+,(Shift_entry*)&S35pse_Crules_phrase_th,0,0,0,(Shift_tbl*)&S35st_Crules_phrase_th,(Reduce_tbl*)&S35rt_Crules_phrase_th,(State_s_thread_tbl*)&S2tt_Crules_phrase_th,0,0};
+struct S36rtd_Crules_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S36rtd_Crules_phrase_th S36rt_Crules_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Crules_phrase_th,Crules_phrase_th::rhs1_Rrule_defs_}
+ }// end of reduce table
+};
+yacco2::State S36_Crules_phrase_th = //State's vectored into symbol: "Rlint_or_cweb"
+{36
+,0,0,0,0,0,(Reduce_tbl*)&S36rt_Crules_phrase_th,0,0,0};
diff --git a/web/yacco2/compiler/grammars/rules_phrasesym.cpp b/web/yacco2/compiler/grammars/rules_phrasesym.cpp
new file mode 100644
index 0000000000..044addb3ba
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rules_phrasesym.cpp
@@ -0,0 +1,86 @@
+/*
+ File: rules_phrasesym.cpp
+ Date and Time: Fri Jan 30 18:55:23 2015
+*/
+#include "rules_phrase.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_rules_phrase;// grammar's ns
+// first set terminals
+// monolithic grammar --- no thread
+void
+Crules_phrase::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rrules_phrase_:{
+ Rrules_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rrules_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrules_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rphrase_:{
+ Rphrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rphrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rphrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rphrase_:{
+ Rphrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rphrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rphrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rphrase_:{
+ Rphrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rphrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rphrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/rules_phrasetbl.cpp b/web/yacco2/compiler/grammars/rules_phrasetbl.cpp
new file mode 100644
index 0000000000..b51f7cfa5d
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rules_phrasetbl.cpp
@@ -0,0 +1,129 @@
+/*
+ File: rules_phrasetbl.cpp
+ Date and Time: Fri Jan 30 18:55:23 2015
+*/
+#include "rules_phrase.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_rules_phrase;// grammar's ns
+// first set terminals
+// LR1_eolr
+yacco2::UCHAR LA1_Crules_phrase[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Crules_phrase;
+extern yacco2::State S2_Crules_phrase;
+extern yacco2::State S3_Crules_phrase;
+struct S3ttd_Crules_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S3ttd_Crules_phrase S3tt_Crules_phrase = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_rules_phrase_th
+};
+extern yacco2::State S4_Crules_phrase;
+extern yacco2::State S5_Crules_phrase;
+extern yacco2::State S6_Crules_phrase;
+struct S1std_Crules_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S1std_Crules_phrase S1st_Crules_phrase = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S2_Crules_phrase} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S3_Crules_phrase} // shift sym: LR1_parallel_operator
+ ,{569,(State*)&S1_Crules_phrase} // accept sym: Rrules_phrase
+ ,{570,(State*)&S6_Crules_phrase} // shift sym: Rphrase
+ }// end of shift table
+};
+yacco2::Shift_entry S1pse_Crules_phrase = {3,(State*)&S3_Crules_phrase};
+yacco2::Shift_entry S1qse_Crules_phrase = {0,(State*)&S2_Crules_phrase};
+yacco2::State S1_Crules_phrase = //State's vectored into symbol: " No symbol"
+{1
+,(Shift_entry*)&S1pse_Crules_phrase,0,0,0,(Shift_tbl*)&S1st_Crules_phrase,0,(State_s_thread_tbl*)&S3tt_Crules_phrase,0,(Shift_entry*)&S1qse_Crules_phrase
+};
+struct S2rtd_Crules_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Crules_phrase S2rt_Crules_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crules_phrase,Crules_phrase::rhs3_Rphrase_}
+ }// end of reduce table
+};
+yacco2::State S2_Crules_phrase = //State's vectored into symbol: "|?|"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Crules_phrase,0,0,0};
+struct S3std_Crules_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S3std_Crules_phrase S3st_Crules_phrase = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S4_Crules_phrase} // shift sym: LR1_questionable_shift_operator
+ ,{341,(State*)&S5_Crules_phrase} // shift sym: T_rules_phrase
+ }// end of shift table
+};
+yacco2::Shift_entry S3qse_Crules_phrase = {0,(State*)&S4_Crules_phrase};
+yacco2::State S3_Crules_phrase = //State's vectored into symbol: "|||"
+{3
+,0,0,0,0,(Shift_tbl*)&S3st_Crules_phrase,0,0,0,(Shift_entry*)&S3qse_Crules_phrase
+};
+struct S4rtd_Crules_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Crules_phrase S4rt_Crules_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crules_phrase,Crules_phrase::rhs2_Rphrase_}
+ }// end of reduce table
+};
+yacco2::State S4_Crules_phrase = //State's vectored into symbol: "|?|"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Crules_phrase,0,0,0};
+struct S5rtd_Crules_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Crules_phrase S5rt_Crules_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crules_phrase,Crules_phrase::rhs1_Rphrase_}
+ }// end of reduce table
+};
+yacco2::State S5_Crules_phrase = //State's vectored into symbol: "rules-phrase"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Crules_phrase,0,0,0};
+struct S6rtd_Crules_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Crules_phrase S6rt_Crules_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crules_phrase,Crules_phrase::rhs1_Rrules_phrase_}
+ }// end of reduce table
+};
+yacco2::State S6_Crules_phrase = //State's vectored into symbol: "Rphrase"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Crules_phrase,0,0,0};
diff --git a/web/yacco2/compiler/grammars/rules_use_cnt.cpp b/web/yacco2/compiler/grammars/rules_use_cnt.cpp
new file mode 100644
index 0000000000..acc04bfb17
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rules_use_cnt.cpp
@@ -0,0 +1,262 @@
+/*
+ File: rules_use_cnt.cpp
+ Date and Time: Fri Jan 30 18:55:23 2015
+*/
+#include "rules_use_cnt.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_rules_use_cnt;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 9;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[4] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[5] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[6] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[7] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[8] = new Per_rule_s_reuse_table();
+}
+ Crules_use_cnt::
+ Crules_use_cnt()
+ :yacco2::CAbs_fsm
+ ("rules_use_cnt.lex"
+ ,"1.0"
+ ,"6 July 2007"
+ ,false
+ ,"Optimization: Count ``rules used'' \n to lower new / delete rule cycles while parsing."
+ ,"Fri Jan 30 18:55:23 2015 "
+ ,S1_Crules_use_cnt){
+
+ }
+
+Crules_use_cnt::~Crules_use_cnt(){
+
+ for(int x = 0;x < 9;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Crules_use_cnt::failed(){
+ return false;
+ }
+ void Crules_use_cnt::op(){
+ tok_can<AST*>* can = (tok_can<AST*>*)parser()->token_supplier();
+ AST* start_rule_t = can->ast(0);
+ AST* t = start_rule_t;
+ for(;t != 0;t=AST::get_younger_sibling(*t,1)){
+ rule_def* rd = (rule_def*)AST::content(*t);
+ AST* use_skeleton_t = bld_rule_s_use_skeleton(t);
+ if(use_skeleton_t != 0) rd->rule_use_skeleton(use_skeleton_t);
+ if(t != start_rule_t) rules_list_for_use_cnt_.push_back(rd);
+ }
+ rule_def_ = 0;
+ subrule_def_ = 0;
+
+}
+int Crules_use_cnt::rhs_to_rules_mapping_[14] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,2 // subrule 4 for rule 3
+ ,3 // subrule 5 for rule 4
+ ,4 // subrule 6 for rule 5
+ ,4 // subrule 7 for rule 5
+ ,5 // subrule 8 for rule 6
+ ,6 // subrule 9 for rule 7
+ ,7 // subrule 10 for rule 8
+ ,7 // subrule 11 for rule 8
+ ,8 // subrule 12 for rule 9
+ ,8 // subrule 13 for rule 9
+};
+
+ void Crules_use_cnt::mark_recursion_rule_use
+ (NS_yacco2_terminals::refered_rule* Refered_rule){
+ using namespace NS_yacco2_terminals;
+ rule_in_stbl* rule_in_tbl = Refered_rule->Rule_in_stbl();
+ rule_def* rd = rule_in_tbl->r_def();
+ if(rd == rule_def_){
+ rd->recursive(YES);
+ rd->lhs_use_cnt(1);
+ }
+ }
+
+ AST* Crules_use_cnt::bld_rule_s_use_skeleton(AST* Rule_t){
+ using namespace NS_yacco2_T_enum;
+ set<int> rules_use_cnt_filter;
+ rules_use_cnt_filter.insert(T_Enum::T_T_subrule_def_);
+ rules_use_cnt_filter.insert(T_Enum::T_rule_def_);
+ rules_use_cnt_filter.insert(T_Enum::T_refered_rule_);
+
+ tok_can_ast_functor rules_use_walk_functr;
+ ast_postfix rules_use_walk(*Rule_t,&rules_use_walk_functr
+ ,&rules_use_cnt_filter,ACCEPT_FILTER);
+ tok_can<AST*> rules_use_can(rules_use_walk);
+ int x(0);
+ CAbs_lr1_sym* sym = rules_use_can[x];
+ rule_def* rd(0);
+ AST* lk_rr_t(0);
+ AST* rr_t(0);
+ AST* sr_t(0);
+ AST* lk_sr_t(0);
+ AST* r_t(0);
+ for(;sym->enumerated_id() != LR1_Eog;++x,sym=rules_use_can[x]){
+ switch(sym->enumerated_id()){
+ case T_Enum::T_rule_def_:{
+ if(sr_t == 0) return 0;// no rhs with refered rules
+ r_t = new AST(*sym);
+ AST::join_pts(*r_t,*sr_t);
+ return r_t;
+ }
+ case T_Enum::T_T_subrule_def_:{
+ if(rr_t == 0) break;// no refered rules
+ AST* srt = new AST(*sym);
+ AST::join_pts(*srt,*rr_t);
+ lk_rr_t = 0;
+ rr_t = 0;
+ if(sr_t == 0){
+ sr_t = srt;
+ lk_sr_t = srt;
+ }else{
+ AST::join_sts(*lk_sr_t,*srt);
+ lk_sr_t = srt;
+ }
+ break;
+ }
+ case T_Enum::T_refered_rule_:{
+ AST* rrt = new AST(*sym);
+ if(rr_t == 0){
+ rr_t = rrt;
+ lk_rr_t = rrt;
+ }else{
+ AST::join_sts(*lk_rr_t,*rrt);
+ lk_rr_t = rrt;
+ }
+ break;
+ }
+ }//switch
+ }//for
+ return 0;
+ }
+
+Rrules_use_cnt::Rrules_use_cnt(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrules_use_cnt",0,Crules_use_cnt::R_Rrules_use_cnt_,P,false,false){
+}
+
+Rrules::Rrules(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrules",0,Crules_use_cnt::R_Rrules_,P,false,false){
+}
+
+Rrule::Rrule(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrule",0,Crules_use_cnt::R_Rrule_,P,false,false){
+}
+
+Rrule_def::Rrule_def(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrule_def",0,Crules_use_cnt::R_Rrule_def_,P,false,false){
+}
+
+void Rrule_def::sr1(){
+ struct SF{
+ rule_def* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Crules_use_cnt* fsm = (Crules_use_cnt*)rule_info__.parser__->fsm_tbl__;
+ fsm->rule_def_ = sf->p1__;
+ std::list<NS_yacco2_terminals::rule_def* >::iterator i = fsm->rules_list_for_use_cnt_.begin();
+ std::list<NS_yacco2_terminals::rule_def* >::iterator ie = fsm->rules_list_for_use_cnt_.end();
+ for(;i != ie;++i){
+ rule_def* for_rule = *i;
+ int use_cnt = MAX_USE_CNT_RxR(for_rule,fsm->rule_def_);
+ if(for_rule->rhs_use_cnt() < use_cnt){
+ for_rule->rhs_use_cnt(use_cnt);
+ }
+ }
+
+}
+
+Rsubrules::Rsubrules(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsubrules",0,Crules_use_cnt::R_Rsubrules_,P,false,false){
+}
+
+Rsubrule::Rsubrule(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsubrule",0,Crules_use_cnt::R_Rsubrule_,P,false,false){
+}
+
+Rsubrule_def::Rsubrule_def(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsubrule_def",0,Crules_use_cnt::R_Rsubrule_def_,P,false,false){
+}
+
+void Rsubrule_def::sr1(){
+ struct SF{
+ T_subrule_def* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Crules_use_cnt* fsm = (Crules_use_cnt*)rule_info__.parser__->fsm_tbl__;
+ fsm->subrule_def_ = sf->p1__;
+
+}
+
+Rsubrule_s_used_rules_epi::Rsubrule_s_used_rules_epi(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsubrule_s_used_rules_epi",0,Crules_use_cnt::R_Rsubrule_s_used_rules_epi_,P,false,false){
+}
+
+Rsubrule_s_used_rules::Rsubrule_s_used_rules(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsubrule_s_used_rules",0,Crules_use_cnt::R_Rsubrule_s_used_rules_,P,false,false){
+}
+
+void Rsubrule_s_used_rules::sr1(){
+ struct SF{
+ refered_rule* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Crules_use_cnt* fsm = (Crules_use_cnt*)rule_info__.parser__->fsm_tbl__;
+ fsm->mark_recursion_rule_use(sf->p1__);
+
+}
+
+void Rsubrule_s_used_rules::sr2(){
+ struct SF{
+ Rsubrule_s_used_rules* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ refered_rule* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Crules_use_cnt* fsm = (Crules_use_cnt*)rule_info__.parser__->fsm_tbl__;
+ fsm->mark_recursion_rule_use(sf->p2__);
+
+}
+
diff --git a/web/yacco2/compiler/grammars/rules_use_cnt.fsc b/web/yacco2/compiler/grammars/rules_use_cnt.fsc
new file mode 100644
index 0000000000..a72925dc54
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rules_use_cnt.fsc
@@ -0,0 +1,20 @@
+/*
+ File: rules_use_cnt.fsc
+ Date and Time: Fri Jan 30 18:55:23 2015
+*/
+transitive n
+grammar-name "rules_use_cnt"
+name-space "NS_rules_use_cnt"
+thread-name "Crules_use_cnt"
+monolithic y
+file-name "rules_use_cnt.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ rule_def
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"Optimization: Count ``rules used'' \n to lower new / delete rule cycles while parsing."
diff --git a/web/yacco2/compiler/grammars/rules_use_cnt.h b/web/yacco2/compiler/grammars/rules_use_cnt.h
new file mode 100644
index 0000000000..db32fcdad4
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rules_use_cnt.h
@@ -0,0 +1,135 @@
+/*
+ File: rules_use_cnt.h
+ Date and Time: Fri Jan 30 18:55:23 2015
+*/
+#ifndef __rules_use_cnt_h__
+#define __rules_use_cnt_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "o2_externs.h"
+extern int MAX_USE_CNT_RxR
+ (NS_yacco2_terminals::rule_def* Rule_use
+ ,NS_yacco2_terminals::rule_def* Against_rule);
+
+// monolithic grammar: no thread
+extern yacco2::State S1_Crules_use_cnt;
+namespace NS_rules_use_cnt {
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[9];
+};
+class Crules_use_cnt: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rrules_use_cnt_ = 569//start_of_rule_list + 0
+ ,rhs1_Rrules_use_cnt_ = 1
+ ,R_Rrules_ = 570//start_of_rule_list + 2
+ ,rhs1_Rrules_ = 2
+ ,rhs2_Rrules_ = 3
+ ,R_Rrule_ = 571//start_of_rule_list + 4
+ ,rhs1_Rrule_ = 4
+ ,R_Rrule_def_ = 572//start_of_rule_list + 6
+ ,rhs1_Rrule_def_ = 5
+ ,R_Rsubrules_ = 573//start_of_rule_list + 8
+ ,rhs1_Rsubrules_ = 6
+ ,rhs2_Rsubrules_ = 7
+ ,R_Rsubrule_ = 574//start_of_rule_list + 10
+ ,rhs1_Rsubrule_ = 8
+ ,R_Rsubrule_def_ = 575//start_of_rule_list + 12
+ ,rhs1_Rsubrule_def_ = 9
+ ,R_Rsubrule_s_used_rules_epi_ = 576//start_of_rule_list + 14
+ ,rhs1_Rsubrule_s_used_rules_epi_ = 10
+ ,rhs2_Rsubrule_s_used_rules_epi_ = 11
+ ,R_Rsubrule_s_used_rules_ = 577//start_of_rule_list + 16
+ ,rhs1_Rsubrule_s_used_rules_ = 12
+ ,rhs2_Rsubrule_s_used_rules_ = 13
+ };
+ //no of la sets = 5
+ //no of states = 17
+ Crules_use_cnt();
+ ~Crules_use_cnt();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[14];
+
+ public:
+ std::list<NS_yacco2_terminals::rule_def* > rules_list_for_use_cnt_;
+ NS_yacco2_terminals::rule_def* rule_def_;
+ NS_yacco2_terminals::T_subrule_def* subrule_def_;
+ void mark_recursion_rule_use(NS_yacco2_terminals::refered_rule* Refered_rule);
+ yacco2::AST* bld_rule_s_use_skeleton(yacco2::AST* Rule_t);
+
+ };
+struct Rrules_use_cnt;
+struct Rrules;
+struct Rrule;
+struct Rrule_def;
+struct Rsubrules;
+struct Rsubrule;
+struct Rsubrule_def;
+struct Rsubrule_s_used_rules_epi;
+struct Rsubrule_s_used_rules;
+struct Rrules_use_cnt:public yacco2::CAbs_lr1_sym {
+ Rrules_use_cnt(yacco2::Parser* P);
+ public:
+};
+
+struct Rrules:public yacco2::CAbs_lr1_sym {
+ Rrules(yacco2::Parser* P);
+ public:
+};
+
+struct Rrule:public yacco2::CAbs_lr1_sym {
+ Rrule(yacco2::Parser* P);
+ public:
+};
+
+struct Rrule_def:public yacco2::CAbs_lr1_sym {
+ Rrule_def(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rsubrules:public yacco2::CAbs_lr1_sym {
+ Rsubrules(yacco2::Parser* P);
+ public:
+};
+
+struct Rsubrule:public yacco2::CAbs_lr1_sym {
+ Rsubrule(yacco2::Parser* P);
+ public:
+};
+
+struct Rsubrule_def:public yacco2::CAbs_lr1_sym {
+ Rsubrule_def(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rsubrule_s_used_rules_epi:public yacco2::CAbs_lr1_sym {
+ Rsubrule_s_used_rules_epi(yacco2::Parser* P);
+ public:
+};
+
+struct Rsubrule_s_used_rules:public yacco2::CAbs_lr1_sym {
+ Rsubrule_s_used_rules(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/rules_use_cnt.lex b/web/yacco2/compiler/grammars/rules_use_cnt.lex
new file mode 100644
index 0000000000..e15d041e22
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rules_use_cnt.lex
@@ -0,0 +1,295 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: rules_use_cnt.lex
+Dates: 23 Sept. 2005
+Purpose: used to optimize the recycled rules table use.
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |rules_use_cnt| grammar.\fbreak
+Determine each rule's use count for generating recycled rules tables.
+It answers the question: What is the maximum number of rules
+needed in each recycled rules table?.
+If the rule has recursion then indicate in rule's definition.
+The heart of the algorithm is to determine the maximum rule's use count
+against all rules rhs.
+The grammar tree is walked in top-down fashion: prefix
+using a filter for only rule-def, subrule-def, and referenced-rules. \fbreak
+\fbreak
+Stage 1: Build per rule its rule use skeleton. This is done upon entry
+into the grammar using the ``op directive'' before the grammar parses.
+Removeal of all the T vocabulary from the rhs leave its bones.
+If the resultant rhs is empty then it does not partake
+in the analysis as there are no rule used.
+The rule's skeleton is deposited within its ``rule-def''
+for the balance of the stages.\fbreak
+\fbreak
+Stage 2: Determine rule's use count per skeleton.\fbreak
+The max use count is posted in the rule's definition
+to generate the space requirement for the rule's
+recycling table.
+\fbreak
+\fbreak
+Remarks:\fbreak
+The walked skeleton checks the use count of indirect rule's in use.
+For example:\fbreak
+\settabs\+\indent&1in\qquad&\qquad&\qquad&\cr
+\+&\it Rule&&{\it subrule's symbols}\cr
+\+&Rs &$\rightarrow$ &Ra Rxx Ra Rxxx $\bot$\cr
+\+&Ra &$\rightarrow$ &a \cr
+\+&&$\rightarrow$ &Ra a\cr
+\+&Rxx&$\rightarrow$ &x Ra x Ra b\cr
+\+&Rxxx&$\rightarrow$ &x Ra x Ra x Ra\cr
+\fbreak
+What is the maximum use count of Ra in the above grammar?
+It is 6 caused by the 1st rule.
+Why?
+Here is an example to support my statement.\fbreak
+\settabs\+\indent&a a x a x a b a x a x a x a a\&\qquad&a a x a x a b a x a x a x a a a&Comments\cr
+\+&{\it Parse Stack}&{\it input string to parse}&Comments\cr
+\+& & a a x a x a b a x a x a x a a\cr
+\+&a & a x a x a b a x a x a x a a\cr
+\+&Ra & a x a x a b a x a x a x a a\cr
+\+&Ra a & x a x a b a x a x a x a a& recursion: 2 Ra --- lhs and stacked rhs\cr
+\+&Ra & x a x a b a x a x a x a a& Ra lhs, popped rhs Ra recycled \cr
+\+&Ra x & a x a b a x a x a x a a\cr
+\+&Ra x a & x a b a x a x a x a a\cr
+\+&Ra x Ra & x a b a x a x a x a a\cr
+\+&Ra x Ra x & a b a x a x a x a a\cr
+\+&Ra x Ra x a & b a x a x a x a a\cr
+\+&Ra x Ra x Ra & b a x a x a x a a\cr
+\+&Ra x Ra x Ra b & a x a x a x a a\cr
+\+&Ra Rxx & a x a x a x a a\cr
+\+&Ra Rxx a & x a x a x a a\cr
+\+&Ra Rxx Ra & x a x a x a a\cr
+\+&Ra Rxx Ra x & a x a x a a\cr
+\+&Ra Rxx Ra x a & x a x a a\cr
+\+&Ra Rxx Ra x Ra & x a x a a\cr
+\+&Ra Rxx Ra x Ra x & a x a a\cr
+\+&Ra Rxx Ra x Ra x a& x a a\cr
+\+&Ra Rxx Ra x Ra x Ra& x a a\cr
+\+&Ra Rxx Ra x Ra x Ra x& a a\cr
+\+&Ra Rxx Ra x Ra x Ra x a& a\cr
+\+&Ra Rxx Ra x Ra x Ra x Ra& a\cr
+\+&Ra Rxx Ra x Ra x Ra x Ra a& note: extra Ra for lhs/rhs from recursion\cr
+\+&Ra Rxx Ra x Ra x Ra x Ra& though 5 Ra on stack, above lhs/rhs requires 6\cr
+\+&Ra Rxx Ra Rxxx& where Rxxx's rhs needs 4 before it reduces\cr
+\fbreak
+There are 2 direct Ra used and 4 indirect Ra from Rxxx's rhs
+before it is reduced: 3 direct Ra used + 1 Ra for the recursion
+on its last recognized Ra before Rxxx's rhs is completely recognized.
+Recursion of Ra demands 2 Ra: lhs / rhs.
+The first ``a'' recognized creates a Ra that is pushed onto the stack.
+The following ``a'' get recognized by the Ra left recursion rule.
+The first Ra sits on the parse stack whilst the second Ra
+representing the lhs gets ready for the reduce to take place.
+With each recurse reduction the rhs's popped Ra is freed up for recycling.
+After the Rxxx reduction, its 3 Ra also get recycled for use.
+On the parse stack there still remains 2 active Ra
+ of Rs's rhs that remains
+to be recognized.
+If Rxxx was not present in the grammar, the Ra maximum use count
+would be
+5: 2 direct and 2+1 indirect counts from Rxx.\fbreak
+
+@/
+
+fsm
+(fsm-id "rules_use_cnt.lex"
+,fsm-filename rules_use_cnt
+,fsm-namespace NS_rules_use_cnt
+,fsm-class Crules_use_cnt{
+ user-prefix-declaration
+#include "o2_externs.h"
+extern int MAX_USE_CNT_RxR
+ (NS_yacco2_terminals::rule_def* Rule_use
+ ,NS_yacco2_terminals::rule_def* Against_rule);
+ ***
+ user-declaration
+ public:
+ std::list<NS_yacco2_terminals::rule_def* > rules_list_for_use_cnt_;
+ NS_yacco2_terminals::rule_def* rule_def_;
+ NS_yacco2_terminals::T_subrule_def* subrule_def_;
+ void mark_recursion_rule_use(NS_yacco2_terminals::refered_rule* Refered_rule);
+ yacco2::AST* bld_rule_s_use_skeleton(yacco2::AST* Rule_t);
+ ***
+ user-implementation
+ void Crules_use_cnt::mark_recursion_rule_use
+ (NS_yacco2_terminals::refered_rule* Refered_rule){
+ using namespace NS_yacco2_terminals;
+ rule_in_stbl* rule_in_tbl = Refered_rule->Rule_in_stbl();
+ rule_def* rd = rule_in_tbl->r_def();
+ if(rd == rule_def_){
+ rd->recursive(YES);
+ rd->lhs_use_cnt(1);
+ }
+ }
+/@
+@*3 |bld_rule_s_use_skeleton|.
+@/
+ AST* Crules_use_cnt::bld_rule_s_use_skeleton(AST* Rule_t){
+ using namespace NS_yacco2_T_enum;
+ set<int> rules_use_cnt_filter;
+ rules_use_cnt_filter.insert(T_Enum::T_T_subrule_def_);
+ rules_use_cnt_filter.insert(T_Enum::T_rule_def_);
+ rules_use_cnt_filter.insert(T_Enum::T_refered_rule_);
+
+ tok_can_ast_functor rules_use_walk_functr;
+ ast_postfix rules_use_walk(*Rule_t,&rules_use_walk_functr
+ ,&rules_use_cnt_filter,ACCEPT_FILTER);
+ tok_can<AST*> rules_use_can(rules_use_walk);
+ int x(0);
+ CAbs_lr1_sym* sym = rules_use_can[x];
+ rule_def* rd(0);
+ AST* lk_rr_t(0);
+ AST* rr_t(0);
+ AST* sr_t(0);
+ AST* lk_sr_t(0);
+ AST* r_t(0);
+ for(;sym->enumerated_id() != LR1_Eog;++x,sym=rules_use_can[x]){
+ switch(sym->enumerated_id()){
+ case T_Enum::T_rule_def_:{
+ if(sr_t == 0) return 0;// no rhs with refered rules
+ r_t = new AST(*sym);
+ AST::join_pts(*r_t,*sr_t);
+ return r_t;
+ }
+ case T_Enum::T_T_subrule_def_:{
+ if(rr_t == 0) break;// no refered rules
+ AST* srt = new AST(*sym);
+ AST::join_pts(*srt,*rr_t);
+ lk_rr_t = 0;
+ rr_t = 0;
+ if(sr_t == 0){
+ sr_t = srt;
+ lk_sr_t = srt;
+ }else{
+ AST::join_sts(*lk_sr_t,*srt);
+ lk_sr_t = srt;
+ }
+ break;
+ }
+ case T_Enum::T_refered_rule_:{
+ AST* rrt = new AST(*sym);
+ if(rr_t == 0){
+ rr_t = rrt;
+ lk_rr_t = rrt;
+ }else{
+ AST::join_sts(*lk_rr_t,*rrt);
+ lk_rr_t = rrt;
+ }
+ break;
+ }
+ }//switch
+ }//for
+ return 0;
+ }
+ ***
+/@
+Build use skeletons per rule definition.
+As the container is of tree type, the first token is
+the ``start'' rule.
+I can get its tree node and breadth walk it for its brothers.
+The rules list for ``use count'' assessment is built: Rules vocabulary - ``start'' rule.
+The ``start'' rule is removed as it never appears within a rhs as per a grammar's definition.
+@/
+ op
+ tok_can<AST*>* can = (tok_can<AST*>*)parser()->token_supplier();
+ AST* start_rule_t = can->ast(0);
+ AST* t = start_rule_t;
+ for(;t != 0;t=AST::get_younger_sibling(*t,1)){
+ rule_def* rd = (rule_def*)AST::content(*t);
+ AST* use_skeleton_t = bld_rule_s_use_skeleton(t);
+ if(use_skeleton_t != 0) rd->rule_use_skeleton(use_skeleton_t);
+ if(t != start_rule_t) rules_list_for_use_cnt_.push_back(rd);
+ }
+ rule_def_ = 0;
+ subrule_def_ = 0;
+ ***
+}
+,fsm-version "1.0",fsm-date "6 July 2007",fsm-debug "false"
+,fsm-comments "Optimization: Count ``rules used'' \n to lower new / delete rule cycles while parsing.")
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rrules_use_cnt
+(){
+ -> Rrules eog
+}
+
+Rrules (){
+ -> Rrule
+ -> Rrules Rrule
+}
+
+Rrule (){
+ -> Rrule_def Rsubrules
+}
+
+Rrule_def (){
+ -> "rule-def" {
+/@
+Post the rule's used cnt within its definition to be used
+in generating the recycle tables.
+Remember the current rule is assessing its
+indirect rule usage. It is the rule usage definition that gets updated
+for its recycle table requirements and not the current rule.
+@/
+ op
+ Crules_use_cnt* fsm = (Crules_use_cnt*)rule_info__.parser__->fsm_tbl__;
+ fsm->rule_def_ = sf->p1__;
+ std::list<NS_yacco2_terminals::rule_def* >::iterator i = fsm->rules_list_for_use_cnt_.begin();
+ std::list<NS_yacco2_terminals::rule_def* >::iterator ie = fsm->rules_list_for_use_cnt_.end();
+ for(;i != ie;++i){
+ rule_def* for_rule = *i;
+ int use_cnt = MAX_USE_CNT_RxR(for_rule,fsm->rule_def_);
+ if(for_rule->rhs_use_cnt() < use_cnt){
+ for_rule->rhs_use_cnt(use_cnt);
+ }
+ }
+ ***
+ }
+}
+
+Rsubrules (){
+ -> Rsubrule Rsubrule_s_used_rules_epi
+ -> Rsubrules Rsubrule Rsubrule_s_used_rules_epi
+}
+
+Rsubrule (){
+ -> Rsubrule_def
+}
+
+Rsubrule_def (){
+ -> "subrule-def" {
+ op
+ Crules_use_cnt* fsm = (Crules_use_cnt*)rule_info__.parser__->fsm_tbl__;
+ fsm->subrule_def_ = sf->p1__;
+ ***
+ }
+}
+
+Rsubrule_s_used_rules_epi (){
+ ->
+ -> Rsubrule_s_used_rules
+}
+
+Rsubrule_s_used_rules (){
+ -> "refered-rule" {
+ op
+ Crules_use_cnt* fsm = (Crules_use_cnt*)rule_info__.parser__->fsm_tbl__;
+ fsm->mark_recursion_rule_use(sf->p1__);
+ ***
+ }
+ -> Rsubrule_s_used_rules "refered-rule" {
+ op
+ Crules_use_cnt* fsm = (Crules_use_cnt*)rule_info__.parser__->fsm_tbl__;
+ fsm->mark_recursion_rule_use(sf->p2__);
+ ***
+ }
+}
+
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/rules_use_cntsym.cpp b/web/yacco2/compiler/grammars/rules_use_cntsym.cpp
new file mode 100644
index 0000000000..2aaad60684
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rules_use_cntsym.cpp
@@ -0,0 +1,213 @@
+/*
+ File: rules_use_cntsym.cpp
+ Date and Time: Fri Jan 30 18:55:23 2015
+*/
+#include "rules_use_cnt.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_rules_use_cnt;// grammar's ns
+// first set terminals
+// monolithic grammar --- no thread
+void
+Crules_use_cnt::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rrules_use_cnt_:{
+ Rrules_use_cnt* sym;
+ if(re->rule_ == 0){
+ sym = new Rrules_use_cnt(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrules_use_cnt*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rrules_:{
+ Rrules* sym;
+ if(re->rule_ == 0){
+ sym = new Rrules(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrules*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rrules_:{
+ Rrules* sym;
+ if(re->rule_ == 0){
+ sym = new Rrules(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrules*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rrule_:{
+ Rrule* sym;
+ if(re->rule_ == 0){
+ sym = new Rrule(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrule*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rrule_def_:{
+ Rrule_def* sym;
+ if(re->rule_ == 0){
+ sym = new Rrule_def(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrule_def*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rsubrules_:{
+ Rsubrules* sym;
+ if(re->rule_ == 0){
+ sym = new Rsubrules(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsubrules*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rsubrules_:{
+ Rsubrules* sym;
+ if(re->rule_ == 0){
+ sym = new Rsubrules(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsubrules*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ return;}
+ case rhs1_Rsubrule_:{
+ Rsubrule* sym;
+ if(re->rule_ == 0){
+ sym = new Rsubrule(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsubrule*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rsubrule_def_:{
+ Rsubrule_def* sym;
+ if(re->rule_ == 0){
+ sym = new Rsubrule_def(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsubrule_def*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rsubrule_s_used_rules_epi_:{
+ Rsubrule_s_used_rules_epi* sym;
+ if(re->rule_ == 0){
+ sym = new Rsubrule_s_used_rules_epi(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsubrule_s_used_rules_epi*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs2_Rsubrule_s_used_rules_epi_:{
+ Rsubrule_s_used_rules_epi* sym;
+ if(re->rule_ == 0){
+ sym = new Rsubrule_s_used_rules_epi(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsubrule_s_used_rules_epi*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rsubrule_s_used_rules_:{
+ Rsubrule_s_used_rules* sym;
+ if(re->rule_ == 0){
+ sym = new Rsubrule_s_used_rules(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsubrule_s_used_rules*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rsubrule_s_used_rules_:{
+ Rsubrule_s_used_rules* sym;
+ if(re->rule_ == 0){
+ sym = new Rsubrule_s_used_rules(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsubrule_s_used_rules*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/rules_use_cnttbl.cpp b/web/yacco2/compiler/grammars/rules_use_cnttbl.cpp
new file mode 100644
index 0000000000..3ff5bed25a
--- /dev/null
+++ b/web/yacco2/compiler/grammars/rules_use_cnttbl.cpp
@@ -0,0 +1,363 @@
+/*
+ File: rules_use_cnttbl.cpp
+ Date and Time: Fri Jan 30 18:55:23 2015
+*/
+#include "rules_use_cnt.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_rules_use_cnt;// grammar's ns
+// first set terminals
+// T_subrule_def
+yacco2::UCHAR LA1_Crules_use_cnt[] ={
+1
+,42,64
+};
+// LR1_eolr
+yacco2::UCHAR LA2_Crules_use_cnt[] ={
+1
+,0,4
+};
+// LR1_eog
+// rule_def
+yacco2::UCHAR LA3_Crules_use_cnt[] ={
+2
+,0,2
+,42,16
+};
+// LR1_eog
+// rule_def
+// T_subrule_def
+// refered_rule
+yacco2::UCHAR LA4_Crules_use_cnt[] ={
+3
+,0,2
+,42,80
+,43,8
+};
+// LR1_eog
+// rule_def
+// T_subrule_def
+yacco2::UCHAR LA5_Crules_use_cnt[] ={
+2
+,0,2
+,42,80
+};
+extern yacco2::State S1_Crules_use_cnt;
+extern yacco2::State S2_Crules_use_cnt;
+extern yacco2::State S3_Crules_use_cnt;
+extern yacco2::State S4_Crules_use_cnt;
+extern yacco2::State S5_Crules_use_cnt;
+extern yacco2::State S6_Crules_use_cnt;
+extern yacco2::State S7_Crules_use_cnt;
+extern yacco2::State S8_Crules_use_cnt;
+extern yacco2::State S9_Crules_use_cnt;
+extern yacco2::State S10_Crules_use_cnt;
+extern yacco2::State S11_Crules_use_cnt;
+extern yacco2::State S12_Crules_use_cnt;
+extern yacco2::State S13_Crules_use_cnt;
+extern yacco2::State S14_Crules_use_cnt;
+extern yacco2::State S15_Crules_use_cnt;
+extern yacco2::State S16_Crules_use_cnt;
+extern yacco2::State S17_Crules_use_cnt;
+struct S1std_Crules_use_cnt{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S1std_Crules_use_cnt S1st_Crules_use_cnt = {
+ 5
+ ,
+ {// start of table
+ {340,(State*)&S2_Crules_use_cnt} // shift sym: rule_def
+ ,{569,(State*)&S1_Crules_use_cnt} // accept sym: Rrules_use_cnt
+ ,{570,(State*)&S3_Crules_use_cnt} // shift sym: Rrules
+ ,{571,(State*)&S17_Crules_use_cnt} // shift sym: Rrule
+ ,{572,(State*)&S6_Crules_use_cnt} // shift sym: Rrule_def
+ }// end of shift table
+};
+yacco2::State S1_Crules_use_cnt = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Crules_use_cnt,0,0,0,0};
+struct S2rtd_Crules_use_cnt{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Crules_use_cnt S2rt_Crules_use_cnt = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Crules_use_cnt,Crules_use_cnt::rhs1_Rrule_def_}
+ }// end of reduce table
+};
+yacco2::State S2_Crules_use_cnt = //State's vectored into symbol: "rule-def"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Crules_use_cnt,0,0,0};
+struct S3std_Crules_use_cnt{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S3std_Crules_use_cnt S3st_Crules_use_cnt = {
+ 4
+ ,
+ {// start of table
+ {1,(State*)&S4_Crules_use_cnt} // shift sym: LR1_eog
+ ,{340,(State*)&S2_Crules_use_cnt} // shift sym: rule_def
+ ,{571,(State*)&S5_Crules_use_cnt} // shift sym: Rrule
+ ,{572,(State*)&S6_Crules_use_cnt} // shift sym: Rrule_def
+ }// end of shift table
+};
+yacco2::State S3_Crules_use_cnt = //State's vectored into symbol: "Rrules"
+{3
+,0,0,0,0,(Shift_tbl*)&S3st_Crules_use_cnt,0,0,0,0};
+struct S4rtd_Crules_use_cnt{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Crules_use_cnt S4rt_Crules_use_cnt = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Crules_use_cnt,Crules_use_cnt::rhs1_Rrules_use_cnt_}
+ }// end of reduce table
+};
+yacco2::State S4_Crules_use_cnt = //State's vectored into symbol: "eog"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Crules_use_cnt,0,0,0};
+struct S5rtd_Crules_use_cnt{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Crules_use_cnt S5rt_Crules_use_cnt = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Crules_use_cnt,Crules_use_cnt::rhs2_Rrules_}
+ }// end of reduce table
+};
+yacco2::State S5_Crules_use_cnt = //State's vectored into symbol: "Rrule"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Crules_use_cnt,0,0,0};
+struct S6std_Crules_use_cnt{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S6std_Crules_use_cnt S6st_Crules_use_cnt = {
+ 4
+ ,
+ {// start of table
+ {342,(State*)&S7_Crules_use_cnt} // shift sym: T_subrule_def
+ ,{573,(State*)&S8_Crules_use_cnt} // shift sym: Rsubrules
+ ,{574,(State*)&S15_Crules_use_cnt} // shift sym: Rsubrule
+ ,{575,(State*)&S14_Crules_use_cnt} // shift sym: Rsubrule_def
+ }// end of shift table
+};
+yacco2::State S6_Crules_use_cnt = //State's vectored into symbol: "Rrule_def"
+{6
+,0,0,0,0,(Shift_tbl*)&S6st_Crules_use_cnt,0,0,0,0};
+struct S7rtd_Crules_use_cnt{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Crules_use_cnt S7rt_Crules_use_cnt = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Crules_use_cnt,Crules_use_cnt::rhs1_Rsubrule_def_}
+ }// end of reduce table
+};
+yacco2::State S7_Crules_use_cnt = //State's vectored into symbol: "subrule-def"
+{7
+,0,0,0,0,0,(Reduce_tbl*)&S7rt_Crules_use_cnt,0,0,0};
+struct S8std_Crules_use_cnt{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S8std_Crules_use_cnt S8st_Crules_use_cnt = {
+ 3
+ ,
+ {// start of table
+ {342,(State*)&S7_Crules_use_cnt} // shift sym: T_subrule_def
+ ,{574,(State*)&S9_Crules_use_cnt} // shift sym: Rsubrule
+ ,{575,(State*)&S14_Crules_use_cnt} // shift sym: Rsubrule_def
+ }// end of shift table
+};
+struct S8rtd_Crules_use_cnt{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S8rtd_Crules_use_cnt S8rt_Crules_use_cnt = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Crules_use_cnt,Crules_use_cnt::rhs1_Rrule_}
+ }// end of reduce table
+};
+yacco2::State S8_Crules_use_cnt = //State's vectored into symbol: "Rsubrules"
+{8
+,0,0,0,0,(Shift_tbl*)&S8st_Crules_use_cnt,(Reduce_tbl*)&S8rt_Crules_use_cnt,0,0,0};
+struct S9std_Crules_use_cnt{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S9std_Crules_use_cnt S9st_Crules_use_cnt = {
+ 3
+ ,
+ {// start of table
+ {347,(State*)&S10_Crules_use_cnt} // shift sym: refered_rule
+ ,{576,(State*)&S11_Crules_use_cnt} // shift sym: Rsubrule_s_used_rules_epi
+ ,{577,(State*)&S12_Crules_use_cnt} // shift sym: Rsubrule_s_used_rules
+ }// end of shift table
+};
+struct S9rtd_Crules_use_cnt{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Crules_use_cnt S9rt_Crules_use_cnt = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crules_use_cnt,Crules_use_cnt::rhs1_Rsubrule_s_used_rules_epi_}
+ }// end of reduce table
+};
+yacco2::State S9_Crules_use_cnt = //State's vectored into symbol: "Rsubrule"
+{9
+,0,0,0,0,(Shift_tbl*)&S9st_Crules_use_cnt,(Reduce_tbl*)&S9rt_Crules_use_cnt,0,0,0};
+struct S10rtd_Crules_use_cnt{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S10rtd_Crules_use_cnt S10rt_Crules_use_cnt = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Crules_use_cnt,Crules_use_cnt::rhs1_Rsubrule_s_used_rules_}
+ }// end of reduce table
+};
+yacco2::State S10_Crules_use_cnt = //State's vectored into symbol: "refered-rule"
+{10
+,0,0,0,0,0,(Reduce_tbl*)&S10rt_Crules_use_cnt,0,0,0};
+struct S11rtd_Crules_use_cnt{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Crules_use_cnt S11rt_Crules_use_cnt = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crules_use_cnt,Crules_use_cnt::rhs2_Rsubrules_}
+ }// end of reduce table
+};
+yacco2::State S11_Crules_use_cnt = //State's vectored into symbol: "Rsubrule_s_used_rules_epi"
+{11
+,0,0,0,0,0,(Reduce_tbl*)&S11rt_Crules_use_cnt,0,0,0};
+struct S12std_Crules_use_cnt{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S12std_Crules_use_cnt S12st_Crules_use_cnt = {
+ 1
+ ,
+ {// start of table
+ {347,(State*)&S13_Crules_use_cnt} // shift sym: refered_rule
+ }// end of shift table
+};
+struct S12rtd_Crules_use_cnt{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S12rtd_Crules_use_cnt S12rt_Crules_use_cnt = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crules_use_cnt,Crules_use_cnt::rhs2_Rsubrule_s_used_rules_epi_}
+ }// end of reduce table
+};
+yacco2::State S12_Crules_use_cnt = //State's vectored into symbol: "Rsubrule_s_used_rules"
+{12
+,0,0,0,0,(Shift_tbl*)&S12st_Crules_use_cnt,(Reduce_tbl*)&S12rt_Crules_use_cnt,0,0,0};
+struct S13rtd_Crules_use_cnt{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S13rtd_Crules_use_cnt S13rt_Crules_use_cnt = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Crules_use_cnt,Crules_use_cnt::rhs2_Rsubrule_s_used_rules_}
+ }// end of reduce table
+};
+yacco2::State S13_Crules_use_cnt = //State's vectored into symbol: "refered-rule"
+{13
+,0,0,0,0,0,(Reduce_tbl*)&S13rt_Crules_use_cnt,0,0,0};
+struct S14rtd_Crules_use_cnt{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S14rtd_Crules_use_cnt S14rt_Crules_use_cnt = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Crules_use_cnt,Crules_use_cnt::rhs1_Rsubrule_}
+ }// end of reduce table
+};
+yacco2::State S14_Crules_use_cnt = //State's vectored into symbol: "Rsubrule_def"
+{14
+,0,0,0,0,0,(Reduce_tbl*)&S14rt_Crules_use_cnt,0,0,0};
+struct S15std_Crules_use_cnt{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S15std_Crules_use_cnt S15st_Crules_use_cnt = {
+ 3
+ ,
+ {// start of table
+ {347,(State*)&S10_Crules_use_cnt} // shift sym: refered_rule
+ ,{576,(State*)&S16_Crules_use_cnt} // shift sym: Rsubrule_s_used_rules_epi
+ ,{577,(State*)&S12_Crules_use_cnt} // shift sym: Rsubrule_s_used_rules
+ }// end of shift table
+};
+struct S15rtd_Crules_use_cnt{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S15rtd_Crules_use_cnt S15rt_Crules_use_cnt = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crules_use_cnt,Crules_use_cnt::rhs1_Rsubrule_s_used_rules_epi_}
+ }// end of reduce table
+};
+yacco2::State S15_Crules_use_cnt = //State's vectored into symbol: "Rsubrule"
+{15
+,0,0,0,0,(Shift_tbl*)&S15st_Crules_use_cnt,(Reduce_tbl*)&S15rt_Crules_use_cnt,0,0,0};
+struct S16rtd_Crules_use_cnt{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S16rtd_Crules_use_cnt S16rt_Crules_use_cnt = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Crules_use_cnt,Crules_use_cnt::rhs1_Rsubrules_}
+ }// end of reduce table
+};
+yacco2::State S16_Crules_use_cnt = //State's vectored into symbol: "Rsubrule_s_used_rules_epi"
+{16
+,0,0,0,0,0,(Reduce_tbl*)&S16rt_Crules_use_cnt,0,0,0};
+struct S17rtd_Crules_use_cnt{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S17rtd_Crules_use_cnt S17rt_Crules_use_cnt = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Crules_use_cnt,Crules_use_cnt::rhs1_Rrules_}
+ }// end of reduce table
+};
+yacco2::State S17_Crules_use_cnt = //State's vectored into symbol: "Rrule"
+{17
+,0,0,0,0,0,(Reduce_tbl*)&S17rt_Crules_use_cnt,0,0,0};
diff --git a/web/yacco2/compiler/grammars/sp_2.cpp b/web/yacco2/compiler/grammars/sp_2.cpp
new file mode 100644
index 0000000000..879774b321
--- /dev/null
+++ b/web/yacco2/compiler/grammars/sp_2.cpp
@@ -0,0 +1,75 @@
+/*
+ File: sp_2.cpp
+ Date and Time: Fri Jan 30 18:50:21 2015
+*/
+#include "sp_2.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_sp_2;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 4;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+}
+ Csp_2::
+ Csp_2()
+ :yacco2::CAbs_fsm
+ ("sp_2.lex"
+ ,"1.0"
+ ,"7 mar 2014"
+ ,false
+ ,"Test out Spector LR(1) resolution page 61."
+ ,"Fri Jan 30 18:50:21 2015 "
+ ,S1_Csp_2){
+
+ }
+
+Csp_2::~Csp_2(){
+
+ for(int x = 0;x < 4;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Csp_2::failed(){
+ return false;
+ }
+ void Csp_2::op(){
+}
+int Csp_2::rhs_to_rules_mapping_[8] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,1 // subrule 4 for rule 2
+ ,1 // subrule 5 for rule 2
+ ,2 // subrule 6 for rule 3
+ ,3 // subrule 7 for rule 4
+};
+Rg::Rg(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rg",0,Csp_2::R_Rg_,P,false,false){
+}
+
+Rs::Rs(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rs",0,Csp_2::R_Rs_,P,false,false){
+}
+
+Ra::Ra(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Ra",0,Csp_2::R_Ra_,P,false,false){
+}
+
+Rb::Rb(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rb",0,Csp_2::R_Rb_,P,false,false){
+}
+
diff --git a/web/yacco2/compiler/grammars/sp_2.fsc b/web/yacco2/compiler/grammars/sp_2.fsc
new file mode 100644
index 0000000000..f13234284e
--- /dev/null
+++ b/web/yacco2/compiler/grammars/sp_2.fsc
@@ -0,0 +1,21 @@
+/*
+ File: sp_2.fsc
+ Date and Time: Fri Jan 30 18:50:21 2015
+*/
+transitive n
+grammar-name "sp_2"
+name-space "NS_sp_2"
+thread-name "Csp_2"
+monolithic y
+file-name "sp_2.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 2
+ raw_a
+ raw_b
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"Test out Spector LR(1) resolution page 61."
diff --git a/web/yacco2/compiler/grammars/sp_2.h b/web/yacco2/compiler/grammars/sp_2.h
new file mode 100644
index 0000000000..651c2d5ec7
--- /dev/null
+++ b/web/yacco2/compiler/grammars/sp_2.h
@@ -0,0 +1,76 @@
+/*
+ File: sp_2.h
+ Date and Time: Fri Jan 30 18:50:21 2015
+*/
+#ifndef __sp_2_h__
+#define __sp_2_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+// monolithic grammar: no thread
+extern yacco2::State S1_Csp_2;
+namespace NS_sp_2 {
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[4];
+};
+class Csp_2: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rg_ = 569//start_of_rule_list + 0
+ ,rhs1_Rg_ = 1
+ ,R_Rs_ = 570//start_of_rule_list + 2
+ ,rhs1_Rs_ = 2
+ ,rhs2_Rs_ = 3
+ ,rhs3_Rs_ = 4
+ ,rhs4_Rs_ = 5
+ ,R_Ra_ = 571//start_of_rule_list + 4
+ ,rhs1_Ra_ = 6
+ ,R_Rb_ = 572//start_of_rule_list + 6
+ ,rhs1_Rb_ = 7
+ };
+ //no of la sets = 4
+ //no of states = 15
+ Csp_2();
+ ~Csp_2();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[8];
+ };
+struct Rg;
+struct Rs;
+struct Ra;
+struct Rb;
+struct Rg:public yacco2::CAbs_lr1_sym {
+ Rg(yacco2::Parser* P);
+ public:
+};
+
+struct Rs:public yacco2::CAbs_lr1_sym {
+ Rs(yacco2::Parser* P);
+ public:
+};
+
+struct Ra:public yacco2::CAbs_lr1_sym {
+ Ra(yacco2::Parser* P);
+ public:
+};
+
+struct Rb:public yacco2::CAbs_lr1_sym {
+ Rb(yacco2::Parser* P);
+ public:
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/sp_2sym.cpp b/web/yacco2/compiler/grammars/sp_2sym.cpp
new file mode 100644
index 0000000000..aab0d0d17b
--- /dev/null
+++ b/web/yacco2/compiler/grammars/sp_2sym.cpp
@@ -0,0 +1,125 @@
+/*
+ File: sp_2sym.cpp
+ Date and Time: Fri Jan 30 18:50:21 2015
+*/
+#include "sp_2.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_sp_2;// grammar's ns
+// first set terminals
+// monolithic grammar --- no thread
+void
+Csp_2::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rg_:{
+ Rg* sym;
+ if(re->rule_ == 0){
+ sym = new Rg(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rg*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rs_:{
+ Rs* sym;
+ if(re->rule_ == 0){
+ sym = new Rs(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rs*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ return;}
+ case rhs2_Rs_:{
+ Rs* sym;
+ if(re->rule_ == 0){
+ sym = new Rs(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rs*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ return;}
+ case rhs3_Rs_:{
+ Rs* sym;
+ if(re->rule_ == 0){
+ sym = new Rs(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rs*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ return;}
+ case rhs4_Rs_:{
+ Rs* sym;
+ if(re->rule_ == 0){
+ sym = new Rs(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rs*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ return;}
+ case rhs1_Ra_:{
+ Ra* sym;
+ if(re->rule_ == 0){
+ sym = new Ra(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ra*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rb_:{
+ Rb* sym;
+ if(re->rule_ == 0){
+ sym = new Rb(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rb*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/sp_2tbl.cpp b/web/yacco2/compiler/grammars/sp_2tbl.cpp
new file mode 100644
index 0000000000..b9ea49cd1c
--- /dev/null
+++ b/web/yacco2/compiler/grammars/sp_2tbl.cpp
@@ -0,0 +1,267 @@
+/*
+ File: sp_2tbl.cpp
+ Date and Time: Fri Jan 30 18:50:21 2015
+*/
+#include "sp_2.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_sp_2;// grammar's ns
+// first set terminals
+// LR1_eog
+yacco2::UCHAR LA1_Csp_2[] ={
+1
+,0,2
+};
+// LR1_eolr
+yacco2::UCHAR LA2_Csp_2[] ={
+1
+,0,4
+};
+// raw_c
+yacco2::UCHAR LA3_Csp_2[] ={
+1
+,13,8
+};
+// raw_d
+yacco2::UCHAR LA4_Csp_2[] ={
+1
+,13,16
+};
+extern yacco2::State S1_Csp_2;
+extern yacco2::State S2_Csp_2;
+extern yacco2::State S3_Csp_2;
+extern yacco2::State S4_Csp_2;
+extern yacco2::State S5_Csp_2;
+extern yacco2::State S6_Csp_2;
+extern yacco2::State S7_Csp_2;
+extern yacco2::State S8_Csp_2;
+extern yacco2::State S9_Csp_2;
+extern yacco2::State S10_Csp_2;
+extern yacco2::State S11_Csp_2;
+extern yacco2::State S12_Csp_2;
+extern yacco2::State S13_Csp_2;
+extern yacco2::State S14_Csp_2;
+extern yacco2::State S15_Csp_2;
+struct S1std_Csp_2{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S1std_Csp_2 S1st_Csp_2 = {
+ 4
+ ,
+ {// start of table
+ {105,(State*)&S2_Csp_2} // shift sym: raw_a
+ ,{106,(State*)&S7_Csp_2} // shift sym: raw_b
+ ,{569,(State*)&S1_Csp_2} // accept sym: Rg
+ ,{570,(State*)&S12_Csp_2} // shift sym: Rs
+ }// end of shift table
+};
+yacco2::State S1_Csp_2 = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Csp_2,0,0,0,0};
+struct S2std_Csp_2{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S2std_Csp_2 S2st_Csp_2 = {
+ 3
+ ,
+ {// start of table
+ {110,(State*)&S14_Csp_2} // shift sym: raw_f
+ ,{571,(State*)&S3_Csp_2} // shift sym: Ra
+ ,{572,(State*)&S5_Csp_2} // shift sym: Rb
+ }// end of shift table
+};
+yacco2::State S2_Csp_2 = //State's vectored into symbol: "a"
+{2
+,0,0,0,0,(Shift_tbl*)&S2st_Csp_2,0,0,0,0};
+struct S3std_Csp_2{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S3std_Csp_2 S3st_Csp_2 = {
+ 1
+ ,
+ {// start of table
+ {107,(State*)&S4_Csp_2} // shift sym: raw_c
+ }// end of shift table
+};
+yacco2::State S3_Csp_2 = //State's vectored into symbol: "Ra"
+{3
+,0,0,0,0,(Shift_tbl*)&S3st_Csp_2,0,0,0,0};
+struct S4rtd_Csp_2{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Csp_2 S4rt_Csp_2 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Csp_2,Csp_2::rhs1_Rs_}
+ }// end of reduce table
+};
+yacco2::State S4_Csp_2 = //State's vectored into symbol: "c"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Csp_2,0,0,0};
+struct S5std_Csp_2{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S5std_Csp_2 S5st_Csp_2 = {
+ 1
+ ,
+ {// start of table
+ {108,(State*)&S6_Csp_2} // shift sym: raw_d
+ }// end of shift table
+};
+yacco2::State S5_Csp_2 = //State's vectored into symbol: "Rb"
+{5
+,0,0,0,0,(Shift_tbl*)&S5st_Csp_2,0,0,0,0};
+struct S6rtd_Csp_2{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Csp_2 S6rt_Csp_2 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Csp_2,Csp_2::rhs2_Rs_}
+ }// end of reduce table
+};
+yacco2::State S6_Csp_2 = //State's vectored into symbol: "d"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Csp_2,0,0,0};
+struct S7std_Csp_2{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S7std_Csp_2 S7st_Csp_2 = {
+ 3
+ ,
+ {// start of table
+ {110,(State*)&S15_Csp_2} // shift sym: raw_f
+ ,{571,(State*)&S8_Csp_2} // shift sym: Ra
+ ,{572,(State*)&S10_Csp_2} // shift sym: Rb
+ }// end of shift table
+};
+yacco2::State S7_Csp_2 = //State's vectored into symbol: "b"
+{7
+,0,0,0,0,(Shift_tbl*)&S7st_Csp_2,0,0,0,0};
+struct S8std_Csp_2{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S8std_Csp_2 S8st_Csp_2 = {
+ 1
+ ,
+ {// start of table
+ {108,(State*)&S9_Csp_2} // shift sym: raw_d
+ }// end of shift table
+};
+yacco2::State S8_Csp_2 = //State's vectored into symbol: "Ra"
+{8
+,0,0,0,0,(Shift_tbl*)&S8st_Csp_2,0,0,0,0};
+struct S9rtd_Csp_2{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Csp_2 S9rt_Csp_2 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Csp_2,Csp_2::rhs3_Rs_}
+ }// end of reduce table
+};
+yacco2::State S9_Csp_2 = //State's vectored into symbol: "d"
+{9
+,0,0,0,0,0,(Reduce_tbl*)&S9rt_Csp_2,0,0,0};
+struct S10std_Csp_2{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S10std_Csp_2 S10st_Csp_2 = {
+ 1
+ ,
+ {// start of table
+ {107,(State*)&S11_Csp_2} // shift sym: raw_c
+ }// end of shift table
+};
+yacco2::State S10_Csp_2 = //State's vectored into symbol: "Rb"
+{10
+,0,0,0,0,(Shift_tbl*)&S10st_Csp_2,0,0,0,0};
+struct S11rtd_Csp_2{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Csp_2 S11rt_Csp_2 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Csp_2,Csp_2::rhs4_Rs_}
+ }// end of reduce table
+};
+yacco2::State S11_Csp_2 = //State's vectored into symbol: "c"
+{11
+,0,0,0,0,0,(Reduce_tbl*)&S11rt_Csp_2,0,0,0};
+struct S12std_Csp_2{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S12std_Csp_2 S12st_Csp_2 = {
+ 1
+ ,
+ {// start of table
+ {1,(State*)&S13_Csp_2} // shift sym: LR1_eog
+ }// end of shift table
+};
+yacco2::State S12_Csp_2 = //State's vectored into symbol: "Rs"
+{12
+,0,0,0,0,(Shift_tbl*)&S12st_Csp_2,0,0,0,0};
+struct S13rtd_Csp_2{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S13rtd_Csp_2 S13rt_Csp_2 = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csp_2,Csp_2::rhs1_Rg_}
+ }// end of reduce table
+};
+yacco2::State S13_Csp_2 = //State's vectored into symbol: "eog"
+{13
+,0,0,0,0,0,(Reduce_tbl*)&S13rt_Csp_2,0,0,0};
+struct S14rtd_Csp_2{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[2];
+};
+S14rtd_Csp_2 S14rt_Csp_2 = {
+ 2
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Csp_2,Csp_2::rhs1_Ra_}
+ ,{(Set_tbl*)&LA4_Csp_2,Csp_2::rhs1_Rb_}
+ }// end of reduce table
+};
+yacco2::State S14_Csp_2 = //State's vectored into symbol: "f"
+{14
+,0,0,0,0,0,(Reduce_tbl*)&S14rt_Csp_2,0,0,0};
+struct S15rtd_Csp_2{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[2];
+};
+S15rtd_Csp_2 S15rt_Csp_2 = {
+ 2
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Csp_2,Csp_2::rhs1_Ra_}
+ ,{(Set_tbl*)&LA3_Csp_2,Csp_2::rhs1_Rb_}
+ }// end of reduce table
+};
+yacco2::State S15_Csp_2 = //State's vectored into symbol: "f"
+{15
+,0,0,0,0,0,(Reduce_tbl*)&S15rt_Csp_2,0,0,0};
diff --git a/web/yacco2/compiler/grammars/subrule_def.cpp b/web/yacco2/compiler/grammars/subrule_def.cpp
new file mode 100644
index 0000000000..3a5b537604
--- /dev/null
+++ b/web/yacco2/compiler/grammars/subrule_def.cpp
@@ -0,0 +1,1486 @@
+/*
+ File: subrule_def.cpp
+ Date and Time: Fri Jan 30 18:55:24 2015
+*/
+#include "subrule_def.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_subrule_def;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 36;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[4] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[5] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[6] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[7] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[8] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[9] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[10] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[11] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[12] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[13] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[14] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[15] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[16] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[17] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[18] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[19] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[20] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[21] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[22] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[23] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[24] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[25] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[26] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[27] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[28] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[29] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[30] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[31] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[32] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[33] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[34] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[35] = new Per_rule_s_reuse_table();
+}
+ Csubrule_def::
+ Csubrule_def()
+ :yacco2::CAbs_fsm
+ ("subrule_def.lex"
+ ,"1.0"
+ ,"24 mar 2004"
+ ,true
+ ,"Parse a subrule: into the valley of sin..."
+ ,"Fri Jan 30 18:55:24 2015 "
+ ,S1_Csubrule_def){
+
+ subrule_def_ = 0;
+
+ }
+
+Csubrule_def::~Csubrule_def(){
+
+ for(int x = 0;x < 36;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Csubrule_def::failed(){
+ return false;
+ }
+ void Csubrule_def::op(){
+ if(subrule_def_ != 0){
+ delete subrule_def_;
+ subrule_def_ = 0;
+ }
+ subrule_def_ = new T_subrule_def;
+ subrule_def_->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+
+}
+int Csubrule_def::rhs_to_rules_mapping_[78] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,2 // subrule 3 for rule 3
+ ,3 // subrule 4 for rule 4
+ ,3 // subrule 5 for rule 4
+ ,3 // subrule 6 for rule 4
+ ,3 // subrule 7 for rule 4
+ ,3 // subrule 8 for rule 4
+ ,4 // subrule 9 for rule 5
+ ,5 // subrule 10 for rule 6
+ ,6 // subrule 11 for rule 7
+ ,6 // subrule 12 for rule 7
+ ,6 // subrule 13 for rule 7
+ ,6 // subrule 14 for rule 7
+ ,7 // subrule 15 for rule 8
+ ,7 // subrule 16 for rule 8
+ ,8 // subrule 17 for rule 9
+ ,9 // subrule 18 for rule 10
+ ,9 // subrule 19 for rule 10
+ ,9 // subrule 20 for rule 10
+ ,10 // subrule 21 for rule 11
+ ,10 // subrule 22 for rule 11
+ ,10 // subrule 23 for rule 11
+ ,11 // subrule 24 for rule 12
+ ,11 // subrule 25 for rule 12
+ ,11 // subrule 26 for rule 12
+ ,12 // subrule 27 for rule 13
+ ,13 // subrule 28 for rule 14
+ ,14 // subrule 29 for rule 15
+ ,14 // subrule 30 for rule 15
+ ,15 // subrule 31 for rule 16
+ ,15 // subrule 32 for rule 16
+ ,16 // subrule 33 for rule 17
+ ,16 // subrule 34 for rule 17
+ ,17 // subrule 35 for rule 18
+ ,17 // subrule 36 for rule 18
+ ,17 // subrule 37 for rule 18
+ ,18 // subrule 38 for rule 19
+ ,18 // subrule 39 for rule 19
+ ,18 // subrule 40 for rule 19
+ ,19 // subrule 41 for rule 20
+ ,19 // subrule 42 for rule 20
+ ,19 // subrule 43 for rule 20
+ ,20 // subrule 44 for rule 21
+ ,20 // subrule 45 for rule 21
+ ,21 // subrule 46 for rule 22
+ ,21 // subrule 47 for rule 22
+ ,22 // subrule 48 for rule 23
+ ,23 // subrule 49 for rule 24
+ ,23 // subrule 50 for rule 24
+ ,24 // subrule 51 for rule 25
+ ,25 // subrule 52 for rule 26
+ ,25 // subrule 53 for rule 26
+ ,25 // subrule 54 for rule 26
+ ,26 // subrule 55 for rule 27
+ ,26 // subrule 56 for rule 27
+ ,27 // subrule 57 for rule 28
+ ,27 // subrule 58 for rule 28
+ ,28 // subrule 59 for rule 29
+ ,28 // subrule 60 for rule 29
+ ,29 // subrule 61 for rule 30
+ ,29 // subrule 62 for rule 30
+ ,30 // subrule 63 for rule 31
+ ,31 // subrule 64 for rule 32
+ ,31 // subrule 65 for rule 32
+ ,32 // subrule 66 for rule 33
+ ,32 // subrule 67 for rule 33
+ ,33 // subrule 68 for rule 34
+ ,33 // subrule 69 for rule 34
+ ,34 // subrule 70 for rule 35
+ ,34 // subrule 71 for rule 35
+ ,34 // subrule 72 for rule 35
+ ,34 // subrule 73 for rule 35
+ ,35 // subrule 74 for rule 36
+ ,35 // subrule 75 for rule 36
+ ,35 // subrule 76 for rule 36
+ ,35 // subrule 77 for rule 36
+};
+
+ void Csubrule_def::
+ add_sdc_to_directive(yacco2::CAbs_lr1_sym* Dir,T_syntax_code* Sdc){
+ using namespace NS_yacco2_T_enum;
+ using namespace NS_yacco2_terminals;
+ yacco2::INT eid = Dir->enumerated_id__;
+ switch (eid){
+ case T_Enum::T_T_op_: {
+ T_op* k = (T_op*)Dir;
+ k->syntax_code(Sdc);
+ break;
+ }
+ default: {
+ CAbs_lr1_sym* sym = new Err_improper_directive;
+ sym->set_rc(*Dir,__FILE__,__LINE__);
+
+ RSVP_FSM(sym);
+ parser__->set_stop_parse(true);
+ }
+ }
+ }
+
+Rsubrule_def::Rsubrule_def(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsubrule_def",0,Csubrule_def::R_Rsubrule_def_,P,false,false){
+}
+
+void Rsubrule_def::sr1(){
+
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ fsm->subrule_def_->bld_its_tree();
+ RSVP(fsm->subrule_def_);
+ fsm->subrule_def_ = 0;
+
+}
+
+Rvector::Rvector(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rvector",0,Csubrule_def::R_Rvector_,P,false,false){
+}
+
+Rcommon_comments::Rcommon_comments(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rcommon_comments",0,Csubrule_def::R_Rcommon_comments_,P,false,false){
+}
+
+yacco2::THR _YACCO2_CALL_TYPE
+NS_subrule_def::AR_Rrhs_expr(yacco2::Parser* Caller_pp){
+ yacco2::KCHARP ar_name = "AR_Rrhs_expr";
+#include "war_begin_code.h"
+
+ using namespace NS_yacco2_T_enum;
+ for(i=1;i<=ie;++i){
+ CAbs_lr1_sym* sym = Caller_pp->pp_accept_queue__[i].accept_token__;
+ if(sym->enumerated_id__ == NS_yacco2_T_enum::T_Enum::T_LR1_parallel_operator_){
+ goto arbitrated_parameter;
+ }
+ if(sym->enumerated_id__ == NS_yacco2_T_enum::T_Enum::T_LR1_fset_transience_operator_){
+ goto arbitrated_parameter;
+ }
+ }
+
+#include "war_end_code.h"
+}
+
+Rrhs_expr::Rrhs_expr(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrhs_expr",0,Csubrule_def::R_Rrhs_expr_,P,false,false){
+}
+
+yacco2::THR _YACCO2_CALL_TYPE
+NS_subrule_def::AR_Rstart_thread(yacco2::Parser* Caller_pp){
+ yacco2::KCHARP ar_name = "AR_Rstart_thread";
+#include "war_begin_code.h"
+
+ using namespace NS_yacco2_T_enum;
+ for(i=1;i<=ie;++i){
+ CAbs_lr1_sym* sym = Caller_pp->pp_accept_queue__[i].accept_token__;
+ if(sym->enumerated_id__ == NS_yacco2_T_enum::T_Enum::T_LR1_parallel_operator_){
+ goto arbitrated_parameter;
+ }
+ if(sym->enumerated_id__ == NS_yacco2_T_enum::T_Enum::T_LR1_fset_transience_operator_){
+ goto arbitrated_parameter;
+ }
+ }
+
+#include "war_end_code.h"
+}
+
+Rstart_thread::Rstart_thread(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rstart_thread",0,Csubrule_def::R_Rstart_thread_,P,false,false){
+}
+
+void Rstart_thread::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ LR1_parallel_operator* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ T_sym_tbl_report_card report_card;
+ using namespace yacco2_stbl;
+ find_sym_in_stbl(report_card,*sf->p2__->id__);
+ if(report_card.action_ == T_sym_tbl_report_card::not_fnd){
+ CAbs_lr1_sym* sym = new Err_subrule_use_undefined_T;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ CAbs_lr1_sym* sym = report_card.tbl_entry_->symbol_;
+ T_in_stbl* t = (T_in_stbl*)sym;
+ refered_T* rT = *(t->xref_t()->rbegin());
+ fsm->subrule_def_->add_elem_to_subrule_vector(rT);
+ rT->its_subrule_def(fsm->subrule_def_);
+
+}
+
+Rbal_thread_expr::Rbal_thread_expr(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rbal_thread_expr",0,Csubrule_def::R_Rbal_thread_expr_,P,false,false){
+}
+
+Rrtned_T::Rrtned_T(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rrtned_T",0,Csubrule_def::R_Rrtned_T_,P,false,false){
+}
+
+void Rrtned_T::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_in_stbl* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ refered_T* reft = *(sf->p2__->xref_t()->rbegin());
+ fsm->subrule_def_->add_elem_to_subrule_vector(reft);
+ reft->its_subrule_def(fsm->subrule_def_);
+
+}
+
+void Rrtned_T::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ CAbs_lr1_sym* sym = new Err_not_T_for_rtned_token_from_th();
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rrtned_T::sr3(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_not_T_for_rtned_token_from_th();
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rrtned_T::sr4(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ LR1_parallel_operator* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ fsm->subrule_def_->add_elem_to_subrule_vector(sf->p2__);
+
+}
+
+Rcalled_thread::Rcalled_thread(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rcalled_thread",0,Csubrule_def::R_Rcalled_thread_,P,false,false){
+}
+
+void Rcalled_thread::sr1(){
+ struct SF{
+ Rns* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Rdbl_colon* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ Rth_name* p3__;
+ State* s3__;
+ bool abort3__;
+ Rule_s_reuse_entry* rule_s_reuse_entry3__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(3);
+
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ T_called_thread_eosubrule* sym =
+ new T_called_thread_eosubrule(sf->p1__->ns_,sf->p3__->thd_nm_);
+ sym->set_rc(*sf->p1__->ns_,__FILE__,__LINE__);
+ sym->its_subrule_def(fsm->subrule_def_);
+ fsm->subrule_def_->add_elem_to_subrule_vector(sym);
+
+}
+
+RNULL::RNULL(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("RNULL",0,Csubrule_def::R_RNULL_,P,false,false){
+}
+
+void RNULL::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_NULL* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ T_null_call_thread_eosubrule* sym = new T_null_call_thread_eosubrule;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ sym->its_subrule_def(fsm->subrule_def_);
+ fsm->subrule_def_->add_elem_to_subrule_vector(sym);
+ sf->p2__->set_auto_delete(true);
+
+}
+
+Rns::Rns(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rns",0,Csubrule_def::R_Rns_,P,false,false){
+}
+
+void Rns::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_identifier* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ns_ = sf->p2__;
+
+}
+
+void Rns::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ CAbs_lr1_sym* sym = new Err_not_id_for_ns_in_th_stmt();
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rns::sr3(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_not_id_for_ns_in_th_stmt();
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rdbl_colon::Rdbl_colon(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rdbl_colon",0,Csubrule_def::R_Rdbl_colon_,P,false,false){
+}
+
+void Rdbl_colon::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_2colon* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+
+}
+
+void Rdbl_colon::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ CAbs_lr1_sym* sym = new Err_not_dbl_colon_in_th_stmt();
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rdbl_colon::sr3(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_not_dbl_colon_in_th_stmt();
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rth_name::Rth_name(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rth_name",0,Csubrule_def::R_Rth_name_,P,false,false){
+}
+
+void Rth_name::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_identifier* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ thd_nm_ = sf->p2__;
+
+}
+
+void Rth_name::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ CAbs_lr1_sym* sym = new Err_not_id_for_th_name_in_th_stmt();
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rth_name::sr3(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_not_id_for_th_name_in_th_stmt();
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+yacco2::THR _YACCO2_CALL_TYPE
+NS_subrule_def::AR_Rcalled_proc_op(yacco2::Parser* Caller_pp){
+ yacco2::KCHARP ar_name = "AR_Rcalled_proc_op";
+#include "war_begin_code.h"
+
+ using namespace NS_yacco2_T_enum;
+ for(i=1;i<=ie;++i){
+ if(Caller_pp->pp_accept_queue__[i].accept_token__->enumerated_id__
+ == NS_yacco2_T_enum::T_Enum::T_LR1_parallel_operator_){
+ goto arbitrated_parameter;
+ }
+ if(Caller_pp->pp_accept_queue__[i].accept_token__->enumerated_id__
+ == NS_yacco2_T_enum::T_Enum::T_LR1_fset_transience_operator_){
+ goto arbitrated_parameter;
+ }
+ }
+
+#include "war_end_code.h"
+}
+
+Rcalled_proc_op::Rcalled_proc_op(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rcalled_proc_op",0,Csubrule_def::R_Rcalled_proc_op_,P,false,false){
+}
+
+void Rcalled_proc_op::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ LR1_fset_transience_operator* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ T_sym_tbl_report_card report_card;
+ using namespace yacco2_stbl;
+ find_sym_in_stbl(report_card,*sf->p2__->id__);
+ if(report_card.action_ == T_sym_tbl_report_card::not_fnd){
+ CAbs_lr1_sym* sym = new Err_subrule_use_undefined_T;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ CAbs_lr1_sym* sym = report_card.tbl_entry_->symbol_;
+ T_in_stbl* t = (T_in_stbl*)sym;
+ refered_T* rT = *(t->xref_t()->rbegin());
+ fsm->subrule_def_->add_elem_to_subrule_vector(rT);
+ rT->its_subrule_def(fsm->subrule_def_);
+
+}
+
+Rbal_called_proc_expr::Rbal_called_proc_expr(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rbal_called_proc_expr",0,Csubrule_def::R_Rbal_called_proc_expr_,P,false,false){
+}
+
+Rcalled_proc_name::Rcalled_proc_name(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rcalled_proc_name",0,Csubrule_def::R_Rcalled_proc_name_,P,false,false){
+}
+
+void Rcalled_proc_name::sr1(){
+ struct SF{
+ Rns* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Rdbl_colon* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ Rth_name* p3__;
+ State* s3__;
+ bool abort3__;
+ Rule_s_reuse_entry* rule_s_reuse_entry3__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(3);
+
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ T_called_thread_eosubrule* sym =
+ new T_called_thread_eosubrule(sf->p1__->ns_,sf->p3__->thd_nm_);
+ sym->set_rc(*sf->p1__->ns_,__FILE__,__LINE__);
+ sym->its_subrule_def(fsm->subrule_def_);
+ fsm->subrule_def_->add_elem_to_subrule_vector(sym);
+
+}
+
+RTorRcomponents_epi::RTorRcomponents_epi(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("RTorRcomponents_epi",0,Csubrule_def::R_RTorRcomponents_epi_,P,false,false){
+}
+
+RTorRcomponents::RTorRcomponents(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("RTorRcomponents",0,Csubrule_def::R_RTorRcomponents_,P,false,false){
+}
+
+RTorRcomponent::RTorRcomponent(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("RTorRcomponent",0,Csubrule_def::R_RTorRcomponent_,P,false,false){
+}
+
+void RTorRcomponent::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ rule_in_stbl* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ refered_rule* refr = *(sf->p2__->xref_r()->rbegin());
+ fsm->subrule_def_->add_elem_to_subrule_vector(refr);
+ refr->its_subrule_def(fsm->subrule_def_);
+
+}
+
+void RTorRcomponent::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_in_stbl* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ refered_T* reft = *(sf->p2__->xref_t()->rbegin());
+ fsm->subrule_def_->add_elem_to_subrule_vector(reft);
+ reft->its_subrule_def(fsm->subrule_def_);
+
+}
+
+void RTorRcomponent::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ CAbs_lr1_sym* sym = new Err_not_T_or_R_in_subrule_expr();
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rchained_dispatcher::Rchained_dispatcher(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rchained_dispatcher",0,Csubrule_def::R_Rchained_dispatcher_,P,false,false){
+}
+
+void Rchained_dispatcher::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ rule_in_stbl* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ refered_rule* refr = *(sf->p2__->xref_r()->rbegin());
+ fsm->subrule_def_->add_elem_to_subrule_vector(refr);
+ refr->its_subrule_def(fsm->subrule_def_);
+
+}
+
+void Rchained_dispatcher::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_in_stbl* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* sym = new Err_not_a_Rule();
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rchained_dispatcher::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ CAbs_lr1_sym* sym = new Err_not_a_Rule();
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rmust_eos::Rmust_eos(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rmust_eos",0,Csubrule_def::R_Rmust_eos_,P,false,false){
+}
+
+void Rmust_eos::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_eosubrule* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ fsm->subrule_def_->add_elem_to_subrule_vector(sf->p2__);
+ sf->p2__->its_subrule_def(fsm->subrule_def_);
+
+}
+
+void Rmust_eos::sr2(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_not_eos_in_subrule_expr();
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rmust_eos::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ CAbs_lr1_sym* sym = new Err_not_eos_in_subrule_expr();
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ sf->p2__->set_auto_delete(true);
+
+}
+
+Rcalled_thd_eos::Rcalled_thd_eos(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rcalled_thd_eos",0,Csubrule_def::R_Rcalled_thd_eos_,P,false,false){
+}
+
+void Rcalled_thd_eos::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_eosubrule* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ fsm->subrule_def_->add_elem_to_subrule_vector(sf->p2__);
+ sf->p2__->its_subrule_def(fsm->subrule_def_);
+
+}
+
+void Rcalled_thd_eos::sr2(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_not_eos_in_subrule_expr();
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rcalled_proc_eos::Rcalled_proc_eos(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rcalled_proc_eos",0,Csubrule_def::R_Rcalled_proc_eos_,P,false,false){
+}
+
+void Rcalled_proc_eos::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_eosubrule* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ fsm->subrule_def_->add_elem_to_subrule_vector(sf->p2__);
+ sf->p2__->its_subrule_def(fsm->subrule_def_);
+
+}
+
+void Rcalled_proc_eos::sr2(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_not_eos_in_subrule_expr();
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rpotential_codeblk::Rpotential_codeblk(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rpotential_codeblk",0,Csubrule_def::R_Rpotential_codeblk_,P,false,false){
+}
+
+Rpotential_directives::Rpotential_directives(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rpotential_directives",0,Csubrule_def::R_Rpotential_directives_,P,false,false){
+}
+
+Rmust_directive_phrase::Rmust_directive_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rmust_directive_phrase",0,Csubrule_def::R_Rmust_directive_phrase_,P,false,false){
+}
+
+void Rmust_directive_phrase::sr1(){
+ struct SF{
+ Rdirective_cweb_k_epi* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Rlint_epi* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ Rmust_directive* p3__;
+ State* s3__;
+ bool abort3__;
+ Rule_s_reuse_entry* rule_s_reuse_entry3__;
+ Rsyntax_code* p4__;
+ State* s4__;
+ bool abort4__;
+ Rule_s_reuse_entry* rule_s_reuse_entry4__;
+ Rlint_epi* p5__;
+ State* s5__;
+ bool abort5__;
+ Rule_s_reuse_entry* rule_s_reuse_entry5__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(5);
+
+ AST* cwebt = sf->p1__->cweb_t_;
+ Rmust_directive* dir = sf->p3__;
+ Rsyntax_code* sdc = sf->p4__;
+ if(cwebt != 0){
+ sdc->syntax_code_->add_cweb_marker(cwebt);
+ }
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ fsm->add_sdc_to_directive(dir->directive_,sdc->syntax_code_);
+
+}
+
+Rmust_directive::Rmust_directive(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rmust_directive",0,Csubrule_def::R_Rmust_directive_,P,false,false){
+}
+
+void Rmust_directive::op(){
+ sstrace_rulesss
+
+ if(directive_ == 0) return;
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* result =
+ fsm->subrule_def_->add_directive_to_subrule(directive_,rule_info__.parser__);
+ if(result == 0) return;// ok added
+ directive_->set_auto_delete(true);//dup: delete when popped from stack
+ RSVP(result);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+void Rmust_directive::ctor(){
+
+ directive_ = 0;
+
+}
+void Rmust_directive::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_op* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = sf->p2__;
+
+}
+
+void Rmust_directive::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = 0;
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_bad_directive;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rmust_directive::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_directive_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rclose_brace::Rclose_brace(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rclose_brace",0,Csubrule_def::R_Rclose_brace_,P,false,false){
+}
+
+void Rclose_brace::sr1(){
+
+ CAbs_lr1_sym* sym = new Err_no_close_brace;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rmaybe_more_directives::Rmaybe_more_directives(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rmaybe_more_directives",0,Csubrule_def::R_Rmaybe_more_directives_,P,false,false){
+}
+
+Rmaybe_directive_phrases::Rmaybe_directive_phrases(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rmaybe_directive_phrases",0,Csubrule_def::R_Rmaybe_directive_phrases_,P,false,false){
+}
+
+Rmaybe_directive_phrase::Rmaybe_directive_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rmaybe_directive_phrase",0,Csubrule_def::R_Rmaybe_directive_phrase_,P,false,false){
+}
+
+void Rmaybe_directive_phrase::sr1(){
+ struct SF{
+ Rdirective_cweb_k_epi* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Rlint_epi* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ Rdirective* p3__;
+ State* s3__;
+ bool abort3__;
+ Rule_s_reuse_entry* rule_s_reuse_entry3__;
+ Rsyntax_code* p4__;
+ State* s4__;
+ bool abort4__;
+ Rule_s_reuse_entry* rule_s_reuse_entry4__;
+ Rlint_epi* p5__;
+ State* s5__;
+ bool abort5__;
+ Rule_s_reuse_entry* rule_s_reuse_entry5__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(5);
+
+ AST* cwebt = sf->p1__->cweb_t_;
+ Rdirective* dir = sf->p3__;
+ Rsyntax_code* sdc = sf->p4__;
+ if(cwebt != 0){
+ sdc->syntax_code_->add_cweb_marker(cwebt);
+ }
+
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ fsm->add_sdc_to_directive(dir->directive_,sdc->syntax_code_);
+
+}
+
+void Rmaybe_directive_phrase::sr2(){
+ struct SF{
+ Rdirective* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Rsyntax_code* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ Rlint_epi* p3__;
+ State* s3__;
+ bool abort3__;
+ Rule_s_reuse_entry* rule_s_reuse_entry3__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(3);
+
+ Rdirective* dir = sf->p1__;
+ Rsyntax_code* sdc = sf->p2__;
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ fsm->add_sdc_to_directive(dir->directive_,sdc->syntax_code_);
+
+}
+
+Rdirective_phrase::Rdirective_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rdirective_phrase",0,Csubrule_def::R_Rdirective_phrase_,P,false,false){
+}
+
+void Rdirective_phrase::sr1(){
+ struct SF{
+ Rlint_epi* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Rdirective_cweb_k_epi* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ Rlint_epi* p3__;
+ State* s3__;
+ bool abort3__;
+ Rule_s_reuse_entry* rule_s_reuse_entry3__;
+ Rdirective* p4__;
+ State* s4__;
+ bool abort4__;
+ Rule_s_reuse_entry* rule_s_reuse_entry4__;
+ Rsyntax_code* p5__;
+ State* s5__;
+ bool abort5__;
+ Rule_s_reuse_entry* rule_s_reuse_entry5__;
+ Rlint_epi* p6__;
+ State* s6__;
+ bool abort6__;
+ Rule_s_reuse_entry* rule_s_reuse_entry6__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(6);
+
+ AST* cwebt = sf->p2__->cweb_t_;
+ Rdirective* dir = sf->p4__;
+ Rsyntax_code* sdc = sf->p5__;
+ if(cwebt != 0){
+ sdc->syntax_code_->add_cweb_marker(cwebt);
+ }
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ fsm->add_sdc_to_directive(dir->directive_,sdc->syntax_code_);
+
+}
+
+Rdirective::Rdirective(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rdirective",0,Csubrule_def::R_Rdirective_,P,false,false){
+}
+
+void Rdirective::op(){
+ sstrace_rulesss
+
+ if(directive_ == 0) return;
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* result =
+ fsm->subrule_def_->add_directive_to_subrule(directive_,rule_info__.parser__);
+ if(result == 0) return;// ok added
+ directive_->set_auto_delete(true);//dup: delete when popped from stack
+ RSVP(result);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+void Rdirective::ctor(){
+
+ directive_ = 0;
+
+}
+void Rdirective::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_op* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = sf->p2__;
+
+}
+
+void Rdirective::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = 0;
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_bad_directive;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rsyntax_code::Rsyntax_code(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsyntax_code",0,Csubrule_def::R_Rsyntax_code_,P,false,false){
+}
+
+void Rsyntax_code::ctor(){
+
+ syntax_code_ = 0;
+
+}
+void Rsyntax_code::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_syntax_code* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ syntax_code_ = sf->p2__;
+
+}
+
+void Rsyntax_code::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rlint_epi::Rlint_epi(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlint_epi",0,Csubrule_def::R_Rlint_epi_,P,false,false){
+}
+
+Rdirective_cweb_k_epi::Rdirective_cweb_k_epi(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rdirective_cweb_k_epi",0,Csubrule_def::R_Rdirective_cweb_k_epi_,P,false,false){
+}
+
+void Rdirective_cweb_k_epi::ctor(){
+
+ cweb_t_ = 0;
+
+}
+void Rdirective_cweb_k_epi::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_cweb_comment* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ T_cweb_comment* k = sf->p2__;
+ AST* cwebk_t_ = new AST(*k);
+ cweb_t_ = new AST();
+ T_cweb_marker* cw = new T_cweb_marker(cweb_t_);
+ cw->set_rc(*k,__FILE__,__LINE__);
+ AST::join_pts(*cweb_t_,*cwebk_t_);
+ AST::set_content(*cweb_t_,*cw);
+
+}
+
+void Rdirective_cweb_k_epi::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Err_comment_overrun* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rdirective_cweb_k_epi::sr4(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_comment* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+
+}
+
+Rcweb_k_epi::Rcweb_k_epi(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rcweb_k_epi",0,Csubrule_def::R_Rcweb_k_epi_,P,false,false){
+}
+
+void Rcweb_k_epi::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_cweb_comment* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ T_cweb_comment* k = sf->p2__;
+ AST* cwebk_t_ = new AST(*k);
+ AST* cweb_t_ = new AST();
+ T_cweb_marker* cw = new T_cweb_marker(cweb_t_);
+ cw->set_rc(*k,__FILE__,__LINE__);
+ AST::join_pts(*cweb_t_,*cwebk_t_);
+
+ AST::set_content(*cweb_t_,*cw);
+ fsm->subrule_def_->add_cweb_marker(cweb_t_);
+
+}
+
+void Rcweb_k_epi::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Err_comment_overrun* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rcweb_k_epi::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_comment* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+
+}
+
diff --git a/web/yacco2/compiler/grammars/subrule_def.fsc b/web/yacco2/compiler/grammars/subrule_def.fsc
new file mode 100644
index 0000000000..de7e8bbdba
--- /dev/null
+++ b/web/yacco2/compiler/grammars/subrule_def.fsc
@@ -0,0 +1,30 @@
+/*
+ File: subrule_def.fsc
+ Date and Time: Fri Jan 30 18:55:24 2015
+*/
+transitive y
+grammar-name "subrule_def"
+name-space "NS_subrule_def"
+thread-name "TH_subrule_def"
+monolithic n
+file-name "subrule_def.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 0
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 1
+ NS_subrule_vector::TH_subrule_vector
+end-list-of-transitive-threads
+list-of-used-threads 10
+ NS_cweb_or_c_k::TH_cweb_or_c_k
+ NS_dbl_colon::TH_dbl_colon
+ NS_identifier::TH_identifier
+ NS_lint_balls::TH_lint_balls
+ NS_o2_sdc::TH_o2_sdc
+ NS_parallel_oper::TH_parallel_oper
+ NS_rhs_bnd::TH_rhs_bnd
+ NS_rhs_component::TH_rhs_component
+ NS_rtn_component::TH_rtn_component
+ NS_subrule_vector::TH_subrule_vector
+end-list-of-used-threads
+fsm-comments
+"Parse a subrule: into the valley of sin..."
diff --git a/web/yacco2/compiler/grammars/subrule_def.h b/web/yacco2/compiler/grammars/subrule_def.h
new file mode 100644
index 0000000000..d08a6bcbe4
--- /dev/null
+++ b/web/yacco2/compiler/grammars/subrule_def.h
@@ -0,0 +1,476 @@
+/*
+ File: subrule_def.h
+ Date and Time: Fri Jan 30 18:55:24 2015
+*/
+#ifndef __subrule_def_h__
+#define __subrule_def_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+using namespace NS_yacco2_terminals;
+#include "lint_balls.h"
+#include "cweb_or_c_k.h"
+
+#include "subrule_vector.h"
+#include "o2_sdc.h"
+#include "identifier.h"
+#include "dbl_colon.h"
+#include "rhs_component.h"
+#include "rtn_component.h"
+#include "rhs_bnd.h"
+#include "parallel_oper.h"
+
+extern yacco2::Thread_entry ITH_subrule_def;
+
+extern yacco2::State S1_Csubrule_def;
+namespace NS_subrule_def {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_subrule_def(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_subrule_def(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[36];
+};
+class Csubrule_def: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rsubrule_def_ = 569//start_of_rule_list + 0
+ ,rhs1_Rsubrule_def_ = 1
+ ,R_Rvector_ = 570//start_of_rule_list + 2
+ ,rhs1_Rvector_ = 2
+ ,R_Rcommon_comments_ = 571//start_of_rule_list + 4
+ ,rhs1_Rcommon_comments_ = 3
+ ,R_Rrhs_expr_ = 572//start_of_rule_list + 6
+ ,rhs1_Rrhs_expr_ = 4
+ ,rhs2_Rrhs_expr_ = 5
+ ,rhs3_Rrhs_expr_ = 6
+ ,rhs4_Rrhs_expr_ = 7
+ ,rhs5_Rrhs_expr_ = 8
+ ,R_Rstart_thread_ = 573//start_of_rule_list + 8
+ ,rhs1_Rstart_thread_ = 9
+ ,R_Rbal_thread_expr_ = 574//start_of_rule_list + 10
+ ,rhs1_Rbal_thread_expr_ = 10
+ ,R_Rrtned_T_ = 575//start_of_rule_list + 12
+ ,rhs1_Rrtned_T_ = 11
+ ,rhs2_Rrtned_T_ = 12
+ ,rhs3_Rrtned_T_ = 13
+ ,rhs4_Rrtned_T_ = 14
+ ,R_Rcalled_thread_ = 576//start_of_rule_list + 14
+ ,rhs1_Rcalled_thread_ = 15
+ ,rhs2_Rcalled_thread_ = 16
+ ,R_RNULL_ = 577//start_of_rule_list + 16
+ ,rhs1_RNULL_ = 17
+ ,R_Rns_ = 578//start_of_rule_list + 18
+ ,rhs1_Rns_ = 18
+ ,rhs2_Rns_ = 19
+ ,rhs3_Rns_ = 20
+ ,R_Rdbl_colon_ = 579//start_of_rule_list + 20
+ ,rhs1_Rdbl_colon_ = 21
+ ,rhs2_Rdbl_colon_ = 22
+ ,rhs3_Rdbl_colon_ = 23
+ ,R_Rth_name_ = 580//start_of_rule_list + 22
+ ,rhs1_Rth_name_ = 24
+ ,rhs2_Rth_name_ = 25
+ ,rhs3_Rth_name_ = 26
+ ,R_Rcalled_proc_op_ = 581//start_of_rule_list + 24
+ ,rhs1_Rcalled_proc_op_ = 27
+ ,R_Rbal_called_proc_expr_ = 582//start_of_rule_list + 26
+ ,rhs1_Rbal_called_proc_expr_ = 28
+ ,R_Rcalled_proc_name_ = 583//start_of_rule_list + 28
+ ,rhs1_Rcalled_proc_name_ = 29
+ ,rhs2_Rcalled_proc_name_ = 30
+ ,R_RTorRcomponents_epi_ = 584//start_of_rule_list + 30
+ ,rhs1_RTorRcomponents_epi_ = 31
+ ,rhs2_RTorRcomponents_epi_ = 32
+ ,R_RTorRcomponents_ = 585//start_of_rule_list + 32
+ ,rhs1_RTorRcomponents_ = 33
+ ,rhs2_RTorRcomponents_ = 34
+ ,R_RTorRcomponent_ = 586//start_of_rule_list + 34
+ ,rhs1_RTorRcomponent_ = 35
+ ,rhs2_RTorRcomponent_ = 36
+ ,rhs3_RTorRcomponent_ = 37
+ ,R_Rchained_dispatcher_ = 587//start_of_rule_list + 36
+ ,rhs1_Rchained_dispatcher_ = 38
+ ,rhs2_Rchained_dispatcher_ = 39
+ ,rhs3_Rchained_dispatcher_ = 40
+ ,R_Rmust_eos_ = 588//start_of_rule_list + 38
+ ,rhs1_Rmust_eos_ = 41
+ ,rhs2_Rmust_eos_ = 42
+ ,rhs3_Rmust_eos_ = 43
+ ,R_Rcalled_thd_eos_ = 589//start_of_rule_list + 40
+ ,rhs1_Rcalled_thd_eos_ = 44
+ ,rhs2_Rcalled_thd_eos_ = 45
+ ,R_Rcalled_proc_eos_ = 590//start_of_rule_list + 42
+ ,rhs1_Rcalled_proc_eos_ = 46
+ ,rhs2_Rcalled_proc_eos_ = 47
+ ,R_Rpotential_codeblk_ = 591//start_of_rule_list + 44
+ ,rhs1_Rpotential_codeblk_ = 48
+ ,R_Rpotential_directives_ = 592//start_of_rule_list + 46
+ ,rhs1_Rpotential_directives_ = 49
+ ,rhs2_Rpotential_directives_ = 50
+ ,R_Rmust_directive_phrase_ = 593//start_of_rule_list + 48
+ ,rhs1_Rmust_directive_phrase_ = 51
+ ,R_Rmust_directive_ = 594//start_of_rule_list + 50
+ ,rhs1_Rmust_directive_ = 52
+ ,rhs2_Rmust_directive_ = 53
+ ,rhs3_Rmust_directive_ = 54
+ ,R_Rclose_brace_ = 595//start_of_rule_list + 52
+ ,rhs1_Rclose_brace_ = 55
+ ,rhs2_Rclose_brace_ = 56
+ ,R_Rmaybe_more_directives_ = 596//start_of_rule_list + 54
+ ,rhs1_Rmaybe_more_directives_ = 57
+ ,rhs2_Rmaybe_more_directives_ = 58
+ ,R_Rmaybe_directive_phrases_ = 597//start_of_rule_list + 56
+ ,rhs1_Rmaybe_directive_phrases_ = 59
+ ,rhs2_Rmaybe_directive_phrases_ = 60
+ ,R_Rmaybe_directive_phrase_ = 598//start_of_rule_list + 58
+ ,rhs1_Rmaybe_directive_phrase_ = 61
+ ,rhs2_Rmaybe_directive_phrase_ = 62
+ ,R_Rdirective_phrase_ = 599//start_of_rule_list + 60
+ ,rhs1_Rdirective_phrase_ = 63
+ ,R_Rdirective_ = 600//start_of_rule_list + 62
+ ,rhs1_Rdirective_ = 64
+ ,rhs2_Rdirective_ = 65
+ ,R_Rsyntax_code_ = 601//start_of_rule_list + 64
+ ,rhs1_Rsyntax_code_ = 66
+ ,rhs2_Rsyntax_code_ = 67
+ ,R_Rlint_epi_ = 602//start_of_rule_list + 66
+ ,rhs1_Rlint_epi_ = 68
+ ,rhs2_Rlint_epi_ = 69
+ ,R_Rdirective_cweb_k_epi_ = 603//start_of_rule_list + 68
+ ,rhs1_Rdirective_cweb_k_epi_ = 70
+ ,rhs2_Rdirective_cweb_k_epi_ = 71
+ ,rhs3_Rdirective_cweb_k_epi_ = 72
+ ,rhs4_Rdirective_cweb_k_epi_ = 73
+ ,R_Rcweb_k_epi_ = 604//start_of_rule_list + 70
+ ,rhs1_Rcweb_k_epi_ = 74
+ ,rhs2_Rcweb_k_epi_ = 75
+ ,rhs3_Rcweb_k_epi_ = 76
+ ,rhs4_Rcweb_k_epi_ = 77
+ };
+ //no of la sets = 9
+ //no of states = 151
+ Csubrule_def();
+ ~Csubrule_def();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[78];
+
+ public:
+ void add_sdc_to_directive(yacco2::CAbs_lr1_sym* Dir,T_syntax_code* Sdc);
+ T_subrule_def* subrule_def_;
+
+ };
+struct Rsubrule_def;
+struct Rvector;
+struct Rcommon_comments;
+struct Rrhs_expr;
+struct Rstart_thread;
+struct Rbal_thread_expr;
+struct Rrtned_T;
+struct Rcalled_thread;
+struct RNULL;
+struct Rns;
+struct Rdbl_colon;
+struct Rth_name;
+struct Rcalled_proc_op;
+struct Rbal_called_proc_expr;
+struct Rcalled_proc_name;
+struct RTorRcomponents_epi;
+struct RTorRcomponents;
+struct RTorRcomponent;
+struct Rchained_dispatcher;
+struct Rmust_eos;
+struct Rcalled_thd_eos;
+struct Rcalled_proc_eos;
+struct Rpotential_codeblk;
+struct Rpotential_directives;
+struct Rmust_directive_phrase;
+struct Rmust_directive;
+struct Rclose_brace;
+struct Rmaybe_more_directives;
+struct Rmaybe_directive_phrases;
+struct Rmaybe_directive_phrase;
+struct Rdirective_phrase;
+struct Rdirective;
+struct Rsyntax_code;
+struct Rlint_epi;
+struct Rdirective_cweb_k_epi;
+struct Rcweb_k_epi;
+struct Rsubrule_def:public yacco2::CAbs_lr1_sym {
+ Rsubrule_def(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rvector:public yacco2::CAbs_lr1_sym {
+ Rvector(yacco2::Parser* P);
+ public:
+};
+
+struct Rcommon_comments:public yacco2::CAbs_lr1_sym {
+ Rcommon_comments(yacco2::Parser* P);
+ public:
+};
+
+yacco2::THR _YACCO2_CALL_TYPE
+AR_Rrhs_expr(yacco2::Parser* Caller_pp);// rule's arbitrator
+struct Rrhs_expr:public yacco2::CAbs_lr1_sym {
+ Rrhs_expr(yacco2::Parser* P);
+ public:
+};
+
+yacco2::THR _YACCO2_CALL_TYPE
+AR_Rstart_thread(yacco2::Parser* Caller_pp);// rule's arbitrator
+struct Rstart_thread:public yacco2::CAbs_lr1_sym {
+ Rstart_thread(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rbal_thread_expr:public yacco2::CAbs_lr1_sym {
+ Rbal_thread_expr(yacco2::Parser* P);
+ public:
+};
+
+struct Rrtned_T:public yacco2::CAbs_lr1_sym {
+ Rrtned_T(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+};
+
+struct Rcalled_thread:public yacco2::CAbs_lr1_sym {
+ Rcalled_thread(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct RNULL:public yacco2::CAbs_lr1_sym {
+ RNULL(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rns:public yacco2::CAbs_lr1_sym {
+ Rns(yacco2::Parser* P);
+
+ public:
+ T_identifier* ns_;
+
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Rdbl_colon:public yacco2::CAbs_lr1_sym {
+ Rdbl_colon(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Rth_name:public yacco2::CAbs_lr1_sym {
+ Rth_name(yacco2::Parser* P);
+
+ public:
+ T_identifier* thd_nm_;
+
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+yacco2::THR _YACCO2_CALL_TYPE
+AR_Rcalled_proc_op(yacco2::Parser* Caller_pp);// rule's arbitrator
+struct Rcalled_proc_op:public yacco2::CAbs_lr1_sym {
+ Rcalled_proc_op(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rbal_called_proc_expr:public yacco2::CAbs_lr1_sym {
+ Rbal_called_proc_expr(yacco2::Parser* P);
+ public:
+};
+
+struct Rcalled_proc_name:public yacco2::CAbs_lr1_sym {
+ Rcalled_proc_name(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct RTorRcomponents_epi:public yacco2::CAbs_lr1_sym {
+ RTorRcomponents_epi(yacco2::Parser* P);
+ public:
+};
+
+struct RTorRcomponents:public yacco2::CAbs_lr1_sym {
+ RTorRcomponents(yacco2::Parser* P);
+ public:
+};
+
+struct RTorRcomponent:public yacco2::CAbs_lr1_sym {
+ RTorRcomponent(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Rchained_dispatcher:public yacco2::CAbs_lr1_sym {
+ Rchained_dispatcher(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Rmust_eos:public yacco2::CAbs_lr1_sym {
+ Rmust_eos(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Rcalled_thd_eos:public yacco2::CAbs_lr1_sym {
+ Rcalled_thd_eos(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rcalled_proc_eos:public yacco2::CAbs_lr1_sym {
+ Rcalled_proc_eos(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rpotential_codeblk:public yacco2::CAbs_lr1_sym {
+ Rpotential_codeblk(yacco2::Parser* P);
+ public:
+};
+
+struct Rpotential_directives:public yacco2::CAbs_lr1_sym {
+ Rpotential_directives(yacco2::Parser* P);
+ public:
+};
+
+struct Rmust_directive_phrase:public yacco2::CAbs_lr1_sym {
+ Rmust_directive_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rmust_directive:public yacco2::CAbs_lr1_sym {
+ Rmust_directive(yacco2::Parser* P);
+ void op();
+ void ctor();
+
+ CAbs_lr1_sym* directive_;
+
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Rclose_brace:public yacco2::CAbs_lr1_sym {
+ Rclose_brace(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rmaybe_more_directives:public yacco2::CAbs_lr1_sym {
+ Rmaybe_more_directives(yacco2::Parser* P);
+ public:
+};
+
+struct Rmaybe_directive_phrases:public yacco2::CAbs_lr1_sym {
+ Rmaybe_directive_phrases(yacco2::Parser* P);
+ public:
+};
+
+struct Rmaybe_directive_phrase:public yacco2::CAbs_lr1_sym {
+ Rmaybe_directive_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rdirective_phrase:public yacco2::CAbs_lr1_sym {
+ Rdirective_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rdirective:public yacco2::CAbs_lr1_sym {
+ Rdirective(yacco2::Parser* P);
+ void op();
+ void ctor();
+
+ CAbs_lr1_sym* directive_;
+
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rsyntax_code:public yacco2::CAbs_lr1_sym {
+ Rsyntax_code(yacco2::Parser* P);
+ void ctor();
+
+ T_syntax_code* syntax_code_;
+
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rlint_epi:public yacco2::CAbs_lr1_sym {
+ Rlint_epi(yacco2::Parser* P);
+ public:
+};
+
+struct Rdirective_cweb_k_epi:public yacco2::CAbs_lr1_sym {
+ Rdirective_cweb_k_epi(yacco2::Parser* P);
+ void ctor();
+
+ AST* cweb_t_;
+
+ public:
+ void sr2();
+ void sr3();
+ void sr4();
+};
+
+struct Rcweb_k_epi:public yacco2::CAbs_lr1_sym {
+ Rcweb_k_epi(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/subrule_def.lex b/web/yacco2/compiler/grammars/subrule_def.lex
new file mode 100644
index 0000000000..40027f2b37
--- /dev/null
+++ b/web/yacco2/compiler/grammars/subrule_def.lex
@@ -0,0 +1,849 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: subrule_def.lex
+new definition for subrule_def.lex
+Dates: 3 Jun 2004
+Purpose: parse subrule's expression
+Output: T_subrule_def
+ assorted errors
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |subrule_def| Thread.\fbreak
+Parse a rule's subrule expression.\fbreak
+Example of a parallel-parser construct to parse:\fbreak
+\listing{"/usr/local/yacco2/diagrams+etc/subrdef.txt"}
+
+@/
+fsm
+(fsm-id "subrule_def.lex"
+,fsm-filename subrule_def
+,fsm-namespace NS_subrule_def
+,fsm-class Csubrule_def{
+ user-prefix-declaration
+using namespace NS_yacco2_terminals;
+#include "lint_balls.h"
+#include "cweb_or_c_k.h"
+
+#include "subrule_vector.h"
+#include "o2_sdc.h"
+#include "identifier.h"
+#include "dbl_colon.h"
+#include "rhs_component.h"
+#include "rtn_component.h"
+#include "rhs_bnd.h"
+#include "parallel_oper.h"
+ ***
+ user-declaration
+ public:
+ void add_sdc_to_directive(yacco2::CAbs_lr1_sym* Dir,T_syntax_code* Sdc);
+ T_subrule_def* subrule_def_;
+ ***
+ user-implementation
+ void Csubrule_def::
+ add_sdc_to_directive(yacco2::CAbs_lr1_sym* Dir,T_syntax_code* Sdc){
+ using namespace NS_yacco2_T_enum;
+ using namespace NS_yacco2_terminals;
+ yacco2::INT eid = Dir->enumerated_id__;
+ switch (eid){
+ case T_Enum::T_T_op_: {
+ T_op* k = (T_op*)Dir;
+ k->syntax_code(Sdc);
+ break;
+ }
+ default: {
+ CAbs_lr1_sym* sym = new Err_improper_directive;
+ sym->set_rc(*Dir,__FILE__,__LINE__);
+
+ RSVP_FSM(sym);
+ parser__->set_stop_parse(true);
+ }
+ }
+ }
+ ***
+ op
+ if(subrule_def_ != 0){
+ delete subrule_def_;
+ subrule_def_ = 0;
+ }
+ subrule_def_ = new T_subrule_def;
+ subrule_def_->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ ***
+ constructor
+ subrule_def_ = 0;
+ ***
+}
+,fsm-version "1.0",fsm-date "24 mar 2004",fsm-debug "true"
+,fsm-comments "Parse a subrule: into the valley of sin...")
+parallel-parser
+(
+ parallel-thread-function
+ TH_subrule_def
+ ***
+ parallel-la-boundary
+ eolr - ||| - |.| - |t|
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rsubrule_def
+/@
+Use of \invisibleshift to make grammar lr(1) due to s/r conflict on \PARshift.
+@/
+(){
+ -> Rvector |.| Rcommon_comments Rrhs_expr {
+ op
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ fsm->subrule_def_->bld_its_tree();
+ RSVP(fsm->subrule_def_);
+ fsm->subrule_def_ = 0;
+ ***
+ }
+}
+
+Rvector (){
+ -> ||| "->" NS_subrule_vector::TH_subrule_vector
+}
+
+Rcommon_comments
+/@
+Basic possible lint balls and a single
+ cweb comment fronting the sub rule definition.
+@/
+(){
+ -> Rlint_epi Rcweb_k_epi Rlint_epi
+}
+
+Rrhs_expr
+/@
+Use of \invisibleshift to make grammar lr(1) due to s/r conflict on \PARshift.
+@/
+(
+//lhs,
+parallel-control-monitor{
+/@
+Due to my wanting to emphasize a specific
+ versus a general grammar expression, there are 2 threads recognizing
+ the same token \paralleloperator{} only at the beginning of subrule
+ so zero out the T-in-stbl from the accept queue as
+ this is more general.
+@/
+ arbitrator-code
+ using namespace NS_yacco2_T_enum;
+ for(i=1;i<=ie;++i){
+ CAbs_lr1_sym* sym = Caller_pp->pp_accept_queue__[i].accept_token__;
+ if(sym->enumerated_id__ == NS_yacco2_T_enum::T_Enum::T_LR1_parallel_operator_){
+ goto arbitrated_parameter;
+ }
+ if(sym->enumerated_id__ == NS_yacco2_T_enum::T_Enum::T_LR1_fset_transience_operator_){
+ goto arbitrated_parameter;
+ }
+ }
+ ***
+ }
+){
+ ->
+/@
+A regular grammar expression containing either \emptyrule{} or an \Alpha{} string
+of symbols drawn from the T or R vocabularies.
+Why the \INVshift{} symbol following |RTorRcomponents_epi|?
+There is a shift / reduce conflict caused by the \PARshift{} so
+let the \emptyrule{} reduce on this meta terminal.
+@/
+RTorRcomponents_epi |.| Rmust_eos Rpotential_codeblk Rlint_epi
+ ->
+/@
+Your standard thread call expression.
+@/
+Rstart_thread Rlint_epi Rbal_thread_expr
+ Rlint_epi |.| Rcalled_thd_eos
+ Rlint_epi Rpotential_codeblk Rlint_epi
+ ->
+/@
+The new back-to-back chained thread call dispatcher expression.
+|Rchained_dispatcher| rule supports nested chained calls.
+The returned output from the \TRAshift{} expression becomes the input
+to the next |Rchained_dispatcher| \TRAshift{} expression.
+@/
+Rstart_thread Rlint_epi Rbal_thread_expr
+ Rlint_epi |.| Rchained_dispatcher
+ Rlint_epi Rcalled_thd_eos
+ Rlint_epi Rpotential_codeblk Rlint_epi
+ ->
+/@
+Your chained procedure call expression.
+It can be used against a previous T element.
+Note: a R element is not allowed as the chained procedure call
+uses the stacked T of the caller parser
+as its First set. So what does |Rxxx| mean to it? nada.
+@/
+Rcalled_proc_op Rlint_epi Rbal_called_proc_expr
+ Rlint_epi |.| Rcalled_proc_eos
+ Rlint_epi Rpotential_codeblk Rlint_epi
+ ->
+/@
+The new back-to-back chained thread call dispatcher expression.
+@/
+Rcalled_proc_op Rlint_epi Rbal_called_proc_expr
+ Rlint_epi |.| Rchained_dispatcher
+ Rlint_epi Rcalled_proc_eos
+ Rlint_epi Rpotential_codeblk Rlint_epi
+}
+
+Rstart_thread (
+//lhs,
+parallel-control-monitor{
+/@
+Due to my wanting to emphasize a specific
+ versus a general grammar expression, there are 2 threads recognizing
+ the same token \paralleloperator{} only at the beginning of subrule
+ so i'll zero out the T-in-stbl from the accept queue to as
+ this is more general.
+@/
+ arbitrator-code
+ using namespace NS_yacco2_T_enum;
+ for(i=1;i<=ie;++i){
+ CAbs_lr1_sym* sym = Caller_pp->pp_accept_queue__[i].accept_token__;
+ if(sym->enumerated_id__ == NS_yacco2_T_enum::T_Enum::T_LR1_parallel_operator_){
+ goto arbitrated_parameter;
+ }
+ if(sym->enumerated_id__ == NS_yacco2_T_enum::T_Enum::T_LR1_fset_transience_operator_){
+ goto arbitrated_parameter;
+ }
+ }
+ ***
+ }
+){
+ -> ||| "|||" NS_parallel_oper::TH_parallel_oper {
+ op
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ T_sym_tbl_report_card report_card;
+ using namespace yacco2_stbl;
+ find_sym_in_stbl(report_card,*sf->p2__->id__);
+ if(report_card.action_ == T_sym_tbl_report_card::not_fnd){
+ CAbs_lr1_sym* sym = new Err_subrule_use_undefined_T;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ CAbs_lr1_sym* sym = report_card.tbl_entry_->symbol_;
+ T_in_stbl* t = (T_in_stbl*)sym;
+ refered_T* rT = *(t->xref_t()->rbegin());
+ fsm->subrule_def_->add_elem_to_subrule_vector(rT);
+ rT->its_subrule_def(fsm->subrule_def_);
+ ***
+ }
+}
+
+Rbal_thread_expr (){
+ -> Rrtned_T Rlint_epi Rcalled_thread
+}
+
+Rrtned_T (){
+ -> ||| "T-in-stbl" NS_rtn_component::TH_rtn_component {
+ op
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ refered_T* reft = *(sf->p2__->xref_t()->rbegin());
+ fsm->subrule_def_->add_elem_to_subrule_vector(reft);
+ reft->its_subrule_def(fsm->subrule_def_);
+ ***
+ }
+ -> ||| |?| NULL {
+ /@
+ Other returned types are errors.
+ @/
+ op
+ CAbs_lr1_sym* sym = new Err_not_T_for_rtned_token_from_th();
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_not_T_for_rtned_token_from_th();
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| ||| NULL {
+ op
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ fsm->subrule_def_->add_elem_to_subrule_vector(sf->p2__);
+ ***
+ }
+}
+
+Rcalled_thread (){
+ -> Rns Rdbl_colon Rth_name {
+ op
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ T_called_thread_eosubrule* sym =
+ new T_called_thread_eosubrule(sf->p1__->ns_,sf->p3__->thd_nm_);
+ sym->set_rc(*sf->p1__->ns_,__FILE__,__LINE__);
+ sym->its_subrule_def(fsm->subrule_def_);
+ fsm->subrule_def_->add_elem_to_subrule_vector(sym);
+ ***
+ }
+ -> RNULL
+}
+
+RNULL (){
+ -> ||| "#NULL" NS_identifier::TH_identifier {
+ op
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ T_null_call_thread_eosubrule* sym = new T_null_call_thread_eosubrule;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ sym->its_subrule_def(fsm->subrule_def_);
+ fsm->subrule_def_->add_elem_to_subrule_vector(sym);
+ sf->p2__->set_auto_delete(true);
+ ***
+ }
+}
+
+Rns (
+lhs {
+ user-declaration
+ public:
+ T_identifier* ns_;
+ ***
+}
+){
+ -> ||| identifier NULL {
+ op
+ ns_ = sf->p2__;
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ CAbs_lr1_sym* sym = new Err_not_id_for_ns_in_th_stmt();
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_not_id_for_ns_in_th_stmt();
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rdbl_colon (){
+ -> ||| "::" NS_dbl_colon::TH_dbl_colon {
+ op
+ sf->p2__->set_auto_delete(true);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ CAbs_lr1_sym* sym = new Err_not_dbl_colon_in_th_stmt();
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_not_dbl_colon_in_th_stmt();
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rth_name (
+lhs {
+ user-declaration
+ public:
+ T_identifier* thd_nm_;
+ ***
+}
+){
+ -> ||| identifier NS_identifier::TH_identifier {
+ op
+ thd_nm_ = sf->p2__;
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ CAbs_lr1_sym* sym = new Err_not_id_for_th_name_in_th_stmt();
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_not_id_for_th_name_in_th_stmt();
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rcalled_proc_op (
+//lhs,
+parallel-control-monitor{
+/@
+Due to my wanting to emphasize a specific
+ versus a general grammar expression, there are 2 threads recognizing
+ the same token \TRAshift{} only at the beginning of subrule
+ so i'll zero out the T-in-stbl from the accept queue so as
+ this is more general.
+@/
+ arbitrator-code
+ using namespace NS_yacco2_T_enum;
+ for(i=1;i<=ie;++i){
+ if(Caller_pp->pp_accept_queue__[i].accept_token__->enumerated_id__
+ == NS_yacco2_T_enum::T_Enum::T_LR1_parallel_operator_){
+ goto arbitrated_parameter;
+ }
+ if(Caller_pp->pp_accept_queue__[i].accept_token__->enumerated_id__
+ == NS_yacco2_T_enum::T_Enum::T_LR1_fset_transience_operator_){
+ goto arbitrated_parameter;
+ }
+ }
+ ***
+ }
+){
+ -> ||| "|t|" NULL {
+ op
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ T_sym_tbl_report_card report_card;
+ using namespace yacco2_stbl;
+ find_sym_in_stbl(report_card,*sf->p2__->id__);
+ if(report_card.action_ == T_sym_tbl_report_card::not_fnd){
+ CAbs_lr1_sym* sym = new Err_subrule_use_undefined_T;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ CAbs_lr1_sym* sym = report_card.tbl_entry_->symbol_;
+ T_in_stbl* t = (T_in_stbl*)sym;
+ refered_T* rT = *(t->xref_t()->rbegin());
+ fsm->subrule_def_->add_elem_to_subrule_vector(rT);
+ rT->its_subrule_def(fsm->subrule_def_);
+ ***
+ }
+}
+
+Rbal_called_proc_expr (){
+ -> Rrtned_T Rlint_epi Rcalled_proc_name
+}
+
+Rcalled_proc_name (){
+ -> Rns Rdbl_colon Rth_name {
+ op
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ T_called_thread_eosubrule* sym =
+ new T_called_thread_eosubrule(sf->p1__->ns_,sf->p3__->thd_nm_);
+ sym->set_rc(*sf->p1__->ns_,__FILE__,__LINE__);
+ sym->its_subrule_def(fsm->subrule_def_);
+ fsm->subrule_def_->add_elem_to_subrule_vector(sym);
+ ***
+ }
+ -> RNULL
+}
+
+
+RTorRcomponents_epi (){
+ ->
+ -> RTorRcomponents
+}
+
+RTorRcomponents (){
+ -> RTorRcomponent Rlint_epi
+ -> RTorRcomponents RTorRcomponent Rlint_epi
+}
+
+RTorRcomponent (){
+ -> ||| "rule-in-stbl" NS_rhs_component::TH_rhs_component {
+ op
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ refered_rule* refr = *(sf->p2__->xref_r()->rbegin());
+ fsm->subrule_def_->add_elem_to_subrule_vector(refr);
+ refr->its_subrule_def(fsm->subrule_def_);
+ ***
+ }
+ -> ||| "T-in-stbl" NULL {
+ op
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ refered_T* reft = *(sf->p2__->xref_t()->rbegin());
+ fsm->subrule_def_->add_elem_to_subrule_vector(reft);
+ reft->its_subrule_def(fsm->subrule_def_);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ CAbs_lr1_sym* sym = new Err_not_T_or_R_in_subrule_expr();
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rchained_dispatcher (){
+ -> ||| "rule-in-stbl" NS_rhs_component::TH_rhs_component {
+ op
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ refered_rule* refr = *(sf->p2__->xref_r()->rbegin());
+ fsm->subrule_def_->add_elem_to_subrule_vector(refr);
+ refr->its_subrule_def(fsm->subrule_def_);
+ ***
+ }
+ -> ||| "T-in-stbl" NULL {
+ op
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* sym = new Err_not_a_Rule();
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ CAbs_lr1_sym* sym = new Err_not_a_Rule();
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rmust_eos (){
+ -> ||| "eosubrule" NS_rhs_bnd::TH_rhs_bnd {
+ op
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ fsm->subrule_def_->add_elem_to_subrule_vector(sf->p2__);
+ sf->p2__->its_subrule_def(fsm->subrule_def_);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_not_eos_in_subrule_expr();
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ CAbs_lr1_sym* sym = new Err_not_eos_in_subrule_expr();
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ sf->p2__->set_auto_delete(true);
+ ***
+ }
+}
+
+Rcalled_thd_eos (){
+ -> ||| "eosubrule" NS_rhs_bnd::TH_rhs_bnd {
+ op
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ fsm->subrule_def_->add_elem_to_subrule_vector(sf->p2__);
+ sf->p2__->its_subrule_def(fsm->subrule_def_);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_not_eos_in_subrule_expr();
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rcalled_proc_eos (){
+ -> ||| "eosubrule" NS_rhs_bnd::TH_rhs_bnd {
+ op
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ fsm->subrule_def_->add_elem_to_subrule_vector(sf->p2__);
+ sf->p2__->its_subrule_def(fsm->subrule_def_);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_not_eos_in_subrule_expr();
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rpotential_codeblk (){
+ -> Rpotential_directives
+}
+
+Rpotential_directives (){
+ -> // no syntax code: end of subsule
+ -> "{" Rlint_epi Rmust_directive_phrase Rmaybe_more_directives Rclose_brace Rlint_epi
+}
+
+Rmust_directive_phrase (){
+ -> Rdirective_cweb_k_epi Rlint_epi Rmust_directive Rsyntax_code Rlint_epi {
+ op
+ AST* cwebt = sf->p1__->cweb_t_;
+ Rmust_directive* dir = sf->p3__;
+ Rsyntax_code* sdc = sf->p4__;
+ if(cwebt != 0){
+ sdc->syntax_code_->add_cweb_marker(cwebt);
+ }
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ fsm->add_sdc_to_directive(dir->directive_,sdc->syntax_code_);
+ ***
+ }
+}
+
+Rmust_directive (
+lhs {
+ user-declaration
+ CAbs_lr1_sym* directive_;
+ ***
+ constructor
+ directive_ = 0;
+ ***
+ op
+ if(directive_ == 0) return;
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* result =
+ fsm->subrule_def_->add_directive_to_subrule(directive_,rule_info__.parser__);
+ if(result == 0) return;// ok added
+ directive_->set_auto_delete(true);//dup: delete when popped from stack
+ RSVP(result);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+){
+ -> ||| "#op" NS_identifier::TH_identifier {
+ op
+ directive_ = sf->p2__;
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ directive_ = 0;
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_bad_directive;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_directive_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rclose_brace (){
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_close_brace;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> "}"
+}
+
+Rmaybe_more_directives (){
+ ->
+ -> Rmaybe_directive_phrases
+}
+
+Rmaybe_directive_phrases (){
+ -> Rmaybe_directive_phrase
+ -> Rmaybe_directive_phrases Rmaybe_directive_phrase
+}
+
+Rmaybe_directive_phrase (){
+ -> Rdirective_cweb_k_epi Rlint_epi Rdirective Rsyntax_code Rlint_epi {
+ op
+ AST* cwebt = sf->p1__->cweb_t_;
+ Rdirective* dir = sf->p3__;
+ Rsyntax_code* sdc = sf->p4__;
+ if(cwebt != 0){
+ sdc->syntax_code_->add_cweb_marker(cwebt);
+ }
+
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ fsm->add_sdc_to_directive(dir->directive_,sdc->syntax_code_);
+ ***
+ }
+ -> Rdirective Rsyntax_code Rlint_epi {
+ op
+ Rdirective* dir = sf->p1__;
+ Rsyntax_code* sdc = sf->p2__;
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ fsm->add_sdc_to_directive(dir->directive_,sdc->syntax_code_);
+ ***
+ }
+}
+
+Rdirective_phrase (){
+ -> Rlint_epi Rdirective_cweb_k_epi Rlint_epi Rdirective Rsyntax_code Rlint_epi {
+ op
+ AST* cwebt = sf->p2__->cweb_t_;
+ Rdirective* dir = sf->p4__;
+ Rsyntax_code* sdc = sf->p5__;
+ if(cwebt != 0){
+ sdc->syntax_code_->add_cweb_marker(cwebt);
+ }
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ fsm->add_sdc_to_directive(dir->directive_,sdc->syntax_code_);
+ ***
+ }
+}
+
+Rdirective (
+lhs {
+ user-declaration
+ CAbs_lr1_sym* directive_;
+ ***
+ constructor
+ directive_ = 0;
+ ***
+ op
+ if(directive_ == 0) return;
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* result =
+ fsm->subrule_def_->add_directive_to_subrule(directive_,rule_info__.parser__);
+ if(result == 0) return;// ok added
+ directive_->set_auto_delete(true);//dup: delete when popped from stack
+ RSVP(result);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+){
+ -> ||| "#op" NS_identifier::TH_identifier {
+ op
+ directive_ = sf->p2__;
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ directive_ = 0;
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_bad_directive;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+
+Rsyntax_code (
+lhs {
+ user-declaration
+ T_syntax_code* syntax_code_;
+ ***
+ constructor
+ syntax_code_ = 0;
+ ***
+ }
+){
+ -> ||| "syntax-code" NS_o2_sdc::TH_o2_sdc {
+ op
+ syntax_code_ = sf->p2__;
+ ***
+ }
+ -> ||| |?| NULL { // catcher in the Rye? These are errors
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rlint_epi (){
+ -> ||| "lint" NS_lint_balls::TH_lint_balls
+ -> |.| // needed to stop being not lr1
+}
+
+Rdirective_cweb_k_epi (
+lhs {
+ user-declaration
+ AST* cweb_t_;
+ ***
+ constructor
+ cweb_t_ = 0;
+ ***
+ }
+){
+ ->
+ -> ||| "cweb-comment" NS_cweb_or_c_k::TH_cweb_or_c_k {
+ op
+ T_cweb_comment* k = sf->p2__;
+ AST* cwebk_t_ = new AST(*k);
+ cweb_t_ = new AST();
+ T_cweb_marker* cw = new T_cweb_marker(cweb_t_);
+ cw->set_rc(*k,__FILE__,__LINE__);
+ AST::join_pts(*cweb_t_,*cwebk_t_);
+ AST::set_content(*cweb_t_,*cw);
+ ***
+ }
+ -> ||| "comment-overrun" NULL {
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| "comment" NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ ***
+ }
+}
+
+Rcweb_k_epi (){
+ -> ||| "cweb-comment" NS_cweb_or_c_k::TH_cweb_or_c_k {
+ op
+ Csubrule_def* fsm = (Csubrule_def*)rule_info__.parser__->fsm_tbl__;
+ T_cweb_comment* k = sf->p2__;
+ AST* cwebk_t_ = new AST(*k);
+ AST* cweb_t_ = new AST();
+ T_cweb_marker* cw = new T_cweb_marker(cweb_t_);
+ cw->set_rc(*k,__FILE__,__LINE__);
+ AST::join_pts(*cweb_t_,*cwebk_t_);
+
+ AST::set_content(*cweb_t_,*cw);
+ fsm->subrule_def_->add_cweb_marker(cweb_t_);
+ ***
+ }
+ -> ||| "comment-overrun" NULL {
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| "comment" NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ ***
+ }
+ ->
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/subrule_defsym.cpp b/web/yacco2/compiler/grammars/subrule_defsym.cpp
new file mode 100644
index 0000000000..e5dfcd3fa1
--- /dev/null
+++ b/web/yacco2/compiler/grammars/subrule_defsym.cpp
@@ -0,0 +1,1192 @@
+/*
+ File: subrule_defsym.cpp
+ Date and Time: Fri Jan 30 18:55:24 2015
+*/
+#include "subrule_def.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_subrule_def;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_subrule_def::TH_subrule_def(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_subrule_def;
+ NS_subrule_def::Csubrule_def Csubrule_def_;// parallel-parser's parse table
+#define ssPARSE_TABLE Csubrule_def_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_subrule_def::PROC_TH_subrule_def(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_subrule_def";
+ static bool one_time(false);
+ static NS_subrule_def::Csubrule_def* NS_subrule_def_Csubrule_def_(0);// parallel-parser's fsm table
+ static Parser* NS_subrule_def_Csubrule_def_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_subrule_def_Csubrule_def_ = new NS_subrule_def::Csubrule_def();// parallel-parser's fsm table
+ NS_subrule_def_Csubrule_def_parser = new Parser(*NS_subrule_def_Csubrule_def_,Caller_pp);
+ }
+ proc_parser = NS_subrule_def_Csubrule_def_parser;
+#include "wproc_pp_core.h"
+}
+void
+Csubrule_def::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rsubrule_def_:{
+ Rsubrule_def* sym;
+ if(re->rule_ == 0){
+ sym = new Rsubrule_def(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsubrule_def*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 4;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rvector_:{
+ Rvector* sym;
+ if(re->rule_ == 0){
+ sym = new Rvector(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rvector*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rcommon_comments_:{
+ Rcommon_comments* sym;
+ if(re->rule_ == 0){
+ sym = new Rcommon_comments(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rcommon_comments*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ return;}
+ case rhs1_Rrhs_expr_:{
+ Rrhs_expr* sym;
+ if(re->rule_ == 0){
+ sym = new Rrhs_expr(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrhs_expr*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ return;}
+ case rhs2_Rrhs_expr_:{
+ Rrhs_expr* sym;
+ if(re->rule_ == 0){
+ sym = new Rrhs_expr(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrhs_expr*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 9;
+
+
+ return;}
+ case rhs3_Rrhs_expr_:{
+ Rrhs_expr* sym;
+ if(re->rule_ == 0){
+ sym = new Rrhs_expr(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrhs_expr*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 11;
+
+
+ return;}
+ case rhs4_Rrhs_expr_:{
+ Rrhs_expr* sym;
+ if(re->rule_ == 0){
+ sym = new Rrhs_expr(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrhs_expr*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 9;
+
+
+ return;}
+ case rhs5_Rrhs_expr_:{
+ Rrhs_expr* sym;
+ if(re->rule_ == 0){
+ sym = new Rrhs_expr(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrhs_expr*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 11;
+
+
+ return;}
+ case rhs1_Rstart_thread_:{
+ Rstart_thread* sym;
+ if(re->rule_ == 0){
+ sym = new Rstart_thread(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rstart_thread*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rbal_thread_expr_:{
+ Rbal_thread_expr* sym;
+ if(re->rule_ == 0){
+ sym = new Rbal_thread_expr(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbal_thread_expr*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ return;}
+ case rhs1_Rrtned_T_:{
+ Rrtned_T* sym;
+ if(re->rule_ == 0){
+ sym = new Rrtned_T(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrtned_T*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rrtned_T_:{
+ Rrtned_T* sym;
+ if(re->rule_ == 0){
+ sym = new Rrtned_T(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrtned_T*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rrtned_T_:{
+ Rrtned_T* sym;
+ if(re->rule_ == 0){
+ sym = new Rrtned_T(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrtned_T*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rrtned_T_:{
+ Rrtned_T* sym;
+ if(re->rule_ == 0){
+ sym = new Rrtned_T(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rrtned_T*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr4();
+ return;}
+ case rhs1_Rcalled_thread_:{
+ Rcalled_thread* sym;
+ if(re->rule_ == 0){
+ sym = new Rcalled_thread(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rcalled_thread*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rcalled_thread_:{
+ Rcalled_thread* sym;
+ if(re->rule_ == 0){
+ sym = new Rcalled_thread(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rcalled_thread*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_RNULL_:{
+ RNULL* sym;
+ if(re->rule_ == 0){
+ sym = new RNULL(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNULL*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rns_:{
+ Rns* sym;
+ if(re->rule_ == 0){
+ sym = new Rns(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rns*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rns_:{
+ Rns* sym;
+ if(re->rule_ == 0){
+ sym = new Rns(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rns*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rns_:{
+ Rns* sym;
+ if(re->rule_ == 0){
+ sym = new Rns(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rns*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rdbl_colon_:{
+ Rdbl_colon* sym;
+ if(re->rule_ == 0){
+ sym = new Rdbl_colon(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdbl_colon*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rdbl_colon_:{
+ Rdbl_colon* sym;
+ if(re->rule_ == 0){
+ sym = new Rdbl_colon(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdbl_colon*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rdbl_colon_:{
+ Rdbl_colon* sym;
+ if(re->rule_ == 0){
+ sym = new Rdbl_colon(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdbl_colon*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rth_name_:{
+ Rth_name* sym;
+ if(re->rule_ == 0){
+ sym = new Rth_name(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rth_name*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rth_name_:{
+ Rth_name* sym;
+ if(re->rule_ == 0){
+ sym = new Rth_name(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rth_name*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rth_name_:{
+ Rth_name* sym;
+ if(re->rule_ == 0){
+ sym = new Rth_name(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rth_name*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rcalled_proc_op_:{
+ Rcalled_proc_op* sym;
+ if(re->rule_ == 0){
+ sym = new Rcalled_proc_op(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rcalled_proc_op*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rbal_called_proc_expr_:{
+ Rbal_called_proc_expr* sym;
+ if(re->rule_ == 0){
+ sym = new Rbal_called_proc_expr(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rbal_called_proc_expr*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ return;}
+ case rhs1_Rcalled_proc_name_:{
+ Rcalled_proc_name* sym;
+ if(re->rule_ == 0){
+ sym = new Rcalled_proc_name(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rcalled_proc_name*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rcalled_proc_name_:{
+ Rcalled_proc_name* sym;
+ if(re->rule_ == 0){
+ sym = new Rcalled_proc_name(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rcalled_proc_name*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_RTorRcomponents_epi_:{
+ RTorRcomponents_epi* sym;
+ if(re->rule_ == 0){
+ sym = new RTorRcomponents_epi(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RTorRcomponents_epi*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs2_RTorRcomponents_epi_:{
+ RTorRcomponents_epi* sym;
+ if(re->rule_ == 0){
+ sym = new RTorRcomponents_epi(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RTorRcomponents_epi*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_RTorRcomponents_:{
+ RTorRcomponents* sym;
+ if(re->rule_ == 0){
+ sym = new RTorRcomponents(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RTorRcomponents*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_RTorRcomponents_:{
+ RTorRcomponents* sym;
+ if(re->rule_ == 0){
+ sym = new RTorRcomponents(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RTorRcomponents*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ return;}
+ case rhs1_RTorRcomponent_:{
+ RTorRcomponent* sym;
+ if(re->rule_ == 0){
+ sym = new RTorRcomponent(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RTorRcomponent*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_RTorRcomponent_:{
+ RTorRcomponent* sym;
+ if(re->rule_ == 0){
+ sym = new RTorRcomponent(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RTorRcomponent*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_RTorRcomponent_:{
+ RTorRcomponent* sym;
+ if(re->rule_ == 0){
+ sym = new RTorRcomponent(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RTorRcomponent*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rchained_dispatcher_:{
+ Rchained_dispatcher* sym;
+ if(re->rule_ == 0){
+ sym = new Rchained_dispatcher(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rchained_dispatcher*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rchained_dispatcher_:{
+ Rchained_dispatcher* sym;
+ if(re->rule_ == 0){
+ sym = new Rchained_dispatcher(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rchained_dispatcher*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rchained_dispatcher_:{
+ Rchained_dispatcher* sym;
+ if(re->rule_ == 0){
+ sym = new Rchained_dispatcher(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rchained_dispatcher*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rmust_eos_:{
+ Rmust_eos* sym;
+ if(re->rule_ == 0){
+ sym = new Rmust_eos(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmust_eos*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rmust_eos_:{
+ Rmust_eos* sym;
+ if(re->rule_ == 0){
+ sym = new Rmust_eos(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmust_eos*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rmust_eos_:{
+ Rmust_eos* sym;
+ if(re->rule_ == 0){
+ sym = new Rmust_eos(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmust_eos*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rcalled_thd_eos_:{
+ Rcalled_thd_eos* sym;
+ if(re->rule_ == 0){
+ sym = new Rcalled_thd_eos(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rcalled_thd_eos*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rcalled_thd_eos_:{
+ Rcalled_thd_eos* sym;
+ if(re->rule_ == 0){
+ sym = new Rcalled_thd_eos(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rcalled_thd_eos*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rcalled_proc_eos_:{
+ Rcalled_proc_eos* sym;
+ if(re->rule_ == 0){
+ sym = new Rcalled_proc_eos(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rcalled_proc_eos*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rcalled_proc_eos_:{
+ Rcalled_proc_eos* sym;
+ if(re->rule_ == 0){
+ sym = new Rcalled_proc_eos(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rcalled_proc_eos*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rpotential_codeblk_:{
+ Rpotential_codeblk* sym;
+ if(re->rule_ == 0){
+ sym = new Rpotential_codeblk(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rpotential_codeblk*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rpotential_directives_:{
+ Rpotential_directives* sym;
+ if(re->rule_ == 0){
+ sym = new Rpotential_directives(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rpotential_directives*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs2_Rpotential_directives_:{
+ Rpotential_directives* sym;
+ if(re->rule_ == 0){
+ sym = new Rpotential_directives(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rpotential_directives*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 6;
+
+
+ return;}
+ case rhs1_Rmust_directive_phrase_:{
+ Rmust_directive_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rmust_directive_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmust_directive_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rmust_directive_:{
+ Rmust_directive* sym;
+ if(re->rule_ == 0){
+ sym = new Rmust_directive(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmust_directive*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ sym->op();
+ return;}
+ case rhs2_Rmust_directive_:{
+ Rmust_directive* sym;
+ if(re->rule_ == 0){
+ sym = new Rmust_directive(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmust_directive*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ sym->op();
+ return;}
+ case rhs3_Rmust_directive_:{
+ Rmust_directive* sym;
+ if(re->rule_ == 0){
+ sym = new Rmust_directive(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmust_directive*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ sym->op();
+ return;}
+ case rhs1_Rclose_brace_:{
+ Rclose_brace* sym;
+ if(re->rule_ == 0){
+ sym = new Rclose_brace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclose_brace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rclose_brace_:{
+ Rclose_brace* sym;
+ if(re->rule_ == 0){
+ sym = new Rclose_brace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclose_brace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rmaybe_more_directives_:{
+ Rmaybe_more_directives* sym;
+ if(re->rule_ == 0){
+ sym = new Rmaybe_more_directives(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmaybe_more_directives*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs2_Rmaybe_more_directives_:{
+ Rmaybe_more_directives* sym;
+ if(re->rule_ == 0){
+ sym = new Rmaybe_more_directives(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmaybe_more_directives*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rmaybe_directive_phrases_:{
+ Rmaybe_directive_phrases* sym;
+ if(re->rule_ == 0){
+ sym = new Rmaybe_directive_phrases(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmaybe_directive_phrases*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rmaybe_directive_phrases_:{
+ Rmaybe_directive_phrases* sym;
+ if(re->rule_ == 0){
+ sym = new Rmaybe_directive_phrases(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmaybe_directive_phrases*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rmaybe_directive_phrase_:{
+ Rmaybe_directive_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rmaybe_directive_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmaybe_directive_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rmaybe_directive_phrase_:{
+ Rmaybe_directive_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rmaybe_directive_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rmaybe_directive_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rdirective_phrase_:{
+ Rdirective_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 6;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ sym->op();
+ return;}
+ case rhs2_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ sym->op();
+ return;}
+ case rhs1_Rsyntax_code_:{
+ Rsyntax_code* sym;
+ if(re->rule_ == 0){
+ sym = new Rsyntax_code(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsyntax_code*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rsyntax_code_:{
+ Rsyntax_code* sym;
+ if(re->rule_ == 0){
+ sym = new Rsyntax_code(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsyntax_code*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rlint_epi_:{
+ Rlint_epi* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint_epi(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint_epi*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rlint_epi_:{
+ Rlint_epi* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint_epi(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint_epi*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rdirective_cweb_k_epi_:{
+ Rdirective_cweb_k_epi* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective_cweb_k_epi(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective_cweb_k_epi*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs2_Rdirective_cweb_k_epi_:{
+ Rdirective_cweb_k_epi* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective_cweb_k_epi(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective_cweb_k_epi*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rdirective_cweb_k_epi_:{
+ Rdirective_cweb_k_epi* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective_cweb_k_epi(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective_cweb_k_epi*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rdirective_cweb_k_epi_:{
+ Rdirective_cweb_k_epi* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective_cweb_k_epi(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective_cweb_k_epi*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr4();
+ return;}
+ case rhs1_Rcweb_k_epi_:{
+ Rcweb_k_epi* sym;
+ if(re->rule_ == 0){
+ sym = new Rcweb_k_epi(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rcweb_k_epi*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rcweb_k_epi_:{
+ Rcweb_k_epi* sym;
+ if(re->rule_ == 0){
+ sym = new Rcweb_k_epi(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rcweb_k_epi*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rcweb_k_epi_:{
+ Rcweb_k_epi* sym;
+ if(re->rule_ == 0){
+ sym = new Rcweb_k_epi(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rcweb_k_epi*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rcweb_k_epi_:{
+ Rcweb_k_epi* sym;
+ if(re->rule_ == 0){
+ sym = new Rcweb_k_epi(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rcweb_k_epi*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/subrule_deftbl.cpp b/web/yacco2/compiler/grammars/subrule_deftbl.cpp
new file mode 100644
index 0000000000..c098b3d3bc
--- /dev/null
+++ b/web/yacco2/compiler/grammars/subrule_deftbl.cpp
@@ -0,0 +1,4291 @@
+/*
+ File: subrule_deftbl.cpp
+ Date and Time: Fri Jan 30 18:55:24 2015
+*/
+#include "subrule_def.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_subrule_def;// grammar's ns
+// first set terminals
+// LR1_invisible_shift_operator
+yacco2::UCHAR LA1_Csubrule_def[] ={
+1
+,0,32
+};
+// LR1_reduce_operator
+// LR1_invisible_shift_operator
+yacco2::UCHAR LA2_Csubrule_def[] ={
+1
+,0,48
+};
+// LR1_eog
+// raw_nul
+// raw_soh
+// raw_stx
+// raw_etx
+// raw_eot
+// raw_enq
+// raw_ack
+// raw_bel
+// raw_bs
+// raw_ht
+// raw_lf
+// raw_vt
+// raw_ff
+// raw_cr
+// raw_so
+// raw_si
+// raw_dle
+// raw_dc1
+// raw_dc2
+// raw_dc3
+// raw_dc4
+// raw_nak
+// raw_syn
+// raw_etb
+// raw_can
+// raw_em
+// raw_sub
+// raw_esc
+// raw_fs
+// raw_gs
+// raw_rs
+// raw_us
+// raw_sp
+// raw_exclam
+// raw_dbl_quote
+// raw_no_sign
+// raw_dollar_sign
+// raw_percent
+// raw_ampersign
+// raw_right_quote
+// raw_open_bracket
+// raw_close_bracket
+// raw_asteric
+// raw_plus
+// raw_comma
+// raw_minus
+// raw_period
+// raw_slash
+// raw_0
+// raw_1
+// raw_2
+// raw_3
+// raw_4
+// raw_5
+// raw_6
+// raw_7
+// raw_8
+// raw_9
+// raw_colon
+// raw_semi_colon
+// raw_less_than
+// raw_eq
+// raw_gt_than
+// raw_question_mark
+// raw_at_sign
+// raw_A
+// raw_B
+// raw_C
+// raw_D
+// raw_E
+// raw_F
+// raw_G
+// raw_H
+// raw_I
+// raw_J
+// raw_K
+// raw_L
+// raw_M
+// raw_N
+// raw_O
+// raw_P
+// raw_Q
+// raw_R
+// raw_S
+// raw_T
+// raw_U
+// raw_V
+// raw_W
+// raw_X
+// raw_Y
+// raw_Z
+// raw_open_sq_bracket
+// raw_back_slash
+// raw_close_sq_bracket
+// raw_up_arrow
+// raw_under_score
+// raw_left_quote
+// raw_a
+// raw_b
+// raw_c
+// raw_d
+// raw_e
+// raw_f
+// raw_g
+// raw_h
+// raw_i
+// raw_j
+// raw_k
+// raw_l
+// raw_m
+// raw_n
+// raw_o
+// raw_p
+// raw_q
+// raw_r
+// raw_s
+// raw_t
+// raw_u
+// raw_v
+// raw_w
+// raw_x
+// raw_y
+// raw_z
+// raw_open_brace
+// raw_vertical_line
+// raw_close_brace
+// raw_tilde
+// raw_del
+// raw_x80
+// raw_x81
+// raw_x82
+// raw_x83
+// raw_x84
+// raw_x85
+// raw_x86
+// raw_x87
+// raw_x88
+// raw_x89
+// raw_x8a
+// raw_x8b
+// raw_x8c
+// raw_x8d
+// raw_x8e
+// raw_x8f
+// raw_x90
+// raw_x91
+// raw_x92
+// raw_x93
+// raw_x94
+// raw_x95
+// raw_x96
+// raw_x97
+// raw_x98
+// raw_x99
+// raw_x9a
+// raw_x9b
+// raw_x9c
+// raw_x9d
+// raw_x9e
+// raw_x9f
+// raw_xa0
+// raw_xa1
+// raw_xa2
+// raw_xa3
+// raw_xa4
+// raw_xa5
+// raw_xa6
+// raw_xa7
+// raw_xa8
+// raw_xa9
+// raw_xaa
+// raw_xab
+// raw_xac
+// raw_xad
+// raw_xae
+// raw_xaf
+// raw_xb0
+// raw_xb1
+// raw_xb2
+// raw_xb3
+// raw_xb4
+// raw_xb5
+// raw_xb6
+// raw_xb7
+// raw_xb8
+// raw_xb9
+// raw_xba
+// raw_xbb
+// raw_xbc
+// raw_xbd
+// raw_xbe
+// raw_xbf
+// raw_xc0
+// raw_xc1
+// raw_xc2
+// raw_xc3
+// raw_xc4
+// raw_xc5
+// raw_xc6
+// raw_xc7
+// raw_xc8
+// raw_xc9
+// raw_xca
+// raw_xcb
+// raw_xcc
+// raw_xcd
+// raw_xce
+// raw_xcf
+// raw_xd0
+// raw_xd1
+// raw_xd2
+// raw_xd3
+// raw_xd4
+// raw_xd5
+// raw_xd6
+// raw_xd7
+// raw_xd8
+// raw_xd9
+// raw_xda
+// raw_xdb
+// raw_xdc
+// raw_xdd
+// raw_xde
+// raw_xdf
+// raw_xe0
+// raw_xe1
+// raw_xe2
+// raw_xe3
+// raw_xe4
+// raw_xe5
+// raw_xe6
+// raw_xe7
+// raw_xe8
+// raw_xe9
+// raw_xea
+// raw_xeb
+// raw_xec
+// raw_xed
+// raw_xee
+// raw_xef
+// raw_xf0
+// raw_xf1
+// raw_xf2
+// raw_xf3
+// raw_xf4
+// raw_xf5
+// raw_xf6
+// raw_xf7
+// raw_xf8
+// raw_xf9
+// raw_xfa
+// raw_xfb
+// raw_xfc
+// raw_xfd
+// raw_xfe
+// raw_xff
+// T_option_t
+// T_option_p
+// T_option_err
+// T_esc_seq
+// T_eol
+// T_basic_char
+// T_raw_char
+// T_comment
+// T_ws
+// T_angled_string
+// T_c_literal
+// T_c_string
+// T_xc_str
+// T_unquoted_string
+// T_file_inclusion
+// T_identifier
+// T_int_no
+// T_raw_characters
+// T_lr1_constant_symbols
+// T_error_symbols
+// T_eocode
+// T_AD
+// T_AB
+// T_parallel_la_boundary
+// T_arbitrator_code
+// T_parallel_parser
+// T_parallel_thread_function
+// T_parallel_control_monitor
+// T_fsm
+// T_fsm_id
+// T_fsm_filename
+// T_fsm_namespace
+// T_fsm_class
+// T_fsm_version
+// T_fsm_date
+// T_fsm_debug
+// T_fsm_comments
+// T_terminals
+// T_enumeration
+// T_file_name
+// T_name_space
+// T_sym_class
+// T_rules
+// T_lhs
+// T_user_declaration
+// T_user_prefix_declaration
+// T_user_suffix_declaration
+// T_constructor
+// T_destructor
+// T_op
+// T_failed
+// T_user_implementation
+// T_user_imp_tbl
+// T_user_imp_sym
+// T_constant_defs
+// T_terminals_refs
+// T_terminals_sufx
+// T_lrk_sufx
+// T_selector
+// T_NULL
+// T_2colon
+// T_block
+// T_syntax_code
+// T_fsm_class_phrase
+// T_fsm_phrase
+// T_parallel_parser_phrase
+// T_enum_phrase
+// T_terminal_def
+// table_entry
+// T_sym_tbl_report_card
+// T_terminals_phrase
+// T_error_symbols_phrase
+// T_lr1_k_phrase
+// T_rc_phrase
+// T_rule_lhs_phrase
+// T_parallel_monitor_phrase
+// rule_def
+// T_rules_phrase
+// T_subrule_def
+// T_subrules_phrase
+// T_in_stbl
+// refered_T
+// rule_in_stbl
+// refered_rule
+// T_transitive
+// T_grammar_name
+// T_thread_name
+// T_monolithic
+// T_no_of_T
+// T_list_of_native_first_set_terminals
+// T_end_list_of_native_first_set_terminals
+// T_list_of_transitive_threads
+// T_end_list_of_transitive_threads
+// T_emitfile
+// T_preamble
+// T_end_preamble
+// T_T_alphabet
+// T_end_T_alphabet
+// T_file_of_T_alphabet
+// T_attributes
+// tth_in_stbl
+// thread_attributes
+// th_in_stbl
+// kw_in_stbl
+// T_la_expr_src
+// T_eosubrule
+// T_called_thread_eosubrule
+// T_null_call_thread_eosubrule
+// T_cweb_comment
+// T_grammar_phrase
+// T_cweb_marker
+// T_lint
+// T_list_of_used_threads
+// T_end_list_of_used_threads
+// Err_nested_files_exceeded
+// Err_no_end_of_code
+// Err_no_cmd_lne_data
+// Err_no_filename
+// Err_bad_filename
+// Err_bad_fsmheader_filename
+// Err_bad_fsmcpp_filename
+// Err_bad_fsmsym_filename
+// Err_bad_fsmtbl_filename
+// Err_bad_enum_filename
+// Err_bad_errors_hdrfilename
+// Err_bad_errors_impfilename
+// Err_bad_cmd_lne_opt
+// Err_bad_int_no
+// Err_bad_int_no_range
+// Err_no_int_present
+// Err_bad_eos
+// Err_bad_esc
+// Err_comment_overrun
+// Err_bad_char
+// Err_bad_univ_seq
+// Err_improper_closing_of_rules
+// Err_no_identifier_present
+// Err_no_directive_present
+// Err_duplicate_directive
+// Err_no_syntax_code_present
+// Err_no_open_parenthesis
+// Err_no_close_parenthesis
+// Err_no_fsm_id_present
+// Err_no_fsm_id_string
+// Err_no_fsm_filename_present
+// Err_no_fsm_filename_id_present
+// Err_no_comma_present
+// Err_no_terminal_key_present
+// Err_no_fsm_namespace_present
+// Err_no_fsm_namespace_id_present
+// Err_no_fsm_class_present
+// Err_no_fsm_version_present
+// Err_no_fsm_version_string
+// Err_no_fsm_date_present
+// Err_no_fsm_date_string
+// Err_no_fsm_debug_present
+// Err_no_fsm_debug_string
+// Err_no_fsm_comments_present
+// Err_no_fsm_comments_string
+// Err_fsm_debug_string_not_true_or_false
+// Err_no_pp_thread_function_present
+// Err_no_pp_ctrl_mntor_kw_present
+// Err_no_pp_fnct_id_present
+// Err_no_pp_bndry_present
+// Err_no_pp_la_bndary_expr_present
+// Err_no_syntax_code_end_present
+// Err_no_pp_code_present
+// Err_no_pp_code_stc_present
+// Err_not_arbitration_code_kw
+// Err_no_open_brace
+// Err_no_close_brace
+// Err_no_constant_defs_present
+// Err_no_filename_present
+// Err_no_filename_id_present
+// Err_no_namespace_present
+// Err_no_namespace_id_present
+// Err_no_kdefs_code_present
+// Err_no_kdefs_kw_present
+// Err_no_tdef_code_present
+// Err_no_sym_defs_present
+// Err_dup_entry_in_alphabet
+// Err_already_defined_AB
+// Err_already_defined_AD
+// Err_improper_directive
+// Err_no_sym_class_present
+// Err_no_sym_class_id_present
+// Err_zero_len_sym
+// Err_sym_tbl_full
+// Err_sym_tbl_char_pool_full
+// Err_dup_entry_in_sym_table
+// Err_subscript_out_of_range
+// Err_sym_tbl_nested_scope_stk_overflow
+// Err_sym_tbl_nested_scope_stk_underflow
+// Err_sym_tbl_context_buf_overflow
+// Err_report_card_ptr_0
+// Err_cannot_define_term_after_sufx_dir
+// Err_dup_sufx_directive
+// Err_terminals_refs_def_after_terminals
+// Err_terminals_refs_dup_def
+// Err_no_rule_name_present
+// Err_no_sub_rule_present
+// Err_subrule_use_undefined_T
+// Err_stbl_entry_unknown
+// Err_subrule_overrun
+// Err_stble_has_entry_but_not_a_rule
+// Err_file_of_T_alphabet_kw_not_present
+// Err_emitfile_kw_not_present
+// Err_preamble_kw_not_present
+// Err_preamble_srce_code_not_present
+// Err_end_preamble_kw_not_present
+// Err_cmd_line_chaffe
+// Err_T_alphabet_kw_not_present
+// Err_T_alphabet_file_not_present
+// Err_end_T_alphabet_kw_not_present
+// Err_no_terminals_in_T_alphabet_list
+// Err_rotten_chr_in_T_alphabet
+// Err_transitive_kw_not_present
+// Err_grammar_name_kw_not_present
+// Err_namespace_kw_not_present
+// Err_filename_kw_not_present
+// Err_threadname_kw_not_present
+// Err_monolithic_kw_not_present
+// Err_no_of_T_kw_not_present
+// Err_list_of_terminals_kw_not_present
+// Err_no_list_of_trans_threads_kw
+// Err_no_terminals_present_in_T_alphabet
+// Err_transitive_value_bad
+// Err_monolithic_value_bad
+// Err_grammar_name_value_not_present
+// Err_namespace_value_not_present
+// Err_threadname_value_not_present
+// Err_filename_value_not_present
+// Err_no_of_T_value_not_present
+// Err_no_of_terminals_not_present
+// Err_end_list_native_T_kw_not_present
+// Err_end_list_of_transitive_threads_kw_not_present
+// Err_no_of_native_Ts_in_list_not_equal
+// Err_no_of_threads_in_list_not_equal
+// Err_thread_refed_but_not_defined
+// Err_bad_T_in_list
+// Err_bad_th_in_list
+// Err_already_defined_in_fsc_file
+// Err_bad_thread_subscript
+// Err_not_a_keyword
+// Err_no_of_threads_not_present
+// Err_bad_T_alphabet
+// Err_fsc_file_does_not_exist
+// Err_filename_file_does_not_exist
+// Err_T_alphabet_file_does_not_exist
+// Err_emitfile_file_does_not_exist
+// Err_emitfile_file_not_present
+// Err_fsc_cntl_file_not_present
+// Err_file_of_T_alphabet_not_present
+// Err_epsilon_pass_thru
+// Err_epsilon_pass_thru_no_Ts
+// Err_rule_not_in_stbl
+// Err_T_not_in_stbl
+// Err_bad_directive
+// Err_bad_term_in_la_expr
+// Err_empty_set_removal_in_la_expr
+// Err_bad_operator_in_la_expr
+// Err_not_a_lhs_kw
+// Err_pp_la_boundary_attribute_not_fnd
+// Err_already_processed_fsm_phase
+// Err_already_processed_pp_phase
+// Err_already_processed_T_enum_phase
+// Err_already_processed_error_phase
+// Err_already_processed_rc_phase
+// Err_already_processed_lrk_phase
+// Err_already_processed_T_phase
+// Err_already_processed_rule_phase
+// Err_not_T_for_rtned_token_from_th
+// Err_not_id_for_ns_in_th_stmt
+// Err_not_id_for_th_name_in_th_stmt
+// Err_bad_th_qualifier
+// Err_not_dbl_colon_in_th_stmt
+// Err_not_T_or_R_in_subrule_expr
+// Err_not_T_or_R_or_eos_in_subrule_expr
+// Err_not_eos_in_subrule_expr
+// Err_invalid_logical_name
+// Err_invalid_logical_value
+// Err_duplicate_logical_name
+// Err_missing_terminals_refs_kw
+// Err_missing_terminals_sufx_kw
+// Err_not_a_terminal_definition
+// Err_missing_lrk_sufx_kw
+// ERR_sick_grammar
+// ERR_no_fsm_phrase
+// ERR_no_T_enum_phrase
+// ERR_no_lrk_phrase
+// ERR_no_rc_phrase
+// ERR_no_errors_phrase
+// ERR_no_terminals_phrase
+// ERR_no_rules_phrase
+// Err_used_rule_but_undefined
+// Err_rule_already_defined
+// Err_la_expr_calc_empty_set
+// Err_no_close_brace_ending_rules_defs
+// Err_use_of_T_outside_Rules_construct
+// Err_not_kw_defining_grammar_construct
+// Err_use_of_N_outside_Rules_construct
+// Err_misplaced_or_misspelt_Rule_or_T
+// Err_not_a_Rule
+// Err_empty_file
+// Err_not_lhs_pcnrl_mntr
+yacco2::UCHAR LA3_Csubrule_def[] ={
+72
+,0,2
+,1,255
+,2,255
+,3,255
+,4,255
+,5,255
+,6,255
+,7,255
+,8,255
+,9,255
+,10,255
+,11,255
+,12,255
+,13,255
+,14,255
+,15,255
+,16,255
+,17,255
+,18,255
+,19,255
+,20,255
+,21,255
+,22,255
+,23,255
+,24,255
+,25,255
+,26,255
+,27,255
+,28,255
+,29,255
+,30,255
+,31,255
+,32,255
+,33,255
+,34,255
+,35,255
+,36,255
+,37,255
+,38,255
+,39,255
+,40,255
+,41,255
+,42,255
+,43,255
+,44,255
+,45,255
+,46,255
+,47,255
+,48,255
+,49,255
+,50,255
+,51,255
+,52,255
+,53,255
+,54,255
+,55,255
+,56,255
+,57,255
+,58,255
+,59,255
+,60,255
+,61,255
+,62,255
+,63,255
+,64,255
+,65,255
+,66,255
+,67,255
+,68,255
+,69,255
+,70,255
+,71,1
+};
+// LR1_questionable_shift_operator
+// LR1_eog
+// LR1_reduce_operator
+// LR1_invisible_shift_operator
+// raw_nul
+// raw_soh
+// raw_stx
+// raw_etx
+// raw_eot
+// raw_enq
+// raw_ack
+// raw_bel
+// raw_bs
+// raw_ht
+// raw_lf
+// raw_vt
+// raw_ff
+// raw_cr
+// raw_so
+// raw_si
+// raw_dle
+// raw_dc1
+// raw_dc2
+// raw_dc3
+// raw_dc4
+// raw_nak
+// raw_syn
+// raw_etb
+// raw_can
+// raw_em
+// raw_sub
+// raw_esc
+// raw_fs
+// raw_gs
+// raw_rs
+// raw_us
+// raw_sp
+// raw_exclam
+// raw_dbl_quote
+// raw_no_sign
+// raw_dollar_sign
+// raw_percent
+// raw_ampersign
+// raw_right_quote
+// raw_open_bracket
+// raw_close_bracket
+// raw_asteric
+// raw_plus
+// raw_comma
+// raw_minus
+// raw_period
+// raw_slash
+// raw_0
+// raw_1
+// raw_2
+// raw_3
+// raw_4
+// raw_5
+// raw_6
+// raw_7
+// raw_8
+// raw_9
+// raw_colon
+// raw_semi_colon
+// raw_less_than
+// raw_eq
+// raw_gt_than
+// raw_question_mark
+// raw_at_sign
+// raw_A
+// raw_B
+// raw_C
+// raw_D
+// raw_E
+// raw_F
+// raw_G
+// raw_H
+// raw_I
+// raw_J
+// raw_K
+// raw_L
+// raw_M
+// raw_N
+// raw_O
+// raw_P
+// raw_Q
+// raw_R
+// raw_S
+// raw_T
+// raw_U
+// raw_V
+// raw_W
+// raw_X
+// raw_Y
+// raw_Z
+// raw_open_sq_bracket
+// raw_back_slash
+// raw_close_sq_bracket
+// raw_up_arrow
+// raw_under_score
+// raw_left_quote
+// raw_a
+// raw_b
+// raw_c
+// raw_d
+// raw_e
+// raw_f
+// raw_g
+// raw_h
+// raw_i
+// raw_j
+// raw_k
+// raw_l
+// raw_m
+// raw_n
+// raw_o
+// raw_p
+// raw_q
+// raw_r
+// raw_s
+// raw_t
+// raw_u
+// raw_v
+// raw_w
+// raw_x
+// raw_y
+// raw_z
+// raw_open_brace
+// raw_vertical_line
+// raw_close_brace
+// raw_tilde
+// raw_del
+// raw_x80
+// raw_x81
+// raw_x82
+// raw_x83
+// raw_x84
+// raw_x85
+// raw_x86
+// raw_x87
+// raw_x88
+// raw_x89
+// raw_x8a
+// raw_x8b
+// raw_x8c
+// raw_x8d
+// raw_x8e
+// raw_x8f
+// raw_x90
+// raw_x91
+// raw_x92
+// raw_x93
+// raw_x94
+// raw_x95
+// raw_x96
+// raw_x97
+// raw_x98
+// raw_x99
+// raw_x9a
+// raw_x9b
+// raw_x9c
+// raw_x9d
+// raw_x9e
+// raw_x9f
+// raw_xa0
+// raw_xa1
+// raw_xa2
+// raw_xa3
+// raw_xa4
+// raw_xa5
+// raw_xa6
+// raw_xa7
+// raw_xa8
+// raw_xa9
+// raw_xaa
+// raw_xab
+// raw_xac
+// raw_xad
+// raw_xae
+// raw_xaf
+// raw_xb0
+// raw_xb1
+// raw_xb2
+// raw_xb3
+// raw_xb4
+// raw_xb5
+// raw_xb6
+// raw_xb7
+// raw_xb8
+// raw_xb9
+// raw_xba
+// raw_xbb
+// raw_xbc
+// raw_xbd
+// raw_xbe
+// raw_xbf
+// raw_xc0
+// raw_xc1
+// raw_xc2
+// raw_xc3
+// raw_xc4
+// raw_xc5
+// raw_xc6
+// raw_xc7
+// raw_xc8
+// raw_xc9
+// raw_xca
+// raw_xcb
+// raw_xcc
+// raw_xcd
+// raw_xce
+// raw_xcf
+// raw_xd0
+// raw_xd1
+// raw_xd2
+// raw_xd3
+// raw_xd4
+// raw_xd5
+// raw_xd6
+// raw_xd7
+// raw_xd8
+// raw_xd9
+// raw_xda
+// raw_xdb
+// raw_xdc
+// raw_xdd
+// raw_xde
+// raw_xdf
+// raw_xe0
+// raw_xe1
+// raw_xe2
+// raw_xe3
+// raw_xe4
+// raw_xe5
+// raw_xe6
+// raw_xe7
+// raw_xe8
+// raw_xe9
+// raw_xea
+// raw_xeb
+// raw_xec
+// raw_xed
+// raw_xee
+// raw_xef
+// raw_xf0
+// raw_xf1
+// raw_xf2
+// raw_xf3
+// raw_xf4
+// raw_xf5
+// raw_xf6
+// raw_xf7
+// raw_xf8
+// raw_xf9
+// raw_xfa
+// raw_xfb
+// raw_xfc
+// raw_xfd
+// raw_xfe
+// raw_xff
+// T_option_t
+// T_option_p
+// T_option_err
+// T_esc_seq
+// T_eol
+// T_basic_char
+// T_raw_char
+// T_comment
+// T_ws
+// T_angled_string
+// T_c_literal
+// T_c_string
+// T_xc_str
+// T_unquoted_string
+// T_file_inclusion
+// T_identifier
+// T_int_no
+// T_raw_characters
+// T_lr1_constant_symbols
+// T_error_symbols
+// T_eocode
+// T_AD
+// T_AB
+// T_parallel_la_boundary
+// T_arbitrator_code
+// T_parallel_parser
+// T_parallel_thread_function
+// T_parallel_control_monitor
+// T_fsm
+// T_fsm_id
+// T_fsm_filename
+// T_fsm_namespace
+// T_fsm_class
+// T_fsm_version
+// T_fsm_date
+// T_fsm_debug
+// T_fsm_comments
+// T_terminals
+// T_enumeration
+// T_file_name
+// T_name_space
+// T_sym_class
+// T_rules
+// T_lhs
+// T_user_declaration
+// T_user_prefix_declaration
+// T_user_suffix_declaration
+// T_constructor
+// T_destructor
+// T_op
+// T_failed
+// T_user_implementation
+// T_user_imp_tbl
+// T_user_imp_sym
+// T_constant_defs
+// T_terminals_refs
+// T_terminals_sufx
+// T_lrk_sufx
+// T_selector
+// T_NULL
+// T_2colon
+// T_block
+// T_syntax_code
+// T_fsm_class_phrase
+// T_fsm_phrase
+// T_parallel_parser_phrase
+// T_enum_phrase
+// T_terminal_def
+// table_entry
+// T_sym_tbl_report_card
+// T_terminals_phrase
+// T_error_symbols_phrase
+// T_lr1_k_phrase
+// T_rc_phrase
+// T_rule_lhs_phrase
+// T_parallel_monitor_phrase
+// rule_def
+// T_rules_phrase
+// T_subrule_def
+// T_subrules_phrase
+// T_in_stbl
+// refered_T
+// rule_in_stbl
+// refered_rule
+// T_transitive
+// T_grammar_name
+// T_thread_name
+// T_monolithic
+// T_no_of_T
+// T_list_of_native_first_set_terminals
+// T_end_list_of_native_first_set_terminals
+// T_list_of_transitive_threads
+// T_end_list_of_transitive_threads
+// T_emitfile
+// T_preamble
+// T_end_preamble
+// T_T_alphabet
+// T_end_T_alphabet
+// T_file_of_T_alphabet
+// T_attributes
+// tth_in_stbl
+// thread_attributes
+// th_in_stbl
+// kw_in_stbl
+// T_la_expr_src
+// T_eosubrule
+// T_called_thread_eosubrule
+// T_null_call_thread_eosubrule
+// T_cweb_comment
+// T_grammar_phrase
+// T_cweb_marker
+// T_lint
+// T_list_of_used_threads
+// T_end_list_of_used_threads
+// Err_nested_files_exceeded
+// Err_no_end_of_code
+// Err_no_cmd_lne_data
+// Err_no_filename
+// Err_bad_filename
+// Err_bad_fsmheader_filename
+// Err_bad_fsmcpp_filename
+// Err_bad_fsmsym_filename
+// Err_bad_fsmtbl_filename
+// Err_bad_enum_filename
+// Err_bad_errors_hdrfilename
+// Err_bad_errors_impfilename
+// Err_bad_cmd_lne_opt
+// Err_bad_int_no
+// Err_bad_int_no_range
+// Err_no_int_present
+// Err_bad_eos
+// Err_bad_esc
+// Err_comment_overrun
+// Err_bad_char
+// Err_bad_univ_seq
+// Err_improper_closing_of_rules
+// Err_no_identifier_present
+// Err_no_directive_present
+// Err_duplicate_directive
+// Err_no_syntax_code_present
+// Err_no_open_parenthesis
+// Err_no_close_parenthesis
+// Err_no_fsm_id_present
+// Err_no_fsm_id_string
+// Err_no_fsm_filename_present
+// Err_no_fsm_filename_id_present
+// Err_no_comma_present
+// Err_no_terminal_key_present
+// Err_no_fsm_namespace_present
+// Err_no_fsm_namespace_id_present
+// Err_no_fsm_class_present
+// Err_no_fsm_version_present
+// Err_no_fsm_version_string
+// Err_no_fsm_date_present
+// Err_no_fsm_date_string
+// Err_no_fsm_debug_present
+// Err_no_fsm_debug_string
+// Err_no_fsm_comments_present
+// Err_no_fsm_comments_string
+// Err_fsm_debug_string_not_true_or_false
+// Err_no_pp_thread_function_present
+// Err_no_pp_ctrl_mntor_kw_present
+// Err_no_pp_fnct_id_present
+// Err_no_pp_bndry_present
+// Err_no_pp_la_bndary_expr_present
+// Err_no_syntax_code_end_present
+// Err_no_pp_code_present
+// Err_no_pp_code_stc_present
+// Err_not_arbitration_code_kw
+// Err_no_open_brace
+// Err_no_close_brace
+// Err_no_constant_defs_present
+// Err_no_filename_present
+// Err_no_filename_id_present
+// Err_no_namespace_present
+// Err_no_namespace_id_present
+// Err_no_kdefs_code_present
+// Err_no_kdefs_kw_present
+// Err_no_tdef_code_present
+// Err_no_sym_defs_present
+// Err_dup_entry_in_alphabet
+// Err_already_defined_AB
+// Err_already_defined_AD
+// Err_improper_directive
+// Err_no_sym_class_present
+// Err_no_sym_class_id_present
+// Err_zero_len_sym
+// Err_sym_tbl_full
+// Err_sym_tbl_char_pool_full
+// Err_dup_entry_in_sym_table
+// Err_subscript_out_of_range
+// Err_sym_tbl_nested_scope_stk_overflow
+// Err_sym_tbl_nested_scope_stk_underflow
+// Err_sym_tbl_context_buf_overflow
+// Err_report_card_ptr_0
+// Err_cannot_define_term_after_sufx_dir
+// Err_dup_sufx_directive
+// Err_terminals_refs_def_after_terminals
+// Err_terminals_refs_dup_def
+// Err_no_rule_name_present
+// Err_no_sub_rule_present
+// Err_subrule_use_undefined_T
+// Err_stbl_entry_unknown
+// Err_subrule_overrun
+// Err_stble_has_entry_but_not_a_rule
+// Err_file_of_T_alphabet_kw_not_present
+// Err_emitfile_kw_not_present
+// Err_preamble_kw_not_present
+// Err_preamble_srce_code_not_present
+// Err_end_preamble_kw_not_present
+// Err_cmd_line_chaffe
+// Err_T_alphabet_kw_not_present
+// Err_T_alphabet_file_not_present
+// Err_end_T_alphabet_kw_not_present
+// Err_no_terminals_in_T_alphabet_list
+// Err_rotten_chr_in_T_alphabet
+// Err_transitive_kw_not_present
+// Err_grammar_name_kw_not_present
+// Err_namespace_kw_not_present
+// Err_filename_kw_not_present
+// Err_threadname_kw_not_present
+// Err_monolithic_kw_not_present
+// Err_no_of_T_kw_not_present
+// Err_list_of_terminals_kw_not_present
+// Err_no_list_of_trans_threads_kw
+// Err_no_terminals_present_in_T_alphabet
+// Err_transitive_value_bad
+// Err_monolithic_value_bad
+// Err_grammar_name_value_not_present
+// Err_namespace_value_not_present
+// Err_threadname_value_not_present
+// Err_filename_value_not_present
+// Err_no_of_T_value_not_present
+// Err_no_of_terminals_not_present
+// Err_end_list_native_T_kw_not_present
+// Err_end_list_of_transitive_threads_kw_not_present
+// Err_no_of_native_Ts_in_list_not_equal
+// Err_no_of_threads_in_list_not_equal
+// Err_thread_refed_but_not_defined
+// Err_bad_T_in_list
+// Err_bad_th_in_list
+// Err_already_defined_in_fsc_file
+// Err_bad_thread_subscript
+// Err_not_a_keyword
+// Err_no_of_threads_not_present
+// Err_bad_T_alphabet
+// Err_fsc_file_does_not_exist
+// Err_filename_file_does_not_exist
+// Err_T_alphabet_file_does_not_exist
+// Err_emitfile_file_does_not_exist
+// Err_emitfile_file_not_present
+// Err_fsc_cntl_file_not_present
+// Err_file_of_T_alphabet_not_present
+// Err_epsilon_pass_thru
+// Err_epsilon_pass_thru_no_Ts
+// Err_rule_not_in_stbl
+// Err_T_not_in_stbl
+// Err_bad_directive
+// Err_bad_term_in_la_expr
+// Err_empty_set_removal_in_la_expr
+// Err_bad_operator_in_la_expr
+// Err_not_a_lhs_kw
+// Err_pp_la_boundary_attribute_not_fnd
+// Err_already_processed_fsm_phase
+// Err_already_processed_pp_phase
+// Err_already_processed_T_enum_phase
+// Err_already_processed_error_phase
+// Err_already_processed_rc_phase
+// Err_already_processed_lrk_phase
+// Err_already_processed_T_phase
+// Err_already_processed_rule_phase
+// Err_not_T_for_rtned_token_from_th
+// Err_not_id_for_ns_in_th_stmt
+// Err_not_id_for_th_name_in_th_stmt
+// Err_bad_th_qualifier
+// Err_not_dbl_colon_in_th_stmt
+// Err_not_T_or_R_in_subrule_expr
+// Err_not_T_or_R_or_eos_in_subrule_expr
+// Err_not_eos_in_subrule_expr
+// Err_invalid_logical_name
+// Err_invalid_logical_value
+// Err_duplicate_logical_name
+// Err_missing_terminals_refs_kw
+// Err_missing_terminals_sufx_kw
+// Err_not_a_terminal_definition
+// Err_missing_lrk_sufx_kw
+// ERR_sick_grammar
+// ERR_no_fsm_phrase
+// ERR_no_T_enum_phrase
+// ERR_no_lrk_phrase
+// ERR_no_rc_phrase
+// ERR_no_errors_phrase
+// ERR_no_terminals_phrase
+// ERR_no_rules_phrase
+// Err_used_rule_but_undefined
+// Err_rule_already_defined
+// Err_la_expr_calc_empty_set
+// Err_no_close_brace_ending_rules_defs
+// Err_use_of_T_outside_Rules_construct
+// Err_not_kw_defining_grammar_construct
+// Err_use_of_N_outside_Rules_construct
+// Err_misplaced_or_misspelt_Rule_or_T
+// Err_not_a_Rule
+// Err_empty_file
+// Err_not_lhs_pcnrl_mntr
+yacco2::UCHAR LA4_Csubrule_def[] ={
+72
+,0,51
+,1,255
+,2,255
+,3,255
+,4,255
+,5,255
+,6,255
+,7,255
+,8,255
+,9,255
+,10,255
+,11,255
+,12,255
+,13,255
+,14,255
+,15,255
+,16,255
+,17,255
+,18,255
+,19,255
+,20,255
+,21,255
+,22,255
+,23,255
+,24,255
+,25,255
+,26,255
+,27,255
+,28,255
+,29,255
+,30,255
+,31,255
+,32,255
+,33,255
+,34,255
+,35,255
+,36,255
+,37,255
+,38,255
+,39,255
+,40,255
+,41,255
+,42,255
+,43,255
+,44,255
+,45,255
+,46,255
+,47,255
+,48,255
+,49,255
+,50,255
+,51,255
+,52,255
+,53,255
+,54,255
+,55,255
+,56,255
+,57,255
+,58,255
+,59,255
+,60,255
+,61,255
+,62,255
+,63,255
+,64,255
+,65,255
+,66,255
+,67,255
+,68,255
+,69,255
+,70,255
+,71,1
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+yacco2::UCHAR LA5_Csubrule_def[] ={
+1
+,0,17
+};
+// LR1_questionable_shift_operator
+// raw_close_brace
+yacco2::UCHAR LA6_Csubrule_def[] ={
+2
+,0,1
+,16,32
+};
+// LR1_reduce_operator
+// LR1_invisible_shift_operator
+// raw_open_brace
+yacco2::UCHAR LA7_Csubrule_def[] ={
+2
+,0,48
+,16,8
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+// LR1_invisible_shift_operator
+// raw_close_brace
+yacco2::UCHAR LA8_Csubrule_def[] ={
+2
+,0,49
+,16,32
+};
+// LR1_reduce_operator
+yacco2::UCHAR LA9_Csubrule_def[] ={
+1
+,0,16
+};
+extern yacco2::State S1_Csubrule_def;
+extern yacco2::State S2_Csubrule_def;
+struct S2ttd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S2ttd_Csubrule_def S2tt_Csubrule_def = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_subrule_vector
+};
+extern yacco2::State S3_Csubrule_def;
+extern yacco2::State S4_Csubrule_def;
+extern yacco2::State S5_Csubrule_def;
+extern yacco2::State S6_Csubrule_def;
+extern yacco2::State S7_Csubrule_def;
+struct S7ttd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[2];
+};
+S7ttd_Csubrule_def S7tt_Csubrule_def = {
+ 2 // no of threads
+ ,AR_Rstart_thread //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_parallel_oper
+ ,(yacco2::Thread_entry*)&ITH_rhs_component
+};
+extern yacco2::State S8_Csubrule_def;
+extern yacco2::State S9_Csubrule_def;
+extern yacco2::State S10_Csubrule_def;
+extern yacco2::State S11_Csubrule_def;
+extern yacco2::State S12_Csubrule_def;
+extern yacco2::State S13_Csubrule_def;
+extern yacco2::State S14_Csubrule_def;
+extern yacco2::State S15_Csubrule_def;
+extern yacco2::State S16_Csubrule_def;
+extern yacco2::State S17_Csubrule_def;
+extern yacco2::State S18_Csubrule_def;
+extern yacco2::State S19_Csubrule_def;
+extern yacco2::State S20_Csubrule_def;
+extern yacco2::State S21_Csubrule_def;
+extern yacco2::State S22_Csubrule_def;
+extern yacco2::State S23_Csubrule_def;
+extern yacco2::State S24_Csubrule_def;
+struct S24ttd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S24ttd_Csubrule_def S24tt_Csubrule_def = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_lint_balls
+};
+extern yacco2::State S25_Csubrule_def;
+extern yacco2::State S26_Csubrule_def;
+extern yacco2::State S27_Csubrule_def;
+extern yacco2::State S28_Csubrule_def;
+extern yacco2::State S29_Csubrule_def;
+extern yacco2::State S30_Csubrule_def;
+extern yacco2::State S31_Csubrule_def;
+extern yacco2::State S32_Csubrule_def;
+extern yacco2::State S33_Csubrule_def;
+extern yacco2::State S34_Csubrule_def;
+extern yacco2::State S35_Csubrule_def;
+extern yacco2::State S36_Csubrule_def;
+extern yacco2::State S37_Csubrule_def;
+extern yacco2::State S38_Csubrule_def;
+extern yacco2::State S39_Csubrule_def;
+extern yacco2::State S40_Csubrule_def;
+extern yacco2::State S41_Csubrule_def;
+extern yacco2::State S42_Csubrule_def;
+extern yacco2::State S43_Csubrule_def;
+extern yacco2::State S44_Csubrule_def;
+extern yacco2::State S45_Csubrule_def;
+extern yacco2::State S46_Csubrule_def;
+extern yacco2::State S47_Csubrule_def;
+extern yacco2::State S48_Csubrule_def;
+extern yacco2::State S49_Csubrule_def;
+extern yacco2::State S50_Csubrule_def;
+extern yacco2::State S51_Csubrule_def;
+extern yacco2::State S52_Csubrule_def;
+extern yacco2::State S53_Csubrule_def;
+extern yacco2::State S54_Csubrule_def;
+extern yacco2::State S55_Csubrule_def;
+extern yacco2::State S56_Csubrule_def;
+extern yacco2::State S57_Csubrule_def;
+extern yacco2::State S58_Csubrule_def;
+extern yacco2::State S59_Csubrule_def;
+extern yacco2::State S60_Csubrule_def;
+extern yacco2::State S61_Csubrule_def;
+struct S61ttd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S61ttd_Csubrule_def S61tt_Csubrule_def = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_rtn_component
+};
+extern yacco2::State S62_Csubrule_def;
+extern yacco2::State S63_Csubrule_def;
+extern yacco2::State S64_Csubrule_def;
+extern yacco2::State S65_Csubrule_def;
+extern yacco2::State S66_Csubrule_def;
+extern yacco2::State S67_Csubrule_def;
+extern yacco2::State S68_Csubrule_def;
+struct S68ttd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S68ttd_Csubrule_def S68tt_Csubrule_def = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S69_Csubrule_def;
+extern yacco2::State S70_Csubrule_def;
+extern yacco2::State S71_Csubrule_def;
+extern yacco2::State S72_Csubrule_def;
+extern yacco2::State S73_Csubrule_def;
+extern yacco2::State S74_Csubrule_def;
+extern yacco2::State S75_Csubrule_def;
+extern yacco2::State S76_Csubrule_def;
+extern yacco2::State S77_Csubrule_def;
+struct S77ttd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S77ttd_Csubrule_def S77tt_Csubrule_def = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S78_Csubrule_def;
+extern yacco2::State S79_Csubrule_def;
+extern yacco2::State S80_Csubrule_def;
+extern yacco2::State S81_Csubrule_def;
+extern yacco2::State S82_Csubrule_def;
+struct S82ttd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[2];
+};
+S82ttd_Csubrule_def S82tt_Csubrule_def = {
+ 2 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_rhs_component
+ ,(yacco2::Thread_entry*)&ITH_rhs_bnd
+};
+extern yacco2::State S83_Csubrule_def;
+extern yacco2::State S84_Csubrule_def;
+extern yacco2::State S85_Csubrule_def;
+extern yacco2::State S86_Csubrule_def;
+extern yacco2::State S87_Csubrule_def;
+struct S87ttd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S87ttd_Csubrule_def S87tt_Csubrule_def = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_rhs_bnd
+};
+extern yacco2::State S88_Csubrule_def;
+extern yacco2::State S89_Csubrule_def;
+extern yacco2::State S90_Csubrule_def;
+extern yacco2::State S91_Csubrule_def;
+extern yacco2::State S92_Csubrule_def;
+extern yacco2::State S93_Csubrule_def;
+extern yacco2::State S94_Csubrule_def;
+extern yacco2::State S95_Csubrule_def;
+extern yacco2::State S96_Csubrule_def;
+extern yacco2::State S97_Csubrule_def;
+extern yacco2::State S98_Csubrule_def;
+extern yacco2::State S99_Csubrule_def;
+extern yacco2::State S100_Csubrule_def;
+extern yacco2::State S101_Csubrule_def;
+extern yacco2::State S102_Csubrule_def;
+extern yacco2::State S103_Csubrule_def;
+struct S103ttd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[2];
+};
+S103ttd_Csubrule_def S103tt_Csubrule_def = {
+ 2 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_rhs_component
+ ,(yacco2::Thread_entry*)&ITH_rhs_bnd
+};
+extern yacco2::State S104_Csubrule_def;
+extern yacco2::State S105_Csubrule_def;
+struct S105ttd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S105ttd_Csubrule_def S105tt_Csubrule_def = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_rhs_bnd
+};
+extern yacco2::State S106_Csubrule_def;
+extern yacco2::State S107_Csubrule_def;
+struct S107ttd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S107ttd_Csubrule_def S107tt_Csubrule_def = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_rhs_bnd
+};
+extern yacco2::State S108_Csubrule_def;
+extern yacco2::State S109_Csubrule_def;
+extern yacco2::State S110_Csubrule_def;
+struct S110ttd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S110ttd_Csubrule_def S110tt_Csubrule_def = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_rhs_component
+};
+extern yacco2::State S111_Csubrule_def;
+struct S111ttd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S111ttd_Csubrule_def S111tt_Csubrule_def = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_cweb_or_c_k
+};
+extern yacco2::State S112_Csubrule_def;
+extern yacco2::State S113_Csubrule_def;
+extern yacco2::State S114_Csubrule_def;
+extern yacco2::State S115_Csubrule_def;
+extern yacco2::State S116_Csubrule_def;
+struct S116ttd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S116ttd_Csubrule_def S116tt_Csubrule_def = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_dbl_colon
+};
+extern yacco2::State S117_Csubrule_def;
+extern yacco2::State S118_Csubrule_def;
+extern yacco2::State S119_Csubrule_def;
+struct S119ttd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S119ttd_Csubrule_def S119tt_Csubrule_def = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_cweb_or_c_k
+};
+extern yacco2::State S120_Csubrule_def;
+extern yacco2::State S121_Csubrule_def;
+extern yacco2::State S122_Csubrule_def;
+extern yacco2::State S123_Csubrule_def;
+extern yacco2::State S124_Csubrule_def;
+extern yacco2::State S125_Csubrule_def;
+extern yacco2::State S126_Csubrule_def;
+extern yacco2::State S127_Csubrule_def;
+extern yacco2::State S128_Csubrule_def;
+struct S128ttd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[2];
+};
+S128ttd_Csubrule_def S128tt_Csubrule_def = {
+ 2 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+ ,(yacco2::Thread_entry*)&ITH_cweb_or_c_k
+};
+extern yacco2::State S129_Csubrule_def;
+extern yacco2::State S130_Csubrule_def;
+extern yacco2::State S131_Csubrule_def;
+extern yacco2::State S132_Csubrule_def;
+extern yacco2::State S133_Csubrule_def;
+extern yacco2::State S134_Csubrule_def;
+extern yacco2::State S135_Csubrule_def;
+extern yacco2::State S136_Csubrule_def;
+extern yacco2::State S137_Csubrule_def;
+extern yacco2::State S138_Csubrule_def;
+extern yacco2::State S139_Csubrule_def;
+extern yacco2::State S140_Csubrule_def;
+extern yacco2::State S141_Csubrule_def;
+extern yacco2::State S142_Csubrule_def;
+extern yacco2::State S143_Csubrule_def;
+extern yacco2::State S144_Csubrule_def;
+extern yacco2::State S145_Csubrule_def;
+struct S145ttd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S145ttd_Csubrule_def S145tt_Csubrule_def = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S146_Csubrule_def;
+extern yacco2::State S147_Csubrule_def;
+extern yacco2::State S148_Csubrule_def;
+struct S148ttd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S148ttd_Csubrule_def S148tt_Csubrule_def = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_o2_sdc
+};
+extern yacco2::State S149_Csubrule_def;
+extern yacco2::State S150_Csubrule_def;
+extern yacco2::State S151_Csubrule_def;
+struct S151ttd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S151ttd_Csubrule_def S151tt_Csubrule_def = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+struct S1std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S1std_Csubrule_def S1st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S2_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{569,(State*)&S1_Csubrule_def} // accept sym: Rsubrule_def
+ ,{570,(State*)&S4_Csubrule_def} // shift sym: Rvector
+ }// end of shift table
+};
+yacco2::Shift_entry S1pse_Csubrule_def = {3,(State*)&S2_Csubrule_def};
+yacco2::State S1_Csubrule_def = //State's vectored into symbol: " No symbol"
+{1
+,(Shift_entry*)&S1pse_Csubrule_def,0,0,0,(Shift_tbl*)&S1st_Csubrule_def,0,(State_s_thread_tbl*)&S2tt_Csubrule_def,0,0};
+struct S2std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S2std_Csubrule_def S2st_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {322,(State*)&S3_Csubrule_def} // shift sym: T_selector
+ }// end of shift table
+};
+yacco2::State S2_Csubrule_def = //State's vectored into symbol: "|||"
+{2
+,0,0,0,0,(Shift_tbl*)&S2st_Csubrule_def,0,0,0,0};
+struct S3rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Csubrule_def S3rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Csubrule_def,Csubrule_def::rhs1_Rvector_}
+ }// end of reduce table
+};
+yacco2::State S3_Csubrule_def = //State's vectored into symbol: "->"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_Csubrule_def,0,0,0};
+struct S4std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S4std_Csubrule_def S4st_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {5,(State*)&S5_Csubrule_def} // shift sym: LR1_invisible_shift_operator
+ }// end of shift table
+};
+yacco2::Shift_entry S4ise_Csubrule_def = {5,(State*)&S5_Csubrule_def};
+yacco2::State S4_Csubrule_def = //State's vectored into symbol: "Rvector"
+{4
+,0,0,(Shift_entry*)&S4ise_Csubrule_def
+,0,(Shift_tbl*)&S4st_Csubrule_def,0,0,0,0};
+struct S5std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S5std_Csubrule_def S5st_Csubrule_def = {
+ 4
+ ,
+ {// start of table
+ {3,(State*)&S24_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{5,(State*)&S26_Csubrule_def} // shift sym: LR1_invisible_shift_operator
+ ,{571,(State*)&S6_Csubrule_def} // shift sym: Rcommon_comments
+ ,{602,(State*)&S57_Csubrule_def} // shift sym: Rlint_epi
+ }// end of shift table
+};
+yacco2::Shift_entry S5pse_Csubrule_def = {3,(State*)&S24_Csubrule_def};
+yacco2::Shift_entry S5ise_Csubrule_def = {5,(State*)&S26_Csubrule_def};
+yacco2::State S5_Csubrule_def = //State's vectored into symbol: "|.|"
+{5
+,(Shift_entry*)&S5pse_Csubrule_def,0,(Shift_entry*)&S5ise_Csubrule_def
+,0,(Shift_tbl*)&S5st_Csubrule_def,0,(State_s_thread_tbl*)&S24tt_Csubrule_def,0,0};
+struct S6std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[7];
+};
+S6std_Csubrule_def S6st_Csubrule_def = {
+ 7
+ ,
+ {// start of table
+ {3,(State*)&S7_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{572,(State*)&S13_Csubrule_def} // shift sym: Rrhs_expr
+ ,{573,(State*)&S14_Csubrule_def} // shift sym: Rstart_thread
+ ,{581,(State*)&S32_Csubrule_def} // shift sym: Rcalled_proc_op
+ ,{584,(State*)&S47_Csubrule_def} // shift sym: RTorRcomponents_epi
+ ,{585,(State*)&S52_Csubrule_def} // shift sym: RTorRcomponents
+ ,{586,(State*)&S55_Csubrule_def} // shift sym: RTorRcomponent
+ }// end of shift table
+};
+yacco2::Shift_entry S6pse_Csubrule_def = {3,(State*)&S7_Csubrule_def};
+struct S6rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Csubrule_def S6rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Csubrule_def,Csubrule_def::rhs1_RTorRcomponents_epi_}
+ }// end of reduce table
+};
+yacco2::State S6_Csubrule_def = //State's vectored into symbol: "Rcommon_comments"
+{6
+,(Shift_entry*)&S6pse_Csubrule_def,0,0,0,(Shift_tbl*)&S6st_Csubrule_def,(Reduce_tbl*)&S6rt_Csubrule_def,(State_s_thread_tbl*)&S7tt_Csubrule_def,0,0};
+struct S7std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S7std_Csubrule_def S7st_Csubrule_def = {
+ 5
+ ,
+ {// start of table
+ {0,(State*)&S8_Csubrule_def} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S9_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{7,(State*)&S10_Csubrule_def} // shift sym: LR1_fset_transience_operator
+ ,{344,(State*)&S11_Csubrule_def} // shift sym: T_in_stbl
+ ,{346,(State*)&S12_Csubrule_def} // shift sym: rule_in_stbl
+ }// end of shift table
+};
+yacco2::Shift_entry S7pse_Csubrule_def = {3,(State*)&S9_Csubrule_def};
+yacco2::Shift_entry S7pcse_Csubrule_def = {7,(State*)&S10_Csubrule_def};
+yacco2::Shift_entry S7qse_Csubrule_def = {0,(State*)&S8_Csubrule_def};
+yacco2::State S7_Csubrule_def = //State's vectored into symbol: "|||"
+{7
+,(Shift_entry*)&S7pse_Csubrule_def,0,0,(Shift_entry*)&S7pcse_Csubrule_def,(Shift_tbl*)&S7st_Csubrule_def,0,0,0,(Shift_entry*)&S7qse_Csubrule_def
+};
+struct S8rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S8rtd_Csubrule_def S8rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs3_RTorRcomponent_}
+ }// end of reduce table
+};
+yacco2::State S8_Csubrule_def = //State's vectored into symbol: "|?|"
+{8
+,0,0,0,0,0,(Reduce_tbl*)&S8rt_Csubrule_def,0,0,0};
+struct S9rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Csubrule_def S9rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs1_Rstart_thread_}
+ }// end of reduce table
+};
+yacco2::State S9_Csubrule_def = //State's vectored into symbol: "|||"
+{9
+,0,0,0,0,0,(Reduce_tbl*)&S9rt_Csubrule_def,0,0,0};
+struct S10rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S10rtd_Csubrule_def S10rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs1_Rcalled_proc_op_}
+ }// end of reduce table
+};
+yacco2::State S10_Csubrule_def = //State's vectored into symbol: "|t|"
+{10
+,0,0,0,0,0,(Reduce_tbl*)&S10rt_Csubrule_def,0,0,0};
+struct S11rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Csubrule_def S11rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs2_RTorRcomponent_}
+ }// end of reduce table
+};
+yacco2::State S11_Csubrule_def = //State's vectored into symbol: "T-in-stbl"
+{11
+,0,0,0,0,0,(Reduce_tbl*)&S11rt_Csubrule_def,0,0,0};
+struct S12rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S12rtd_Csubrule_def S12rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs1_RTorRcomponent_}
+ }// end of reduce table
+};
+yacco2::State S12_Csubrule_def = //State's vectored into symbol: "rule-in-stbl"
+{12
+,0,0,0,0,0,(Reduce_tbl*)&S12rt_Csubrule_def,0,0,0};
+struct S13rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S13rtd_Csubrule_def S13rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Csubrule_def,Csubrule_def::rhs1_Rsubrule_def_}
+ }// end of reduce table
+};
+yacco2::State S13_Csubrule_def = //State's vectored into symbol: "Rrhs_expr"
+{13
+,0,0,0,0,0,(Reduce_tbl*)&S13rt_Csubrule_def,0,0,0};
+struct S14std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S14std_Csubrule_def S14st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S24_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{5,(State*)&S26_Csubrule_def} // shift sym: LR1_invisible_shift_operator
+ ,{602,(State*)&S15_Csubrule_def} // shift sym: Rlint_epi
+ }// end of shift table
+};
+yacco2::Shift_entry S14pse_Csubrule_def = {3,(State*)&S24_Csubrule_def};
+yacco2::Shift_entry S14ise_Csubrule_def = {5,(State*)&S26_Csubrule_def};
+yacco2::State S14_Csubrule_def = //State's vectored into symbol: "Rstart_thread"
+{14
+,(Shift_entry*)&S14pse_Csubrule_def,0,(Shift_entry*)&S14ise_Csubrule_def
+,0,(Shift_tbl*)&S14st_Csubrule_def,0,(State_s_thread_tbl*)&S24tt_Csubrule_def,0,0};
+struct S15std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S15std_Csubrule_def S15st_Csubrule_def = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S60_Csubrule_def} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S61_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{574,(State*)&S16_Csubrule_def} // shift sym: Rbal_thread_expr
+ ,{575,(State*)&S65_Csubrule_def} // shift sym: Rrtned_T
+ }// end of shift table
+};
+yacco2::Shift_entry S15pse_Csubrule_def = {3,(State*)&S61_Csubrule_def};
+yacco2::Shift_entry S15qse_Csubrule_def = {0,(State*)&S60_Csubrule_def};
+yacco2::State S15_Csubrule_def = //State's vectored into symbol: "Rlint_epi"
+{15
+,(Shift_entry*)&S15pse_Csubrule_def,0,0,0,(Shift_tbl*)&S15st_Csubrule_def,0,(State_s_thread_tbl*)&S61tt_Csubrule_def,0,(Shift_entry*)&S15qse_Csubrule_def
+};
+struct S16std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S16std_Csubrule_def S16st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S24_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{5,(State*)&S26_Csubrule_def} // shift sym: LR1_invisible_shift_operator
+ ,{602,(State*)&S17_Csubrule_def} // shift sym: Rlint_epi
+ }// end of shift table
+};
+yacco2::Shift_entry S16pse_Csubrule_def = {3,(State*)&S24_Csubrule_def};
+yacco2::Shift_entry S16ise_Csubrule_def = {5,(State*)&S26_Csubrule_def};
+yacco2::State S16_Csubrule_def = //State's vectored into symbol: "Rbal_thread_expr"
+{16
+,(Shift_entry*)&S16pse_Csubrule_def,0,(Shift_entry*)&S16ise_Csubrule_def
+,0,(Shift_tbl*)&S16st_Csubrule_def,0,(State_s_thread_tbl*)&S24tt_Csubrule_def,0,0};
+struct S17std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S17std_Csubrule_def S17st_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {5,(State*)&S18_Csubrule_def} // shift sym: LR1_invisible_shift_operator
+ }// end of shift table
+};
+yacco2::Shift_entry S17ise_Csubrule_def = {5,(State*)&S18_Csubrule_def};
+yacco2::State S17_Csubrule_def = //State's vectored into symbol: "Rlint_epi"
+{17
+,0,0,(Shift_entry*)&S17ise_Csubrule_def
+,0,(Shift_tbl*)&S17st_Csubrule_def,0,0,0,0};
+struct S18std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S18std_Csubrule_def S18st_Csubrule_def = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S81_Csubrule_def} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S82_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{587,(State*)&S19_Csubrule_def} // shift sym: Rchained_dispatcher
+ ,{589,(State*)&S28_Csubrule_def} // shift sym: Rcalled_thd_eos
+ }// end of shift table
+};
+yacco2::Shift_entry S18pse_Csubrule_def = {3,(State*)&S82_Csubrule_def};
+yacco2::Shift_entry S18qse_Csubrule_def = {0,(State*)&S81_Csubrule_def};
+yacco2::State S18_Csubrule_def = //State's vectored into symbol: "|.|"
+{18
+,(Shift_entry*)&S18pse_Csubrule_def,0,0,0,(Shift_tbl*)&S18st_Csubrule_def,0,(State_s_thread_tbl*)&S82tt_Csubrule_def,0,(Shift_entry*)&S18qse_Csubrule_def
+};
+struct S19std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S19std_Csubrule_def S19st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S24_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{5,(State*)&S26_Csubrule_def} // shift sym: LR1_invisible_shift_operator
+ ,{602,(State*)&S20_Csubrule_def} // shift sym: Rlint_epi
+ }// end of shift table
+};
+yacco2::Shift_entry S19pse_Csubrule_def = {3,(State*)&S24_Csubrule_def};
+yacco2::Shift_entry S19ise_Csubrule_def = {5,(State*)&S26_Csubrule_def};
+yacco2::State S19_Csubrule_def = //State's vectored into symbol: "Rchained_dispatcher"
+{19
+,(Shift_entry*)&S19pse_Csubrule_def,0,(Shift_entry*)&S19ise_Csubrule_def
+,0,(Shift_tbl*)&S19st_Csubrule_def,0,(State_s_thread_tbl*)&S24tt_Csubrule_def,0,0};
+struct S20std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S20std_Csubrule_def S20st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S81_Csubrule_def} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S87_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{589,(State*)&S21_Csubrule_def} // shift sym: Rcalled_thd_eos
+ }// end of shift table
+};
+yacco2::Shift_entry S20pse_Csubrule_def = {3,(State*)&S87_Csubrule_def};
+yacco2::Shift_entry S20qse_Csubrule_def = {0,(State*)&S81_Csubrule_def};
+yacco2::State S20_Csubrule_def = //State's vectored into symbol: "Rlint_epi"
+{20
+,(Shift_entry*)&S20pse_Csubrule_def,0,0,0,(Shift_tbl*)&S20st_Csubrule_def,0,(State_s_thread_tbl*)&S87tt_Csubrule_def,0,(Shift_entry*)&S20qse_Csubrule_def
+};
+struct S21std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S21std_Csubrule_def S21st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S24_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{5,(State*)&S26_Csubrule_def} // shift sym: LR1_invisible_shift_operator
+ ,{602,(State*)&S22_Csubrule_def} // shift sym: Rlint_epi
+ }// end of shift table
+};
+yacco2::Shift_entry S21pse_Csubrule_def = {3,(State*)&S24_Csubrule_def};
+yacco2::Shift_entry S21ise_Csubrule_def = {5,(State*)&S26_Csubrule_def};
+yacco2::State S21_Csubrule_def = //State's vectored into symbol: "Rcalled_thd_eos"
+{21
+,(Shift_entry*)&S21pse_Csubrule_def,0,(Shift_entry*)&S21ise_Csubrule_def
+,0,(Shift_tbl*)&S21st_Csubrule_def,0,(State_s_thread_tbl*)&S24tt_Csubrule_def,0,0};
+struct S22std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S22std_Csubrule_def S22st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {131,(State*)&S88_Csubrule_def} // shift sym: raw_open_brace
+ ,{591,(State*)&S23_Csubrule_def} // shift sym: Rpotential_codeblk
+ ,{592,(State*)&S94_Csubrule_def} // shift sym: Rpotential_directives
+ }// end of shift table
+};
+struct S22rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S22rtd_Csubrule_def S22rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs1_Rpotential_directives_}
+ }// end of reduce table
+};
+yacco2::State S22_Csubrule_def = //State's vectored into symbol: "Rlint_epi"
+{22
+,0,0,0,0,(Shift_tbl*)&S22st_Csubrule_def,(Reduce_tbl*)&S22rt_Csubrule_def,0,0,0};
+struct S23std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S23std_Csubrule_def S23st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S24_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{5,(State*)&S26_Csubrule_def} // shift sym: LR1_invisible_shift_operator
+ ,{602,(State*)&S27_Csubrule_def} // shift sym: Rlint_epi
+ }// end of shift table
+};
+yacco2::Shift_entry S23pse_Csubrule_def = {3,(State*)&S24_Csubrule_def};
+yacco2::Shift_entry S23ise_Csubrule_def = {5,(State*)&S26_Csubrule_def};
+yacco2::State S23_Csubrule_def = //State's vectored into symbol: "Rpotential_codeblk"
+{23
+,(Shift_entry*)&S23pse_Csubrule_def,0,(Shift_entry*)&S23ise_Csubrule_def
+,0,(Shift_tbl*)&S23st_Csubrule_def,0,(State_s_thread_tbl*)&S24tt_Csubrule_def,0,0};
+struct S24std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S24std_Csubrule_def S24st_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {375,(State*)&S25_Csubrule_def} // shift sym: T_lint
+ }// end of shift table
+};
+yacco2::State S24_Csubrule_def = //State's vectored into symbol: "|||"
+{24
+,0,0,0,0,(Shift_tbl*)&S24st_Csubrule_def,0,0,0,0};
+struct S25rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S25rtd_Csubrule_def S25rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Csubrule_def,Csubrule_def::rhs1_Rlint_epi_}
+ }// end of reduce table
+};
+yacco2::State S25_Csubrule_def = //State's vectored into symbol: "lint"
+{25
+,0,0,0,0,0,(Reduce_tbl*)&S25rt_Csubrule_def,0,0,0};
+struct S26rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S26rtd_Csubrule_def S26rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Csubrule_def,Csubrule_def::rhs2_Rlint_epi_}
+ }// end of reduce table
+};
+yacco2::State S26_Csubrule_def = //State's vectored into symbol: "|.|"
+{26
+,0,0,0,0,0,(Reduce_tbl*)&S26rt_Csubrule_def,0,0,0};
+struct S27rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S27rtd_Csubrule_def S27rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Csubrule_def,Csubrule_def::rhs3_Rrhs_expr_}
+ }// end of reduce table
+};
+yacco2::State S27_Csubrule_def = //State's vectored into symbol: "Rlint_epi"
+{27
+,0,0,0,0,0,(Reduce_tbl*)&S27rt_Csubrule_def,0,0,0};
+struct S28std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S28std_Csubrule_def S28st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S24_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{5,(State*)&S26_Csubrule_def} // shift sym: LR1_invisible_shift_operator
+ ,{602,(State*)&S29_Csubrule_def} // shift sym: Rlint_epi
+ }// end of shift table
+};
+yacco2::Shift_entry S28pse_Csubrule_def = {3,(State*)&S24_Csubrule_def};
+yacco2::Shift_entry S28ise_Csubrule_def = {5,(State*)&S26_Csubrule_def};
+yacco2::State S28_Csubrule_def = //State's vectored into symbol: "Rcalled_thd_eos"
+{28
+,(Shift_entry*)&S28pse_Csubrule_def,0,(Shift_entry*)&S28ise_Csubrule_def
+,0,(Shift_tbl*)&S28st_Csubrule_def,0,(State_s_thread_tbl*)&S24tt_Csubrule_def,0,0};
+struct S29std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S29std_Csubrule_def S29st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {131,(State*)&S88_Csubrule_def} // shift sym: raw_open_brace
+ ,{591,(State*)&S30_Csubrule_def} // shift sym: Rpotential_codeblk
+ ,{592,(State*)&S94_Csubrule_def} // shift sym: Rpotential_directives
+ }// end of shift table
+};
+struct S29rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S29rtd_Csubrule_def S29rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs1_Rpotential_directives_}
+ }// end of reduce table
+};
+yacco2::State S29_Csubrule_def = //State's vectored into symbol: "Rlint_epi"
+{29
+,0,0,0,0,(Shift_tbl*)&S29st_Csubrule_def,(Reduce_tbl*)&S29rt_Csubrule_def,0,0,0};
+struct S30std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S30std_Csubrule_def S30st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S24_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{5,(State*)&S26_Csubrule_def} // shift sym: LR1_invisible_shift_operator
+ ,{602,(State*)&S31_Csubrule_def} // shift sym: Rlint_epi
+ }// end of shift table
+};
+yacco2::Shift_entry S30pse_Csubrule_def = {3,(State*)&S24_Csubrule_def};
+yacco2::Shift_entry S30ise_Csubrule_def = {5,(State*)&S26_Csubrule_def};
+yacco2::State S30_Csubrule_def = //State's vectored into symbol: "Rpotential_codeblk"
+{30
+,(Shift_entry*)&S30pse_Csubrule_def,0,(Shift_entry*)&S30ise_Csubrule_def
+,0,(Shift_tbl*)&S30st_Csubrule_def,0,(State_s_thread_tbl*)&S24tt_Csubrule_def,0,0};
+struct S31rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S31rtd_Csubrule_def S31rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Csubrule_def,Csubrule_def::rhs2_Rrhs_expr_}
+ }// end of reduce table
+};
+yacco2::State S31_Csubrule_def = //State's vectored into symbol: "Rlint_epi"
+{31
+,0,0,0,0,0,(Reduce_tbl*)&S31rt_Csubrule_def,0,0,0};
+struct S32std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S32std_Csubrule_def S32st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S24_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{5,(State*)&S26_Csubrule_def} // shift sym: LR1_invisible_shift_operator
+ ,{602,(State*)&S33_Csubrule_def} // shift sym: Rlint_epi
+ }// end of shift table
+};
+yacco2::Shift_entry S32pse_Csubrule_def = {3,(State*)&S24_Csubrule_def};
+yacco2::Shift_entry S32ise_Csubrule_def = {5,(State*)&S26_Csubrule_def};
+yacco2::State S32_Csubrule_def = //State's vectored into symbol: "Rcalled_proc_op"
+{32
+,(Shift_entry*)&S32pse_Csubrule_def,0,(Shift_entry*)&S32ise_Csubrule_def
+,0,(Shift_tbl*)&S32st_Csubrule_def,0,(State_s_thread_tbl*)&S24tt_Csubrule_def,0,0};
+struct S33std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S33std_Csubrule_def S33st_Csubrule_def = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S60_Csubrule_def} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S61_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{575,(State*)&S95_Csubrule_def} // shift sym: Rrtned_T
+ ,{582,(State*)&S34_Csubrule_def} // shift sym: Rbal_called_proc_expr
+ }// end of shift table
+};
+yacco2::Shift_entry S33pse_Csubrule_def = {3,(State*)&S61_Csubrule_def};
+yacco2::Shift_entry S33qse_Csubrule_def = {0,(State*)&S60_Csubrule_def};
+yacco2::State S33_Csubrule_def = //State's vectored into symbol: "Rlint_epi"
+{33
+,(Shift_entry*)&S33pse_Csubrule_def,0,0,0,(Shift_tbl*)&S33st_Csubrule_def,0,(State_s_thread_tbl*)&S61tt_Csubrule_def,0,(Shift_entry*)&S33qse_Csubrule_def
+};
+struct S34std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S34std_Csubrule_def S34st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S24_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{5,(State*)&S26_Csubrule_def} // shift sym: LR1_invisible_shift_operator
+ ,{602,(State*)&S35_Csubrule_def} // shift sym: Rlint_epi
+ }// end of shift table
+};
+yacco2::Shift_entry S34pse_Csubrule_def = {3,(State*)&S24_Csubrule_def};
+yacco2::Shift_entry S34ise_Csubrule_def = {5,(State*)&S26_Csubrule_def};
+yacco2::State S34_Csubrule_def = //State's vectored into symbol: "Rbal_called_proc_expr"
+{34
+,(Shift_entry*)&S34pse_Csubrule_def,0,(Shift_entry*)&S34ise_Csubrule_def
+,0,(Shift_tbl*)&S34st_Csubrule_def,0,(State_s_thread_tbl*)&S24tt_Csubrule_def,0,0};
+struct S35std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S35std_Csubrule_def S35st_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {5,(State*)&S36_Csubrule_def} // shift sym: LR1_invisible_shift_operator
+ }// end of shift table
+};
+yacco2::Shift_entry S35ise_Csubrule_def = {5,(State*)&S36_Csubrule_def};
+yacco2::State S35_Csubrule_def = //State's vectored into symbol: "Rlint_epi"
+{35
+,0,0,(Shift_entry*)&S35ise_Csubrule_def
+,0,(Shift_tbl*)&S35st_Csubrule_def,0,0,0,0};
+struct S36std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S36std_Csubrule_def S36st_Csubrule_def = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S102_Csubrule_def} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S103_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{587,(State*)&S37_Csubrule_def} // shift sym: Rchained_dispatcher
+ ,{590,(State*)&S43_Csubrule_def} // shift sym: Rcalled_proc_eos
+ }// end of shift table
+};
+yacco2::Shift_entry S36pse_Csubrule_def = {3,(State*)&S103_Csubrule_def};
+yacco2::Shift_entry S36qse_Csubrule_def = {0,(State*)&S102_Csubrule_def};
+yacco2::State S36_Csubrule_def = //State's vectored into symbol: "|.|"
+{36
+,(Shift_entry*)&S36pse_Csubrule_def,0,0,0,(Shift_tbl*)&S36st_Csubrule_def,0,(State_s_thread_tbl*)&S103tt_Csubrule_def,0,(Shift_entry*)&S36qse_Csubrule_def
+};
+struct S37std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S37std_Csubrule_def S37st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S24_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{5,(State*)&S26_Csubrule_def} // shift sym: LR1_invisible_shift_operator
+ ,{602,(State*)&S38_Csubrule_def} // shift sym: Rlint_epi
+ }// end of shift table
+};
+yacco2::Shift_entry S37pse_Csubrule_def = {3,(State*)&S24_Csubrule_def};
+yacco2::Shift_entry S37ise_Csubrule_def = {5,(State*)&S26_Csubrule_def};
+yacco2::State S37_Csubrule_def = //State's vectored into symbol: "Rchained_dispatcher"
+{37
+,(Shift_entry*)&S37pse_Csubrule_def,0,(Shift_entry*)&S37ise_Csubrule_def
+,0,(Shift_tbl*)&S37st_Csubrule_def,0,(State_s_thread_tbl*)&S24tt_Csubrule_def,0,0};
+struct S38std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S38std_Csubrule_def S38st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S102_Csubrule_def} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S105_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{590,(State*)&S39_Csubrule_def} // shift sym: Rcalled_proc_eos
+ }// end of shift table
+};
+yacco2::Shift_entry S38pse_Csubrule_def = {3,(State*)&S105_Csubrule_def};
+yacco2::Shift_entry S38qse_Csubrule_def = {0,(State*)&S102_Csubrule_def};
+yacco2::State S38_Csubrule_def = //State's vectored into symbol: "Rlint_epi"
+{38
+,(Shift_entry*)&S38pse_Csubrule_def,0,0,0,(Shift_tbl*)&S38st_Csubrule_def,0,(State_s_thread_tbl*)&S105tt_Csubrule_def,0,(Shift_entry*)&S38qse_Csubrule_def
+};
+struct S39std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S39std_Csubrule_def S39st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S24_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{5,(State*)&S26_Csubrule_def} // shift sym: LR1_invisible_shift_operator
+ ,{602,(State*)&S40_Csubrule_def} // shift sym: Rlint_epi
+ }// end of shift table
+};
+yacco2::Shift_entry S39pse_Csubrule_def = {3,(State*)&S24_Csubrule_def};
+yacco2::Shift_entry S39ise_Csubrule_def = {5,(State*)&S26_Csubrule_def};
+yacco2::State S39_Csubrule_def = //State's vectored into symbol: "Rcalled_proc_eos"
+{39
+,(Shift_entry*)&S39pse_Csubrule_def,0,(Shift_entry*)&S39ise_Csubrule_def
+,0,(Shift_tbl*)&S39st_Csubrule_def,0,(State_s_thread_tbl*)&S24tt_Csubrule_def,0,0};
+struct S40std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S40std_Csubrule_def S40st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {131,(State*)&S88_Csubrule_def} // shift sym: raw_open_brace
+ ,{591,(State*)&S41_Csubrule_def} // shift sym: Rpotential_codeblk
+ ,{592,(State*)&S94_Csubrule_def} // shift sym: Rpotential_directives
+ }// end of shift table
+};
+struct S40rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S40rtd_Csubrule_def S40rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs1_Rpotential_directives_}
+ }// end of reduce table
+};
+yacco2::State S40_Csubrule_def = //State's vectored into symbol: "Rlint_epi"
+{40
+,0,0,0,0,(Shift_tbl*)&S40st_Csubrule_def,(Reduce_tbl*)&S40rt_Csubrule_def,0,0,0};
+struct S41std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S41std_Csubrule_def S41st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S24_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{5,(State*)&S26_Csubrule_def} // shift sym: LR1_invisible_shift_operator
+ ,{602,(State*)&S42_Csubrule_def} // shift sym: Rlint_epi
+ }// end of shift table
+};
+yacco2::Shift_entry S41pse_Csubrule_def = {3,(State*)&S24_Csubrule_def};
+yacco2::Shift_entry S41ise_Csubrule_def = {5,(State*)&S26_Csubrule_def};
+yacco2::State S41_Csubrule_def = //State's vectored into symbol: "Rpotential_codeblk"
+{41
+,(Shift_entry*)&S41pse_Csubrule_def,0,(Shift_entry*)&S41ise_Csubrule_def
+,0,(Shift_tbl*)&S41st_Csubrule_def,0,(State_s_thread_tbl*)&S24tt_Csubrule_def,0,0};
+struct S42rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S42rtd_Csubrule_def S42rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Csubrule_def,Csubrule_def::rhs5_Rrhs_expr_}
+ }// end of reduce table
+};
+yacco2::State S42_Csubrule_def = //State's vectored into symbol: "Rlint_epi"
+{42
+,0,0,0,0,0,(Reduce_tbl*)&S42rt_Csubrule_def,0,0,0};
+struct S43std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S43std_Csubrule_def S43st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S24_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{5,(State*)&S26_Csubrule_def} // shift sym: LR1_invisible_shift_operator
+ ,{602,(State*)&S44_Csubrule_def} // shift sym: Rlint_epi
+ }// end of shift table
+};
+yacco2::Shift_entry S43pse_Csubrule_def = {3,(State*)&S24_Csubrule_def};
+yacco2::Shift_entry S43ise_Csubrule_def = {5,(State*)&S26_Csubrule_def};
+yacco2::State S43_Csubrule_def = //State's vectored into symbol: "Rcalled_proc_eos"
+{43
+,(Shift_entry*)&S43pse_Csubrule_def,0,(Shift_entry*)&S43ise_Csubrule_def
+,0,(Shift_tbl*)&S43st_Csubrule_def,0,(State_s_thread_tbl*)&S24tt_Csubrule_def,0,0};
+struct S44std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S44std_Csubrule_def S44st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {131,(State*)&S88_Csubrule_def} // shift sym: raw_open_brace
+ ,{591,(State*)&S45_Csubrule_def} // shift sym: Rpotential_codeblk
+ ,{592,(State*)&S94_Csubrule_def} // shift sym: Rpotential_directives
+ }// end of shift table
+};
+struct S44rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S44rtd_Csubrule_def S44rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs1_Rpotential_directives_}
+ }// end of reduce table
+};
+yacco2::State S44_Csubrule_def = //State's vectored into symbol: "Rlint_epi"
+{44
+,0,0,0,0,(Shift_tbl*)&S44st_Csubrule_def,(Reduce_tbl*)&S44rt_Csubrule_def,0,0,0};
+struct S45std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S45std_Csubrule_def S45st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S24_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{5,(State*)&S26_Csubrule_def} // shift sym: LR1_invisible_shift_operator
+ ,{602,(State*)&S46_Csubrule_def} // shift sym: Rlint_epi
+ }// end of shift table
+};
+yacco2::Shift_entry S45pse_Csubrule_def = {3,(State*)&S24_Csubrule_def};
+yacco2::Shift_entry S45ise_Csubrule_def = {5,(State*)&S26_Csubrule_def};
+yacco2::State S45_Csubrule_def = //State's vectored into symbol: "Rpotential_codeblk"
+{45
+,(Shift_entry*)&S45pse_Csubrule_def,0,(Shift_entry*)&S45ise_Csubrule_def
+,0,(Shift_tbl*)&S45st_Csubrule_def,0,(State_s_thread_tbl*)&S24tt_Csubrule_def,0,0};
+struct S46rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S46rtd_Csubrule_def S46rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Csubrule_def,Csubrule_def::rhs4_Rrhs_expr_}
+ }// end of reduce table
+};
+yacco2::State S46_Csubrule_def = //State's vectored into symbol: "Rlint_epi"
+{46
+,0,0,0,0,0,(Reduce_tbl*)&S46rt_Csubrule_def,0,0,0};
+struct S47std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S47std_Csubrule_def S47st_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {5,(State*)&S48_Csubrule_def} // shift sym: LR1_invisible_shift_operator
+ }// end of shift table
+};
+yacco2::Shift_entry S47ise_Csubrule_def = {5,(State*)&S48_Csubrule_def};
+yacco2::State S47_Csubrule_def = //State's vectored into symbol: "RTorRcomponents_epi"
+{47
+,0,0,(Shift_entry*)&S47ise_Csubrule_def
+,0,(Shift_tbl*)&S47st_Csubrule_def,0,0,0,0};
+struct S48std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S48std_Csubrule_def S48st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S106_Csubrule_def} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S107_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{588,(State*)&S49_Csubrule_def} // shift sym: Rmust_eos
+ }// end of shift table
+};
+yacco2::Shift_entry S48pse_Csubrule_def = {3,(State*)&S107_Csubrule_def};
+yacco2::Shift_entry S48qse_Csubrule_def = {0,(State*)&S106_Csubrule_def};
+yacco2::State S48_Csubrule_def = //State's vectored into symbol: "|.|"
+{48
+,(Shift_entry*)&S48pse_Csubrule_def,0,0,0,(Shift_tbl*)&S48st_Csubrule_def,0,(State_s_thread_tbl*)&S107tt_Csubrule_def,0,(Shift_entry*)&S48qse_Csubrule_def
+};
+struct S49std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S49std_Csubrule_def S49st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {131,(State*)&S88_Csubrule_def} // shift sym: raw_open_brace
+ ,{591,(State*)&S50_Csubrule_def} // shift sym: Rpotential_codeblk
+ ,{592,(State*)&S94_Csubrule_def} // shift sym: Rpotential_directives
+ }// end of shift table
+};
+struct S49rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S49rtd_Csubrule_def S49rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs1_Rpotential_directives_}
+ }// end of reduce table
+};
+yacco2::State S49_Csubrule_def = //State's vectored into symbol: "Rmust_eos"
+{49
+,0,0,0,0,(Shift_tbl*)&S49st_Csubrule_def,(Reduce_tbl*)&S49rt_Csubrule_def,0,0,0};
+struct S50std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S50std_Csubrule_def S50st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S24_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{5,(State*)&S26_Csubrule_def} // shift sym: LR1_invisible_shift_operator
+ ,{602,(State*)&S51_Csubrule_def} // shift sym: Rlint_epi
+ }// end of shift table
+};
+yacco2::Shift_entry S50pse_Csubrule_def = {3,(State*)&S24_Csubrule_def};
+yacco2::Shift_entry S50ise_Csubrule_def = {5,(State*)&S26_Csubrule_def};
+yacco2::State S50_Csubrule_def = //State's vectored into symbol: "Rpotential_codeblk"
+{50
+,(Shift_entry*)&S50pse_Csubrule_def,0,(Shift_entry*)&S50ise_Csubrule_def
+,0,(Shift_tbl*)&S50st_Csubrule_def,0,(State_s_thread_tbl*)&S24tt_Csubrule_def,0,0};
+struct S51rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S51rtd_Csubrule_def S51rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Csubrule_def,Csubrule_def::rhs1_Rrhs_expr_}
+ }// end of reduce table
+};
+yacco2::State S51_Csubrule_def = //State's vectored into symbol: "Rlint_epi"
+{51
+,0,0,0,0,0,(Reduce_tbl*)&S51rt_Csubrule_def,0,0,0};
+struct S52std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S52std_Csubrule_def S52st_Csubrule_def = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S110_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{586,(State*)&S53_Csubrule_def} // shift sym: RTorRcomponent
+ }// end of shift table
+};
+yacco2::Shift_entry S52pse_Csubrule_def = {3,(State*)&S110_Csubrule_def};
+struct S52rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S52rtd_Csubrule_def S52rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Csubrule_def,Csubrule_def::rhs2_RTorRcomponents_epi_}
+ }// end of reduce table
+};
+yacco2::State S52_Csubrule_def = //State's vectored into symbol: "RTorRcomponents"
+{52
+,(Shift_entry*)&S52pse_Csubrule_def,0,0,0,(Shift_tbl*)&S52st_Csubrule_def,(Reduce_tbl*)&S52rt_Csubrule_def,(State_s_thread_tbl*)&S110tt_Csubrule_def,0,0};
+struct S53std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S53std_Csubrule_def S53st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S24_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{5,(State*)&S26_Csubrule_def} // shift sym: LR1_invisible_shift_operator
+ ,{602,(State*)&S54_Csubrule_def} // shift sym: Rlint_epi
+ }// end of shift table
+};
+yacco2::Shift_entry S53pse_Csubrule_def = {3,(State*)&S24_Csubrule_def};
+yacco2::Shift_entry S53ise_Csubrule_def = {5,(State*)&S26_Csubrule_def};
+yacco2::State S53_Csubrule_def = //State's vectored into symbol: "RTorRcomponent"
+{53
+,(Shift_entry*)&S53pse_Csubrule_def,0,(Shift_entry*)&S53ise_Csubrule_def
+,0,(Shift_tbl*)&S53st_Csubrule_def,0,(State_s_thread_tbl*)&S24tt_Csubrule_def,0,0};
+struct S54rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S54rtd_Csubrule_def S54rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs2_RTorRcomponents_}
+ }// end of reduce table
+};
+yacco2::State S54_Csubrule_def = //State's vectored into symbol: "Rlint_epi"
+{54
+,0,0,0,0,0,(Reduce_tbl*)&S54rt_Csubrule_def,0,0,0};
+struct S55std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S55std_Csubrule_def S55st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S24_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{5,(State*)&S26_Csubrule_def} // shift sym: LR1_invisible_shift_operator
+ ,{602,(State*)&S56_Csubrule_def} // shift sym: Rlint_epi
+ }// end of shift table
+};
+yacco2::Shift_entry S55pse_Csubrule_def = {3,(State*)&S24_Csubrule_def};
+yacco2::Shift_entry S55ise_Csubrule_def = {5,(State*)&S26_Csubrule_def};
+yacco2::State S55_Csubrule_def = //State's vectored into symbol: "RTorRcomponent"
+{55
+,(Shift_entry*)&S55pse_Csubrule_def,0,(Shift_entry*)&S55ise_Csubrule_def
+,0,(Shift_tbl*)&S55st_Csubrule_def,0,(State_s_thread_tbl*)&S24tt_Csubrule_def,0,0};
+struct S56rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S56rtd_Csubrule_def S56rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs1_RTorRcomponents_}
+ }// end of reduce table
+};
+yacco2::State S56_Csubrule_def = //State's vectored into symbol: "Rlint_epi"
+{56
+,0,0,0,0,0,(Reduce_tbl*)&S56rt_Csubrule_def,0,0,0};
+struct S57std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S57std_Csubrule_def S57st_Csubrule_def = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S111_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{604,(State*)&S58_Csubrule_def} // shift sym: Rcweb_k_epi
+ }// end of shift table
+};
+yacco2::Shift_entry S57pse_Csubrule_def = {3,(State*)&S111_Csubrule_def};
+struct S57rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S57rtd_Csubrule_def S57rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs4_Rcweb_k_epi_}
+ }// end of reduce table
+};
+yacco2::State S57_Csubrule_def = //State's vectored into symbol: "Rlint_epi"
+{57
+,(Shift_entry*)&S57pse_Csubrule_def,0,0,0,(Shift_tbl*)&S57st_Csubrule_def,(Reduce_tbl*)&S57rt_Csubrule_def,(State_s_thread_tbl*)&S111tt_Csubrule_def,0,0};
+struct S58std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S58std_Csubrule_def S58st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S24_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{5,(State*)&S26_Csubrule_def} // shift sym: LR1_invisible_shift_operator
+ ,{602,(State*)&S59_Csubrule_def} // shift sym: Rlint_epi
+ }// end of shift table
+};
+yacco2::Shift_entry S58pse_Csubrule_def = {3,(State*)&S24_Csubrule_def};
+yacco2::Shift_entry S58ise_Csubrule_def = {5,(State*)&S26_Csubrule_def};
+yacco2::State S58_Csubrule_def = //State's vectored into symbol: "Rcweb_k_epi"
+{58
+,(Shift_entry*)&S58pse_Csubrule_def,0,(Shift_entry*)&S58ise_Csubrule_def
+,0,(Shift_tbl*)&S58st_Csubrule_def,0,(State_s_thread_tbl*)&S24tt_Csubrule_def,0,0};
+struct S59rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S59rtd_Csubrule_def S59rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs1_Rcommon_comments_}
+ }// end of reduce table
+};
+yacco2::State S59_Csubrule_def = //State's vectored into symbol: "Rlint_epi"
+{59
+,0,0,0,0,0,(Reduce_tbl*)&S59rt_Csubrule_def,0,0,0};
+struct S60rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S60rtd_Csubrule_def S60rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs3_Rrtned_T_}
+ }// end of reduce table
+};
+yacco2::State S60_Csubrule_def = //State's vectored into symbol: "|?|"
+{60
+,0,0,0,0,0,(Reduce_tbl*)&S60rt_Csubrule_def,0,0,0};
+struct S61std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S61std_Csubrule_def S61st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S62_Csubrule_def} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S63_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{344,(State*)&S64_Csubrule_def} // shift sym: T_in_stbl
+ }// end of shift table
+};
+yacco2::Shift_entry S61pse_Csubrule_def = {3,(State*)&S63_Csubrule_def};
+yacco2::Shift_entry S61qse_Csubrule_def = {0,(State*)&S62_Csubrule_def};
+yacco2::State S61_Csubrule_def = //State's vectored into symbol: "|||"
+{61
+,(Shift_entry*)&S61pse_Csubrule_def,0,0,0,(Shift_tbl*)&S61st_Csubrule_def,0,0,0,(Shift_entry*)&S61qse_Csubrule_def
+};
+struct S62rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S62rtd_Csubrule_def S62rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs2_Rrtned_T_}
+ }// end of reduce table
+};
+yacco2::State S62_Csubrule_def = //State's vectored into symbol: "|?|"
+{62
+,0,0,0,0,0,(Reduce_tbl*)&S62rt_Csubrule_def,0,0,0};
+struct S63rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S63rtd_Csubrule_def S63rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs4_Rrtned_T_}
+ }// end of reduce table
+};
+yacco2::State S63_Csubrule_def = //State's vectored into symbol: "|||"
+{63
+,0,0,0,0,0,(Reduce_tbl*)&S63rt_Csubrule_def,0,0,0};
+struct S64rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S64rtd_Csubrule_def S64rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs1_Rrtned_T_}
+ }// end of reduce table
+};
+yacco2::State S64_Csubrule_def = //State's vectored into symbol: "T-in-stbl"
+{64
+,0,0,0,0,0,(Reduce_tbl*)&S64rt_Csubrule_def,0,0,0};
+struct S65std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S65std_Csubrule_def S65st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S24_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{5,(State*)&S26_Csubrule_def} // shift sym: LR1_invisible_shift_operator
+ ,{602,(State*)&S66_Csubrule_def} // shift sym: Rlint_epi
+ }// end of shift table
+};
+yacco2::Shift_entry S65pse_Csubrule_def = {3,(State*)&S24_Csubrule_def};
+yacco2::Shift_entry S65ise_Csubrule_def = {5,(State*)&S26_Csubrule_def};
+yacco2::State S65_Csubrule_def = //State's vectored into symbol: "Rrtned_T"
+{65
+,(Shift_entry*)&S65pse_Csubrule_def,0,(Shift_entry*)&S65ise_Csubrule_def
+,0,(Shift_tbl*)&S65st_Csubrule_def,0,(State_s_thread_tbl*)&S24tt_Csubrule_def,0,0};
+struct S66std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S66std_Csubrule_def S66st_Csubrule_def = {
+ 5
+ ,
+ {// start of table
+ {0,(State*)&S67_Csubrule_def} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S68_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{576,(State*)&S72_Csubrule_def} // shift sym: Rcalled_thread
+ ,{577,(State*)&S73_Csubrule_def} // shift sym: RNULL
+ ,{578,(State*)&S74_Csubrule_def} // shift sym: Rns
+ }// end of shift table
+};
+yacco2::Shift_entry S66pse_Csubrule_def = {3,(State*)&S68_Csubrule_def};
+yacco2::Shift_entry S66qse_Csubrule_def = {0,(State*)&S67_Csubrule_def};
+yacco2::State S66_Csubrule_def = //State's vectored into symbol: "Rlint_epi"
+{66
+,(Shift_entry*)&S66pse_Csubrule_def,0,0,0,(Shift_tbl*)&S66st_Csubrule_def,0,(State_s_thread_tbl*)&S68tt_Csubrule_def,0,(Shift_entry*)&S66qse_Csubrule_def
+};
+struct S67rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S67rtd_Csubrule_def S67rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Csubrule_def,Csubrule_def::rhs3_Rns_}
+ }// end of reduce table
+};
+yacco2::State S67_Csubrule_def = //State's vectored into symbol: "|?|"
+{67
+,0,0,0,0,0,(Reduce_tbl*)&S67rt_Csubrule_def,0,0,0};
+struct S68std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S68std_Csubrule_def S68st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S69_Csubrule_def} // shift sym: LR1_questionable_shift_operator
+ ,{279,(State*)&S70_Csubrule_def} // shift sym: T_identifier
+ ,{323,(State*)&S71_Csubrule_def} // shift sym: T_NULL
+ }// end of shift table
+};
+yacco2::Shift_entry S68qse_Csubrule_def = {0,(State*)&S69_Csubrule_def};
+yacco2::State S68_Csubrule_def = //State's vectored into symbol: "|||"
+{68
+,0,0,0,0,(Shift_tbl*)&S68st_Csubrule_def,0,0,0,(Shift_entry*)&S68qse_Csubrule_def
+};
+struct S69rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S69rtd_Csubrule_def S69rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Csubrule_def,Csubrule_def::rhs2_Rns_}
+ }// end of reduce table
+};
+yacco2::State S69_Csubrule_def = //State's vectored into symbol: "|?|"
+{69
+,0,0,0,0,0,(Reduce_tbl*)&S69rt_Csubrule_def,0,0,0};
+struct S70rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S70rtd_Csubrule_def S70rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Csubrule_def,Csubrule_def::rhs1_Rns_}
+ }// end of reduce table
+};
+yacco2::State S70_Csubrule_def = //State's vectored into symbol: "identifier"
+{70
+,0,0,0,0,0,(Reduce_tbl*)&S70rt_Csubrule_def,0,0,0};
+struct S71rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S71rtd_Csubrule_def S71rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs1_RNULL_}
+ }// end of reduce table
+};
+yacco2::State S71_Csubrule_def = //State's vectored into symbol: "#NULL"
+{71
+,0,0,0,0,0,(Reduce_tbl*)&S71rt_Csubrule_def,0,0,0};
+struct S72rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S72rtd_Csubrule_def S72rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs1_Rbal_thread_expr_}
+ }// end of reduce table
+};
+yacco2::State S72_Csubrule_def = //State's vectored into symbol: "Rcalled_thread"
+{72
+,0,0,0,0,0,(Reduce_tbl*)&S72rt_Csubrule_def,0,0,0};
+struct S73rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S73rtd_Csubrule_def S73rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs2_Rcalled_thread_}
+ }// end of reduce table
+};
+yacco2::State S73_Csubrule_def = //State's vectored into symbol: "RNULL"
+{73
+,0,0,0,0,0,(Reduce_tbl*)&S73rt_Csubrule_def,0,0,0};
+struct S74std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S74std_Csubrule_def S74st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S115_Csubrule_def} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S116_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{579,(State*)&S75_Csubrule_def} // shift sym: Rdbl_colon
+ }// end of shift table
+};
+yacco2::Shift_entry S74pse_Csubrule_def = {3,(State*)&S116_Csubrule_def};
+yacco2::Shift_entry S74qse_Csubrule_def = {0,(State*)&S115_Csubrule_def};
+yacco2::State S74_Csubrule_def = //State's vectored into symbol: "Rns"
+{74
+,(Shift_entry*)&S74pse_Csubrule_def,0,0,0,(Shift_tbl*)&S74st_Csubrule_def,0,(State_s_thread_tbl*)&S116tt_Csubrule_def,0,(Shift_entry*)&S74qse_Csubrule_def
+};
+struct S75std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S75std_Csubrule_def S75st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S76_Csubrule_def} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S77_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{580,(State*)&S80_Csubrule_def} // shift sym: Rth_name
+ }// end of shift table
+};
+yacco2::Shift_entry S75pse_Csubrule_def = {3,(State*)&S77_Csubrule_def};
+yacco2::Shift_entry S75qse_Csubrule_def = {0,(State*)&S76_Csubrule_def};
+yacco2::State S75_Csubrule_def = //State's vectored into symbol: "Rdbl_colon"
+{75
+,(Shift_entry*)&S75pse_Csubrule_def,0,0,0,(Shift_tbl*)&S75st_Csubrule_def,0,(State_s_thread_tbl*)&S77tt_Csubrule_def,0,(Shift_entry*)&S75qse_Csubrule_def
+};
+struct S76rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S76rtd_Csubrule_def S76rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs3_Rth_name_}
+ }// end of reduce table
+};
+yacco2::State S76_Csubrule_def = //State's vectored into symbol: "|?|"
+{76
+,0,0,0,0,0,(Reduce_tbl*)&S76rt_Csubrule_def,0,0,0};
+struct S77std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S77std_Csubrule_def S77st_Csubrule_def = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S78_Csubrule_def} // shift sym: LR1_questionable_shift_operator
+ ,{279,(State*)&S79_Csubrule_def} // shift sym: T_identifier
+ }// end of shift table
+};
+yacco2::Shift_entry S77qse_Csubrule_def = {0,(State*)&S78_Csubrule_def};
+yacco2::State S77_Csubrule_def = //State's vectored into symbol: "|||"
+{77
+,0,0,0,0,(Shift_tbl*)&S77st_Csubrule_def,0,0,0,(Shift_entry*)&S77qse_Csubrule_def
+};
+struct S78rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S78rtd_Csubrule_def S78rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs2_Rth_name_}
+ }// end of reduce table
+};
+yacco2::State S78_Csubrule_def = //State's vectored into symbol: "|?|"
+{78
+,0,0,0,0,0,(Reduce_tbl*)&S78rt_Csubrule_def,0,0,0};
+struct S79rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S79rtd_Csubrule_def S79rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs1_Rth_name_}
+ }// end of reduce table
+};
+yacco2::State S79_Csubrule_def = //State's vectored into symbol: "identifier"
+{79
+,0,0,0,0,0,(Reduce_tbl*)&S79rt_Csubrule_def,0,0,0};
+struct S80rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S80rtd_Csubrule_def S80rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs1_Rcalled_thread_}
+ }// end of reduce table
+};
+yacco2::State S80_Csubrule_def = //State's vectored into symbol: "Rth_name"
+{80
+,0,0,0,0,0,(Reduce_tbl*)&S80rt_Csubrule_def,0,0,0};
+struct S81rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S81rtd_Csubrule_def S81rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs2_Rcalled_thd_eos_}
+ }// end of reduce table
+};
+yacco2::State S81_Csubrule_def = //State's vectored into symbol: "|?|"
+{81
+,0,0,0,0,0,(Reduce_tbl*)&S81rt_Csubrule_def,0,0,0};
+struct S82std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S82std_Csubrule_def S82st_Csubrule_def = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S83_Csubrule_def} // shift sym: LR1_questionable_shift_operator
+ ,{344,(State*)&S84_Csubrule_def} // shift sym: T_in_stbl
+ ,{346,(State*)&S85_Csubrule_def} // shift sym: rule_in_stbl
+ ,{369,(State*)&S86_Csubrule_def} // shift sym: T_eosubrule
+ }// end of shift table
+};
+yacco2::Shift_entry S82qse_Csubrule_def = {0,(State*)&S83_Csubrule_def};
+yacco2::State S82_Csubrule_def = //State's vectored into symbol: "|||"
+{82
+,0,0,0,0,(Shift_tbl*)&S82st_Csubrule_def,0,0,0,(Shift_entry*)&S82qse_Csubrule_def
+};
+struct S83rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S83rtd_Csubrule_def S83rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs3_Rchained_dispatcher_}
+ }// end of reduce table
+};
+yacco2::State S83_Csubrule_def = //State's vectored into symbol: "|?|"
+{83
+,0,0,0,0,0,(Reduce_tbl*)&S83rt_Csubrule_def,0,0,0};
+struct S84rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S84rtd_Csubrule_def S84rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs2_Rchained_dispatcher_}
+ }// end of reduce table
+};
+yacco2::State S84_Csubrule_def = //State's vectored into symbol: "T-in-stbl"
+{84
+,0,0,0,0,0,(Reduce_tbl*)&S84rt_Csubrule_def,0,0,0};
+struct S85rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S85rtd_Csubrule_def S85rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs1_Rchained_dispatcher_}
+ }// end of reduce table
+};
+yacco2::State S85_Csubrule_def = //State's vectored into symbol: "rule-in-stbl"
+{85
+,0,0,0,0,0,(Reduce_tbl*)&S85rt_Csubrule_def,0,0,0};
+struct S86rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S86rtd_Csubrule_def S86rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs1_Rcalled_thd_eos_}
+ }// end of reduce table
+};
+yacco2::State S86_Csubrule_def = //State's vectored into symbol: "eosubrule"
+{86
+,0,0,0,0,0,(Reduce_tbl*)&S86rt_Csubrule_def,0,0,0};
+struct S87std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S87std_Csubrule_def S87st_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {369,(State*)&S86_Csubrule_def} // shift sym: T_eosubrule
+ }// end of shift table
+};
+yacco2::State S87_Csubrule_def = //State's vectored into symbol: "|||"
+{87
+,0,0,0,0,(Shift_tbl*)&S87st_Csubrule_def,0,0,0,0};
+struct S88std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S88std_Csubrule_def S88st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S24_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{5,(State*)&S26_Csubrule_def} // shift sym: LR1_invisible_shift_operator
+ ,{602,(State*)&S89_Csubrule_def} // shift sym: Rlint_epi
+ }// end of shift table
+};
+yacco2::Shift_entry S88pse_Csubrule_def = {3,(State*)&S24_Csubrule_def};
+yacco2::Shift_entry S88ise_Csubrule_def = {5,(State*)&S26_Csubrule_def};
+yacco2::State S88_Csubrule_def = //State's vectored into symbol: "{"
+{88
+,(Shift_entry*)&S88pse_Csubrule_def,0,(Shift_entry*)&S88ise_Csubrule_def
+,0,(Shift_tbl*)&S88st_Csubrule_def,0,(State_s_thread_tbl*)&S24tt_Csubrule_def,0,0};
+struct S89std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S89std_Csubrule_def S89st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S119_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{593,(State*)&S90_Csubrule_def} // shift sym: Rmust_directive_phrase
+ ,{603,(State*)&S123_Csubrule_def} // shift sym: Rdirective_cweb_k_epi
+ }// end of shift table
+};
+yacco2::Shift_entry S89pse_Csubrule_def = {3,(State*)&S119_Csubrule_def};
+struct S89rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S89rtd_Csubrule_def S89rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs1_Rdirective_cweb_k_epi_}
+ }// end of reduce table
+};
+yacco2::State S89_Csubrule_def = //State's vectored into symbol: "Rlint_epi"
+{89
+,(Shift_entry*)&S89pse_Csubrule_def,0,0,0,(Shift_tbl*)&S89st_Csubrule_def,(Reduce_tbl*)&S89rt_Csubrule_def,(State_s_thread_tbl*)&S119tt_Csubrule_def,0,0};
+struct S90std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[6];
+};
+S90std_Csubrule_def S90st_Csubrule_def = {
+ 6
+ ,
+ {// start of table
+ {3,(State*)&S128_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{596,(State*)&S91_Csubrule_def} // shift sym: Rmaybe_more_directives
+ ,{597,(State*)&S131_Csubrule_def} // shift sym: Rmaybe_directive_phrases
+ ,{598,(State*)&S141_Csubrule_def} // shift sym: Rmaybe_directive_phrase
+ ,{600,(State*)&S133_Csubrule_def} // shift sym: Rdirective
+ ,{603,(State*)&S136_Csubrule_def} // shift sym: Rdirective_cweb_k_epi
+ }// end of shift table
+};
+yacco2::Shift_entry S90pse_Csubrule_def = {3,(State*)&S128_Csubrule_def};
+struct S90rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[2];
+};
+S90rtd_Csubrule_def S90rt_Csubrule_def = {
+ 2
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs1_Rdirective_cweb_k_epi_}
+ ,{(Set_tbl*)&LA6_Csubrule_def,Csubrule_def::rhs1_Rmaybe_more_directives_}
+ }// end of reduce table
+};
+yacco2::State S90_Csubrule_def = //State's vectored into symbol: "Rmust_directive_phrase"
+{90
+,(Shift_entry*)&S90pse_Csubrule_def,0,0,0,(Shift_tbl*)&S90st_Csubrule_def,(Reduce_tbl*)&S90rt_Csubrule_def,(State_s_thread_tbl*)&S128tt_Csubrule_def,0,0};
+struct S91std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S91std_Csubrule_def S91st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S142_Csubrule_def} // shift sym: LR1_questionable_shift_operator
+ ,{133,(State*)&S143_Csubrule_def} // shift sym: raw_close_brace
+ ,{595,(State*)&S92_Csubrule_def} // shift sym: Rclose_brace
+ }// end of shift table
+};
+yacco2::Shift_entry S91qse_Csubrule_def = {0,(State*)&S142_Csubrule_def};
+yacco2::State S91_Csubrule_def = //State's vectored into symbol: "Rmaybe_more_directives"
+{91
+,0,0,0,0,(Shift_tbl*)&S91st_Csubrule_def,0,0,0,(Shift_entry*)&S91qse_Csubrule_def
+};
+struct S92std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S92std_Csubrule_def S92st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S24_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{5,(State*)&S26_Csubrule_def} // shift sym: LR1_invisible_shift_operator
+ ,{602,(State*)&S93_Csubrule_def} // shift sym: Rlint_epi
+ }// end of shift table
+};
+yacco2::Shift_entry S92pse_Csubrule_def = {3,(State*)&S24_Csubrule_def};
+yacco2::Shift_entry S92ise_Csubrule_def = {5,(State*)&S26_Csubrule_def};
+yacco2::State S92_Csubrule_def = //State's vectored into symbol: "Rclose_brace"
+{92
+,(Shift_entry*)&S92pse_Csubrule_def,0,(Shift_entry*)&S92ise_Csubrule_def
+,0,(Shift_tbl*)&S92st_Csubrule_def,0,(State_s_thread_tbl*)&S24tt_Csubrule_def,0,0};
+struct S93rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S93rtd_Csubrule_def S93rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs2_Rpotential_directives_}
+ }// end of reduce table
+};
+yacco2::State S93_Csubrule_def = //State's vectored into symbol: "Rlint_epi"
+{93
+,0,0,0,0,0,(Reduce_tbl*)&S93rt_Csubrule_def,0,0,0};
+struct S94rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S94rtd_Csubrule_def S94rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs1_Rpotential_codeblk_}
+ }// end of reduce table
+};
+yacco2::State S94_Csubrule_def = //State's vectored into symbol: "Rpotential_directives"
+{94
+,0,0,0,0,0,(Reduce_tbl*)&S94rt_Csubrule_def,0,0,0};
+struct S95std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S95std_Csubrule_def S95st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S24_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{5,(State*)&S26_Csubrule_def} // shift sym: LR1_invisible_shift_operator
+ ,{602,(State*)&S96_Csubrule_def} // shift sym: Rlint_epi
+ }// end of shift table
+};
+yacco2::Shift_entry S95pse_Csubrule_def = {3,(State*)&S24_Csubrule_def};
+yacco2::Shift_entry S95ise_Csubrule_def = {5,(State*)&S26_Csubrule_def};
+yacco2::State S95_Csubrule_def = //State's vectored into symbol: "Rrtned_T"
+{95
+,(Shift_entry*)&S95pse_Csubrule_def,0,(Shift_entry*)&S95ise_Csubrule_def
+,0,(Shift_tbl*)&S95st_Csubrule_def,0,(State_s_thread_tbl*)&S24tt_Csubrule_def,0,0};
+struct S96std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S96std_Csubrule_def S96st_Csubrule_def = {
+ 5
+ ,
+ {// start of table
+ {0,(State*)&S67_Csubrule_def} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S68_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{577,(State*)&S97_Csubrule_def} // shift sym: RNULL
+ ,{578,(State*)&S98_Csubrule_def} // shift sym: Rns
+ ,{583,(State*)&S101_Csubrule_def} // shift sym: Rcalled_proc_name
+ }// end of shift table
+};
+yacco2::Shift_entry S96pse_Csubrule_def = {3,(State*)&S68_Csubrule_def};
+yacco2::Shift_entry S96qse_Csubrule_def = {0,(State*)&S67_Csubrule_def};
+yacco2::State S96_Csubrule_def = //State's vectored into symbol: "Rlint_epi"
+{96
+,(Shift_entry*)&S96pse_Csubrule_def,0,0,0,(Shift_tbl*)&S96st_Csubrule_def,0,(State_s_thread_tbl*)&S68tt_Csubrule_def,0,(Shift_entry*)&S96qse_Csubrule_def
+};
+struct S97rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S97rtd_Csubrule_def S97rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs2_Rcalled_proc_name_}
+ }// end of reduce table
+};
+yacco2::State S97_Csubrule_def = //State's vectored into symbol: "RNULL"
+{97
+,0,0,0,0,0,(Reduce_tbl*)&S97rt_Csubrule_def,0,0,0};
+struct S98std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S98std_Csubrule_def S98st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S115_Csubrule_def} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S116_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{579,(State*)&S99_Csubrule_def} // shift sym: Rdbl_colon
+ }// end of shift table
+};
+yacco2::Shift_entry S98pse_Csubrule_def = {3,(State*)&S116_Csubrule_def};
+yacco2::Shift_entry S98qse_Csubrule_def = {0,(State*)&S115_Csubrule_def};
+yacco2::State S98_Csubrule_def = //State's vectored into symbol: "Rns"
+{98
+,(Shift_entry*)&S98pse_Csubrule_def,0,0,0,(Shift_tbl*)&S98st_Csubrule_def,0,(State_s_thread_tbl*)&S116tt_Csubrule_def,0,(Shift_entry*)&S98qse_Csubrule_def
+};
+struct S99std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S99std_Csubrule_def S99st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S76_Csubrule_def} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S77_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{580,(State*)&S100_Csubrule_def} // shift sym: Rth_name
+ }// end of shift table
+};
+yacco2::Shift_entry S99pse_Csubrule_def = {3,(State*)&S77_Csubrule_def};
+yacco2::Shift_entry S99qse_Csubrule_def = {0,(State*)&S76_Csubrule_def};
+yacco2::State S99_Csubrule_def = //State's vectored into symbol: "Rdbl_colon"
+{99
+,(Shift_entry*)&S99pse_Csubrule_def,0,0,0,(Shift_tbl*)&S99st_Csubrule_def,0,(State_s_thread_tbl*)&S77tt_Csubrule_def,0,(Shift_entry*)&S99qse_Csubrule_def
+};
+struct S100rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S100rtd_Csubrule_def S100rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs1_Rcalled_proc_name_}
+ }// end of reduce table
+};
+yacco2::State S100_Csubrule_def = //State's vectored into symbol: "Rth_name"
+{100
+,0,0,0,0,0,(Reduce_tbl*)&S100rt_Csubrule_def,0,0,0};
+struct S101rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S101rtd_Csubrule_def S101rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs1_Rbal_called_proc_expr_}
+ }// end of reduce table
+};
+yacco2::State S101_Csubrule_def = //State's vectored into symbol: "Rcalled_proc_name"
+{101
+,0,0,0,0,0,(Reduce_tbl*)&S101rt_Csubrule_def,0,0,0};
+struct S102rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S102rtd_Csubrule_def S102rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs2_Rcalled_proc_eos_}
+ }// end of reduce table
+};
+yacco2::State S102_Csubrule_def = //State's vectored into symbol: "|?|"
+{102
+,0,0,0,0,0,(Reduce_tbl*)&S102rt_Csubrule_def,0,0,0};
+struct S103std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S103std_Csubrule_def S103st_Csubrule_def = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S83_Csubrule_def} // shift sym: LR1_questionable_shift_operator
+ ,{344,(State*)&S84_Csubrule_def} // shift sym: T_in_stbl
+ ,{346,(State*)&S85_Csubrule_def} // shift sym: rule_in_stbl
+ ,{369,(State*)&S104_Csubrule_def} // shift sym: T_eosubrule
+ }// end of shift table
+};
+yacco2::Shift_entry S103qse_Csubrule_def = {0,(State*)&S83_Csubrule_def};
+yacco2::State S103_Csubrule_def = //State's vectored into symbol: "|||"
+{103
+,0,0,0,0,(Shift_tbl*)&S103st_Csubrule_def,0,0,0,(Shift_entry*)&S103qse_Csubrule_def
+};
+struct S104rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S104rtd_Csubrule_def S104rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs1_Rcalled_proc_eos_}
+ }// end of reduce table
+};
+yacco2::State S104_Csubrule_def = //State's vectored into symbol: "eosubrule"
+{104
+,0,0,0,0,0,(Reduce_tbl*)&S104rt_Csubrule_def,0,0,0};
+struct S105std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S105std_Csubrule_def S105st_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {369,(State*)&S104_Csubrule_def} // shift sym: T_eosubrule
+ }// end of shift table
+};
+yacco2::State S105_Csubrule_def = //State's vectored into symbol: "|||"
+{105
+,0,0,0,0,(Shift_tbl*)&S105st_Csubrule_def,0,0,0,0};
+struct S106rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S106rtd_Csubrule_def S106rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Csubrule_def,Csubrule_def::rhs2_Rmust_eos_}
+ }// end of reduce table
+};
+yacco2::State S106_Csubrule_def = //State's vectored into symbol: "|?|"
+{106
+,0,0,0,0,0,(Reduce_tbl*)&S106rt_Csubrule_def,0,0,0};
+struct S107std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S107std_Csubrule_def S107st_Csubrule_def = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S108_Csubrule_def} // shift sym: LR1_questionable_shift_operator
+ ,{369,(State*)&S109_Csubrule_def} // shift sym: T_eosubrule
+ }// end of shift table
+};
+yacco2::Shift_entry S107qse_Csubrule_def = {0,(State*)&S108_Csubrule_def};
+yacco2::State S107_Csubrule_def = //State's vectored into symbol: "|||"
+{107
+,0,0,0,0,(Shift_tbl*)&S107st_Csubrule_def,0,0,0,(Shift_entry*)&S107qse_Csubrule_def
+};
+struct S108rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S108rtd_Csubrule_def S108rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Csubrule_def,Csubrule_def::rhs3_Rmust_eos_}
+ }// end of reduce table
+};
+yacco2::State S108_Csubrule_def = //State's vectored into symbol: "|?|"
+{108
+,0,0,0,0,0,(Reduce_tbl*)&S108rt_Csubrule_def,0,0,0};
+struct S109rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S109rtd_Csubrule_def S109rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Csubrule_def,Csubrule_def::rhs1_Rmust_eos_}
+ }// end of reduce table
+};
+yacco2::State S109_Csubrule_def = //State's vectored into symbol: "eosubrule"
+{109
+,0,0,0,0,0,(Reduce_tbl*)&S109rt_Csubrule_def,0,0,0};
+struct S110std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S110std_Csubrule_def S110st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S8_Csubrule_def} // shift sym: LR1_questionable_shift_operator
+ ,{344,(State*)&S11_Csubrule_def} // shift sym: T_in_stbl
+ ,{346,(State*)&S12_Csubrule_def} // shift sym: rule_in_stbl
+ }// end of shift table
+};
+yacco2::Shift_entry S110qse_Csubrule_def = {0,(State*)&S8_Csubrule_def};
+yacco2::State S110_Csubrule_def = //State's vectored into symbol: "|||"
+{110
+,0,0,0,0,(Shift_tbl*)&S110st_Csubrule_def,0,0,0,(Shift_entry*)&S110qse_Csubrule_def
+};
+struct S111std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S111std_Csubrule_def S111st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {271,(State*)&S112_Csubrule_def} // shift sym: T_comment
+ ,{372,(State*)&S113_Csubrule_def} // shift sym: T_cweb_comment
+ ,{396,(State*)&S114_Csubrule_def} // shift sym: Err_comment_overrun
+ }// end of shift table
+};
+yacco2::State S111_Csubrule_def = //State's vectored into symbol: "|||"
+{111
+,0,0,0,0,(Shift_tbl*)&S111st_Csubrule_def,0,0,0,0};
+struct S112rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S112rtd_Csubrule_def S112rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs3_Rcweb_k_epi_}
+ }// end of reduce table
+};
+yacco2::State S112_Csubrule_def = //State's vectored into symbol: "comment"
+{112
+,0,0,0,0,0,(Reduce_tbl*)&S112rt_Csubrule_def,0,0,0};
+struct S113rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S113rtd_Csubrule_def S113rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs1_Rcweb_k_epi_}
+ }// end of reduce table
+};
+yacco2::State S113_Csubrule_def = //State's vectored into symbol: "cweb-comment"
+{113
+,0,0,0,0,0,(Reduce_tbl*)&S113rt_Csubrule_def,0,0,0};
+struct S114rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S114rtd_Csubrule_def S114rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs2_Rcweb_k_epi_}
+ }// end of reduce table
+};
+yacco2::State S114_Csubrule_def = //State's vectored into symbol: "comment-overrun"
+{114
+,0,0,0,0,0,(Reduce_tbl*)&S114rt_Csubrule_def,0,0,0};
+struct S115rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S115rtd_Csubrule_def S115rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Csubrule_def,Csubrule_def::rhs3_Rdbl_colon_}
+ }// end of reduce table
+};
+yacco2::State S115_Csubrule_def = //State's vectored into symbol: "|?|"
+{115
+,0,0,0,0,0,(Reduce_tbl*)&S115rt_Csubrule_def,0,0,0};
+struct S116std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S116std_Csubrule_def S116st_Csubrule_def = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S117_Csubrule_def} // shift sym: LR1_questionable_shift_operator
+ ,{324,(State*)&S118_Csubrule_def} // shift sym: T_2colon
+ }// end of shift table
+};
+yacco2::Shift_entry S116qse_Csubrule_def = {0,(State*)&S117_Csubrule_def};
+yacco2::State S116_Csubrule_def = //State's vectored into symbol: "|||"
+{116
+,0,0,0,0,(Shift_tbl*)&S116st_Csubrule_def,0,0,0,(Shift_entry*)&S116qse_Csubrule_def
+};
+struct S117rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S117rtd_Csubrule_def S117rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Csubrule_def,Csubrule_def::rhs2_Rdbl_colon_}
+ }// end of reduce table
+};
+yacco2::State S117_Csubrule_def = //State's vectored into symbol: "|?|"
+{117
+,0,0,0,0,0,(Reduce_tbl*)&S117rt_Csubrule_def,0,0,0};
+struct S118rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S118rtd_Csubrule_def S118rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Csubrule_def,Csubrule_def::rhs1_Rdbl_colon_}
+ }// end of reduce table
+};
+yacco2::State S118_Csubrule_def = //State's vectored into symbol: "::"
+{118
+,0,0,0,0,0,(Reduce_tbl*)&S118rt_Csubrule_def,0,0,0};
+struct S119std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S119std_Csubrule_def S119st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {271,(State*)&S120_Csubrule_def} // shift sym: T_comment
+ ,{372,(State*)&S121_Csubrule_def} // shift sym: T_cweb_comment
+ ,{396,(State*)&S122_Csubrule_def} // shift sym: Err_comment_overrun
+ }// end of shift table
+};
+yacco2::State S119_Csubrule_def = //State's vectored into symbol: "|||"
+{119
+,0,0,0,0,(Shift_tbl*)&S119st_Csubrule_def,0,0,0,0};
+struct S120rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S120rtd_Csubrule_def S120rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs4_Rdirective_cweb_k_epi_}
+ }// end of reduce table
+};
+yacco2::State S120_Csubrule_def = //State's vectored into symbol: "comment"
+{120
+,0,0,0,0,0,(Reduce_tbl*)&S120rt_Csubrule_def,0,0,0};
+struct S121rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S121rtd_Csubrule_def S121rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs2_Rdirective_cweb_k_epi_}
+ }// end of reduce table
+};
+yacco2::State S121_Csubrule_def = //State's vectored into symbol: "cweb-comment"
+{121
+,0,0,0,0,0,(Reduce_tbl*)&S121rt_Csubrule_def,0,0,0};
+struct S122rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S122rtd_Csubrule_def S122rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs3_Rdirective_cweb_k_epi_}
+ }// end of reduce table
+};
+yacco2::State S122_Csubrule_def = //State's vectored into symbol: "comment-overrun"
+{122
+,0,0,0,0,0,(Reduce_tbl*)&S122rt_Csubrule_def,0,0,0};
+struct S123std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S123std_Csubrule_def S123st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S24_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{5,(State*)&S26_Csubrule_def} // shift sym: LR1_invisible_shift_operator
+ ,{602,(State*)&S124_Csubrule_def} // shift sym: Rlint_epi
+ }// end of shift table
+};
+yacco2::Shift_entry S123pse_Csubrule_def = {3,(State*)&S24_Csubrule_def};
+yacco2::Shift_entry S123ise_Csubrule_def = {5,(State*)&S26_Csubrule_def};
+yacco2::State S123_Csubrule_def = //State's vectored into symbol: "Rdirective_cweb_k_epi"
+{123
+,(Shift_entry*)&S123pse_Csubrule_def,0,(Shift_entry*)&S123ise_Csubrule_def
+,0,(Shift_tbl*)&S123st_Csubrule_def,0,(State_s_thread_tbl*)&S24tt_Csubrule_def,0,0};
+struct S124std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S124std_Csubrule_def S124st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S144_Csubrule_def} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S145_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{594,(State*)&S125_Csubrule_def} // shift sym: Rmust_directive
+ }// end of shift table
+};
+yacco2::Shift_entry S124pse_Csubrule_def = {3,(State*)&S145_Csubrule_def};
+yacco2::Shift_entry S124qse_Csubrule_def = {0,(State*)&S144_Csubrule_def};
+yacco2::State S124_Csubrule_def = //State's vectored into symbol: "Rlint_epi"
+{124
+,(Shift_entry*)&S124pse_Csubrule_def,0,0,0,(Shift_tbl*)&S124st_Csubrule_def,0,(State_s_thread_tbl*)&S145tt_Csubrule_def,0,(Shift_entry*)&S124qse_Csubrule_def
+};
+struct S125std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S125std_Csubrule_def S125st_Csubrule_def = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S148_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{601,(State*)&S126_Csubrule_def} // shift sym: Rsyntax_code
+ }// end of shift table
+};
+yacco2::Shift_entry S125pse_Csubrule_def = {3,(State*)&S148_Csubrule_def};
+yacco2::State S125_Csubrule_def = //State's vectored into symbol: "Rmust_directive"
+{125
+,(Shift_entry*)&S125pse_Csubrule_def,0,0,0,(Shift_tbl*)&S125st_Csubrule_def,0,(State_s_thread_tbl*)&S148tt_Csubrule_def,0,0};
+struct S126std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S126std_Csubrule_def S126st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S24_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{5,(State*)&S26_Csubrule_def} // shift sym: LR1_invisible_shift_operator
+ ,{602,(State*)&S127_Csubrule_def} // shift sym: Rlint_epi
+ }// end of shift table
+};
+yacco2::Shift_entry S126pse_Csubrule_def = {3,(State*)&S24_Csubrule_def};
+yacco2::Shift_entry S126ise_Csubrule_def = {5,(State*)&S26_Csubrule_def};
+yacco2::State S126_Csubrule_def = //State's vectored into symbol: "Rsyntax_code"
+{126
+,(Shift_entry*)&S126pse_Csubrule_def,0,(Shift_entry*)&S126ise_Csubrule_def
+,0,(Shift_tbl*)&S126st_Csubrule_def,0,(State_s_thread_tbl*)&S24tt_Csubrule_def,0,0};
+struct S127rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S127rtd_Csubrule_def S127rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA8_Csubrule_def,Csubrule_def::rhs1_Rmust_directive_phrase_}
+ }// end of reduce table
+};
+yacco2::State S127_Csubrule_def = //State's vectored into symbol: "Rlint_epi"
+{127
+,0,0,0,0,0,(Reduce_tbl*)&S127rt_Csubrule_def,0,0,0};
+struct S128std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S128std_Csubrule_def S128st_Csubrule_def = {
+ 5
+ ,
+ {// start of table
+ {0,(State*)&S129_Csubrule_def} // shift sym: LR1_questionable_shift_operator
+ ,{271,(State*)&S120_Csubrule_def} // shift sym: T_comment
+ ,{313,(State*)&S130_Csubrule_def} // shift sym: T_op
+ ,{372,(State*)&S121_Csubrule_def} // shift sym: T_cweb_comment
+ ,{396,(State*)&S122_Csubrule_def} // shift sym: Err_comment_overrun
+ }// end of shift table
+};
+yacco2::Shift_entry S128qse_Csubrule_def = {0,(State*)&S129_Csubrule_def};
+yacco2::State S128_Csubrule_def = //State's vectored into symbol: "|||"
+{128
+,0,0,0,0,(Shift_tbl*)&S128st_Csubrule_def,0,0,0,(Shift_entry*)&S128qse_Csubrule_def
+};
+struct S129rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S129rtd_Csubrule_def S129rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA9_Csubrule_def,Csubrule_def::rhs2_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S129_Csubrule_def = //State's vectored into symbol: "|?|"
+{129
+,0,0,0,0,0,(Reduce_tbl*)&S129rt_Csubrule_def,0,0,0};
+struct S130rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S130rtd_Csubrule_def S130rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA9_Csubrule_def,Csubrule_def::rhs1_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S130_Csubrule_def = //State's vectored into symbol: "#op"
+{130
+,0,0,0,0,0,(Reduce_tbl*)&S130rt_Csubrule_def,0,0,0};
+struct S131std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S131std_Csubrule_def S131st_Csubrule_def = {
+ 4
+ ,
+ {// start of table
+ {3,(State*)&S128_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{598,(State*)&S132_Csubrule_def} // shift sym: Rmaybe_directive_phrase
+ ,{600,(State*)&S133_Csubrule_def} // shift sym: Rdirective
+ ,{603,(State*)&S136_Csubrule_def} // shift sym: Rdirective_cweb_k_epi
+ }// end of shift table
+};
+yacco2::Shift_entry S131pse_Csubrule_def = {3,(State*)&S128_Csubrule_def};
+struct S131rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[2];
+};
+S131rtd_Csubrule_def S131rt_Csubrule_def = {
+ 2
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Csubrule_def,Csubrule_def::rhs2_Rmaybe_more_directives_}
+ ,{(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs1_Rdirective_cweb_k_epi_}
+ }// end of reduce table
+};
+yacco2::State S131_Csubrule_def = //State's vectored into symbol: "Rmaybe_directive_phrases"
+{131
+,(Shift_entry*)&S131pse_Csubrule_def,0,0,0,(Shift_tbl*)&S131st_Csubrule_def,(Reduce_tbl*)&S131rt_Csubrule_def,(State_s_thread_tbl*)&S128tt_Csubrule_def,0,0};
+struct S132rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S132rtd_Csubrule_def S132rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA8_Csubrule_def,Csubrule_def::rhs2_Rmaybe_directive_phrases_}
+ }// end of reduce table
+};
+yacco2::State S132_Csubrule_def = //State's vectored into symbol: "Rmaybe_directive_phrase"
+{132
+,0,0,0,0,0,(Reduce_tbl*)&S132rt_Csubrule_def,0,0,0};
+struct S133std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S133std_Csubrule_def S133st_Csubrule_def = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S148_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{601,(State*)&S134_Csubrule_def} // shift sym: Rsyntax_code
+ }// end of shift table
+};
+yacco2::Shift_entry S133pse_Csubrule_def = {3,(State*)&S148_Csubrule_def};
+yacco2::State S133_Csubrule_def = //State's vectored into symbol: "Rdirective"
+{133
+,(Shift_entry*)&S133pse_Csubrule_def,0,0,0,(Shift_tbl*)&S133st_Csubrule_def,0,(State_s_thread_tbl*)&S148tt_Csubrule_def,0,0};
+struct S134std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S134std_Csubrule_def S134st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S24_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{5,(State*)&S26_Csubrule_def} // shift sym: LR1_invisible_shift_operator
+ ,{602,(State*)&S135_Csubrule_def} // shift sym: Rlint_epi
+ }// end of shift table
+};
+yacco2::Shift_entry S134pse_Csubrule_def = {3,(State*)&S24_Csubrule_def};
+yacco2::Shift_entry S134ise_Csubrule_def = {5,(State*)&S26_Csubrule_def};
+yacco2::State S134_Csubrule_def = //State's vectored into symbol: "Rsyntax_code"
+{134
+,(Shift_entry*)&S134pse_Csubrule_def,0,(Shift_entry*)&S134ise_Csubrule_def
+,0,(Shift_tbl*)&S134st_Csubrule_def,0,(State_s_thread_tbl*)&S24tt_Csubrule_def,0,0};
+struct S135rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S135rtd_Csubrule_def S135rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA8_Csubrule_def,Csubrule_def::rhs2_Rmaybe_directive_phrase_}
+ }// end of reduce table
+};
+yacco2::State S135_Csubrule_def = //State's vectored into symbol: "Rlint_epi"
+{135
+,0,0,0,0,0,(Reduce_tbl*)&S135rt_Csubrule_def,0,0,0};
+struct S136std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S136std_Csubrule_def S136st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S24_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{5,(State*)&S26_Csubrule_def} // shift sym: LR1_invisible_shift_operator
+ ,{602,(State*)&S137_Csubrule_def} // shift sym: Rlint_epi
+ }// end of shift table
+};
+yacco2::Shift_entry S136pse_Csubrule_def = {3,(State*)&S24_Csubrule_def};
+yacco2::Shift_entry S136ise_Csubrule_def = {5,(State*)&S26_Csubrule_def};
+yacco2::State S136_Csubrule_def = //State's vectored into symbol: "Rdirective_cweb_k_epi"
+{136
+,(Shift_entry*)&S136pse_Csubrule_def,0,(Shift_entry*)&S136ise_Csubrule_def
+,0,(Shift_tbl*)&S136st_Csubrule_def,0,(State_s_thread_tbl*)&S24tt_Csubrule_def,0,0};
+struct S137std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S137std_Csubrule_def S137st_Csubrule_def = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S151_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{600,(State*)&S138_Csubrule_def} // shift sym: Rdirective
+ }// end of shift table
+};
+yacco2::Shift_entry S137pse_Csubrule_def = {3,(State*)&S151_Csubrule_def};
+yacco2::State S137_Csubrule_def = //State's vectored into symbol: "Rlint_epi"
+{137
+,(Shift_entry*)&S137pse_Csubrule_def,0,0,0,(Shift_tbl*)&S137st_Csubrule_def,0,(State_s_thread_tbl*)&S151tt_Csubrule_def,0,0};
+struct S138std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S138std_Csubrule_def S138st_Csubrule_def = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S148_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{601,(State*)&S139_Csubrule_def} // shift sym: Rsyntax_code
+ }// end of shift table
+};
+yacco2::Shift_entry S138pse_Csubrule_def = {3,(State*)&S148_Csubrule_def};
+yacco2::State S138_Csubrule_def = //State's vectored into symbol: "Rdirective"
+{138
+,(Shift_entry*)&S138pse_Csubrule_def,0,0,0,(Shift_tbl*)&S138st_Csubrule_def,0,(State_s_thread_tbl*)&S148tt_Csubrule_def,0,0};
+struct S139std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S139std_Csubrule_def S139st_Csubrule_def = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S24_Csubrule_def} // shift sym: LR1_parallel_operator
+ ,{5,(State*)&S26_Csubrule_def} // shift sym: LR1_invisible_shift_operator
+ ,{602,(State*)&S140_Csubrule_def} // shift sym: Rlint_epi
+ }// end of shift table
+};
+yacco2::Shift_entry S139pse_Csubrule_def = {3,(State*)&S24_Csubrule_def};
+yacco2::Shift_entry S139ise_Csubrule_def = {5,(State*)&S26_Csubrule_def};
+yacco2::State S139_Csubrule_def = //State's vectored into symbol: "Rsyntax_code"
+{139
+,(Shift_entry*)&S139pse_Csubrule_def,0,(Shift_entry*)&S139ise_Csubrule_def
+,0,(Shift_tbl*)&S139st_Csubrule_def,0,(State_s_thread_tbl*)&S24tt_Csubrule_def,0,0};
+struct S140rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S140rtd_Csubrule_def S140rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA8_Csubrule_def,Csubrule_def::rhs1_Rmaybe_directive_phrase_}
+ }// end of reduce table
+};
+yacco2::State S140_Csubrule_def = //State's vectored into symbol: "Rlint_epi"
+{140
+,0,0,0,0,0,(Reduce_tbl*)&S140rt_Csubrule_def,0,0,0};
+struct S141rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S141rtd_Csubrule_def S141rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA8_Csubrule_def,Csubrule_def::rhs1_Rmaybe_directive_phrases_}
+ }// end of reduce table
+};
+yacco2::State S141_Csubrule_def = //State's vectored into symbol: "Rmaybe_directive_phrase"
+{141
+,0,0,0,0,0,(Reduce_tbl*)&S141rt_Csubrule_def,0,0,0};
+struct S142rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S142rtd_Csubrule_def S142rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs1_Rclose_brace_}
+ }// end of reduce table
+};
+yacco2::State S142_Csubrule_def = //State's vectored into symbol: "|?|"
+{142
+,0,0,0,0,0,(Reduce_tbl*)&S142rt_Csubrule_def,0,0,0};
+struct S143rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S143rtd_Csubrule_def S143rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs2_Rclose_brace_}
+ }// end of reduce table
+};
+yacco2::State S143_Csubrule_def = //State's vectored into symbol: "}"
+{143
+,0,0,0,0,0,(Reduce_tbl*)&S143rt_Csubrule_def,0,0,0};
+struct S144rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S144rtd_Csubrule_def S144rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA9_Csubrule_def,Csubrule_def::rhs3_Rmust_directive_}
+ }// end of reduce table
+};
+yacco2::State S144_Csubrule_def = //State's vectored into symbol: "|?|"
+{144
+,0,0,0,0,0,(Reduce_tbl*)&S144rt_Csubrule_def,0,0,0};
+struct S145std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S145std_Csubrule_def S145st_Csubrule_def = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S146_Csubrule_def} // shift sym: LR1_questionable_shift_operator
+ ,{313,(State*)&S147_Csubrule_def} // shift sym: T_op
+ }// end of shift table
+};
+yacco2::Shift_entry S145qse_Csubrule_def = {0,(State*)&S146_Csubrule_def};
+yacco2::State S145_Csubrule_def = //State's vectored into symbol: "|||"
+{145
+,0,0,0,0,(Shift_tbl*)&S145st_Csubrule_def,0,0,0,(Shift_entry*)&S145qse_Csubrule_def
+};
+struct S146rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S146rtd_Csubrule_def S146rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA9_Csubrule_def,Csubrule_def::rhs2_Rmust_directive_}
+ }// end of reduce table
+};
+yacco2::State S146_Csubrule_def = //State's vectored into symbol: "|?|"
+{146
+,0,0,0,0,0,(Reduce_tbl*)&S146rt_Csubrule_def,0,0,0};
+struct S147rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S147rtd_Csubrule_def S147rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA9_Csubrule_def,Csubrule_def::rhs1_Rmust_directive_}
+ }// end of reduce table
+};
+yacco2::State S147_Csubrule_def = //State's vectored into symbol: "#op"
+{147
+,0,0,0,0,0,(Reduce_tbl*)&S147rt_Csubrule_def,0,0,0};
+struct S148std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S148std_Csubrule_def S148st_Csubrule_def = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S149_Csubrule_def} // shift sym: LR1_questionable_shift_operator
+ ,{326,(State*)&S150_Csubrule_def} // shift sym: T_syntax_code
+ }// end of shift table
+};
+yacco2::Shift_entry S148qse_Csubrule_def = {0,(State*)&S149_Csubrule_def};
+yacco2::State S148_Csubrule_def = //State's vectored into symbol: "|||"
+{148
+,0,0,0,0,(Shift_tbl*)&S148st_Csubrule_def,0,0,0,(Shift_entry*)&S148qse_Csubrule_def
+};
+struct S149rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S149rtd_Csubrule_def S149rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs2_Rsyntax_code_}
+ }// end of reduce table
+};
+yacco2::State S149_Csubrule_def = //State's vectored into symbol: "|?|"
+{149
+,0,0,0,0,0,(Reduce_tbl*)&S149rt_Csubrule_def,0,0,0};
+struct S150rtd_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S150rtd_Csubrule_def S150rt_Csubrule_def = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrule_def,Csubrule_def::rhs1_Rsyntax_code_}
+ }// end of reduce table
+};
+yacco2::State S150_Csubrule_def = //State's vectored into symbol: "syntax-code"
+{150
+,0,0,0,0,0,(Reduce_tbl*)&S150rt_Csubrule_def,0,0,0};
+struct S151std_Csubrule_def{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S151std_Csubrule_def S151st_Csubrule_def = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S129_Csubrule_def} // shift sym: LR1_questionable_shift_operator
+ ,{313,(State*)&S130_Csubrule_def} // shift sym: T_op
+ }// end of shift table
+};
+yacco2::Shift_entry S151qse_Csubrule_def = {0,(State*)&S129_Csubrule_def};
+yacco2::State S151_Csubrule_def = //State's vectored into symbol: "|||"
+{151
+,0,0,0,0,(Shift_tbl*)&S151st_Csubrule_def,0,0,0,(Shift_entry*)&S151qse_Csubrule_def
+};
diff --git a/web/yacco2/compiler/grammars/subrule_vector.cpp b/web/yacco2/compiler/grammars/subrule_vector.cpp
new file mode 100644
index 0000000000..5d88fe4848
--- /dev/null
+++ b/web/yacco2/compiler/grammars/subrule_vector.cpp
@@ -0,0 +1,64 @@
+/*
+ File: subrule_vector.cpp
+ Date and Time: Fri Jan 30 18:55:24 2015
+*/
+#include "subrule_vector.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_subrule_vector;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 1;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+}
+ Csubrule_vector::
+ Csubrule_vector()
+ :yacco2::CAbs_fsm
+ ("subrule_vector.lex"
+ ,"1.0"
+ ,"8 Jun 2004"
+ ,true
+ ,"Lexer of subrule begin operator: \\subrule."
+ ,"Fri Jan 30 18:55:24 2015 "
+ ,S1_Csubrule_vector){
+
+ }
+
+Csubrule_vector::~Csubrule_vector(){
+
+ for(int x = 0;x < 1;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Csubrule_vector::failed(){
+ return false;
+ }
+ void Csubrule_vector::op(){
+}
+int Csubrule_vector::rhs_to_rules_mapping_[2] = {
+ -1
+ ,0 // subrule 1 for rule 1
+};
+Rsubrule_vector::Rsubrule_vector(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsubrule_vector",0,Csubrule_vector::R_Rsubrule_vector_,P,false,false){
+}
+
+void Rsubrule_vector::op(){
+ sstrace_rulesss
+
+ rtn_sym_->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(rtn_sym_);
+
+}
+void Rsubrule_vector::sr1(){
+
+ rtn_sym_ = new T_selector;
+
+}
+
diff --git a/web/yacco2/compiler/grammars/subrule_vector.fsc b/web/yacco2/compiler/grammars/subrule_vector.fsc
new file mode 100644
index 0000000000..8cf3ab392c
--- /dev/null
+++ b/web/yacco2/compiler/grammars/subrule_vector.fsc
@@ -0,0 +1,20 @@
+/*
+ File: subrule_vector.fsc
+ Date and Time: Fri Jan 30 18:55:24 2015
+*/
+transitive n
+grammar-name "subrule_vector"
+name-space "NS_subrule_vector"
+thread-name "TH_subrule_vector"
+monolithic n
+file-name "subrule_vector.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ raw_minus
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"Lexer of subrule begin operator: \\subrule."
diff --git a/web/yacco2/compiler/grammars/subrule_vector.h b/web/yacco2/compiler/grammars/subrule_vector.h
new file mode 100644
index 0000000000..cf83f0a553
--- /dev/null
+++ b/web/yacco2/compiler/grammars/subrule_vector.h
@@ -0,0 +1,60 @@
+/*
+ File: subrule_vector.h
+ Date and Time: Fri Jan 30 18:55:24 2015
+*/
+#ifndef __subrule_vector_h__
+#define __subrule_vector_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+extern yacco2::Thread_entry ITH_subrule_vector;
+
+extern yacco2::State S1_Csubrule_vector;
+namespace NS_subrule_vector {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_subrule_vector(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_subrule_vector(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[1];
+};
+class Csubrule_vector: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rsubrule_vector_ = 569//start_of_rule_list + 0
+ ,rhs1_Rsubrule_vector_ = 1
+ };
+ //no of la sets = 1
+ //no of states = 3
+ Csubrule_vector();
+ ~Csubrule_vector();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[2];
+ };
+struct Rsubrule_vector;
+struct Rsubrule_vector:public yacco2::CAbs_lr1_sym {
+ Rsubrule_vector(yacco2::Parser* P);
+ void op();
+
+ public:
+ CAbs_lr1_sym* rtn_sym_;
+
+ public:
+ void sr1();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/subrule_vector.lex b/web/yacco2/compiler/grammars/subrule_vector.lex
new file mode 100644
index 0000000000..ead8e88eb4
--- /dev/null
+++ b/web/yacco2/compiler/grammars/subrule_vector.lex
@@ -0,0 +1,52 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: subrule_vector.lex
+Dates: 23 Mar 2004
+Purpose: subrule ->
+Output: "#->"
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |subrules_phrase| Thread.\fbreak
+ Keyword that starts off defining the subrule.
+@/
+fsm
+(fsm-id "subrule_vector.lex"
+,fsm-filename subrule_vector
+,fsm-namespace NS_subrule_vector
+,fsm-class Csubrule_vector
+,fsm-version "1.0",fsm-date "8 Jun 2004",fsm-debug "true"
+,fsm-comments "Lexer of subrule begin operator: \\subrule.")
+parallel-parser
+(
+ parallel-thread-function
+ TH_subrule_vector
+ ***
+ parallel-la-boundary
+ eolr
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rsubrule_vector (
+ lhs {
+ user-declaration
+ public:
+ CAbs_lr1_sym* rtn_sym_;
+ ***
+ op
+ rtn_sym_->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(rtn_sym_);
+ ***
+ }
+){
+ -> "-" ">" {
+ op
+ rtn_sym_ = new T_selector;
+ ***}
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/subrule_vectorsym.cpp b/web/yacco2/compiler/grammars/subrule_vectorsym.cpp
new file mode 100644
index 0000000000..4771cd6da5
--- /dev/null
+++ b/web/yacco2/compiler/grammars/subrule_vectorsym.cpp
@@ -0,0 +1,64 @@
+/*
+ File: subrule_vectorsym.cpp
+ Date and Time: Fri Jan 30 18:55:24 2015
+*/
+#include "subrule_vector.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_subrule_vector;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_subrule_vector::TH_subrule_vector(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_subrule_vector;
+ NS_subrule_vector::Csubrule_vector Csubrule_vector_;// parallel-parser's parse table
+#define ssPARSE_TABLE Csubrule_vector_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_subrule_vector::PROC_TH_subrule_vector(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_subrule_vector";
+ static bool one_time(false);
+ static NS_subrule_vector::Csubrule_vector* NS_subrule_vector_Csubrule_vector_(0);// parallel-parser's fsm table
+ static Parser* NS_subrule_vector_Csubrule_vector_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_subrule_vector_Csubrule_vector_ = new NS_subrule_vector::Csubrule_vector();// parallel-parser's fsm table
+ NS_subrule_vector_Csubrule_vector_parser = new Parser(*NS_subrule_vector_Csubrule_vector_,Caller_pp);
+ }
+ proc_parser = NS_subrule_vector_Csubrule_vector_parser;
+#include "wproc_pp_core.h"
+}
+void
+Csubrule_vector::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rsubrule_vector_:{
+ Rsubrule_vector* sym;
+ if(re->rule_ == 0){
+ sym = new Rsubrule_vector(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsubrule_vector*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ sym->op();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/subrule_vectortbl.cpp b/web/yacco2/compiler/grammars/subrule_vectortbl.cpp
new file mode 100644
index 0000000000..606363e0ef
--- /dev/null
+++ b/web/yacco2/compiler/grammars/subrule_vectortbl.cpp
@@ -0,0 +1,64 @@
+/*
+ File: subrule_vectortbl.cpp
+ Date and Time: Fri Jan 30 18:55:24 2015
+*/
+#include "subrule_vector.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_subrule_vector;// grammar's ns
+// first set terminals
+// LR1_eolr
+yacco2::UCHAR LA1_Csubrule_vector[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Csubrule_vector;
+extern yacco2::State S2_Csubrule_vector;
+extern yacco2::State S3_Csubrule_vector;
+struct S1std_Csubrule_vector{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S1std_Csubrule_vector S1st_Csubrule_vector = {
+ 2
+ ,
+ {// start of table
+ {53,(State*)&S2_Csubrule_vector} // shift sym: raw_minus
+ ,{569,(State*)&S1_Csubrule_vector} // accept sym: Rsubrule_vector
+ }// end of shift table
+};
+yacco2::State S1_Csubrule_vector = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Csubrule_vector,0,0,0,0};
+struct S2std_Csubrule_vector{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S2std_Csubrule_vector S2st_Csubrule_vector = {
+ 1
+ ,
+ {// start of table
+ {70,(State*)&S3_Csubrule_vector} // shift sym: raw_gt_than
+ }// end of shift table
+};
+yacco2::State S2_Csubrule_vector = //State's vectored into symbol: "-"
+{2
+,0,0,0,0,(Shift_tbl*)&S2st_Csubrule_vector,0,0,0,0};
+struct S3rtd_Csubrule_vector{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Csubrule_vector S3rt_Csubrule_vector = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Csubrule_vector,Csubrule_vector::rhs1_Rsubrule_vector_}
+ }// end of reduce table
+};
+yacco2::State S3_Csubrule_vector = //State's vectored into symbol: ">"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_Csubrule_vector,0,0,0};
diff --git a/web/yacco2/compiler/grammars/subrules_phrase.cpp b/web/yacco2/compiler/grammars/subrules_phrase.cpp
new file mode 100644
index 0000000000..914c7bc1fc
--- /dev/null
+++ b/web/yacco2/compiler/grammars/subrules_phrase.cpp
@@ -0,0 +1,189 @@
+/*
+ File: subrules_phrase.cpp
+ Date and Time: Fri Jan 30 18:55:25 2015
+*/
+#include "subrules_phrase.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_subrules_phrase;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 5;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[4] = new Per_rule_s_reuse_table();
+}
+ Csubrules_phrase::
+ Csubrules_phrase()
+ :yacco2::CAbs_fsm
+ ("subrules_phrase.lex"
+ ,"1.0"
+ ,"24 mar 2004"
+ ,false
+ ,"Parse subrules: into the valley of ..."
+ ,"Fri Jan 30 18:55:25 2015 "
+ ,S1_Csubrules_phrase){
+
+ subrules_phrase_ = 0;
+
+ }
+
+Csubrules_phrase::~Csubrules_phrase(){
+
+ for(int x = 0;x < 5;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Csubrules_phrase::failed(){
+ return false;
+ }
+ void Csubrules_phrase::op(){
+ if(subrules_phrase_ != 0){
+ delete subrules_phrase_;
+ subrules_phrase_ = 0;
+ }
+ subrules_phrase_ = new T_subrules_phrase;
+ subrules_phrase_->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ AST* t = new AST(*subrules_phrase_);
+ subrules_phrase_->phrase_tree(t);
+ subrule_no_=0;
+
+}
+int Csubrules_phrase::rhs_to_rules_mapping_[11] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,2 // subrule 4 for rule 3
+ ,2 // subrule 5 for rule 3
+ ,2 // subrule 6 for rule 3
+ ,3 // subrule 7 for rule 4
+ ,3 // subrule 8 for rule 4
+ ,4 // subrule 9 for rule 5
+ ,4 // subrule 10 for rule 5
+};
+Rsubrules_phrase::Rsubrules_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsubrules_phrase",0,Csubrules_phrase::R_Rsubrules_phrase_,P,false,false){
+}
+
+void Rsubrules_phrase::sr1(){
+
+ Csubrules_phrase* fsm = (Csubrules_phrase*)rule_info__.parser__->fsm_tbl__;
+ RSVP(fsm->subrules_phrase_);
+ fsm->subrules_phrase_ = 0;
+
+}
+
+Rsubrule_defs::Rsubrule_defs(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsubrule_defs",0,Csubrules_phrase::R_Rsubrule_defs_,P,false,false){
+}
+
+Rsubrule_def::Rsubrule_def(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsubrule_def",0,Csubrules_phrase::R_Rsubrule_def_,P,false,false){
+}
+
+void Rsubrule_def::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_subrule_def* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Csubrules_phrase* fsm = (Csubrules_phrase*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->subrule_no_;
+ sf->p2__->subrule_no_of_rule(fsm->subrule_no_);
+ fsm->subrules_phrase_->add_sr_to_subrules(sf->p2__);
+
+}
+
+void Rsubrule_def::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rsubrule_def::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_sub_rule_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rsubrule_def1::Rsubrule_def1(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsubrule_def1",0,Csubrules_phrase::R_Rsubrule_def1_,P,false,false){
+}
+
+void Rsubrule_def1::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_subrule_def* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Csubrules_phrase* fsm = (Csubrules_phrase*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->subrule_no_;
+ sf->p2__->subrule_no_of_rule(fsm->subrule_no_);
+ fsm->subrules_phrase_->add_sr_to_subrules(sf->p2__);
+
+}
+
+void Rsubrule_def1::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rlint::Rlint(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlint",0,Csubrules_phrase::R_Rlint_,P,false,false){
+}
+
diff --git a/web/yacco2/compiler/grammars/subrules_phrase.fsc b/web/yacco2/compiler/grammars/subrules_phrase.fsc
new file mode 100644
index 0000000000..e517e50206
--- /dev/null
+++ b/web/yacco2/compiler/grammars/subrules_phrase.fsc
@@ -0,0 +1,23 @@
+/*
+ File: subrules_phrase.fsc
+ Date and Time: Fri Jan 30 18:55:25 2015
+*/
+transitive y
+grammar-name "subrules_phrase"
+name-space "NS_subrules_phrase"
+thread-name "TH_subrules_phrase"
+monolithic n
+file-name "subrules_phrase.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ LR1_questionable_shift_operator
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 1
+ NS_subrule_def::TH_subrule_def
+end-list-of-transitive-threads
+list-of-used-threads 2
+ NS_lint_balls::TH_lint_balls
+ NS_subrule_def::TH_subrule_def
+end-list-of-used-threads
+fsm-comments
+"Parse subrules: into the valley of ..."
diff --git a/web/yacco2/compiler/grammars/subrules_phrase.h b/web/yacco2/compiler/grammars/subrules_phrase.h
new file mode 100644
index 0000000000..394e63b585
--- /dev/null
+++ b/web/yacco2/compiler/grammars/subrules_phrase.h
@@ -0,0 +1,110 @@
+/*
+ File: subrules_phrase.h
+ Date and Time: Fri Jan 30 18:55:25 2015
+*/
+#ifndef __subrules_phrase_h__
+#define __subrules_phrase_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "lint_balls.h"
+#include "eol.h"
+#include "c_comments.h"
+#include "identifier.h"
+#include "c_string.h"
+#include "subrule_def.h"
+
+extern yacco2::Thread_entry ITH_subrules_phrase;
+
+extern yacco2::State S1_Csubrules_phrase;
+namespace NS_subrules_phrase {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_subrules_phrase(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_subrules_phrase(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[5];
+};
+class Csubrules_phrase: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rsubrules_phrase_ = 569//start_of_rule_list + 0
+ ,rhs1_Rsubrules_phrase_ = 1
+ ,R_Rsubrule_defs_ = 570//start_of_rule_list + 2
+ ,rhs1_Rsubrule_defs_ = 2
+ ,rhs2_Rsubrule_defs_ = 3
+ ,R_Rsubrule_def_ = 571//start_of_rule_list + 4
+ ,rhs1_Rsubrule_def_ = 4
+ ,rhs2_Rsubrule_def_ = 5
+ ,rhs3_Rsubrule_def_ = 6
+ ,R_Rsubrule_def1_ = 572//start_of_rule_list + 6
+ ,rhs1_Rsubrule_def1_ = 7
+ ,rhs2_Rsubrule_def1_ = 8
+ ,R_Rlint_ = 573//start_of_rule_list + 8
+ ,rhs1_Rlint_ = 9
+ ,rhs2_Rlint_ = 10
+ };
+ //no of la sets = 2
+ //no of states = 15
+ Csubrules_phrase();
+ ~Csubrules_phrase();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[11];
+
+ public:
+ T_subrules_phrase* subrules_phrase_;
+ int subrule_no_;
+
+ };
+struct Rsubrules_phrase;
+struct Rsubrule_defs;
+struct Rsubrule_def;
+struct Rsubrule_def1;
+struct Rlint;
+struct Rsubrules_phrase:public yacco2::CAbs_lr1_sym {
+ Rsubrules_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rsubrule_defs:public yacco2::CAbs_lr1_sym {
+ Rsubrule_defs(yacco2::Parser* P);
+ public:
+};
+
+struct Rsubrule_def:public yacco2::CAbs_lr1_sym {
+ Rsubrule_def(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Rsubrule_def1:public yacco2::CAbs_lr1_sym {
+ Rsubrule_def1(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rlint:public yacco2::CAbs_lr1_sym {
+ Rlint(yacco2::Parser* P);
+ public:
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/subrules_phrase.lex b/web/yacco2/compiler/grammars/subrules_phrase.lex
new file mode 100644
index 0000000000..81f31d24b4
--- /dev/null
+++ b/web/yacco2/compiler/grammars/subrules_phrase.lex
@@ -0,0 +1,127 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: subrules_phrase.lex
+Dates: 3 Jun 2004
+Purpose: parse subrule definitions
+Output: T_subrules_phrase
+ assorted errors
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |subrules_phrase| Thread.\fbreak
+Parse subrule definitions.
+@/
+fsm
+(fsm-id "subrules_phrase.lex"
+,fsm-filename subrules_phrase
+,fsm-namespace NS_subrules_phrase
+,fsm-class Csubrules_phrase{
+ user-prefix-declaration
+#include "lint_balls.h"
+#include "eol.h"
+#include "c_comments.h"
+#include "identifier.h"
+#include "c_string.h"
+#include "subrule_def.h"
+ ***
+ user-declaration
+ public:
+ T_subrules_phrase* subrules_phrase_;
+ int subrule_no_;
+ ***
+ op
+ if(subrules_phrase_ != 0){
+ delete subrules_phrase_;
+ subrules_phrase_ = 0;
+ }
+ subrules_phrase_ = new T_subrules_phrase;
+ subrules_phrase_->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ AST* t = new AST(*subrules_phrase_);
+ subrules_phrase_->phrase_tree(t);
+ subrule_no_=0;
+ ***
+ constructor
+ subrules_phrase_ = 0;
+ ***
+}
+,fsm-version "1.0",fsm-date "24 mar 2004",fsm-debug "false"
+,fsm-comments "Parse subrules: into the valley of ...")
+parallel-parser
+(
+ parallel-thread-function
+ TH_subrules_phrase
+ ***
+ parallel-la-boundary
+ eolr - |||
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rsubrules_phrase (){
+ -> Rsubrule_defs {
+ op
+ Csubrules_phrase* fsm = (Csubrules_phrase*)rule_info__.parser__->fsm_tbl__;
+ RSVP(fsm->subrules_phrase_);
+ fsm->subrules_phrase_ = 0;
+ ***
+ }
+}
+
+
+Rsubrule_defs (){
+ -> Rsubrule_def Rlint
+ -> Rsubrule_defs Rsubrule_def1 Rlint
+}
+
+Rsubrule_def (){
+ -> ||| "subrule-def" NS_subrule_def::TH_subrule_def {
+ op
+ Csubrules_phrase* fsm = (Csubrules_phrase*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->subrule_no_;
+ sf->p2__->subrule_no_of_rule(fsm->subrule_no_);
+ fsm->subrules_phrase_->add_sr_to_subrules(sf->p2__);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_sub_rule_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rsubrule_def1 (){
+ -> ||| "subrule-def" NS_subrule_def::TH_subrule_def {
+ op
+ Csubrules_phrase* fsm = (Csubrules_phrase*)rule_info__.parser__->fsm_tbl__;
+ ++fsm->subrule_no_;
+ sf->p2__->subrule_no_of_rule(fsm->subrule_no_);
+ fsm->subrules_phrase_->add_sr_to_subrules(sf->p2__);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rlint (){
+ -> ||| lint NS_lint_balls::TH_lint_balls
+ ->
+}
+
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/subrules_phrasesym.cpp b/web/yacco2/compiler/grammars/subrules_phrasesym.cpp
new file mode 100644
index 0000000000..55f76be1e5
--- /dev/null
+++ b/web/yacco2/compiler/grammars/subrules_phrasesym.cpp
@@ -0,0 +1,194 @@
+/*
+ File: subrules_phrasesym.cpp
+ Date and Time: Fri Jan 30 18:55:25 2015
+*/
+#include "subrules_phrase.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_subrules_phrase;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_subrules_phrase::TH_subrules_phrase(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_subrules_phrase;
+ NS_subrules_phrase::Csubrules_phrase Csubrules_phrase_;// parallel-parser's parse table
+#define ssPARSE_TABLE Csubrules_phrase_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_subrules_phrase::PROC_TH_subrules_phrase(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_subrules_phrase";
+ static bool one_time(false);
+ static NS_subrules_phrase::Csubrules_phrase* NS_subrules_phrase_Csubrules_phrase_(0);// parallel-parser's fsm table
+ static Parser* NS_subrules_phrase_Csubrules_phrase_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_subrules_phrase_Csubrules_phrase_ = new NS_subrules_phrase::Csubrules_phrase();// parallel-parser's fsm table
+ NS_subrules_phrase_Csubrules_phrase_parser = new Parser(*NS_subrules_phrase_Csubrules_phrase_,Caller_pp);
+ }
+ proc_parser = NS_subrules_phrase_Csubrules_phrase_parser;
+#include "wproc_pp_core.h"
+}
+void
+Csubrules_phrase::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rsubrules_phrase_:{
+ Rsubrules_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rsubrules_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsubrules_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rsubrule_defs_:{
+ Rsubrule_defs* sym;
+ if(re->rule_ == 0){
+ sym = new Rsubrule_defs(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsubrule_defs*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rsubrule_defs_:{
+ Rsubrule_defs* sym;
+ if(re->rule_ == 0){
+ sym = new Rsubrule_defs(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsubrule_defs*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ return;}
+ case rhs1_Rsubrule_def_:{
+ Rsubrule_def* sym;
+ if(re->rule_ == 0){
+ sym = new Rsubrule_def(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsubrule_def*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rsubrule_def_:{
+ Rsubrule_def* sym;
+ if(re->rule_ == 0){
+ sym = new Rsubrule_def(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsubrule_def*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rsubrule_def_:{
+ Rsubrule_def* sym;
+ if(re->rule_ == 0){
+ sym = new Rsubrule_def(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsubrule_def*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rsubrule_def1_:{
+ Rsubrule_def1* sym;
+ if(re->rule_ == 0){
+ sym = new Rsubrule_def1(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsubrule_def1*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rsubrule_def1_:{
+ Rsubrule_def1* sym;
+ if(re->rule_ == 0){
+ sym = new Rsubrule_def1(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsubrule_def1*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rlint_:{
+ Rlint* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rlint_:{
+ Rlint* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/subrules_phrasetbl.cpp b/web/yacco2/compiler/grammars/subrules_phrasetbl.cpp
new file mode 100644
index 0000000000..3b85b2cfe3
--- /dev/null
+++ b/web/yacco2/compiler/grammars/subrules_phrasetbl.cpp
@@ -0,0 +1,1601 @@
+/*
+ File: subrules_phrasetbl.cpp
+ Date and Time: Fri Jan 30 18:55:25 2015
+*/
+#include "subrules_phrase.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_subrules_phrase;// grammar's ns
+// first set terminals
+// LR1_eog
+// LR1_reduce_operator
+// raw_nul
+// raw_soh
+// raw_stx
+// raw_etx
+// raw_eot
+// raw_enq
+// raw_ack
+// raw_bel
+// raw_bs
+// raw_ht
+// raw_lf
+// raw_vt
+// raw_ff
+// raw_cr
+// raw_so
+// raw_si
+// raw_dle
+// raw_dc1
+// raw_dc2
+// raw_dc3
+// raw_dc4
+// raw_nak
+// raw_syn
+// raw_etb
+// raw_can
+// raw_em
+// raw_sub
+// raw_esc
+// raw_fs
+// raw_gs
+// raw_rs
+// raw_us
+// raw_sp
+// raw_exclam
+// raw_dbl_quote
+// raw_no_sign
+// raw_dollar_sign
+// raw_percent
+// raw_ampersign
+// raw_right_quote
+// raw_open_bracket
+// raw_close_bracket
+// raw_asteric
+// raw_plus
+// raw_comma
+// raw_minus
+// raw_period
+// raw_slash
+// raw_0
+// raw_1
+// raw_2
+// raw_3
+// raw_4
+// raw_5
+// raw_6
+// raw_7
+// raw_8
+// raw_9
+// raw_colon
+// raw_semi_colon
+// raw_less_than
+// raw_eq
+// raw_gt_than
+// raw_question_mark
+// raw_at_sign
+// raw_A
+// raw_B
+// raw_C
+// raw_D
+// raw_E
+// raw_F
+// raw_G
+// raw_H
+// raw_I
+// raw_J
+// raw_K
+// raw_L
+// raw_M
+// raw_N
+// raw_O
+// raw_P
+// raw_Q
+// raw_R
+// raw_S
+// raw_T
+// raw_U
+// raw_V
+// raw_W
+// raw_X
+// raw_Y
+// raw_Z
+// raw_open_sq_bracket
+// raw_back_slash
+// raw_close_sq_bracket
+// raw_up_arrow
+// raw_under_score
+// raw_left_quote
+// raw_a
+// raw_b
+// raw_c
+// raw_d
+// raw_e
+// raw_f
+// raw_g
+// raw_h
+// raw_i
+// raw_j
+// raw_k
+// raw_l
+// raw_m
+// raw_n
+// raw_o
+// raw_p
+// raw_q
+// raw_r
+// raw_s
+// raw_t
+// raw_u
+// raw_v
+// raw_w
+// raw_x
+// raw_y
+// raw_z
+// raw_open_brace
+// raw_vertical_line
+// raw_close_brace
+// raw_tilde
+// raw_del
+// raw_x80
+// raw_x81
+// raw_x82
+// raw_x83
+// raw_x84
+// raw_x85
+// raw_x86
+// raw_x87
+// raw_x88
+// raw_x89
+// raw_x8a
+// raw_x8b
+// raw_x8c
+// raw_x8d
+// raw_x8e
+// raw_x8f
+// raw_x90
+// raw_x91
+// raw_x92
+// raw_x93
+// raw_x94
+// raw_x95
+// raw_x96
+// raw_x97
+// raw_x98
+// raw_x99
+// raw_x9a
+// raw_x9b
+// raw_x9c
+// raw_x9d
+// raw_x9e
+// raw_x9f
+// raw_xa0
+// raw_xa1
+// raw_xa2
+// raw_xa3
+// raw_xa4
+// raw_xa5
+// raw_xa6
+// raw_xa7
+// raw_xa8
+// raw_xa9
+// raw_xaa
+// raw_xab
+// raw_xac
+// raw_xad
+// raw_xae
+// raw_xaf
+// raw_xb0
+// raw_xb1
+// raw_xb2
+// raw_xb3
+// raw_xb4
+// raw_xb5
+// raw_xb6
+// raw_xb7
+// raw_xb8
+// raw_xb9
+// raw_xba
+// raw_xbb
+// raw_xbc
+// raw_xbd
+// raw_xbe
+// raw_xbf
+// raw_xc0
+// raw_xc1
+// raw_xc2
+// raw_xc3
+// raw_xc4
+// raw_xc5
+// raw_xc6
+// raw_xc7
+// raw_xc8
+// raw_xc9
+// raw_xca
+// raw_xcb
+// raw_xcc
+// raw_xcd
+// raw_xce
+// raw_xcf
+// raw_xd0
+// raw_xd1
+// raw_xd2
+// raw_xd3
+// raw_xd4
+// raw_xd5
+// raw_xd6
+// raw_xd7
+// raw_xd8
+// raw_xd9
+// raw_xda
+// raw_xdb
+// raw_xdc
+// raw_xdd
+// raw_xde
+// raw_xdf
+// raw_xe0
+// raw_xe1
+// raw_xe2
+// raw_xe3
+// raw_xe4
+// raw_xe5
+// raw_xe6
+// raw_xe7
+// raw_xe8
+// raw_xe9
+// raw_xea
+// raw_xeb
+// raw_xec
+// raw_xed
+// raw_xee
+// raw_xef
+// raw_xf0
+// raw_xf1
+// raw_xf2
+// raw_xf3
+// raw_xf4
+// raw_xf5
+// raw_xf6
+// raw_xf7
+// raw_xf8
+// raw_xf9
+// raw_xfa
+// raw_xfb
+// raw_xfc
+// raw_xfd
+// raw_xfe
+// raw_xff
+// T_option_t
+// T_option_p
+// T_option_err
+// T_esc_seq
+// T_eol
+// T_basic_char
+// T_raw_char
+// T_comment
+// T_ws
+// T_angled_string
+// T_c_literal
+// T_c_string
+// T_xc_str
+// T_unquoted_string
+// T_file_inclusion
+// T_identifier
+// T_int_no
+// T_raw_characters
+// T_lr1_constant_symbols
+// T_error_symbols
+// T_eocode
+// T_AD
+// T_AB
+// T_parallel_la_boundary
+// T_arbitrator_code
+// T_parallel_parser
+// T_parallel_thread_function
+// T_parallel_control_monitor
+// T_fsm
+// T_fsm_id
+// T_fsm_filename
+// T_fsm_namespace
+// T_fsm_class
+// T_fsm_version
+// T_fsm_date
+// T_fsm_debug
+// T_fsm_comments
+// T_terminals
+// T_enumeration
+// T_file_name
+// T_name_space
+// T_sym_class
+// T_rules
+// T_lhs
+// T_user_declaration
+// T_user_prefix_declaration
+// T_user_suffix_declaration
+// T_constructor
+// T_destructor
+// T_op
+// T_failed
+// T_user_implementation
+// T_user_imp_tbl
+// T_user_imp_sym
+// T_constant_defs
+// T_terminals_refs
+// T_terminals_sufx
+// T_lrk_sufx
+// T_selector
+// T_NULL
+// T_2colon
+// T_block
+// T_syntax_code
+// T_fsm_class_phrase
+// T_fsm_phrase
+// T_parallel_parser_phrase
+// T_enum_phrase
+// T_terminal_def
+// table_entry
+// T_sym_tbl_report_card
+// T_terminals_phrase
+// T_error_symbols_phrase
+// T_lr1_k_phrase
+// T_rc_phrase
+// T_rule_lhs_phrase
+// T_parallel_monitor_phrase
+// rule_def
+// T_rules_phrase
+// T_subrule_def
+// T_subrules_phrase
+// T_in_stbl
+// refered_T
+// rule_in_stbl
+// refered_rule
+// T_transitive
+// T_grammar_name
+// T_thread_name
+// T_monolithic
+// T_no_of_T
+// T_list_of_native_first_set_terminals
+// T_end_list_of_native_first_set_terminals
+// T_list_of_transitive_threads
+// T_end_list_of_transitive_threads
+// T_emitfile
+// T_preamble
+// T_end_preamble
+// T_T_alphabet
+// T_end_T_alphabet
+// T_file_of_T_alphabet
+// T_attributes
+// tth_in_stbl
+// thread_attributes
+// th_in_stbl
+// kw_in_stbl
+// T_la_expr_src
+// T_eosubrule
+// T_called_thread_eosubrule
+// T_null_call_thread_eosubrule
+// T_cweb_comment
+// T_grammar_phrase
+// T_cweb_marker
+// T_lint
+// T_list_of_used_threads
+// T_end_list_of_used_threads
+// Err_nested_files_exceeded
+// Err_no_end_of_code
+// Err_no_cmd_lne_data
+// Err_no_filename
+// Err_bad_filename
+// Err_bad_fsmheader_filename
+// Err_bad_fsmcpp_filename
+// Err_bad_fsmsym_filename
+// Err_bad_fsmtbl_filename
+// Err_bad_enum_filename
+// Err_bad_errors_hdrfilename
+// Err_bad_errors_impfilename
+// Err_bad_cmd_lne_opt
+// Err_bad_int_no
+// Err_bad_int_no_range
+// Err_no_int_present
+// Err_bad_eos
+// Err_bad_esc
+// Err_comment_overrun
+// Err_bad_char
+// Err_bad_univ_seq
+// Err_improper_closing_of_rules
+// Err_no_identifier_present
+// Err_no_directive_present
+// Err_duplicate_directive
+// Err_no_syntax_code_present
+// Err_no_open_parenthesis
+// Err_no_close_parenthesis
+// Err_no_fsm_id_present
+// Err_no_fsm_id_string
+// Err_no_fsm_filename_present
+// Err_no_fsm_filename_id_present
+// Err_no_comma_present
+// Err_no_terminal_key_present
+// Err_no_fsm_namespace_present
+// Err_no_fsm_namespace_id_present
+// Err_no_fsm_class_present
+// Err_no_fsm_version_present
+// Err_no_fsm_version_string
+// Err_no_fsm_date_present
+// Err_no_fsm_date_string
+// Err_no_fsm_debug_present
+// Err_no_fsm_debug_string
+// Err_no_fsm_comments_present
+// Err_no_fsm_comments_string
+// Err_fsm_debug_string_not_true_or_false
+// Err_no_pp_thread_function_present
+// Err_no_pp_ctrl_mntor_kw_present
+// Err_no_pp_fnct_id_present
+// Err_no_pp_bndry_present
+// Err_no_pp_la_bndary_expr_present
+// Err_no_syntax_code_end_present
+// Err_no_pp_code_present
+// Err_no_pp_code_stc_present
+// Err_not_arbitration_code_kw
+// Err_no_open_brace
+// Err_no_close_brace
+// Err_no_constant_defs_present
+// Err_no_filename_present
+// Err_no_filename_id_present
+// Err_no_namespace_present
+// Err_no_namespace_id_present
+// Err_no_kdefs_code_present
+// Err_no_kdefs_kw_present
+// Err_no_tdef_code_present
+// Err_no_sym_defs_present
+// Err_dup_entry_in_alphabet
+// Err_already_defined_AB
+// Err_already_defined_AD
+// Err_improper_directive
+// Err_no_sym_class_present
+// Err_no_sym_class_id_present
+// Err_zero_len_sym
+// Err_sym_tbl_full
+// Err_sym_tbl_char_pool_full
+// Err_dup_entry_in_sym_table
+// Err_subscript_out_of_range
+// Err_sym_tbl_nested_scope_stk_overflow
+// Err_sym_tbl_nested_scope_stk_underflow
+// Err_sym_tbl_context_buf_overflow
+// Err_report_card_ptr_0
+// Err_cannot_define_term_after_sufx_dir
+// Err_dup_sufx_directive
+// Err_terminals_refs_def_after_terminals
+// Err_terminals_refs_dup_def
+// Err_no_rule_name_present
+// Err_no_sub_rule_present
+// Err_subrule_use_undefined_T
+// Err_stbl_entry_unknown
+// Err_subrule_overrun
+// Err_stble_has_entry_but_not_a_rule
+// Err_file_of_T_alphabet_kw_not_present
+// Err_emitfile_kw_not_present
+// Err_preamble_kw_not_present
+// Err_preamble_srce_code_not_present
+// Err_end_preamble_kw_not_present
+// Err_cmd_line_chaffe
+// Err_T_alphabet_kw_not_present
+// Err_T_alphabet_file_not_present
+// Err_end_T_alphabet_kw_not_present
+// Err_no_terminals_in_T_alphabet_list
+// Err_rotten_chr_in_T_alphabet
+// Err_transitive_kw_not_present
+// Err_grammar_name_kw_not_present
+// Err_namespace_kw_not_present
+// Err_filename_kw_not_present
+// Err_threadname_kw_not_present
+// Err_monolithic_kw_not_present
+// Err_no_of_T_kw_not_present
+// Err_list_of_terminals_kw_not_present
+// Err_no_list_of_trans_threads_kw
+// Err_no_terminals_present_in_T_alphabet
+// Err_transitive_value_bad
+// Err_monolithic_value_bad
+// Err_grammar_name_value_not_present
+// Err_namespace_value_not_present
+// Err_threadname_value_not_present
+// Err_filename_value_not_present
+// Err_no_of_T_value_not_present
+// Err_no_of_terminals_not_present
+// Err_end_list_native_T_kw_not_present
+// Err_end_list_of_transitive_threads_kw_not_present
+// Err_no_of_native_Ts_in_list_not_equal
+// Err_no_of_threads_in_list_not_equal
+// Err_thread_refed_but_not_defined
+// Err_bad_T_in_list
+// Err_bad_th_in_list
+// Err_already_defined_in_fsc_file
+// Err_bad_thread_subscript
+// Err_not_a_keyword
+// Err_no_of_threads_not_present
+// Err_bad_T_alphabet
+// Err_fsc_file_does_not_exist
+// Err_filename_file_does_not_exist
+// Err_T_alphabet_file_does_not_exist
+// Err_emitfile_file_does_not_exist
+// Err_emitfile_file_not_present
+// Err_fsc_cntl_file_not_present
+// Err_file_of_T_alphabet_not_present
+// Err_epsilon_pass_thru
+// Err_epsilon_pass_thru_no_Ts
+// Err_rule_not_in_stbl
+// Err_T_not_in_stbl
+// Err_bad_directive
+// Err_bad_term_in_la_expr
+// Err_empty_set_removal_in_la_expr
+// Err_bad_operator_in_la_expr
+// Err_not_a_lhs_kw
+// Err_pp_la_boundary_attribute_not_fnd
+// Err_already_processed_fsm_phase
+// Err_already_processed_pp_phase
+// Err_already_processed_T_enum_phase
+// Err_already_processed_error_phase
+// Err_already_processed_rc_phase
+// Err_already_processed_lrk_phase
+// Err_already_processed_T_phase
+// Err_already_processed_rule_phase
+// Err_not_T_for_rtned_token_from_th
+// Err_not_id_for_ns_in_th_stmt
+// Err_not_id_for_th_name_in_th_stmt
+// Err_bad_th_qualifier
+// Err_not_dbl_colon_in_th_stmt
+// Err_not_T_or_R_in_subrule_expr
+// Err_not_T_or_R_or_eos_in_subrule_expr
+// Err_not_eos_in_subrule_expr
+// Err_invalid_logical_name
+// Err_invalid_logical_value
+// Err_duplicate_logical_name
+// Err_missing_terminals_refs_kw
+// Err_missing_terminals_sufx_kw
+// Err_not_a_terminal_definition
+// Err_missing_lrk_sufx_kw
+// ERR_sick_grammar
+// ERR_no_fsm_phrase
+// ERR_no_T_enum_phrase
+// ERR_no_lrk_phrase
+// ERR_no_rc_phrase
+// ERR_no_errors_phrase
+// ERR_no_terminals_phrase
+// ERR_no_rules_phrase
+// Err_used_rule_but_undefined
+// Err_rule_already_defined
+// Err_la_expr_calc_empty_set
+// Err_no_close_brace_ending_rules_defs
+// Err_use_of_T_outside_Rules_construct
+// Err_not_kw_defining_grammar_construct
+// Err_use_of_N_outside_Rules_construct
+// Err_misplaced_or_misspelt_Rule_or_T
+// Err_not_a_Rule
+// Err_empty_file
+// Err_not_lhs_pcnrl_mntr
+yacco2::UCHAR LA1_Csubrules_phrase[] ={
+72
+,0,18
+,1,255
+,2,255
+,3,255
+,4,255
+,5,255
+,6,255
+,7,255
+,8,255
+,9,255
+,10,255
+,11,255
+,12,255
+,13,255
+,14,255
+,15,255
+,16,255
+,17,255
+,18,255
+,19,255
+,20,255
+,21,255
+,22,255
+,23,255
+,24,255
+,25,255
+,26,255
+,27,255
+,28,255
+,29,255
+,30,255
+,31,255
+,32,255
+,33,255
+,34,255
+,35,255
+,36,255
+,37,255
+,38,255
+,39,255
+,40,255
+,41,255
+,42,255
+,43,255
+,44,255
+,45,255
+,46,255
+,47,255
+,48,255
+,49,255
+,50,255
+,51,255
+,52,255
+,53,255
+,54,255
+,55,255
+,56,255
+,57,255
+,58,255
+,59,255
+,60,255
+,61,255
+,62,255
+,63,255
+,64,255
+,65,255
+,66,255
+,67,255
+,68,255
+,69,255
+,70,255
+,71,1
+};
+// LR1_eog
+// raw_nul
+// raw_soh
+// raw_stx
+// raw_etx
+// raw_eot
+// raw_enq
+// raw_ack
+// raw_bel
+// raw_bs
+// raw_ht
+// raw_lf
+// raw_vt
+// raw_ff
+// raw_cr
+// raw_so
+// raw_si
+// raw_dle
+// raw_dc1
+// raw_dc2
+// raw_dc3
+// raw_dc4
+// raw_nak
+// raw_syn
+// raw_etb
+// raw_can
+// raw_em
+// raw_sub
+// raw_esc
+// raw_fs
+// raw_gs
+// raw_rs
+// raw_us
+// raw_sp
+// raw_exclam
+// raw_dbl_quote
+// raw_no_sign
+// raw_dollar_sign
+// raw_percent
+// raw_ampersign
+// raw_right_quote
+// raw_open_bracket
+// raw_close_bracket
+// raw_asteric
+// raw_plus
+// raw_comma
+// raw_minus
+// raw_period
+// raw_slash
+// raw_0
+// raw_1
+// raw_2
+// raw_3
+// raw_4
+// raw_5
+// raw_6
+// raw_7
+// raw_8
+// raw_9
+// raw_colon
+// raw_semi_colon
+// raw_less_than
+// raw_eq
+// raw_gt_than
+// raw_question_mark
+// raw_at_sign
+// raw_A
+// raw_B
+// raw_C
+// raw_D
+// raw_E
+// raw_F
+// raw_G
+// raw_H
+// raw_I
+// raw_J
+// raw_K
+// raw_L
+// raw_M
+// raw_N
+// raw_O
+// raw_P
+// raw_Q
+// raw_R
+// raw_S
+// raw_T
+// raw_U
+// raw_V
+// raw_W
+// raw_X
+// raw_Y
+// raw_Z
+// raw_open_sq_bracket
+// raw_back_slash
+// raw_close_sq_bracket
+// raw_up_arrow
+// raw_under_score
+// raw_left_quote
+// raw_a
+// raw_b
+// raw_c
+// raw_d
+// raw_e
+// raw_f
+// raw_g
+// raw_h
+// raw_i
+// raw_j
+// raw_k
+// raw_l
+// raw_m
+// raw_n
+// raw_o
+// raw_p
+// raw_q
+// raw_r
+// raw_s
+// raw_t
+// raw_u
+// raw_v
+// raw_w
+// raw_x
+// raw_y
+// raw_z
+// raw_open_brace
+// raw_vertical_line
+// raw_close_brace
+// raw_tilde
+// raw_del
+// raw_x80
+// raw_x81
+// raw_x82
+// raw_x83
+// raw_x84
+// raw_x85
+// raw_x86
+// raw_x87
+// raw_x88
+// raw_x89
+// raw_x8a
+// raw_x8b
+// raw_x8c
+// raw_x8d
+// raw_x8e
+// raw_x8f
+// raw_x90
+// raw_x91
+// raw_x92
+// raw_x93
+// raw_x94
+// raw_x95
+// raw_x96
+// raw_x97
+// raw_x98
+// raw_x99
+// raw_x9a
+// raw_x9b
+// raw_x9c
+// raw_x9d
+// raw_x9e
+// raw_x9f
+// raw_xa0
+// raw_xa1
+// raw_xa2
+// raw_xa3
+// raw_xa4
+// raw_xa5
+// raw_xa6
+// raw_xa7
+// raw_xa8
+// raw_xa9
+// raw_xaa
+// raw_xab
+// raw_xac
+// raw_xad
+// raw_xae
+// raw_xaf
+// raw_xb0
+// raw_xb1
+// raw_xb2
+// raw_xb3
+// raw_xb4
+// raw_xb5
+// raw_xb6
+// raw_xb7
+// raw_xb8
+// raw_xb9
+// raw_xba
+// raw_xbb
+// raw_xbc
+// raw_xbd
+// raw_xbe
+// raw_xbf
+// raw_xc0
+// raw_xc1
+// raw_xc2
+// raw_xc3
+// raw_xc4
+// raw_xc5
+// raw_xc6
+// raw_xc7
+// raw_xc8
+// raw_xc9
+// raw_xca
+// raw_xcb
+// raw_xcc
+// raw_xcd
+// raw_xce
+// raw_xcf
+// raw_xd0
+// raw_xd1
+// raw_xd2
+// raw_xd3
+// raw_xd4
+// raw_xd5
+// raw_xd6
+// raw_xd7
+// raw_xd8
+// raw_xd9
+// raw_xda
+// raw_xdb
+// raw_xdc
+// raw_xdd
+// raw_xde
+// raw_xdf
+// raw_xe0
+// raw_xe1
+// raw_xe2
+// raw_xe3
+// raw_xe4
+// raw_xe5
+// raw_xe6
+// raw_xe7
+// raw_xe8
+// raw_xe9
+// raw_xea
+// raw_xeb
+// raw_xec
+// raw_xed
+// raw_xee
+// raw_xef
+// raw_xf0
+// raw_xf1
+// raw_xf2
+// raw_xf3
+// raw_xf4
+// raw_xf5
+// raw_xf6
+// raw_xf7
+// raw_xf8
+// raw_xf9
+// raw_xfa
+// raw_xfb
+// raw_xfc
+// raw_xfd
+// raw_xfe
+// raw_xff
+// T_option_t
+// T_option_p
+// T_option_err
+// T_esc_seq
+// T_eol
+// T_basic_char
+// T_raw_char
+// T_comment
+// T_ws
+// T_angled_string
+// T_c_literal
+// T_c_string
+// T_xc_str
+// T_unquoted_string
+// T_file_inclusion
+// T_identifier
+// T_int_no
+// T_raw_characters
+// T_lr1_constant_symbols
+// T_error_symbols
+// T_eocode
+// T_AD
+// T_AB
+// T_parallel_la_boundary
+// T_arbitrator_code
+// T_parallel_parser
+// T_parallel_thread_function
+// T_parallel_control_monitor
+// T_fsm
+// T_fsm_id
+// T_fsm_filename
+// T_fsm_namespace
+// T_fsm_class
+// T_fsm_version
+// T_fsm_date
+// T_fsm_debug
+// T_fsm_comments
+// T_terminals
+// T_enumeration
+// T_file_name
+// T_name_space
+// T_sym_class
+// T_rules
+// T_lhs
+// T_user_declaration
+// T_user_prefix_declaration
+// T_user_suffix_declaration
+// T_constructor
+// T_destructor
+// T_op
+// T_failed
+// T_user_implementation
+// T_user_imp_tbl
+// T_user_imp_sym
+// T_constant_defs
+// T_terminals_refs
+// T_terminals_sufx
+// T_lrk_sufx
+// T_selector
+// T_NULL
+// T_2colon
+// T_block
+// T_syntax_code
+// T_fsm_class_phrase
+// T_fsm_phrase
+// T_parallel_parser_phrase
+// T_enum_phrase
+// T_terminal_def
+// table_entry
+// T_sym_tbl_report_card
+// T_terminals_phrase
+// T_error_symbols_phrase
+// T_lr1_k_phrase
+// T_rc_phrase
+// T_rule_lhs_phrase
+// T_parallel_monitor_phrase
+// rule_def
+// T_rules_phrase
+// T_subrule_def
+// T_subrules_phrase
+// T_in_stbl
+// refered_T
+// rule_in_stbl
+// refered_rule
+// T_transitive
+// T_grammar_name
+// T_thread_name
+// T_monolithic
+// T_no_of_T
+// T_list_of_native_first_set_terminals
+// T_end_list_of_native_first_set_terminals
+// T_list_of_transitive_threads
+// T_end_list_of_transitive_threads
+// T_emitfile
+// T_preamble
+// T_end_preamble
+// T_T_alphabet
+// T_end_T_alphabet
+// T_file_of_T_alphabet
+// T_attributes
+// tth_in_stbl
+// thread_attributes
+// th_in_stbl
+// kw_in_stbl
+// T_la_expr_src
+// T_eosubrule
+// T_called_thread_eosubrule
+// T_null_call_thread_eosubrule
+// T_cweb_comment
+// T_grammar_phrase
+// T_cweb_marker
+// T_lint
+// T_list_of_used_threads
+// T_end_list_of_used_threads
+// Err_nested_files_exceeded
+// Err_no_end_of_code
+// Err_no_cmd_lne_data
+// Err_no_filename
+// Err_bad_filename
+// Err_bad_fsmheader_filename
+// Err_bad_fsmcpp_filename
+// Err_bad_fsmsym_filename
+// Err_bad_fsmtbl_filename
+// Err_bad_enum_filename
+// Err_bad_errors_hdrfilename
+// Err_bad_errors_impfilename
+// Err_bad_cmd_lne_opt
+// Err_bad_int_no
+// Err_bad_int_no_range
+// Err_no_int_present
+// Err_bad_eos
+// Err_bad_esc
+// Err_comment_overrun
+// Err_bad_char
+// Err_bad_univ_seq
+// Err_improper_closing_of_rules
+// Err_no_identifier_present
+// Err_no_directive_present
+// Err_duplicate_directive
+// Err_no_syntax_code_present
+// Err_no_open_parenthesis
+// Err_no_close_parenthesis
+// Err_no_fsm_id_present
+// Err_no_fsm_id_string
+// Err_no_fsm_filename_present
+// Err_no_fsm_filename_id_present
+// Err_no_comma_present
+// Err_no_terminal_key_present
+// Err_no_fsm_namespace_present
+// Err_no_fsm_namespace_id_present
+// Err_no_fsm_class_present
+// Err_no_fsm_version_present
+// Err_no_fsm_version_string
+// Err_no_fsm_date_present
+// Err_no_fsm_date_string
+// Err_no_fsm_debug_present
+// Err_no_fsm_debug_string
+// Err_no_fsm_comments_present
+// Err_no_fsm_comments_string
+// Err_fsm_debug_string_not_true_or_false
+// Err_no_pp_thread_function_present
+// Err_no_pp_ctrl_mntor_kw_present
+// Err_no_pp_fnct_id_present
+// Err_no_pp_bndry_present
+// Err_no_pp_la_bndary_expr_present
+// Err_no_syntax_code_end_present
+// Err_no_pp_code_present
+// Err_no_pp_code_stc_present
+// Err_not_arbitration_code_kw
+// Err_no_open_brace
+// Err_no_close_brace
+// Err_no_constant_defs_present
+// Err_no_filename_present
+// Err_no_filename_id_present
+// Err_no_namespace_present
+// Err_no_namespace_id_present
+// Err_no_kdefs_code_present
+// Err_no_kdefs_kw_present
+// Err_no_tdef_code_present
+// Err_no_sym_defs_present
+// Err_dup_entry_in_alphabet
+// Err_already_defined_AB
+// Err_already_defined_AD
+// Err_improper_directive
+// Err_no_sym_class_present
+// Err_no_sym_class_id_present
+// Err_zero_len_sym
+// Err_sym_tbl_full
+// Err_sym_tbl_char_pool_full
+// Err_dup_entry_in_sym_table
+// Err_subscript_out_of_range
+// Err_sym_tbl_nested_scope_stk_overflow
+// Err_sym_tbl_nested_scope_stk_underflow
+// Err_sym_tbl_context_buf_overflow
+// Err_report_card_ptr_0
+// Err_cannot_define_term_after_sufx_dir
+// Err_dup_sufx_directive
+// Err_terminals_refs_def_after_terminals
+// Err_terminals_refs_dup_def
+// Err_no_rule_name_present
+// Err_no_sub_rule_present
+// Err_subrule_use_undefined_T
+// Err_stbl_entry_unknown
+// Err_subrule_overrun
+// Err_stble_has_entry_but_not_a_rule
+// Err_file_of_T_alphabet_kw_not_present
+// Err_emitfile_kw_not_present
+// Err_preamble_kw_not_present
+// Err_preamble_srce_code_not_present
+// Err_end_preamble_kw_not_present
+// Err_cmd_line_chaffe
+// Err_T_alphabet_kw_not_present
+// Err_T_alphabet_file_not_present
+// Err_end_T_alphabet_kw_not_present
+// Err_no_terminals_in_T_alphabet_list
+// Err_rotten_chr_in_T_alphabet
+// Err_transitive_kw_not_present
+// Err_grammar_name_kw_not_present
+// Err_namespace_kw_not_present
+// Err_filename_kw_not_present
+// Err_threadname_kw_not_present
+// Err_monolithic_kw_not_present
+// Err_no_of_T_kw_not_present
+// Err_list_of_terminals_kw_not_present
+// Err_no_list_of_trans_threads_kw
+// Err_no_terminals_present_in_T_alphabet
+// Err_transitive_value_bad
+// Err_monolithic_value_bad
+// Err_grammar_name_value_not_present
+// Err_namespace_value_not_present
+// Err_threadname_value_not_present
+// Err_filename_value_not_present
+// Err_no_of_T_value_not_present
+// Err_no_of_terminals_not_present
+// Err_end_list_native_T_kw_not_present
+// Err_end_list_of_transitive_threads_kw_not_present
+// Err_no_of_native_Ts_in_list_not_equal
+// Err_no_of_threads_in_list_not_equal
+// Err_thread_refed_but_not_defined
+// Err_bad_T_in_list
+// Err_bad_th_in_list
+// Err_already_defined_in_fsc_file
+// Err_bad_thread_subscript
+// Err_not_a_keyword
+// Err_no_of_threads_not_present
+// Err_bad_T_alphabet
+// Err_fsc_file_does_not_exist
+// Err_filename_file_does_not_exist
+// Err_T_alphabet_file_does_not_exist
+// Err_emitfile_file_does_not_exist
+// Err_emitfile_file_not_present
+// Err_fsc_cntl_file_not_present
+// Err_file_of_T_alphabet_not_present
+// Err_epsilon_pass_thru
+// Err_epsilon_pass_thru_no_Ts
+// Err_rule_not_in_stbl
+// Err_T_not_in_stbl
+// Err_bad_directive
+// Err_bad_term_in_la_expr
+// Err_empty_set_removal_in_la_expr
+// Err_bad_operator_in_la_expr
+// Err_not_a_lhs_kw
+// Err_pp_la_boundary_attribute_not_fnd
+// Err_already_processed_fsm_phase
+// Err_already_processed_pp_phase
+// Err_already_processed_T_enum_phase
+// Err_already_processed_error_phase
+// Err_already_processed_rc_phase
+// Err_already_processed_lrk_phase
+// Err_already_processed_T_phase
+// Err_already_processed_rule_phase
+// Err_not_T_for_rtned_token_from_th
+// Err_not_id_for_ns_in_th_stmt
+// Err_not_id_for_th_name_in_th_stmt
+// Err_bad_th_qualifier
+// Err_not_dbl_colon_in_th_stmt
+// Err_not_T_or_R_in_subrule_expr
+// Err_not_T_or_R_or_eos_in_subrule_expr
+// Err_not_eos_in_subrule_expr
+// Err_invalid_logical_name
+// Err_invalid_logical_value
+// Err_duplicate_logical_name
+// Err_missing_terminals_refs_kw
+// Err_missing_terminals_sufx_kw
+// Err_not_a_terminal_definition
+// Err_missing_lrk_sufx_kw
+// ERR_sick_grammar
+// ERR_no_fsm_phrase
+// ERR_no_T_enum_phrase
+// ERR_no_lrk_phrase
+// ERR_no_rc_phrase
+// ERR_no_errors_phrase
+// ERR_no_terminals_phrase
+// ERR_no_rules_phrase
+// Err_used_rule_but_undefined
+// Err_rule_already_defined
+// Err_la_expr_calc_empty_set
+// Err_no_close_brace_ending_rules_defs
+// Err_use_of_T_outside_Rules_construct
+// Err_not_kw_defining_grammar_construct
+// Err_use_of_N_outside_Rules_construct
+// Err_misplaced_or_misspelt_Rule_or_T
+// Err_not_a_Rule
+// Err_empty_file
+// Err_not_lhs_pcnrl_mntr
+yacco2::UCHAR LA2_Csubrules_phrase[] ={
+72
+,0,2
+,1,255
+,2,255
+,3,255
+,4,255
+,5,255
+,6,255
+,7,255
+,8,255
+,9,255
+,10,255
+,11,255
+,12,255
+,13,255
+,14,255
+,15,255
+,16,255
+,17,255
+,18,255
+,19,255
+,20,255
+,21,255
+,22,255
+,23,255
+,24,255
+,25,255
+,26,255
+,27,255
+,28,255
+,29,255
+,30,255
+,31,255
+,32,255
+,33,255
+,34,255
+,35,255
+,36,255
+,37,255
+,38,255
+,39,255
+,40,255
+,41,255
+,42,255
+,43,255
+,44,255
+,45,255
+,46,255
+,47,255
+,48,255
+,49,255
+,50,255
+,51,255
+,52,255
+,53,255
+,54,255
+,55,255
+,56,255
+,57,255
+,58,255
+,59,255
+,60,255
+,61,255
+,62,255
+,63,255
+,64,255
+,65,255
+,66,255
+,67,255
+,68,255
+,69,255
+,70,255
+,71,1
+};
+extern yacco2::State S1_Csubrules_phrase;
+extern yacco2::State S2_Csubrules_phrase;
+extern yacco2::State S3_Csubrules_phrase;
+struct S3ttd_Csubrules_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S3ttd_Csubrules_phrase S3tt_Csubrules_phrase = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_subrule_def
+};
+extern yacco2::State S4_Csubrules_phrase;
+extern yacco2::State S5_Csubrules_phrase;
+extern yacco2::State S6_Csubrules_phrase;
+extern yacco2::State S7_Csubrules_phrase;
+struct S7ttd_Csubrules_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S7ttd_Csubrules_phrase S7tt_Csubrules_phrase = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_subrule_def
+};
+extern yacco2::State S8_Csubrules_phrase;
+extern yacco2::State S9_Csubrules_phrase;
+extern yacco2::State S10_Csubrules_phrase;
+extern yacco2::State S11_Csubrules_phrase;
+struct S11ttd_Csubrules_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S11ttd_Csubrules_phrase S11tt_Csubrules_phrase = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_lint_balls
+};
+extern yacco2::State S12_Csubrules_phrase;
+extern yacco2::State S13_Csubrules_phrase;
+extern yacco2::State S14_Csubrules_phrase;
+extern yacco2::State S15_Csubrules_phrase;
+struct S1std_Csubrules_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S1std_Csubrules_phrase S1st_Csubrules_phrase = {
+ 5
+ ,
+ {// start of table
+ {0,(State*)&S2_Csubrules_phrase} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S3_Csubrules_phrase} // shift sym: LR1_parallel_operator
+ ,{569,(State*)&S1_Csubrules_phrase} // accept sym: Rsubrules_phrase
+ ,{570,(State*)&S6_Csubrules_phrase} // shift sym: Rsubrule_defs
+ ,{571,(State*)&S14_Csubrules_phrase} // shift sym: Rsubrule_def
+ }// end of shift table
+};
+yacco2::Shift_entry S1pse_Csubrules_phrase = {3,(State*)&S3_Csubrules_phrase};
+yacco2::Shift_entry S1qse_Csubrules_phrase = {0,(State*)&S2_Csubrules_phrase};
+yacco2::State S1_Csubrules_phrase = //State's vectored into symbol: " No symbol"
+{1
+,(Shift_entry*)&S1pse_Csubrules_phrase,0,0,0,(Shift_tbl*)&S1st_Csubrules_phrase,0,(State_s_thread_tbl*)&S3tt_Csubrules_phrase,0,(Shift_entry*)&S1qse_Csubrules_phrase
+};
+struct S2rtd_Csubrules_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Csubrules_phrase S2rt_Csubrules_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Csubrules_phrase,Csubrules_phrase::rhs3_Rsubrule_def_}
+ }// end of reduce table
+};
+yacco2::State S2_Csubrules_phrase = //State's vectored into symbol: "|?|"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Csubrules_phrase,0,0,0};
+struct S3std_Csubrules_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S3std_Csubrules_phrase S3st_Csubrules_phrase = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S4_Csubrules_phrase} // shift sym: LR1_questionable_shift_operator
+ ,{342,(State*)&S5_Csubrules_phrase} // shift sym: T_subrule_def
+ }// end of shift table
+};
+yacco2::Shift_entry S3qse_Csubrules_phrase = {0,(State*)&S4_Csubrules_phrase};
+yacco2::State S3_Csubrules_phrase = //State's vectored into symbol: "|||"
+{3
+,0,0,0,0,(Shift_tbl*)&S3st_Csubrules_phrase,0,0,0,(Shift_entry*)&S3qse_Csubrules_phrase
+};
+struct S4rtd_Csubrules_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Csubrules_phrase S4rt_Csubrules_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Csubrules_phrase,Csubrules_phrase::rhs2_Rsubrule_def_}
+ }// end of reduce table
+};
+yacco2::State S4_Csubrules_phrase = //State's vectored into symbol: "|?|"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Csubrules_phrase,0,0,0};
+struct S5rtd_Csubrules_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Csubrules_phrase S5rt_Csubrules_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Csubrules_phrase,Csubrules_phrase::rhs1_Rsubrule_def_}
+ }// end of reduce table
+};
+yacco2::State S5_Csubrules_phrase = //State's vectored into symbol: "subrule-def"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Csubrules_phrase,0,0,0};
+struct S6std_Csubrules_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S6std_Csubrules_phrase S6st_Csubrules_phrase = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S7_Csubrules_phrase} // shift sym: LR1_parallel_operator
+ ,{572,(State*)&S10_Csubrules_phrase} // shift sym: Rsubrule_def1
+ }// end of shift table
+};
+yacco2::Shift_entry S6pse_Csubrules_phrase = {3,(State*)&S7_Csubrules_phrase};
+struct S6rtd_Csubrules_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Csubrules_phrase S6rt_Csubrules_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Csubrules_phrase,Csubrules_phrase::rhs1_Rsubrules_phrase_}
+ }// end of reduce table
+};
+yacco2::State S6_Csubrules_phrase = //State's vectored into symbol: "Rsubrule_defs"
+{6
+,(Shift_entry*)&S6pse_Csubrules_phrase,0,0,0,(Shift_tbl*)&S6st_Csubrules_phrase,(Reduce_tbl*)&S6rt_Csubrules_phrase,(State_s_thread_tbl*)&S7tt_Csubrules_phrase,0,0};
+struct S7std_Csubrules_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S7std_Csubrules_phrase S7st_Csubrules_phrase = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S8_Csubrules_phrase} // shift sym: LR1_questionable_shift_operator
+ ,{342,(State*)&S9_Csubrules_phrase} // shift sym: T_subrule_def
+ }// end of shift table
+};
+yacco2::Shift_entry S7qse_Csubrules_phrase = {0,(State*)&S8_Csubrules_phrase};
+yacco2::State S7_Csubrules_phrase = //State's vectored into symbol: "|||"
+{7
+,0,0,0,0,(Shift_tbl*)&S7st_Csubrules_phrase,0,0,0,(Shift_entry*)&S7qse_Csubrules_phrase
+};
+struct S8rtd_Csubrules_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S8rtd_Csubrules_phrase S8rt_Csubrules_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Csubrules_phrase,Csubrules_phrase::rhs2_Rsubrule_def1_}
+ }// end of reduce table
+};
+yacco2::State S8_Csubrules_phrase = //State's vectored into symbol: "|?|"
+{8
+,0,0,0,0,0,(Reduce_tbl*)&S8rt_Csubrules_phrase,0,0,0};
+struct S9rtd_Csubrules_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Csubrules_phrase S9rt_Csubrules_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Csubrules_phrase,Csubrules_phrase::rhs1_Rsubrule_def1_}
+ }// end of reduce table
+};
+yacco2::State S9_Csubrules_phrase = //State's vectored into symbol: "subrule-def"
+{9
+,0,0,0,0,0,(Reduce_tbl*)&S9rt_Csubrules_phrase,0,0,0};
+struct S10std_Csubrules_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S10std_Csubrules_phrase S10st_Csubrules_phrase = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S11_Csubrules_phrase} // shift sym: LR1_parallel_operator
+ ,{573,(State*)&S13_Csubrules_phrase} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S10pse_Csubrules_phrase = {3,(State*)&S11_Csubrules_phrase};
+struct S10rtd_Csubrules_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S10rtd_Csubrules_phrase S10rt_Csubrules_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Csubrules_phrase,Csubrules_phrase::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S10_Csubrules_phrase = //State's vectored into symbol: "Rsubrule_def1"
+{10
+,(Shift_entry*)&S10pse_Csubrules_phrase,0,0,0,(Shift_tbl*)&S10st_Csubrules_phrase,(Reduce_tbl*)&S10rt_Csubrules_phrase,(State_s_thread_tbl*)&S11tt_Csubrules_phrase,0,0};
+struct S11std_Csubrules_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S11std_Csubrules_phrase S11st_Csubrules_phrase = {
+ 1
+ ,
+ {// start of table
+ {375,(State*)&S12_Csubrules_phrase} // shift sym: T_lint
+ }// end of shift table
+};
+yacco2::State S11_Csubrules_phrase = //State's vectored into symbol: "|||"
+{11
+,0,0,0,0,(Shift_tbl*)&S11st_Csubrules_phrase,0,0,0,0};
+struct S12rtd_Csubrules_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S12rtd_Csubrules_phrase S12rt_Csubrules_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Csubrules_phrase,Csubrules_phrase::rhs1_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S12_Csubrules_phrase = //State's vectored into symbol: "lint"
+{12
+,0,0,0,0,0,(Reduce_tbl*)&S12rt_Csubrules_phrase,0,0,0};
+struct S13rtd_Csubrules_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S13rtd_Csubrules_phrase S13rt_Csubrules_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Csubrules_phrase,Csubrules_phrase::rhs2_Rsubrule_defs_}
+ }// end of reduce table
+};
+yacco2::State S13_Csubrules_phrase = //State's vectored into symbol: "Rlint"
+{13
+,0,0,0,0,0,(Reduce_tbl*)&S13rt_Csubrules_phrase,0,0,0};
+struct S14std_Csubrules_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S14std_Csubrules_phrase S14st_Csubrules_phrase = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S11_Csubrules_phrase} // shift sym: LR1_parallel_operator
+ ,{573,(State*)&S15_Csubrules_phrase} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S14pse_Csubrules_phrase = {3,(State*)&S11_Csubrules_phrase};
+struct S14rtd_Csubrules_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S14rtd_Csubrules_phrase S14rt_Csubrules_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Csubrules_phrase,Csubrules_phrase::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S14_Csubrules_phrase = //State's vectored into symbol: "Rsubrule_def"
+{14
+,(Shift_entry*)&S14pse_Csubrules_phrase,0,0,0,(Shift_tbl*)&S14st_Csubrules_phrase,(Reduce_tbl*)&S14rt_Csubrules_phrase,(State_s_thread_tbl*)&S11tt_Csubrules_phrase,0,0};
+struct S15rtd_Csubrules_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S15rtd_Csubrules_phrase S15rt_Csubrules_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Csubrules_phrase,Csubrules_phrase::rhs1_Rsubrule_defs_}
+ }// end of reduce table
+};
+yacco2::State S15_Csubrules_phrase = //State's vectored into symbol: "Rlint"
+{15
+,0,0,0,0,0,(Reduce_tbl*)&S15rt_Csubrules_phrase,0,0,0};
diff --git a/web/yacco2/compiler/grammars/t_alphabet.cpp b/web/yacco2/compiler/grammars/t_alphabet.cpp
new file mode 100644
index 0000000000..969bbf55a9
--- /dev/null
+++ b/web/yacco2/compiler/grammars/t_alphabet.cpp
@@ -0,0 +1,210 @@
+/*
+ File: t_alphabet.cpp
+ Date and Time: Fri Jan 30 18:55:25 2015
+*/
+#include "t_alphabet.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_t_alphabet;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 6;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[4] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[5] = new Per_rule_s_reuse_table();
+}
+ Ct_alphabet::
+ Ct_alphabet()
+ :yacco2::CAbs_fsm
+ ("t_alphabet.lex"
+ ,"1.0"
+ ,"9 Feb. 2005"
+ ,false
+ ,"Parse Linker's t-alphabet language."
+ ,"Fri Jan 30 18:55:25 2015 "
+ ,S1_Ct_alphabet){
+
+ enum_cnt_ = 0;
+
+ }
+
+Ct_alphabet::~Ct_alphabet(){
+
+ for(int x = 0;x < 6;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Ct_alphabet::failed(){
+ return false;
+ }
+ void Ct_alphabet::op(){
+}
+int Ct_alphabet::rhs_to_rules_mapping_[11] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,2 // subrule 3 for rule 3
+ ,2 // subrule 4 for rule 3
+ ,3 // subrule 5 for rule 4
+ ,3 // subrule 6 for rule 4
+ ,3 // subrule 7 for rule 4
+ ,4 // subrule 8 for rule 5
+ ,5 // subrule 9 for rule 6
+ ,5 // subrule 10 for rule 6
+};
+Rt_alphabet::Rt_alphabet(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rt_alphabet",0,Ct_alphabet::R_Rt_alphabet_,P,false,false){
+}
+
+void Rt_alphabet::op(){
+ sstrace_rulesss
+
+ using namespace NS_yacco2_k_symbols;
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*yacco2::PTR_LR1_eog__);
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*yacco2::PTR_LR1_eog__);
+
+}
+Reog::Reog(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Reog",0,Ct_alphabet::R_Reog_,P,false,false){
+}
+
+void Reog::sr1(){
+ struct SF{
+ LR1_eog* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ct_alphabet* fsm = (Ct_alphabet*) rule_info__.parser__->fsm_tbl__;
+ if(fsm->T_dictionary_.empty()){
+ CAbs_lr1_sym* sym = new Err_no_terminals_present_in_T_alphabet;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ }
+
+}
+
+RT_alphabet::RT_alphabet(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("RT_alphabet",0,Ct_alphabet::R_RT_alphabet_,P,false,false){
+}
+
+void RT_alphabet::sr2(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_T_alphabet_kw_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rlist_of_Ts::Rlist_of_Ts(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlist_of_Ts",0,Ct_alphabet::R_Rlist_of_Ts_,P,false,false){
+}
+
+void Rlist_of_Ts::sr3(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_no_terminals_in_T_alphabet_list;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Ra_T::Ra_T(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Ra_T",0,Ct_alphabet::R_Ra_T_,P,false,false){
+}
+
+void Ra_T::sr1(){
+ struct SF{
+ T_identifier* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Ct_alphabet* fsm = (Ct_alphabet*) rule_info__.parser__->fsm_tbl__;
+ T_identifier* k = sf->p1__;
+ // add to T dictionary
+ std::map<std::string,int>::iterator i =
+ fsm->T_dictionary_.find(k->identifier()->c_str());
+ if(i != fsm->T_dictionary_.end()){
+ CAbs_lr1_sym* sym = new Err_dup_entry_in_sym_table;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ fsm->T_dictionary_[k->identifier()->c_str()]=fsm->enum_cnt_;
+ string xxx(k->identifier()->c_str());
+ fsm->enum_T_dictionary_[fsm->enum_cnt_] = xxx;
+ using namespace yacco2_stbl;
+ T_sym_tbl_report_card report_card;
+ T_attributes* T_att = new T_attributes(k->identifier()->c_str(),fsm->enum_cnt_);
+ tth_in_stbl* t = new tth_in_stbl(T_att,k,rule_info__.parser__);
+ add_sym_to_stbl(report_card,*k->identifier()->c_str()
+ ,*t,table_entry::defed,table_entry::terminal);
+ if(report_card.status_ != T_sym_tbl_report_card::okay){
+ report_card.err_entry_->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*report_card.err_entry_);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ t->stbl_idx(report_card.pos_);
+ T_DICTIONARY.push_back(report_card.tbl_entry_);
+ T_THREAD_ID_LIST.push_back(std::set<int>());
+ ++fsm->enum_cnt_;
+
+}
+
+Rend_T_alphabet::Rend_T_alphabet(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rend_T_alphabet",0,Ct_alphabet::R_Rend_T_alphabet_,P,false,false){
+}
+
+void Rend_T_alphabet::sr2(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_end_T_alphabet_kw_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
diff --git a/web/yacco2/compiler/grammars/t_alphabet.fsc b/web/yacco2/compiler/grammars/t_alphabet.fsc
new file mode 100644
index 0000000000..8ec73702a7
--- /dev/null
+++ b/web/yacco2/compiler/grammars/t_alphabet.fsc
@@ -0,0 +1,21 @@
+/*
+ File: t_alphabet.fsc
+ Date and Time: Fri Jan 30 18:55:25 2015
+*/
+transitive n
+grammar-name "t_alphabet"
+name-space "NS_t_alphabet"
+thread-name "Ct_alphabet"
+monolithic y
+file-name "t_alphabet.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 2
+ LR1_questionable_shift_operator
+ T_T_alphabet
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"Parse Linker's t-alphabet language."
diff --git a/web/yacco2/compiler/grammars/t_alphabet.h b/web/yacco2/compiler/grammars/t_alphabet.h
new file mode 100644
index 0000000000..d0d5084b3a
--- /dev/null
+++ b/web/yacco2/compiler/grammars/t_alphabet.h
@@ -0,0 +1,110 @@
+/*
+ File: t_alphabet.h
+ Date and Time: Fri Jan 30 18:55:25 2015
+*/
+#ifndef __t_alphabet_h__
+#define __t_alphabet_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+ #include "yacco2_stbl.h"
+ extern std::vector<NS_yacco2_terminals::table_entry*> T_DICTIONARY;
+ extern std::vector< std::set<int> > T_THREAD_ID_LIST;
+
+// monolithic grammar: no thread
+extern yacco2::State S1_Ct_alphabet;
+namespace NS_t_alphabet {
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[6];
+};
+class Ct_alphabet: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rt_alphabet_ = 569//start_of_rule_list + 0
+ ,rhs1_Rt_alphabet_ = 1
+ ,R_Reog_ = 570//start_of_rule_list + 2
+ ,rhs1_Reog_ = 2
+ ,R_RT_alphabet_ = 571//start_of_rule_list + 4
+ ,rhs1_RT_alphabet_ = 3
+ ,rhs2_RT_alphabet_ = 4
+ ,R_Rlist_of_Ts_ = 572//start_of_rule_list + 6
+ ,rhs1_Rlist_of_Ts_ = 5
+ ,rhs2_Rlist_of_Ts_ = 6
+ ,rhs3_Rlist_of_Ts_ = 7
+ ,R_Ra_T_ = 573//start_of_rule_list + 8
+ ,rhs1_Ra_T_ = 8
+ ,R_Rend_T_alphabet_ = 574//start_of_rule_list + 10
+ ,rhs1_Rend_T_alphabet_ = 9
+ ,rhs2_Rend_T_alphabet_ = 10
+ };
+ //no of la sets = 4
+ //no of states = 14
+ Ct_alphabet();
+ ~Ct_alphabet();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[11];
+
+ public:
+ std::map<int,std::string> enum_T_dictionary_;
+ std::map<std::string,int> T_dictionary_;
+ int enum_cnt_;
+
+ };
+struct Rt_alphabet;
+struct Reog;
+struct RT_alphabet;
+struct Rlist_of_Ts;
+struct Ra_T;
+struct Rend_T_alphabet;
+struct Rt_alphabet:public yacco2::CAbs_lr1_sym {
+ Rt_alphabet(yacco2::Parser* P);
+ void op();
+ public:
+};
+
+struct Reog:public yacco2::CAbs_lr1_sym {
+ Reog(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct RT_alphabet:public yacco2::CAbs_lr1_sym {
+ RT_alphabet(yacco2::Parser* P);
+ public:
+ void sr2();
+};
+
+struct Rlist_of_Ts:public yacco2::CAbs_lr1_sym {
+ Rlist_of_Ts(yacco2::Parser* P);
+ public:
+ void sr3();
+};
+
+struct Ra_T:public yacco2::CAbs_lr1_sym {
+ Ra_T(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rend_T_alphabet:public yacco2::CAbs_lr1_sym {
+ Rend_T_alphabet(yacco2::Parser* P);
+ public:
+ void sr2();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/t_alphabet.lex b/web/yacco2/compiler/grammars/t_alphabet.lex
new file mode 100644
index 0000000000..9f622e52cc
--- /dev/null
+++ b/web/yacco2/compiler/grammars/t_alphabet.lex
@@ -0,0 +1,154 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: t_alphabet.lex
+dates: 10 feb. 2005
+Purpose: parse of t-alphabet language.
+ put T into global T dictionary, yacco2's symbol table
+ and global thread list per terminal.
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |t_alphabet| grammar.\fbreak
+Parse Linker's t-alphabet language.
+It's just a list of terminal names.
+\fbreak
+For the Yacco2 grammars, it looks like this:\fbreak
+\listing{"/usr/local/yacco2/diagrams+etc/intro2.txt"}
+\fbreak
+ @/
+fsm
+(fsm-id "t_alphabet.lex",fsm-filename t_alphabet,fsm-namespace NS_t_alphabet
+,fsm-class Ct_alphabet{
+ user-prefix-declaration
+ #include "yacco2_stbl.h"
+ extern std::vector<NS_yacco2_terminals::table_entry*> T_DICTIONARY;
+ extern std::vector< std::set<int> > T_THREAD_ID_LIST;
+ ***
+ user-declaration
+ public:
+ std::map<int,std::string> enum_T_dictionary_;
+ std::map<std::string,int> T_dictionary_;
+ int enum_cnt_;
+ ***
+ constructor
+ enum_cnt_ = 0;
+ ***
+}
+,fsm-version "1.0",fsm-date "9 Feb. 2005",fsm-debug "false"
+,fsm-comments "Parse Linker's t-alphabet language.")
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rt_alphabet (
+lhs{
+ op
+ using namespace NS_yacco2_k_symbols;
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*yacco2::PTR_LR1_eog__);
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*yacco2::PTR_LR1_eog__);
+ ***
+ }
+){
+ -> RT_alphabet
+ Rlist_of_Ts
+ Rend_T_alphabet
+ Reog
+}
+Reog (){
+ -> eog {
+ op
+ Ct_alphabet* fsm = (Ct_alphabet*) rule_info__.parser__->fsm_tbl__;
+ if(fsm->T_dictionary_.empty()){
+ CAbs_lr1_sym* sym = new Err_no_terminals_present_in_T_alphabet;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ }
+ ***
+ }
+}
+
+RT_alphabet (){
+ -> "T-alphabet"
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_T_alphabet_kw_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rlist_of_Ts (){
+ -> Ra_T
+ -> Rlist_of_Ts Ra_T
+ -> |?| {
+/@
+ no terminals in list: \fbreak
+ REMEMBER THERE IS NO ASSOCIATED CO-ORDINATES, USE CURRENT TOKEN.
+@/
+ op
+ CAbs_lr1_sym* sym = new Err_no_terminals_in_T_alphabet_list;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Ra_T (){
+ -> identifier {
+ op
+ Ct_alphabet* fsm = (Ct_alphabet*) rule_info__.parser__->fsm_tbl__;
+ T_identifier* k = sf->p1__;
+ // add to T dictionary
+ std::map<std::string,int>::iterator i =
+ fsm->T_dictionary_.find(k->identifier()->c_str());
+ if(i != fsm->T_dictionary_.end()){
+ CAbs_lr1_sym* sym = new Err_dup_entry_in_sym_table;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ fsm->T_dictionary_[k->identifier()->c_str()]=fsm->enum_cnt_;
+ string xxx(k->identifier()->c_str());
+ fsm->enum_T_dictionary_[fsm->enum_cnt_] = xxx;
+ using namespace yacco2_stbl;
+ T_sym_tbl_report_card report_card;
+ T_attributes* T_att = new T_attributes(k->identifier()->c_str(),fsm->enum_cnt_);
+ tth_in_stbl* t = new tth_in_stbl(T_att,k,rule_info__.parser__);
+ add_sym_to_stbl(report_card,*k->identifier()->c_str()
+ ,*t,table_entry::defed,table_entry::terminal);
+ if(report_card.status_ != T_sym_tbl_report_card::okay){
+ report_card.err_entry_->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*report_card.err_entry_);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ t->stbl_idx(report_card.pos_);
+ T_DICTIONARY.push_back(report_card.tbl_entry_);
+ T_THREAD_ID_LIST.push_back(std::set<int>());
+ ++fsm->enum_cnt_;
+ ***
+ }
+}
+
+Rend_T_alphabet (){
+ -> "end-T-alphabet"
+ -> |?| {
+ /@
+ Random characters or eog to err or not to ?
+ @/
+ op
+ CAbs_lr1_sym* sym = new Err_end_T_alphabet_kw_not_present;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/t_alphabetsym.cpp b/web/yacco2/compiler/grammars/t_alphabetsym.cpp
new file mode 100644
index 0000000000..2657a4a843
--- /dev/null
+++ b/web/yacco2/compiler/grammars/t_alphabetsym.cpp
@@ -0,0 +1,173 @@
+/*
+ File: t_alphabetsym.cpp
+ Date and Time: Fri Jan 30 18:55:25 2015
+*/
+#include "t_alphabet.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_t_alphabet;// grammar's ns
+// first set terminals
+// monolithic grammar --- no thread
+void
+Ct_alphabet::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rt_alphabet_:{
+ Rt_alphabet* sym;
+ if(re->rule_ == 0){
+ sym = new Rt_alphabet(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rt_alphabet*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 4;
+
+
+ sym->op();
+ return;}
+ case rhs1_Reog_:{
+ Reog* sym;
+ if(re->rule_ == 0){
+ sym = new Reog(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Reog*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_RT_alphabet_:{
+ RT_alphabet* sym;
+ if(re->rule_ == 0){
+ sym = new RT_alphabet(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RT_alphabet*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_RT_alphabet_:{
+ RT_alphabet* sym;
+ if(re->rule_ == 0){
+ sym = new RT_alphabet(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RT_alphabet*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rlist_of_Ts_:{
+ Rlist_of_Ts* sym;
+ if(re->rule_ == 0){
+ sym = new Rlist_of_Ts(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlist_of_Ts*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rlist_of_Ts_:{
+ Rlist_of_Ts* sym;
+ if(re->rule_ == 0){
+ sym = new Rlist_of_Ts(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlist_of_Ts*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs3_Rlist_of_Ts_:{
+ Rlist_of_Ts* sym;
+ if(re->rule_ == 0){
+ sym = new Rlist_of_Ts(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlist_of_Ts*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Ra_T_:{
+ Ra_T* sym;
+ if(re->rule_ == 0){
+ sym = new Ra_T(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ra_T*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rend_T_alphabet_:{
+ Rend_T_alphabet* sym;
+ if(re->rule_ == 0){
+ sym = new Rend_T_alphabet(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rend_T_alphabet*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rend_T_alphabet_:{
+ Rend_T_alphabet* sym;
+ if(re->rule_ == 0){
+ sym = new Rend_T_alphabet(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rend_T_alphabet*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/t_alphabettbl.cpp b/web/yacco2/compiler/grammars/t_alphabettbl.cpp
new file mode 100644
index 0000000000..b1b1ed14a0
--- /dev/null
+++ b/web/yacco2/compiler/grammars/t_alphabettbl.cpp
@@ -0,0 +1,266 @@
+/*
+ File: t_alphabettbl.cpp
+ Date and Time: Fri Jan 30 18:55:25 2015
+*/
+#include "t_alphabet.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_t_alphabet;// grammar's ns
+// first set terminals
+// LR1_questionable_shift_operator
+// T_identifier
+yacco2::UCHAR LA1_Ct_alphabet[] ={
+2
+,0,1
+,34,128
+};
+// LR1_eog
+yacco2::UCHAR LA2_Ct_alphabet[] ={
+1
+,0,2
+};
+// LR1_questionable_shift_operator
+// T_identifier
+// T_end_T_alphabet
+yacco2::UCHAR LA3_Ct_alphabet[] ={
+3
+,0,1
+,34,128
+,45,2
+};
+// LR1_eolr
+yacco2::UCHAR LA4_Ct_alphabet[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Ct_alphabet;
+extern yacco2::State S2_Ct_alphabet;
+extern yacco2::State S3_Ct_alphabet;
+extern yacco2::State S4_Ct_alphabet;
+extern yacco2::State S5_Ct_alphabet;
+extern yacco2::State S6_Ct_alphabet;
+extern yacco2::State S7_Ct_alphabet;
+extern yacco2::State S8_Ct_alphabet;
+extern yacco2::State S9_Ct_alphabet;
+extern yacco2::State S10_Ct_alphabet;
+extern yacco2::State S11_Ct_alphabet;
+extern yacco2::State S12_Ct_alphabet;
+extern yacco2::State S13_Ct_alphabet;
+extern yacco2::State S14_Ct_alphabet;
+struct S1std_Ct_alphabet{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S1std_Ct_alphabet S1st_Ct_alphabet = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S2_Ct_alphabet} // shift sym: LR1_questionable_shift_operator
+ ,{360,(State*)&S3_Ct_alphabet} // shift sym: T_T_alphabet
+ ,{569,(State*)&S1_Ct_alphabet} // accept sym: Rt_alphabet
+ ,{571,(State*)&S4_Ct_alphabet} // shift sym: RT_alphabet
+ }// end of shift table
+};
+yacco2::Shift_entry S1qse_Ct_alphabet = {0,(State*)&S2_Ct_alphabet};
+yacco2::State S1_Ct_alphabet = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Ct_alphabet,0,0,0,(Shift_entry*)&S1qse_Ct_alphabet
+};
+struct S2rtd_Ct_alphabet{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Ct_alphabet S2rt_Ct_alphabet = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ct_alphabet,Ct_alphabet::rhs2_RT_alphabet_}
+ }// end of reduce table
+};
+yacco2::State S2_Ct_alphabet = //State's vectored into symbol: "|?|"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Ct_alphabet,0,0,0};
+struct S3rtd_Ct_alphabet{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Ct_alphabet S3rt_Ct_alphabet = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ct_alphabet,Ct_alphabet::rhs1_RT_alphabet_}
+ }// end of reduce table
+};
+yacco2::State S3_Ct_alphabet = //State's vectored into symbol: "T-alphabet"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_Ct_alphabet,0,0,0};
+struct S4std_Ct_alphabet{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S4std_Ct_alphabet S4st_Ct_alphabet = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S12_Ct_alphabet} // shift sym: LR1_questionable_shift_operator
+ ,{279,(State*)&S7_Ct_alphabet} // shift sym: T_identifier
+ ,{572,(State*)&S5_Ct_alphabet} // shift sym: Rlist_of_Ts
+ ,{573,(State*)&S14_Ct_alphabet} // shift sym: Ra_T
+ }// end of shift table
+};
+yacco2::Shift_entry S4qse_Ct_alphabet = {0,(State*)&S12_Ct_alphabet};
+yacco2::State S4_Ct_alphabet = //State's vectored into symbol: "RT_alphabet"
+{4
+,0,0,0,0,(Shift_tbl*)&S4st_Ct_alphabet,0,0,0,(Shift_entry*)&S4qse_Ct_alphabet
+};
+struct S5std_Ct_alphabet{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[5];
+};
+S5std_Ct_alphabet S5st_Ct_alphabet = {
+ 5
+ ,
+ {// start of table
+ {0,(State*)&S6_Ct_alphabet} // shift sym: LR1_questionable_shift_operator
+ ,{279,(State*)&S7_Ct_alphabet} // shift sym: T_identifier
+ ,{361,(State*)&S8_Ct_alphabet} // shift sym: T_end_T_alphabet
+ ,{573,(State*)&S13_Ct_alphabet} // shift sym: Ra_T
+ ,{574,(State*)&S9_Ct_alphabet} // shift sym: Rend_T_alphabet
+ }// end of shift table
+};
+yacco2::Shift_entry S5qse_Ct_alphabet = {0,(State*)&S6_Ct_alphabet};
+yacco2::State S5_Ct_alphabet = //State's vectored into symbol: "Rlist_of_Ts"
+{5
+,0,0,0,0,(Shift_tbl*)&S5st_Ct_alphabet,0,0,0,(Shift_entry*)&S5qse_Ct_alphabet
+};
+struct S6rtd_Ct_alphabet{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Ct_alphabet S6rt_Ct_alphabet = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ct_alphabet,Ct_alphabet::rhs2_Rend_T_alphabet_}
+ }// end of reduce table
+};
+yacco2::State S6_Ct_alphabet = //State's vectored into symbol: "|?|"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Ct_alphabet,0,0,0};
+struct S7rtd_Ct_alphabet{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Ct_alphabet S7rt_Ct_alphabet = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Ct_alphabet,Ct_alphabet::rhs1_Ra_T_}
+ }// end of reduce table
+};
+yacco2::State S7_Ct_alphabet = //State's vectored into symbol: "identifier"
+{7
+,0,0,0,0,0,(Reduce_tbl*)&S7rt_Ct_alphabet,0,0,0};
+struct S8rtd_Ct_alphabet{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S8rtd_Ct_alphabet S8rt_Ct_alphabet = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ct_alphabet,Ct_alphabet::rhs1_Rend_T_alphabet_}
+ }// end of reduce table
+};
+yacco2::State S8_Ct_alphabet = //State's vectored into symbol: "end-T-alphabet"
+{8
+,0,0,0,0,0,(Reduce_tbl*)&S8rt_Ct_alphabet,0,0,0};
+struct S9std_Ct_alphabet{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S9std_Ct_alphabet S9st_Ct_alphabet = {
+ 2
+ ,
+ {// start of table
+ {1,(State*)&S10_Ct_alphabet} // shift sym: LR1_eog
+ ,{570,(State*)&S11_Ct_alphabet} // shift sym: Reog
+ }// end of shift table
+};
+yacco2::State S9_Ct_alphabet = //State's vectored into symbol: "Rend_T_alphabet"
+{9
+,0,0,0,0,(Shift_tbl*)&S9st_Ct_alphabet,0,0,0,0};
+struct S10rtd_Ct_alphabet{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S10rtd_Ct_alphabet S10rt_Ct_alphabet = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Ct_alphabet,Ct_alphabet::rhs1_Reog_}
+ }// end of reduce table
+};
+yacco2::State S10_Ct_alphabet = //State's vectored into symbol: "eog"
+{10
+,0,0,0,0,0,(Reduce_tbl*)&S10rt_Ct_alphabet,0,0,0};
+struct S11rtd_Ct_alphabet{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Ct_alphabet S11rt_Ct_alphabet = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Ct_alphabet,Ct_alphabet::rhs1_Rt_alphabet_}
+ }// end of reduce table
+};
+yacco2::State S11_Ct_alphabet = //State's vectored into symbol: "Reog"
+{11
+,0,0,0,0,0,(Reduce_tbl*)&S11rt_Ct_alphabet,0,0,0};
+struct S12rtd_Ct_alphabet{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S12rtd_Ct_alphabet S12rt_Ct_alphabet = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Ct_alphabet,Ct_alphabet::rhs3_Rlist_of_Ts_}
+ }// end of reduce table
+};
+yacco2::State S12_Ct_alphabet = //State's vectored into symbol: "|?|"
+{12
+,0,0,0,0,0,(Reduce_tbl*)&S12rt_Ct_alphabet,0,0,0};
+struct S13rtd_Ct_alphabet{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S13rtd_Ct_alphabet S13rt_Ct_alphabet = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Ct_alphabet,Ct_alphabet::rhs2_Rlist_of_Ts_}
+ }// end of reduce table
+};
+yacco2::State S13_Ct_alphabet = //State's vectored into symbol: "Ra_T"
+{13
+,0,0,0,0,0,(Reduce_tbl*)&S13rt_Ct_alphabet,0,0,0};
+struct S14rtd_Ct_alphabet{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S14rtd_Ct_alphabet S14rt_Ct_alphabet = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Ct_alphabet,Ct_alphabet::rhs1_Rlist_of_Ts_}
+ }// end of reduce table
+};
+yacco2::State S14_Ct_alphabet = //State's vectored into symbol: "Ra_T"
+{14
+,0,0,0,0,0,(Reduce_tbl*)&S14rt_Ct_alphabet,0,0,0};
diff --git a/web/yacco2/compiler/grammars/t_def_delabort_tags.cpp b/web/yacco2/compiler/grammars/t_def_delabort_tags.cpp
new file mode 100644
index 0000000000..5fe83e3f72
--- /dev/null
+++ b/web/yacco2/compiler/grammars/t_def_delabort_tags.cpp
@@ -0,0 +1,177 @@
+/*
+ File: t_def_delabort_tags.cpp
+ Date and Time: Fri Jan 30 18:55:25 2015
+*/
+#include "t_def_delabort_tags.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_t_def_delabort_tags;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 7;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[4] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[5] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[6] = new Per_rule_s_reuse_table();
+}
+ Ct_def_delabort_tags::
+ Ct_def_delabort_tags()
+ :yacco2::CAbs_fsm
+ ("t_def_delabort_tags.lex"
+ ,"1.0"
+ ,"23 mar 2004"
+ ,false
+ ,"AB AD grammar symbol tags recognizer."
+ ,"Fri Jan 30 18:55:25 2015 "
+ ,S1_Ct_def_delabort_tags){
+
+ }
+
+Ct_def_delabort_tags::~Ct_def_delabort_tags(){
+
+ for(int x = 0;x < 7;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Ct_def_delabort_tags::failed(){
+ return false;
+ }
+ void Ct_def_delabort_tags::op(){
+}
+int Ct_def_delabort_tags::rhs_to_rules_mapping_[72] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,0 // subrule 2 for rule 1
+ ,1 // subrule 3 for rule 2
+ ,1 // subrule 4 for rule 2
+ ,1 // subrule 5 for rule 2
+ ,1 // subrule 6 for rule 2
+ ,1 // subrule 7 for rule 2
+ ,1 // subrule 8 for rule 2
+ ,1 // subrule 9 for rule 2
+ ,2 // subrule 10 for rule 3
+ ,2 // subrule 11 for rule 3
+ ,2 // subrule 12 for rule 3
+ ,2 // subrule 13 for rule 3
+ ,2 // subrule 14 for rule 3
+ ,2 // subrule 15 for rule 3
+ ,2 // subrule 16 for rule 3
+ ,2 // subrule 17 for rule 3
+ ,2 // subrule 18 for rule 3
+ ,2 // subrule 19 for rule 3
+ ,2 // subrule 20 for rule 3
+ ,2 // subrule 21 for rule 3
+ ,2 // subrule 22 for rule 3
+ ,3 // subrule 23 for rule 4
+ ,3 // subrule 24 for rule 4
+ ,3 // subrule 25 for rule 4
+ ,3 // subrule 26 for rule 4
+ ,3 // subrule 27 for rule 4
+ ,3 // subrule 28 for rule 4
+ ,3 // subrule 29 for rule 4
+ ,3 // subrule 30 for rule 4
+ ,3 // subrule 31 for rule 4
+ ,3 // subrule 32 for rule 4
+ ,3 // subrule 33 for rule 4
+ ,3 // subrule 34 for rule 4
+ ,3 // subrule 35 for rule 4
+ ,4 // subrule 36 for rule 5
+ ,4 // subrule 37 for rule 5
+ ,4 // subrule 38 for rule 5
+ ,4 // subrule 39 for rule 5
+ ,4 // subrule 40 for rule 5
+ ,4 // subrule 41 for rule 5
+ ,4 // subrule 42 for rule 5
+ ,4 // subrule 43 for rule 5
+ ,4 // subrule 44 for rule 5
+ ,4 // subrule 45 for rule 5
+ ,4 // subrule 46 for rule 5
+ ,4 // subrule 47 for rule 5
+ ,4 // subrule 48 for rule 5
+ ,5 // subrule 49 for rule 6
+ ,5 // subrule 50 for rule 6
+ ,5 // subrule 51 for rule 6
+ ,5 // subrule 52 for rule 6
+ ,5 // subrule 53 for rule 6
+ ,5 // subrule 54 for rule 6
+ ,5 // subrule 55 for rule 6
+ ,5 // subrule 56 for rule 6
+ ,5 // subrule 57 for rule 6
+ ,5 // subrule 58 for rule 6
+ ,5 // subrule 59 for rule 6
+ ,5 // subrule 60 for rule 6
+ ,5 // subrule 61 for rule 6
+ ,6 // subrule 62 for rule 7
+ ,6 // subrule 63 for rule 7
+ ,6 // subrule 64 for rule 7
+ ,6 // subrule 65 for rule 7
+ ,6 // subrule 66 for rule 7
+ ,6 // subrule 67 for rule 7
+ ,6 // subrule 68 for rule 7
+ ,6 // subrule 69 for rule 7
+ ,6 // subrule 70 for rule 7
+ ,6 // subrule 71 for rule 7
+};
+Rt_def_delabort_tags::Rt_def_delabort_tags(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rt_def_delabort_tags",0,Ct_def_delabort_tags::R_Rt_def_delabort_tags_,P,false,false){
+}
+
+void Rt_def_delabort_tags::op(){
+ sstrace_rulesss
+
+ rtn_sym_->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(rtn_sym_);
+ rtn_sym_ = 0;
+
+}
+void Rt_def_delabort_tags::sr1(){
+
+ rtn_sym_ = new T_AD;
+
+}
+
+void Rt_def_delabort_tags::sr2(){
+
+ rtn_sym_ = new T_AB;
+
+}
+
+Rminus_la::Rminus_la(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rminus_la",0,Ct_def_delabort_tags::R_Rminus_la_,P,false,false){
+}
+
+RUPPER_A_M::RUPPER_A_M(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("RUPPER_A_M",0,Ct_def_delabort_tags::R_RUPPER_A_M_,P,false,false){
+}
+
+RUPPER_N_Z::RUPPER_N_Z(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("RUPPER_N_Z",0,Ct_def_delabort_tags::R_RUPPER_N_Z_,P,false,false){
+}
+
+Rlower_a_m::Rlower_a_m(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlower_a_m",0,Ct_def_delabort_tags::R_Rlower_a_m_,P,false,false){
+}
+
+Rlower_n_z::Rlower_n_z(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlower_n_z",0,Ct_def_delabort_tags::R_Rlower_n_z_,P,false,false){
+}
+
+RNUMBERS::RNUMBERS(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("RNUMBERS",0,Ct_def_delabort_tags::R_RNUMBERS_,P,false,false){
+}
+
diff --git a/web/yacco2/compiler/grammars/t_def_delabort_tags.fsc b/web/yacco2/compiler/grammars/t_def_delabort_tags.fsc
new file mode 100644
index 0000000000..6691aeccdc
--- /dev/null
+++ b/web/yacco2/compiler/grammars/t_def_delabort_tags.fsc
@@ -0,0 +1,20 @@
+/*
+ File: t_def_delabort_tags.fsc
+ Date and Time: Fri Jan 30 18:55:25 2015
+*/
+transitive n
+grammar-name "t_def_delabort_tags"
+name-space "NS_t_def_delabort_tags"
+thread-name "TH_t_def_delabort_tags"
+monolithic n
+file-name "t_def_delabort_tags.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ raw_A
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"AB AD grammar symbol tags recognizer."
diff --git a/web/yacco2/compiler/grammars/t_def_delabort_tags.h b/web/yacco2/compiler/grammars/t_def_delabort_tags.h
new file mode 100644
index 0000000000..17010a7e32
--- /dev/null
+++ b/web/yacco2/compiler/grammars/t_def_delabort_tags.h
@@ -0,0 +1,173 @@
+/*
+ File: t_def_delabort_tags.h
+ Date and Time: Fri Jan 30 18:55:25 2015
+*/
+#ifndef __t_def_delabort_tags_h__
+#define __t_def_delabort_tags_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+extern yacco2::Thread_entry ITH_t_def_delabort_tags;
+
+extern yacco2::State S1_Ct_def_delabort_tags;
+namespace NS_t_def_delabort_tags {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_t_def_delabort_tags(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_t_def_delabort_tags(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[7];
+};
+class Ct_def_delabort_tags: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rt_def_delabort_tags_ = 569//start_of_rule_list + 0
+ ,rhs1_Rt_def_delabort_tags_ = 1
+ ,rhs2_Rt_def_delabort_tags_ = 2
+ ,R_Rminus_la_ = 570//start_of_rule_list + 2
+ ,rhs1_Rminus_la_ = 3
+ ,rhs2_Rminus_la_ = 4
+ ,rhs3_Rminus_la_ = 5
+ ,rhs4_Rminus_la_ = 6
+ ,rhs5_Rminus_la_ = 7
+ ,rhs6_Rminus_la_ = 8
+ ,rhs7_Rminus_la_ = 9
+ ,R_RUPPER_A_M_ = 571//start_of_rule_list + 4
+ ,rhs1_RUPPER_A_M_ = 10
+ ,rhs2_RUPPER_A_M_ = 11
+ ,rhs3_RUPPER_A_M_ = 12
+ ,rhs4_RUPPER_A_M_ = 13
+ ,rhs5_RUPPER_A_M_ = 14
+ ,rhs6_RUPPER_A_M_ = 15
+ ,rhs7_RUPPER_A_M_ = 16
+ ,rhs8_RUPPER_A_M_ = 17
+ ,rhs9_RUPPER_A_M_ = 18
+ ,rhs10_RUPPER_A_M_ = 19
+ ,rhs11_RUPPER_A_M_ = 20
+ ,rhs12_RUPPER_A_M_ = 21
+ ,rhs13_RUPPER_A_M_ = 22
+ ,R_RUPPER_N_Z_ = 572//start_of_rule_list + 6
+ ,rhs1_RUPPER_N_Z_ = 23
+ ,rhs2_RUPPER_N_Z_ = 24
+ ,rhs3_RUPPER_N_Z_ = 25
+ ,rhs4_RUPPER_N_Z_ = 26
+ ,rhs5_RUPPER_N_Z_ = 27
+ ,rhs6_RUPPER_N_Z_ = 28
+ ,rhs7_RUPPER_N_Z_ = 29
+ ,rhs8_RUPPER_N_Z_ = 30
+ ,rhs9_RUPPER_N_Z_ = 31
+ ,rhs10_RUPPER_N_Z_ = 32
+ ,rhs11_RUPPER_N_Z_ = 33
+ ,rhs12_RUPPER_N_Z_ = 34
+ ,rhs13_RUPPER_N_Z_ = 35
+ ,R_Rlower_a_m_ = 573//start_of_rule_list + 8
+ ,rhs1_Rlower_a_m_ = 36
+ ,rhs2_Rlower_a_m_ = 37
+ ,rhs3_Rlower_a_m_ = 38
+ ,rhs4_Rlower_a_m_ = 39
+ ,rhs5_Rlower_a_m_ = 40
+ ,rhs6_Rlower_a_m_ = 41
+ ,rhs7_Rlower_a_m_ = 42
+ ,rhs8_Rlower_a_m_ = 43
+ ,rhs9_Rlower_a_m_ = 44
+ ,rhs10_Rlower_a_m_ = 45
+ ,rhs11_Rlower_a_m_ = 46
+ ,rhs12_Rlower_a_m_ = 47
+ ,rhs13_Rlower_a_m_ = 48
+ ,R_Rlower_n_z_ = 574//start_of_rule_list + 10
+ ,rhs1_Rlower_n_z_ = 49
+ ,rhs2_Rlower_n_z_ = 50
+ ,rhs3_Rlower_n_z_ = 51
+ ,rhs4_Rlower_n_z_ = 52
+ ,rhs5_Rlower_n_z_ = 53
+ ,rhs6_Rlower_n_z_ = 54
+ ,rhs7_Rlower_n_z_ = 55
+ ,rhs8_Rlower_n_z_ = 56
+ ,rhs9_Rlower_n_z_ = 57
+ ,rhs10_Rlower_n_z_ = 58
+ ,rhs11_Rlower_n_z_ = 59
+ ,rhs12_Rlower_n_z_ = 60
+ ,rhs13_Rlower_n_z_ = 61
+ ,R_RNUMBERS_ = 575//start_of_rule_list + 12
+ ,rhs1_RNUMBERS_ = 62
+ ,rhs2_RNUMBERS_ = 63
+ ,rhs3_RNUMBERS_ = 64
+ ,rhs4_RNUMBERS_ = 65
+ ,rhs5_RNUMBERS_ = 66
+ ,rhs6_RNUMBERS_ = 67
+ ,rhs7_RNUMBERS_ = 68
+ ,rhs8_RNUMBERS_ = 69
+ ,rhs9_RNUMBERS_ = 70
+ ,rhs10_RNUMBERS_ = 71
+ };
+ //no of la sets = 1
+ //no of states = 4
+ Ct_def_delabort_tags();
+ ~Ct_def_delabort_tags();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[72];
+ };
+struct Rt_def_delabort_tags;
+struct Rminus_la;
+struct RUPPER_A_M;
+struct RUPPER_N_Z;
+struct Rlower_a_m;
+struct Rlower_n_z;
+struct RNUMBERS;
+struct Rt_def_delabort_tags:public yacco2::CAbs_lr1_sym {
+ Rt_def_delabort_tags(yacco2::Parser* P);
+ void op();
+
+ public:
+ CAbs_lr1_sym* rtn_sym_;
+
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rminus_la:public yacco2::CAbs_lr1_sym {
+ Rminus_la(yacco2::Parser* P);
+ public:
+};
+
+struct RUPPER_A_M:public yacco2::CAbs_lr1_sym {
+ RUPPER_A_M(yacco2::Parser* P);
+ public:
+};
+
+struct RUPPER_N_Z:public yacco2::CAbs_lr1_sym {
+ RUPPER_N_Z(yacco2::Parser* P);
+ public:
+};
+
+struct Rlower_a_m:public yacco2::CAbs_lr1_sym {
+ Rlower_a_m(yacco2::Parser* P);
+ public:
+};
+
+struct Rlower_n_z:public yacco2::CAbs_lr1_sym {
+ Rlower_n_z(yacco2::Parser* P);
+ public:
+};
+
+struct RNUMBERS:public yacco2::CAbs_lr1_sym {
+ RNUMBERS(yacco2::Parser* P);
+ public:
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/t_def_delabort_tags.lex b/web/yacco2/compiler/grammars/t_def_delabort_tags.lex
new file mode 100644
index 0000000000..c8860de689
--- /dev/null
+++ b/web/yacco2/compiler/grammars/t_def_delabort_tags.lex
@@ -0,0 +1,91 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: t_def_delabort_tags.lex
+Dates: 23 Mar 2004
+Purpose: terminal-def delete / abort tags
+Output: #AD
+ #AB
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |t_def_delabort_tags| Thread.\fbreak
+Recognize delete / abort tags of a symbol definition.
+@/
+fsm
+(fsm-id "t_def_delabort_tags.lex"
+,fsm-filename t_def_delabort_tags
+,fsm-namespace NS_t_def_delabort_tags
+,fsm-class Ct_def_delabort_tags
+,fsm-version "1.0",fsm-date "23 mar 2004",fsm-debug "false"
+,fsm-comments "AB AD grammar symbol tags recognizer.")
+parallel-parser
+(
+ parallel-thread-function
+ TH_t_def_delabort_tags
+ ***
+ parallel-la-boundary
+ eolr - Rminus_la
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rt_def_delabort_tags (
+ lhs {
+ user-declaration
+ public:
+ CAbs_lr1_sym* rtn_sym_;
+ ***
+ op
+ rtn_sym_->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(rtn_sym_);
+ rtn_sym_ = 0;
+ ***
+ }
+){
+ -> "A" "D" {
+ op
+ rtn_sym_ = new T_AD;
+ ***
+ }
+ -> "A" "B" {
+ op
+ rtn_sym_ = new T_AB;
+ ***
+ }
+}
+Rminus_la () {
+ -> "_"
+ -> "-"
+ -> RUPPER_A_M
+ -> RUPPER_N_Z
+ -> Rlower_a_m
+ -> Rlower_n_z
+ -> RNUMBERS
+}
+
+RUPPER_A_M (){
+ -> A -> B -> C -> D -> E -> F -> G -> H -> I -> J -> K -> L -> M
+}
+
+RUPPER_N_Z (){
+ -> N -> O -> P -> Q
+ -> "R" // considered a Rule when not quoted!
+ -> S -> T -> U -> V -> W -> X -> Y -> Z
+}
+
+Rlower_a_m (){
+ -> a -> b -> c -> d -> e -> f -> g -> h -> i -> j -> k -> l -> m
+}
+
+Rlower_n_z (){
+ -> n -> o -> p -> q -> r -> s -> t -> u -> v -> w -> x -> y -> z
+}
+
+RNUMBERS (){
+ -> 0 -> 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8 -> 9
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/t_def_delabort_tagssym.cpp b/web/yacco2/compiler/grammars/t_def_delabort_tagssym.cpp
new file mode 100644
index 0000000000..a32c04bdd8
--- /dev/null
+++ b/web/yacco2/compiler/grammars/t_def_delabort_tagssym.cpp
@@ -0,0 +1,1046 @@
+/*
+ File: t_def_delabort_tagssym.cpp
+ Date and Time: Fri Jan 30 18:55:25 2015
+*/
+#include "t_def_delabort_tags.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_t_def_delabort_tags;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_t_def_delabort_tags::TH_t_def_delabort_tags(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_t_def_delabort_tags;
+ NS_t_def_delabort_tags::Ct_def_delabort_tags Ct_def_delabort_tags_;// parallel-parser's parse table
+#define ssPARSE_TABLE Ct_def_delabort_tags_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_t_def_delabort_tags::PROC_TH_t_def_delabort_tags(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_t_def_delabort_tags";
+ static bool one_time(false);
+ static NS_t_def_delabort_tags::Ct_def_delabort_tags* NS_t_def_delabort_tags_Ct_def_delabort_tags_(0);// parallel-parser's fsm table
+ static Parser* NS_t_def_delabort_tags_Ct_def_delabort_tags_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_t_def_delabort_tags_Ct_def_delabort_tags_ = new NS_t_def_delabort_tags::Ct_def_delabort_tags();// parallel-parser's fsm table
+ NS_t_def_delabort_tags_Ct_def_delabort_tags_parser = new Parser(*NS_t_def_delabort_tags_Ct_def_delabort_tags_,Caller_pp);
+ }
+ proc_parser = NS_t_def_delabort_tags_Ct_def_delabort_tags_parser;
+#include "wproc_pp_core.h"
+}
+void
+Ct_def_delabort_tags::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rt_def_delabort_tags_:{
+ Rt_def_delabort_tags* sym;
+ if(re->rule_ == 0){
+ sym = new Rt_def_delabort_tags(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rt_def_delabort_tags*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ sym->op();
+ return;}
+ case rhs2_Rt_def_delabort_tags_:{
+ Rt_def_delabort_tags* sym;
+ if(re->rule_ == 0){
+ sym = new Rt_def_delabort_tags(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rt_def_delabort_tags*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ sym->op();
+ return;}
+ case rhs1_Rminus_la_:{
+ Rminus_la* sym;
+ if(re->rule_ == 0){
+ sym = new Rminus_la(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rminus_la*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rminus_la_:{
+ Rminus_la* sym;
+ if(re->rule_ == 0){
+ sym = new Rminus_la(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rminus_la*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs3_Rminus_la_:{
+ Rminus_la* sym;
+ if(re->rule_ == 0){
+ sym = new Rminus_la(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rminus_la*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs4_Rminus_la_:{
+ Rminus_la* sym;
+ if(re->rule_ == 0){
+ sym = new Rminus_la(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rminus_la*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs5_Rminus_la_:{
+ Rminus_la* sym;
+ if(re->rule_ == 0){
+ sym = new Rminus_la(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rminus_la*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs6_Rminus_la_:{
+ Rminus_la* sym;
+ if(re->rule_ == 0){
+ sym = new Rminus_la(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rminus_la*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs7_Rminus_la_:{
+ Rminus_la* sym;
+ if(re->rule_ == 0){
+ sym = new Rminus_la(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rminus_la*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs3_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs4_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs5_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs6_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs7_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs8_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs9_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs10_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs11_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs12_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs13_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs3_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs4_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs5_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs6_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs7_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs8_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs9_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs10_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs11_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs12_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs13_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs3_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs4_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs5_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs6_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs7_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs8_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs9_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs10_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs11_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs12_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs13_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs3_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs4_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs5_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs6_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs7_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs8_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs9_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs10_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs11_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs12_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs13_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_RNUMBERS_:{
+ RNUMBERS* sym;
+ if(re->rule_ == 0){
+ sym = new RNUMBERS(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNUMBERS*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_RNUMBERS_:{
+ RNUMBERS* sym;
+ if(re->rule_ == 0){
+ sym = new RNUMBERS(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNUMBERS*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs3_RNUMBERS_:{
+ RNUMBERS* sym;
+ if(re->rule_ == 0){
+ sym = new RNUMBERS(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNUMBERS*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs4_RNUMBERS_:{
+ RNUMBERS* sym;
+ if(re->rule_ == 0){
+ sym = new RNUMBERS(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNUMBERS*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs5_RNUMBERS_:{
+ RNUMBERS* sym;
+ if(re->rule_ == 0){
+ sym = new RNUMBERS(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNUMBERS*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs6_RNUMBERS_:{
+ RNUMBERS* sym;
+ if(re->rule_ == 0){
+ sym = new RNUMBERS(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNUMBERS*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs7_RNUMBERS_:{
+ RNUMBERS* sym;
+ if(re->rule_ == 0){
+ sym = new RNUMBERS(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNUMBERS*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs8_RNUMBERS_:{
+ RNUMBERS* sym;
+ if(re->rule_ == 0){
+ sym = new RNUMBERS(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNUMBERS*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs9_RNUMBERS_:{
+ RNUMBERS* sym;
+ if(re->rule_ == 0){
+ sym = new RNUMBERS(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNUMBERS*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs10_RNUMBERS_:{
+ RNUMBERS* sym;
+ if(re->rule_ == 0){
+ sym = new RNUMBERS(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNUMBERS*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/t_def_delabort_tagstbl.cpp b/web/yacco2/compiler/grammars/t_def_delabort_tagstbl.cpp
new file mode 100644
index 0000000000..937214c5f9
--- /dev/null
+++ b/web/yacco2/compiler/grammars/t_def_delabort_tagstbl.cpp
@@ -0,0 +1,643 @@
+/*
+ File: t_def_delabort_tagstbl.cpp
+ Date and Time: Fri Jan 30 18:55:25 2015
+*/
+#include "t_def_delabort_tags.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_t_def_delabort_tags;// grammar's ns
+// first set terminals
+// LR1_eog
+// raw_nul
+// raw_soh
+// raw_stx
+// raw_etx
+// raw_eot
+// raw_enq
+// raw_ack
+// raw_bel
+// raw_bs
+// raw_ht
+// raw_lf
+// raw_vt
+// raw_ff
+// raw_cr
+// raw_so
+// raw_si
+// raw_dle
+// raw_dc1
+// raw_dc2
+// raw_dc3
+// raw_dc4
+// raw_nak
+// raw_syn
+// raw_etb
+// raw_can
+// raw_em
+// raw_sub
+// raw_esc
+// raw_fs
+// raw_gs
+// raw_rs
+// raw_us
+// raw_sp
+// raw_exclam
+// raw_dbl_quote
+// raw_no_sign
+// raw_dollar_sign
+// raw_percent
+// raw_ampersign
+// raw_right_quote
+// raw_open_bracket
+// raw_close_bracket
+// raw_asteric
+// raw_plus
+// raw_comma
+// raw_period
+// raw_slash
+// raw_colon
+// raw_semi_colon
+// raw_less_than
+// raw_eq
+// raw_gt_than
+// raw_question_mark
+// raw_at_sign
+// raw_open_sq_bracket
+// raw_back_slash
+// raw_close_sq_bracket
+// raw_up_arrow
+// raw_left_quote
+// raw_open_brace
+// raw_vertical_line
+// raw_close_brace
+// raw_tilde
+// raw_del
+// raw_x80
+// raw_x81
+// raw_x82
+// raw_x83
+// raw_x84
+// raw_x85
+// raw_x86
+// raw_x87
+// raw_x88
+// raw_x89
+// raw_x8a
+// raw_x8b
+// raw_x8c
+// raw_x8d
+// raw_x8e
+// raw_x8f
+// raw_x90
+// raw_x91
+// raw_x92
+// raw_x93
+// raw_x94
+// raw_x95
+// raw_x96
+// raw_x97
+// raw_x98
+// raw_x99
+// raw_x9a
+// raw_x9b
+// raw_x9c
+// raw_x9d
+// raw_x9e
+// raw_x9f
+// raw_xa0
+// raw_xa1
+// raw_xa2
+// raw_xa3
+// raw_xa4
+// raw_xa5
+// raw_xa6
+// raw_xa7
+// raw_xa8
+// raw_xa9
+// raw_xaa
+// raw_xab
+// raw_xac
+// raw_xad
+// raw_xae
+// raw_xaf
+// raw_xb0
+// raw_xb1
+// raw_xb2
+// raw_xb3
+// raw_xb4
+// raw_xb5
+// raw_xb6
+// raw_xb7
+// raw_xb8
+// raw_xb9
+// raw_xba
+// raw_xbb
+// raw_xbc
+// raw_xbd
+// raw_xbe
+// raw_xbf
+// raw_xc0
+// raw_xc1
+// raw_xc2
+// raw_xc3
+// raw_xc4
+// raw_xc5
+// raw_xc6
+// raw_xc7
+// raw_xc8
+// raw_xc9
+// raw_xca
+// raw_xcb
+// raw_xcc
+// raw_xcd
+// raw_xce
+// raw_xcf
+// raw_xd0
+// raw_xd1
+// raw_xd2
+// raw_xd3
+// raw_xd4
+// raw_xd5
+// raw_xd6
+// raw_xd7
+// raw_xd8
+// raw_xd9
+// raw_xda
+// raw_xdb
+// raw_xdc
+// raw_xdd
+// raw_xde
+// raw_xdf
+// raw_xe0
+// raw_xe1
+// raw_xe2
+// raw_xe3
+// raw_xe4
+// raw_xe5
+// raw_xe6
+// raw_xe7
+// raw_xe8
+// raw_xe9
+// raw_xea
+// raw_xeb
+// raw_xec
+// raw_xed
+// raw_xee
+// raw_xef
+// raw_xf0
+// raw_xf1
+// raw_xf2
+// raw_xf3
+// raw_xf4
+// raw_xf5
+// raw_xf6
+// raw_xf7
+// raw_xf8
+// raw_xf9
+// raw_xfa
+// raw_xfb
+// raw_xfc
+// raw_xfd
+// raw_xfe
+// raw_xff
+// T_option_t
+// T_option_p
+// T_option_err
+// T_esc_seq
+// T_eol
+// T_basic_char
+// T_raw_char
+// T_comment
+// T_ws
+// T_angled_string
+// T_c_literal
+// T_c_string
+// T_xc_str
+// T_unquoted_string
+// T_file_inclusion
+// T_identifier
+// T_int_no
+// T_raw_characters
+// T_lr1_constant_symbols
+// T_error_symbols
+// T_eocode
+// T_AD
+// T_AB
+// T_parallel_la_boundary
+// T_arbitrator_code
+// T_parallel_parser
+// T_parallel_thread_function
+// T_parallel_control_monitor
+// T_fsm
+// T_fsm_id
+// T_fsm_filename
+// T_fsm_namespace
+// T_fsm_class
+// T_fsm_version
+// T_fsm_date
+// T_fsm_debug
+// T_fsm_comments
+// T_terminals
+// T_enumeration
+// T_file_name
+// T_name_space
+// T_sym_class
+// T_rules
+// T_lhs
+// T_user_declaration
+// T_user_prefix_declaration
+// T_user_suffix_declaration
+// T_constructor
+// T_destructor
+// T_op
+// T_failed
+// T_user_implementation
+// T_user_imp_tbl
+// T_user_imp_sym
+// T_constant_defs
+// T_terminals_refs
+// T_terminals_sufx
+// T_lrk_sufx
+// T_selector
+// T_NULL
+// T_2colon
+// T_block
+// T_syntax_code
+// T_fsm_class_phrase
+// T_fsm_phrase
+// T_parallel_parser_phrase
+// T_enum_phrase
+// T_terminal_def
+// table_entry
+// T_sym_tbl_report_card
+// T_terminals_phrase
+// T_error_symbols_phrase
+// T_lr1_k_phrase
+// T_rc_phrase
+// T_rule_lhs_phrase
+// T_parallel_monitor_phrase
+// rule_def
+// T_rules_phrase
+// T_subrule_def
+// T_subrules_phrase
+// T_in_stbl
+// refered_T
+// rule_in_stbl
+// refered_rule
+// T_transitive
+// T_grammar_name
+// T_thread_name
+// T_monolithic
+// T_no_of_T
+// T_list_of_native_first_set_terminals
+// T_end_list_of_native_first_set_terminals
+// T_list_of_transitive_threads
+// T_end_list_of_transitive_threads
+// T_emitfile
+// T_preamble
+// T_end_preamble
+// T_T_alphabet
+// T_end_T_alphabet
+// T_file_of_T_alphabet
+// T_attributes
+// tth_in_stbl
+// thread_attributes
+// th_in_stbl
+// kw_in_stbl
+// T_la_expr_src
+// T_eosubrule
+// T_called_thread_eosubrule
+// T_null_call_thread_eosubrule
+// T_cweb_comment
+// T_grammar_phrase
+// T_cweb_marker
+// T_lint
+// T_list_of_used_threads
+// T_end_list_of_used_threads
+// Err_nested_files_exceeded
+// Err_no_end_of_code
+// Err_no_cmd_lne_data
+// Err_no_filename
+// Err_bad_filename
+// Err_bad_fsmheader_filename
+// Err_bad_fsmcpp_filename
+// Err_bad_fsmsym_filename
+// Err_bad_fsmtbl_filename
+// Err_bad_enum_filename
+// Err_bad_errors_hdrfilename
+// Err_bad_errors_impfilename
+// Err_bad_cmd_lne_opt
+// Err_bad_int_no
+// Err_bad_int_no_range
+// Err_no_int_present
+// Err_bad_eos
+// Err_bad_esc
+// Err_comment_overrun
+// Err_bad_char
+// Err_bad_univ_seq
+// Err_improper_closing_of_rules
+// Err_no_identifier_present
+// Err_no_directive_present
+// Err_duplicate_directive
+// Err_no_syntax_code_present
+// Err_no_open_parenthesis
+// Err_no_close_parenthesis
+// Err_no_fsm_id_present
+// Err_no_fsm_id_string
+// Err_no_fsm_filename_present
+// Err_no_fsm_filename_id_present
+// Err_no_comma_present
+// Err_no_terminal_key_present
+// Err_no_fsm_namespace_present
+// Err_no_fsm_namespace_id_present
+// Err_no_fsm_class_present
+// Err_no_fsm_version_present
+// Err_no_fsm_version_string
+// Err_no_fsm_date_present
+// Err_no_fsm_date_string
+// Err_no_fsm_debug_present
+// Err_no_fsm_debug_string
+// Err_no_fsm_comments_present
+// Err_no_fsm_comments_string
+// Err_fsm_debug_string_not_true_or_false
+// Err_no_pp_thread_function_present
+// Err_no_pp_ctrl_mntor_kw_present
+// Err_no_pp_fnct_id_present
+// Err_no_pp_bndry_present
+// Err_no_pp_la_bndary_expr_present
+// Err_no_syntax_code_end_present
+// Err_no_pp_code_present
+// Err_no_pp_code_stc_present
+// Err_not_arbitration_code_kw
+// Err_no_open_brace
+// Err_no_close_brace
+// Err_no_constant_defs_present
+// Err_no_filename_present
+// Err_no_filename_id_present
+// Err_no_namespace_present
+// Err_no_namespace_id_present
+// Err_no_kdefs_code_present
+// Err_no_kdefs_kw_present
+// Err_no_tdef_code_present
+// Err_no_sym_defs_present
+// Err_dup_entry_in_alphabet
+// Err_already_defined_AB
+// Err_already_defined_AD
+// Err_improper_directive
+// Err_no_sym_class_present
+// Err_no_sym_class_id_present
+// Err_zero_len_sym
+// Err_sym_tbl_full
+// Err_sym_tbl_char_pool_full
+// Err_dup_entry_in_sym_table
+// Err_subscript_out_of_range
+// Err_sym_tbl_nested_scope_stk_overflow
+// Err_sym_tbl_nested_scope_stk_underflow
+// Err_sym_tbl_context_buf_overflow
+// Err_report_card_ptr_0
+// Err_cannot_define_term_after_sufx_dir
+// Err_dup_sufx_directive
+// Err_terminals_refs_def_after_terminals
+// Err_terminals_refs_dup_def
+// Err_no_rule_name_present
+// Err_no_sub_rule_present
+// Err_subrule_use_undefined_T
+// Err_stbl_entry_unknown
+// Err_subrule_overrun
+// Err_stble_has_entry_but_not_a_rule
+// Err_file_of_T_alphabet_kw_not_present
+// Err_emitfile_kw_not_present
+// Err_preamble_kw_not_present
+// Err_preamble_srce_code_not_present
+// Err_end_preamble_kw_not_present
+// Err_cmd_line_chaffe
+// Err_T_alphabet_kw_not_present
+// Err_T_alphabet_file_not_present
+// Err_end_T_alphabet_kw_not_present
+// Err_no_terminals_in_T_alphabet_list
+// Err_rotten_chr_in_T_alphabet
+// Err_transitive_kw_not_present
+// Err_grammar_name_kw_not_present
+// Err_namespace_kw_not_present
+// Err_filename_kw_not_present
+// Err_threadname_kw_not_present
+// Err_monolithic_kw_not_present
+// Err_no_of_T_kw_not_present
+// Err_list_of_terminals_kw_not_present
+// Err_no_list_of_trans_threads_kw
+// Err_no_terminals_present_in_T_alphabet
+// Err_transitive_value_bad
+// Err_monolithic_value_bad
+// Err_grammar_name_value_not_present
+// Err_namespace_value_not_present
+// Err_threadname_value_not_present
+// Err_filename_value_not_present
+// Err_no_of_T_value_not_present
+// Err_no_of_terminals_not_present
+// Err_end_list_native_T_kw_not_present
+// Err_end_list_of_transitive_threads_kw_not_present
+// Err_no_of_native_Ts_in_list_not_equal
+// Err_no_of_threads_in_list_not_equal
+// Err_thread_refed_but_not_defined
+// Err_bad_T_in_list
+// Err_bad_th_in_list
+// Err_already_defined_in_fsc_file
+// Err_bad_thread_subscript
+// Err_not_a_keyword
+// Err_no_of_threads_not_present
+// Err_bad_T_alphabet
+// Err_fsc_file_does_not_exist
+// Err_filename_file_does_not_exist
+// Err_T_alphabet_file_does_not_exist
+// Err_emitfile_file_does_not_exist
+// Err_emitfile_file_not_present
+// Err_fsc_cntl_file_not_present
+// Err_file_of_T_alphabet_not_present
+// Err_epsilon_pass_thru
+// Err_epsilon_pass_thru_no_Ts
+// Err_rule_not_in_stbl
+// Err_T_not_in_stbl
+// Err_bad_directive
+// Err_bad_term_in_la_expr
+// Err_empty_set_removal_in_la_expr
+// Err_bad_operator_in_la_expr
+// Err_not_a_lhs_kw
+// Err_pp_la_boundary_attribute_not_fnd
+// Err_already_processed_fsm_phase
+// Err_already_processed_pp_phase
+// Err_already_processed_T_enum_phase
+// Err_already_processed_error_phase
+// Err_already_processed_rc_phase
+// Err_already_processed_lrk_phase
+// Err_already_processed_T_phase
+// Err_already_processed_rule_phase
+// Err_not_T_for_rtned_token_from_th
+// Err_not_id_for_ns_in_th_stmt
+// Err_not_id_for_th_name_in_th_stmt
+// Err_bad_th_qualifier
+// Err_not_dbl_colon_in_th_stmt
+// Err_not_T_or_R_in_subrule_expr
+// Err_not_T_or_R_or_eos_in_subrule_expr
+// Err_not_eos_in_subrule_expr
+// Err_invalid_logical_name
+// Err_invalid_logical_value
+// Err_duplicate_logical_name
+// Err_missing_terminals_refs_kw
+// Err_missing_terminals_sufx_kw
+// Err_not_a_terminal_definition
+// Err_missing_lrk_sufx_kw
+// ERR_sick_grammar
+// ERR_no_fsm_phrase
+// ERR_no_T_enum_phrase
+// ERR_no_lrk_phrase
+// ERR_no_rc_phrase
+// ERR_no_errors_phrase
+// ERR_no_terminals_phrase
+// ERR_no_rules_phrase
+// Err_used_rule_but_undefined
+// Err_rule_already_defined
+// Err_la_expr_calc_empty_set
+// Err_no_close_brace_ending_rules_defs
+// Err_use_of_T_outside_Rules_construct
+// Err_not_kw_defining_grammar_construct
+// Err_use_of_N_outside_Rules_construct
+// Err_misplaced_or_misspelt_Rule_or_T
+// Err_not_a_Rule
+// Err_empty_file
+// Err_not_lhs_pcnrl_mntr
+yacco2::UCHAR LA1_Ct_def_delabort_tags[] ={
+67
+,0,2
+,1,255
+,2,255
+,3,255
+,4,255
+,5,255
+,6,223
+,8,252
+,9,1
+,12,120
+,13,1
+,16,248
+,17,255
+,18,255
+,19,255
+,20,255
+,21,255
+,22,255
+,23,255
+,24,255
+,25,255
+,26,255
+,27,255
+,28,255
+,29,255
+,30,255
+,31,255
+,32,255
+,33,255
+,34,255
+,35,255
+,36,255
+,37,255
+,38,255
+,39,255
+,40,255
+,41,255
+,42,255
+,43,255
+,44,255
+,45,255
+,46,255
+,47,255
+,48,255
+,49,255
+,50,255
+,51,255
+,52,255
+,53,255
+,54,255
+,55,255
+,56,255
+,57,255
+,58,255
+,59,255
+,60,255
+,61,255
+,62,255
+,63,255
+,64,255
+,65,255
+,66,255
+,67,255
+,68,255
+,69,255
+,70,255
+,71,1
+};
+extern yacco2::State S1_Ct_def_delabort_tags;
+extern yacco2::State S2_Ct_def_delabort_tags;
+extern yacco2::State S3_Ct_def_delabort_tags;
+extern yacco2::State S4_Ct_def_delabort_tags;
+struct S1std_Ct_def_delabort_tags{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S1std_Ct_def_delabort_tags S1st_Ct_def_delabort_tags = {
+ 2
+ ,
+ {// start of table
+ {73,(State*)&S2_Ct_def_delabort_tags} // shift sym: raw_A
+ ,{569,(State*)&S1_Ct_def_delabort_tags} // accept sym: Rt_def_delabort_tags
+ }// end of shift table
+};
+yacco2::State S1_Ct_def_delabort_tags = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Ct_def_delabort_tags,0,0,0,0};
+struct S2std_Ct_def_delabort_tags{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S2std_Ct_def_delabort_tags S2st_Ct_def_delabort_tags = {
+ 2
+ ,
+ {// start of table
+ {74,(State*)&S3_Ct_def_delabort_tags} // shift sym: raw_B
+ ,{76,(State*)&S4_Ct_def_delabort_tags} // shift sym: raw_D
+ }// end of shift table
+};
+yacco2::State S2_Ct_def_delabort_tags = //State's vectored into symbol: "A"
+{2
+,0,0,0,0,(Shift_tbl*)&S2st_Ct_def_delabort_tags,0,0,0,0};
+struct S3rtd_Ct_def_delabort_tags{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Ct_def_delabort_tags S3rt_Ct_def_delabort_tags = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ct_def_delabort_tags,Ct_def_delabort_tags::rhs2_Rt_def_delabort_tags_}
+ }// end of reduce table
+};
+yacco2::State S3_Ct_def_delabort_tags = //State's vectored into symbol: "B"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_Ct_def_delabort_tags,0,0,0};
+struct S4rtd_Ct_def_delabort_tags{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Ct_def_delabort_tags S4rt_Ct_def_delabort_tags = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ct_def_delabort_tags,Ct_def_delabort_tags::rhs1_Rt_def_delabort_tags_}
+ }// end of reduce table
+};
+yacco2::State S4_Ct_def_delabort_tags = //State's vectored into symbol: "D"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Ct_def_delabort_tags,0,0,0};
diff --git a/web/yacco2/compiler/grammars/term_def_ph.cpp b/web/yacco2/compiler/grammars/term_def_ph.cpp
new file mode 100644
index 0000000000..82aa72ee2a
--- /dev/null
+++ b/web/yacco2/compiler/grammars/term_def_ph.cpp
@@ -0,0 +1,787 @@
+/*
+ File: term_def_ph.cpp
+ Date and Time: Fri Jan 30 18:55:26 2015
+*/
+#include "term_def_ph.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_term_def_ph;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 16;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[4] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[5] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[6] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[7] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[8] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[9] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[10] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[11] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[12] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[13] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[14] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[15] = new Per_rule_s_reuse_table();
+}
+ Cterm_def_ph::
+ Cterm_def_ph()
+ :yacco2::CAbs_fsm
+ ("term_def_ph.lex"
+ ,"1.0"
+ ,"24 mar 2004"
+ ,false
+ ,"Parse a terminal symbol."
+ ,"Fri Jan 30 18:55:26 2015 "
+ ,S1_Cterm_def_ph){
+
+ term_def_ = 0;
+
+ }
+
+Cterm_def_ph::~Cterm_def_ph(){
+
+ for(int x = 0;x < 16;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cterm_def_ph::failed(){
+ return false;
+ }
+ void Cterm_def_ph::op(){
+ if(term_def_ != 0){
+ delete term_def_;
+ term_def_ = 0;
+ }
+ term_def_ = new T_terminal_def;
+ term_def_->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+
+}
+int Cterm_def_ph::rhs_to_rules_mapping_[43] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,1 // subrule 4 for rule 2
+ ,1 // subrule 5 for rule 2
+ ,1 // subrule 6 for rule 2
+ ,1 // subrule 7 for rule 2
+ ,1 // subrule 8 for rule 2
+ ,2 // subrule 9 for rule 3
+ ,2 // subrule 10 for rule 3
+ ,2 // subrule 11 for rule 3
+ ,3 // subrule 12 for rule 4
+ ,3 // subrule 13 for rule 4
+ ,4 // subrule 14 for rule 5
+ ,4 // subrule 15 for rule 5
+ ,4 // subrule 16 for rule 5
+ ,5 // subrule 17 for rule 6
+ ,6 // subrule 18 for rule 7
+ ,6 // subrule 19 for rule 7
+ ,7 // subrule 20 for rule 8
+ ,7 // subrule 21 for rule 8
+ ,7 // subrule 22 for rule 8
+ ,8 // subrule 23 for rule 9
+ ,8 // subrule 24 for rule 9
+ ,9 // subrule 25 for rule 10
+ ,9 // subrule 26 for rule 10
+ ,10 // subrule 27 for rule 11
+ ,10 // subrule 28 for rule 11
+ ,11 // subrule 29 for rule 12
+ ,11 // subrule 30 for rule 12
+ ,12 // subrule 31 for rule 13
+ ,12 // subrule 32 for rule 13
+ ,13 // subrule 33 for rule 14
+ ,13 // subrule 34 for rule 14
+ ,13 // subrule 35 for rule 14
+ ,13 // subrule 36 for rule 14
+ ,13 // subrule 37 for rule 14
+ ,13 // subrule 38 for rule 14
+ ,14 // subrule 39 for rule 15
+ ,14 // subrule 40 for rule 15
+ ,15 // subrule 41 for rule 16
+ ,15 // subrule 42 for rule 16
+};
+
+ void Cterm_def_ph::
+ add_sdc_to_directive(CAbs_lr1_sym* Dir,T_syntax_code* Sdc){
+ using namespace NS_yacco2_T_enum;
+ using namespace NS_yacco2_terminals;
+ yacco2::INT eid = Dir->enumerated_id__;
+ switch (eid){
+ case T_Enum::T_T_user_declaration_: {
+ T_user_declaration* k = (T_user_declaration*)Dir;
+ k->syntax_code(Sdc);
+ break;
+ }
+ case T_Enum::T_T_constructor_: {
+ T_constructor* k = (T_constructor*)Dir;
+ k->syntax_code(Sdc);
+ break;
+ }
+ case T_Enum::T_T_destructor_: {
+ T_destructor* k = (T_destructor*)Dir;
+ k->syntax_code(Sdc);
+ break;
+ }
+ case T_Enum::T_T_op_: {
+ T_op* k = (T_op*)Dir;
+ k->syntax_code(Sdc);
+ break;
+ }
+ case T_Enum::T_T_user_implementation_: {
+ T_user_implementation* k = (T_user_implementation*)Dir;
+ k->syntax_code(Sdc);
+ break;
+ }
+ default: {
+ CAbs_lr1_sym* sym = new Err_improper_directive;
+ sym->set_rc(*Dir,__FILE__,__LINE__);
+ RSVP_FSM(sym);
+ parser__->set_stop_parse(true);
+ }
+ }
+ }
+
+Rterminal_def_phrase::Rterminal_def_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rterminal_def_phrase",0,Cterm_def_ph::R_Rterminal_def_phrase_,P,false,false){
+}
+
+void Rterminal_def_phrase::sr1(){
+
+ Cterm_def_ph* fsm = (Cterm_def_ph*)rule_info__.parser__->fsm_tbl__;
+ RSVP(fsm->term_def_);
+ // add to global symbol table
+ const char* skey = fsm->term_def_->t_name()->c_str();
+ T_sym_tbl_report_card report_card;
+ T_in_stbl* tin = new T_in_stbl(fsm->term_def_
+ ,rule_info__.parser__->start_token__,rule_info__.parser__);
+ STBL_T_ITEMS.push_back(tin);
+ using namespace yacco2_stbl;
+ add_sym_to_stbl(report_card,*skey,*tin,table_entry::defed,table_entry::terminal);
+ if(report_card.status_ != T_sym_tbl_report_card::okay){
+ report_card.err_entry_->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*report_card.err_entry_);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ tin->stbl_idx(report_card.pos_);
+ fsm->term_def_ = 0;
+
+}
+
+Rid::Rid(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rid",0,Cterm_def_ph::R_Rid_,P,false,false){
+}
+
+void Rid::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_c_string* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cterm_def_ph* fsm = (Cterm_def_ph*)rule_info__.parser__->fsm_tbl__;
+ const char* skey = sf->p2__->c_string()->c_str();
+ fsm->term_def_->t_name(skey);
+ sf->p2__->set_auto_delete(true);
+ T_sym_tbl_report_card report_card;
+ using namespace yacco2_stbl;
+ find_sym_in_stbl(report_card,*skey);
+ if(report_card.action_ == T_sym_tbl_report_card::fnd){
+ CAbs_lr1_sym* sym = new Err_dup_entry_in_sym_table;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+
+}
+
+void Rid::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_identifier* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cterm_def_ph* fsm = (Cterm_def_ph*)rule_info__.parser__->fsm_tbl__;
+ const char* skey = sf->p2__->identifier()->c_str();
+ fsm->term_def_->t_name(skey);
+ sf->p2__->set_auto_delete(true);
+
+}
+
+void Rid::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_in_stbl* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ CAbs_lr1_sym* sym = new Err_dup_entry_in_sym_table;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+
+}
+
+void Rid::sr4(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rid::sr5(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_lrk_sufx* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ rule_info__.parser__->set_abort_parse(true);
+
+}
+
+void Rid::sr6(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_terminals_sufx* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ rule_info__.parser__->set_abort_parse(true);
+
+}
+
+void Rid::sr7(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_terminals_refs* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ rule_info__.parser__->set_abort_parse(true);
+
+}
+
+Rad_ab_tags::Rad_ab_tags(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rad_ab_tags",0,Cterm_def_ph::R_Rad_ab_tags_,P,false,false){
+}
+
+Rad_ab_tag::Rad_ab_tag(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rad_ab_tag",0,Cterm_def_ph::R_Rad_ab_tag_,P,false,false){
+}
+
+void Rad_ab_tag::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_AD* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cterm_def_ph* fsm = (Cterm_def_ph*)rule_info__.parser__->fsm_tbl__;
+ if(fsm->term_def_->autodelete() == true){
+ CAbs_lr1_sym* sym = new Err_already_defined_AD;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ fsm->term_def_->autodelete(true);
+
+}
+
+void Rad_ab_tag::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_AB* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cterm_def_ph* fsm = (Cterm_def_ph*)rule_info__.parser__->fsm_tbl__;
+ if(fsm->term_def_->autoabort() == true){
+ CAbs_lr1_sym* sym = new Err_already_defined_AB;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ fsm->term_def_->autoabort(true);
+
+}
+
+Rsym_cweb_k::Rsym_cweb_k(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsym_cweb_k",0,Cterm_def_ph::R_Rsym_cweb_k_,P,false,false){
+}
+
+void Rsym_cweb_k::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_cweb_comment* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cterm_def_ph* fsm = (Cterm_def_ph*)rule_info__.parser__->fsm_tbl__;
+ T_cweb_comment* k = sf->p2__;
+ AST* cwebk_t_ = new AST(*k);
+
+ AST* cweb_t_ = new AST();
+ T_cweb_marker* cw = new T_cweb_marker(cweb_t_);
+ AST::set_content(*cweb_t_,*cw);
+ AST::join_pts(*cweb_t_,*cwebk_t_);
+
+ cw->set_rc(*k,__FILE__,__LINE__);
+ AST::set_content(*cweb_t_,*cw);
+ fsm->term_def_->add_cweb_marker(cw->ast());
+
+}
+
+void Rsym_cweb_k::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rsym_class_phrase::Rsym_class_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsym_class_phrase",0,Cterm_def_ph::R_Rsym_class_phrase_,P,false,false){
+}
+
+Rsym_class::Rsym_class(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsym_class",0,Cterm_def_ph::R_Rsym_class_,P,false,false){
+}
+
+void Rsym_class::sr2(){
+
+ CAbs_lr1_sym* sym = new Err_no_sym_class_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rsym_class_id::Rsym_class_id(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsym_class_id",0,Cterm_def_ph::R_Rsym_class_id_,P,false,false){
+}
+
+void Rsym_class_id::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_identifier* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cterm_def_ph* fsm = (Cterm_def_ph*)rule_info__.parser__->fsm_tbl__;
+ fsm->term_def_->classsym(sf->p2__->identifier()->c_str());
+ sf->p2__->set_auto_delete(true);
+
+}
+
+void Rsym_class_id::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_sym_class_id_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rsym_class_id::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_sym_class_id_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rpotential_code_blk::Rpotential_code_blk(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rpotential_code_blk",0,Cterm_def_ph::R_Rpotential_code_blk_,P,false,false){
+}
+
+Ropen_par::Ropen_par(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Ropen_par",0,Cterm_def_ph::R_Ropen_par_,P,false,false){
+}
+
+void Ropen_par::sr1(){
+
+ CAbs_lr1_sym* sym = new Err_no_open_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rclose_par::Rclose_par(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rclose_par",0,Cterm_def_ph::R_Rclose_par_,P,false,false){
+}
+
+void Rclose_par::sr1(){
+
+ CAbs_lr1_sym* sym = new Err_no_close_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rclosing_brace::Rclosing_brace(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rclosing_brace",0,Cterm_def_ph::R_Rclosing_brace_,P,false,false){
+}
+
+void Rclosing_brace::sr1(){
+
+ CAbs_lr1_sym* sym = new Err_no_close_brace;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rdirectives::Rdirectives(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rdirectives",0,Cterm_def_ph::R_Rdirectives_,P,false,false){
+}
+
+void Rdirectives::sr1(){
+ struct SF{
+ Rdirective* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Rsyntax_code* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ Rlint* p3__;
+ State* s3__;
+ bool abort3__;
+ Rule_s_reuse_entry* rule_s_reuse_entry3__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(3);
+
+ Rdirective* dir = sf->p1__;
+ Rsyntax_code* sdc = sf->p2__;
+ Cterm_def_ph* fsm = (Cterm_def_ph*)rule_info__.parser__->fsm_tbl__;
+ fsm->add_sdc_to_directive(dir->directive_,sdc->syntax_code_);
+
+}
+
+void Rdirectives::sr2(){
+ struct SF{
+ Rdirectives* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Rdirective* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ Rsyntax_code* p3__;
+ State* s3__;
+ bool abort3__;
+ Rule_s_reuse_entry* rule_s_reuse_entry3__;
+ Rlint* p4__;
+ State* s4__;
+ bool abort4__;
+ Rule_s_reuse_entry* rule_s_reuse_entry4__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(4);
+
+ Rdirective* dir = sf->p2__;
+ Rsyntax_code* sdc = sf->p3__;
+ Cterm_def_ph* fsm = (Cterm_def_ph*)rule_info__.parser__->fsm_tbl__;
+ fsm->add_sdc_to_directive(dir->directive_,sdc->syntax_code_);
+
+}
+
+Rdirective::Rdirective(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rdirective",0,Cterm_def_ph::R_Rdirective_,P,false,false){
+}
+
+void Rdirective::op(){
+ sstrace_rulesss
+
+ if(directive_ == 0) return;
+ Cterm_def_ph* fsm = (Cterm_def_ph*)rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* result =
+ fsm->term_def_->add_directive_to_map(directive_,rule_info__.parser__);
+ if(result == 0) return;// ok added
+ directive_->set_auto_delete(true);//dup: delete when popped from stack
+ RSVP(result);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+void Rdirective::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_user_declaration* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = sf->p2__;
+
+}
+
+void Rdirective::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_user_implementation* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = sf->p2__;
+
+}
+
+void Rdirective::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_constructor* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = sf->p2__;
+
+}
+
+void Rdirective::sr4(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_destructor* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = sf->p2__;
+
+}
+
+void Rdirective::sr5(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_op* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = sf->p2__;
+
+}
+
+void Rdirective::sr6(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ directive_ = 0;
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_bad_directive;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rsyntax_code::Rsyntax_code(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsyntax_code",0,Cterm_def_ph::R_Rsyntax_code_,P,false,false){
+}
+
+void Rsyntax_code::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_syntax_code* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ syntax_code_ = sf->p2__;
+
+}
+
+void Rsyntax_code::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ syntax_code_ = 0;
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rlint::Rlint(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlint",0,Cterm_def_ph::R_Rlint_,P,false,false){
+}
+
diff --git a/web/yacco2/compiler/grammars/term_def_ph.fsc b/web/yacco2/compiler/grammars/term_def_ph.fsc
new file mode 100644
index 0000000000..2125087638
--- /dev/null
+++ b/web/yacco2/compiler/grammars/term_def_ph.fsc
@@ -0,0 +1,28 @@
+/*
+ File: term_def_ph.fsc
+ Date and Time: Fri Jan 30 18:55:26 2015
+*/
+transitive y
+grammar-name "term_def_ph"
+name-space "NS_term_def_ph"
+thread-name "TH_term_def_ph"
+monolithic n
+file-name "term_def_ph.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 0
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 2
+ NS_c_string::TH_c_string
+ NS_identifier::TH_identifier
+end-list-of-transitive-threads
+list-of-used-threads 7
+ NS_c_string::TH_c_string
+ NS_cweb_or_c_k::TH_cweb_or_c_k
+ NS_identifier::TH_identifier
+ NS_lint_balls::TH_lint_balls
+ NS_o2_sd::TH_o2_sdc
+ NS_t_def_delabort_tags::TH_t_def_delabort_tags
+ NS_terminal_def_symclass::TH_terminal_def_symclass
+end-list-of-used-threads
+fsm-comments
+"Parse a terminal symbol."
diff --git a/web/yacco2/compiler/grammars/term_def_ph.h b/web/yacco2/compiler/grammars/term_def_ph.h
new file mode 100644
index 0000000000..46a5ee439e
--- /dev/null
+++ b/web/yacco2/compiler/grammars/term_def_ph.h
@@ -0,0 +1,253 @@
+/*
+ File: term_def_ph.h
+ Date and Time: Fri Jan 30 18:55:26 2015
+*/
+#ifndef __term_def_ph_h__
+#define __term_def_ph_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "lint_balls.h"
+#include "identifier.h"
+#include "c_string.h"
+#include "t_def_delabort_tags.h"
+#include "terminal_def_symclass.h"
+#include "o2_sdc.h"
+#include "yacco2_stbl.h"
+#include "o2_externs.h"
+#include "cweb_or_c_k.h"
+
+
+extern yacco2::Thread_entry ITH_term_def_ph;
+
+extern yacco2::State S1_Cterm_def_ph;
+namespace NS_term_def_ph {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_term_def_ph(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_term_def_ph(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[16];
+};
+class Cterm_def_ph: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rterminal_def_phrase_ = 569//start_of_rule_list + 0
+ ,rhs1_Rterminal_def_phrase_ = 1
+ ,R_Rid_ = 570//start_of_rule_list + 2
+ ,rhs1_Rid_ = 2
+ ,rhs2_Rid_ = 3
+ ,rhs3_Rid_ = 4
+ ,rhs4_Rid_ = 5
+ ,rhs5_Rid_ = 6
+ ,rhs6_Rid_ = 7
+ ,rhs7_Rid_ = 8
+ ,R_Rad_ab_tags_ = 571//start_of_rule_list + 4
+ ,rhs1_Rad_ab_tags_ = 9
+ ,rhs2_Rad_ab_tags_ = 10
+ ,rhs3_Rad_ab_tags_ = 11
+ ,R_Rad_ab_tag_ = 572//start_of_rule_list + 6
+ ,rhs1_Rad_ab_tag_ = 12
+ ,rhs2_Rad_ab_tag_ = 13
+ ,R_Rsym_cweb_k_ = 573//start_of_rule_list + 8
+ ,rhs1_Rsym_cweb_k_ = 14
+ ,rhs2_Rsym_cweb_k_ = 15
+ ,rhs3_Rsym_cweb_k_ = 16
+ ,R_Rsym_class_phrase_ = 574//start_of_rule_list + 10
+ ,rhs1_Rsym_class_phrase_ = 17
+ ,R_Rsym_class_ = 575//start_of_rule_list + 12
+ ,rhs1_Rsym_class_ = 18
+ ,rhs2_Rsym_class_ = 19
+ ,R_Rsym_class_id_ = 576//start_of_rule_list + 14
+ ,rhs1_Rsym_class_id_ = 20
+ ,rhs2_Rsym_class_id_ = 21
+ ,rhs3_Rsym_class_id_ = 22
+ ,R_Rpotential_code_blk_ = 577//start_of_rule_list + 16
+ ,rhs1_Rpotential_code_blk_ = 23
+ ,rhs2_Rpotential_code_blk_ = 24
+ ,R_Ropen_par_ = 578//start_of_rule_list + 18
+ ,rhs1_Ropen_par_ = 25
+ ,rhs2_Ropen_par_ = 26
+ ,R_Rclose_par_ = 579//start_of_rule_list + 20
+ ,rhs1_Rclose_par_ = 27
+ ,rhs2_Rclose_par_ = 28
+ ,R_Rclosing_brace_ = 580//start_of_rule_list + 22
+ ,rhs1_Rclosing_brace_ = 29
+ ,rhs2_Rclosing_brace_ = 30
+ ,R_Rdirectives_ = 581//start_of_rule_list + 24
+ ,rhs1_Rdirectives_ = 31
+ ,rhs2_Rdirectives_ = 32
+ ,R_Rdirective_ = 582//start_of_rule_list + 26
+ ,rhs1_Rdirective_ = 33
+ ,rhs2_Rdirective_ = 34
+ ,rhs3_Rdirective_ = 35
+ ,rhs4_Rdirective_ = 36
+ ,rhs5_Rdirective_ = 37
+ ,rhs6_Rdirective_ = 38
+ ,R_Rsyntax_code_ = 583//start_of_rule_list + 28
+ ,rhs1_Rsyntax_code_ = 39
+ ,rhs2_Rsyntax_code_ = 40
+ ,R_Rlint_ = 584//start_of_rule_list + 30
+ ,rhs1_Rlint_ = 41
+ ,rhs2_Rlint_ = 42
+ };
+ //no of la sets = 10
+ //no of states = 75
+ Cterm_def_ph();
+ ~Cterm_def_ph();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[43];
+
+ public:
+ void add_sdc_to_directive(CAbs_lr1_sym* Dir,T_syntax_code* Sdc);
+ T_terminal_def* term_def_;
+
+ };
+struct Rterminal_def_phrase;
+struct Rid;
+struct Rad_ab_tags;
+struct Rad_ab_tag;
+struct Rsym_cweb_k;
+struct Rsym_class_phrase;
+struct Rsym_class;
+struct Rsym_class_id;
+struct Rpotential_code_blk;
+struct Ropen_par;
+struct Rclose_par;
+struct Rclosing_brace;
+struct Rdirectives;
+struct Rdirective;
+struct Rsyntax_code;
+struct Rlint;
+struct Rterminal_def_phrase:public yacco2::CAbs_lr1_sym {
+ Rterminal_def_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rid:public yacco2::CAbs_lr1_sym {
+ Rid(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+ void sr5();
+ void sr6();
+ void sr7();
+};
+
+struct Rad_ab_tags:public yacco2::CAbs_lr1_sym {
+ Rad_ab_tags(yacco2::Parser* P);
+ public:
+};
+
+struct Rad_ab_tag:public yacco2::CAbs_lr1_sym {
+ Rad_ab_tag(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rsym_cweb_k:public yacco2::CAbs_lr1_sym {
+ Rsym_cweb_k(yacco2::Parser* P);
+ public:
+ void sr2();
+ void sr3();
+};
+
+struct Rsym_class_phrase:public yacco2::CAbs_lr1_sym {
+ Rsym_class_phrase(yacco2::Parser* P);
+ public:
+};
+
+struct Rsym_class:public yacco2::CAbs_lr1_sym {
+ Rsym_class(yacco2::Parser* P);
+ public:
+ void sr2();
+};
+
+struct Rsym_class_id:public yacco2::CAbs_lr1_sym {
+ Rsym_class_id(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Rpotential_code_blk:public yacco2::CAbs_lr1_sym {
+ Rpotential_code_blk(yacco2::Parser* P);
+ public:
+};
+
+struct Ropen_par:public yacco2::CAbs_lr1_sym {
+ Ropen_par(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rclose_par:public yacco2::CAbs_lr1_sym {
+ Rclose_par(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rclosing_brace:public yacco2::CAbs_lr1_sym {
+ Rclosing_brace(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rdirectives:public yacco2::CAbs_lr1_sym {
+ Rdirectives(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rdirective:public yacco2::CAbs_lr1_sym {
+ Rdirective(yacco2::Parser* P);
+ void op();
+
+ CAbs_lr1_sym* directive_;
+
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+ void sr5();
+ void sr6();
+};
+
+struct Rsyntax_code:public yacco2::CAbs_lr1_sym {
+ Rsyntax_code(yacco2::Parser* P);
+
+ T_syntax_code* syntax_code_;
+
+ public:
+ void sr1();
+ void sr2();
+};
+
+struct Rlint:public yacco2::CAbs_lr1_sym {
+ Rlint(yacco2::Parser* P);
+ public:
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/term_def_ph.lex b/web/yacco2/compiler/grammars/term_def_ph.lex
new file mode 100644
index 0000000000..847fc739e2
--- /dev/null
+++ b/web/yacco2/compiler/grammars/term_def_ph.lex
@@ -0,0 +1,455 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: term_def_ph.lex
+Dates: 24 Mar 2004
+Purpose: parse terminal-def phrase
+ Verifies if the symbol being defined is duplicate
+ within yacco2's symbol table.
+ Adds symbol to global symbol table.
+Output: Err_no_syntax_code_present
+ Err_comment_overrun
+ Err_no_identifier_present
+ Err_duplicate_directive
+ Err_no_close_brace
+ Err_no_directive_present
+ Err_already_defined_AB
+ Err_already_defined_AD
+ Err_dup_entry_in_sym_table
+ Err_no_terminal_key_present
+ Err_bad_directive
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |term_def_ph| grammar.\fbreak
+parse terminal-def phrase.
+@/
+fsm
+(fsm-id "term_def_ph.lex"
+,fsm-filename term_def_ph
+,fsm-namespace NS_term_def_ph
+,fsm-class Cterm_def_ph{
+ user-prefix-declaration
+#include "lint_balls.h"
+#include "identifier.h"
+#include "c_string.h"
+#include "t_def_delabort_tags.h"
+#include "terminal_def_symclass.h"
+#include "o2_sdc.h"
+#include "yacco2_stbl.h"
+#include "o2_externs.h"
+#include "cweb_or_c_k.h"
+
+ ***
+ user-declaration
+ public:
+ void add_sdc_to_directive(CAbs_lr1_sym* Dir,T_syntax_code* Sdc);
+ T_terminal_def* term_def_;
+ ***
+ user-implementation
+ void Cterm_def_ph::
+ add_sdc_to_directive(CAbs_lr1_sym* Dir,T_syntax_code* Sdc){
+ using namespace NS_yacco2_T_enum;
+ using namespace NS_yacco2_terminals;
+ yacco2::INT eid = Dir->enumerated_id__;
+ switch (eid){
+ case T_Enum::T_T_user_declaration_: {
+ T_user_declaration* k = (T_user_declaration*)Dir;
+ k->syntax_code(Sdc);
+ break;
+ }
+ case T_Enum::T_T_constructor_: {
+ T_constructor* k = (T_constructor*)Dir;
+ k->syntax_code(Sdc);
+ break;
+ }
+ case T_Enum::T_T_destructor_: {
+ T_destructor* k = (T_destructor*)Dir;
+ k->syntax_code(Sdc);
+ break;
+ }
+ case T_Enum::T_T_op_: {
+ T_op* k = (T_op*)Dir;
+ k->syntax_code(Sdc);
+ break;
+ }
+ case T_Enum::T_T_user_implementation_: {
+ T_user_implementation* k = (T_user_implementation*)Dir;
+ k->syntax_code(Sdc);
+ break;
+ }
+ default: {
+ CAbs_lr1_sym* sym = new Err_improper_directive;
+ sym->set_rc(*Dir,__FILE__,__LINE__);
+ RSVP_FSM(sym);
+ parser__->set_stop_parse(true);
+ }
+ }
+ }
+ ***
+ op
+ if(term_def_ != 0){
+ delete term_def_;
+ term_def_ = 0;
+ }
+ term_def_ = new T_terminal_def;
+ term_def_->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ ***
+ constructor
+ term_def_ = 0;
+ ***
+}
+,fsm-version "1.0",fsm-date "24 mar 2004",fsm-debug "false"
+,fsm-comments "Parse a terminal symbol.")
+parallel-parser
+(
+ parallel-thread-function
+ TH_term_def_ph
+ ***
+ parallel-la-boundary
+ eolr
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rterminal_def_phrase (){
+ -> Rid Rlint Rad_ab_tags
+ Rlint
+ Rsym_cweb_k
+ Rlint
+ Ropen_par Rlint
+ Rsym_class_phrase Rlint
+ Rpotential_code_blk Rlint
+ Rclose_par Rlint {
+ op
+ Cterm_def_ph* fsm = (Cterm_def_ph*)rule_info__.parser__->fsm_tbl__;
+ RSVP(fsm->term_def_);
+ // add to global symbol table
+ const char* skey = fsm->term_def_->t_name()->c_str();
+ T_sym_tbl_report_card report_card;
+ T_in_stbl* tin = new T_in_stbl(fsm->term_def_
+ ,rule_info__.parser__->start_token__,rule_info__.parser__);
+ STBL_T_ITEMS.push_back(tin);
+ using namespace yacco2_stbl;
+ add_sym_to_stbl(report_card,*skey,*tin,table_entry::defed,table_entry::terminal);
+ if(report_card.status_ != T_sym_tbl_report_card::okay){
+ report_card.err_entry_->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*report_card.err_entry_);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ tin->stbl_idx(report_card.pos_);
+ fsm->term_def_ = 0;
+ ***
+ }
+}
+
+Rid (){
+ -> ||| "c-string" NS_c_string::TH_c_string {
+ op
+ Cterm_def_ph* fsm = (Cterm_def_ph*)rule_info__.parser__->fsm_tbl__;
+ const char* skey = sf->p2__->c_string()->c_str();
+ fsm->term_def_->t_name(skey);
+ sf->p2__->set_auto_delete(true);
+ T_sym_tbl_report_card report_card;
+ using namespace yacco2_stbl;
+ find_sym_in_stbl(report_card,*skey);
+ if(report_card.action_ == T_sym_tbl_report_card::fnd){
+ CAbs_lr1_sym* sym = new Err_dup_entry_in_sym_table;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ ***
+ }
+ -> ||| identifier NS_identifier::TH_identifier {
+ op
+ Cterm_def_ph* fsm = (Cterm_def_ph*)rule_info__.parser__->fsm_tbl__;
+ const char* skey = sf->p2__->identifier()->c_str();
+ fsm->term_def_->t_name(skey);
+ sf->p2__->set_auto_delete(true);
+ ***
+ }
+ -> ||| "T-in-stbl" NULL {
+ op
+ CAbs_lr1_sym* sym = new Err_dup_entry_in_sym_table;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| "#lrk-sufx" NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ rule_info__.parser__->set_abort_parse(true);
+ ***
+ }
+ -> ||| "#terminals-sufx" NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ rule_info__.parser__->set_abort_parse(true);
+ ***
+ }
+ -> ||| "#terminals-refs" NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ rule_info__.parser__->set_abort_parse(true);
+ ***
+ }
+}
+
+Rad_ab_tags (){
+ -> Rad_ab_tag Rlint
+ -> Rad_ab_tags Rad_ab_tag Rlint
+ ->
+}
+
+Rad_ab_tag (){
+ -> ||| "#AD" NS_t_def_delabort_tags::TH_t_def_delabort_tags {
+ op
+ Cterm_def_ph* fsm = (Cterm_def_ph*)rule_info__.parser__->fsm_tbl__;
+ if(fsm->term_def_->autodelete() == true){
+ CAbs_lr1_sym* sym = new Err_already_defined_AD;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ fsm->term_def_->autodelete(true);
+ ***
+ }
+ -> ||| "#AB" NULL {
+ op
+ Cterm_def_ph* fsm = (Cterm_def_ph*)rule_info__.parser__->fsm_tbl__;
+ if(fsm->term_def_->autoabort() == true){
+ CAbs_lr1_sym* sym = new Err_already_defined_AB;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ fsm->term_def_->autoabort(true);
+ ***
+ }
+}
+
+Rsym_cweb_k (){
+ ->
+ -> ||| "cweb-comment" NS_cweb_or_c_k::TH_cweb_or_c_k {
+ op
+ Cterm_def_ph* fsm = (Cterm_def_ph*)rule_info__.parser__->fsm_tbl__;
+ T_cweb_comment* k = sf->p2__;
+ AST* cwebk_t_ = new AST(*k);
+
+ AST* cweb_t_ = new AST();
+ T_cweb_marker* cw = new T_cweb_marker(cweb_t_);
+ AST::set_content(*cweb_t_,*cw);
+ AST::join_pts(*cweb_t_,*cwebk_t_);
+
+ cw->set_rc(*k,__FILE__,__LINE__);
+ AST::set_content(*cweb_t_,*cw);
+ fsm->term_def_->add_cweb_marker(cw->ast());
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rsym_class_phrase (){
+ -> Rsym_class Rlint Rsym_class_id
+}
+
+Rsym_class (){
+ -> ||| "#sym-class" NS_terminal_def_symclass::TH_terminal_def_symclass
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_sym_class_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rsym_class_id (){
+ -> ||| identifier NS_identifier::TH_identifier {
+ op
+ Cterm_def_ph* fsm = (Cterm_def_ph*)rule_info__.parser__->fsm_tbl__;
+ fsm->term_def_->classsym(sf->p2__->identifier()->c_str());
+ sf->p2__->set_auto_delete(true);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_sym_class_id_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_sym_class_id_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rpotential_code_blk (){
+ ->
+ -> "{" Rlint Rdirectives Rlint Rclosing_brace Rlint
+}
+
+Ropen_par (){
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_open_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> "("
+}
+
+Rclose_par (){
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_close_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ")"
+}
+
+Rclosing_brace (){
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_close_brace;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> "}"
+}
+
+Rdirectives (){
+ -> Rdirective Rsyntax_code Rlint {
+ op
+ Rdirective* dir = sf->p1__;
+ Rsyntax_code* sdc = sf->p2__;
+ Cterm_def_ph* fsm = (Cterm_def_ph*)rule_info__.parser__->fsm_tbl__;
+ fsm->add_sdc_to_directive(dir->directive_,sdc->syntax_code_);
+ ***
+ }
+ -> Rdirectives Rdirective Rsyntax_code Rlint {
+ op
+ Rdirective* dir = sf->p2__;
+ Rsyntax_code* sdc = sf->p3__;
+ Cterm_def_ph* fsm = (Cterm_def_ph*)rule_info__.parser__->fsm_tbl__;
+ fsm->add_sdc_to_directive(dir->directive_,sdc->syntax_code_);
+ ***
+ }
+}
+
+Rdirective (
+lhs {
+ user-declaration
+ CAbs_lr1_sym* directive_;
+ ***
+ op
+ if(directive_ == 0) return;
+ Cterm_def_ph* fsm = (Cterm_def_ph*)rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* result =
+ fsm->term_def_->add_directive_to_map(directive_,rule_info__.parser__);
+ if(result == 0) return;// ok added
+ directive_->set_auto_delete(true);//dup: delete when popped from stack
+ RSVP(result);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+){
+ -> ||| "#user-declaration" NS_identifier::TH_identifier {
+ op
+ directive_ = sf->p2__;
+ ***
+ }
+ -> ||| "#user-implementation" NULL {
+ op
+ directive_ = sf->p2__;
+ ***
+ }
+ -> ||| "#constructor" NULL {
+ op
+ directive_ = sf->p2__;
+ ***
+ }
+ -> ||| "#destructor" NULL {
+ op
+ directive_ = sf->p2__;
+ ***
+ }
+ -> ||| "#op" NULL {
+ op
+ directive_ = sf->p2__;
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ directive_ = 0;
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_bad_directive;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rsyntax_code (
+lhs {
+ user-declaration
+ T_syntax_code* syntax_code_;
+ ***
+ }
+){
+ -> ||| "syntax-code" NS_o2_sd::TH_o2_sdc {
+ op
+ syntax_code_ = sf->p2__;
+ ***
+ }
+ -> ||| |?| NULL { // catcher in the Rye? These are errors
+ op
+ syntax_code_ = 0;
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rlint (){
+ -> ||| lint NS_lint_balls::TH_lint_balls
+ ->
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/term_def_phsym.cpp b/web/yacco2/compiler/grammars/term_def_phsym.cpp
new file mode 100644
index 0000000000..e1438c601e
--- /dev/null
+++ b/web/yacco2/compiler/grammars/term_def_phsym.cpp
@@ -0,0 +1,671 @@
+/*
+ File: term_def_phsym.cpp
+ Date and Time: Fri Jan 30 18:55:26 2015
+*/
+#include "term_def_ph.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_term_def_ph;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_term_def_ph::TH_term_def_ph(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_term_def_ph;
+ NS_term_def_ph::Cterm_def_ph Cterm_def_ph_;// parallel-parser's parse table
+#define ssPARSE_TABLE Cterm_def_ph_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_term_def_ph::PROC_TH_term_def_ph(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_term_def_ph";
+ static bool one_time(false);
+ static NS_term_def_ph::Cterm_def_ph* NS_term_def_ph_Cterm_def_ph_(0);// parallel-parser's fsm table
+ static Parser* NS_term_def_ph_Cterm_def_ph_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_term_def_ph_Cterm_def_ph_ = new NS_term_def_ph::Cterm_def_ph();// parallel-parser's fsm table
+ NS_term_def_ph_Cterm_def_ph_parser = new Parser(*NS_term_def_ph_Cterm_def_ph_,Caller_pp);
+ }
+ proc_parser = NS_term_def_ph_Cterm_def_ph_parser;
+#include "wproc_pp_core.h"
+}
+void
+Cterm_def_ph::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rterminal_def_phrase_:{
+ Rterminal_def_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rterminal_def_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rterminal_def_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 14;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rid_:{
+ Rid* sym;
+ if(re->rule_ == 0){
+ sym = new Rid(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rid*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rid_:{
+ Rid* sym;
+ if(re->rule_ == 0){
+ sym = new Rid(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rid*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rid_:{
+ Rid* sym;
+ if(re->rule_ == 0){
+ sym = new Rid(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rid*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rid_:{
+ Rid* sym;
+ if(re->rule_ == 0){
+ sym = new Rid(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rid*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr4();
+ return;}
+ case rhs5_Rid_:{
+ Rid* sym;
+ if(re->rule_ == 0){
+ sym = new Rid(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rid*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr5();
+ return;}
+ case rhs6_Rid_:{
+ Rid* sym;
+ if(re->rule_ == 0){
+ sym = new Rid(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rid*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr6();
+ return;}
+ case rhs7_Rid_:{
+ Rid* sym;
+ if(re->rule_ == 0){
+ sym = new Rid(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rid*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr7();
+ return;}
+ case rhs1_Rad_ab_tags_:{
+ Rad_ab_tags* sym;
+ if(re->rule_ == 0){
+ sym = new Rad_ab_tags(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rad_ab_tags*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rad_ab_tags_:{
+ Rad_ab_tags* sym;
+ if(re->rule_ == 0){
+ sym = new Rad_ab_tags(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rad_ab_tags*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ return;}
+ case rhs3_Rad_ab_tags_:{
+ Rad_ab_tags* sym;
+ if(re->rule_ == 0){
+ sym = new Rad_ab_tags(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rad_ab_tags*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs1_Rad_ab_tag_:{
+ Rad_ab_tag* sym;
+ if(re->rule_ == 0){
+ sym = new Rad_ab_tag(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rad_ab_tag*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rad_ab_tag_:{
+ Rad_ab_tag* sym;
+ if(re->rule_ == 0){
+ sym = new Rad_ab_tag(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rad_ab_tag*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rsym_cweb_k_:{
+ Rsym_cweb_k* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_cweb_k(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_cweb_k*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs2_Rsym_cweb_k_:{
+ Rsym_cweb_k* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_cweb_k(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_cweb_k*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rsym_cweb_k_:{
+ Rsym_cweb_k* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_cweb_k(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_cweb_k*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rsym_class_phrase_:{
+ Rsym_class_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_class_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_class_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ return;}
+ case rhs1_Rsym_class_:{
+ Rsym_class* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_class(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_class*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rsym_class_:{
+ Rsym_class* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_class(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_class*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rsym_class_id_:{
+ Rsym_class_id* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_class_id(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_class_id*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rsym_class_id_:{
+ Rsym_class_id* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_class_id(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_class_id*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rsym_class_id_:{
+ Rsym_class_id* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_class_id(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_class_id*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rpotential_code_blk_:{
+ Rpotential_code_blk* sym;
+ if(re->rule_ == 0){
+ sym = new Rpotential_code_blk(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rpotential_code_blk*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs2_Rpotential_code_blk_:{
+ Rpotential_code_blk* sym;
+ if(re->rule_ == 0){
+ sym = new Rpotential_code_blk(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rpotential_code_blk*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 6;
+
+
+ return;}
+ case rhs1_Ropen_par_:{
+ Ropen_par* sym;
+ if(re->rule_ == 0){
+ sym = new Ropen_par(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ropen_par*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Ropen_par_:{
+ Ropen_par* sym;
+ if(re->rule_ == 0){
+ sym = new Ropen_par(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ropen_par*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rclose_par_:{
+ Rclose_par* sym;
+ if(re->rule_ == 0){
+ sym = new Rclose_par(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclose_par*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rclose_par_:{
+ Rclose_par* sym;
+ if(re->rule_ == 0){
+ sym = new Rclose_par(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclose_par*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rclosing_brace_:{
+ Rclosing_brace* sym;
+ if(re->rule_ == 0){
+ sym = new Rclosing_brace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclosing_brace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rclosing_brace_:{
+ Rclosing_brace* sym;
+ if(re->rule_ == 0){
+ sym = new Rclosing_brace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclosing_brace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rdirectives_:{
+ Rdirectives* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirectives(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirectives*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rdirectives_:{
+ Rdirectives* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirectives(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirectives*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 4;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ sym->op();
+ return;}
+ case rhs2_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ sym->op();
+ return;}
+ case rhs3_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ sym->op();
+ return;}
+ case rhs4_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr4();
+ sym->op();
+ return;}
+ case rhs5_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr5();
+ sym->op();
+ return;}
+ case rhs6_Rdirective_:{
+ Rdirective* sym;
+ if(re->rule_ == 0){
+ sym = new Rdirective(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rdirective*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr6();
+ sym->op();
+ return;}
+ case rhs1_Rsyntax_code_:{
+ Rsyntax_code* sym;
+ if(re->rule_ == 0){
+ sym = new Rsyntax_code(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsyntax_code*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rsyntax_code_:{
+ Rsyntax_code* sym;
+ if(re->rule_ == 0){
+ sym = new Rsyntax_code(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsyntax_code*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rlint_:{
+ Rlint* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rlint_:{
+ Rlint* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/term_def_phtbl.cpp b/web/yacco2/compiler/grammars/term_def_phtbl.cpp
new file mode 100644
index 0000000000..f58064d395
--- /dev/null
+++ b/web/yacco2/compiler/grammars/term_def_phtbl.cpp
@@ -0,0 +1,1636 @@
+/*
+ File: term_def_phtbl.cpp
+ Date and Time: Fri Jan 30 18:55:26 2015
+*/
+#include "term_def_ph.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_term_def_ph;// grammar's ns
+// first set terminals
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+// raw_open_bracket
+yacco2::UCHAR LA1_Cterm_def_ph[] ={
+2
+,0,17
+,6,1
+};
+// LR1_eolr
+yacco2::UCHAR LA2_Cterm_def_ph[] ={
+1
+,0,4
+};
+// LR1_questionable_shift_operator
+// raw_open_bracket
+yacco2::UCHAR LA3_Cterm_def_ph[] ={
+2
+,0,1
+,6,1
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+yacco2::UCHAR LA4_Cterm_def_ph[] ={
+1
+,0,17
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+// raw_close_bracket
+// raw_open_brace
+yacco2::UCHAR LA5_Cterm_def_ph[] ={
+3
+,0,17
+,6,2
+,16,8
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+// raw_close_bracket
+yacco2::UCHAR LA6_Cterm_def_ph[] ={
+2
+,0,17
+,6,2
+};
+// LR1_questionable_shift_operator
+// raw_close_bracket
+yacco2::UCHAR LA7_Cterm_def_ph[] ={
+2
+,0,1
+,6,2
+};
+// LR1_reduce_operator
+yacco2::UCHAR LA8_Cterm_def_ph[] ={
+1
+,0,16
+};
+// LR1_questionable_shift_operator
+// raw_close_brace
+yacco2::UCHAR LA9_Cterm_def_ph[] ={
+2
+,0,1
+,16,32
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+// raw_close_brace
+yacco2::UCHAR LA10_Cterm_def_ph[] ={
+2
+,0,17
+,16,32
+};
+extern yacco2::State S1_Cterm_def_ph;
+extern yacco2::State S2_Cterm_def_ph;
+struct S2ttd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[2];
+};
+S2ttd_Cterm_def_ph S2tt_Cterm_def_ph = {
+ 2 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_c_string
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S3_Cterm_def_ph;
+extern yacco2::State S4_Cterm_def_ph;
+extern yacco2::State S5_Cterm_def_ph;
+extern yacco2::State S6_Cterm_def_ph;
+extern yacco2::State S7_Cterm_def_ph;
+extern yacco2::State S8_Cterm_def_ph;
+extern yacco2::State S9_Cterm_def_ph;
+extern yacco2::State S10_Cterm_def_ph;
+extern yacco2::State S11_Cterm_def_ph;
+extern yacco2::State S12_Cterm_def_ph;
+extern yacco2::State S13_Cterm_def_ph;
+struct S13ttd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[2];
+};
+S13ttd_Cterm_def_ph S13tt_Cterm_def_ph = {
+ 2 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_t_def_delabort_tags
+ ,(yacco2::Thread_entry*)&ITH_lint_balls
+};
+extern yacco2::State S14_Cterm_def_ph;
+extern yacco2::State S15_Cterm_def_ph;
+extern yacco2::State S16_Cterm_def_ph;
+extern yacco2::State S17_Cterm_def_ph;
+extern yacco2::State S18_Cterm_def_ph;
+extern yacco2::State S19_Cterm_def_ph;
+extern yacco2::State S20_Cterm_def_ph;
+extern yacco2::State S21_Cterm_def_ph;
+extern yacco2::State S22_Cterm_def_ph;
+extern yacco2::State S23_Cterm_def_ph;
+extern yacco2::State S24_Cterm_def_ph;
+extern yacco2::State S25_Cterm_def_ph;
+extern yacco2::State S26_Cterm_def_ph;
+extern yacco2::State S27_Cterm_def_ph;
+extern yacco2::State S28_Cterm_def_ph;
+extern yacco2::State S29_Cterm_def_ph;
+struct S29ttd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S29ttd_Cterm_def_ph S29tt_Cterm_def_ph = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_lint_balls
+};
+extern yacco2::State S30_Cterm_def_ph;
+extern yacco2::State S31_Cterm_def_ph;
+struct S31ttd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S31ttd_Cterm_def_ph S31tt_Cterm_def_ph = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_t_def_delabort_tags
+};
+extern yacco2::State S32_Cterm_def_ph;
+extern yacco2::State S33_Cterm_def_ph;
+extern yacco2::State S34_Cterm_def_ph;
+extern yacco2::State S35_Cterm_def_ph;
+extern yacco2::State S36_Cterm_def_ph;
+struct S36ttd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S36ttd_Cterm_def_ph S36tt_Cterm_def_ph = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_cweb_or_c_k
+};
+extern yacco2::State S37_Cterm_def_ph;
+extern yacco2::State S38_Cterm_def_ph;
+extern yacco2::State S39_Cterm_def_ph;
+extern yacco2::State S40_Cterm_def_ph;
+extern yacco2::State S41_Cterm_def_ph;
+extern yacco2::State S42_Cterm_def_ph;
+struct S42ttd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S42ttd_Cterm_def_ph S42tt_Cterm_def_ph = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_terminal_def_symclass
+};
+extern yacco2::State S43_Cterm_def_ph;
+extern yacco2::State S44_Cterm_def_ph;
+extern yacco2::State S45_Cterm_def_ph;
+extern yacco2::State S46_Cterm_def_ph;
+extern yacco2::State S47_Cterm_def_ph;
+struct S47ttd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S47ttd_Cterm_def_ph S47tt_Cterm_def_ph = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S48_Cterm_def_ph;
+extern yacco2::State S49_Cterm_def_ph;
+extern yacco2::State S50_Cterm_def_ph;
+extern yacco2::State S51_Cterm_def_ph;
+extern yacco2::State S52_Cterm_def_ph;
+extern yacco2::State S53_Cterm_def_ph;
+extern yacco2::State S54_Cterm_def_ph;
+extern yacco2::State S55_Cterm_def_ph;
+struct S55ttd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S55ttd_Cterm_def_ph S55tt_Cterm_def_ph = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_o2_sdc
+};
+extern yacco2::State S56_Cterm_def_ph;
+extern yacco2::State S57_Cterm_def_ph;
+extern yacco2::State S58_Cterm_def_ph;
+extern yacco2::State S59_Cterm_def_ph;
+extern yacco2::State S60_Cterm_def_ph;
+extern yacco2::State S61_Cterm_def_ph;
+extern yacco2::State S62_Cterm_def_ph;
+extern yacco2::State S63_Cterm_def_ph;
+extern yacco2::State S64_Cterm_def_ph;
+extern yacco2::State S65_Cterm_def_ph;
+struct S65ttd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S65ttd_Cterm_def_ph S65tt_Cterm_def_ph = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S66_Cterm_def_ph;
+extern yacco2::State S67_Cterm_def_ph;
+extern yacco2::State S68_Cterm_def_ph;
+extern yacco2::State S69_Cterm_def_ph;
+extern yacco2::State S70_Cterm_def_ph;
+extern yacco2::State S71_Cterm_def_ph;
+extern yacco2::State S72_Cterm_def_ph;
+extern yacco2::State S73_Cterm_def_ph;
+extern yacco2::State S74_Cterm_def_ph;
+extern yacco2::State S75_Cterm_def_ph;
+struct S75ttd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[2];
+};
+S75ttd_Cterm_def_ph S75tt_Cterm_def_ph = {
+ 2 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+ ,(yacco2::Thread_entry*)&ITH_lint_balls
+};
+struct S1std_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S1std_Cterm_def_ph S1st_Cterm_def_ph = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S2_Cterm_def_ph} // shift sym: LR1_parallel_operator
+ ,{569,(State*)&S1_Cterm_def_ph} // accept sym: Rterminal_def_phrase
+ ,{570,(State*)&S10_Cterm_def_ph} // shift sym: Rid
+ }// end of shift table
+};
+yacco2::Shift_entry S1pse_Cterm_def_ph = {3,(State*)&S2_Cterm_def_ph};
+yacco2::State S1_Cterm_def_ph = //State's vectored into symbol: " No symbol"
+{1
+,(Shift_entry*)&S1pse_Cterm_def_ph,0,0,0,(Shift_tbl*)&S1st_Cterm_def_ph,0,(State_s_thread_tbl*)&S2tt_Cterm_def_ph,0,0};
+struct S2std_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[7];
+};
+S2std_Cterm_def_ph S2st_Cterm_def_ph = {
+ 7
+ ,
+ {// start of table
+ {0,(State*)&S3_Cterm_def_ph} // shift sym: LR1_questionable_shift_operator
+ ,{275,(State*)&S4_Cterm_def_ph} // shift sym: T_c_string
+ ,{279,(State*)&S5_Cterm_def_ph} // shift sym: T_identifier
+ ,{319,(State*)&S6_Cterm_def_ph} // shift sym: T_terminals_refs
+ ,{320,(State*)&S7_Cterm_def_ph} // shift sym: T_terminals_sufx
+ ,{321,(State*)&S8_Cterm_def_ph} // shift sym: T_lrk_sufx
+ ,{344,(State*)&S9_Cterm_def_ph} // shift sym: T_in_stbl
+ }// end of shift table
+};
+yacco2::Shift_entry S2qse_Cterm_def_ph = {0,(State*)&S3_Cterm_def_ph};
+yacco2::State S2_Cterm_def_ph = //State's vectored into symbol: "|||"
+{2
+,0,0,0,0,(Shift_tbl*)&S2st_Cterm_def_ph,0,0,0,(Shift_entry*)&S2qse_Cterm_def_ph
+};
+struct S3rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Cterm_def_ph S3rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cterm_def_ph,Cterm_def_ph::rhs4_Rid_}
+ }// end of reduce table
+};
+yacco2::State S3_Cterm_def_ph = //State's vectored into symbol: "|?|"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_Cterm_def_ph,0,0,0};
+struct S4rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Cterm_def_ph S4rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cterm_def_ph,Cterm_def_ph::rhs1_Rid_}
+ }// end of reduce table
+};
+yacco2::State S4_Cterm_def_ph = //State's vectored into symbol: "c-string"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Cterm_def_ph,0,0,0};
+struct S5rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Cterm_def_ph S5rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cterm_def_ph,Cterm_def_ph::rhs2_Rid_}
+ }// end of reduce table
+};
+yacco2::State S5_Cterm_def_ph = //State's vectored into symbol: "identifier"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Cterm_def_ph,0,0,0};
+struct S6rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Cterm_def_ph S6rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cterm_def_ph,Cterm_def_ph::rhs7_Rid_}
+ }// end of reduce table
+};
+yacco2::State S6_Cterm_def_ph = //State's vectored into symbol: "#terminals-refs"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Cterm_def_ph,0,0,0};
+struct S7rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Cterm_def_ph S7rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cterm_def_ph,Cterm_def_ph::rhs6_Rid_}
+ }// end of reduce table
+};
+yacco2::State S7_Cterm_def_ph = //State's vectored into symbol: "#terminals-sufx"
+{7
+,0,0,0,0,0,(Reduce_tbl*)&S7rt_Cterm_def_ph,0,0,0};
+struct S8rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S8rtd_Cterm_def_ph S8rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cterm_def_ph,Cterm_def_ph::rhs5_Rid_}
+ }// end of reduce table
+};
+yacco2::State S8_Cterm_def_ph = //State's vectored into symbol: "#lrk-sufx"
+{8
+,0,0,0,0,0,(Reduce_tbl*)&S8rt_Cterm_def_ph,0,0,0};
+struct S9rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Cterm_def_ph S9rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cterm_def_ph,Cterm_def_ph::rhs3_Rid_}
+ }// end of reduce table
+};
+yacco2::State S9_Cterm_def_ph = //State's vectored into symbol: "T-in-stbl"
+{9
+,0,0,0,0,0,(Reduce_tbl*)&S9rt_Cterm_def_ph,0,0,0};
+struct S10std_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S10std_Cterm_def_ph S10st_Cterm_def_ph = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S29_Cterm_def_ph} // shift sym: LR1_parallel_operator
+ ,{584,(State*)&S11_Cterm_def_ph} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S10pse_Cterm_def_ph = {3,(State*)&S29_Cterm_def_ph};
+struct S10rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S10rtd_Cterm_def_ph S10rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cterm_def_ph,Cterm_def_ph::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S10_Cterm_def_ph = //State's vectored into symbol: "Rid"
+{10
+,(Shift_entry*)&S10pse_Cterm_def_ph,0,0,0,(Shift_tbl*)&S10st_Cterm_def_ph,(Reduce_tbl*)&S10rt_Cterm_def_ph,(State_s_thread_tbl*)&S29tt_Cterm_def_ph,0,0};
+struct S11std_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S11std_Cterm_def_ph S11st_Cterm_def_ph = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S31_Cterm_def_ph} // shift sym: LR1_parallel_operator
+ ,{571,(State*)&S12_Cterm_def_ph} // shift sym: Rad_ab_tags
+ ,{572,(State*)&S34_Cterm_def_ph} // shift sym: Rad_ab_tag
+ }// end of shift table
+};
+yacco2::Shift_entry S11pse_Cterm_def_ph = {3,(State*)&S31_Cterm_def_ph};
+struct S11rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Cterm_def_ph S11rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cterm_def_ph,Cterm_def_ph::rhs3_Rad_ab_tags_}
+ }// end of reduce table
+};
+yacco2::State S11_Cterm_def_ph = //State's vectored into symbol: "Rlint"
+{11
+,(Shift_entry*)&S11pse_Cterm_def_ph,0,0,0,(Shift_tbl*)&S11st_Cterm_def_ph,(Reduce_tbl*)&S11rt_Cterm_def_ph,(State_s_thread_tbl*)&S31tt_Cterm_def_ph,0,0};
+struct S12std_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S12std_Cterm_def_ph S12st_Cterm_def_ph = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S13_Cterm_def_ph} // shift sym: LR1_parallel_operator
+ ,{572,(State*)&S32_Cterm_def_ph} // shift sym: Rad_ab_tag
+ ,{584,(State*)&S17_Cterm_def_ph} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S12pse_Cterm_def_ph = {3,(State*)&S13_Cterm_def_ph};
+struct S12rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S12rtd_Cterm_def_ph S12rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cterm_def_ph,Cterm_def_ph::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S12_Cterm_def_ph = //State's vectored into symbol: "Rad_ab_tags"
+{12
+,(Shift_entry*)&S12pse_Cterm_def_ph,0,0,0,(Shift_tbl*)&S12st_Cterm_def_ph,(Reduce_tbl*)&S12rt_Cterm_def_ph,(State_s_thread_tbl*)&S13tt_Cterm_def_ph,0,0};
+struct S13std_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S13std_Cterm_def_ph S13st_Cterm_def_ph = {
+ 3
+ ,
+ {// start of table
+ {285,(State*)&S14_Cterm_def_ph} // shift sym: T_AD
+ ,{286,(State*)&S15_Cterm_def_ph} // shift sym: T_AB
+ ,{375,(State*)&S16_Cterm_def_ph} // shift sym: T_lint
+ }// end of shift table
+};
+yacco2::State S13_Cterm_def_ph = //State's vectored into symbol: "|||"
+{13
+,0,0,0,0,(Shift_tbl*)&S13st_Cterm_def_ph,0,0,0,0};
+struct S14rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S14rtd_Cterm_def_ph S14rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cterm_def_ph,Cterm_def_ph::rhs1_Rad_ab_tag_}
+ }// end of reduce table
+};
+yacco2::State S14_Cterm_def_ph = //State's vectored into symbol: "#AD"
+{14
+,0,0,0,0,0,(Reduce_tbl*)&S14rt_Cterm_def_ph,0,0,0};
+struct S15rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S15rtd_Cterm_def_ph S15rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cterm_def_ph,Cterm_def_ph::rhs2_Rad_ab_tag_}
+ }// end of reduce table
+};
+yacco2::State S15_Cterm_def_ph = //State's vectored into symbol: "#AB"
+{15
+,0,0,0,0,0,(Reduce_tbl*)&S15rt_Cterm_def_ph,0,0,0};
+struct S16rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S16rtd_Cterm_def_ph S16rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cterm_def_ph,Cterm_def_ph::rhs1_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S16_Cterm_def_ph = //State's vectored into symbol: "lint"
+{16
+,0,0,0,0,0,(Reduce_tbl*)&S16rt_Cterm_def_ph,0,0,0};
+struct S17std_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S17std_Cterm_def_ph S17st_Cterm_def_ph = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S36_Cterm_def_ph} // shift sym: LR1_parallel_operator
+ ,{573,(State*)&S18_Cterm_def_ph} // shift sym: Rsym_cweb_k
+ }// end of shift table
+};
+yacco2::Shift_entry S17pse_Cterm_def_ph = {3,(State*)&S36_Cterm_def_ph};
+struct S17rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S17rtd_Cterm_def_ph S17rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cterm_def_ph,Cterm_def_ph::rhs1_Rsym_cweb_k_}
+ }// end of reduce table
+};
+yacco2::State S17_Cterm_def_ph = //State's vectored into symbol: "Rlint"
+{17
+,(Shift_entry*)&S17pse_Cterm_def_ph,0,0,0,(Shift_tbl*)&S17st_Cterm_def_ph,(Reduce_tbl*)&S17rt_Cterm_def_ph,(State_s_thread_tbl*)&S36tt_Cterm_def_ph,0,0};
+struct S18std_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S18std_Cterm_def_ph S18st_Cterm_def_ph = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S29_Cterm_def_ph} // shift sym: LR1_parallel_operator
+ ,{584,(State*)&S19_Cterm_def_ph} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S18pse_Cterm_def_ph = {3,(State*)&S29_Cterm_def_ph};
+struct S18rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S18rtd_Cterm_def_ph S18rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cterm_def_ph,Cterm_def_ph::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S18_Cterm_def_ph = //State's vectored into symbol: "Rsym_cweb_k"
+{18
+,(Shift_entry*)&S18pse_Cterm_def_ph,0,0,0,(Shift_tbl*)&S18st_Cterm_def_ph,(Reduce_tbl*)&S18rt_Cterm_def_ph,(State_s_thread_tbl*)&S29tt_Cterm_def_ph,0,0};
+struct S19std_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S19std_Cterm_def_ph S19st_Cterm_def_ph = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S39_Cterm_def_ph} // shift sym: LR1_questionable_shift_operator
+ ,{48,(State*)&S40_Cterm_def_ph} // shift sym: raw_open_bracket
+ ,{578,(State*)&S20_Cterm_def_ph} // shift sym: Ropen_par
+ }// end of shift table
+};
+yacco2::Shift_entry S19qse_Cterm_def_ph = {0,(State*)&S39_Cterm_def_ph};
+yacco2::State S19_Cterm_def_ph = //State's vectored into symbol: "Rlint"
+{19
+,0,0,0,0,(Shift_tbl*)&S19st_Cterm_def_ph,0,0,0,(Shift_entry*)&S19qse_Cterm_def_ph
+};
+struct S20std_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S20std_Cterm_def_ph S20st_Cterm_def_ph = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S29_Cterm_def_ph} // shift sym: LR1_parallel_operator
+ ,{584,(State*)&S21_Cterm_def_ph} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S20pse_Cterm_def_ph = {3,(State*)&S29_Cterm_def_ph};
+struct S20rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S20rtd_Cterm_def_ph S20rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cterm_def_ph,Cterm_def_ph::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S20_Cterm_def_ph = //State's vectored into symbol: "Ropen_par"
+{20
+,(Shift_entry*)&S20pse_Cterm_def_ph,0,0,0,(Shift_tbl*)&S20st_Cterm_def_ph,(Reduce_tbl*)&S20rt_Cterm_def_ph,(State_s_thread_tbl*)&S29tt_Cterm_def_ph,0,0};
+struct S21std_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S21std_Cterm_def_ph S21st_Cterm_def_ph = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S41_Cterm_def_ph} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S42_Cterm_def_ph} // shift sym: LR1_parallel_operator
+ ,{574,(State*)&S22_Cterm_def_ph} // shift sym: Rsym_class_phrase
+ ,{575,(State*)&S44_Cterm_def_ph} // shift sym: Rsym_class
+ }// end of shift table
+};
+yacco2::Shift_entry S21pse_Cterm_def_ph = {3,(State*)&S42_Cterm_def_ph};
+yacco2::Shift_entry S21qse_Cterm_def_ph = {0,(State*)&S41_Cterm_def_ph};
+yacco2::State S21_Cterm_def_ph = //State's vectored into symbol: "Rlint"
+{21
+,(Shift_entry*)&S21pse_Cterm_def_ph,0,0,0,(Shift_tbl*)&S21st_Cterm_def_ph,0,(State_s_thread_tbl*)&S42tt_Cterm_def_ph,0,(Shift_entry*)&S21qse_Cterm_def_ph
+};
+struct S22std_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S22std_Cterm_def_ph S22st_Cterm_def_ph = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S29_Cterm_def_ph} // shift sym: LR1_parallel_operator
+ ,{584,(State*)&S23_Cterm_def_ph} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S22pse_Cterm_def_ph = {3,(State*)&S29_Cterm_def_ph};
+struct S22rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S22rtd_Cterm_def_ph S22rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cterm_def_ph,Cterm_def_ph::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S22_Cterm_def_ph = //State's vectored into symbol: "Rsym_class_phrase"
+{22
+,(Shift_entry*)&S22pse_Cterm_def_ph,0,0,0,(Shift_tbl*)&S22st_Cterm_def_ph,(Reduce_tbl*)&S22rt_Cterm_def_ph,(State_s_thread_tbl*)&S29tt_Cterm_def_ph,0,0};
+struct S23std_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S23std_Cterm_def_ph S23st_Cterm_def_ph = {
+ 2
+ ,
+ {// start of table
+ {131,(State*)&S51_Cterm_def_ph} // shift sym: raw_open_brace
+ ,{577,(State*)&S24_Cterm_def_ph} // shift sym: Rpotential_code_blk
+ }// end of shift table
+};
+struct S23rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S23rtd_Cterm_def_ph S23rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cterm_def_ph,Cterm_def_ph::rhs1_Rpotential_code_blk_}
+ }// end of reduce table
+};
+yacco2::State S23_Cterm_def_ph = //State's vectored into symbol: "Rlint"
+{23
+,0,0,0,0,(Shift_tbl*)&S23st_Cterm_def_ph,(Reduce_tbl*)&S23rt_Cterm_def_ph,0,0,0};
+struct S24std_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S24std_Cterm_def_ph S24st_Cterm_def_ph = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S29_Cterm_def_ph} // shift sym: LR1_parallel_operator
+ ,{584,(State*)&S25_Cterm_def_ph} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S24pse_Cterm_def_ph = {3,(State*)&S29_Cterm_def_ph};
+struct S24rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S24rtd_Cterm_def_ph S24rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cterm_def_ph,Cterm_def_ph::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S24_Cterm_def_ph = //State's vectored into symbol: "Rpotential_code_blk"
+{24
+,(Shift_entry*)&S24pse_Cterm_def_ph,0,0,0,(Shift_tbl*)&S24st_Cterm_def_ph,(Reduce_tbl*)&S24rt_Cterm_def_ph,(State_s_thread_tbl*)&S29tt_Cterm_def_ph,0,0};
+struct S25std_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S25std_Cterm_def_ph S25st_Cterm_def_ph = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S26_Cterm_def_ph} // shift sym: LR1_questionable_shift_operator
+ ,{49,(State*)&S27_Cterm_def_ph} // shift sym: raw_close_bracket
+ ,{579,(State*)&S28_Cterm_def_ph} // shift sym: Rclose_par
+ }// end of shift table
+};
+yacco2::Shift_entry S25qse_Cterm_def_ph = {0,(State*)&S26_Cterm_def_ph};
+yacco2::State S25_Cterm_def_ph = //State's vectored into symbol: "Rlint"
+{25
+,0,0,0,0,(Shift_tbl*)&S25st_Cterm_def_ph,0,0,0,(Shift_entry*)&S25qse_Cterm_def_ph
+};
+struct S26rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S26rtd_Cterm_def_ph S26rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cterm_def_ph,Cterm_def_ph::rhs1_Rclose_par_}
+ }// end of reduce table
+};
+yacco2::State S26_Cterm_def_ph = //State's vectored into symbol: "|?|"
+{26
+,0,0,0,0,0,(Reduce_tbl*)&S26rt_Cterm_def_ph,0,0,0};
+struct S27rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S27rtd_Cterm_def_ph S27rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cterm_def_ph,Cterm_def_ph::rhs2_Rclose_par_}
+ }// end of reduce table
+};
+yacco2::State S27_Cterm_def_ph = //State's vectored into symbol: ")"
+{27
+,0,0,0,0,0,(Reduce_tbl*)&S27rt_Cterm_def_ph,0,0,0};
+struct S28std_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S28std_Cterm_def_ph S28st_Cterm_def_ph = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S29_Cterm_def_ph} // shift sym: LR1_parallel_operator
+ ,{584,(State*)&S30_Cterm_def_ph} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S28pse_Cterm_def_ph = {3,(State*)&S29_Cterm_def_ph};
+struct S28rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S28rtd_Cterm_def_ph S28rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cterm_def_ph,Cterm_def_ph::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S28_Cterm_def_ph = //State's vectored into symbol: "Rclose_par"
+{28
+,(Shift_entry*)&S28pse_Cterm_def_ph,0,0,0,(Shift_tbl*)&S28st_Cterm_def_ph,(Reduce_tbl*)&S28rt_Cterm_def_ph,(State_s_thread_tbl*)&S29tt_Cterm_def_ph,0,0};
+struct S29std_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S29std_Cterm_def_ph S29st_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {375,(State*)&S16_Cterm_def_ph} // shift sym: T_lint
+ }// end of shift table
+};
+yacco2::State S29_Cterm_def_ph = //State's vectored into symbol: "|||"
+{29
+,0,0,0,0,(Shift_tbl*)&S29st_Cterm_def_ph,0,0,0,0};
+struct S30rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S30rtd_Cterm_def_ph S30rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cterm_def_ph,Cterm_def_ph::rhs1_Rterminal_def_phrase_}
+ }// end of reduce table
+};
+yacco2::State S30_Cterm_def_ph = //State's vectored into symbol: "Rlint"
+{30
+,0,0,0,0,0,(Reduce_tbl*)&S30rt_Cterm_def_ph,0,0,0};
+struct S31std_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S31std_Cterm_def_ph S31st_Cterm_def_ph = {
+ 2
+ ,
+ {// start of table
+ {285,(State*)&S14_Cterm_def_ph} // shift sym: T_AD
+ ,{286,(State*)&S15_Cterm_def_ph} // shift sym: T_AB
+ }// end of shift table
+};
+yacco2::State S31_Cterm_def_ph = //State's vectored into symbol: "|||"
+{31
+,0,0,0,0,(Shift_tbl*)&S31st_Cterm_def_ph,0,0,0,0};
+struct S32std_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S32std_Cterm_def_ph S32st_Cterm_def_ph = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S29_Cterm_def_ph} // shift sym: LR1_parallel_operator
+ ,{584,(State*)&S33_Cterm_def_ph} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S32pse_Cterm_def_ph = {3,(State*)&S29_Cterm_def_ph};
+struct S32rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S32rtd_Cterm_def_ph S32rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cterm_def_ph,Cterm_def_ph::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S32_Cterm_def_ph = //State's vectored into symbol: "Rad_ab_tag"
+{32
+,(Shift_entry*)&S32pse_Cterm_def_ph,0,0,0,(Shift_tbl*)&S32st_Cterm_def_ph,(Reduce_tbl*)&S32rt_Cterm_def_ph,(State_s_thread_tbl*)&S29tt_Cterm_def_ph,0,0};
+struct S33rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S33rtd_Cterm_def_ph S33rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cterm_def_ph,Cterm_def_ph::rhs2_Rad_ab_tags_}
+ }// end of reduce table
+};
+yacco2::State S33_Cterm_def_ph = //State's vectored into symbol: "Rlint"
+{33
+,0,0,0,0,0,(Reduce_tbl*)&S33rt_Cterm_def_ph,0,0,0};
+struct S34std_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S34std_Cterm_def_ph S34st_Cterm_def_ph = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S29_Cterm_def_ph} // shift sym: LR1_parallel_operator
+ ,{584,(State*)&S35_Cterm_def_ph} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S34pse_Cterm_def_ph = {3,(State*)&S29_Cterm_def_ph};
+struct S34rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S34rtd_Cterm_def_ph S34rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cterm_def_ph,Cterm_def_ph::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S34_Cterm_def_ph = //State's vectored into symbol: "Rad_ab_tag"
+{34
+,(Shift_entry*)&S34pse_Cterm_def_ph,0,0,0,(Shift_tbl*)&S34st_Cterm_def_ph,(Reduce_tbl*)&S34rt_Cterm_def_ph,(State_s_thread_tbl*)&S29tt_Cterm_def_ph,0,0};
+struct S35rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S35rtd_Cterm_def_ph S35rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cterm_def_ph,Cterm_def_ph::rhs1_Rad_ab_tags_}
+ }// end of reduce table
+};
+yacco2::State S35_Cterm_def_ph = //State's vectored into symbol: "Rlint"
+{35
+,0,0,0,0,0,(Reduce_tbl*)&S35rt_Cterm_def_ph,0,0,0};
+struct S36std_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S36std_Cterm_def_ph S36st_Cterm_def_ph = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S37_Cterm_def_ph} // shift sym: LR1_questionable_shift_operator
+ ,{372,(State*)&S38_Cterm_def_ph} // shift sym: T_cweb_comment
+ }// end of shift table
+};
+yacco2::Shift_entry S36qse_Cterm_def_ph = {0,(State*)&S37_Cterm_def_ph};
+yacco2::State S36_Cterm_def_ph = //State's vectored into symbol: "|||"
+{36
+,0,0,0,0,(Shift_tbl*)&S36st_Cterm_def_ph,0,0,0,(Shift_entry*)&S36qse_Cterm_def_ph
+};
+struct S37rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S37rtd_Cterm_def_ph S37rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cterm_def_ph,Cterm_def_ph::rhs3_Rsym_cweb_k_}
+ }// end of reduce table
+};
+yacco2::State S37_Cterm_def_ph = //State's vectored into symbol: "|?|"
+{37
+,0,0,0,0,0,(Reduce_tbl*)&S37rt_Cterm_def_ph,0,0,0};
+struct S38rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S38rtd_Cterm_def_ph S38rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cterm_def_ph,Cterm_def_ph::rhs2_Rsym_cweb_k_}
+ }// end of reduce table
+};
+yacco2::State S38_Cterm_def_ph = //State's vectored into symbol: "cweb-comment"
+{38
+,0,0,0,0,0,(Reduce_tbl*)&S38rt_Cterm_def_ph,0,0,0};
+struct S39rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S39rtd_Cterm_def_ph S39rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cterm_def_ph,Cterm_def_ph::rhs1_Ropen_par_}
+ }// end of reduce table
+};
+yacco2::State S39_Cterm_def_ph = //State's vectored into symbol: "|?|"
+{39
+,0,0,0,0,0,(Reduce_tbl*)&S39rt_Cterm_def_ph,0,0,0};
+struct S40rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S40rtd_Cterm_def_ph S40rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cterm_def_ph,Cterm_def_ph::rhs2_Ropen_par_}
+ }// end of reduce table
+};
+yacco2::State S40_Cterm_def_ph = //State's vectored into symbol: "("
+{40
+,0,0,0,0,0,(Reduce_tbl*)&S40rt_Cterm_def_ph,0,0,0};
+struct S41rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S41rtd_Cterm_def_ph S41rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cterm_def_ph,Cterm_def_ph::rhs2_Rsym_class_}
+ }// end of reduce table
+};
+yacco2::State S41_Cterm_def_ph = //State's vectored into symbol: "|?|"
+{41
+,0,0,0,0,0,(Reduce_tbl*)&S41rt_Cterm_def_ph,0,0,0};
+struct S42std_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S42std_Cterm_def_ph S42st_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {305,(State*)&S43_Cterm_def_ph} // shift sym: T_sym_class
+ }// end of shift table
+};
+yacco2::State S42_Cterm_def_ph = //State's vectored into symbol: "|||"
+{42
+,0,0,0,0,(Shift_tbl*)&S42st_Cterm_def_ph,0,0,0,0};
+struct S43rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S43rtd_Cterm_def_ph S43rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cterm_def_ph,Cterm_def_ph::rhs1_Rsym_class_}
+ }// end of reduce table
+};
+yacco2::State S43_Cterm_def_ph = //State's vectored into symbol: "#sym-class"
+{43
+,0,0,0,0,0,(Reduce_tbl*)&S43rt_Cterm_def_ph,0,0,0};
+struct S44std_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S44std_Cterm_def_ph S44st_Cterm_def_ph = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S29_Cterm_def_ph} // shift sym: LR1_parallel_operator
+ ,{584,(State*)&S45_Cterm_def_ph} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S44pse_Cterm_def_ph = {3,(State*)&S29_Cterm_def_ph};
+struct S44rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S44rtd_Cterm_def_ph S44rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cterm_def_ph,Cterm_def_ph::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S44_Cterm_def_ph = //State's vectored into symbol: "Rsym_class"
+{44
+,(Shift_entry*)&S44pse_Cterm_def_ph,0,0,0,(Shift_tbl*)&S44st_Cterm_def_ph,(Reduce_tbl*)&S44rt_Cterm_def_ph,(State_s_thread_tbl*)&S29tt_Cterm_def_ph,0,0};
+struct S45std_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S45std_Cterm_def_ph S45st_Cterm_def_ph = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S46_Cterm_def_ph} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S47_Cterm_def_ph} // shift sym: LR1_parallel_operator
+ ,{576,(State*)&S50_Cterm_def_ph} // shift sym: Rsym_class_id
+ }// end of shift table
+};
+yacco2::Shift_entry S45pse_Cterm_def_ph = {3,(State*)&S47_Cterm_def_ph};
+yacco2::Shift_entry S45qse_Cterm_def_ph = {0,(State*)&S46_Cterm_def_ph};
+yacco2::State S45_Cterm_def_ph = //State's vectored into symbol: "Rlint"
+{45
+,(Shift_entry*)&S45pse_Cterm_def_ph,0,0,0,(Shift_tbl*)&S45st_Cterm_def_ph,0,(State_s_thread_tbl*)&S47tt_Cterm_def_ph,0,(Shift_entry*)&S45qse_Cterm_def_ph
+};
+struct S46rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S46rtd_Cterm_def_ph S46rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cterm_def_ph,Cterm_def_ph::rhs3_Rsym_class_id_}
+ }// end of reduce table
+};
+yacco2::State S46_Cterm_def_ph = //State's vectored into symbol: "|?|"
+{46
+,0,0,0,0,0,(Reduce_tbl*)&S46rt_Cterm_def_ph,0,0,0};
+struct S47std_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S47std_Cterm_def_ph S47st_Cterm_def_ph = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S48_Cterm_def_ph} // shift sym: LR1_questionable_shift_operator
+ ,{279,(State*)&S49_Cterm_def_ph} // shift sym: T_identifier
+ }// end of shift table
+};
+yacco2::Shift_entry S47qse_Cterm_def_ph = {0,(State*)&S48_Cterm_def_ph};
+yacco2::State S47_Cterm_def_ph = //State's vectored into symbol: "|||"
+{47
+,0,0,0,0,(Shift_tbl*)&S47st_Cterm_def_ph,0,0,0,(Shift_entry*)&S47qse_Cterm_def_ph
+};
+struct S48rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S48rtd_Cterm_def_ph S48rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cterm_def_ph,Cterm_def_ph::rhs2_Rsym_class_id_}
+ }// end of reduce table
+};
+yacco2::State S48_Cterm_def_ph = //State's vectored into symbol: "|?|"
+{48
+,0,0,0,0,0,(Reduce_tbl*)&S48rt_Cterm_def_ph,0,0,0};
+struct S49rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S49rtd_Cterm_def_ph S49rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cterm_def_ph,Cterm_def_ph::rhs1_Rsym_class_id_}
+ }// end of reduce table
+};
+yacco2::State S49_Cterm_def_ph = //State's vectored into symbol: "identifier"
+{49
+,0,0,0,0,0,(Reduce_tbl*)&S49rt_Cterm_def_ph,0,0,0};
+struct S50rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S50rtd_Cterm_def_ph S50rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cterm_def_ph,Cterm_def_ph::rhs1_Rsym_class_phrase_}
+ }// end of reduce table
+};
+yacco2::State S50_Cterm_def_ph = //State's vectored into symbol: "Rsym_class_id"
+{50
+,0,0,0,0,0,(Reduce_tbl*)&S50rt_Cterm_def_ph,0,0,0};
+struct S51std_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S51std_Cterm_def_ph S51st_Cterm_def_ph = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S29_Cterm_def_ph} // shift sym: LR1_parallel_operator
+ ,{584,(State*)&S52_Cterm_def_ph} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S51pse_Cterm_def_ph = {3,(State*)&S29_Cterm_def_ph};
+struct S51rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S51rtd_Cterm_def_ph S51rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA8_Cterm_def_ph,Cterm_def_ph::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S51_Cterm_def_ph = //State's vectored into symbol: "{"
+{51
+,(Shift_entry*)&S51pse_Cterm_def_ph,0,0,0,(Shift_tbl*)&S51st_Cterm_def_ph,(Reduce_tbl*)&S51rt_Cterm_def_ph,(State_s_thread_tbl*)&S29tt_Cterm_def_ph,0,0};
+struct S52std_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S52std_Cterm_def_ph S52st_Cterm_def_ph = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S65_Cterm_def_ph} // shift sym: LR1_parallel_operator
+ ,{581,(State*)&S53_Cterm_def_ph} // shift sym: Rdirectives
+ ,{582,(State*)&S72_Cterm_def_ph} // shift sym: Rdirective
+ }// end of shift table
+};
+yacco2::Shift_entry S52pse_Cterm_def_ph = {3,(State*)&S65_Cterm_def_ph};
+yacco2::State S52_Cterm_def_ph = //State's vectored into symbol: "Rlint"
+{52
+,(Shift_entry*)&S52pse_Cterm_def_ph,0,0,0,(Shift_tbl*)&S52st_Cterm_def_ph,0,(State_s_thread_tbl*)&S65tt_Cterm_def_ph,0,0};
+struct S53std_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S53std_Cterm_def_ph S53st_Cterm_def_ph = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S75_Cterm_def_ph} // shift sym: LR1_parallel_operator
+ ,{582,(State*)&S54_Cterm_def_ph} // shift sym: Rdirective
+ ,{584,(State*)&S60_Cterm_def_ph} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S53pse_Cterm_def_ph = {3,(State*)&S75_Cterm_def_ph};
+struct S53rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S53rtd_Cterm_def_ph S53rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA9_Cterm_def_ph,Cterm_def_ph::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S53_Cterm_def_ph = //State's vectored into symbol: "Rdirectives"
+{53
+,(Shift_entry*)&S53pse_Cterm_def_ph,0,0,0,(Shift_tbl*)&S53st_Cterm_def_ph,(Reduce_tbl*)&S53rt_Cterm_def_ph,(State_s_thread_tbl*)&S75tt_Cterm_def_ph,0,0};
+struct S54std_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S54std_Cterm_def_ph S54st_Cterm_def_ph = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S55_Cterm_def_ph} // shift sym: LR1_parallel_operator
+ ,{583,(State*)&S58_Cterm_def_ph} // shift sym: Rsyntax_code
+ }// end of shift table
+};
+yacco2::Shift_entry S54pse_Cterm_def_ph = {3,(State*)&S55_Cterm_def_ph};
+yacco2::State S54_Cterm_def_ph = //State's vectored into symbol: "Rdirective"
+{54
+,(Shift_entry*)&S54pse_Cterm_def_ph,0,0,0,(Shift_tbl*)&S54st_Cterm_def_ph,0,(State_s_thread_tbl*)&S55tt_Cterm_def_ph,0,0};
+struct S55std_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S55std_Cterm_def_ph S55st_Cterm_def_ph = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S56_Cterm_def_ph} // shift sym: LR1_questionable_shift_operator
+ ,{326,(State*)&S57_Cterm_def_ph} // shift sym: T_syntax_code
+ }// end of shift table
+};
+yacco2::Shift_entry S55qse_Cterm_def_ph = {0,(State*)&S56_Cterm_def_ph};
+yacco2::State S55_Cterm_def_ph = //State's vectored into symbol: "|||"
+{55
+,0,0,0,0,(Shift_tbl*)&S55st_Cterm_def_ph,0,0,0,(Shift_entry*)&S55qse_Cterm_def_ph
+};
+struct S56rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S56rtd_Cterm_def_ph S56rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA10_Cterm_def_ph,Cterm_def_ph::rhs2_Rsyntax_code_}
+ }// end of reduce table
+};
+yacco2::State S56_Cterm_def_ph = //State's vectored into symbol: "|?|"
+{56
+,0,0,0,0,0,(Reduce_tbl*)&S56rt_Cterm_def_ph,0,0,0};
+struct S57rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S57rtd_Cterm_def_ph S57rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA10_Cterm_def_ph,Cterm_def_ph::rhs1_Rsyntax_code_}
+ }// end of reduce table
+};
+yacco2::State S57_Cterm_def_ph = //State's vectored into symbol: "syntax-code"
+{57
+,0,0,0,0,0,(Reduce_tbl*)&S57rt_Cterm_def_ph,0,0,0};
+struct S58std_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S58std_Cterm_def_ph S58st_Cterm_def_ph = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S29_Cterm_def_ph} // shift sym: LR1_parallel_operator
+ ,{584,(State*)&S59_Cterm_def_ph} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S58pse_Cterm_def_ph = {3,(State*)&S29_Cterm_def_ph};
+struct S58rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S58rtd_Cterm_def_ph S58rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA10_Cterm_def_ph,Cterm_def_ph::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S58_Cterm_def_ph = //State's vectored into symbol: "Rsyntax_code"
+{58
+,(Shift_entry*)&S58pse_Cterm_def_ph,0,0,0,(Shift_tbl*)&S58st_Cterm_def_ph,(Reduce_tbl*)&S58rt_Cterm_def_ph,(State_s_thread_tbl*)&S29tt_Cterm_def_ph,0,0};
+struct S59rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S59rtd_Cterm_def_ph S59rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA10_Cterm_def_ph,Cterm_def_ph::rhs2_Rdirectives_}
+ }// end of reduce table
+};
+yacco2::State S59_Cterm_def_ph = //State's vectored into symbol: "Rlint"
+{59
+,0,0,0,0,0,(Reduce_tbl*)&S59rt_Cterm_def_ph,0,0,0};
+struct S60std_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S60std_Cterm_def_ph S60st_Cterm_def_ph = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S61_Cterm_def_ph} // shift sym: LR1_questionable_shift_operator
+ ,{133,(State*)&S62_Cterm_def_ph} // shift sym: raw_close_brace
+ ,{580,(State*)&S63_Cterm_def_ph} // shift sym: Rclosing_brace
+ }// end of shift table
+};
+yacco2::Shift_entry S60qse_Cterm_def_ph = {0,(State*)&S61_Cterm_def_ph};
+yacco2::State S60_Cterm_def_ph = //State's vectored into symbol: "Rlint"
+{60
+,0,0,0,0,(Shift_tbl*)&S60st_Cterm_def_ph,0,0,0,(Shift_entry*)&S60qse_Cterm_def_ph
+};
+struct S61rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S61rtd_Cterm_def_ph S61rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cterm_def_ph,Cterm_def_ph::rhs1_Rclosing_brace_}
+ }// end of reduce table
+};
+yacco2::State S61_Cterm_def_ph = //State's vectored into symbol: "|?|"
+{61
+,0,0,0,0,0,(Reduce_tbl*)&S61rt_Cterm_def_ph,0,0,0};
+struct S62rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S62rtd_Cterm_def_ph S62rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cterm_def_ph,Cterm_def_ph::rhs2_Rclosing_brace_}
+ }// end of reduce table
+};
+yacco2::State S62_Cterm_def_ph = //State's vectored into symbol: "}"
+{62
+,0,0,0,0,0,(Reduce_tbl*)&S62rt_Cterm_def_ph,0,0,0};
+struct S63std_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S63std_Cterm_def_ph S63st_Cterm_def_ph = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S29_Cterm_def_ph} // shift sym: LR1_parallel_operator
+ ,{584,(State*)&S64_Cterm_def_ph} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S63pse_Cterm_def_ph = {3,(State*)&S29_Cterm_def_ph};
+struct S63rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S63rtd_Cterm_def_ph S63rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cterm_def_ph,Cterm_def_ph::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S63_Cterm_def_ph = //State's vectored into symbol: "Rclosing_brace"
+{63
+,(Shift_entry*)&S63pse_Cterm_def_ph,0,0,0,(Shift_tbl*)&S63st_Cterm_def_ph,(Reduce_tbl*)&S63rt_Cterm_def_ph,(State_s_thread_tbl*)&S29tt_Cterm_def_ph,0,0};
+struct S64rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S64rtd_Cterm_def_ph S64rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cterm_def_ph,Cterm_def_ph::rhs2_Rpotential_code_blk_}
+ }// end of reduce table
+};
+yacco2::State S64_Cterm_def_ph = //State's vectored into symbol: "Rlint"
+{64
+,0,0,0,0,0,(Reduce_tbl*)&S64rt_Cterm_def_ph,0,0,0};
+struct S65std_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[6];
+};
+S65std_Cterm_def_ph S65st_Cterm_def_ph = {
+ 6
+ ,
+ {// start of table
+ {0,(State*)&S66_Cterm_def_ph} // shift sym: LR1_questionable_shift_operator
+ ,{308,(State*)&S67_Cterm_def_ph} // shift sym: T_user_declaration
+ ,{311,(State*)&S68_Cterm_def_ph} // shift sym: T_constructor
+ ,{312,(State*)&S69_Cterm_def_ph} // shift sym: T_destructor
+ ,{313,(State*)&S70_Cterm_def_ph} // shift sym: T_op
+ ,{315,(State*)&S71_Cterm_def_ph} // shift sym: T_user_implementation
+ }// end of shift table
+};
+yacco2::Shift_entry S65qse_Cterm_def_ph = {0,(State*)&S66_Cterm_def_ph};
+yacco2::State S65_Cterm_def_ph = //State's vectored into symbol: "|||"
+{65
+,0,0,0,0,(Shift_tbl*)&S65st_Cterm_def_ph,0,0,0,(Shift_entry*)&S65qse_Cterm_def_ph
+};
+struct S66rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S66rtd_Cterm_def_ph S66rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA8_Cterm_def_ph,Cterm_def_ph::rhs6_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S66_Cterm_def_ph = //State's vectored into symbol: "|?|"
+{66
+,0,0,0,0,0,(Reduce_tbl*)&S66rt_Cterm_def_ph,0,0,0};
+struct S67rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S67rtd_Cterm_def_ph S67rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA8_Cterm_def_ph,Cterm_def_ph::rhs1_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S67_Cterm_def_ph = //State's vectored into symbol: "#user-declaration"
+{67
+,0,0,0,0,0,(Reduce_tbl*)&S67rt_Cterm_def_ph,0,0,0};
+struct S68rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S68rtd_Cterm_def_ph S68rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA8_Cterm_def_ph,Cterm_def_ph::rhs3_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S68_Cterm_def_ph = //State's vectored into symbol: "#constructor"
+{68
+,0,0,0,0,0,(Reduce_tbl*)&S68rt_Cterm_def_ph,0,0,0};
+struct S69rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S69rtd_Cterm_def_ph S69rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA8_Cterm_def_ph,Cterm_def_ph::rhs4_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S69_Cterm_def_ph = //State's vectored into symbol: "#destructor"
+{69
+,0,0,0,0,0,(Reduce_tbl*)&S69rt_Cterm_def_ph,0,0,0};
+struct S70rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S70rtd_Cterm_def_ph S70rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA8_Cterm_def_ph,Cterm_def_ph::rhs5_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S70_Cterm_def_ph = //State's vectored into symbol: "#op"
+{70
+,0,0,0,0,0,(Reduce_tbl*)&S70rt_Cterm_def_ph,0,0,0};
+struct S71rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S71rtd_Cterm_def_ph S71rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA8_Cterm_def_ph,Cterm_def_ph::rhs2_Rdirective_}
+ }// end of reduce table
+};
+yacco2::State S71_Cterm_def_ph = //State's vectored into symbol: "#user-implementation"
+{71
+,0,0,0,0,0,(Reduce_tbl*)&S71rt_Cterm_def_ph,0,0,0};
+struct S72std_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S72std_Cterm_def_ph S72st_Cterm_def_ph = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S55_Cterm_def_ph} // shift sym: LR1_parallel_operator
+ ,{583,(State*)&S73_Cterm_def_ph} // shift sym: Rsyntax_code
+ }// end of shift table
+};
+yacco2::Shift_entry S72pse_Cterm_def_ph = {3,(State*)&S55_Cterm_def_ph};
+yacco2::State S72_Cterm_def_ph = //State's vectored into symbol: "Rdirective"
+{72
+,(Shift_entry*)&S72pse_Cterm_def_ph,0,0,0,(Shift_tbl*)&S72st_Cterm_def_ph,0,(State_s_thread_tbl*)&S55tt_Cterm_def_ph,0,0};
+struct S73std_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S73std_Cterm_def_ph S73st_Cterm_def_ph = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S29_Cterm_def_ph} // shift sym: LR1_parallel_operator
+ ,{584,(State*)&S74_Cterm_def_ph} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S73pse_Cterm_def_ph = {3,(State*)&S29_Cterm_def_ph};
+struct S73rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S73rtd_Cterm_def_ph S73rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA10_Cterm_def_ph,Cterm_def_ph::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S73_Cterm_def_ph = //State's vectored into symbol: "Rsyntax_code"
+{73
+,(Shift_entry*)&S73pse_Cterm_def_ph,0,0,0,(Shift_tbl*)&S73st_Cterm_def_ph,(Reduce_tbl*)&S73rt_Cterm_def_ph,(State_s_thread_tbl*)&S29tt_Cterm_def_ph,0,0};
+struct S74rtd_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S74rtd_Cterm_def_ph S74rt_Cterm_def_ph = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA10_Cterm_def_ph,Cterm_def_ph::rhs1_Rdirectives_}
+ }// end of reduce table
+};
+yacco2::State S74_Cterm_def_ph = //State's vectored into symbol: "Rlint"
+{74
+,0,0,0,0,0,(Reduce_tbl*)&S74rt_Cterm_def_ph,0,0,0};
+struct S75std_Cterm_def_ph{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[7];
+};
+S75std_Cterm_def_ph S75st_Cterm_def_ph = {
+ 7
+ ,
+ {// start of table
+ {0,(State*)&S66_Cterm_def_ph} // shift sym: LR1_questionable_shift_operator
+ ,{308,(State*)&S67_Cterm_def_ph} // shift sym: T_user_declaration
+ ,{311,(State*)&S68_Cterm_def_ph} // shift sym: T_constructor
+ ,{312,(State*)&S69_Cterm_def_ph} // shift sym: T_destructor
+ ,{313,(State*)&S70_Cterm_def_ph} // shift sym: T_op
+ ,{315,(State*)&S71_Cterm_def_ph} // shift sym: T_user_implementation
+ ,{375,(State*)&S16_Cterm_def_ph} // shift sym: T_lint
+ }// end of shift table
+};
+yacco2::Shift_entry S75qse_Cterm_def_ph = {0,(State*)&S66_Cterm_def_ph};
+yacco2::State S75_Cterm_def_ph = //State's vectored into symbol: "|||"
+{75
+,0,0,0,0,(Shift_tbl*)&S75st_Cterm_def_ph,0,0,0,(Shift_entry*)&S75qse_Cterm_def_ph
+};
diff --git a/web/yacco2/compiler/grammars/terminal_def_symclass.cpp b/web/yacco2/compiler/grammars/terminal_def_symclass.cpp
new file mode 100644
index 0000000000..0665d0bc0b
--- /dev/null
+++ b/web/yacco2/compiler/grammars/terminal_def_symclass.cpp
@@ -0,0 +1,170 @@
+/*
+ File: terminal_def_symclass.cpp
+ Date and Time: Fri Jan 30 18:55:26 2015
+*/
+#include "terminal_def_symclass.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_terminal_def_symclass;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 7;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[4] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[5] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[6] = new Per_rule_s_reuse_table();
+}
+ Cterminal_def_symclass::
+ Cterminal_def_symclass()
+ :yacco2::CAbs_fsm
+ ("terminal_def_symclass.lex"
+ ,"1.0"
+ ,"29 mar 2004"
+ ,false
+ ,"Lexer of ``sym-class'' keyword."
+ ,"Fri Jan 30 18:55:26 2015 "
+ ,S1_Cterminal_def_symclass){
+
+ }
+
+Cterminal_def_symclass::~Cterminal_def_symclass(){
+
+ for(int x = 0;x < 7;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cterminal_def_symclass::failed(){
+ return false;
+ }
+ void Cterminal_def_symclass::op(){
+}
+int Cterminal_def_symclass::rhs_to_rules_mapping_[71] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,1 // subrule 4 for rule 2
+ ,1 // subrule 5 for rule 2
+ ,1 // subrule 6 for rule 2
+ ,1 // subrule 7 for rule 2
+ ,1 // subrule 8 for rule 2
+ ,2 // subrule 9 for rule 3
+ ,2 // subrule 10 for rule 3
+ ,2 // subrule 11 for rule 3
+ ,2 // subrule 12 for rule 3
+ ,2 // subrule 13 for rule 3
+ ,2 // subrule 14 for rule 3
+ ,2 // subrule 15 for rule 3
+ ,2 // subrule 16 for rule 3
+ ,2 // subrule 17 for rule 3
+ ,2 // subrule 18 for rule 3
+ ,2 // subrule 19 for rule 3
+ ,2 // subrule 20 for rule 3
+ ,2 // subrule 21 for rule 3
+ ,3 // subrule 22 for rule 4
+ ,3 // subrule 23 for rule 4
+ ,3 // subrule 24 for rule 4
+ ,3 // subrule 25 for rule 4
+ ,3 // subrule 26 for rule 4
+ ,3 // subrule 27 for rule 4
+ ,3 // subrule 28 for rule 4
+ ,3 // subrule 29 for rule 4
+ ,3 // subrule 30 for rule 4
+ ,3 // subrule 31 for rule 4
+ ,3 // subrule 32 for rule 4
+ ,3 // subrule 33 for rule 4
+ ,3 // subrule 34 for rule 4
+ ,4 // subrule 35 for rule 5
+ ,4 // subrule 36 for rule 5
+ ,4 // subrule 37 for rule 5
+ ,4 // subrule 38 for rule 5
+ ,4 // subrule 39 for rule 5
+ ,4 // subrule 40 for rule 5
+ ,4 // subrule 41 for rule 5
+ ,4 // subrule 42 for rule 5
+ ,4 // subrule 43 for rule 5
+ ,4 // subrule 44 for rule 5
+ ,4 // subrule 45 for rule 5
+ ,4 // subrule 46 for rule 5
+ ,4 // subrule 47 for rule 5
+ ,5 // subrule 48 for rule 6
+ ,5 // subrule 49 for rule 6
+ ,5 // subrule 50 for rule 6
+ ,5 // subrule 51 for rule 6
+ ,5 // subrule 52 for rule 6
+ ,5 // subrule 53 for rule 6
+ ,5 // subrule 54 for rule 6
+ ,5 // subrule 55 for rule 6
+ ,5 // subrule 56 for rule 6
+ ,5 // subrule 57 for rule 6
+ ,5 // subrule 58 for rule 6
+ ,5 // subrule 59 for rule 6
+ ,5 // subrule 60 for rule 6
+ ,6 // subrule 61 for rule 7
+ ,6 // subrule 62 for rule 7
+ ,6 // subrule 63 for rule 7
+ ,6 // subrule 64 for rule 7
+ ,6 // subrule 65 for rule 7
+ ,6 // subrule 66 for rule 7
+ ,6 // subrule 67 for rule 7
+ ,6 // subrule 68 for rule 7
+ ,6 // subrule 69 for rule 7
+ ,6 // subrule 70 for rule 7
+};
+Rterminal_def_symclass::Rterminal_def_symclass(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rterminal_def_symclass",0,Cterminal_def_symclass::R_Rterminal_def_symclass_,P,false,false){
+}
+
+void Rterminal_def_symclass::op(){
+ sstrace_rulesss
+
+ rtn_sym_->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(rtn_sym_);
+ rtn_sym_ = 0;
+
+}
+void Rterminal_def_symclass::sr1(){
+
+ rtn_sym_ = new T_sym_class;
+
+}
+
+Rminus_la::Rminus_la(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rminus_la",0,Cterminal_def_symclass::R_Rminus_la_,P,false,false){
+}
+
+RUPPER_A_M::RUPPER_A_M(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("RUPPER_A_M",0,Cterminal_def_symclass::R_RUPPER_A_M_,P,false,false){
+}
+
+RUPPER_N_Z::RUPPER_N_Z(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("RUPPER_N_Z",0,Cterminal_def_symclass::R_RUPPER_N_Z_,P,false,false){
+}
+
+Rlower_a_m::Rlower_a_m(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlower_a_m",0,Cterminal_def_symclass::R_Rlower_a_m_,P,false,false){
+}
+
+Rlower_n_z::Rlower_n_z(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlower_n_z",0,Cterminal_def_symclass::R_Rlower_n_z_,P,false,false){
+}
+
+RNUMBERS::RNUMBERS(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("RNUMBERS",0,Cterminal_def_symclass::R_RNUMBERS_,P,false,false){
+}
+
diff --git a/web/yacco2/compiler/grammars/terminal_def_symclass.fsc b/web/yacco2/compiler/grammars/terminal_def_symclass.fsc
new file mode 100644
index 0000000000..190f801a39
--- /dev/null
+++ b/web/yacco2/compiler/grammars/terminal_def_symclass.fsc
@@ -0,0 +1,20 @@
+/*
+ File: terminal_def_symclass.fsc
+ Date and Time: Fri Jan 30 18:55:26 2015
+*/
+transitive n
+grammar-name "terminal_def_symclass"
+name-space "NS_terminal_def_symclass"
+thread-name "TH_terminal_def_symclass"
+monolithic n
+file-name "terminal_def_symclass.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ raw_s
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"Lexer of ``sym-class'' keyword."
diff --git a/web/yacco2/compiler/grammars/terminal_def_symclass.h b/web/yacco2/compiler/grammars/terminal_def_symclass.h
new file mode 100644
index 0000000000..8a525f8700
--- /dev/null
+++ b/web/yacco2/compiler/grammars/terminal_def_symclass.h
@@ -0,0 +1,171 @@
+/*
+ File: terminal_def_symclass.h
+ Date and Time: Fri Jan 30 18:55:26 2015
+*/
+#ifndef __terminal_def_symclass_h__
+#define __terminal_def_symclass_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+extern yacco2::Thread_entry ITH_terminal_def_symclass;
+
+extern yacco2::State S1_Cterminal_def_symclass;
+namespace NS_terminal_def_symclass {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_terminal_def_symclass(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_terminal_def_symclass(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[7];
+};
+class Cterminal_def_symclass: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rterminal_def_symclass_ = 569//start_of_rule_list + 0
+ ,rhs1_Rterminal_def_symclass_ = 1
+ ,R_Rminus_la_ = 570//start_of_rule_list + 2
+ ,rhs1_Rminus_la_ = 2
+ ,rhs2_Rminus_la_ = 3
+ ,rhs3_Rminus_la_ = 4
+ ,rhs4_Rminus_la_ = 5
+ ,rhs5_Rminus_la_ = 6
+ ,rhs6_Rminus_la_ = 7
+ ,rhs7_Rminus_la_ = 8
+ ,R_RUPPER_A_M_ = 571//start_of_rule_list + 4
+ ,rhs1_RUPPER_A_M_ = 9
+ ,rhs2_RUPPER_A_M_ = 10
+ ,rhs3_RUPPER_A_M_ = 11
+ ,rhs4_RUPPER_A_M_ = 12
+ ,rhs5_RUPPER_A_M_ = 13
+ ,rhs6_RUPPER_A_M_ = 14
+ ,rhs7_RUPPER_A_M_ = 15
+ ,rhs8_RUPPER_A_M_ = 16
+ ,rhs9_RUPPER_A_M_ = 17
+ ,rhs10_RUPPER_A_M_ = 18
+ ,rhs11_RUPPER_A_M_ = 19
+ ,rhs12_RUPPER_A_M_ = 20
+ ,rhs13_RUPPER_A_M_ = 21
+ ,R_RUPPER_N_Z_ = 572//start_of_rule_list + 6
+ ,rhs1_RUPPER_N_Z_ = 22
+ ,rhs2_RUPPER_N_Z_ = 23
+ ,rhs3_RUPPER_N_Z_ = 24
+ ,rhs4_RUPPER_N_Z_ = 25
+ ,rhs5_RUPPER_N_Z_ = 26
+ ,rhs6_RUPPER_N_Z_ = 27
+ ,rhs7_RUPPER_N_Z_ = 28
+ ,rhs8_RUPPER_N_Z_ = 29
+ ,rhs9_RUPPER_N_Z_ = 30
+ ,rhs10_RUPPER_N_Z_ = 31
+ ,rhs11_RUPPER_N_Z_ = 32
+ ,rhs12_RUPPER_N_Z_ = 33
+ ,rhs13_RUPPER_N_Z_ = 34
+ ,R_Rlower_a_m_ = 573//start_of_rule_list + 8
+ ,rhs1_Rlower_a_m_ = 35
+ ,rhs2_Rlower_a_m_ = 36
+ ,rhs3_Rlower_a_m_ = 37
+ ,rhs4_Rlower_a_m_ = 38
+ ,rhs5_Rlower_a_m_ = 39
+ ,rhs6_Rlower_a_m_ = 40
+ ,rhs7_Rlower_a_m_ = 41
+ ,rhs8_Rlower_a_m_ = 42
+ ,rhs9_Rlower_a_m_ = 43
+ ,rhs10_Rlower_a_m_ = 44
+ ,rhs11_Rlower_a_m_ = 45
+ ,rhs12_Rlower_a_m_ = 46
+ ,rhs13_Rlower_a_m_ = 47
+ ,R_Rlower_n_z_ = 574//start_of_rule_list + 10
+ ,rhs1_Rlower_n_z_ = 48
+ ,rhs2_Rlower_n_z_ = 49
+ ,rhs3_Rlower_n_z_ = 50
+ ,rhs4_Rlower_n_z_ = 51
+ ,rhs5_Rlower_n_z_ = 52
+ ,rhs6_Rlower_n_z_ = 53
+ ,rhs7_Rlower_n_z_ = 54
+ ,rhs8_Rlower_n_z_ = 55
+ ,rhs9_Rlower_n_z_ = 56
+ ,rhs10_Rlower_n_z_ = 57
+ ,rhs11_Rlower_n_z_ = 58
+ ,rhs12_Rlower_n_z_ = 59
+ ,rhs13_Rlower_n_z_ = 60
+ ,R_RNUMBERS_ = 575//start_of_rule_list + 12
+ ,rhs1_RNUMBERS_ = 61
+ ,rhs2_RNUMBERS_ = 62
+ ,rhs3_RNUMBERS_ = 63
+ ,rhs4_RNUMBERS_ = 64
+ ,rhs5_RNUMBERS_ = 65
+ ,rhs6_RNUMBERS_ = 66
+ ,rhs7_RNUMBERS_ = 67
+ ,rhs8_RNUMBERS_ = 68
+ ,rhs9_RNUMBERS_ = 69
+ ,rhs10_RNUMBERS_ = 70
+ };
+ //no of la sets = 1
+ //no of states = 10
+ Cterminal_def_symclass();
+ ~Cterminal_def_symclass();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[71];
+ };
+struct Rterminal_def_symclass;
+struct Rminus_la;
+struct RUPPER_A_M;
+struct RUPPER_N_Z;
+struct Rlower_a_m;
+struct Rlower_n_z;
+struct RNUMBERS;
+struct Rterminal_def_symclass:public yacco2::CAbs_lr1_sym {
+ Rterminal_def_symclass(yacco2::Parser* P);
+ void op();
+
+ public:
+ CAbs_lr1_sym* rtn_sym_;
+
+ public:
+ void sr1();
+};
+
+struct Rminus_la:public yacco2::CAbs_lr1_sym {
+ Rminus_la(yacco2::Parser* P);
+ public:
+};
+
+struct RUPPER_A_M:public yacco2::CAbs_lr1_sym {
+ RUPPER_A_M(yacco2::Parser* P);
+ public:
+};
+
+struct RUPPER_N_Z:public yacco2::CAbs_lr1_sym {
+ RUPPER_N_Z(yacco2::Parser* P);
+ public:
+};
+
+struct Rlower_a_m:public yacco2::CAbs_lr1_sym {
+ Rlower_a_m(yacco2::Parser* P);
+ public:
+};
+
+struct Rlower_n_z:public yacco2::CAbs_lr1_sym {
+ Rlower_n_z(yacco2::Parser* P);
+ public:
+};
+
+struct RNUMBERS:public yacco2::CAbs_lr1_sym {
+ RNUMBERS(yacco2::Parser* P);
+ public:
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/terminal_def_symclass.lex b/web/yacco2/compiler/grammars/terminal_def_symclass.lex
new file mode 100644
index 0000000000..ce6d369a01
--- /dev/null
+++ b/web/yacco2/compiler/grammars/terminal_def_symclass.lex
@@ -0,0 +1,86 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: terminal_def_symclass.lex
+Dates: 29 Mar 2004
+Purpose: terminal-def delete / abort tags
+Output: #sym-class
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |terminal_def_symclass| Thread.\fbreak
+Recognize ``sym-class'' keyword.
+@/
+fsm
+(fsm-id "terminal_def_symclass.lex"
+,fsm-filename terminal_def_symclass
+,fsm-namespace NS_terminal_def_symclass
+,fsm-class Cterminal_def_symclass
+,fsm-version "1.0",fsm-date "29 mar 2004",fsm-debug "false"
+,fsm-comments "Lexer of ``sym-class'' keyword.")
+parallel-parser
+(
+ parallel-thread-function
+ TH_terminal_def_symclass
+ ***
+ parallel-la-boundary
+ eolr - Rminus_la
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rterminal_def_symclass (
+ lhs {
+ user-declaration
+ public:
+ CAbs_lr1_sym* rtn_sym_;
+ ***
+ op
+ rtn_sym_->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(rtn_sym_);
+ rtn_sym_ = 0;
+ ***
+ }
+){
+ -> s y m "-" c l a s s {
+ op
+ rtn_sym_ = new T_sym_class;
+ ***}
+}
+
+Rminus_la () {
+ -> "_"
+ -> "-"
+ -> RUPPER_A_M
+ -> RUPPER_N_Z
+ -> Rlower_a_m
+ -> Rlower_n_z
+ -> RNUMBERS
+}
+
+RUPPER_A_M (){
+ -> A -> B -> C -> D -> E -> F -> G -> H -> I -> J -> K -> L -> M
+}
+
+RUPPER_N_Z (){
+ -> N -> O -> P -> Q
+ -> "R" // considered a Rule when not quoted!
+ -> S -> T -> U -> V -> W -> X -> Y -> Z
+}
+
+Rlower_a_m (){
+ -> a -> b -> c -> d -> e -> f -> g -> h -> i -> j -> k -> l -> m
+}
+
+Rlower_n_z (){
+ -> n -> o -> p -> q -> r -> s -> t -> u -> v -> w -> x -> y -> z
+}
+
+RNUMBERS (){
+ -> 0 -> 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8 -> 9
+}
+
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/terminal_def_symclasssym.cpp b/web/yacco2/compiler/grammars/terminal_def_symclasssym.cpp
new file mode 100644
index 0000000000..717d0e9f02
--- /dev/null
+++ b/web/yacco2/compiler/grammars/terminal_def_symclasssym.cpp
@@ -0,0 +1,1030 @@
+/*
+ File: terminal_def_symclasssym.cpp
+ Date and Time: Fri Jan 30 18:55:26 2015
+*/
+#include "terminal_def_symclass.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_terminal_def_symclass;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_terminal_def_symclass::TH_terminal_def_symclass(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_terminal_def_symclass;
+ NS_terminal_def_symclass::Cterminal_def_symclass Cterminal_def_symclass_;// parallel-parser's parse table
+#define ssPARSE_TABLE Cterminal_def_symclass_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_terminal_def_symclass::PROC_TH_terminal_def_symclass(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_terminal_def_symclass";
+ static bool one_time(false);
+ static NS_terminal_def_symclass::Cterminal_def_symclass* NS_terminal_def_symclass_Cterminal_def_symclass_(0);// parallel-parser's fsm table
+ static Parser* NS_terminal_def_symclass_Cterminal_def_symclass_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_terminal_def_symclass_Cterminal_def_symclass_ = new NS_terminal_def_symclass::Cterminal_def_symclass();// parallel-parser's fsm table
+ NS_terminal_def_symclass_Cterminal_def_symclass_parser = new Parser(*NS_terminal_def_symclass_Cterminal_def_symclass_,Caller_pp);
+ }
+ proc_parser = NS_terminal_def_symclass_Cterminal_def_symclass_parser;
+#include "wproc_pp_core.h"
+}
+void
+Cterminal_def_symclass::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rterminal_def_symclass_:{
+ Rterminal_def_symclass* sym;
+ if(re->rule_ == 0){
+ sym = new Rterminal_def_symclass(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rterminal_def_symclass*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 9;
+
+
+ sym->sr1();
+ sym->op();
+ return;}
+ case rhs1_Rminus_la_:{
+ Rminus_la* sym;
+ if(re->rule_ == 0){
+ sym = new Rminus_la(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rminus_la*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rminus_la_:{
+ Rminus_la* sym;
+ if(re->rule_ == 0){
+ sym = new Rminus_la(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rminus_la*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs3_Rminus_la_:{
+ Rminus_la* sym;
+ if(re->rule_ == 0){
+ sym = new Rminus_la(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rminus_la*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs4_Rminus_la_:{
+ Rminus_la* sym;
+ if(re->rule_ == 0){
+ sym = new Rminus_la(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rminus_la*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs5_Rminus_la_:{
+ Rminus_la* sym;
+ if(re->rule_ == 0){
+ sym = new Rminus_la(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rminus_la*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs6_Rminus_la_:{
+ Rminus_la* sym;
+ if(re->rule_ == 0){
+ sym = new Rminus_la(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rminus_la*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs7_Rminus_la_:{
+ Rminus_la* sym;
+ if(re->rule_ == 0){
+ sym = new Rminus_la(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rminus_la*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs3_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs4_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs5_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs6_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs7_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs8_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs9_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs10_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs11_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs12_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs13_RUPPER_A_M_:{
+ RUPPER_A_M* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_A_M(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_A_M*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs3_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs4_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs5_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs6_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs7_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs8_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs9_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs10_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs11_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs12_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs13_RUPPER_N_Z_:{
+ RUPPER_N_Z* sym;
+ if(re->rule_ == 0){
+ sym = new RUPPER_N_Z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RUPPER_N_Z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs3_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs4_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs5_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs6_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs7_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs8_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs9_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs10_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs11_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs12_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs13_Rlower_a_m_:{
+ Rlower_a_m* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_a_m(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_a_m*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs3_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs4_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs5_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs6_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs7_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs8_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs9_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs10_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs11_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs12_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs13_Rlower_n_z_:{
+ Rlower_n_z* sym;
+ if(re->rule_ == 0){
+ sym = new Rlower_n_z(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlower_n_z*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_RNUMBERS_:{
+ RNUMBERS* sym;
+ if(re->rule_ == 0){
+ sym = new RNUMBERS(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNUMBERS*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_RNUMBERS_:{
+ RNUMBERS* sym;
+ if(re->rule_ == 0){
+ sym = new RNUMBERS(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNUMBERS*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs3_RNUMBERS_:{
+ RNUMBERS* sym;
+ if(re->rule_ == 0){
+ sym = new RNUMBERS(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNUMBERS*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs4_RNUMBERS_:{
+ RNUMBERS* sym;
+ if(re->rule_ == 0){
+ sym = new RNUMBERS(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNUMBERS*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs5_RNUMBERS_:{
+ RNUMBERS* sym;
+ if(re->rule_ == 0){
+ sym = new RNUMBERS(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNUMBERS*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs6_RNUMBERS_:{
+ RNUMBERS* sym;
+ if(re->rule_ == 0){
+ sym = new RNUMBERS(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNUMBERS*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs7_RNUMBERS_:{
+ RNUMBERS* sym;
+ if(re->rule_ == 0){
+ sym = new RNUMBERS(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNUMBERS*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs8_RNUMBERS_:{
+ RNUMBERS* sym;
+ if(re->rule_ == 0){
+ sym = new RNUMBERS(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNUMBERS*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs9_RNUMBERS_:{
+ RNUMBERS* sym;
+ if(re->rule_ == 0){
+ sym = new RNUMBERS(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNUMBERS*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs10_RNUMBERS_:{
+ RNUMBERS* sym;
+ if(re->rule_ == 0){
+ sym = new RNUMBERS(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (RNUMBERS*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/terminal_def_symclasstbl.cpp b/web/yacco2/compiler/grammars/terminal_def_symclasstbl.cpp
new file mode 100644
index 0000000000..05a363369e
--- /dev/null
+++ b/web/yacco2/compiler/grammars/terminal_def_symclasstbl.cpp
@@ -0,0 +1,732 @@
+/*
+ File: terminal_def_symclasstbl.cpp
+ Date and Time: Fri Jan 30 18:55:26 2015
+*/
+#include "terminal_def_symclass.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_terminal_def_symclass;// grammar's ns
+// first set terminals
+// LR1_eog
+// raw_nul
+// raw_soh
+// raw_stx
+// raw_etx
+// raw_eot
+// raw_enq
+// raw_ack
+// raw_bel
+// raw_bs
+// raw_ht
+// raw_lf
+// raw_vt
+// raw_comma
+// raw_period
+// raw_slash
+// raw_colon
+// raw_semi_colon
+// raw_less_than
+// raw_eq
+// raw_gt_than
+// raw_question_mark
+// raw_at_sign
+// raw_open_sq_bracket
+// raw_back_slash
+// raw_close_sq_bracket
+// raw_up_arrow
+// raw_left_quote
+// raw_open_brace
+// raw_vertical_line
+// raw_close_brace
+// raw_tilde
+// raw_del
+// raw_x80
+// raw_x81
+// raw_x82
+// raw_x83
+// raw_x84
+// raw_x85
+// raw_x86
+// raw_x87
+// raw_x88
+// raw_x89
+// raw_x8a
+// raw_x8b
+// raw_x8c
+// raw_x8d
+// raw_x8e
+// raw_x8f
+// raw_x90
+// raw_x91
+// raw_x92
+// raw_x93
+// raw_x94
+// raw_x95
+// raw_x96
+// raw_x97
+// raw_x98
+// raw_x99
+// raw_x9a
+// raw_x9b
+// raw_x9c
+// raw_x9d
+// raw_x9e
+// raw_x9f
+// raw_xa0
+// raw_xa1
+// raw_xa2
+// raw_xa3
+// raw_xa4
+// raw_xa5
+// raw_xa6
+// raw_xa7
+// raw_xa8
+// raw_xa9
+// raw_xaa
+// raw_xab
+// raw_xac
+// raw_xad
+// raw_xae
+// raw_xaf
+// raw_xb0
+// raw_xb1
+// raw_xb2
+// raw_xb3
+// raw_xb4
+// raw_xb5
+// raw_xb6
+// raw_xb7
+// raw_xb8
+// raw_xb9
+// raw_xba
+// raw_xbb
+// raw_xbc
+// raw_xbd
+// raw_xbe
+// raw_xbf
+// raw_xc0
+// raw_xc1
+// raw_xc2
+// raw_xc3
+// raw_xc4
+// raw_xc5
+// raw_xc6
+// raw_xc7
+// raw_xc8
+// raw_xc9
+// raw_xca
+// raw_xcb
+// raw_xcc
+// raw_xcd
+// raw_xce
+// raw_xcf
+// raw_xd0
+// raw_xd1
+// raw_xd2
+// raw_xd3
+// raw_xd4
+// raw_xd5
+// raw_xd6
+// raw_xd7
+// raw_xd8
+// raw_xd9
+// raw_xda
+// raw_xdb
+// raw_xdc
+// raw_xdd
+// raw_xde
+// raw_xdf
+// raw_xe0
+// raw_xe1
+// raw_xe2
+// raw_xe3
+// raw_xe4
+// raw_xe5
+// raw_xe6
+// raw_xe7
+// raw_xe8
+// raw_xe9
+// raw_xea
+// raw_xeb
+// raw_xec
+// raw_xed
+// raw_xee
+// raw_xef
+// raw_xf0
+// raw_xf1
+// raw_xf2
+// raw_xf3
+// raw_xf4
+// raw_xf5
+// raw_xf6
+// raw_xf7
+// raw_xf8
+// raw_xf9
+// raw_xfa
+// raw_xfb
+// raw_xfc
+// raw_xfd
+// raw_xfe
+// raw_xff
+// T_option_t
+// T_option_p
+// T_option_err
+// T_esc_seq
+// T_eol
+// T_basic_char
+// T_raw_char
+// T_comment
+// T_ws
+// T_angled_string
+// T_c_literal
+// T_c_string
+// T_xc_str
+// T_unquoted_string
+// T_file_inclusion
+// T_identifier
+// T_int_no
+// T_raw_characters
+// T_lr1_constant_symbols
+// T_error_symbols
+// T_eocode
+// T_AD
+// T_AB
+// T_parallel_la_boundary
+// T_arbitrator_code
+// T_parallel_parser
+// T_parallel_thread_function
+// T_parallel_control_monitor
+// T_fsm
+// T_fsm_id
+// T_fsm_filename
+// T_fsm_namespace
+// T_fsm_class
+// T_fsm_version
+// T_fsm_date
+// T_fsm_debug
+// T_fsm_comments
+// T_terminals
+// T_enumeration
+// T_file_name
+// T_name_space
+// T_sym_class
+// T_rules
+// T_lhs
+// T_user_declaration
+// T_user_prefix_declaration
+// T_user_suffix_declaration
+// T_constructor
+// T_destructor
+// T_op
+// T_failed
+// T_user_implementation
+// T_user_imp_tbl
+// T_user_imp_sym
+// T_constant_defs
+// T_terminals_refs
+// T_terminals_sufx
+// T_lrk_sufx
+// T_selector
+// T_NULL
+// T_2colon
+// T_block
+// T_syntax_code
+// T_fsm_class_phrase
+// T_fsm_phrase
+// T_parallel_parser_phrase
+// T_enum_phrase
+// T_terminal_def
+// table_entry
+// T_sym_tbl_report_card
+// T_terminals_phrase
+// T_error_symbols_phrase
+// T_lr1_k_phrase
+// T_rc_phrase
+// T_rule_lhs_phrase
+// T_parallel_monitor_phrase
+// rule_def
+// T_rules_phrase
+// T_subrule_def
+// T_subrules_phrase
+// T_in_stbl
+// refered_T
+// rule_in_stbl
+// refered_rule
+// T_transitive
+// T_grammar_name
+// T_thread_name
+// T_monolithic
+// T_no_of_T
+// T_list_of_native_first_set_terminals
+// T_end_list_of_native_first_set_terminals
+// T_list_of_transitive_threads
+// T_end_list_of_transitive_threads
+// T_emitfile
+// T_preamble
+// T_end_preamble
+// T_T_alphabet
+// T_end_T_alphabet
+// T_file_of_T_alphabet
+// T_attributes
+// tth_in_stbl
+// thread_attributes
+// th_in_stbl
+// kw_in_stbl
+// T_la_expr_src
+// T_eosubrule
+// T_called_thread_eosubrule
+// T_null_call_thread_eosubrule
+// T_cweb_comment
+// T_grammar_phrase
+// T_cweb_marker
+// T_lint
+// T_list_of_used_threads
+// T_end_list_of_used_threads
+// Err_nested_files_exceeded
+// Err_no_end_of_code
+// Err_no_cmd_lne_data
+// Err_no_filename
+// Err_bad_filename
+// Err_bad_fsmheader_filename
+// Err_bad_fsmcpp_filename
+// Err_bad_fsmsym_filename
+// Err_bad_fsmtbl_filename
+// Err_bad_enum_filename
+// Err_bad_errors_hdrfilename
+// Err_bad_errors_impfilename
+// Err_bad_cmd_lne_opt
+// Err_bad_int_no
+// Err_bad_int_no_range
+// Err_no_int_present
+// Err_bad_eos
+// Err_bad_esc
+// Err_comment_overrun
+// Err_bad_char
+// Err_bad_univ_seq
+// Err_improper_closing_of_rules
+// Err_no_identifier_present
+// Err_no_directive_present
+// Err_duplicate_directive
+// Err_no_syntax_code_present
+// Err_no_open_parenthesis
+// Err_no_close_parenthesis
+// Err_no_fsm_id_present
+// Err_no_fsm_id_string
+// Err_no_fsm_filename_present
+// Err_no_fsm_filename_id_present
+// Err_no_comma_present
+// Err_no_terminal_key_present
+// Err_no_fsm_namespace_present
+// Err_no_fsm_namespace_id_present
+// Err_no_fsm_class_present
+// Err_no_fsm_version_present
+// Err_no_fsm_version_string
+// Err_no_fsm_date_present
+// Err_no_fsm_date_string
+// Err_no_fsm_debug_present
+// Err_no_fsm_debug_string
+// Err_no_fsm_comments_present
+// Err_no_fsm_comments_string
+// Err_fsm_debug_string_not_true_or_false
+// Err_no_pp_thread_function_present
+// Err_no_pp_ctrl_mntor_kw_present
+// Err_no_pp_fnct_id_present
+// Err_no_pp_bndry_present
+// Err_no_pp_la_bndary_expr_present
+// Err_no_syntax_code_end_present
+// Err_no_pp_code_present
+// Err_no_pp_code_stc_present
+// Err_not_arbitration_code_kw
+// Err_no_open_brace
+// Err_no_close_brace
+// Err_no_constant_defs_present
+// Err_no_filename_present
+// Err_no_filename_id_present
+// Err_no_namespace_present
+// Err_no_namespace_id_present
+// Err_no_kdefs_code_present
+// Err_no_kdefs_kw_present
+// Err_no_tdef_code_present
+// Err_no_sym_defs_present
+// Err_dup_entry_in_alphabet
+// Err_already_defined_AB
+// Err_already_defined_AD
+// Err_improper_directive
+// Err_no_sym_class_present
+// Err_no_sym_class_id_present
+// Err_zero_len_sym
+// Err_sym_tbl_full
+// Err_sym_tbl_char_pool_full
+// Err_dup_entry_in_sym_table
+// Err_subscript_out_of_range
+// Err_sym_tbl_nested_scope_stk_overflow
+// Err_sym_tbl_nested_scope_stk_underflow
+// Err_sym_tbl_context_buf_overflow
+// Err_report_card_ptr_0
+// Err_cannot_define_term_after_sufx_dir
+// Err_dup_sufx_directive
+// Err_terminals_refs_def_after_terminals
+// Err_terminals_refs_dup_def
+// Err_no_rule_name_present
+// Err_no_sub_rule_present
+// Err_subrule_use_undefined_T
+// Err_stbl_entry_unknown
+// Err_subrule_overrun
+// Err_stble_has_entry_but_not_a_rule
+// Err_file_of_T_alphabet_kw_not_present
+// Err_emitfile_kw_not_present
+// Err_preamble_kw_not_present
+// Err_preamble_srce_code_not_present
+// Err_end_preamble_kw_not_present
+// Err_cmd_line_chaffe
+// Err_T_alphabet_kw_not_present
+// Err_T_alphabet_file_not_present
+// Err_end_T_alphabet_kw_not_present
+// Err_no_terminals_in_T_alphabet_list
+// Err_rotten_chr_in_T_alphabet
+// Err_transitive_kw_not_present
+// Err_grammar_name_kw_not_present
+// Err_namespace_kw_not_present
+// Err_filename_kw_not_present
+// Err_threadname_kw_not_present
+// Err_monolithic_kw_not_present
+// Err_no_of_T_kw_not_present
+// Err_list_of_terminals_kw_not_present
+// Err_no_list_of_trans_threads_kw
+// Err_no_terminals_present_in_T_alphabet
+// Err_transitive_value_bad
+// Err_monolithic_value_bad
+// Err_grammar_name_value_not_present
+// Err_namespace_value_not_present
+// Err_threadname_value_not_present
+// Err_filename_value_not_present
+// Err_no_of_T_value_not_present
+// Err_no_of_terminals_not_present
+// Err_end_list_native_T_kw_not_present
+// Err_end_list_of_transitive_threads_kw_not_present
+// Err_no_of_native_Ts_in_list_not_equal
+// Err_no_of_threads_in_list_not_equal
+// Err_thread_refed_but_not_defined
+// Err_bad_T_in_list
+// Err_bad_th_in_list
+// Err_already_defined_in_fsc_file
+// Err_bad_thread_subscript
+// Err_not_a_keyword
+// Err_no_of_threads_not_present
+// Err_bad_T_alphabet
+// Err_fsc_file_does_not_exist
+// Err_filename_file_does_not_exist
+// Err_T_alphabet_file_does_not_exist
+// Err_emitfile_file_does_not_exist
+// Err_emitfile_file_not_present
+// Err_fsc_cntl_file_not_present
+// Err_file_of_T_alphabet_not_present
+// Err_epsilon_pass_thru
+// Err_epsilon_pass_thru_no_Ts
+// Err_rule_not_in_stbl
+// Err_T_not_in_stbl
+// Err_bad_directive
+// Err_bad_term_in_la_expr
+// Err_empty_set_removal_in_la_expr
+// Err_bad_operator_in_la_expr
+// Err_not_a_lhs_kw
+// Err_pp_la_boundary_attribute_not_fnd
+// Err_already_processed_fsm_phase
+// Err_already_processed_pp_phase
+// Err_already_processed_T_enum_phase
+// Err_already_processed_error_phase
+// Err_already_processed_rc_phase
+// Err_already_processed_lrk_phase
+// Err_already_processed_T_phase
+// Err_already_processed_rule_phase
+// Err_not_T_for_rtned_token_from_th
+// Err_not_id_for_ns_in_th_stmt
+// Err_not_id_for_th_name_in_th_stmt
+// Err_bad_th_qualifier
+// Err_not_dbl_colon_in_th_stmt
+// Err_not_T_or_R_in_subrule_expr
+// Err_not_T_or_R_or_eos_in_subrule_expr
+// Err_not_eos_in_subrule_expr
+// Err_invalid_logical_name
+// Err_invalid_logical_value
+// Err_duplicate_logical_name
+// Err_missing_terminals_refs_kw
+// Err_missing_terminals_sufx_kw
+// Err_not_a_terminal_definition
+// Err_missing_lrk_sufx_kw
+// ERR_sick_grammar
+// ERR_no_fsm_phrase
+// ERR_no_T_enum_phrase
+// ERR_no_lrk_phrase
+// ERR_no_rc_phrase
+// ERR_no_errors_phrase
+// ERR_no_terminals_phrase
+// ERR_no_rules_phrase
+// Err_used_rule_but_undefined
+// Err_rule_already_defined
+// Err_la_expr_calc_empty_set
+// Err_no_close_brace_ending_rules_defs
+// Err_use_of_T_outside_Rules_construct
+// Err_not_kw_defining_grammar_construct
+// Err_use_of_N_outside_Rules_construct
+// Err_misplaced_or_misspelt_Rule_or_T
+// Err_not_a_Rule
+// Err_empty_file
+// Err_not_lhs_pcnrl_mntr
+// raw_ff
+// raw_cr
+// raw_so
+// raw_si
+// raw_dle
+// raw_dc1
+// raw_dc2
+// raw_dc3
+// raw_dc4
+// raw_nak
+// raw_syn
+// raw_etb
+// raw_can
+// raw_em
+// raw_sub
+// raw_esc
+// raw_fs
+// raw_gs
+// raw_rs
+// raw_us
+// raw_sp
+// raw_exclam
+// raw_dbl_quote
+// raw_no_sign
+// raw_dollar_sign
+// raw_percent
+// raw_ampersign
+// raw_right_quote
+// raw_open_bracket
+// raw_close_bracket
+// raw_asteric
+// raw_plus
+yacco2::UCHAR LA1_Cterminal_def_symclass[] ={
+67
+,0,2
+,1,255
+,2,255
+,3,255
+,4,255
+,5,255
+,6,223
+,8,252
+,9,1
+,12,120
+,13,1
+,16,248
+,17,255
+,18,255
+,19,255
+,20,255
+,21,255
+,22,255
+,23,255
+,24,255
+,25,255
+,26,255
+,27,255
+,28,255
+,29,255
+,30,255
+,31,255
+,32,255
+,33,255
+,34,255
+,35,255
+,36,255
+,37,255
+,38,255
+,39,255
+,40,255
+,41,255
+,42,255
+,43,255
+,44,255
+,45,255
+,46,255
+,47,255
+,48,255
+,49,255
+,50,255
+,51,255
+,52,255
+,53,255
+,54,255
+,55,255
+,56,255
+,57,255
+,58,255
+,59,255
+,60,255
+,61,255
+,62,255
+,63,255
+,64,255
+,65,255
+,66,255
+,67,255
+,68,255
+,69,255
+,70,255
+,71,1
+};
+extern yacco2::State S1_Cterminal_def_symclass;
+extern yacco2::State S2_Cterminal_def_symclass;
+extern yacco2::State S3_Cterminal_def_symclass;
+extern yacco2::State S4_Cterminal_def_symclass;
+extern yacco2::State S5_Cterminal_def_symclass;
+extern yacco2::State S6_Cterminal_def_symclass;
+extern yacco2::State S7_Cterminal_def_symclass;
+extern yacco2::State S8_Cterminal_def_symclass;
+extern yacco2::State S9_Cterminal_def_symclass;
+extern yacco2::State S10_Cterminal_def_symclass;
+struct S1std_Cterminal_def_symclass{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S1std_Cterminal_def_symclass S1st_Cterminal_def_symclass = {
+ 2
+ ,
+ {// start of table
+ {123,(State*)&S2_Cterminal_def_symclass} // shift sym: raw_s
+ ,{569,(State*)&S1_Cterminal_def_symclass} // accept sym: Rterminal_def_symclass
+ }// end of shift table
+};
+yacco2::State S1_Cterminal_def_symclass = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Cterminal_def_symclass,0,0,0,0};
+struct S2std_Cterminal_def_symclass{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S2std_Cterminal_def_symclass S2st_Cterminal_def_symclass = {
+ 1
+ ,
+ {// start of table
+ {129,(State*)&S3_Cterminal_def_symclass} // shift sym: raw_y
+ }// end of shift table
+};
+yacco2::State S2_Cterminal_def_symclass = //State's vectored into symbol: "s"
+{2
+,0,0,0,0,(Shift_tbl*)&S2st_Cterminal_def_symclass,0,0,0,0};
+struct S3std_Cterminal_def_symclass{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S3std_Cterminal_def_symclass S3st_Cterminal_def_symclass = {
+ 1
+ ,
+ {// start of table
+ {117,(State*)&S4_Cterminal_def_symclass} // shift sym: raw_m
+ }// end of shift table
+};
+yacco2::State S3_Cterminal_def_symclass = //State's vectored into symbol: "y"
+{3
+,0,0,0,0,(Shift_tbl*)&S3st_Cterminal_def_symclass,0,0,0,0};
+struct S4std_Cterminal_def_symclass{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S4std_Cterminal_def_symclass S4st_Cterminal_def_symclass = {
+ 1
+ ,
+ {// start of table
+ {53,(State*)&S5_Cterminal_def_symclass} // shift sym: raw_minus
+ }// end of shift table
+};
+yacco2::State S4_Cterminal_def_symclass = //State's vectored into symbol: "m"
+{4
+,0,0,0,0,(Shift_tbl*)&S4st_Cterminal_def_symclass,0,0,0,0};
+struct S5std_Cterminal_def_symclass{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S5std_Cterminal_def_symclass S5st_Cterminal_def_symclass = {
+ 1
+ ,
+ {// start of table
+ {107,(State*)&S6_Cterminal_def_symclass} // shift sym: raw_c
+ }// end of shift table
+};
+yacco2::State S5_Cterminal_def_symclass = //State's vectored into symbol: "-"
+{5
+,0,0,0,0,(Shift_tbl*)&S5st_Cterminal_def_symclass,0,0,0,0};
+struct S6std_Cterminal_def_symclass{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S6std_Cterminal_def_symclass S6st_Cterminal_def_symclass = {
+ 1
+ ,
+ {// start of table
+ {116,(State*)&S7_Cterminal_def_symclass} // shift sym: raw_l
+ }// end of shift table
+};
+yacco2::State S6_Cterminal_def_symclass = //State's vectored into symbol: "c"
+{6
+,0,0,0,0,(Shift_tbl*)&S6st_Cterminal_def_symclass,0,0,0,0};
+struct S7std_Cterminal_def_symclass{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S7std_Cterminal_def_symclass S7st_Cterminal_def_symclass = {
+ 1
+ ,
+ {// start of table
+ {105,(State*)&S8_Cterminal_def_symclass} // shift sym: raw_a
+ }// end of shift table
+};
+yacco2::State S7_Cterminal_def_symclass = //State's vectored into symbol: "l"
+{7
+,0,0,0,0,(Shift_tbl*)&S7st_Cterminal_def_symclass,0,0,0,0};
+struct S8std_Cterminal_def_symclass{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S8std_Cterminal_def_symclass S8st_Cterminal_def_symclass = {
+ 1
+ ,
+ {// start of table
+ {123,(State*)&S9_Cterminal_def_symclass} // shift sym: raw_s
+ }// end of shift table
+};
+yacco2::State S8_Cterminal_def_symclass = //State's vectored into symbol: "a"
+{8
+,0,0,0,0,(Shift_tbl*)&S8st_Cterminal_def_symclass,0,0,0,0};
+struct S9std_Cterminal_def_symclass{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S9std_Cterminal_def_symclass S9st_Cterminal_def_symclass = {
+ 1
+ ,
+ {// start of table
+ {123,(State*)&S10_Cterminal_def_symclass} // shift sym: raw_s
+ }// end of shift table
+};
+yacco2::State S9_Cterminal_def_symclass = //State's vectored into symbol: "s"
+{9
+,0,0,0,0,(Shift_tbl*)&S9st_Cterminal_def_symclass,0,0,0,0};
+struct S10rtd_Cterminal_def_symclass{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S10rtd_Cterminal_def_symclass S10rt_Cterminal_def_symclass = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cterminal_def_symclass,Cterminal_def_symclass::rhs1_Rterminal_def_symclass_}
+ }// end of reduce table
+};
+yacco2::State S10_Cterminal_def_symclass = //State's vectored into symbol: "s"
+{10
+,0,0,0,0,0,(Reduce_tbl*)&S10rt_Cterminal_def_symclass,0,0,0};
diff --git a/web/yacco2/compiler/grammars/terminals_phrase.cpp b/web/yacco2/compiler/grammars/terminals_phrase.cpp
new file mode 100644
index 0000000000..9030ce4f7f
--- /dev/null
+++ b/web/yacco2/compiler/grammars/terminals_phrase.cpp
@@ -0,0 +1,109 @@
+/*
+ File: terminals_phrase.cpp
+ Date and Time: Fri Jan 30 18:55:27 2015
+*/
+#include "terminals_phrase.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_terminals_phrase;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 2;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+}
+ Cterminals_phrase::
+ Cterminals_phrase()
+ :yacco2::CAbs_fsm
+ ("terminals_phrase.lex"
+ ,"1.0"
+ ,"24 May 2004"
+ ,false
+ ,"Dispatcher to parse the terminals alphabet."
+ ,"Fri Jan 30 18:55:27 2015 "
+ ,S1_Cterminals_phrase){
+
+ cweb_marker__ = 0;
+
+ }
+
+Cterminals_phrase::~Cterminals_phrase(){
+
+ for(int x = 0;x < 2;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cterminals_phrase::failed(){
+ return false;
+ }
+ void Cterminals_phrase::op(){
+ if(CWEB_MARKER != 0){
+ cweb_marker__ = CWEB_MARKER;
+ CWEB_MARKER=0;
+ }
+
+}
+int Cterminals_phrase::rhs_to_rules_mapping_[5] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,1 // subrule 4 for rule 2
+};
+Rterminals_phrase::Rterminals_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rterminals_phrase",0,Cterminals_phrase::R_Rterminals_phrase_,P,false,false){
+}
+
+Rphrase::Rphrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rphrase",0,Cterminals_phrase::R_Rphrase_,P,false,false){
+}
+
+void Rphrase::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_terminals_phrase* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rphrase::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+
+}
+
+void Rphrase::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_open_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+
+}
+
diff --git a/web/yacco2/compiler/grammars/terminals_phrase.fsc b/web/yacco2/compiler/grammars/terminals_phrase.fsc
new file mode 100644
index 0000000000..d8d78c51b8
--- /dev/null
+++ b/web/yacco2/compiler/grammars/terminals_phrase.fsc
@@ -0,0 +1,22 @@
+/*
+ File: terminals_phrase.fsc
+ Date and Time: Fri Jan 30 18:55:27 2015
+*/
+transitive y
+grammar-name "terminals_phrase"
+name-space "NS_terminals_phrase"
+thread-name "Cterminals_phrase"
+monolithic y
+file-name "terminals_phrase.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ LR1_questionable_shift_operator
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 1
+ NS_terminals_phrase_th::TH_terminals_phrase_th
+end-list-of-transitive-threads
+list-of-used-threads 1
+ NS_terminals_phrase_th::TH_terminals_phrase_th
+end-list-of-used-threads
+fsm-comments
+"Dispatcher to parse the terminals alphabet."
diff --git a/web/yacco2/compiler/grammars/terminals_phrase.h b/web/yacco2/compiler/grammars/terminals_phrase.h
new file mode 100644
index 0000000000..9a8749ba1b
--- /dev/null
+++ b/web/yacco2/compiler/grammars/terminals_phrase.h
@@ -0,0 +1,69 @@
+/*
+ File: terminals_phrase.h
+ Date and Time: Fri Jan 30 18:55:27 2015
+*/
+#ifndef __terminals_phrase_h__
+#define __terminals_phrase_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "terminals_phrase_th.h"
+#include "o2_externs.h"
+
+// monolithic grammar: no thread
+extern yacco2::State S1_Cterminals_phrase;
+namespace NS_terminals_phrase {
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[2];
+};
+class Cterminals_phrase: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rterminals_phrase_ = 569//start_of_rule_list + 0
+ ,rhs1_Rterminals_phrase_ = 1
+ ,R_Rphrase_ = 570//start_of_rule_list + 2
+ ,rhs1_Rphrase_ = 2
+ ,rhs2_Rphrase_ = 3
+ ,rhs3_Rphrase_ = 4
+ };
+ //no of la sets = 1
+ //no of states = 6
+ Cterminals_phrase();
+ ~Cterminals_phrase();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[5];
+
+ public: yacco2::AST* cweb_marker__;
+
+ };
+struct Rterminals_phrase;
+struct Rphrase;
+struct Rterminals_phrase:public yacco2::CAbs_lr1_sym {
+ Rterminals_phrase(yacco2::Parser* P);
+ public:
+};
+
+struct Rphrase:public yacco2::CAbs_lr1_sym {
+ Rphrase(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/terminals_phrase.lex b/web/yacco2/compiler/grammars/terminals_phrase.lex
new file mode 100644
index 0000000000..5252c6fb5c
--- /dev/null
+++ b/web/yacco2/compiler/grammars/terminals_phrase.lex
@@ -0,0 +1,111 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: terminals_phrase.lex
+Dates: 24 May 2004
+Purpose: terminals alphabet
+Grammar being parsed:
+ terminals
+ (file-name yacco2_terminals
+ ,name-space NS_yacco2_terminals)
+ {
+ [terminals-refs code ***] optional
+ 1+ terminal definitions where def is
+ terminal-key [AD AB attributes] (sym-class C++ name)
+ or
+ terminal-key [AD AB attributes]
+ (sym-class C++ name {C++ directives block} )
+ [terminals-sufx code ***] optional
+ }
+Note: The terminals-refs and terminals-sufx directives
+ bracket the emitted grammar code. Terminals-ref usually
+ provides references for the terminals being defined.
+ The terminals-sufx directive is an option for
+ the grammar writer to append suffix code.
+
+ Why is this pattern different than the other terminal
+ classifications. Error terminals are basically indicators.
+ Raw characters map the raw 8 bit character into its equivalent
+ terminal token. The lrk constant terminals are just that
+ constants. They indicate appropriate global intentions:
+ end-of-file, end-of-grammar, and special meta terminals for
+ parallel parsing --- |+|, ||| etc.
+
+ Terminals are beyond the pedestrian classifications just mentioned.
+ These are the specific terminals being designed by the grammar
+ writer. They go beyond just the lexical and syntactical phases
+ of compiling. One can designate any intent with appropriate
+ behaviors. In fact, the Pascal translator to retarget Oregon
+ Pascal and preproccessor language extensions to HP's Pascal
+ built an extensive set of tree facitities that could be traversed
+ with dynamic filters to create token containers. This allowed
+ one to used grammars against trees to retarget the Pascal source code.
+ It has been a thought of mine for many years to program in
+ grammars instead of procedural thoughts. One speaks in sentences
+ and not in the basic utterances of a stutter --- word: think procedure.
+ The filters provide tree node views in association with the
+ the tree walker to sequential flatten forests of terminals.
+
+ Grammars enhance the thought process with its nested actions
+ accumlating in phrases. It does one thing well. It tells you
+ when things are ambiguous.
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |terminals_phrase| grammar.\fbreak
+Dispatcher to parse the terminals alphabet.
+@/
+fsm
+(fsm-id "terminals_phrase.lex"
+,fsm-filename terminals_phrase
+,fsm-namespace NS_terminals_phrase
+,fsm-class Cterminals_phrase{
+ user-prefix-declaration
+#include "terminals_phrase_th.h"
+#include "o2_externs.h"
+ ***
+ user-declaration
+ public: yacco2::AST* cweb_marker__;
+ ***
+ op
+ if(CWEB_MARKER != 0){
+ cweb_marker__ = CWEB_MARKER;
+ CWEB_MARKER=0;
+ }
+ ***
+ constructor
+ cweb_marker__ = 0;
+ ***
+}
+,fsm-version "1.0",fsm-date "24 May 2004",fsm-debug "false"
+,fsm-comments "Dispatcher to parse the terminals alphabet.")
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rterminals_phrase (){
+ -> Rphrase
+}
+
+Rphrase (){
+ -> ||| "terminals-phrase"
+ NS_terminals_phrase_th::TH_terminals_phrase_th {
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| |?| NULL { // thread has stop parsing with RSVP error
+ op
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ ***
+ }
+ -> |?| { // error due to no first set to start thread {
+ op
+ CAbs_lr1_sym* sym = new Err_no_open_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ ADD_TOKEN_TO_ERROR_QUEUE(*sym);
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/terminals_phrase_th.cpp b/web/yacco2/compiler/grammars/terminals_phrase_th.cpp
new file mode 100644
index 0000000000..3061e49905
--- /dev/null
+++ b/web/yacco2/compiler/grammars/terminals_phrase_th.cpp
@@ -0,0 +1,967 @@
+/*
+ File: terminals_phrase_th.cpp
+ Date and Time: Fri Jan 30 18:55:27 2015
+*/
+#include "terminals_phrase_th.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_terminals_phrase_th;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 28;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[4] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[5] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[6] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[7] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[8] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[9] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[10] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[11] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[12] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[13] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[14] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[15] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[16] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[17] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[18] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[19] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[20] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[21] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[22] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[23] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[24] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[25] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[26] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[27] = new Per_rule_s_reuse_table();
+}
+ Cterminals_phrase_th::
+ Cterminals_phrase_th()
+ :yacco2::CAbs_fsm
+ ("terminals_phrase_th.lex"
+ ,"1.0"
+ ,"22 mar 2004"
+ ,false
+ ,"Parse terminals vocabulary."
+ ,"Fri Jan 30 18:55:27 2015 "
+ ,S1_Cterminals_phrase_th){
+
+ terminals_phrase_ = 0;
+
+ }
+
+Cterminals_phrase_th::~Cterminals_phrase_th(){
+
+ for(int x = 0;x < 28;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cterminals_phrase_th::failed(){
+ return false;
+ }
+ void Cterminals_phrase_th::op(){
+ if(terminals_phrase_ != 0){
+ delete terminals_phrase_;
+ terminals_phrase_ = 0;
+ }
+ terminals_phrase_ = new T_terminals_phrase;
+ terminals_phrase_->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ AST* t = new AST(*terminals_phrase_);
+ terminals_phrase_->phrase_tree(t);
+
+}
+int Cterminals_phrase_th::rhs_to_rules_mapping_[62] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,2 // subrule 4 for rule 3
+ ,2 // subrule 5 for rule 3
+ ,3 // subrule 6 for rule 4
+ ,4 // subrule 7 for rule 5
+ ,5 // subrule 8 for rule 6
+ ,5 // subrule 9 for rule 6
+ ,5 // subrule 10 for rule 6
+ ,6 // subrule 11 for rule 7
+ ,6 // subrule 12 for rule 7
+ ,6 // subrule 13 for rule 7
+ ,7 // subrule 14 for rule 8
+ ,7 // subrule 15 for rule 8
+ ,8 // subrule 16 for rule 9
+ ,8 // subrule 17 for rule 9
+ ,8 // subrule 18 for rule 9
+ ,9 // subrule 19 for rule 10
+ ,9 // subrule 20 for rule 10
+ ,9 // subrule 21 for rule 10
+ ,10 // subrule 22 for rule 11
+ ,10 // subrule 23 for rule 11
+ ,11 // subrule 24 for rule 12
+ ,11 // subrule 25 for rule 12
+ ,12 // subrule 26 for rule 13
+ ,13 // subrule 27 for rule 14
+ ,13 // subrule 28 for rule 14
+ ,13 // subrule 29 for rule 14
+ ,14 // subrule 30 for rule 15
+ ,14 // subrule 31 for rule 15
+ ,14 // subrule 32 for rule 15
+ ,15 // subrule 33 for rule 16
+ ,16 // subrule 34 for rule 17
+ ,16 // subrule 35 for rule 17
+ ,16 // subrule 36 for rule 17
+ ,17 // subrule 37 for rule 18
+ ,17 // subrule 38 for rule 18
+ ,17 // subrule 39 for rule 18
+ ,18 // subrule 40 for rule 19
+ ,18 // subrule 41 for rule 19
+ ,18 // subrule 42 for rule 19
+ ,19 // subrule 43 for rule 20
+ ,19 // subrule 44 for rule 20
+ ,20 // subrule 45 for rule 21
+ ,20 // subrule 46 for rule 21
+ ,21 // subrule 47 for rule 22
+ ,22 // subrule 48 for rule 23
+ ,22 // subrule 49 for rule 23
+ ,22 // subrule 50 for rule 23
+ ,23 // subrule 51 for rule 24
+ ,23 // subrule 52 for rule 24
+ ,23 // subrule 53 for rule 24
+ ,24 // subrule 54 for rule 25
+ ,24 // subrule 55 for rule 25
+ ,25 // subrule 56 for rule 26
+ ,25 // subrule 57 for rule 26
+ ,26 // subrule 58 for rule 27
+ ,26 // subrule 59 for rule 27
+ ,27 // subrule 60 for rule 28
+ ,27 // subrule 61 for rule 28
+};
+Rterminals_phrase::Rterminals_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rterminals_phrase",0,Cterminals_phrase_th::R_Rterminals_phrase_,P,false,false){
+}
+
+void Rterminals_phrase::sr1(){
+
+ Cterminals_phrase_th* fsm = (Cterminals_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ RSVP(fsm->terminals_phrase_);
+ fsm->terminals_phrase_ = 0;
+
+}
+
+Ropen_par::Ropen_par(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Ropen_par",0,Cterminals_phrase_th::R_Ropen_par_,P,false,false){
+}
+
+void Ropen_par::sr1(){
+
+ CAbs_lr1_sym* sym = new Err_no_open_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rclose_par::Rclose_par(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rclose_par",0,Cterminals_phrase_th::R_Rclose_par_,P,false,false){
+}
+
+void Rclose_par::sr1(){
+
+ CAbs_lr1_sym* sym = new Err_no_close_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rparameters::Rparameters(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rparameters",0,Cterminals_phrase_th::R_Rparameters_,P,false,false){
+}
+
+Rfilename_phrase::Rfilename_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfilename_phrase",0,Cterminals_phrase_th::R_Rfilename_phrase_,P,false,false){
+}
+
+Rfilename::Rfilename(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfilename",0,Cterminals_phrase_th::R_Rfilename_,P,false,false){
+}
+
+void Rfilename::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_filename_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rfilename::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_filename_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rfilename_id::Rfilename_id(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rfilename_id",0,Cterminals_phrase_th::R_Rfilename_id_,P,false,false){
+}
+
+void Rfilename_id::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_identifier* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cterminals_phrase_th* fsm = (Cterminals_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->terminals_phrase_->filename_id(sf->p2__);
+
+}
+
+void Rfilename_id::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_filename_id_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rfilename_id::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_filename_id_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rnamespace_phrase::Rnamespace_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rnamespace_phrase",0,Cterminals_phrase_th::R_Rnamespace_phrase_,P,false,false){
+}
+
+void Rnamespace_phrase::sr2(){
+
+ CAbs_lr1_sym* sym = new Err_no_comma_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rnamespace::Rnamespace(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rnamespace",0,Cterminals_phrase_th::R_Rnamespace_,P,false,false){
+}
+
+void Rnamespace::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_namespace_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rnamespace::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_namespace_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rnamespace_id::Rnamespace_id(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rnamespace_id",0,Cterminals_phrase_th::R_Rnamespace_id_,P,false,false){
+}
+
+void Rnamespace_id::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_identifier* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cterminals_phrase_th* fsm = (Cterminals_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->terminals_phrase_->namespace_id(sf->p2__);
+
+}
+
+void Rnamespace_id::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_namespace_id_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rnamespace_id::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_namespace_id_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rt_refs_phrase::Rt_refs_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rt_refs_phrase",0,Cterminals_phrase_th::R_Rt_refs_phrase_,P,false,false){
+}
+
+void Rt_refs_phrase::sr1(){
+ struct SF{
+ Rlint* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Rcweb_k* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ Rlint* p3__;
+ State* s3__;
+ bool abort3__;
+ Rule_s_reuse_entry* rule_s_reuse_entry3__;
+ Rt_refs_kw_must* p4__;
+ State* s4__;
+ bool abort4__;
+ Rule_s_reuse_entry* rule_s_reuse_entry4__;
+ Rt_refs_code* p5__;
+ State* s5__;
+ bool abort5__;
+ Rule_s_reuse_entry* rule_s_reuse_entry5__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(5);
+
+ Cterminals_phrase_th* fsm = (Cterminals_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->terminals_phrase_->terminals_refs_code()
+ ->add_cweb_marker(sf->p2__->cweb_t_);
+
+}
+
+Rt_refs_kw_code::Rt_refs_kw_code(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rt_refs_kw_code",0,Cterminals_phrase_th::R_Rt_refs_kw_code_,P,false,false){
+}
+
+Rt_refs_kw::Rt_refs_kw(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rt_refs_kw",0,Cterminals_phrase_th::R_Rt_refs_kw_,P,false,false){
+}
+
+void Rt_refs_kw::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_terminals_refs* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+
+}
+
+Rt_refs_kw_must::Rt_refs_kw_must(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rt_refs_kw_must",0,Cterminals_phrase_th::R_Rt_refs_kw_must_,P,false,false){
+}
+
+void Rt_refs_kw_must::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_terminals_refs* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+
+}
+
+void Rt_refs_kw_must::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ CAbs_lr1_sym* sym = new Err_missing_terminals_refs_kw;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ sf->p2__->set_auto_delete(true);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rt_refs_kw_must::sr3(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_missing_terminals_refs_kw;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rt_refs_code::Rt_refs_code(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rt_refs_code",0,Cterminals_phrase_th::R_Rt_refs_code_,P,false,false){
+}
+
+void Rt_refs_code::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_syntax_code* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cterminals_phrase_th* fsm = (Cterminals_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->terminals_phrase_->terminals_refs_code(sf->p2__);
+
+}
+
+void Rt_refs_code::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ CAbs_lr1_sym* sym = new Err_no_syntax_code_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ sf->p2__->set_auto_delete(true);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rt_refs_code::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_syntax_code_present;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rsym_defs_phrase::Rsym_defs_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsym_defs_phrase",0,Cterminals_phrase_th::R_Rsym_defs_phrase_,P,false,false){
+}
+
+Rsym_def::Rsym_def(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsym_def",0,Cterminals_phrase_th::R_Rsym_def_,P,false,false){
+}
+
+void Rsym_def::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_terminal_def* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cterminals_phrase_th* fsm = (Cterminals_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ sf->p2__->classification(T_terminal_def::t);
+ CAbs_lr1_sym* r =
+ fsm->terminals_phrase_->add_t_to_alphabet(sf->p2__,rule_info__.parser__);
+ if(r == 0) return;
+ RSVP(r);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rsym_def::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_sym_defs_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rsym_def::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_sym_defs_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rsym_def1s::Rsym_def1s(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsym_def1s",0,Cterminals_phrase_th::R_Rsym_def1s_,P,false,false){
+}
+
+yacco2::THR _YACCO2_CALL_TYPE
+NS_terminals_phrase_th::AR_Rsym_def1(yacco2::Parser* Caller_pp){
+ yacco2::KCHARP ar_name = "AR_Rsym_def1";
+#include "war_begin_code.h"
+
+ using namespace NS_yacco2_T_enum;
+ for(i=1;i<=ie;++i){
+ if(Caller_pp->pp_accept_queue__[i].accept_token__->enumerated_id__
+ != NS_yacco2_T_enum::T_Enum::T_Err_no_terminal_key_present_){
+ goto arbitrated_parameter;
+ }
+ }
+
+#include "war_end_code.h"
+}
+
+Rsym_def1::Rsym_def1(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rsym_def1",0,Cterminals_phrase_th::R_Rsym_def1_,P,false,false){
+}
+
+void Rsym_def1::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_terminal_def* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cterminals_phrase_th* fsm = (Cterminals_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ sf->p2__->classification(T_terminal_def::t);
+ CAbs_lr1_sym* r = fsm->terminals_phrase_->add_t_to_alphabet(sf->p2__,rule_info__.parser__);
+ if(r != 0){
+ RSVP(r);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+
+}
+
+void Rsym_def1::sr2(){
+
+ Cterminals_phrase_th* fsm = (Cterminals_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ RSVP(fsm->terminals_phrase_);
+ fsm->terminals_phrase_ = 0;
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rsym_def1::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ using namespace NS_yacco2_T_enum;
+ int id = sf->p2__->enumerated_id__;
+ if(id >= T_Enum::start_ERR && id <= T_Enum::end_ERR){
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ }else{
+ CAbs_lr1_sym* sym = new Err_not_a_terminal_definition;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ }
+
+}
+
+Rt_sufx_phrase::Rt_sufx_phrase(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rt_sufx_phrase",0,Cterminals_phrase_th::R_Rt_sufx_phrase_,P,false,false){
+}
+
+void Rt_sufx_phrase::sr1(){
+ struct SF{
+ Rlint* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Rcweb_k* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ Rt_sufx_kw_must* p3__;
+ State* s3__;
+ bool abort3__;
+ Rule_s_reuse_entry* rule_s_reuse_entry3__;
+ Rt_sufx_code* p4__;
+ State* s4__;
+ bool abort4__;
+ Rule_s_reuse_entry* rule_s_reuse_entry4__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(4);
+
+ Cterminals_phrase_th* fsm = (Cterminals_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->terminals_phrase_->terminals_sufx_code()
+ ->add_cweb_marker(sf->p2__->cweb_t_);
+
+}
+
+Rt_sufx_kw_code::Rt_sufx_kw_code(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rt_sufx_kw_code",0,Cterminals_phrase_th::R_Rt_sufx_kw_code_,P,false,false){
+}
+
+Rt_sufx_kw::Rt_sufx_kw(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rt_sufx_kw",0,Cterminals_phrase_th::R_Rt_sufx_kw_,P,false,false){
+}
+
+void Rt_sufx_kw::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_terminals_sufx* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+
+}
+
+Rt_sufx_kw_must::Rt_sufx_kw_must(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rt_sufx_kw_must",0,Cterminals_phrase_th::R_Rt_sufx_kw_must_,P,false,false){
+}
+
+void Rt_sufx_kw_must::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_terminals_sufx* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ sf->p2__->set_auto_delete(true);
+
+}
+
+void Rt_sufx_kw_must::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ CAbs_lr1_sym* sym = new Err_missing_terminals_sufx_kw;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ sf->p2__->set_auto_delete(true);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rt_sufx_kw_must::sr3(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ CAbs_lr1_sym* sym = new Err_missing_terminals_sufx_kw;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+
+}
+
+Rt_sufx_code::Rt_sufx_code(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rt_sufx_code",0,Cterminals_phrase_th::R_Rt_sufx_code_,P,false,false){
+}
+
+void Rt_sufx_code::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_syntax_code* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cterminals_phrase_th* fsm = (Cterminals_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->terminals_phrase_->terminals_sufx_code(sf->p2__);
+
+}
+
+void Rt_sufx_code::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ CAbs_lr1_sym* sym = new Err_no_syntax_code_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ sf->p2__->set_auto_delete(true);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+void Rt_sufx_code::sr3(){
+
+ CAbs_lr1_sym* sym = new Err_no_syntax_code_present;
+ sym->set_rc(*rule_info__.parser__->start_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Ropen_brace::Ropen_brace(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Ropen_brace",0,Cterminals_phrase_th::R_Ropen_brace_,P,false,false){
+}
+
+void Ropen_brace::sr1(){
+
+ CAbs_lr1_sym* sym = new Err_no_open_brace;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rclose_brace::Rclose_brace(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rclose_brace",0,Cterminals_phrase_th::R_Rclose_brace_,P,false,false){
+}
+
+void Rclose_brace::sr1(){
+
+ CAbs_lr1_sym* sym = new Err_no_close_brace;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
+Rlint::Rlint(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rlint",0,Cterminals_phrase_th::R_Rlint_,P,false,false){
+}
+
+Rcweb_k::Rcweb_k(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rcweb_k",0,Cterminals_phrase_th::R_Rcweb_k_,P,false,false){
+}
+
+void Rcweb_k::ctor(){
+
+ cweb_t_ = 0;
+
+}
+void Rcweb_k::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_cweb_comment* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ Cterminals_phrase_th* fsm = (Cterminals_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ T_cweb_comment* k = sf->p2__;
+ AST* cwebk_t_ = new AST(*k);
+ cweb_t_ = new AST();
+ T_cweb_marker* cw = new T_cweb_marker(cweb_t_);
+ cw->set_rc(*k,__FILE__,__LINE__);
+ cweb_t_ = cw->ast();
+ AST::set_content(*cweb_t_,*cw);
+ AST::join_pts(*cweb_t_,*cwebk_t_);
+
+}
+
+void Rcweb_k::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+
+}
+
diff --git a/web/yacco2/compiler/grammars/terminals_phrase_th.fsc b/web/yacco2/compiler/grammars/terminals_phrase_th.fsc
new file mode 100644
index 0000000000..35eed3a342
--- /dev/null
+++ b/web/yacco2/compiler/grammars/terminals_phrase_th.fsc
@@ -0,0 +1,27 @@
+/*
+ File: terminals_phrase_th.fsc
+ Date and Time: Fri Jan 30 18:55:27 2015
+*/
+transitive y
+grammar-name "terminals_phrase_th"
+name-space "NS_terminals_phrase_th"
+thread-name "TH_terminals_phrase_th"
+monolithic n
+file-name "terminals_phrase_th.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 2
+ LR1_questionable_shift_operator
+ raw_open_bracket
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 1
+ NS_lint_balls::TH_lint_balls
+end-list-of-transitive-threads
+list-of-used-threads 5
+ NS_cweb_or_c_k::TH_cweb_or_c_k
+ NS_identifier::TH_identifier
+ NS_lint_balls::TH_lint_balls
+ NS_o2_sdc::TH_o2_sdc
+ NS_term_def_ph::TH_term_def_ph
+end-list-of-used-threads
+fsm-comments
+"Parse terminals vocabulary."
diff --git a/web/yacco2/compiler/grammars/terminals_phrase_th.h b/web/yacco2/compiler/grammars/terminals_phrase_th.h
new file mode 100644
index 0000000000..b71a6060e3
--- /dev/null
+++ b/web/yacco2/compiler/grammars/terminals_phrase_th.h
@@ -0,0 +1,361 @@
+/*
+ File: terminals_phrase_th.h
+ Date and Time: Fri Jan 30 18:55:27 2015
+*/
+#ifndef __terminals_phrase_th_h__
+#define __terminals_phrase_th_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "lint_balls.h"
+#include "cweb_or_c_k.h"
+#include "identifier.h"
+#include "term_def_ph.h"
+#include "c_string.h"
+#include "o2_sdc.h"
+
+extern yacco2::Thread_entry ITH_terminals_phrase_th;
+
+extern yacco2::State S1_Cterminals_phrase_th;
+namespace NS_terminals_phrase_th {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_terminals_phrase_th(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_terminals_phrase_th(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[28];
+};
+class Cterminals_phrase_th: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rterminals_phrase_ = 569//start_of_rule_list + 0
+ ,rhs1_Rterminals_phrase_ = 1
+ ,R_Ropen_par_ = 570//start_of_rule_list + 2
+ ,rhs1_Ropen_par_ = 2
+ ,rhs2_Ropen_par_ = 3
+ ,R_Rclose_par_ = 571//start_of_rule_list + 4
+ ,rhs1_Rclose_par_ = 4
+ ,rhs2_Rclose_par_ = 5
+ ,R_Rparameters_ = 572//start_of_rule_list + 6
+ ,rhs1_Rparameters_ = 6
+ ,R_Rfilename_phrase_ = 573//start_of_rule_list + 8
+ ,rhs1_Rfilename_phrase_ = 7
+ ,R_Rfilename_ = 574//start_of_rule_list + 10
+ ,rhs1_Rfilename_ = 8
+ ,rhs2_Rfilename_ = 9
+ ,rhs3_Rfilename_ = 10
+ ,R_Rfilename_id_ = 575//start_of_rule_list + 12
+ ,rhs1_Rfilename_id_ = 11
+ ,rhs2_Rfilename_id_ = 12
+ ,rhs3_Rfilename_id_ = 13
+ ,R_Rnamespace_phrase_ = 576//start_of_rule_list + 14
+ ,rhs1_Rnamespace_phrase_ = 14
+ ,rhs2_Rnamespace_phrase_ = 15
+ ,R_Rnamespace_ = 577//start_of_rule_list + 16
+ ,rhs1_Rnamespace_ = 16
+ ,rhs2_Rnamespace_ = 17
+ ,rhs3_Rnamespace_ = 18
+ ,R_Rnamespace_id_ = 578//start_of_rule_list + 18
+ ,rhs1_Rnamespace_id_ = 19
+ ,rhs2_Rnamespace_id_ = 20
+ ,rhs3_Rnamespace_id_ = 21
+ ,R_Rt_refs_phrase_ = 579//start_of_rule_list + 20
+ ,rhs1_Rt_refs_phrase_ = 22
+ ,rhs2_Rt_refs_phrase_ = 23
+ ,R_Rt_refs_kw_code_ = 580//start_of_rule_list + 22
+ ,rhs1_Rt_refs_kw_code_ = 24
+ ,rhs2_Rt_refs_kw_code_ = 25
+ ,R_Rt_refs_kw_ = 581//start_of_rule_list + 24
+ ,rhs1_Rt_refs_kw_ = 26
+ ,R_Rt_refs_kw_must_ = 582//start_of_rule_list + 26
+ ,rhs1_Rt_refs_kw_must_ = 27
+ ,rhs2_Rt_refs_kw_must_ = 28
+ ,rhs3_Rt_refs_kw_must_ = 29
+ ,R_Rt_refs_code_ = 583//start_of_rule_list + 28
+ ,rhs1_Rt_refs_code_ = 30
+ ,rhs2_Rt_refs_code_ = 31
+ ,rhs3_Rt_refs_code_ = 32
+ ,R_Rsym_defs_phrase_ = 584//start_of_rule_list + 30
+ ,rhs1_Rsym_defs_phrase_ = 33
+ ,R_Rsym_def_ = 585//start_of_rule_list + 32
+ ,rhs1_Rsym_def_ = 34
+ ,rhs2_Rsym_def_ = 35
+ ,rhs3_Rsym_def_ = 36
+ ,R_Rsym_def1s_ = 586//start_of_rule_list + 34
+ ,rhs1_Rsym_def1s_ = 37
+ ,rhs2_Rsym_def1s_ = 38
+ ,rhs3_Rsym_def1s_ = 39
+ ,R_Rsym_def1_ = 587//start_of_rule_list + 36
+ ,rhs1_Rsym_def1_ = 40
+ ,rhs2_Rsym_def1_ = 41
+ ,rhs3_Rsym_def1_ = 42
+ ,R_Rt_sufx_phrase_ = 588//start_of_rule_list + 38
+ ,rhs1_Rt_sufx_phrase_ = 43
+ ,rhs2_Rt_sufx_phrase_ = 44
+ ,R_Rt_sufx_kw_code_ = 589//start_of_rule_list + 40
+ ,rhs1_Rt_sufx_kw_code_ = 45
+ ,rhs2_Rt_sufx_kw_code_ = 46
+ ,R_Rt_sufx_kw_ = 590//start_of_rule_list + 42
+ ,rhs1_Rt_sufx_kw_ = 47
+ ,R_Rt_sufx_kw_must_ = 591//start_of_rule_list + 44
+ ,rhs1_Rt_sufx_kw_must_ = 48
+ ,rhs2_Rt_sufx_kw_must_ = 49
+ ,rhs3_Rt_sufx_kw_must_ = 50
+ ,R_Rt_sufx_code_ = 592//start_of_rule_list + 46
+ ,rhs1_Rt_sufx_code_ = 51
+ ,rhs2_Rt_sufx_code_ = 52
+ ,rhs3_Rt_sufx_code_ = 53
+ ,R_Ropen_brace_ = 593//start_of_rule_list + 48
+ ,rhs1_Ropen_brace_ = 54
+ ,rhs2_Ropen_brace_ = 55
+ ,R_Rclose_brace_ = 594//start_of_rule_list + 50
+ ,rhs1_Rclose_brace_ = 56
+ ,rhs2_Rclose_brace_ = 57
+ ,R_Rlint_ = 595//start_of_rule_list + 52
+ ,rhs1_Rlint_ = 58
+ ,rhs2_Rlint_ = 59
+ ,R_Rcweb_k_ = 596//start_of_rule_list + 54
+ ,rhs1_Rcweb_k_ = 60
+ ,rhs2_Rcweb_k_ = 61
+ };
+ //no of la sets = 10
+ //no of states = 104
+ Cterminals_phrase_th();
+ ~Cterminals_phrase_th();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[62];
+
+ public:
+ T_terminals_phrase* terminals_phrase_;
+
+ };
+struct Rterminals_phrase;
+struct Ropen_par;
+struct Rclose_par;
+struct Rparameters;
+struct Rfilename_phrase;
+struct Rfilename;
+struct Rfilename_id;
+struct Rnamespace_phrase;
+struct Rnamespace;
+struct Rnamespace_id;
+struct Rt_refs_phrase;
+struct Rt_refs_kw_code;
+struct Rt_refs_kw;
+struct Rt_refs_kw_must;
+struct Rt_refs_code;
+struct Rsym_defs_phrase;
+struct Rsym_def;
+struct Rsym_def1s;
+struct Rsym_def1;
+struct Rt_sufx_phrase;
+struct Rt_sufx_kw_code;
+struct Rt_sufx_kw;
+struct Rt_sufx_kw_must;
+struct Rt_sufx_code;
+struct Ropen_brace;
+struct Rclose_brace;
+struct Rlint;
+struct Rcweb_k;
+struct Rterminals_phrase:public yacco2::CAbs_lr1_sym {
+ Rterminals_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Ropen_par:public yacco2::CAbs_lr1_sym {
+ Ropen_par(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rclose_par:public yacco2::CAbs_lr1_sym {
+ Rclose_par(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rparameters:public yacco2::CAbs_lr1_sym {
+ Rparameters(yacco2::Parser* P);
+ public:
+};
+
+struct Rfilename_phrase:public yacco2::CAbs_lr1_sym {
+ Rfilename_phrase(yacco2::Parser* P);
+ public:
+};
+
+struct Rfilename:public yacco2::CAbs_lr1_sym {
+ Rfilename(yacco2::Parser* P);
+ public:
+ void sr2();
+ void sr3();
+};
+
+struct Rfilename_id:public yacco2::CAbs_lr1_sym {
+ Rfilename_id(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Rnamespace_phrase:public yacco2::CAbs_lr1_sym {
+ Rnamespace_phrase(yacco2::Parser* P);
+ public:
+ void sr2();
+};
+
+struct Rnamespace:public yacco2::CAbs_lr1_sym {
+ Rnamespace(yacco2::Parser* P);
+ public:
+ void sr2();
+ void sr3();
+};
+
+struct Rnamespace_id:public yacco2::CAbs_lr1_sym {
+ Rnamespace_id(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Rt_refs_phrase:public yacco2::CAbs_lr1_sym {
+ Rt_refs_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rt_refs_kw_code:public yacco2::CAbs_lr1_sym {
+ Rt_refs_kw_code(yacco2::Parser* P);
+ public:
+};
+
+struct Rt_refs_kw:public yacco2::CAbs_lr1_sym {
+ Rt_refs_kw(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rt_refs_kw_must:public yacco2::CAbs_lr1_sym {
+ Rt_refs_kw_must(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Rt_refs_code:public yacco2::CAbs_lr1_sym {
+ Rt_refs_code(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Rsym_defs_phrase:public yacco2::CAbs_lr1_sym {
+ Rsym_defs_phrase(yacco2::Parser* P);
+ public:
+};
+
+struct Rsym_def:public yacco2::CAbs_lr1_sym {
+ Rsym_def(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Rsym_def1s:public yacco2::CAbs_lr1_sym {
+ Rsym_def1s(yacco2::Parser* P);
+ public:
+};
+
+yacco2::THR _YACCO2_CALL_TYPE
+AR_Rsym_def1(yacco2::Parser* Caller_pp);// rule's arbitrator
+struct Rsym_def1:public yacco2::CAbs_lr1_sym {
+ Rsym_def1(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Rt_sufx_phrase:public yacco2::CAbs_lr1_sym {
+ Rt_sufx_phrase(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rt_sufx_kw_code:public yacco2::CAbs_lr1_sym {
+ Rt_sufx_kw_code(yacco2::Parser* P);
+ public:
+};
+
+struct Rt_sufx_kw:public yacco2::CAbs_lr1_sym {
+ Rt_sufx_kw(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rt_sufx_kw_must:public yacco2::CAbs_lr1_sym {
+ Rt_sufx_kw_must(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Rt_sufx_code:public yacco2::CAbs_lr1_sym {
+ Rt_sufx_code(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+};
+
+struct Ropen_brace:public yacco2::CAbs_lr1_sym {
+ Ropen_brace(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rclose_brace:public yacco2::CAbs_lr1_sym {
+ Rclose_brace(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rlint:public yacco2::CAbs_lr1_sym {
+ Rlint(yacco2::Parser* P);
+ public:
+};
+
+struct Rcweb_k:public yacco2::CAbs_lr1_sym {
+ Rcweb_k(yacco2::Parser* P);
+ void ctor();
+
+ AST* cweb_t_;
+
+ public:
+ void sr1();
+ void sr2();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/terminals_phrase_th.lex b/web/yacco2/compiler/grammars/terminals_phrase_th.lex
new file mode 100644
index 0000000000..1ccf8b6cf3
--- /dev/null
+++ b/web/yacco2/compiler/grammars/terminals_phrase_th.lex
@@ -0,0 +1,588 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: terminals_phrase_th.lex
+Dates: 24 May 2004
+Purpose: parse terminals phrase
+ The keeps its own local symbol table: map and list.
+ The terminal_def_phrase adds symbol to Yacco2's
+ global symbol table.
+Output: terminals_phrase
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |terminals_phrase_th| thread.\fbreak
+Parse terminals phrase. It goes thru the terminal definitions
+and keeps its own local symbol table: map and list.
+The |terminal_def_phrase| thread adds each symbol to \O2's
+global symbol table.
+It calls the common backend |term_def_ph| thread
+extractor of symbol definition.
+
+The only wrinkle is in the handling of pre / post amble directives
+|#terminal-refs| and |#terminals-sufx|.
+These directives are outside the normal containment within a rule, subrule,
+ or ``fsm'' entities.
+They come before or after the terminal definitions.
+Why the wrinkle? |cweb| introductory comments
+for these directives come before the directive declaration:
+just like syntax directed code directives.
+They could stymie the grammar writer by applying
+this approach to introductory comments for rules which
+is an error;
+|cweb| introductory comments for a
+rule or terminals of all colours comes between
+the key / name and just before their class constructs.\fbreak
+
+ \fbreak
+Example of a terminals vocabulary to parse:\fbreak
+\listing{"/usr/local/yacco2/diagrams+etc/Tsym.txt"}
+@/
+fsm
+(fsm-id "terminals_phrase_th.lex"
+,fsm-filename terminals_phrase_th
+,fsm-namespace NS_terminals_phrase_th
+,fsm-class Cterminals_phrase_th{
+ user-prefix-declaration
+#include "lint_balls.h"
+#include "cweb_or_c_k.h"
+#include "identifier.h"
+#include "term_def_ph.h"
+#include "c_string.h"
+#include "o2_sdc.h"
+ ***
+ user-declaration
+ public:
+ T_terminals_phrase* terminals_phrase_;
+ ***
+ op
+ if(terminals_phrase_ != 0){
+ delete terminals_phrase_;
+ terminals_phrase_ = 0;
+ }
+ terminals_phrase_ = new T_terminals_phrase;
+ terminals_phrase_->set_rc(*parser__->start_token__,__FILE__,__LINE__);
+ AST* t = new AST(*terminals_phrase_);
+ terminals_phrase_->phrase_tree(t);
+ ***
+ constructor
+ terminals_phrase_ = 0;
+ ***
+}
+,fsm-version "1.0",fsm-date "22 mar 2004",fsm-debug "false"
+,fsm-comments "Parse terminals vocabulary.")
+parallel-parser
+(
+ parallel-thread-function
+ TH_terminals_phrase_th
+ ***
+ parallel-la-boundary
+ eolr
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rterminals_phrase (){
+ -> Rlint
+ Ropen_par
+ Rparameters
+ Rclose_par
+ Rlint
+ Ropen_brace
+ Rt_refs_phrase
+ Rsym_defs_phrase
+ Rt_sufx_phrase
+ Rlint
+ Rclose_brace
+ {
+ op
+ Cterminals_phrase_th* fsm = (Cterminals_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ RSVP(fsm->terminals_phrase_);
+ fsm->terminals_phrase_ = 0;
+ ***
+ }
+}
+
+Ropen_par (){
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_open_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> "("
+}
+
+Rclose_par (){
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_close_parenthesis;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ")"
+}
+
+Rparameters (){
+ -> Rlint
+ Rfilename_phrase Rlint
+ Rnamespace_phrase Rlint
+}
+
+Rfilename_phrase (){
+ -> Rfilename Rlint Rfilename_id
+}
+
+Rfilename (){
+ -> ||| "#file-name" NS_identifier::TH_identifier
+ -> ||| |?| NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_filename_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_filename_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rfilename_id (){
+ -> ||| identifier NS_identifier::TH_identifier {
+ op
+ Cterminals_phrase_th* fsm = (Cterminals_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->terminals_phrase_->filename_id(sf->p2__);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_filename_id_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_filename_id_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rnamespace_phrase (){
+ -> "," Rlint Rnamespace Rlint Rnamespace_id
+ -> {
+ op
+ CAbs_lr1_sym* sym = new Err_no_comma_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rnamespace (){
+ -> ||| "#name-space" NS_identifier::TH_identifier
+ -> ||| |?| NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_namespace_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_namespace_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rnamespace_id (){
+ -> ||| identifier NS_identifier::TH_identifier {
+ op
+ Cterminals_phrase_th* fsm = (Cterminals_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->terminals_phrase_->namespace_id(sf->p2__);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_namespace_id_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_namespace_id_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rt_refs_phrase (){
+ -> Rlint Rcweb_k Rlint Rt_refs_kw_must Rt_refs_code {
+ op
+ Cterminals_phrase_th* fsm = (Cterminals_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->terminals_phrase_->terminals_refs_code()
+ ->add_cweb_marker(sf->p2__->cweb_t_);
+ ***
+ }
+ -> Rlint Rt_refs_kw_code
+}
+
+Rt_refs_kw_code (){
+ -> Rt_refs_kw Rt_refs_code
+ ->
+}
+
+Rt_refs_kw
+/@
+Drop the keyword as it is not needed. So delete at pop time.
+Mark the directive as seen just in case it is repeated and
+so it's an error situation.
+@/
+(){
+ -> ||| "#terminals-refs" NS_identifier::TH_identifier {
+ op
+ sf->p2__->set_auto_delete(true);
+ ***
+ }
+}
+
+Rt_refs_kw_must
+/@
+Drop the keyword as it is not needed. So delete at pop time.
+Mark the directive as seen just in case it is repeated and
+so it's an error situation.
+@/
+(){
+ -> ||| "#terminals-refs" NS_identifier::TH_identifier {
+ op
+ sf->p2__->set_auto_delete(true);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ CAbs_lr1_sym* sym = new Err_missing_terminals_refs_kw;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ sf->p2__->set_auto_delete(true);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_missing_terminals_refs_kw;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rt_refs_code (){
+ -> ||| "syntax-code" NS_o2_sdc::TH_o2_sdc {
+ op
+ Cterminals_phrase_th* fsm = (Cterminals_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->terminals_phrase_->terminals_refs_code(sf->p2__);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ CAbs_lr1_sym* sym = new Err_no_syntax_code_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ sf->p2__->set_auto_delete(true);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_syntax_code_present;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rsym_defs_phrase (){
+ -> Rlint Rsym_def Rlint Rsym_def1s
+}
+
+Rsym_def (){
+ -> ||| "terminal-def" NS_term_def_ph::TH_term_def_ph {
+ op
+ Cterminals_phrase_th* fsm = (Cterminals_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ sf->p2__->classification(T_terminal_def::t);
+ CAbs_lr1_sym* r =
+ fsm->terminals_phrase_->add_t_to_alphabet(sf->p2__,rule_info__.parser__);
+ if(r == 0) return;
+ RSVP(r);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ sf->p2__->set_auto_delete(true);
+ CAbs_lr1_sym* sym = new Err_no_sym_defs_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_sym_defs_present;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Rsym_def1s (){
+ -> Rsym_def1 Rlint
+ -> Rsym_def1s Rsym_def1 Rlint
+ ->
+}
+
+Rsym_def1 (
+//lhs,
+parallel-control-monitor{
+/@
+ Note how the arbitration is done: list check.
+ In this grammar, at most 2 terminals can be returned.
+ When 2 terminals are returned, one is in error and the other is
+ a result from the terminals-sufx. This is either the
+ syntax-code or an error: eg no code present.
+@/
+ arbitrator-code
+ using namespace NS_yacco2_T_enum;
+ for(i=1;i<=ie;++i){
+ if(Caller_pp->pp_accept_queue__[i].accept_token__->enumerated_id__
+ != NS_yacco2_T_enum::T_Enum::T_Err_no_terminal_key_present_){
+ goto arbitrated_parameter;
+ }
+ }
+ ***
+ }
+){
+ -> ||| "terminal-def" NS_term_def_ph::TH_term_def_ph {
+ op
+ Cterminals_phrase_th* fsm = (Cterminals_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ sf->p2__->classification(T_terminal_def::t);
+ CAbs_lr1_sym* r = fsm->terminals_phrase_->add_t_to_alphabet(sf->p2__,rule_info__.parser__);
+ if(r != 0){
+ RSVP(r);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ ***
+ }
+ -> ||| "no key-value present in definition" NULL {
+ op
+ Cterminals_phrase_th* fsm = (Cterminals_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ RSVP(fsm->terminals_phrase_);
+ fsm->terminals_phrase_ = 0;
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ using namespace NS_yacco2_T_enum;
+ int id = sf->p2__->enumerated_id__;
+ if(id >= T_Enum::start_ERR && id <= T_Enum::end_ERR){
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ }else{
+ CAbs_lr1_sym* sym = new Err_not_a_terminal_definition;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ }
+ ***
+ }
+}
+
+Rt_sufx_phrase (){
+ -> Rlint Rcweb_k Rt_sufx_kw_must Rt_sufx_code {
+ op
+ Cterminals_phrase_th* fsm = (Cterminals_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->terminals_phrase_->terminals_sufx_code()
+ ->add_cweb_marker(sf->p2__->cweb_t_);
+ ***
+ }
+ -> Rlint Rt_sufx_kw_code
+}
+
+Rt_sufx_kw_code
+/@
+If a |cweb| comment is seen, deposit it in the
+directive's syntax directed code.
+@/
+(){
+ -> Rt_sufx_kw Rt_sufx_code
+ ->
+}
+
+Rt_sufx_kw
+/@
+Drop keyword as it's presence is indicated elsewhere.
+So pop the cork and let the good times roll.
+@/
+
+(){
+ -> ||| "#terminals-sufx" NS_identifier::TH_identifier {
+ op
+ sf->p2__->set_auto_delete(true);
+ ***
+ }
+}
+
+Rt_sufx_kw_must
+/@
+Drop keyword as it's presence is indicated elsewhere.
+So pop the cork and let the good times roll.
+@/
+
+(){
+ -> ||| "#terminals-sufx" NS_identifier::TH_identifier {
+ op
+ sf->p2__->set_auto_delete(true);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ CAbs_lr1_sym* sym = new Err_missing_terminals_sufx_kw;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ sf->p2__->set_auto_delete(true);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_missing_terminals_sufx_kw;
+ sym->set_rc(*sf->p1__,__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ ***
+ }
+}
+
+Rt_sufx_code (){
+ -> ||| "syntax-code" NS_o2_sdc::TH_o2_sdc {
+ op
+ Cterminals_phrase_th* fsm = (Cterminals_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ fsm->terminals_phrase_->terminals_sufx_code(sf->p2__);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ CAbs_lr1_sym* sym = new Err_no_syntax_code_present;
+ sym->set_rc(*sf->p2__,__FILE__,__LINE__);
+ RSVP(sym);
+ sf->p2__->set_auto_delete(true);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_syntax_code_present;
+ sym->set_rc(*rule_info__.parser__->start_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+
+Ropen_brace (){
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_open_brace;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> "{"
+}
+
+Rclose_brace (){
+ -> |?| {
+ op
+ CAbs_lr1_sym* sym = new Err_no_close_brace;
+ sym->set_rc(*rule_info__.parser__->current_token(),__FILE__,__LINE__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+ -> "}"
+}
+
+Rlint (){
+ -> ||| lint NS_lint_balls::TH_lint_balls
+ ->
+}
+
+Rcweb_k (
+lhs {
+ user-declaration
+ AST* cweb_t_;
+ ***
+ constructor
+ cweb_t_ = 0;
+ ***
+ }
+){
+
+ -> ||| "cweb-comment" NS_cweb_or_c_k::TH_cweb_or_c_k {
+ op
+ Cterminals_phrase_th* fsm = (Cterminals_phrase_th*)rule_info__.parser__->fsm_tbl__;
+ T_cweb_comment* k = sf->p2__;
+ AST* cwebk_t_ = new AST(*k);
+ cweb_t_ = new AST();
+ T_cweb_marker* cw = new T_cweb_marker(cweb_t_);
+ cw->set_rc(*k,__FILE__,__LINE__);
+ cweb_t_ = cw->ast();
+ AST::set_content(*cweb_t_,*cw);
+ AST::join_pts(*cweb_t_,*cwebk_t_);
+ ***
+ }
+ -> ||| |?| NULL {
+ op
+ RSVP(sf->p2__);
+ rule_info__.parser__->set_stop_parse(true);
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/terminals_phrase_thsym.cpp b/web/yacco2/compiler/grammars/terminals_phrase_thsym.cpp
new file mode 100644
index 0000000000..a355c76fb0
--- /dev/null
+++ b/web/yacco2/compiler/grammars/terminals_phrase_thsym.cpp
@@ -0,0 +1,944 @@
+/*
+ File: terminals_phrase_thsym.cpp
+ Date and Time: Fri Jan 30 18:55:27 2015
+*/
+#include "terminals_phrase_th.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_terminals_phrase_th;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_terminals_phrase_th::TH_terminals_phrase_th(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_terminals_phrase_th;
+ NS_terminals_phrase_th::Cterminals_phrase_th Cterminals_phrase_th_;// parallel-parser's parse table
+#define ssPARSE_TABLE Cterminals_phrase_th_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_terminals_phrase_th::PROC_TH_terminals_phrase_th(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_terminals_phrase_th";
+ static bool one_time(false);
+ static NS_terminals_phrase_th::Cterminals_phrase_th* NS_terminals_phrase_th_Cterminals_phrase_th_(0);// parallel-parser's fsm table
+ static Parser* NS_terminals_phrase_th_Cterminals_phrase_th_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_terminals_phrase_th_Cterminals_phrase_th_ = new NS_terminals_phrase_th::Cterminals_phrase_th();// parallel-parser's fsm table
+ NS_terminals_phrase_th_Cterminals_phrase_th_parser = new Parser(*NS_terminals_phrase_th_Cterminals_phrase_th_,Caller_pp);
+ }
+ proc_parser = NS_terminals_phrase_th_Cterminals_phrase_th_parser;
+#include "wproc_pp_core.h"
+}
+void
+Cterminals_phrase_th::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rterminals_phrase_:{
+ Rterminals_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rterminals_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rterminals_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 11;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Ropen_par_:{
+ Ropen_par* sym;
+ if(re->rule_ == 0){
+ sym = new Ropen_par(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ropen_par*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Ropen_par_:{
+ Ropen_par* sym;
+ if(re->rule_ == 0){
+ sym = new Ropen_par(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ropen_par*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rclose_par_:{
+ Rclose_par* sym;
+ if(re->rule_ == 0){
+ sym = new Rclose_par(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclose_par*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rclose_par_:{
+ Rclose_par* sym;
+ if(re->rule_ == 0){
+ sym = new Rclose_par(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclose_par*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rparameters_:{
+ Rparameters* sym;
+ if(re->rule_ == 0){
+ sym = new Rparameters(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rparameters*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ return;}
+ case rhs1_Rfilename_phrase_:{
+ Rfilename_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rfilename_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfilename_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ return;}
+ case rhs1_Rfilename_:{
+ Rfilename* sym;
+ if(re->rule_ == 0){
+ sym = new Rfilename(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfilename*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rfilename_:{
+ Rfilename* sym;
+ if(re->rule_ == 0){
+ sym = new Rfilename(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfilename*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rfilename_:{
+ Rfilename* sym;
+ if(re->rule_ == 0){
+ sym = new Rfilename(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfilename*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rfilename_id_:{
+ Rfilename_id* sym;
+ if(re->rule_ == 0){
+ sym = new Rfilename_id(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfilename_id*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rfilename_id_:{
+ Rfilename_id* sym;
+ if(re->rule_ == 0){
+ sym = new Rfilename_id(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfilename_id*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rfilename_id_:{
+ Rfilename_id* sym;
+ if(re->rule_ == 0){
+ sym = new Rfilename_id(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rfilename_id*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rnamespace_phrase_:{
+ Rnamespace_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ return;}
+ case rhs2_Rnamespace_phrase_:{
+ Rnamespace_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ sym->sr2();
+ return;}
+ case rhs1_Rnamespace_:{
+ Rnamespace* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rnamespace_:{
+ Rnamespace* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rnamespace_:{
+ Rnamespace* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rnamespace_id_:{
+ Rnamespace_id* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace_id(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace_id*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rnamespace_id_:{
+ Rnamespace_id* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace_id(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace_id*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rnamespace_id_:{
+ Rnamespace_id* sym;
+ if(re->rule_ == 0){
+ sym = new Rnamespace_id(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rnamespace_id*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rt_refs_phrase_:{
+ Rt_refs_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rt_refs_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rt_refs_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 5;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rt_refs_phrase_:{
+ Rt_refs_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rt_refs_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rt_refs_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rt_refs_kw_code_:{
+ Rt_refs_kw_code* sym;
+ if(re->rule_ == 0){
+ sym = new Rt_refs_kw_code(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rt_refs_kw_code*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rt_refs_kw_code_:{
+ Rt_refs_kw_code* sym;
+ if(re->rule_ == 0){
+ sym = new Rt_refs_kw_code(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rt_refs_kw_code*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs1_Rt_refs_kw_:{
+ Rt_refs_kw* sym;
+ if(re->rule_ == 0){
+ sym = new Rt_refs_kw(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rt_refs_kw*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rt_refs_kw_must_:{
+ Rt_refs_kw_must* sym;
+ if(re->rule_ == 0){
+ sym = new Rt_refs_kw_must(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rt_refs_kw_must*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rt_refs_kw_must_:{
+ Rt_refs_kw_must* sym;
+ if(re->rule_ == 0){
+ sym = new Rt_refs_kw_must(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rt_refs_kw_must*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rt_refs_kw_must_:{
+ Rt_refs_kw_must* sym;
+ if(re->rule_ == 0){
+ sym = new Rt_refs_kw_must(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rt_refs_kw_must*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rt_refs_code_:{
+ Rt_refs_code* sym;
+ if(re->rule_ == 0){
+ sym = new Rt_refs_code(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rt_refs_code*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rt_refs_code_:{
+ Rt_refs_code* sym;
+ if(re->rule_ == 0){
+ sym = new Rt_refs_code(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rt_refs_code*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rt_refs_code_:{
+ Rt_refs_code* sym;
+ if(re->rule_ == 0){
+ sym = new Rt_refs_code(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rt_refs_code*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rsym_defs_phrase_:{
+ Rsym_defs_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_defs_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_defs_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 4;
+
+
+ return;}
+ case rhs1_Rsym_def_:{
+ Rsym_def* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_def(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_def*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rsym_def_:{
+ Rsym_def* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_def(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_def*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rsym_def_:{
+ Rsym_def* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_def(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_def*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rsym_def1s_:{
+ Rsym_def1s* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_def1s(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_def1s*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rsym_def1s_:{
+ Rsym_def1s* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_def1s(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_def1s*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 3;
+
+
+ return;}
+ case rhs3_Rsym_def1s_:{
+ Rsym_def1s* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_def1s(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_def1s*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs1_Rsym_def1_:{
+ Rsym_def1* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_def1(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_def1*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rsym_def1_:{
+ Rsym_def1* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_def1(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_def1*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rsym_def1_:{
+ Rsym_def1* sym;
+ if(re->rule_ == 0){
+ sym = new Rsym_def1(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rsym_def1*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rt_sufx_phrase_:{
+ Rt_sufx_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rt_sufx_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rt_sufx_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 4;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rt_sufx_phrase_:{
+ Rt_sufx_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rt_sufx_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rt_sufx_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rt_sufx_kw_code_:{
+ Rt_sufx_kw_code* sym;
+ if(re->rule_ == 0){
+ sym = new Rt_sufx_kw_code(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rt_sufx_kw_code*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rt_sufx_kw_code_:{
+ Rt_sufx_kw_code* sym;
+ if(re->rule_ == 0){
+ sym = new Rt_sufx_kw_code(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rt_sufx_kw_code*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs1_Rt_sufx_kw_:{
+ Rt_sufx_kw* sym;
+ if(re->rule_ == 0){
+ sym = new Rt_sufx_kw(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rt_sufx_kw*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rt_sufx_kw_must_:{
+ Rt_sufx_kw_must* sym;
+ if(re->rule_ == 0){
+ sym = new Rt_sufx_kw_must(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rt_sufx_kw_must*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rt_sufx_kw_must_:{
+ Rt_sufx_kw_must* sym;
+ if(re->rule_ == 0){
+ sym = new Rt_sufx_kw_must(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rt_sufx_kw_must*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rt_sufx_kw_must_:{
+ Rt_sufx_kw_must* sym;
+ if(re->rule_ == 0){
+ sym = new Rt_sufx_kw_must(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rt_sufx_kw_must*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Rt_sufx_code_:{
+ Rt_sufx_code* sym;
+ if(re->rule_ == 0){
+ sym = new Rt_sufx_code(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rt_sufx_code*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rt_sufx_code_:{
+ Rt_sufx_code* sym;
+ if(re->rule_ == 0){
+ sym = new Rt_sufx_code(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rt_sufx_code*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rt_sufx_code_:{
+ Rt_sufx_code* sym;
+ if(re->rule_ == 0){
+ sym = new Rt_sufx_code(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rt_sufx_code*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ case rhs1_Ropen_brace_:{
+ Ropen_brace* sym;
+ if(re->rule_ == 0){
+ sym = new Ropen_brace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ropen_brace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Ropen_brace_:{
+ Ropen_brace* sym;
+ if(re->rule_ == 0){
+ sym = new Ropen_brace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Ropen_brace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rclose_brace_:{
+ Rclose_brace* sym;
+ if(re->rule_ == 0){
+ sym = new Rclose_brace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclose_brace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rclose_brace_:{
+ Rclose_brace* sym;
+ if(re->rule_ == 0){
+ sym = new Rclose_brace(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rclose_brace*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rlint_:{
+ Rlint* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs2_Rlint_:{
+ Rlint* sym;
+ if(re->rule_ == 0){
+ sym = new Rlint(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rlint*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 0;
+
+
+ return;}
+ case rhs1_Rcweb_k_:{
+ Rcweb_k* sym;
+ if(re->rule_ == 0){
+ sym = new Rcweb_k(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rcweb_k*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rcweb_k_:{
+ Rcweb_k* sym;
+ if(re->rule_ == 0){
+ sym = new Rcweb_k(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rcweb_k*)re->rule_;
+ }
+ sym->ctor();
+
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/terminals_phrase_thtbl.cpp b/web/yacco2/compiler/grammars/terminals_phrase_thtbl.cpp
new file mode 100644
index 0000000000..a443f144d9
--- /dev/null
+++ b/web/yacco2/compiler/grammars/terminals_phrase_thtbl.cpp
@@ -0,0 +1,2202 @@
+/*
+ File: terminals_phrase_thtbl.cpp
+ Date and Time: Fri Jan 30 18:55:27 2015
+*/
+#include "terminals_phrase_th.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_terminals_phrase_th;// grammar's ns
+// first set terminals
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+// raw_open_bracket
+// raw_close_bracket
+// raw_comma
+// raw_open_brace
+// raw_close_brace
+yacco2::UCHAR LA1_Cterminals_phrase_th[] ={
+3
+,0,17
+,6,19
+,16,40
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+yacco2::UCHAR LA2_Cterminals_phrase_th[] ={
+1
+,0,17
+};
+// LR1_questionable_shift_operator
+// raw_open_brace
+yacco2::UCHAR LA3_Cterminals_phrase_th[] ={
+2
+,0,1
+,16,8
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+// raw_close_brace
+yacco2::UCHAR LA4_Cterminals_phrase_th[] ={
+2
+,0,17
+,16,32
+};
+// LR1_questionable_shift_operator
+// raw_close_brace
+yacco2::UCHAR LA5_Cterminals_phrase_th[] ={
+2
+,0,1
+,16,32
+};
+// LR1_eolr
+yacco2::UCHAR LA6_Cterminals_phrase_th[] ={
+1
+,0,4
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+// raw_close_bracket
+// raw_comma
+yacco2::UCHAR LA7_Cterminals_phrase_th[] ={
+2
+,0,17
+,6,18
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+// raw_close_bracket
+yacco2::UCHAR LA8_Cterminals_phrase_th[] ={
+2
+,0,17
+,6,2
+};
+// LR1_questionable_shift_operator
+// raw_close_bracket
+yacco2::UCHAR LA9_Cterminals_phrase_th[] ={
+2
+,0,1
+,6,2
+};
+// LR1_questionable_shift_operator
+// LR1_reduce_operator
+// raw_open_brace
+yacco2::UCHAR LA10_Cterminals_phrase_th[] ={
+2
+,0,17
+,16,8
+};
+extern yacco2::State S1_Cterminals_phrase_th;
+extern yacco2::State S2_Cterminals_phrase_th;
+struct S2ttd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S2ttd_Cterminals_phrase_th S2tt_Cterminals_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_lint_balls
+};
+extern yacco2::State S3_Cterminals_phrase_th;
+extern yacco2::State S4_Cterminals_phrase_th;
+extern yacco2::State S5_Cterminals_phrase_th;
+extern yacco2::State S6_Cterminals_phrase_th;
+extern yacco2::State S7_Cterminals_phrase_th;
+extern yacco2::State S8_Cterminals_phrase_th;
+extern yacco2::State S9_Cterminals_phrase_th;
+extern yacco2::State S10_Cterminals_phrase_th;
+extern yacco2::State S11_Cterminals_phrase_th;
+extern yacco2::State S12_Cterminals_phrase_th;
+extern yacco2::State S13_Cterminals_phrase_th;
+extern yacco2::State S14_Cterminals_phrase_th;
+extern yacco2::State S15_Cterminals_phrase_th;
+extern yacco2::State S16_Cterminals_phrase_th;
+extern yacco2::State S17_Cterminals_phrase_th;
+extern yacco2::State S18_Cterminals_phrase_th;
+extern yacco2::State S19_Cterminals_phrase_th;
+extern yacco2::State S20_Cterminals_phrase_th;
+extern yacco2::State S21_Cterminals_phrase_th;
+struct S21ttd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S21ttd_Cterminals_phrase_th S21tt_Cterminals_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S22_Cterminals_phrase_th;
+extern yacco2::State S23_Cterminals_phrase_th;
+extern yacco2::State S24_Cterminals_phrase_th;
+extern yacco2::State S25_Cterminals_phrase_th;
+extern yacco2::State S26_Cterminals_phrase_th;
+extern yacco2::State S27_Cterminals_phrase_th;
+extern yacco2::State S28_Cterminals_phrase_th;
+extern yacco2::State S29_Cterminals_phrase_th;
+extern yacco2::State S30_Cterminals_phrase_th;
+extern yacco2::State S31_Cterminals_phrase_th;
+struct S31ttd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S31ttd_Cterminals_phrase_th S31tt_Cterminals_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S32_Cterminals_phrase_th;
+extern yacco2::State S33_Cterminals_phrase_th;
+extern yacco2::State S34_Cterminals_phrase_th;
+extern yacco2::State S35_Cterminals_phrase_th;
+extern yacco2::State S36_Cterminals_phrase_th;
+extern yacco2::State S37_Cterminals_phrase_th;
+extern yacco2::State S38_Cterminals_phrase_th;
+extern yacco2::State S39_Cterminals_phrase_th;
+extern yacco2::State S40_Cterminals_phrase_th;
+struct S40ttd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S40ttd_Cterminals_phrase_th S40tt_Cterminals_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S41_Cterminals_phrase_th;
+extern yacco2::State S42_Cterminals_phrase_th;
+extern yacco2::State S43_Cterminals_phrase_th;
+extern yacco2::State S44_Cterminals_phrase_th;
+extern yacco2::State S45_Cterminals_phrase_th;
+extern yacco2::State S46_Cterminals_phrase_th;
+extern yacco2::State S47_Cterminals_phrase_th;
+extern yacco2::State S48_Cterminals_phrase_th;
+extern yacco2::State S49_Cterminals_phrase_th;
+struct S49ttd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[2];
+};
+S49ttd_Cterminals_phrase_th S49tt_Cterminals_phrase_th = {
+ 2 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+ ,(yacco2::Thread_entry*)&ITH_cweb_or_c_k
+};
+extern yacco2::State S50_Cterminals_phrase_th;
+extern yacco2::State S51_Cterminals_phrase_th;
+extern yacco2::State S52_Cterminals_phrase_th;
+extern yacco2::State S53_Cterminals_phrase_th;
+extern yacco2::State S54_Cterminals_phrase_th;
+extern yacco2::State S55_Cterminals_phrase_th;
+extern yacco2::State S56_Cterminals_phrase_th;
+struct S56ttd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S56ttd_Cterminals_phrase_th S56tt_Cterminals_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_o2_sdc
+};
+extern yacco2::State S57_Cterminals_phrase_th;
+extern yacco2::State S58_Cterminals_phrase_th;
+extern yacco2::State S59_Cterminals_phrase_th;
+extern yacco2::State S60_Cterminals_phrase_th;
+extern yacco2::State S61_Cterminals_phrase_th;
+extern yacco2::State S62_Cterminals_phrase_th;
+extern yacco2::State S63_Cterminals_phrase_th;
+extern yacco2::State S64_Cterminals_phrase_th;
+extern yacco2::State S65_Cterminals_phrase_th;
+extern yacco2::State S66_Cterminals_phrase_th;
+struct S66ttd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S66ttd_Cterminals_phrase_th S66tt_Cterminals_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_term_def_ph
+};
+extern yacco2::State S67_Cterminals_phrase_th;
+extern yacco2::State S68_Cterminals_phrase_th;
+extern yacco2::State S69_Cterminals_phrase_th;
+extern yacco2::State S70_Cterminals_phrase_th;
+extern yacco2::State S71_Cterminals_phrase_th;
+struct S71ttd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S71ttd_Cterminals_phrase_th S71tt_Cterminals_phrase_th = {
+ 1 // no of threads
+ ,AR_Rsym_def1 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_term_def_ph
+};
+extern yacco2::State S72_Cterminals_phrase_th;
+extern yacco2::State S73_Cterminals_phrase_th;
+extern yacco2::State S74_Cterminals_phrase_th;
+extern yacco2::State S75_Cterminals_phrase_th;
+extern yacco2::State S76_Cterminals_phrase_th;
+extern yacco2::State S77_Cterminals_phrase_th;
+extern yacco2::State S78_Cterminals_phrase_th;
+extern yacco2::State S79_Cterminals_phrase_th;
+extern yacco2::State S80_Cterminals_phrase_th;
+extern yacco2::State S81_Cterminals_phrase_th;
+struct S81ttd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[2];
+};
+S81ttd_Cterminals_phrase_th S81tt_Cterminals_phrase_th = {
+ 2 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+ ,(yacco2::Thread_entry*)&ITH_cweb_or_c_k
+};
+extern yacco2::State S82_Cterminals_phrase_th;
+extern yacco2::State S83_Cterminals_phrase_th;
+extern yacco2::State S84_Cterminals_phrase_th;
+extern yacco2::State S85_Cterminals_phrase_th;
+extern yacco2::State S86_Cterminals_phrase_th;
+struct S86ttd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S86ttd_Cterminals_phrase_th S86tt_Cterminals_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_o2_sdc
+};
+extern yacco2::State S87_Cterminals_phrase_th;
+extern yacco2::State S88_Cterminals_phrase_th;
+extern yacco2::State S89_Cterminals_phrase_th;
+extern yacco2::State S90_Cterminals_phrase_th;
+extern yacco2::State S91_Cterminals_phrase_th;
+extern yacco2::State S92_Cterminals_phrase_th;
+extern yacco2::State S93_Cterminals_phrase_th;
+extern yacco2::State S94_Cterminals_phrase_th;
+struct S94ttd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S94ttd_Cterminals_phrase_th S94tt_Cterminals_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S95_Cterminals_phrase_th;
+extern yacco2::State S96_Cterminals_phrase_th;
+extern yacco2::State S97_Cterminals_phrase_th;
+extern yacco2::State S98_Cterminals_phrase_th;
+struct S98ttd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S98ttd_Cterminals_phrase_th S98tt_Cterminals_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S99_Cterminals_phrase_th;
+extern yacco2::State S100_Cterminals_phrase_th;
+extern yacco2::State S101_Cterminals_phrase_th;
+extern yacco2::State S102_Cterminals_phrase_th;
+struct S102ttd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S102ttd_Cterminals_phrase_th S102tt_Cterminals_phrase_th = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_identifier
+};
+extern yacco2::State S103_Cterminals_phrase_th;
+extern yacco2::State S104_Cterminals_phrase_th;
+struct S1std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S1std_Cterminals_phrase_th S1st_Cterminals_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S2_Cterminals_phrase_th} // shift sym: LR1_parallel_operator
+ ,{569,(State*)&S1_Cterminals_phrase_th} // accept sym: Rterminals_phrase
+ ,{595,(State*)&S4_Cterminals_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S1pse_Cterminals_phrase_th = {3,(State*)&S2_Cterminals_phrase_th};
+struct S1rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S1rtd_Cterminals_phrase_th S1rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cterminals_phrase_th,Cterminals_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S1_Cterminals_phrase_th = //State's vectored into symbol: " No symbol"
+{1
+,(Shift_entry*)&S1pse_Cterminals_phrase_th,0,0,0,(Shift_tbl*)&S1st_Cterminals_phrase_th,(Reduce_tbl*)&S1rt_Cterminals_phrase_th,(State_s_thread_tbl*)&S2tt_Cterminals_phrase_th,0,0};
+struct S2std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S2std_Cterminals_phrase_th S2st_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {375,(State*)&S3_Cterminals_phrase_th} // shift sym: T_lint
+ }// end of shift table
+};
+yacco2::State S2_Cterminals_phrase_th = //State's vectored into symbol: "|||"
+{2
+,0,0,0,0,(Shift_tbl*)&S2st_Cterminals_phrase_th,0,0,0,0};
+struct S3rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Cterminals_phrase_th S3rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cterminals_phrase_th,Cterminals_phrase_th::rhs1_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S3_Cterminals_phrase_th = //State's vectored into symbol: "lint"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_Cterminals_phrase_th,0,0,0};
+struct S4std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S4std_Cterminals_phrase_th S4st_Cterminals_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S17_Cterminals_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{48,(State*)&S18_Cterminals_phrase_th} // shift sym: raw_open_bracket
+ ,{570,(State*)&S5_Cterminals_phrase_th} // shift sym: Ropen_par
+ }// end of shift table
+};
+yacco2::Shift_entry S4qse_Cterminals_phrase_th = {0,(State*)&S17_Cterminals_phrase_th};
+yacco2::State S4_Cterminals_phrase_th = //State's vectored into symbol: "Rlint"
+{4
+,0,0,0,0,(Shift_tbl*)&S4st_Cterminals_phrase_th,0,0,0,(Shift_entry*)&S4qse_Cterminals_phrase_th
+};
+struct S5std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S5std_Cterminals_phrase_th S5st_Cterminals_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S2_Cterminals_phrase_th} // shift sym: LR1_parallel_operator
+ ,{572,(State*)&S6_Cterminals_phrase_th} // shift sym: Rparameters
+ ,{595,(State*)&S19_Cterminals_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S5pse_Cterminals_phrase_th = {3,(State*)&S2_Cterminals_phrase_th};
+struct S5rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Cterminals_phrase_th S5rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cterminals_phrase_th,Cterminals_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S5_Cterminals_phrase_th = //State's vectored into symbol: "Ropen_par"
+{5
+,(Shift_entry*)&S5pse_Cterminals_phrase_th,0,0,0,(Shift_tbl*)&S5st_Cterminals_phrase_th,(Reduce_tbl*)&S5rt_Cterminals_phrase_th,(State_s_thread_tbl*)&S2tt_Cterminals_phrase_th,0,0};
+struct S6std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S6std_Cterminals_phrase_th S6st_Cterminals_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S44_Cterminals_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{49,(State*)&S45_Cterminals_phrase_th} // shift sym: raw_close_bracket
+ ,{571,(State*)&S7_Cterminals_phrase_th} // shift sym: Rclose_par
+ }// end of shift table
+};
+yacco2::Shift_entry S6qse_Cterminals_phrase_th = {0,(State*)&S44_Cterminals_phrase_th};
+yacco2::State S6_Cterminals_phrase_th = //State's vectored into symbol: "Rparameters"
+{6
+,0,0,0,0,(Shift_tbl*)&S6st_Cterminals_phrase_th,0,0,0,(Shift_entry*)&S6qse_Cterminals_phrase_th
+};
+struct S7std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S7std_Cterminals_phrase_th S7st_Cterminals_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Cterminals_phrase_th} // shift sym: LR1_parallel_operator
+ ,{595,(State*)&S8_Cterminals_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S7pse_Cterminals_phrase_th = {3,(State*)&S2_Cterminals_phrase_th};
+struct S7rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Cterminals_phrase_th S7rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA3_Cterminals_phrase_th,Cterminals_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S7_Cterminals_phrase_th = //State's vectored into symbol: "Rclose_par"
+{7
+,(Shift_entry*)&S7pse_Cterminals_phrase_th,0,0,0,(Shift_tbl*)&S7st_Cterminals_phrase_th,(Reduce_tbl*)&S7rt_Cterminals_phrase_th,(State_s_thread_tbl*)&S2tt_Cterminals_phrase_th,0,0};
+struct S8std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S8std_Cterminals_phrase_th S8st_Cterminals_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S46_Cterminals_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{131,(State*)&S47_Cterminals_phrase_th} // shift sym: raw_open_brace
+ ,{593,(State*)&S9_Cterminals_phrase_th} // shift sym: Ropen_brace
+ }// end of shift table
+};
+yacco2::Shift_entry S8qse_Cterminals_phrase_th = {0,(State*)&S46_Cterminals_phrase_th};
+yacco2::State S8_Cterminals_phrase_th = //State's vectored into symbol: "Rlint"
+{8
+,0,0,0,0,(Shift_tbl*)&S8st_Cterminals_phrase_th,0,0,0,(Shift_entry*)&S8qse_Cterminals_phrase_th
+};
+struct S9std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S9std_Cterminals_phrase_th S9st_Cterminals_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S2_Cterminals_phrase_th} // shift sym: LR1_parallel_operator
+ ,{579,(State*)&S10_Cterminals_phrase_th} // shift sym: Rt_refs_phrase
+ ,{595,(State*)&S48_Cterminals_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S9pse_Cterminals_phrase_th = {3,(State*)&S2_Cterminals_phrase_th};
+struct S9rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Cterminals_phrase_th S9rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cterminals_phrase_th,Cterminals_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S9_Cterminals_phrase_th = //State's vectored into symbol: "Ropen_brace"
+{9
+,(Shift_entry*)&S9pse_Cterminals_phrase_th,0,0,0,(Shift_tbl*)&S9st_Cterminals_phrase_th,(Reduce_tbl*)&S9rt_Cterminals_phrase_th,(State_s_thread_tbl*)&S2tt_Cterminals_phrase_th,0,0};
+struct S10std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S10std_Cterminals_phrase_th S10st_Cterminals_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S2_Cterminals_phrase_th} // shift sym: LR1_parallel_operator
+ ,{584,(State*)&S11_Cterminals_phrase_th} // shift sym: Rsym_defs_phrase
+ ,{595,(State*)&S64_Cterminals_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S10pse_Cterminals_phrase_th = {3,(State*)&S2_Cterminals_phrase_th};
+struct S10rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S10rtd_Cterminals_phrase_th S10rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cterminals_phrase_th,Cterminals_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S10_Cterminals_phrase_th = //State's vectored into symbol: "Rt_refs_phrase"
+{10
+,(Shift_entry*)&S10pse_Cterminals_phrase_th,0,0,0,(Shift_tbl*)&S10st_Cterminals_phrase_th,(Reduce_tbl*)&S10rt_Cterminals_phrase_th,(State_s_thread_tbl*)&S2tt_Cterminals_phrase_th,0,0};
+struct S11std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S11std_Cterminals_phrase_th S11st_Cterminals_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S2_Cterminals_phrase_th} // shift sym: LR1_parallel_operator
+ ,{588,(State*)&S12_Cterminals_phrase_th} // shift sym: Rt_sufx_phrase
+ ,{595,(State*)&S80_Cterminals_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S11pse_Cterminals_phrase_th = {3,(State*)&S2_Cterminals_phrase_th};
+struct S11rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Cterminals_phrase_th S11rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cterminals_phrase_th,Cterminals_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S11_Cterminals_phrase_th = //State's vectored into symbol: "Rsym_defs_phrase"
+{11
+,(Shift_entry*)&S11pse_Cterminals_phrase_th,0,0,0,(Shift_tbl*)&S11st_Cterminals_phrase_th,(Reduce_tbl*)&S11rt_Cterminals_phrase_th,(State_s_thread_tbl*)&S2tt_Cterminals_phrase_th,0,0};
+struct S12std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S12std_Cterminals_phrase_th S12st_Cterminals_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Cterminals_phrase_th} // shift sym: LR1_parallel_operator
+ ,{595,(State*)&S13_Cterminals_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S12pse_Cterminals_phrase_th = {3,(State*)&S2_Cterminals_phrase_th};
+struct S12rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S12rtd_Cterminals_phrase_th S12rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA5_Cterminals_phrase_th,Cterminals_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S12_Cterminals_phrase_th = //State's vectored into symbol: "Rt_sufx_phrase"
+{12
+,(Shift_entry*)&S12pse_Cterminals_phrase_th,0,0,0,(Shift_tbl*)&S12st_Cterminals_phrase_th,(Reduce_tbl*)&S12rt_Cterminals_phrase_th,(State_s_thread_tbl*)&S2tt_Cterminals_phrase_th,0,0};
+struct S13std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S13std_Cterminals_phrase_th S13st_Cterminals_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S14_Cterminals_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{133,(State*)&S15_Cterminals_phrase_th} // shift sym: raw_close_brace
+ ,{594,(State*)&S16_Cterminals_phrase_th} // shift sym: Rclose_brace
+ }// end of shift table
+};
+yacco2::Shift_entry S13qse_Cterminals_phrase_th = {0,(State*)&S14_Cterminals_phrase_th};
+yacco2::State S13_Cterminals_phrase_th = //State's vectored into symbol: "Rlint"
+{13
+,0,0,0,0,(Shift_tbl*)&S13st_Cterminals_phrase_th,0,0,0,(Shift_entry*)&S13qse_Cterminals_phrase_th
+};
+struct S14rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S14rtd_Cterminals_phrase_th S14rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cterminals_phrase_th,Cterminals_phrase_th::rhs1_Rclose_brace_}
+ }// end of reduce table
+};
+yacco2::State S14_Cterminals_phrase_th = //State's vectored into symbol: "|?|"
+{14
+,0,0,0,0,0,(Reduce_tbl*)&S14rt_Cterminals_phrase_th,0,0,0};
+struct S15rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S15rtd_Cterminals_phrase_th S15rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cterminals_phrase_th,Cterminals_phrase_th::rhs2_Rclose_brace_}
+ }// end of reduce table
+};
+yacco2::State S15_Cterminals_phrase_th = //State's vectored into symbol: "}"
+{15
+,0,0,0,0,0,(Reduce_tbl*)&S15rt_Cterminals_phrase_th,0,0,0};
+struct S16rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S16rtd_Cterminals_phrase_th S16rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA6_Cterminals_phrase_th,Cterminals_phrase_th::rhs1_Rterminals_phrase_}
+ }// end of reduce table
+};
+yacco2::State S16_Cterminals_phrase_th = //State's vectored into symbol: "Rclose_brace"
+{16
+,0,0,0,0,0,(Reduce_tbl*)&S16rt_Cterminals_phrase_th,0,0,0};
+struct S17rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S17rtd_Cterminals_phrase_th S17rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cterminals_phrase_th,Cterminals_phrase_th::rhs1_Ropen_par_}
+ }// end of reduce table
+};
+yacco2::State S17_Cterminals_phrase_th = //State's vectored into symbol: "|?|"
+{17
+,0,0,0,0,0,(Reduce_tbl*)&S17rt_Cterminals_phrase_th,0,0,0};
+struct S18rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S18rtd_Cterminals_phrase_th S18rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cterminals_phrase_th,Cterminals_phrase_th::rhs2_Ropen_par_}
+ }// end of reduce table
+};
+yacco2::State S18_Cterminals_phrase_th = //State's vectored into symbol: "("
+{18
+,0,0,0,0,0,(Reduce_tbl*)&S18rt_Cterminals_phrase_th,0,0,0};
+struct S19std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S19std_Cterminals_phrase_th S19st_Cterminals_phrase_th = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S20_Cterminals_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S21_Cterminals_phrase_th} // shift sym: LR1_parallel_operator
+ ,{573,(State*)&S24_Cterminals_phrase_th} // shift sym: Rfilename_phrase
+ ,{574,(State*)&S37_Cterminals_phrase_th} // shift sym: Rfilename
+ }// end of shift table
+};
+yacco2::Shift_entry S19pse_Cterminals_phrase_th = {3,(State*)&S21_Cterminals_phrase_th};
+yacco2::Shift_entry S19qse_Cterminals_phrase_th = {0,(State*)&S20_Cterminals_phrase_th};
+yacco2::State S19_Cterminals_phrase_th = //State's vectored into symbol: "Rlint"
+{19
+,(Shift_entry*)&S19pse_Cterminals_phrase_th,0,0,0,(Shift_tbl*)&S19st_Cterminals_phrase_th,0,(State_s_thread_tbl*)&S21tt_Cterminals_phrase_th,0,(Shift_entry*)&S19qse_Cterminals_phrase_th
+};
+struct S20rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S20rtd_Cterminals_phrase_th S20rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cterminals_phrase_th,Cterminals_phrase_th::rhs3_Rfilename_}
+ }// end of reduce table
+};
+yacco2::State S20_Cterminals_phrase_th = //State's vectored into symbol: "|?|"
+{20
+,0,0,0,0,0,(Reduce_tbl*)&S20rt_Cterminals_phrase_th,0,0,0};
+struct S21std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S21std_Cterminals_phrase_th S21st_Cterminals_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S22_Cterminals_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{303,(State*)&S23_Cterminals_phrase_th} // shift sym: T_file_name
+ }// end of shift table
+};
+yacco2::Shift_entry S21qse_Cterminals_phrase_th = {0,(State*)&S22_Cterminals_phrase_th};
+yacco2::State S21_Cterminals_phrase_th = //State's vectored into symbol: "|||"
+{21
+,0,0,0,0,(Shift_tbl*)&S21st_Cterminals_phrase_th,0,0,0,(Shift_entry*)&S21qse_Cterminals_phrase_th
+};
+struct S22rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S22rtd_Cterminals_phrase_th S22rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cterminals_phrase_th,Cterminals_phrase_th::rhs2_Rfilename_}
+ }// end of reduce table
+};
+yacco2::State S22_Cterminals_phrase_th = //State's vectored into symbol: "|?|"
+{22
+,0,0,0,0,0,(Reduce_tbl*)&S22rt_Cterminals_phrase_th,0,0,0};
+struct S23rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S23rtd_Cterminals_phrase_th S23rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cterminals_phrase_th,Cterminals_phrase_th::rhs1_Rfilename_}
+ }// end of reduce table
+};
+yacco2::State S23_Cterminals_phrase_th = //State's vectored into symbol: "#file-name"
+{23
+,0,0,0,0,0,(Reduce_tbl*)&S23rt_Cterminals_phrase_th,0,0,0};
+struct S24std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S24std_Cterminals_phrase_th S24st_Cterminals_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Cterminals_phrase_th} // shift sym: LR1_parallel_operator
+ ,{595,(State*)&S25_Cterminals_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S24pse_Cterminals_phrase_th = {3,(State*)&S2_Cterminals_phrase_th};
+struct S24rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S24rtd_Cterminals_phrase_th S24rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cterminals_phrase_th,Cterminals_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S24_Cterminals_phrase_th = //State's vectored into symbol: "Rfilename_phrase"
+{24
+,(Shift_entry*)&S24pse_Cterminals_phrase_th,0,0,0,(Shift_tbl*)&S24st_Cterminals_phrase_th,(Reduce_tbl*)&S24rt_Cterminals_phrase_th,(State_s_thread_tbl*)&S2tt_Cterminals_phrase_th,0,0};
+struct S25std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S25std_Cterminals_phrase_th S25st_Cterminals_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {52,(State*)&S26_Cterminals_phrase_th} // shift sym: raw_comma
+ ,{576,(State*)&S35_Cterminals_phrase_th} // shift sym: Rnamespace_phrase
+ }// end of shift table
+};
+struct S25rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S25rtd_Cterminals_phrase_th S25rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA8_Cterminals_phrase_th,Cterminals_phrase_th::rhs2_Rnamespace_phrase_}
+ }// end of reduce table
+};
+yacco2::State S25_Cterminals_phrase_th = //State's vectored into symbol: "Rlint"
+{25
+,0,0,0,0,(Shift_tbl*)&S25st_Cterminals_phrase_th,(Reduce_tbl*)&S25rt_Cterminals_phrase_th,0,0,0};
+struct S26std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S26std_Cterminals_phrase_th S26st_Cterminals_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Cterminals_phrase_th} // shift sym: LR1_parallel_operator
+ ,{595,(State*)&S27_Cterminals_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S26pse_Cterminals_phrase_th = {3,(State*)&S2_Cterminals_phrase_th};
+struct S26rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S26rtd_Cterminals_phrase_th S26rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cterminals_phrase_th,Cterminals_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S26_Cterminals_phrase_th = //State's vectored into symbol: ","
+{26
+,(Shift_entry*)&S26pse_Cterminals_phrase_th,0,0,0,(Shift_tbl*)&S26st_Cterminals_phrase_th,(Reduce_tbl*)&S26rt_Cterminals_phrase_th,(State_s_thread_tbl*)&S2tt_Cterminals_phrase_th,0,0};
+struct S27std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S27std_Cterminals_phrase_th S27st_Cterminals_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S93_Cterminals_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S94_Cterminals_phrase_th} // shift sym: LR1_parallel_operator
+ ,{577,(State*)&S28_Cterminals_phrase_th} // shift sym: Rnamespace
+ }// end of shift table
+};
+yacco2::Shift_entry S27pse_Cterminals_phrase_th = {3,(State*)&S94_Cterminals_phrase_th};
+yacco2::Shift_entry S27qse_Cterminals_phrase_th = {0,(State*)&S93_Cterminals_phrase_th};
+yacco2::State S27_Cterminals_phrase_th = //State's vectored into symbol: "Rlint"
+{27
+,(Shift_entry*)&S27pse_Cterminals_phrase_th,0,0,0,(Shift_tbl*)&S27st_Cterminals_phrase_th,0,(State_s_thread_tbl*)&S94tt_Cterminals_phrase_th,0,(Shift_entry*)&S27qse_Cterminals_phrase_th
+};
+struct S28std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S28std_Cterminals_phrase_th S28st_Cterminals_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Cterminals_phrase_th} // shift sym: LR1_parallel_operator
+ ,{595,(State*)&S29_Cterminals_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S28pse_Cterminals_phrase_th = {3,(State*)&S2_Cterminals_phrase_th};
+struct S28rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S28rtd_Cterminals_phrase_th S28rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cterminals_phrase_th,Cterminals_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S28_Cterminals_phrase_th = //State's vectored into symbol: "Rnamespace"
+{28
+,(Shift_entry*)&S28pse_Cterminals_phrase_th,0,0,0,(Shift_tbl*)&S28st_Cterminals_phrase_th,(Reduce_tbl*)&S28rt_Cterminals_phrase_th,(State_s_thread_tbl*)&S2tt_Cterminals_phrase_th,0,0};
+struct S29std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S29std_Cterminals_phrase_th S29st_Cterminals_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S30_Cterminals_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S31_Cterminals_phrase_th} // shift sym: LR1_parallel_operator
+ ,{578,(State*)&S34_Cterminals_phrase_th} // shift sym: Rnamespace_id
+ }// end of shift table
+};
+yacco2::Shift_entry S29pse_Cterminals_phrase_th = {3,(State*)&S31_Cterminals_phrase_th};
+yacco2::Shift_entry S29qse_Cterminals_phrase_th = {0,(State*)&S30_Cterminals_phrase_th};
+yacco2::State S29_Cterminals_phrase_th = //State's vectored into symbol: "Rlint"
+{29
+,(Shift_entry*)&S29pse_Cterminals_phrase_th,0,0,0,(Shift_tbl*)&S29st_Cterminals_phrase_th,0,(State_s_thread_tbl*)&S31tt_Cterminals_phrase_th,0,(Shift_entry*)&S29qse_Cterminals_phrase_th
+};
+struct S30rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S30rtd_Cterminals_phrase_th S30rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA8_Cterminals_phrase_th,Cterminals_phrase_th::rhs3_Rnamespace_id_}
+ }// end of reduce table
+};
+yacco2::State S30_Cterminals_phrase_th = //State's vectored into symbol: "|?|"
+{30
+,0,0,0,0,0,(Reduce_tbl*)&S30rt_Cterminals_phrase_th,0,0,0};
+struct S31std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S31std_Cterminals_phrase_th S31st_Cterminals_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S32_Cterminals_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{279,(State*)&S33_Cterminals_phrase_th} // shift sym: T_identifier
+ }// end of shift table
+};
+yacco2::Shift_entry S31qse_Cterminals_phrase_th = {0,(State*)&S32_Cterminals_phrase_th};
+yacco2::State S31_Cterminals_phrase_th = //State's vectored into symbol: "|||"
+{31
+,0,0,0,0,(Shift_tbl*)&S31st_Cterminals_phrase_th,0,0,0,(Shift_entry*)&S31qse_Cterminals_phrase_th
+};
+struct S32rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S32rtd_Cterminals_phrase_th S32rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA8_Cterminals_phrase_th,Cterminals_phrase_th::rhs2_Rnamespace_id_}
+ }// end of reduce table
+};
+yacco2::State S32_Cterminals_phrase_th = //State's vectored into symbol: "|?|"
+{32
+,0,0,0,0,0,(Reduce_tbl*)&S32rt_Cterminals_phrase_th,0,0,0};
+struct S33rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S33rtd_Cterminals_phrase_th S33rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA8_Cterminals_phrase_th,Cterminals_phrase_th::rhs1_Rnamespace_id_}
+ }// end of reduce table
+};
+yacco2::State S33_Cterminals_phrase_th = //State's vectored into symbol: "identifier"
+{33
+,0,0,0,0,0,(Reduce_tbl*)&S33rt_Cterminals_phrase_th,0,0,0};
+struct S34rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S34rtd_Cterminals_phrase_th S34rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA8_Cterminals_phrase_th,Cterminals_phrase_th::rhs1_Rnamespace_phrase_}
+ }// end of reduce table
+};
+yacco2::State S34_Cterminals_phrase_th = //State's vectored into symbol: "Rnamespace_id"
+{34
+,0,0,0,0,0,(Reduce_tbl*)&S34rt_Cterminals_phrase_th,0,0,0};
+struct S35std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S35std_Cterminals_phrase_th S35st_Cterminals_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Cterminals_phrase_th} // shift sym: LR1_parallel_operator
+ ,{595,(State*)&S36_Cterminals_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S35pse_Cterminals_phrase_th = {3,(State*)&S2_Cterminals_phrase_th};
+struct S35rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S35rtd_Cterminals_phrase_th S35rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA9_Cterminals_phrase_th,Cterminals_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S35_Cterminals_phrase_th = //State's vectored into symbol: "Rnamespace_phrase"
+{35
+,(Shift_entry*)&S35pse_Cterminals_phrase_th,0,0,0,(Shift_tbl*)&S35st_Cterminals_phrase_th,(Reduce_tbl*)&S35rt_Cterminals_phrase_th,(State_s_thread_tbl*)&S2tt_Cterminals_phrase_th,0,0};
+struct S36rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S36rtd_Cterminals_phrase_th S36rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA9_Cterminals_phrase_th,Cterminals_phrase_th::rhs1_Rparameters_}
+ }// end of reduce table
+};
+yacco2::State S36_Cterminals_phrase_th = //State's vectored into symbol: "Rlint"
+{36
+,0,0,0,0,0,(Reduce_tbl*)&S36rt_Cterminals_phrase_th,0,0,0};
+struct S37std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S37std_Cterminals_phrase_th S37st_Cterminals_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Cterminals_phrase_th} // shift sym: LR1_parallel_operator
+ ,{595,(State*)&S38_Cterminals_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S37pse_Cterminals_phrase_th = {3,(State*)&S2_Cterminals_phrase_th};
+struct S37rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S37rtd_Cterminals_phrase_th S37rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cterminals_phrase_th,Cterminals_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S37_Cterminals_phrase_th = //State's vectored into symbol: "Rfilename"
+{37
+,(Shift_entry*)&S37pse_Cterminals_phrase_th,0,0,0,(Shift_tbl*)&S37st_Cterminals_phrase_th,(Reduce_tbl*)&S37rt_Cterminals_phrase_th,(State_s_thread_tbl*)&S2tt_Cterminals_phrase_th,0,0};
+struct S38std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S38std_Cterminals_phrase_th S38st_Cterminals_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S39_Cterminals_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S40_Cterminals_phrase_th} // shift sym: LR1_parallel_operator
+ ,{575,(State*)&S43_Cterminals_phrase_th} // shift sym: Rfilename_id
+ }// end of shift table
+};
+yacco2::Shift_entry S38pse_Cterminals_phrase_th = {3,(State*)&S40_Cterminals_phrase_th};
+yacco2::Shift_entry S38qse_Cterminals_phrase_th = {0,(State*)&S39_Cterminals_phrase_th};
+yacco2::State S38_Cterminals_phrase_th = //State's vectored into symbol: "Rlint"
+{38
+,(Shift_entry*)&S38pse_Cterminals_phrase_th,0,0,0,(Shift_tbl*)&S38st_Cterminals_phrase_th,0,(State_s_thread_tbl*)&S40tt_Cterminals_phrase_th,0,(Shift_entry*)&S38qse_Cterminals_phrase_th
+};
+struct S39rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S39rtd_Cterminals_phrase_th S39rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cterminals_phrase_th,Cterminals_phrase_th::rhs3_Rfilename_id_}
+ }// end of reduce table
+};
+yacco2::State S39_Cterminals_phrase_th = //State's vectored into symbol: "|?|"
+{39
+,0,0,0,0,0,(Reduce_tbl*)&S39rt_Cterminals_phrase_th,0,0,0};
+struct S40std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S40std_Cterminals_phrase_th S40st_Cterminals_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S41_Cterminals_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{279,(State*)&S42_Cterminals_phrase_th} // shift sym: T_identifier
+ }// end of shift table
+};
+yacco2::Shift_entry S40qse_Cterminals_phrase_th = {0,(State*)&S41_Cterminals_phrase_th};
+yacco2::State S40_Cterminals_phrase_th = //State's vectored into symbol: "|||"
+{40
+,0,0,0,0,(Shift_tbl*)&S40st_Cterminals_phrase_th,0,0,0,(Shift_entry*)&S40qse_Cterminals_phrase_th
+};
+struct S41rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S41rtd_Cterminals_phrase_th S41rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cterminals_phrase_th,Cterminals_phrase_th::rhs2_Rfilename_id_}
+ }// end of reduce table
+};
+yacco2::State S41_Cterminals_phrase_th = //State's vectored into symbol: "|?|"
+{41
+,0,0,0,0,0,(Reduce_tbl*)&S41rt_Cterminals_phrase_th,0,0,0};
+struct S42rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S42rtd_Cterminals_phrase_th S42rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cterminals_phrase_th,Cterminals_phrase_th::rhs1_Rfilename_id_}
+ }// end of reduce table
+};
+yacco2::State S42_Cterminals_phrase_th = //State's vectored into symbol: "identifier"
+{42
+,0,0,0,0,0,(Reduce_tbl*)&S42rt_Cterminals_phrase_th,0,0,0};
+struct S43rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S43rtd_Cterminals_phrase_th S43rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA7_Cterminals_phrase_th,Cterminals_phrase_th::rhs1_Rfilename_phrase_}
+ }// end of reduce table
+};
+yacco2::State S43_Cterminals_phrase_th = //State's vectored into symbol: "Rfilename_id"
+{43
+,0,0,0,0,0,(Reduce_tbl*)&S43rt_Cterminals_phrase_th,0,0,0};
+struct S44rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S44rtd_Cterminals_phrase_th S44rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA10_Cterminals_phrase_th,Cterminals_phrase_th::rhs1_Rclose_par_}
+ }// end of reduce table
+};
+yacco2::State S44_Cterminals_phrase_th = //State's vectored into symbol: "|?|"
+{44
+,0,0,0,0,0,(Reduce_tbl*)&S44rt_Cterminals_phrase_th,0,0,0};
+struct S45rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S45rtd_Cterminals_phrase_th S45rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA10_Cterminals_phrase_th,Cterminals_phrase_th::rhs2_Rclose_par_}
+ }// end of reduce table
+};
+yacco2::State S45_Cterminals_phrase_th = //State's vectored into symbol: ")"
+{45
+,0,0,0,0,0,(Reduce_tbl*)&S45rt_Cterminals_phrase_th,0,0,0};
+struct S46rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S46rtd_Cterminals_phrase_th S46rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cterminals_phrase_th,Cterminals_phrase_th::rhs1_Ropen_brace_}
+ }// end of reduce table
+};
+yacco2::State S46_Cterminals_phrase_th = //State's vectored into symbol: "|?|"
+{46
+,0,0,0,0,0,(Reduce_tbl*)&S46rt_Cterminals_phrase_th,0,0,0};
+struct S47rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S47rtd_Cterminals_phrase_th S47rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cterminals_phrase_th,Cterminals_phrase_th::rhs2_Ropen_brace_}
+ }// end of reduce table
+};
+yacco2::State S47_Cterminals_phrase_th = //State's vectored into symbol: "{"
+{47
+,0,0,0,0,0,(Reduce_tbl*)&S47rt_Cterminals_phrase_th,0,0,0};
+struct S48std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S48std_Cterminals_phrase_th S48st_Cterminals_phrase_th = {
+ 4
+ ,
+ {// start of table
+ {3,(State*)&S49_Cterminals_phrase_th} // shift sym: LR1_parallel_operator
+ ,{580,(State*)&S53_Cterminals_phrase_th} // shift sym: Rt_refs_kw_code
+ ,{581,(State*)&S54_Cterminals_phrase_th} // shift sym: Rt_refs_kw
+ ,{596,(State*)&S60_Cterminals_phrase_th} // shift sym: Rcweb_k
+ }// end of shift table
+};
+yacco2::Shift_entry S48pse_Cterminals_phrase_th = {3,(State*)&S49_Cterminals_phrase_th};
+struct S48rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S48rtd_Cterminals_phrase_th S48rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cterminals_phrase_th,Cterminals_phrase_th::rhs2_Rt_refs_kw_code_}
+ }// end of reduce table
+};
+yacco2::State S48_Cterminals_phrase_th = //State's vectored into symbol: "Rlint"
+{48
+,(Shift_entry*)&S48pse_Cterminals_phrase_th,0,0,0,(Shift_tbl*)&S48st_Cterminals_phrase_th,(Reduce_tbl*)&S48rt_Cterminals_phrase_th,(State_s_thread_tbl*)&S49tt_Cterminals_phrase_th,0,0};
+struct S49std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S49std_Cterminals_phrase_th S49st_Cterminals_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S50_Cterminals_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{319,(State*)&S51_Cterminals_phrase_th} // shift sym: T_terminals_refs
+ ,{372,(State*)&S52_Cterminals_phrase_th} // shift sym: T_cweb_comment
+ }// end of shift table
+};
+yacco2::Shift_entry S49qse_Cterminals_phrase_th = {0,(State*)&S50_Cterminals_phrase_th};
+yacco2::State S49_Cterminals_phrase_th = //State's vectored into symbol: "|||"
+{49
+,0,0,0,0,(Shift_tbl*)&S49st_Cterminals_phrase_th,0,0,0,(Shift_entry*)&S49qse_Cterminals_phrase_th
+};
+struct S50rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S50rtd_Cterminals_phrase_th S50rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cterminals_phrase_th,Cterminals_phrase_th::rhs2_Rcweb_k_}
+ }// end of reduce table
+};
+yacco2::State S50_Cterminals_phrase_th = //State's vectored into symbol: "|?|"
+{50
+,0,0,0,0,0,(Reduce_tbl*)&S50rt_Cterminals_phrase_th,0,0,0};
+struct S51rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S51rtd_Cterminals_phrase_th S51rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cterminals_phrase_th,Cterminals_phrase_th::rhs1_Rt_refs_kw_}
+ }// end of reduce table
+};
+yacco2::State S51_Cterminals_phrase_th = //State's vectored into symbol: "#terminals-refs"
+{51
+,0,0,0,0,0,(Reduce_tbl*)&S51rt_Cterminals_phrase_th,0,0,0};
+struct S52rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S52rtd_Cterminals_phrase_th S52rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cterminals_phrase_th,Cterminals_phrase_th::rhs1_Rcweb_k_}
+ }// end of reduce table
+};
+yacco2::State S52_Cterminals_phrase_th = //State's vectored into symbol: "cweb-comment"
+{52
+,0,0,0,0,0,(Reduce_tbl*)&S52rt_Cterminals_phrase_th,0,0,0};
+struct S53rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S53rtd_Cterminals_phrase_th S53rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cterminals_phrase_th,Cterminals_phrase_th::rhs2_Rt_refs_phrase_}
+ }// end of reduce table
+};
+yacco2::State S53_Cterminals_phrase_th = //State's vectored into symbol: "Rt_refs_kw_code"
+{53
+,0,0,0,0,0,(Reduce_tbl*)&S53rt_Cterminals_phrase_th,0,0,0};
+struct S54std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S54std_Cterminals_phrase_th S54st_Cterminals_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S55_Cterminals_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S56_Cterminals_phrase_th} // shift sym: LR1_parallel_operator
+ ,{583,(State*)&S59_Cterminals_phrase_th} // shift sym: Rt_refs_code
+ }// end of shift table
+};
+yacco2::Shift_entry S54pse_Cterminals_phrase_th = {3,(State*)&S56_Cterminals_phrase_th};
+yacco2::Shift_entry S54qse_Cterminals_phrase_th = {0,(State*)&S55_Cterminals_phrase_th};
+yacco2::State S54_Cterminals_phrase_th = //State's vectored into symbol: "Rt_refs_kw"
+{54
+,(Shift_entry*)&S54pse_Cterminals_phrase_th,0,0,0,(Shift_tbl*)&S54st_Cterminals_phrase_th,0,(State_s_thread_tbl*)&S56tt_Cterminals_phrase_th,0,(Shift_entry*)&S54qse_Cterminals_phrase_th
+};
+struct S55rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S55rtd_Cterminals_phrase_th S55rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cterminals_phrase_th,Cterminals_phrase_th::rhs3_Rt_refs_code_}
+ }// end of reduce table
+};
+yacco2::State S55_Cterminals_phrase_th = //State's vectored into symbol: "|?|"
+{55
+,0,0,0,0,0,(Reduce_tbl*)&S55rt_Cterminals_phrase_th,0,0,0};
+struct S56std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S56std_Cterminals_phrase_th S56st_Cterminals_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S57_Cterminals_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{326,(State*)&S58_Cterminals_phrase_th} // shift sym: T_syntax_code
+ }// end of shift table
+};
+yacco2::Shift_entry S56qse_Cterminals_phrase_th = {0,(State*)&S57_Cterminals_phrase_th};
+yacco2::State S56_Cterminals_phrase_th = //State's vectored into symbol: "|||"
+{56
+,0,0,0,0,(Shift_tbl*)&S56st_Cterminals_phrase_th,0,0,0,(Shift_entry*)&S56qse_Cterminals_phrase_th
+};
+struct S57rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S57rtd_Cterminals_phrase_th S57rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cterminals_phrase_th,Cterminals_phrase_th::rhs2_Rt_refs_code_}
+ }// end of reduce table
+};
+yacco2::State S57_Cterminals_phrase_th = //State's vectored into symbol: "|?|"
+{57
+,0,0,0,0,0,(Reduce_tbl*)&S57rt_Cterminals_phrase_th,0,0,0};
+struct S58rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S58rtd_Cterminals_phrase_th S58rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cterminals_phrase_th,Cterminals_phrase_th::rhs1_Rt_refs_code_}
+ }// end of reduce table
+};
+yacco2::State S58_Cterminals_phrase_th = //State's vectored into symbol: "syntax-code"
+{58
+,0,0,0,0,0,(Reduce_tbl*)&S58rt_Cterminals_phrase_th,0,0,0};
+struct S59rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S59rtd_Cterminals_phrase_th S59rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cterminals_phrase_th,Cterminals_phrase_th::rhs1_Rt_refs_kw_code_}
+ }// end of reduce table
+};
+yacco2::State S59_Cterminals_phrase_th = //State's vectored into symbol: "Rt_refs_code"
+{59
+,0,0,0,0,0,(Reduce_tbl*)&S59rt_Cterminals_phrase_th,0,0,0};
+struct S60std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S60std_Cterminals_phrase_th S60st_Cterminals_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Cterminals_phrase_th} // shift sym: LR1_parallel_operator
+ ,{595,(State*)&S61_Cterminals_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S60pse_Cterminals_phrase_th = {3,(State*)&S2_Cterminals_phrase_th};
+struct S60rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S60rtd_Cterminals_phrase_th S60rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cterminals_phrase_th,Cterminals_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S60_Cterminals_phrase_th = //State's vectored into symbol: "Rcweb_k"
+{60
+,(Shift_entry*)&S60pse_Cterminals_phrase_th,0,0,0,(Shift_tbl*)&S60st_Cterminals_phrase_th,(Reduce_tbl*)&S60rt_Cterminals_phrase_th,(State_s_thread_tbl*)&S2tt_Cterminals_phrase_th,0,0};
+struct S61std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S61std_Cterminals_phrase_th S61st_Cterminals_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S97_Cterminals_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S98_Cterminals_phrase_th} // shift sym: LR1_parallel_operator
+ ,{582,(State*)&S62_Cterminals_phrase_th} // shift sym: Rt_refs_kw_must
+ }// end of shift table
+};
+yacco2::Shift_entry S61pse_Cterminals_phrase_th = {3,(State*)&S98_Cterminals_phrase_th};
+yacco2::Shift_entry S61qse_Cterminals_phrase_th = {0,(State*)&S97_Cterminals_phrase_th};
+yacco2::State S61_Cterminals_phrase_th = //State's vectored into symbol: "Rlint"
+{61
+,(Shift_entry*)&S61pse_Cterminals_phrase_th,0,0,0,(Shift_tbl*)&S61st_Cterminals_phrase_th,0,(State_s_thread_tbl*)&S98tt_Cterminals_phrase_th,0,(Shift_entry*)&S61qse_Cterminals_phrase_th
+};
+struct S62std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S62std_Cterminals_phrase_th S62st_Cterminals_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S55_Cterminals_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S56_Cterminals_phrase_th} // shift sym: LR1_parallel_operator
+ ,{583,(State*)&S63_Cterminals_phrase_th} // shift sym: Rt_refs_code
+ }// end of shift table
+};
+yacco2::Shift_entry S62pse_Cterminals_phrase_th = {3,(State*)&S56_Cterminals_phrase_th};
+yacco2::Shift_entry S62qse_Cterminals_phrase_th = {0,(State*)&S55_Cterminals_phrase_th};
+yacco2::State S62_Cterminals_phrase_th = //State's vectored into symbol: "Rt_refs_kw_must"
+{62
+,(Shift_entry*)&S62pse_Cterminals_phrase_th,0,0,0,(Shift_tbl*)&S62st_Cterminals_phrase_th,0,(State_s_thread_tbl*)&S56tt_Cterminals_phrase_th,0,(Shift_entry*)&S62qse_Cterminals_phrase_th
+};
+struct S63rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S63rtd_Cterminals_phrase_th S63rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cterminals_phrase_th,Cterminals_phrase_th::rhs1_Rt_refs_phrase_}
+ }// end of reduce table
+};
+yacco2::State S63_Cterminals_phrase_th = //State's vectored into symbol: "Rt_refs_code"
+{63
+,0,0,0,0,0,(Reduce_tbl*)&S63rt_Cterminals_phrase_th,0,0,0};
+struct S64std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S64std_Cterminals_phrase_th S64st_Cterminals_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S65_Cterminals_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S66_Cterminals_phrase_th} // shift sym: LR1_parallel_operator
+ ,{585,(State*)&S69_Cterminals_phrase_th} // shift sym: Rsym_def
+ }// end of shift table
+};
+yacco2::Shift_entry S64pse_Cterminals_phrase_th = {3,(State*)&S66_Cterminals_phrase_th};
+yacco2::Shift_entry S64qse_Cterminals_phrase_th = {0,(State*)&S65_Cterminals_phrase_th};
+yacco2::State S64_Cterminals_phrase_th = //State's vectored into symbol: "Rlint"
+{64
+,(Shift_entry*)&S64pse_Cterminals_phrase_th,0,0,0,(Shift_tbl*)&S64st_Cterminals_phrase_th,0,(State_s_thread_tbl*)&S66tt_Cterminals_phrase_th,0,(Shift_entry*)&S64qse_Cterminals_phrase_th
+};
+struct S65rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S65rtd_Cterminals_phrase_th S65rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cterminals_phrase_th,Cterminals_phrase_th::rhs3_Rsym_def_}
+ }// end of reduce table
+};
+yacco2::State S65_Cterminals_phrase_th = //State's vectored into symbol: "|?|"
+{65
+,0,0,0,0,0,(Reduce_tbl*)&S65rt_Cterminals_phrase_th,0,0,0};
+struct S66std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S66std_Cterminals_phrase_th S66st_Cterminals_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S67_Cterminals_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{331,(State*)&S68_Cterminals_phrase_th} // shift sym: T_terminal_def
+ }// end of shift table
+};
+yacco2::Shift_entry S66qse_Cterminals_phrase_th = {0,(State*)&S67_Cterminals_phrase_th};
+yacco2::State S66_Cterminals_phrase_th = //State's vectored into symbol: "|||"
+{66
+,0,0,0,0,(Shift_tbl*)&S66st_Cterminals_phrase_th,0,0,0,(Shift_entry*)&S66qse_Cterminals_phrase_th
+};
+struct S67rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S67rtd_Cterminals_phrase_th S67rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cterminals_phrase_th,Cterminals_phrase_th::rhs2_Rsym_def_}
+ }// end of reduce table
+};
+yacco2::State S67_Cterminals_phrase_th = //State's vectored into symbol: "|?|"
+{67
+,0,0,0,0,0,(Reduce_tbl*)&S67rt_Cterminals_phrase_th,0,0,0};
+struct S68rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S68rtd_Cterminals_phrase_th S68rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cterminals_phrase_th,Cterminals_phrase_th::rhs1_Rsym_def_}
+ }// end of reduce table
+};
+yacco2::State S68_Cterminals_phrase_th = //State's vectored into symbol: "terminal-def"
+{68
+,0,0,0,0,0,(Reduce_tbl*)&S68rt_Cterminals_phrase_th,0,0,0};
+struct S69std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S69std_Cterminals_phrase_th S69st_Cterminals_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Cterminals_phrase_th} // shift sym: LR1_parallel_operator
+ ,{595,(State*)&S70_Cterminals_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S69pse_Cterminals_phrase_th = {3,(State*)&S2_Cterminals_phrase_th};
+struct S69rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S69rtd_Cterminals_phrase_th S69rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cterminals_phrase_th,Cterminals_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S69_Cterminals_phrase_th = //State's vectored into symbol: "Rsym_def"
+{69
+,(Shift_entry*)&S69pse_Cterminals_phrase_th,0,0,0,(Shift_tbl*)&S69st_Cterminals_phrase_th,(Reduce_tbl*)&S69rt_Cterminals_phrase_th,(State_s_thread_tbl*)&S2tt_Cterminals_phrase_th,0,0};
+struct S70std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S70std_Cterminals_phrase_th S70st_Cterminals_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {3,(State*)&S71_Cterminals_phrase_th} // shift sym: LR1_parallel_operator
+ ,{586,(State*)&S75_Cterminals_phrase_th} // shift sym: Rsym_def1s
+ ,{587,(State*)&S78_Cterminals_phrase_th} // shift sym: Rsym_def1
+ }// end of shift table
+};
+yacco2::Shift_entry S70pse_Cterminals_phrase_th = {3,(State*)&S71_Cterminals_phrase_th};
+struct S70rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S70rtd_Cterminals_phrase_th S70rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cterminals_phrase_th,Cterminals_phrase_th::rhs3_Rsym_def1s_}
+ }// end of reduce table
+};
+yacco2::State S70_Cterminals_phrase_th = //State's vectored into symbol: "Rlint"
+{70
+,(Shift_entry*)&S70pse_Cterminals_phrase_th,0,0,0,(Shift_tbl*)&S70st_Cterminals_phrase_th,(Reduce_tbl*)&S70rt_Cterminals_phrase_th,(State_s_thread_tbl*)&S71tt_Cterminals_phrase_th,0,0};
+struct S71std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S71std_Cterminals_phrase_th S71st_Cterminals_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S72_Cterminals_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{331,(State*)&S73_Cterminals_phrase_th} // shift sym: T_terminal_def
+ ,{443,(State*)&S74_Cterminals_phrase_th} // shift sym: Err_no_terminal_key_present
+ }// end of shift table
+};
+yacco2::Shift_entry S71qse_Cterminals_phrase_th = {0,(State*)&S72_Cterminals_phrase_th};
+yacco2::State S71_Cterminals_phrase_th = //State's vectored into symbol: "|||"
+{71
+,0,0,0,0,(Shift_tbl*)&S71st_Cterminals_phrase_th,0,0,0,(Shift_entry*)&S71qse_Cterminals_phrase_th
+};
+struct S72rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S72rtd_Cterminals_phrase_th S72rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cterminals_phrase_th,Cterminals_phrase_th::rhs3_Rsym_def1_}
+ }// end of reduce table
+};
+yacco2::State S72_Cterminals_phrase_th = //State's vectored into symbol: "|?|"
+{72
+,0,0,0,0,0,(Reduce_tbl*)&S72rt_Cterminals_phrase_th,0,0,0};
+struct S73rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S73rtd_Cterminals_phrase_th S73rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cterminals_phrase_th,Cterminals_phrase_th::rhs1_Rsym_def1_}
+ }// end of reduce table
+};
+yacco2::State S73_Cterminals_phrase_th = //State's vectored into symbol: "terminal-def"
+{73
+,0,0,0,0,0,(Reduce_tbl*)&S73rt_Cterminals_phrase_th,0,0,0};
+struct S74rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S74rtd_Cterminals_phrase_th S74rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cterminals_phrase_th,Cterminals_phrase_th::rhs2_Rsym_def1_}
+ }// end of reduce table
+};
+yacco2::State S74_Cterminals_phrase_th = //State's vectored into symbol: "no key-value present in definition"
+{74
+,0,0,0,0,0,(Reduce_tbl*)&S74rt_Cterminals_phrase_th,0,0,0};
+struct S75std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S75std_Cterminals_phrase_th S75st_Cterminals_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S71_Cterminals_phrase_th} // shift sym: LR1_parallel_operator
+ ,{587,(State*)&S76_Cterminals_phrase_th} // shift sym: Rsym_def1
+ }// end of shift table
+};
+yacco2::Shift_entry S75pse_Cterminals_phrase_th = {3,(State*)&S71_Cterminals_phrase_th};
+struct S75rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S75rtd_Cterminals_phrase_th S75rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cterminals_phrase_th,Cterminals_phrase_th::rhs1_Rsym_defs_phrase_}
+ }// end of reduce table
+};
+yacco2::State S75_Cterminals_phrase_th = //State's vectored into symbol: "Rsym_def1s"
+{75
+,(Shift_entry*)&S75pse_Cterminals_phrase_th,0,0,0,(Shift_tbl*)&S75st_Cterminals_phrase_th,(Reduce_tbl*)&S75rt_Cterminals_phrase_th,(State_s_thread_tbl*)&S71tt_Cterminals_phrase_th,0,0};
+struct S76std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S76std_Cterminals_phrase_th S76st_Cterminals_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Cterminals_phrase_th} // shift sym: LR1_parallel_operator
+ ,{595,(State*)&S77_Cterminals_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S76pse_Cterminals_phrase_th = {3,(State*)&S2_Cterminals_phrase_th};
+struct S76rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S76rtd_Cterminals_phrase_th S76rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cterminals_phrase_th,Cterminals_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S76_Cterminals_phrase_th = //State's vectored into symbol: "Rsym_def1"
+{76
+,(Shift_entry*)&S76pse_Cterminals_phrase_th,0,0,0,(Shift_tbl*)&S76st_Cterminals_phrase_th,(Reduce_tbl*)&S76rt_Cterminals_phrase_th,(State_s_thread_tbl*)&S2tt_Cterminals_phrase_th,0,0};
+struct S77rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S77rtd_Cterminals_phrase_th S77rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cterminals_phrase_th,Cterminals_phrase_th::rhs2_Rsym_def1s_}
+ }// end of reduce table
+};
+yacco2::State S77_Cterminals_phrase_th = //State's vectored into symbol: "Rlint"
+{77
+,0,0,0,0,0,(Reduce_tbl*)&S77rt_Cterminals_phrase_th,0,0,0};
+struct S78std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S78std_Cterminals_phrase_th S78st_Cterminals_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {3,(State*)&S2_Cterminals_phrase_th} // shift sym: LR1_parallel_operator
+ ,{595,(State*)&S79_Cterminals_phrase_th} // shift sym: Rlint
+ }// end of shift table
+};
+yacco2::Shift_entry S78pse_Cterminals_phrase_th = {3,(State*)&S2_Cterminals_phrase_th};
+struct S78rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S78rtd_Cterminals_phrase_th S78rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cterminals_phrase_th,Cterminals_phrase_th::rhs2_Rlint_}
+ }// end of reduce table
+};
+yacco2::State S78_Cterminals_phrase_th = //State's vectored into symbol: "Rsym_def1"
+{78
+,(Shift_entry*)&S78pse_Cterminals_phrase_th,0,0,0,(Shift_tbl*)&S78st_Cterminals_phrase_th,(Reduce_tbl*)&S78rt_Cterminals_phrase_th,(State_s_thread_tbl*)&S2tt_Cterminals_phrase_th,0,0};
+struct S79rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S79rtd_Cterminals_phrase_th S79rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cterminals_phrase_th,Cterminals_phrase_th::rhs1_Rsym_def1s_}
+ }// end of reduce table
+};
+yacco2::State S79_Cterminals_phrase_th = //State's vectored into symbol: "Rlint"
+{79
+,0,0,0,0,0,(Reduce_tbl*)&S79rt_Cterminals_phrase_th,0,0,0};
+struct S80std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S80std_Cterminals_phrase_th S80st_Cterminals_phrase_th = {
+ 4
+ ,
+ {// start of table
+ {3,(State*)&S81_Cterminals_phrase_th} // shift sym: LR1_parallel_operator
+ ,{589,(State*)&S83_Cterminals_phrase_th} // shift sym: Rt_sufx_kw_code
+ ,{590,(State*)&S84_Cterminals_phrase_th} // shift sym: Rt_sufx_kw
+ ,{596,(State*)&S90_Cterminals_phrase_th} // shift sym: Rcweb_k
+ }// end of shift table
+};
+yacco2::Shift_entry S80pse_Cterminals_phrase_th = {3,(State*)&S81_Cterminals_phrase_th};
+struct S80rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S80rtd_Cterminals_phrase_th S80rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cterminals_phrase_th,Cterminals_phrase_th::rhs2_Rt_sufx_kw_code_}
+ }// end of reduce table
+};
+yacco2::State S80_Cterminals_phrase_th = //State's vectored into symbol: "Rlint"
+{80
+,(Shift_entry*)&S80pse_Cterminals_phrase_th,0,0,0,(Shift_tbl*)&S80st_Cterminals_phrase_th,(Reduce_tbl*)&S80rt_Cterminals_phrase_th,(State_s_thread_tbl*)&S81tt_Cterminals_phrase_th,0,0};
+struct S81std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S81std_Cterminals_phrase_th S81st_Cterminals_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S50_Cterminals_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{320,(State*)&S82_Cterminals_phrase_th} // shift sym: T_terminals_sufx
+ ,{372,(State*)&S52_Cterminals_phrase_th} // shift sym: T_cweb_comment
+ }// end of shift table
+};
+yacco2::Shift_entry S81qse_Cterminals_phrase_th = {0,(State*)&S50_Cterminals_phrase_th};
+yacco2::State S81_Cterminals_phrase_th = //State's vectored into symbol: "|||"
+{81
+,0,0,0,0,(Shift_tbl*)&S81st_Cterminals_phrase_th,0,0,0,(Shift_entry*)&S81qse_Cterminals_phrase_th
+};
+struct S82rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S82rtd_Cterminals_phrase_th S82rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cterminals_phrase_th,Cterminals_phrase_th::rhs1_Rt_sufx_kw_}
+ }// end of reduce table
+};
+yacco2::State S82_Cterminals_phrase_th = //State's vectored into symbol: "#terminals-sufx"
+{82
+,0,0,0,0,0,(Reduce_tbl*)&S82rt_Cterminals_phrase_th,0,0,0};
+struct S83rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S83rtd_Cterminals_phrase_th S83rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cterminals_phrase_th,Cterminals_phrase_th::rhs2_Rt_sufx_phrase_}
+ }// end of reduce table
+};
+yacco2::State S83_Cterminals_phrase_th = //State's vectored into symbol: "Rt_sufx_kw_code"
+{83
+,0,0,0,0,0,(Reduce_tbl*)&S83rt_Cterminals_phrase_th,0,0,0};
+struct S84std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S84std_Cterminals_phrase_th S84st_Cterminals_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S85_Cterminals_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S86_Cterminals_phrase_th} // shift sym: LR1_parallel_operator
+ ,{592,(State*)&S89_Cterminals_phrase_th} // shift sym: Rt_sufx_code
+ }// end of shift table
+};
+yacco2::Shift_entry S84pse_Cterminals_phrase_th = {3,(State*)&S86_Cterminals_phrase_th};
+yacco2::Shift_entry S84qse_Cterminals_phrase_th = {0,(State*)&S85_Cterminals_phrase_th};
+yacco2::State S84_Cterminals_phrase_th = //State's vectored into symbol: "Rt_sufx_kw"
+{84
+,(Shift_entry*)&S84pse_Cterminals_phrase_th,0,0,0,(Shift_tbl*)&S84st_Cterminals_phrase_th,0,(State_s_thread_tbl*)&S86tt_Cterminals_phrase_th,0,(Shift_entry*)&S84qse_Cterminals_phrase_th
+};
+struct S85rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S85rtd_Cterminals_phrase_th S85rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cterminals_phrase_th,Cterminals_phrase_th::rhs3_Rt_sufx_code_}
+ }// end of reduce table
+};
+yacco2::State S85_Cterminals_phrase_th = //State's vectored into symbol: "|?|"
+{85
+,0,0,0,0,0,(Reduce_tbl*)&S85rt_Cterminals_phrase_th,0,0,0};
+struct S86std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S86std_Cterminals_phrase_th S86st_Cterminals_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S87_Cterminals_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{326,(State*)&S88_Cterminals_phrase_th} // shift sym: T_syntax_code
+ }// end of shift table
+};
+yacco2::Shift_entry S86qse_Cterminals_phrase_th = {0,(State*)&S87_Cterminals_phrase_th};
+yacco2::State S86_Cterminals_phrase_th = //State's vectored into symbol: "|||"
+{86
+,0,0,0,0,(Shift_tbl*)&S86st_Cterminals_phrase_th,0,0,0,(Shift_entry*)&S86qse_Cterminals_phrase_th
+};
+struct S87rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S87rtd_Cterminals_phrase_th S87rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cterminals_phrase_th,Cterminals_phrase_th::rhs2_Rt_sufx_code_}
+ }// end of reduce table
+};
+yacco2::State S87_Cterminals_phrase_th = //State's vectored into symbol: "|?|"
+{87
+,0,0,0,0,0,(Reduce_tbl*)&S87rt_Cterminals_phrase_th,0,0,0};
+struct S88rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S88rtd_Cterminals_phrase_th S88rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cterminals_phrase_th,Cterminals_phrase_th::rhs1_Rt_sufx_code_}
+ }// end of reduce table
+};
+yacco2::State S88_Cterminals_phrase_th = //State's vectored into symbol: "syntax-code"
+{88
+,0,0,0,0,0,(Reduce_tbl*)&S88rt_Cterminals_phrase_th,0,0,0};
+struct S89rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S89rtd_Cterminals_phrase_th S89rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cterminals_phrase_th,Cterminals_phrase_th::rhs1_Rt_sufx_kw_code_}
+ }// end of reduce table
+};
+yacco2::State S89_Cterminals_phrase_th = //State's vectored into symbol: "Rt_sufx_code"
+{89
+,0,0,0,0,0,(Reduce_tbl*)&S89rt_Cterminals_phrase_th,0,0,0};
+struct S90std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S90std_Cterminals_phrase_th S90st_Cterminals_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S101_Cterminals_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S102_Cterminals_phrase_th} // shift sym: LR1_parallel_operator
+ ,{591,(State*)&S91_Cterminals_phrase_th} // shift sym: Rt_sufx_kw_must
+ }// end of shift table
+};
+yacco2::Shift_entry S90pse_Cterminals_phrase_th = {3,(State*)&S102_Cterminals_phrase_th};
+yacco2::Shift_entry S90qse_Cterminals_phrase_th = {0,(State*)&S101_Cterminals_phrase_th};
+yacco2::State S90_Cterminals_phrase_th = //State's vectored into symbol: "Rcweb_k"
+{90
+,(Shift_entry*)&S90pse_Cterminals_phrase_th,0,0,0,(Shift_tbl*)&S90st_Cterminals_phrase_th,0,(State_s_thread_tbl*)&S102tt_Cterminals_phrase_th,0,(Shift_entry*)&S90qse_Cterminals_phrase_th
+};
+struct S91std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S91std_Cterminals_phrase_th S91st_Cterminals_phrase_th = {
+ 3
+ ,
+ {// start of table
+ {0,(State*)&S85_Cterminals_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S86_Cterminals_phrase_th} // shift sym: LR1_parallel_operator
+ ,{592,(State*)&S92_Cterminals_phrase_th} // shift sym: Rt_sufx_code
+ }// end of shift table
+};
+yacco2::Shift_entry S91pse_Cterminals_phrase_th = {3,(State*)&S86_Cterminals_phrase_th};
+yacco2::Shift_entry S91qse_Cterminals_phrase_th = {0,(State*)&S85_Cterminals_phrase_th};
+yacco2::State S91_Cterminals_phrase_th = //State's vectored into symbol: "Rt_sufx_kw_must"
+{91
+,(Shift_entry*)&S91pse_Cterminals_phrase_th,0,0,0,(Shift_tbl*)&S91st_Cterminals_phrase_th,0,(State_s_thread_tbl*)&S86tt_Cterminals_phrase_th,0,(Shift_entry*)&S91qse_Cterminals_phrase_th
+};
+struct S92rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S92rtd_Cterminals_phrase_th S92rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA4_Cterminals_phrase_th,Cterminals_phrase_th::rhs1_Rt_sufx_phrase_}
+ }// end of reduce table
+};
+yacco2::State S92_Cterminals_phrase_th = //State's vectored into symbol: "Rt_sufx_code"
+{92
+,0,0,0,0,0,(Reduce_tbl*)&S92rt_Cterminals_phrase_th,0,0,0};
+struct S93rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S93rtd_Cterminals_phrase_th S93rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cterminals_phrase_th,Cterminals_phrase_th::rhs3_Rnamespace_}
+ }// end of reduce table
+};
+yacco2::State S93_Cterminals_phrase_th = //State's vectored into symbol: "|?|"
+{93
+,0,0,0,0,0,(Reduce_tbl*)&S93rt_Cterminals_phrase_th,0,0,0};
+struct S94std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S94std_Cterminals_phrase_th S94st_Cterminals_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S95_Cterminals_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{304,(State*)&S96_Cterminals_phrase_th} // shift sym: T_name_space
+ }// end of shift table
+};
+yacco2::Shift_entry S94qse_Cterminals_phrase_th = {0,(State*)&S95_Cterminals_phrase_th};
+yacco2::State S94_Cterminals_phrase_th = //State's vectored into symbol: "|||"
+{94
+,0,0,0,0,(Shift_tbl*)&S94st_Cterminals_phrase_th,0,0,0,(Shift_entry*)&S94qse_Cterminals_phrase_th
+};
+struct S95rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S95rtd_Cterminals_phrase_th S95rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cterminals_phrase_th,Cterminals_phrase_th::rhs2_Rnamespace_}
+ }// end of reduce table
+};
+yacco2::State S95_Cterminals_phrase_th = //State's vectored into symbol: "|?|"
+{95
+,0,0,0,0,0,(Reduce_tbl*)&S95rt_Cterminals_phrase_th,0,0,0};
+struct S96rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S96rtd_Cterminals_phrase_th S96rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cterminals_phrase_th,Cterminals_phrase_th::rhs1_Rnamespace_}
+ }// end of reduce table
+};
+yacco2::State S96_Cterminals_phrase_th = //State's vectored into symbol: "#name-space"
+{96
+,0,0,0,0,0,(Reduce_tbl*)&S96rt_Cterminals_phrase_th,0,0,0};
+struct S97rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S97rtd_Cterminals_phrase_th S97rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cterminals_phrase_th,Cterminals_phrase_th::rhs3_Rt_refs_kw_must_}
+ }// end of reduce table
+};
+yacco2::State S97_Cterminals_phrase_th = //State's vectored into symbol: "|?|"
+{97
+,0,0,0,0,0,(Reduce_tbl*)&S97rt_Cterminals_phrase_th,0,0,0};
+struct S98std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S98std_Cterminals_phrase_th S98st_Cterminals_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S99_Cterminals_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{319,(State*)&S100_Cterminals_phrase_th} // shift sym: T_terminals_refs
+ }// end of shift table
+};
+yacco2::Shift_entry S98qse_Cterminals_phrase_th = {0,(State*)&S99_Cterminals_phrase_th};
+yacco2::State S98_Cterminals_phrase_th = //State's vectored into symbol: "|||"
+{98
+,0,0,0,0,(Shift_tbl*)&S98st_Cterminals_phrase_th,0,0,0,(Shift_entry*)&S98qse_Cterminals_phrase_th
+};
+struct S99rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S99rtd_Cterminals_phrase_th S99rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cterminals_phrase_th,Cterminals_phrase_th::rhs2_Rt_refs_kw_must_}
+ }// end of reduce table
+};
+yacco2::State S99_Cterminals_phrase_th = //State's vectored into symbol: "|?|"
+{99
+,0,0,0,0,0,(Reduce_tbl*)&S99rt_Cterminals_phrase_th,0,0,0};
+struct S100rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S100rtd_Cterminals_phrase_th S100rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cterminals_phrase_th,Cterminals_phrase_th::rhs1_Rt_refs_kw_must_}
+ }// end of reduce table
+};
+yacco2::State S100_Cterminals_phrase_th = //State's vectored into symbol: "#terminals-refs"
+{100
+,0,0,0,0,0,(Reduce_tbl*)&S100rt_Cterminals_phrase_th,0,0,0};
+struct S101rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S101rtd_Cterminals_phrase_th S101rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cterminals_phrase_th,Cterminals_phrase_th::rhs3_Rt_sufx_kw_must_}
+ }// end of reduce table
+};
+yacco2::State S101_Cterminals_phrase_th = //State's vectored into symbol: "|?|"
+{101
+,0,0,0,0,0,(Reduce_tbl*)&S101rt_Cterminals_phrase_th,0,0,0};
+struct S102std_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S102std_Cterminals_phrase_th S102st_Cterminals_phrase_th = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S103_Cterminals_phrase_th} // shift sym: LR1_questionable_shift_operator
+ ,{320,(State*)&S104_Cterminals_phrase_th} // shift sym: T_terminals_sufx
+ }// end of shift table
+};
+yacco2::Shift_entry S102qse_Cterminals_phrase_th = {0,(State*)&S103_Cterminals_phrase_th};
+yacco2::State S102_Cterminals_phrase_th = //State's vectored into symbol: "|||"
+{102
+,0,0,0,0,(Shift_tbl*)&S102st_Cterminals_phrase_th,0,0,0,(Shift_entry*)&S102qse_Cterminals_phrase_th
+};
+struct S103rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S103rtd_Cterminals_phrase_th S103rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cterminals_phrase_th,Cterminals_phrase_th::rhs2_Rt_sufx_kw_must_}
+ }// end of reduce table
+};
+yacco2::State S103_Cterminals_phrase_th = //State's vectored into symbol: "|?|"
+{103
+,0,0,0,0,0,(Reduce_tbl*)&S103rt_Cterminals_phrase_th,0,0,0};
+struct S104rtd_Cterminals_phrase_th{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S104rtd_Cterminals_phrase_th S104rt_Cterminals_phrase_th = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cterminals_phrase_th,Cterminals_phrase_th::rhs1_Rt_sufx_kw_must_}
+ }// end of reduce table
+};
+yacco2::State S104_Cterminals_phrase_th = //State's vectored into symbol: "#terminals-sufx"
+{104
+,0,0,0,0,0,(Reduce_tbl*)&S104rt_Cterminals_phrase_th,0,0,0};
diff --git a/web/yacco2/compiler/grammars/terminals_phrasesym.cpp b/web/yacco2/compiler/grammars/terminals_phrasesym.cpp
new file mode 100644
index 0000000000..42647549e6
--- /dev/null
+++ b/web/yacco2/compiler/grammars/terminals_phrasesym.cpp
@@ -0,0 +1,86 @@
+/*
+ File: terminals_phrasesym.cpp
+ Date and Time: Fri Jan 30 18:55:27 2015
+*/
+#include "terminals_phrase.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_terminals_phrase;// grammar's ns
+// first set terminals
+// monolithic grammar --- no thread
+void
+Cterminals_phrase::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rterminals_phrase_:{
+ Rterminals_phrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rterminals_phrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rterminals_phrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rphrase_:{
+ Rphrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rphrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rphrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rphrase_:{
+ Rphrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rphrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rphrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rphrase_:{
+ Rphrase* sym;
+ if(re->rule_ == 0){
+ sym = new Rphrase(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rphrase*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr3();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/terminals_phrasetbl.cpp b/web/yacco2/compiler/grammars/terminals_phrasetbl.cpp
new file mode 100644
index 0000000000..079d77f9a7
--- /dev/null
+++ b/web/yacco2/compiler/grammars/terminals_phrasetbl.cpp
@@ -0,0 +1,129 @@
+/*
+ File: terminals_phrasetbl.cpp
+ Date and Time: Fri Jan 30 18:55:27 2015
+*/
+#include "terminals_phrase.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_terminals_phrase;// grammar's ns
+// first set terminals
+// LR1_eolr
+yacco2::UCHAR LA1_Cterminals_phrase[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Cterminals_phrase;
+extern yacco2::State S2_Cterminals_phrase;
+extern yacco2::State S3_Cterminals_phrase;
+struct S3ttd_Cterminals_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[1];
+};
+S3ttd_Cterminals_phrase S3tt_Cterminals_phrase = {
+ 1 // no of threads
+ ,0 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_terminals_phrase_th
+};
+extern yacco2::State S4_Cterminals_phrase;
+extern yacco2::State S5_Cterminals_phrase;
+extern yacco2::State S6_Cterminals_phrase;
+struct S1std_Cterminals_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S1std_Cterminals_phrase S1st_Cterminals_phrase = {
+ 4
+ ,
+ {// start of table
+ {0,(State*)&S2_Cterminals_phrase} // shift sym: LR1_questionable_shift_operator
+ ,{3,(State*)&S3_Cterminals_phrase} // shift sym: LR1_parallel_operator
+ ,{569,(State*)&S1_Cterminals_phrase} // accept sym: Rterminals_phrase
+ ,{570,(State*)&S6_Cterminals_phrase} // shift sym: Rphrase
+ }// end of shift table
+};
+yacco2::Shift_entry S1pse_Cterminals_phrase = {3,(State*)&S3_Cterminals_phrase};
+yacco2::Shift_entry S1qse_Cterminals_phrase = {0,(State*)&S2_Cterminals_phrase};
+yacco2::State S1_Cterminals_phrase = //State's vectored into symbol: " No symbol"
+{1
+,(Shift_entry*)&S1pse_Cterminals_phrase,0,0,0,(Shift_tbl*)&S1st_Cterminals_phrase,0,(State_s_thread_tbl*)&S3tt_Cterminals_phrase,0,(Shift_entry*)&S1qse_Cterminals_phrase
+};
+struct S2rtd_Cterminals_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Cterminals_phrase S2rt_Cterminals_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cterminals_phrase,Cterminals_phrase::rhs3_Rphrase_}
+ }// end of reduce table
+};
+yacco2::State S2_Cterminals_phrase = //State's vectored into symbol: "|?|"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Cterminals_phrase,0,0,0};
+struct S3std_Cterminals_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S3std_Cterminals_phrase S3st_Cterminals_phrase = {
+ 2
+ ,
+ {// start of table
+ {0,(State*)&S4_Cterminals_phrase} // shift sym: LR1_questionable_shift_operator
+ ,{334,(State*)&S5_Cterminals_phrase} // shift sym: T_terminals_phrase
+ }// end of shift table
+};
+yacco2::Shift_entry S3qse_Cterminals_phrase = {0,(State*)&S4_Cterminals_phrase};
+yacco2::State S3_Cterminals_phrase = //State's vectored into symbol: "|||"
+{3
+,0,0,0,0,(Shift_tbl*)&S3st_Cterminals_phrase,0,0,0,(Shift_entry*)&S3qse_Cterminals_phrase
+};
+struct S4rtd_Cterminals_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Cterminals_phrase S4rt_Cterminals_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cterminals_phrase,Cterminals_phrase::rhs2_Rphrase_}
+ }// end of reduce table
+};
+yacco2::State S4_Cterminals_phrase = //State's vectored into symbol: "|?|"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Cterminals_phrase,0,0,0};
+struct S5rtd_Cterminals_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Cterminals_phrase S5rt_Cterminals_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cterminals_phrase,Cterminals_phrase::rhs1_Rphrase_}
+ }// end of reduce table
+};
+yacco2::State S5_Cterminals_phrase = //State's vectored into symbol: "terminals-phrase"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Cterminals_phrase,0,0,0};
+struct S6rtd_Cterminals_phrase{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Cterminals_phrase S6rt_Cterminals_phrase = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cterminals_phrase,Cterminals_phrase::rhs1_Rterminals_phrase_}
+ }// end of reduce table
+};
+yacco2::State S6_Cterminals_phrase = //State's vectored into symbol: "Rphrase"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Cterminals_phrase,0,0,0};
diff --git a/web/yacco2/compiler/grammars/test_components.cpp b/web/yacco2/compiler/grammars/test_components.cpp
new file mode 100644
index 0000000000..867b0cfc9c
--- /dev/null
+++ b/web/yacco2/compiler/grammars/test_components.cpp
@@ -0,0 +1,1216 @@
+/*
+ File: test_components.cpp
+ Date and Time: Fri Jan 30 18:55:27 2015
+*/
+#include "test_components.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_test_components;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 8;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[3] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[4] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[5] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[6] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[7] = new Per_rule_s_reuse_table();
+}
+ Ctest_components::
+ Ctest_components()
+ :yacco2::CAbs_fsm
+ ("test_components.lex"
+ ,"1.0"
+ ,"17 Apr 2001"
+ ,true
+ ,"Tester: lexical stage constructing tokens for syntax parser."
+ ,"Fri Jan 30 18:55:27 2015 "
+ ,S1_Ctest_components){
+
+ }
+
+Ctest_components::~Ctest_components(){
+
+ for(int x = 0;x < 8;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Ctest_components::failed(){
+ return false;
+ }
+ void Ctest_components::op(){
+}
+int Ctest_components::rhs_to_rules_mapping_[69] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,0 // subrule 2 for rule 1
+ ,1 // subrule 3 for rule 2
+ ,1 // subrule 4 for rule 2
+ ,2 // subrule 5 for rule 3
+ ,2 // subrule 6 for rule 3
+ ,2 // subrule 7 for rule 3
+ ,2 // subrule 8 for rule 3
+ ,2 // subrule 9 for rule 3
+ ,3 // subrule 10 for rule 4
+ ,3 // subrule 11 for rule 4
+ ,3 // subrule 12 for rule 4
+ ,3 // subrule 13 for rule 4
+ ,3 // subrule 14 for rule 4
+ ,3 // subrule 15 for rule 4
+ ,3 // subrule 16 for rule 4
+ ,3 // subrule 17 for rule 4
+ ,3 // subrule 18 for rule 4
+ ,3 // subrule 19 for rule 4
+ ,3 // subrule 20 for rule 4
+ ,3 // subrule 21 for rule 4
+ ,3 // subrule 22 for rule 4
+ ,3 // subrule 23 for rule 4
+ ,4 // subrule 24 for rule 5
+ ,4 // subrule 25 for rule 5
+ ,4 // subrule 26 for rule 5
+ ,4 // subrule 27 for rule 5
+ ,4 // subrule 28 for rule 5
+ ,4 // subrule 29 for rule 5
+ ,4 // subrule 30 for rule 5
+ ,4 // subrule 31 for rule 5
+ ,4 // subrule 32 for rule 5
+ ,4 // subrule 33 for rule 5
+ ,4 // subrule 34 for rule 5
+ ,4 // subrule 35 for rule 5
+ ,5 // subrule 36 for rule 6
+ ,5 // subrule 37 for rule 6
+ ,5 // subrule 38 for rule 6
+ ,5 // subrule 39 for rule 6
+ ,5 // subrule 40 for rule 6
+ ,5 // subrule 41 for rule 6
+ ,5 // subrule 42 for rule 6
+ ,5 // subrule 43 for rule 6
+ ,5 // subrule 44 for rule 6
+ ,5 // subrule 45 for rule 6
+ ,5 // subrule 46 for rule 6
+ ,5 // subrule 47 for rule 6
+ ,5 // subrule 48 for rule 6
+ ,5 // subrule 49 for rule 6
+ ,6 // subrule 50 for rule 7
+ ,6 // subrule 51 for rule 7
+ ,6 // subrule 52 for rule 7
+ ,6 // subrule 53 for rule 7
+ ,6 // subrule 54 for rule 7
+ ,6 // subrule 55 for rule 7
+ ,6 // subrule 56 for rule 7
+ ,6 // subrule 57 for rule 7
+ ,6 // subrule 58 for rule 7
+ ,6 // subrule 59 for rule 7
+ ,6 // subrule 60 for rule 7
+ ,6 // subrule 61 for rule 7
+ ,6 // subrule 62 for rule 7
+ ,6 // subrule 63 for rule 7
+ ,6 // subrule 64 for rule 7
+ ,7 // subrule 65 for rule 8
+ ,7 // subrule 66 for rule 8
+ ,7 // subrule 67 for rule 8
+ ,7 // subrule 68 for rule 8
+};
+Rpass3::Rpass3(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rpass3",0,Ctest_components::R_Rpass3_,P,false,false){
+}
+
+void Rpass3::op(){
+ sstrace_rulesss
+
+ using namespace NS_yacco2_k_symbols;
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*yacco2::PTR_LR1_eog__);
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*yacco2::PTR_LR1_eog__);
+
+}
+Relems::Relems(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Relems",0,Ctest_components::R_Relems_,P,false,false){
+}
+
+Rtoken::Rtoken(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rtoken",0,Ctest_components::R_Rtoken_,P,false,false){
+}
+
+yacco2::THR _YACCO2_CALL_TYPE
+NS_test_components::AR_Rtoken_grp1(yacco2::Parser* Caller_pp){
+ yacco2::KCHARP ar_name = "AR_Rtoken_grp1";
+#include "war_begin_code.h"
+
+ using namespace NS_yacco2_T_enum;
+ int kw_id(0);
+ int kw_id_len(0);
+ int unstr(0);
+ int unstr_len(0);
+ for(i=1;i<=ie;++i){
+ switch(Caller_pp->pp_accept_queue__[i].accept_token__->enumerated_id__){
+ case T_Enum::T_T_unquoted_string_:{
+ unstr=i;
+ T_unquoted_string* unq =
+ (T_unquoted_string*)Caller_pp->pp_accept_queue__[i].accept_token__;
+ unstr_len = unq->unquoted_string()->size();
+ continue;
+ }
+ case T_Enum::T_T_identifier_:{
+ kw_id=i;
+ T_identifier* id = (T_identifier*)Caller_pp->pp_accept_queue__[i].accept_token__;
+ kw_id_len = id->identifier()->size();
+ continue;
+ }
+ default:{
+ kw_id=i;
+ kw_id_len = 4048;//fake it: too many kws so make it longest
+ continue;
+ }
+
+ }
+ }
+ // out of for loop
+ if(unstr_len > kw_id_len){
+ i = unstr;
+ goto arbitrated_parameter;
+ }else{
+ i = kw_id;
+ goto arbitrated_parameter;
+ }
+
+#include "war_end_code.h"
+}
+
+Rtoken_grp1::Rtoken_grp1(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rtoken_grp1",0,Ctest_components::R_Rtoken_grp1_,P,false,false){
+}
+
+void Rtoken_grp1::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_eocode* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp1::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_angled_string* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp1::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Err_bad_char* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp1::sr4(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_comment* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp1::sr5(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_c_literal* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp1::sr6(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_c_string* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp1::sr7(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_2colon* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp1::sr8(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_eol* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+ // token stream marker
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp1::sr9(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_esc_seq* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+ // token stream marker
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp1::sr10(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_identifier* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp1::sr11(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_int_no* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp1::sr12(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_ws* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp1::sr13(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_unquoted_string* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp1::sr14(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ CAbs_lr1_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_abort_parse(true);
+
+}
+
+Rtoken_grp2::Rtoken_grp2(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rtoken_grp2",0,Ctest_components::R_Rtoken_grp2_,P,false,false){
+}
+
+void Rtoken_grp2::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Err_bad_eos* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_abort_parse(true);
+
+}
+
+void Rtoken_grp2::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Err_comment_overrun* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_abort_parse(true);
+
+}
+
+void Rtoken_grp2::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ Err_bad_esc* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_abort_parse(true);
+
+}
+
+void Rtoken_grp2::sr4(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_fsm* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp2::sr5(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_fsm_id* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp2::sr6(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_fsm_filename* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp2::sr7(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_fsm_namespace* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp2::sr8(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_fsm_class* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp2::sr9(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_fsm_version* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp2::sr10(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_fsm_date* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp2::sr11(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_fsm_debug* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp2::sr12(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_fsm_comments* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+Rtoken_grp3::Rtoken_grp3(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rtoken_grp3",0,Ctest_components::R_Rtoken_grp3_,P,false,false){
+}
+
+void Rtoken_grp3::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_raw_characters* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp3::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_lr1_constant_symbols* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp3::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_error_symbols* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp3::sr4(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_AD* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp3::sr5(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_AB* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp3::sr6(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_parallel_parser* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp3::sr7(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_parallel_la_boundary* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp3::sr8(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_parallel_thread_function* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp3::sr9(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_parallel_control_monitor* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp3::sr10(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_terminals* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp3::sr11(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_enumeration* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp3::sr12(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_file_name* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp3::sr13(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_name_space* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp3::sr14(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_sym_class* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+Rtoken_grp4::Rtoken_grp4(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rtoken_grp4",0,Ctest_components::R_Rtoken_grp4_,P,false,false){
+}
+
+void Rtoken_grp4::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_rules* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp4::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_lhs* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp4::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_user_declaration* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp4::sr4(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_user_prefix_declaration* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp4::sr5(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_user_suffix_declaration* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp4::sr6(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_constructor* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp4::sr7(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_destructor* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp4::sr8(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_op* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp4::sr9(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_user_implementation* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp4::sr10(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_user_imp_tbl* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp4::sr11(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_user_imp_sym* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp4::sr12(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_constant_defs* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp4::sr13(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_terminals_refs* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp4::sr14(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_terminals_sufx* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp4::sr15(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_lrk_sufx* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+Rtoken_grp5::Rtoken_grp5(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rtoken_grp5",0,Ctest_components::R_Rtoken_grp5_,P,false,false){
+}
+
+void Rtoken_grp5::sr1(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_arbitrator_code* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp5::sr2(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_NULL* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp5::sr3(){
+ struct SF{
+ LR1_parallel_operator* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ T_failed* p2__;
+ State* s2__;
+ bool abort2__;
+ Rule_s_reuse_entry* rule_s_reuse_entry2__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(2);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+
+}
+
+void Rtoken_grp5::sr4(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p1__);
+
+}
+
diff --git a/web/yacco2/compiler/grammars/test_components.fsc b/web/yacco2/compiler/grammars/test_components.fsc
new file mode 100644
index 0000000000..10fb47b9dc
--- /dev/null
+++ b/web/yacco2/compiler/grammars/test_components.fsc
@@ -0,0 +1,47 @@
+/*
+ File: test_components.fsc
+ Date and Time: Fri Jan 30 18:55:27 2015
+*/
+transitive y
+grammar-name "test_components"
+name-space "NS_test_components"
+thread-name "Ctest_components"
+monolithic y
+file-name "test_components.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 2
+ LR1_eog
+ LR1_all_shift_operator
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 13
+ NS_o2_code_end::TH_o2_code_end
+ NS_c_comments::TH_c_comments
+ NS_c_string::TH_c_string
+ NS_eol::TH_eol
+ NS_int_no::TH_int_no
+ NS_unq_str::TH_unq_str
+ NS_angled_string::TH_angled_string
+ NS_bad_char_set::TH_bad_char_set
+ NS_c_literal::TH_c_literal
+ NS_dbl_colon::TH_dbl_colon
+ NS_esc_seq::TH_esc_seq
+ NS_identifier::TH_identifier
+ NS_ws::TH_ws
+end-list-of-transitive-threads
+list-of-used-threads 13
+ NS_angled_string::TH_angled_string
+ NS_bad_char_set::TH_bad_char_set
+ NS_c_comments::TH_c_comments
+ NS_c_literal::TH_c_literal
+ NS_c_string::TH_c_string
+ NS_dbl_colon::TH_dbl_colon
+ NS_eol::TH_eol
+ NS_esc_seq::TH_esc_seq
+ NS_identifier::TH_identifier
+ NS_int_no::TH_int_no
+ NS_o2_code_end::TH_o2_code_end
+ NS_unq_str::TH_unq_str
+ NS_ws::TH_ws
+end-list-of-used-threads
+fsm-comments
+"Tester: lexical stage constructing tokens for syntax parser."
diff --git a/web/yacco2/compiler/grammars/test_components.h b/web/yacco2/compiler/grammars/test_components.h
new file mode 100644
index 0000000000..8886157ed0
--- /dev/null
+++ b/web/yacco2/compiler/grammars/test_components.h
@@ -0,0 +1,244 @@
+/*
+ File: test_components.h
+ Date and Time: Fri Jan 30 18:55:27 2015
+*/
+#ifndef __test_components_h__
+#define __test_components_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+
+#include "angled_string.h"
+#include "bad_char_set.h"
+#include "c_comments.h"
+#include "c_literal.h"
+#include "c_string.h"
+#include "dbl_colon.h"
+#include "eol.h"
+#include "esc_seq.h"
+#include "identifier.h"
+#include "int_no.h"
+#include "linker_id.h"
+#include "unq_str.h"
+#include "ws.h"
+#include "o2_externs.h"
+#include "o2_code_end.h"
+
+// monolithic grammar: no thread
+extern yacco2::State S1_Ctest_components;
+namespace NS_test_components {
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[8];
+};
+class Ctest_components: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rpass3_ = 569//start_of_rule_list + 0
+ ,rhs1_Rpass3_ = 1
+ ,rhs2_Rpass3_ = 2
+ ,R_Relems_ = 570//start_of_rule_list + 2
+ ,rhs1_Relems_ = 3
+ ,rhs2_Relems_ = 4
+ ,R_Rtoken_ = 571//start_of_rule_list + 4
+ ,rhs1_Rtoken_ = 5
+ ,rhs2_Rtoken_ = 6
+ ,rhs3_Rtoken_ = 7
+ ,rhs4_Rtoken_ = 8
+ ,rhs5_Rtoken_ = 9
+ ,R_Rtoken_grp1_ = 572//start_of_rule_list + 6
+ ,rhs1_Rtoken_grp1_ = 10
+ ,rhs2_Rtoken_grp1_ = 11
+ ,rhs3_Rtoken_grp1_ = 12
+ ,rhs4_Rtoken_grp1_ = 13
+ ,rhs5_Rtoken_grp1_ = 14
+ ,rhs6_Rtoken_grp1_ = 15
+ ,rhs7_Rtoken_grp1_ = 16
+ ,rhs8_Rtoken_grp1_ = 17
+ ,rhs9_Rtoken_grp1_ = 18
+ ,rhs10_Rtoken_grp1_ = 19
+ ,rhs11_Rtoken_grp1_ = 20
+ ,rhs12_Rtoken_grp1_ = 21
+ ,rhs13_Rtoken_grp1_ = 22
+ ,rhs14_Rtoken_grp1_ = 23
+ ,R_Rtoken_grp2_ = 573//start_of_rule_list + 8
+ ,rhs1_Rtoken_grp2_ = 24
+ ,rhs2_Rtoken_grp2_ = 25
+ ,rhs3_Rtoken_grp2_ = 26
+ ,rhs4_Rtoken_grp2_ = 27
+ ,rhs5_Rtoken_grp2_ = 28
+ ,rhs6_Rtoken_grp2_ = 29
+ ,rhs7_Rtoken_grp2_ = 30
+ ,rhs8_Rtoken_grp2_ = 31
+ ,rhs9_Rtoken_grp2_ = 32
+ ,rhs10_Rtoken_grp2_ = 33
+ ,rhs11_Rtoken_grp2_ = 34
+ ,rhs12_Rtoken_grp2_ = 35
+ ,R_Rtoken_grp3_ = 574//start_of_rule_list + 10
+ ,rhs1_Rtoken_grp3_ = 36
+ ,rhs2_Rtoken_grp3_ = 37
+ ,rhs3_Rtoken_grp3_ = 38
+ ,rhs4_Rtoken_grp3_ = 39
+ ,rhs5_Rtoken_grp3_ = 40
+ ,rhs6_Rtoken_grp3_ = 41
+ ,rhs7_Rtoken_grp3_ = 42
+ ,rhs8_Rtoken_grp3_ = 43
+ ,rhs9_Rtoken_grp3_ = 44
+ ,rhs10_Rtoken_grp3_ = 45
+ ,rhs11_Rtoken_grp3_ = 46
+ ,rhs12_Rtoken_grp3_ = 47
+ ,rhs13_Rtoken_grp3_ = 48
+ ,rhs14_Rtoken_grp3_ = 49
+ ,R_Rtoken_grp4_ = 575//start_of_rule_list + 12
+ ,rhs1_Rtoken_grp4_ = 50
+ ,rhs2_Rtoken_grp4_ = 51
+ ,rhs3_Rtoken_grp4_ = 52
+ ,rhs4_Rtoken_grp4_ = 53
+ ,rhs5_Rtoken_grp4_ = 54
+ ,rhs6_Rtoken_grp4_ = 55
+ ,rhs7_Rtoken_grp4_ = 56
+ ,rhs8_Rtoken_grp4_ = 57
+ ,rhs9_Rtoken_grp4_ = 58
+ ,rhs10_Rtoken_grp4_ = 59
+ ,rhs11_Rtoken_grp4_ = 60
+ ,rhs12_Rtoken_grp4_ = 61
+ ,rhs13_Rtoken_grp4_ = 62
+ ,rhs14_Rtoken_grp4_ = 63
+ ,rhs15_Rtoken_grp4_ = 64
+ ,R_Rtoken_grp5_ = 576//start_of_rule_list + 14
+ ,rhs1_Rtoken_grp5_ = 65
+ ,rhs2_Rtoken_grp5_ = 66
+ ,rhs3_Rtoken_grp5_ = 67
+ ,rhs4_Rtoken_grp5_ = 68
+ };
+ //no of la sets = 2
+ //no of states = 71
+ Ctest_components();
+ ~Ctest_components();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[69];
+ };
+struct Rpass3;
+struct Relems;
+struct Rtoken;
+struct Rtoken_grp1;
+struct Rtoken_grp2;
+struct Rtoken_grp3;
+struct Rtoken_grp4;
+struct Rtoken_grp5;
+struct Rpass3:public yacco2::CAbs_lr1_sym {
+ Rpass3(yacco2::Parser* P);
+ void op();
+ public:
+};
+
+struct Relems:public yacco2::CAbs_lr1_sym {
+ Relems(yacco2::Parser* P);
+ public:
+};
+
+struct Rtoken:public yacco2::CAbs_lr1_sym {
+ Rtoken(yacco2::Parser* P);
+ public:
+};
+
+yacco2::THR _YACCO2_CALL_TYPE
+AR_Rtoken_grp1(yacco2::Parser* Caller_pp);// rule's arbitrator
+struct Rtoken_grp1:public yacco2::CAbs_lr1_sym {
+ Rtoken_grp1(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+ void sr5();
+ void sr6();
+ void sr7();
+ void sr8();
+ void sr9();
+ void sr10();
+ void sr11();
+ void sr12();
+ void sr13();
+ void sr14();
+};
+
+struct Rtoken_grp2:public yacco2::CAbs_lr1_sym {
+ Rtoken_grp2(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+ void sr5();
+ void sr6();
+ void sr7();
+ void sr8();
+ void sr9();
+ void sr10();
+ void sr11();
+ void sr12();
+};
+
+struct Rtoken_grp3:public yacco2::CAbs_lr1_sym {
+ Rtoken_grp3(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+ void sr5();
+ void sr6();
+ void sr7();
+ void sr8();
+ void sr9();
+ void sr10();
+ void sr11();
+ void sr12();
+ void sr13();
+ void sr14();
+};
+
+struct Rtoken_grp4:public yacco2::CAbs_lr1_sym {
+ Rtoken_grp4(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+ void sr5();
+ void sr6();
+ void sr7();
+ void sr8();
+ void sr9();
+ void sr10();
+ void sr11();
+ void sr12();
+ void sr13();
+ void sr14();
+ void sr15();
+};
+
+struct Rtoken_grp5:public yacco2::CAbs_lr1_sym {
+ Rtoken_grp5(yacco2::Parser* P);
+ public:
+ void sr1();
+ void sr2();
+ void sr3();
+ void sr4();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/test_components.lex b/web/yacco2/compiler/grammars/test_components.lex
new file mode 100644
index 0000000000..c083888f32
--- /dev/null
+++ b/web/yacco2/compiler/grammars/test_components.lex
@@ -0,0 +1,436 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: test_components.lex
+dates: 7 Juin 2003
+Purpose: Tester of component grammars in Lexical Phase
+ works with the simple testdriver.cpp program in /usr/local/yacco2/testdriver
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** Testdriver.\fbreak
+It tests out the lexical parts to \o2.
+The |testdriver| is just a lexical caller to
+various threaded grammars that handle the lexical portion of \o2.
+The test files that feed it are concocted test data
+to exercise strings and things...
+These data files reside in /usr/local/yacco2/qa/*dat.
+Examples of test data file flavours testing are t0.bat and t1.bat.
+@/
+fsm
+(fsm-id "test_components.lex",fsm-filename test_components,fsm-namespace NS_test_components
+,fsm-class Ctest_components{
+ user-prefix-declaration
+#include "angled_string.h"
+#include "bad_char_set.h"
+#include "c_comments.h"
+#include "c_literal.h"
+#include "c_string.h"
+#include "dbl_colon.h"
+#include "eol.h"
+#include "esc_seq.h"
+#include "identifier.h"
+#include "int_no.h"
+#include "linker_id.h"
+#include "unq_str.h"
+#include "ws.h"
+#include "o2_externs.h"
+#include "o2_code_end.h"
+ ***
+ }
+,fsm-version "1.0",fsm-date "17 Apr 2001",fsm-debug "true"
+,fsm-comments "Tester: lexical stage constructing tokens for syntax parser.")
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rpass3 (
+lhs{
+ op
+ using namespace NS_yacco2_k_symbols;
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*yacco2::PTR_LR1_eog__);
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*yacco2::PTR_LR1_eog__);
+ ***
+ }
+){
+ -> eog
+ -> Relems eog
+}
+
+Relems (){
+ -> Rtoken
+ -> Relems Rtoken
+}
+
+Rtoken () {
+ -> Rtoken_grp1
+ -> Rtoken_grp2
+ -> Rtoken_grp3
+ -> Rtoken_grp4
+ -> Rtoken_grp5
+}
+
+Rtoken_grp1(
+//lhs,
+parallel-control-monitor{
+/@
+unquoted-string supersets identifier if it is longer in size
+and also includes other Tes like $-$$\>$ and cweb comments ie ``cweb-marker''.
+The arbitration code walks the ``accept-queue'' recording the T's position and length.
+Then it chooses the T to return by its length.
+@/
+ arbitrator-code
+ using namespace NS_yacco2_T_enum;
+ int kw_id(0);
+ int kw_id_len(0);
+ int unstr(0);
+ int unstr_len(0);
+ for(i=1;i<=ie;++i){
+ switch(Caller_pp->pp_accept_queue__[i].accept_token__->enumerated_id__){
+ case T_Enum::T_T_unquoted_string_:{
+ unstr=i;
+ T_unquoted_string* unq =
+ (T_unquoted_string*)Caller_pp->pp_accept_queue__[i].accept_token__;
+ unstr_len = unq->unquoted_string()->size();
+ continue;
+ }
+ case T_Enum::T_T_identifier_:{
+ kw_id=i;
+ T_identifier* id = (T_identifier*)Caller_pp->pp_accept_queue__[i].accept_token__;
+ kw_id_len = id->identifier()->size();
+ continue;
+ }
+ default:{
+ kw_id=i;
+ kw_id_len = 4048;//fake it: too many kws so make it longest
+ continue;
+ }
+
+ }
+ }
+ // out of for loop
+ if(unstr_len > kw_id_len){
+ i = unstr;
+ goto arbitrated_parameter;
+ }else{
+ i = kw_id;
+ goto arbitrated_parameter;
+ }
+ ***
+ }
+
+){
+ -> ||| "#***" NS_o2_code_end::TH_o2_code_end{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "angled-string" NS_angled_string::TH_angled_string{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "bad char" NS_bad_char_set::TH_bad_char_set{
+ op
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "comment" NS_c_comments::TH_c_comments {
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "c-literal" NS_c_literal::TH_c_literal{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "c-string" NS_c_string::TH_c_string{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "::" NS_dbl_colon::TH_dbl_colon{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| eol NS_eol::TH_eol{
+ op // token stream marker
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "esc-seq" NS_esc_seq::TH_esc_seq{
+ op // token stream marker
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "identifier" NS_identifier::TH_identifier{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "int-no" NS_int_no::TH_int_no{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| ws NS_ws::TH_ws{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "unquoted-string" NS_unq_str::TH_unq_str{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| |?| NULL{
+ op
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_abort_parse(true);
+ ***
+ }
+}
+
+Rtoken_grp2 (){
+ -> ||| "bad eos" NULL { //
+ op
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_abort_parse(true);
+ ***
+ }
+ -> ||| "comment-overrun" NULL{
+ op
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_abort_parse(true);
+ ***
+ }
+ -> ||| "bad esc" NULL{
+ op
+ ADD_TOKEN_TO_ERROR_QUEUE(*sf->p2__);
+ rule_info__.parser__->set_abort_parse(true);
+ ***
+ }
+ -> ||| "#fsm" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "#fsm-id" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "#fsm-filename" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "#fsm-namespace" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "#fsm-class" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "#fsm-version" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "#fsm-date" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "#fsm-debug" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "#fsm-comments" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+}
+
+Rtoken_grp3 (){
+ -> ||| "#raw-characters" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "#lr1-constant-symbols" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "#error-symbols" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "#AD" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "#AB" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "#parallel-parser" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "#parallel-la-boundary" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "#parallel-thread-function" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "#parallel-control-monitor" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "#terminals" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "#T-enumeration" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "#file-name" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "#name-space" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "#sym-class" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+}
+
+Rtoken_grp4 (){
+ -> ||| "#rules" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "#lhs" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "#user-declaration" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "#user-prefix-declaration" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "#user-suffix-declaration" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "#constructor" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "#destructor" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "#op" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "#user-implementation" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "#user-imp-tbl" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "#user-imp-sym" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "#constant-defs" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "#terminals-refs" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "#terminals-sufx" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "#lrk-sufx" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+}
+
+Rtoken_grp5 (){
+ -> ||| "#arbitrator-code" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "#NULL" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> ||| "#failed" NULL{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p2__);
+ ***
+ }
+ -> |+|{
+ op
+ ADD_TOKEN_TO_PRODUCER_QUEUE(*sf->p1__);
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/test_componentssym.cpp b/web/yacco2/compiler/grammars/test_componentssym.cpp
new file mode 100644
index 0000000000..2089a58d5d
--- /dev/null
+++ b/web/yacco2/compiler/grammars/test_componentssym.cpp
@@ -0,0 +1,1040 @@
+/*
+ File: test_componentssym.cpp
+ Date and Time: Fri Jan 30 18:55:27 2015
+*/
+#include "test_components.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_test_components;// grammar's ns
+// first set terminals
+// monolithic grammar --- no thread
+void
+Ctest_components::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rpass3_:{
+ Rpass3* sym;
+ if(re->rule_ == 0){
+ sym = new Rpass3(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rpass3*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs2_Rpass3_:{
+ Rpass3* sym;
+ if(re->rule_ == 0){
+ sym = new Rpass3(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rpass3*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->op();
+ return;}
+ case rhs1_Relems_:{
+ Relems* sym;
+ if(re->rule_ == 0){
+ sym = new Relems(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Relems*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Relems_:{
+ Relems* sym;
+ if(re->rule_ == 0){
+ sym = new Relems(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Relems*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rtoken_:{
+ Rtoken* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rtoken_:{
+ Rtoken* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs3_Rtoken_:{
+ Rtoken* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs4_Rtoken_:{
+ Rtoken* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs5_Rtoken_:{
+ Rtoken* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs1_Rtoken_grp1_:{
+ Rtoken_grp1* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp1(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp1*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rtoken_grp1_:{
+ Rtoken_grp1* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp1(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp1*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rtoken_grp1_:{
+ Rtoken_grp1* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp1(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp1*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rtoken_grp1_:{
+ Rtoken_grp1* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp1(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp1*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr4();
+ return;}
+ case rhs5_Rtoken_grp1_:{
+ Rtoken_grp1* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp1(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp1*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr5();
+ return;}
+ case rhs6_Rtoken_grp1_:{
+ Rtoken_grp1* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp1(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp1*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr6();
+ return;}
+ case rhs7_Rtoken_grp1_:{
+ Rtoken_grp1* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp1(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp1*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr7();
+ return;}
+ case rhs8_Rtoken_grp1_:{
+ Rtoken_grp1* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp1(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp1*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr8();
+ return;}
+ case rhs9_Rtoken_grp1_:{
+ Rtoken_grp1* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp1(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp1*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr9();
+ return;}
+ case rhs10_Rtoken_grp1_:{
+ Rtoken_grp1* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp1(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp1*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr10();
+ return;}
+ case rhs11_Rtoken_grp1_:{
+ Rtoken_grp1* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp1(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp1*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr11();
+ return;}
+ case rhs12_Rtoken_grp1_:{
+ Rtoken_grp1* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp1(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp1*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr12();
+ return;}
+ case rhs13_Rtoken_grp1_:{
+ Rtoken_grp1* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp1(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp1*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr13();
+ return;}
+ case rhs14_Rtoken_grp1_:{
+ Rtoken_grp1* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp1(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp1*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr14();
+ return;}
+ case rhs1_Rtoken_grp2_:{
+ Rtoken_grp2* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp2(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp2*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rtoken_grp2_:{
+ Rtoken_grp2* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp2(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp2*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rtoken_grp2_:{
+ Rtoken_grp2* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp2(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp2*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rtoken_grp2_:{
+ Rtoken_grp2* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp2(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp2*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr4();
+ return;}
+ case rhs5_Rtoken_grp2_:{
+ Rtoken_grp2* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp2(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp2*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr5();
+ return;}
+ case rhs6_Rtoken_grp2_:{
+ Rtoken_grp2* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp2(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp2*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr6();
+ return;}
+ case rhs7_Rtoken_grp2_:{
+ Rtoken_grp2* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp2(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp2*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr7();
+ return;}
+ case rhs8_Rtoken_grp2_:{
+ Rtoken_grp2* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp2(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp2*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr8();
+ return;}
+ case rhs9_Rtoken_grp2_:{
+ Rtoken_grp2* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp2(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp2*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr9();
+ return;}
+ case rhs10_Rtoken_grp2_:{
+ Rtoken_grp2* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp2(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp2*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr10();
+ return;}
+ case rhs11_Rtoken_grp2_:{
+ Rtoken_grp2* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp2(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp2*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr11();
+ return;}
+ case rhs12_Rtoken_grp2_:{
+ Rtoken_grp2* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp2(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp2*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr12();
+ return;}
+ case rhs1_Rtoken_grp3_:{
+ Rtoken_grp3* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp3(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp3*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rtoken_grp3_:{
+ Rtoken_grp3* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp3(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp3*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rtoken_grp3_:{
+ Rtoken_grp3* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp3(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp3*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rtoken_grp3_:{
+ Rtoken_grp3* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp3(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp3*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr4();
+ return;}
+ case rhs5_Rtoken_grp3_:{
+ Rtoken_grp3* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp3(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp3*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr5();
+ return;}
+ case rhs6_Rtoken_grp3_:{
+ Rtoken_grp3* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp3(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp3*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr6();
+ return;}
+ case rhs7_Rtoken_grp3_:{
+ Rtoken_grp3* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp3(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp3*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr7();
+ return;}
+ case rhs8_Rtoken_grp3_:{
+ Rtoken_grp3* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp3(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp3*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr8();
+ return;}
+ case rhs9_Rtoken_grp3_:{
+ Rtoken_grp3* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp3(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp3*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr9();
+ return;}
+ case rhs10_Rtoken_grp3_:{
+ Rtoken_grp3* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp3(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp3*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr10();
+ return;}
+ case rhs11_Rtoken_grp3_:{
+ Rtoken_grp3* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp3(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp3*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr11();
+ return;}
+ case rhs12_Rtoken_grp3_:{
+ Rtoken_grp3* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp3(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp3*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr12();
+ return;}
+ case rhs13_Rtoken_grp3_:{
+ Rtoken_grp3* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp3(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp3*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr13();
+ return;}
+ case rhs14_Rtoken_grp3_:{
+ Rtoken_grp3* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp3(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp3*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr14();
+ return;}
+ case rhs1_Rtoken_grp4_:{
+ Rtoken_grp4* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp4(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp4*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rtoken_grp4_:{
+ Rtoken_grp4* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp4(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp4*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rtoken_grp4_:{
+ Rtoken_grp4* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp4(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp4*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rtoken_grp4_:{
+ Rtoken_grp4* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp4(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp4*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr4();
+ return;}
+ case rhs5_Rtoken_grp4_:{
+ Rtoken_grp4* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp4(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp4*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr5();
+ return;}
+ case rhs6_Rtoken_grp4_:{
+ Rtoken_grp4* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp4(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp4*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr6();
+ return;}
+ case rhs7_Rtoken_grp4_:{
+ Rtoken_grp4* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp4(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp4*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr7();
+ return;}
+ case rhs8_Rtoken_grp4_:{
+ Rtoken_grp4* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp4(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp4*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr8();
+ return;}
+ case rhs9_Rtoken_grp4_:{
+ Rtoken_grp4* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp4(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp4*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr9();
+ return;}
+ case rhs10_Rtoken_grp4_:{
+ Rtoken_grp4* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp4(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp4*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr10();
+ return;}
+ case rhs11_Rtoken_grp4_:{
+ Rtoken_grp4* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp4(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp4*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr11();
+ return;}
+ case rhs12_Rtoken_grp4_:{
+ Rtoken_grp4* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp4(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp4*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr12();
+ return;}
+ case rhs13_Rtoken_grp4_:{
+ Rtoken_grp4* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp4(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp4*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr13();
+ return;}
+ case rhs14_Rtoken_grp4_:{
+ Rtoken_grp4* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp4(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp4*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr14();
+ return;}
+ case rhs15_Rtoken_grp4_:{
+ Rtoken_grp4* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp4(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp4*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr15();
+ return;}
+ case rhs1_Rtoken_grp5_:{
+ Rtoken_grp5* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp5(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp5*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs2_Rtoken_grp5_:{
+ Rtoken_grp5* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp5(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp5*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr2();
+ return;}
+ case rhs3_Rtoken_grp5_:{
+ Rtoken_grp5* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp5(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp5*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr3();
+ return;}
+ case rhs4_Rtoken_grp5_:{
+ Rtoken_grp5* sym;
+ if(re->rule_ == 0){
+ sym = new Rtoken_grp5(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rtoken_grp5*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr4();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/test_componentstbl.cpp b/web/yacco2/compiler/grammars/test_componentstbl.cpp
new file mode 100644
index 0000000000..aa56afe9b4
--- /dev/null
+++ b/web/yacco2/compiler/grammars/test_componentstbl.cpp
@@ -0,0 +1,1197 @@
+/*
+ File: test_componentstbl.cpp
+ Date and Time: Fri Jan 30 18:55:27 2015
+*/
+#include "test_components.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_test_components;// grammar's ns
+// first set terminals
+// LR1_eolr
+yacco2::UCHAR LA1_Ctest_components[] ={
+1
+,0,4
+};
+// LR1_eog
+// LR1_reduce_operator
+// LR1_all_shift_operator
+yacco2::UCHAR LA2_Ctest_components[] ={
+1
+,0,82
+};
+extern yacco2::State S1_Ctest_components;
+extern yacco2::State S2_Ctest_components;
+extern yacco2::State S3_Ctest_components;
+struct S3ttd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;
+ yacco2::ULINT (*thd_id_bit_map_ptr__)[];
+ yacco2::Thread_entry* thread_entries_[13];
+};
+S3ttd_Ctest_components S3tt_Ctest_components = {
+ 13 // no of threads
+ ,AR_Rtoken_grp1 //AR_rulename or 0
+ ,0// ptr to thread id bit map
+ ,(yacco2::Thread_entry*)&ITH_esc_seq
+ ,(yacco2::Thread_entry*)&ITH_eol
+ ,(yacco2::Thread_entry*)&ITH_c_comments
+ ,(yacco2::Thread_entry*)&ITH_ws
+ ,(yacco2::Thread_entry*)&ITH_angled_string
+ ,(yacco2::Thread_entry*)&ITH_c_literal
+ ,(yacco2::Thread_entry*)&ITH_c_string
+ ,(yacco2::Thread_entry*)&ITH_unq_str
+ ,(yacco2::Thread_entry*)&ITH_identifier
+ ,(yacco2::Thread_entry*)&ITH_int_no
+ ,(yacco2::Thread_entry*)&ITH_o2_code_end
+ ,(yacco2::Thread_entry*)&ITH_dbl_colon
+ ,(yacco2::Thread_entry*)&ITH_bad_char_set
+};
+extern yacco2::State S4_Ctest_components;
+extern yacco2::State S5_Ctest_components;
+extern yacco2::State S6_Ctest_components;
+extern yacco2::State S7_Ctest_components;
+extern yacco2::State S8_Ctest_components;
+extern yacco2::State S9_Ctest_components;
+extern yacco2::State S10_Ctest_components;
+extern yacco2::State S11_Ctest_components;
+extern yacco2::State S12_Ctest_components;
+extern yacco2::State S13_Ctest_components;
+extern yacco2::State S14_Ctest_components;
+extern yacco2::State S15_Ctest_components;
+extern yacco2::State S16_Ctest_components;
+extern yacco2::State S17_Ctest_components;
+extern yacco2::State S18_Ctest_components;
+extern yacco2::State S19_Ctest_components;
+extern yacco2::State S20_Ctest_components;
+extern yacco2::State S21_Ctest_components;
+extern yacco2::State S22_Ctest_components;
+extern yacco2::State S23_Ctest_components;
+extern yacco2::State S24_Ctest_components;
+extern yacco2::State S25_Ctest_components;
+extern yacco2::State S26_Ctest_components;
+extern yacco2::State S27_Ctest_components;
+extern yacco2::State S28_Ctest_components;
+extern yacco2::State S29_Ctest_components;
+extern yacco2::State S30_Ctest_components;
+extern yacco2::State S31_Ctest_components;
+extern yacco2::State S32_Ctest_components;
+extern yacco2::State S33_Ctest_components;
+extern yacco2::State S34_Ctest_components;
+extern yacco2::State S35_Ctest_components;
+extern yacco2::State S36_Ctest_components;
+extern yacco2::State S37_Ctest_components;
+extern yacco2::State S38_Ctest_components;
+extern yacco2::State S39_Ctest_components;
+extern yacco2::State S40_Ctest_components;
+extern yacco2::State S41_Ctest_components;
+extern yacco2::State S42_Ctest_components;
+extern yacco2::State S43_Ctest_components;
+extern yacco2::State S44_Ctest_components;
+extern yacco2::State S45_Ctest_components;
+extern yacco2::State S46_Ctest_components;
+extern yacco2::State S47_Ctest_components;
+extern yacco2::State S48_Ctest_components;
+extern yacco2::State S49_Ctest_components;
+extern yacco2::State S50_Ctest_components;
+extern yacco2::State S51_Ctest_components;
+extern yacco2::State S52_Ctest_components;
+extern yacco2::State S53_Ctest_components;
+extern yacco2::State S54_Ctest_components;
+extern yacco2::State S55_Ctest_components;
+extern yacco2::State S56_Ctest_components;
+extern yacco2::State S57_Ctest_components;
+extern yacco2::State S58_Ctest_components;
+extern yacco2::State S59_Ctest_components;
+extern yacco2::State S60_Ctest_components;
+extern yacco2::State S61_Ctest_components;
+extern yacco2::State S62_Ctest_components;
+extern yacco2::State S63_Ctest_components;
+extern yacco2::State S64_Ctest_components;
+extern yacco2::State S65_Ctest_components;
+extern yacco2::State S66_Ctest_components;
+extern yacco2::State S67_Ctest_components;
+extern yacco2::State S68_Ctest_components;
+extern yacco2::State S69_Ctest_components;
+extern yacco2::State S70_Ctest_components;
+extern yacco2::State S71_Ctest_components;
+struct S1std_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[11];
+};
+S1std_Ctest_components S1st_Ctest_components = {
+ 11
+ ,
+ {// start of table
+ {1,(State*)&S2_Ctest_components} // shift sym: LR1_eog
+ ,{3,(State*)&S3_Ctest_components} // shift sym: LR1_parallel_operator
+ ,{6,(State*)&S62_Ctest_components} // shift sym: LR1_all_shift_operator
+ ,{569,(State*)&S1_Ctest_components} // accept sym: Rpass3
+ ,{570,(State*)&S63_Ctest_components} // shift sym: Relems
+ ,{571,(State*)&S71_Ctest_components} // shift sym: Rtoken
+ ,{572,(State*)&S66_Ctest_components} // shift sym: Rtoken_grp1
+ ,{573,(State*)&S67_Ctest_components} // shift sym: Rtoken_grp2
+ ,{574,(State*)&S68_Ctest_components} // shift sym: Rtoken_grp3
+ ,{575,(State*)&S69_Ctest_components} // shift sym: Rtoken_grp4
+ ,{576,(State*)&S70_Ctest_components} // shift sym: Rtoken_grp5
+ }// end of shift table
+};
+yacco2::Shift_entry S1pse_Ctest_components = {3,(State*)&S3_Ctest_components};
+yacco2::Shift_entry S1ase_Ctest_components = {6,(State*)&S62_Ctest_components};
+yacco2::State S1_Ctest_components = //State's vectored into symbol: " No symbol"
+{1
+,(Shift_entry*)&S1pse_Ctest_components,(Shift_entry*)&S1ase_Ctest_components
+,0,0,(Shift_tbl*)&S1st_Ctest_components,0,(State_s_thread_tbl*)&S3tt_Ctest_components,0,0};
+struct S2rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Ctest_components S2rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ctest_components,Ctest_components::rhs1_Rpass3_}
+ }// end of reduce table
+};
+yacco2::State S2_Ctest_components = //State's vectored into symbol: "eog"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Ctest_components,0,0,0};
+struct S3std_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[58];
+};
+S3std_Ctest_components S3st_Ctest_components = {
+ 58
+ ,
+ {// start of table
+ {0,(State*)&S4_Ctest_components} // shift sym: LR1_questionable_shift_operator
+ ,{267,(State*)&S5_Ctest_components} // shift sym: T_esc_seq
+ ,{268,(State*)&S6_Ctest_components} // shift sym: T_eol
+ ,{271,(State*)&S7_Ctest_components} // shift sym: T_comment
+ ,{272,(State*)&S8_Ctest_components} // shift sym: T_ws
+ ,{273,(State*)&S9_Ctest_components} // shift sym: T_angled_string
+ ,{274,(State*)&S10_Ctest_components} // shift sym: T_c_literal
+ ,{275,(State*)&S11_Ctest_components} // shift sym: T_c_string
+ ,{277,(State*)&S12_Ctest_components} // shift sym: T_unquoted_string
+ ,{279,(State*)&S13_Ctest_components} // shift sym: T_identifier
+ ,{280,(State*)&S14_Ctest_components} // shift sym: T_int_no
+ ,{281,(State*)&S15_Ctest_components} // shift sym: T_raw_characters
+ ,{282,(State*)&S16_Ctest_components} // shift sym: T_lr1_constant_symbols
+ ,{283,(State*)&S17_Ctest_components} // shift sym: T_error_symbols
+ ,{284,(State*)&S18_Ctest_components} // shift sym: T_eocode
+ ,{285,(State*)&S19_Ctest_components} // shift sym: T_AD
+ ,{286,(State*)&S20_Ctest_components} // shift sym: T_AB
+ ,{287,(State*)&S21_Ctest_components} // shift sym: T_parallel_la_boundary
+ ,{288,(State*)&S22_Ctest_components} // shift sym: T_arbitrator_code
+ ,{289,(State*)&S23_Ctest_components} // shift sym: T_parallel_parser
+ ,{290,(State*)&S24_Ctest_components} // shift sym: T_parallel_thread_function
+ ,{291,(State*)&S25_Ctest_components} // shift sym: T_parallel_control_monitor
+ ,{292,(State*)&S26_Ctest_components} // shift sym: T_fsm
+ ,{293,(State*)&S27_Ctest_components} // shift sym: T_fsm_id
+ ,{294,(State*)&S28_Ctest_components} // shift sym: T_fsm_filename
+ ,{295,(State*)&S29_Ctest_components} // shift sym: T_fsm_namespace
+ ,{296,(State*)&S30_Ctest_components} // shift sym: T_fsm_class
+ ,{297,(State*)&S31_Ctest_components} // shift sym: T_fsm_version
+ ,{298,(State*)&S32_Ctest_components} // shift sym: T_fsm_date
+ ,{299,(State*)&S33_Ctest_components} // shift sym: T_fsm_debug
+ ,{300,(State*)&S34_Ctest_components} // shift sym: T_fsm_comments
+ ,{301,(State*)&S35_Ctest_components} // shift sym: T_terminals
+ ,{302,(State*)&S36_Ctest_components} // shift sym: T_enumeration
+ ,{303,(State*)&S37_Ctest_components} // shift sym: T_file_name
+ ,{304,(State*)&S38_Ctest_components} // shift sym: T_name_space
+ ,{305,(State*)&S39_Ctest_components} // shift sym: T_sym_class
+ ,{306,(State*)&S40_Ctest_components} // shift sym: T_rules
+ ,{307,(State*)&S41_Ctest_components} // shift sym: T_lhs
+ ,{308,(State*)&S42_Ctest_components} // shift sym: T_user_declaration
+ ,{309,(State*)&S43_Ctest_components} // shift sym: T_user_prefix_declaration
+ ,{310,(State*)&S44_Ctest_components} // shift sym: T_user_suffix_declaration
+ ,{311,(State*)&S45_Ctest_components} // shift sym: T_constructor
+ ,{312,(State*)&S46_Ctest_components} // shift sym: T_destructor
+ ,{313,(State*)&S47_Ctest_components} // shift sym: T_op
+ ,{314,(State*)&S48_Ctest_components} // shift sym: T_failed
+ ,{315,(State*)&S49_Ctest_components} // shift sym: T_user_implementation
+ ,{316,(State*)&S50_Ctest_components} // shift sym: T_user_imp_tbl
+ ,{317,(State*)&S51_Ctest_components} // shift sym: T_user_imp_sym
+ ,{318,(State*)&S52_Ctest_components} // shift sym: T_constant_defs
+ ,{319,(State*)&S53_Ctest_components} // shift sym: T_terminals_refs
+ ,{320,(State*)&S54_Ctest_components} // shift sym: T_terminals_sufx
+ ,{321,(State*)&S55_Ctest_components} // shift sym: T_lrk_sufx
+ ,{323,(State*)&S56_Ctest_components} // shift sym: T_NULL
+ ,{324,(State*)&S57_Ctest_components} // shift sym: T_2colon
+ ,{394,(State*)&S58_Ctest_components} // shift sym: Err_bad_eos
+ ,{395,(State*)&S59_Ctest_components} // shift sym: Err_bad_esc
+ ,{396,(State*)&S60_Ctest_components} // shift sym: Err_comment_overrun
+ ,{397,(State*)&S61_Ctest_components} // shift sym: Err_bad_char
+ }// end of shift table
+};
+yacco2::Shift_entry S3qse_Ctest_components = {0,(State*)&S4_Ctest_components};
+yacco2::State S3_Ctest_components = //State's vectored into symbol: "|||"
+{3
+,0,0,0,0,(Shift_tbl*)&S3st_Ctest_components,0,0,0,(Shift_entry*)&S3qse_Ctest_components
+};
+struct S4rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Ctest_components S4rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs14_Rtoken_grp1_}
+ }// end of reduce table
+};
+yacco2::State S4_Ctest_components = //State's vectored into symbol: "|?|"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Ctest_components,0,0,0};
+struct S5rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Ctest_components S5rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs9_Rtoken_grp1_}
+ }// end of reduce table
+};
+yacco2::State S5_Ctest_components = //State's vectored into symbol: "esc-seq"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Ctest_components,0,0,0};
+struct S6rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S6rtd_Ctest_components S6rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs8_Rtoken_grp1_}
+ }// end of reduce table
+};
+yacco2::State S6_Ctest_components = //State's vectored into symbol: "eol"
+{6
+,0,0,0,0,0,(Reduce_tbl*)&S6rt_Ctest_components,0,0,0};
+struct S7rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Ctest_components S7rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs4_Rtoken_grp1_}
+ }// end of reduce table
+};
+yacco2::State S7_Ctest_components = //State's vectored into symbol: "comment"
+{7
+,0,0,0,0,0,(Reduce_tbl*)&S7rt_Ctest_components,0,0,0};
+struct S8rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S8rtd_Ctest_components S8rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs12_Rtoken_grp1_}
+ }// end of reduce table
+};
+yacco2::State S8_Ctest_components = //State's vectored into symbol: "ws"
+{8
+,0,0,0,0,0,(Reduce_tbl*)&S8rt_Ctest_components,0,0,0};
+struct S9rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S9rtd_Ctest_components S9rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs2_Rtoken_grp1_}
+ }// end of reduce table
+};
+yacco2::State S9_Ctest_components = //State's vectored into symbol: "angled-string"
+{9
+,0,0,0,0,0,(Reduce_tbl*)&S9rt_Ctest_components,0,0,0};
+struct S10rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S10rtd_Ctest_components S10rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs5_Rtoken_grp1_}
+ }// end of reduce table
+};
+yacco2::State S10_Ctest_components = //State's vectored into symbol: "c-literal"
+{10
+,0,0,0,0,0,(Reduce_tbl*)&S10rt_Ctest_components,0,0,0};
+struct S11rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S11rtd_Ctest_components S11rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs6_Rtoken_grp1_}
+ }// end of reduce table
+};
+yacco2::State S11_Ctest_components = //State's vectored into symbol: "c-string"
+{11
+,0,0,0,0,0,(Reduce_tbl*)&S11rt_Ctest_components,0,0,0};
+struct S12rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S12rtd_Ctest_components S12rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs13_Rtoken_grp1_}
+ }// end of reduce table
+};
+yacco2::State S12_Ctest_components = //State's vectored into symbol: "unquoted-string"
+{12
+,0,0,0,0,0,(Reduce_tbl*)&S12rt_Ctest_components,0,0,0};
+struct S13rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S13rtd_Ctest_components S13rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs10_Rtoken_grp1_}
+ }// end of reduce table
+};
+yacco2::State S13_Ctest_components = //State's vectored into symbol: "identifier"
+{13
+,0,0,0,0,0,(Reduce_tbl*)&S13rt_Ctest_components,0,0,0};
+struct S14rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S14rtd_Ctest_components S14rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs11_Rtoken_grp1_}
+ }// end of reduce table
+};
+yacco2::State S14_Ctest_components = //State's vectored into symbol: "int-no"
+{14
+,0,0,0,0,0,(Reduce_tbl*)&S14rt_Ctest_components,0,0,0};
+struct S15rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S15rtd_Ctest_components S15rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs1_Rtoken_grp3_}
+ }// end of reduce table
+};
+yacco2::State S15_Ctest_components = //State's vectored into symbol: "#raw-characters"
+{15
+,0,0,0,0,0,(Reduce_tbl*)&S15rt_Ctest_components,0,0,0};
+struct S16rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S16rtd_Ctest_components S16rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs2_Rtoken_grp3_}
+ }// end of reduce table
+};
+yacco2::State S16_Ctest_components = //State's vectored into symbol: "#lr1-constant-symbols"
+{16
+,0,0,0,0,0,(Reduce_tbl*)&S16rt_Ctest_components,0,0,0};
+struct S17rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S17rtd_Ctest_components S17rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs3_Rtoken_grp3_}
+ }// end of reduce table
+};
+yacco2::State S17_Ctest_components = //State's vectored into symbol: "#error-symbols"
+{17
+,0,0,0,0,0,(Reduce_tbl*)&S17rt_Ctest_components,0,0,0};
+struct S18rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S18rtd_Ctest_components S18rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs1_Rtoken_grp1_}
+ }// end of reduce table
+};
+yacco2::State S18_Ctest_components = //State's vectored into symbol: "#***"
+{18
+,0,0,0,0,0,(Reduce_tbl*)&S18rt_Ctest_components,0,0,0};
+struct S19rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S19rtd_Ctest_components S19rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs4_Rtoken_grp3_}
+ }// end of reduce table
+};
+yacco2::State S19_Ctest_components = //State's vectored into symbol: "#AD"
+{19
+,0,0,0,0,0,(Reduce_tbl*)&S19rt_Ctest_components,0,0,0};
+struct S20rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S20rtd_Ctest_components S20rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs5_Rtoken_grp3_}
+ }// end of reduce table
+};
+yacco2::State S20_Ctest_components = //State's vectored into symbol: "#AB"
+{20
+,0,0,0,0,0,(Reduce_tbl*)&S20rt_Ctest_components,0,0,0};
+struct S21rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S21rtd_Ctest_components S21rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs7_Rtoken_grp3_}
+ }// end of reduce table
+};
+yacco2::State S21_Ctest_components = //State's vectored into symbol: "#parallel-la-boundary"
+{21
+,0,0,0,0,0,(Reduce_tbl*)&S21rt_Ctest_components,0,0,0};
+struct S22rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S22rtd_Ctest_components S22rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs1_Rtoken_grp5_}
+ }// end of reduce table
+};
+yacco2::State S22_Ctest_components = //State's vectored into symbol: "#arbitrator-code"
+{22
+,0,0,0,0,0,(Reduce_tbl*)&S22rt_Ctest_components,0,0,0};
+struct S23rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S23rtd_Ctest_components S23rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs6_Rtoken_grp3_}
+ }// end of reduce table
+};
+yacco2::State S23_Ctest_components = //State's vectored into symbol: "#parallel-parser"
+{23
+,0,0,0,0,0,(Reduce_tbl*)&S23rt_Ctest_components,0,0,0};
+struct S24rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S24rtd_Ctest_components S24rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs8_Rtoken_grp3_}
+ }// end of reduce table
+};
+yacco2::State S24_Ctest_components = //State's vectored into symbol: "#parallel-thread-function"
+{24
+,0,0,0,0,0,(Reduce_tbl*)&S24rt_Ctest_components,0,0,0};
+struct S25rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S25rtd_Ctest_components S25rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs9_Rtoken_grp3_}
+ }// end of reduce table
+};
+yacco2::State S25_Ctest_components = //State's vectored into symbol: "#parallel-control-monitor"
+{25
+,0,0,0,0,0,(Reduce_tbl*)&S25rt_Ctest_components,0,0,0};
+struct S26rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S26rtd_Ctest_components S26rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs4_Rtoken_grp2_}
+ }// end of reduce table
+};
+yacco2::State S26_Ctest_components = //State's vectored into symbol: "#fsm"
+{26
+,0,0,0,0,0,(Reduce_tbl*)&S26rt_Ctest_components,0,0,0};
+struct S27rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S27rtd_Ctest_components S27rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs5_Rtoken_grp2_}
+ }// end of reduce table
+};
+yacco2::State S27_Ctest_components = //State's vectored into symbol: "#fsm-id"
+{27
+,0,0,0,0,0,(Reduce_tbl*)&S27rt_Ctest_components,0,0,0};
+struct S28rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S28rtd_Ctest_components S28rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs6_Rtoken_grp2_}
+ }// end of reduce table
+};
+yacco2::State S28_Ctest_components = //State's vectored into symbol: "#fsm-filename"
+{28
+,0,0,0,0,0,(Reduce_tbl*)&S28rt_Ctest_components,0,0,0};
+struct S29rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S29rtd_Ctest_components S29rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs7_Rtoken_grp2_}
+ }// end of reduce table
+};
+yacco2::State S29_Ctest_components = //State's vectored into symbol: "#fsm-namespace"
+{29
+,0,0,0,0,0,(Reduce_tbl*)&S29rt_Ctest_components,0,0,0};
+struct S30rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S30rtd_Ctest_components S30rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs8_Rtoken_grp2_}
+ }// end of reduce table
+};
+yacco2::State S30_Ctest_components = //State's vectored into symbol: "#fsm-class"
+{30
+,0,0,0,0,0,(Reduce_tbl*)&S30rt_Ctest_components,0,0,0};
+struct S31rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S31rtd_Ctest_components S31rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs9_Rtoken_grp2_}
+ }// end of reduce table
+};
+yacco2::State S31_Ctest_components = //State's vectored into symbol: "#fsm-version"
+{31
+,0,0,0,0,0,(Reduce_tbl*)&S31rt_Ctest_components,0,0,0};
+struct S32rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S32rtd_Ctest_components S32rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs10_Rtoken_grp2_}
+ }// end of reduce table
+};
+yacco2::State S32_Ctest_components = //State's vectored into symbol: "#fsm-date"
+{32
+,0,0,0,0,0,(Reduce_tbl*)&S32rt_Ctest_components,0,0,0};
+struct S33rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S33rtd_Ctest_components S33rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs11_Rtoken_grp2_}
+ }// end of reduce table
+};
+yacco2::State S33_Ctest_components = //State's vectored into symbol: "#fsm-debug"
+{33
+,0,0,0,0,0,(Reduce_tbl*)&S33rt_Ctest_components,0,0,0};
+struct S34rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S34rtd_Ctest_components S34rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs12_Rtoken_grp2_}
+ }// end of reduce table
+};
+yacco2::State S34_Ctest_components = //State's vectored into symbol: "#fsm-comments"
+{34
+,0,0,0,0,0,(Reduce_tbl*)&S34rt_Ctest_components,0,0,0};
+struct S35rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S35rtd_Ctest_components S35rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs10_Rtoken_grp3_}
+ }// end of reduce table
+};
+yacco2::State S35_Ctest_components = //State's vectored into symbol: "#terminals"
+{35
+,0,0,0,0,0,(Reduce_tbl*)&S35rt_Ctest_components,0,0,0};
+struct S36rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S36rtd_Ctest_components S36rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs11_Rtoken_grp3_}
+ }// end of reduce table
+};
+yacco2::State S36_Ctest_components = //State's vectored into symbol: "#T-enumeration"
+{36
+,0,0,0,0,0,(Reduce_tbl*)&S36rt_Ctest_components,0,0,0};
+struct S37rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S37rtd_Ctest_components S37rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs12_Rtoken_grp3_}
+ }// end of reduce table
+};
+yacco2::State S37_Ctest_components = //State's vectored into symbol: "#file-name"
+{37
+,0,0,0,0,0,(Reduce_tbl*)&S37rt_Ctest_components,0,0,0};
+struct S38rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S38rtd_Ctest_components S38rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs13_Rtoken_grp3_}
+ }// end of reduce table
+};
+yacco2::State S38_Ctest_components = //State's vectored into symbol: "#name-space"
+{38
+,0,0,0,0,0,(Reduce_tbl*)&S38rt_Ctest_components,0,0,0};
+struct S39rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S39rtd_Ctest_components S39rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs14_Rtoken_grp3_}
+ }// end of reduce table
+};
+yacco2::State S39_Ctest_components = //State's vectored into symbol: "#sym-class"
+{39
+,0,0,0,0,0,(Reduce_tbl*)&S39rt_Ctest_components,0,0,0};
+struct S40rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S40rtd_Ctest_components S40rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs1_Rtoken_grp4_}
+ }// end of reduce table
+};
+yacco2::State S40_Ctest_components = //State's vectored into symbol: "#rules"
+{40
+,0,0,0,0,0,(Reduce_tbl*)&S40rt_Ctest_components,0,0,0};
+struct S41rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S41rtd_Ctest_components S41rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs2_Rtoken_grp4_}
+ }// end of reduce table
+};
+yacco2::State S41_Ctest_components = //State's vectored into symbol: "#lhs"
+{41
+,0,0,0,0,0,(Reduce_tbl*)&S41rt_Ctest_components,0,0,0};
+struct S42rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S42rtd_Ctest_components S42rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs3_Rtoken_grp4_}
+ }// end of reduce table
+};
+yacco2::State S42_Ctest_components = //State's vectored into symbol: "#user-declaration"
+{42
+,0,0,0,0,0,(Reduce_tbl*)&S42rt_Ctest_components,0,0,0};
+struct S43rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S43rtd_Ctest_components S43rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs4_Rtoken_grp4_}
+ }// end of reduce table
+};
+yacco2::State S43_Ctest_components = //State's vectored into symbol: "#user-prefix-declaration"
+{43
+,0,0,0,0,0,(Reduce_tbl*)&S43rt_Ctest_components,0,0,0};
+struct S44rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S44rtd_Ctest_components S44rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs5_Rtoken_grp4_}
+ }// end of reduce table
+};
+yacco2::State S44_Ctest_components = //State's vectored into symbol: "#user-suffix-declaration"
+{44
+,0,0,0,0,0,(Reduce_tbl*)&S44rt_Ctest_components,0,0,0};
+struct S45rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S45rtd_Ctest_components S45rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs6_Rtoken_grp4_}
+ }// end of reduce table
+};
+yacco2::State S45_Ctest_components = //State's vectored into symbol: "#constructor"
+{45
+,0,0,0,0,0,(Reduce_tbl*)&S45rt_Ctest_components,0,0,0};
+struct S46rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S46rtd_Ctest_components S46rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs7_Rtoken_grp4_}
+ }// end of reduce table
+};
+yacco2::State S46_Ctest_components = //State's vectored into symbol: "#destructor"
+{46
+,0,0,0,0,0,(Reduce_tbl*)&S46rt_Ctest_components,0,0,0};
+struct S47rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S47rtd_Ctest_components S47rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs8_Rtoken_grp4_}
+ }// end of reduce table
+};
+yacco2::State S47_Ctest_components = //State's vectored into symbol: "#op"
+{47
+,0,0,0,0,0,(Reduce_tbl*)&S47rt_Ctest_components,0,0,0};
+struct S48rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S48rtd_Ctest_components S48rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs3_Rtoken_grp5_}
+ }// end of reduce table
+};
+yacco2::State S48_Ctest_components = //State's vectored into symbol: "#failed"
+{48
+,0,0,0,0,0,(Reduce_tbl*)&S48rt_Ctest_components,0,0,0};
+struct S49rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S49rtd_Ctest_components S49rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs9_Rtoken_grp4_}
+ }// end of reduce table
+};
+yacco2::State S49_Ctest_components = //State's vectored into symbol: "#user-implementation"
+{49
+,0,0,0,0,0,(Reduce_tbl*)&S49rt_Ctest_components,0,0,0};
+struct S50rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S50rtd_Ctest_components S50rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs10_Rtoken_grp4_}
+ }// end of reduce table
+};
+yacco2::State S50_Ctest_components = //State's vectored into symbol: "#user-imp-tbl"
+{50
+,0,0,0,0,0,(Reduce_tbl*)&S50rt_Ctest_components,0,0,0};
+struct S51rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S51rtd_Ctest_components S51rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs11_Rtoken_grp4_}
+ }// end of reduce table
+};
+yacco2::State S51_Ctest_components = //State's vectored into symbol: "#user-imp-sym"
+{51
+,0,0,0,0,0,(Reduce_tbl*)&S51rt_Ctest_components,0,0,0};
+struct S52rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S52rtd_Ctest_components S52rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs12_Rtoken_grp4_}
+ }// end of reduce table
+};
+yacco2::State S52_Ctest_components = //State's vectored into symbol: "#constant-defs"
+{52
+,0,0,0,0,0,(Reduce_tbl*)&S52rt_Ctest_components,0,0,0};
+struct S53rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S53rtd_Ctest_components S53rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs13_Rtoken_grp4_}
+ }// end of reduce table
+};
+yacco2::State S53_Ctest_components = //State's vectored into symbol: "#terminals-refs"
+{53
+,0,0,0,0,0,(Reduce_tbl*)&S53rt_Ctest_components,0,0,0};
+struct S54rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S54rtd_Ctest_components S54rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs14_Rtoken_grp4_}
+ }// end of reduce table
+};
+yacco2::State S54_Ctest_components = //State's vectored into symbol: "#terminals-sufx"
+{54
+,0,0,0,0,0,(Reduce_tbl*)&S54rt_Ctest_components,0,0,0};
+struct S55rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S55rtd_Ctest_components S55rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs15_Rtoken_grp4_}
+ }// end of reduce table
+};
+yacco2::State S55_Ctest_components = //State's vectored into symbol: "#lrk-sufx"
+{55
+,0,0,0,0,0,(Reduce_tbl*)&S55rt_Ctest_components,0,0,0};
+struct S56rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S56rtd_Ctest_components S56rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs2_Rtoken_grp5_}
+ }// end of reduce table
+};
+yacco2::State S56_Ctest_components = //State's vectored into symbol: "#NULL"
+{56
+,0,0,0,0,0,(Reduce_tbl*)&S56rt_Ctest_components,0,0,0};
+struct S57rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S57rtd_Ctest_components S57rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs7_Rtoken_grp1_}
+ }// end of reduce table
+};
+yacco2::State S57_Ctest_components = //State's vectored into symbol: "::"
+{57
+,0,0,0,0,0,(Reduce_tbl*)&S57rt_Ctest_components,0,0,0};
+struct S58rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S58rtd_Ctest_components S58rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs1_Rtoken_grp2_}
+ }// end of reduce table
+};
+yacco2::State S58_Ctest_components = //State's vectored into symbol: "bad eos"
+{58
+,0,0,0,0,0,(Reduce_tbl*)&S58rt_Ctest_components,0,0,0};
+struct S59rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S59rtd_Ctest_components S59rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs3_Rtoken_grp2_}
+ }// end of reduce table
+};
+yacco2::State S59_Ctest_components = //State's vectored into symbol: "bad esc"
+{59
+,0,0,0,0,0,(Reduce_tbl*)&S59rt_Ctest_components,0,0,0};
+struct S60rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S60rtd_Ctest_components S60rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs2_Rtoken_grp2_}
+ }// end of reduce table
+};
+yacco2::State S60_Ctest_components = //State's vectored into symbol: "comment-overrun"
+{60
+,0,0,0,0,0,(Reduce_tbl*)&S60rt_Ctest_components,0,0,0};
+struct S61rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S61rtd_Ctest_components S61rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs3_Rtoken_grp1_}
+ }// end of reduce table
+};
+yacco2::State S61_Ctest_components = //State's vectored into symbol: "bad char"
+{61
+,0,0,0,0,0,(Reduce_tbl*)&S61rt_Ctest_components,0,0,0};
+struct S62rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S62rtd_Ctest_components S62rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs4_Rtoken_grp5_}
+ }// end of reduce table
+};
+yacco2::State S62_Ctest_components = //State's vectored into symbol: "|+|"
+{62
+,0,0,0,0,0,(Reduce_tbl*)&S62rt_Ctest_components,0,0,0};
+struct S63std_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[9];
+};
+S63std_Ctest_components S63st_Ctest_components = {
+ 9
+ ,
+ {// start of table
+ {1,(State*)&S64_Ctest_components} // shift sym: LR1_eog
+ ,{3,(State*)&S3_Ctest_components} // shift sym: LR1_parallel_operator
+ ,{6,(State*)&S62_Ctest_components} // shift sym: LR1_all_shift_operator
+ ,{571,(State*)&S65_Ctest_components} // shift sym: Rtoken
+ ,{572,(State*)&S66_Ctest_components} // shift sym: Rtoken_grp1
+ ,{573,(State*)&S67_Ctest_components} // shift sym: Rtoken_grp2
+ ,{574,(State*)&S68_Ctest_components} // shift sym: Rtoken_grp3
+ ,{575,(State*)&S69_Ctest_components} // shift sym: Rtoken_grp4
+ ,{576,(State*)&S70_Ctest_components} // shift sym: Rtoken_grp5
+ }// end of shift table
+};
+yacco2::Shift_entry S63pse_Ctest_components = {3,(State*)&S3_Ctest_components};
+yacco2::Shift_entry S63ase_Ctest_components = {6,(State*)&S62_Ctest_components};
+yacco2::State S63_Ctest_components = //State's vectored into symbol: "Relems"
+{63
+,(Shift_entry*)&S63pse_Ctest_components,(Shift_entry*)&S63ase_Ctest_components
+,0,0,(Shift_tbl*)&S63st_Ctest_components,0,(State_s_thread_tbl*)&S3tt_Ctest_components,0,0};
+struct S64rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S64rtd_Ctest_components S64rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Ctest_components,Ctest_components::rhs2_Rpass3_}
+ }// end of reduce table
+};
+yacco2::State S64_Ctest_components = //State's vectored into symbol: "eog"
+{64
+,0,0,0,0,0,(Reduce_tbl*)&S64rt_Ctest_components,0,0,0};
+struct S65rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S65rtd_Ctest_components S65rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs2_Relems_}
+ }// end of reduce table
+};
+yacco2::State S65_Ctest_components = //State's vectored into symbol: "Rtoken"
+{65
+,0,0,0,0,0,(Reduce_tbl*)&S65rt_Ctest_components,0,0,0};
+struct S66rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S66rtd_Ctest_components S66rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs1_Rtoken_}
+ }// end of reduce table
+};
+yacco2::State S66_Ctest_components = //State's vectored into symbol: "Rtoken_grp1"
+{66
+,0,0,0,0,0,(Reduce_tbl*)&S66rt_Ctest_components,0,0,0};
+struct S67rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S67rtd_Ctest_components S67rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs2_Rtoken_}
+ }// end of reduce table
+};
+yacco2::State S67_Ctest_components = //State's vectored into symbol: "Rtoken_grp2"
+{67
+,0,0,0,0,0,(Reduce_tbl*)&S67rt_Ctest_components,0,0,0};
+struct S68rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S68rtd_Ctest_components S68rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs3_Rtoken_}
+ }// end of reduce table
+};
+yacco2::State S68_Ctest_components = //State's vectored into symbol: "Rtoken_grp3"
+{68
+,0,0,0,0,0,(Reduce_tbl*)&S68rt_Ctest_components,0,0,0};
+struct S69rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S69rtd_Ctest_components S69rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs4_Rtoken_}
+ }// end of reduce table
+};
+yacco2::State S69_Ctest_components = //State's vectored into symbol: "Rtoken_grp4"
+{69
+,0,0,0,0,0,(Reduce_tbl*)&S69rt_Ctest_components,0,0,0};
+struct S70rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S70rtd_Ctest_components S70rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs5_Rtoken_}
+ }// end of reduce table
+};
+yacco2::State S70_Ctest_components = //State's vectored into symbol: "Rtoken_grp5"
+{70
+,0,0,0,0,0,(Reduce_tbl*)&S70rt_Ctest_components,0,0,0};
+struct S71rtd_Ctest_components{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S71rtd_Ctest_components S71rt_Ctest_components = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Ctest_components,Ctest_components::rhs1_Relems_}
+ }// end of reduce table
+};
+yacco2::State S71_Ctest_components = //State's vectored into symbol: "Rtoken"
+{71
+,0,0,0,0,0,(Reduce_tbl*)&S71rt_Ctest_components,0,0,0};
diff --git a/web/yacco2/compiler/grammars/unq_str.cpp b/web/yacco2/compiler/grammars/unq_str.cpp
new file mode 100644
index 0000000000..2eb2067654
--- /dev/null
+++ b/web/yacco2/compiler/grammars/unq_str.cpp
@@ -0,0 +1,98 @@
+/*
+ File: unq_str.cpp
+ Date and Time: Fri Jan 30 18:55:27 2015
+*/
+#include "unq_str.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_unq_str;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 3;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[2] = new Per_rule_s_reuse_table();
+}
+ Cunq_str::
+ Cunq_str()
+ :yacco2::CAbs_fsm
+ ("unq_str.lex"
+ ,"1.0"
+ ,"29 Nov. 2002"
+ ,false
+ ,"Unquoted string of characters: raw and basic."
+ ,"Fri Jan 30 18:55:27 2015 "
+ ,S1_Cunq_str){
+
+ }
+
+Cunq_str::~Cunq_str(){
+
+ for(int x = 0;x < 3;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cunq_str::failed(){
+ return false;
+ }
+ void Cunq_str::op(){
+ parser__->set_use_all_shift_on();
+ c_.erase();
+ if(la_bnds_fnd(parser__->start_token__) == true)
+ parser__->set_use_all_shift_off();// stop the parse
+
+}
+int Cunq_str::rhs_to_rules_mapping_[5] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,2 // subrule 4 for rule 3
+};
+Runq_str::Runq_str(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Runq_str",0,Cunq_str::R_Runq_str_,P,false,false){
+}
+
+void Runq_str::sr1(){
+
+ Cunq_str* fsm = (Cunq_str*)rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* sym = new T_unquoted_string(fsm->c_);
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+
+}
+
+Rchr::Rchr(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rchr",0,Cunq_str::R_Rchr_,P,false,false){
+}
+
+Rall_shift::Rall_shift(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rall_shift",0,Cunq_str::R_Rall_shift_,P,false,false){
+}
+
+void Rall_shift::sr1(){
+ struct SF{
+ CAbs_lr1_sym* p1__;
+ State* s1__;
+ bool abort1__;
+ Rule_s_reuse_entry* rule_s_reuse_entry1__;
+ };
+ SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(1);
+
+ Cunq_str* fsm = (Cunq_str*)rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* sym = sf->p1__;
+ fsm->c_ += sym->id__;
+ if(fsm->la_bnds_fnd(rule_info__.parser__->current_token()) == true){// chk LA
+ rule_info__.parser__->set_use_all_shift_off();
+ }
+
+}
+
diff --git a/web/yacco2/compiler/grammars/unq_str.fsc b/web/yacco2/compiler/grammars/unq_str.fsc
new file mode 100644
index 0000000000..33001a0267
--- /dev/null
+++ b/web/yacco2/compiler/grammars/unq_str.fsc
@@ -0,0 +1,20 @@
+/*
+ File: unq_str.fsc
+ Date and Time: Fri Jan 30 18:55:27 2015
+*/
+transitive n
+grammar-name "unq_str"
+name-space "NS_unq_str"
+thread-name "TH_unq_str"
+monolithic n
+file-name "unq_str.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ LR1_all_shift_operator
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"Unquoted string of characters: raw and basic."
diff --git a/web/yacco2/compiler/grammars/unq_str.h b/web/yacco2/compiler/grammars/unq_str.h
new file mode 100644
index 0000000000..35e82d2845
--- /dev/null
+++ b/web/yacco2/compiler/grammars/unq_str.h
@@ -0,0 +1,98 @@
+/*
+ File: unq_str.h
+ Date and Time: Fri Jan 30 18:55:27 2015
+*/
+#ifndef __unq_str_h__
+#define __unq_str_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+extern yacco2::Thread_entry ITH_unq_str;
+
+extern yacco2::State S1_Cunq_str;
+namespace NS_unq_str {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_unq_str(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_unq_str(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[3];
+};
+class Cunq_str: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Runq_str_ = 569//start_of_rule_list + 0
+ ,rhs1_Runq_str_ = 1
+ ,R_Rchr_ = 570//start_of_rule_list + 2
+ ,rhs1_Rchr_ = 2
+ ,rhs2_Rchr_ = 3
+ ,R_Rall_shift_ = 571//start_of_rule_list + 4
+ ,rhs1_Rall_shift_ = 4
+ };
+ //no of la sets = 1
+ //no of states = 5
+ Cunq_str();
+ ~Cunq_str();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[5];
+
+ public:
+ bool la_bnds_fnd(CAbs_lr1_sym* Sym){
+ using namespace NS_yacco2_terminals;
+ int id = Sym->enumerated_id__;
+ switch (id){
+ case T_Enum::T_raw_open_brace_: break;
+ case T_Enum::T_raw_close_brace_: break;
+ case T_Enum::T_raw_lf_: break;
+ case T_Enum::T_raw_cr_: break;
+ case T_Enum::T_LR1_eog_: break;
+ case T_Enum::T_T_eol_: break;
+ case T_Enum::T_raw_ht_: break;
+ case T_Enum::T_raw_sp_: break;
+ case T_Enum::T_raw_vt_: break;
+ case T_Enum::T_raw_ff_: break;
+ case T_Enum::T_raw_dbl_quote_: break;
+ default:{
+ return false;
+ }
+ }
+ return true;
+ };
+ std::string c_;
+
+ };
+struct Runq_str;
+struct Rchr;
+struct Rall_shift;
+struct Runq_str:public yacco2::CAbs_lr1_sym {
+ Runq_str(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rchr:public yacco2::CAbs_lr1_sym {
+ Rchr(yacco2::Parser* P);
+ public:
+};
+
+struct Rall_shift:public yacco2::CAbs_lr1_sym {
+ Rall_shift(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/unq_str.lex b/web/yacco2/compiler/grammars/unq_str.lex
new file mode 100644
index 0000000000..4a6f205c77
--- /dev/null
+++ b/web/yacco2/compiler/grammars/unq_str.lex
@@ -0,0 +1,111 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: unq_str.lex
+Date: 1 Juin 2003
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |unq_str| Thread.\fbreak
+This recognizer could be
+ used in a ``file name'' option of
+ a command line sequence: a quoted filename is used if it
+contains spaces or other abnormal characters
+to be included as part of it.
+The expression recognized is crude: just a wild character loop.
+Once parsed, it does no checking.
+It is left for the calling context to do the validity check.
+Regarding file processing,
+one must still go to the file system for the existance check.
+\fbreak
+Note how the lookahead (LA) character (current token)
+is checked using fsm's
+|la_bnds_chk|
+function to turn off the \allshift consumption.
+
+Why is there no escape sequence like UNIX's scripting:
+the blackslash character-to-literal-accept?
+Well i'm not fighting different contexts and
+how many variants do u need?
+Hear the stomping of my foot? Enough ... just quote it!
+@/
+fsm
+(fsm-id "unq_str.lex",fsm-filename unq_str,fsm-namespace NS_unq_str
+,fsm-class Cunq_str{
+ user-declaration
+ public:
+ bool la_bnds_fnd(CAbs_lr1_sym* Sym){
+ using namespace NS_yacco2_terminals;
+ int id = Sym->enumerated_id__;
+ switch (id){
+ case T_Enum::T_raw_open_brace_: break;
+ case T_Enum::T_raw_close_brace_: break;
+ case T_Enum::T_raw_lf_: break;
+ case T_Enum::T_raw_cr_: break;
+ case T_Enum::T_LR1_eog_: break;
+ case T_Enum::T_T_eol_: break;
+ case T_Enum::T_raw_ht_: break;
+ case T_Enum::T_raw_sp_: break;
+ case T_Enum::T_raw_vt_: break;
+ case T_Enum::T_raw_ff_: break;
+ case T_Enum::T_raw_dbl_quote_: break;
+ default:{
+ return false;
+ }
+ }
+ return true;
+ };
+ std::string c_;
+ ***
+ op
+ parser__->set_use_all_shift_on();
+ c_.erase();
+ if(la_bnds_fnd(parser__->start_token__) == true)
+ parser__->set_use_all_shift_off();// stop the parse
+ ***
+ }
+,fsm-version "1.0" ,fsm-date "29 Nov. 2002"
+,fsm-debug "false" ,fsm-comments "Unquoted string of characters: raw and basic.")
+parallel-parser
+(
+ parallel-thread-function
+ TH_unq_str
+ ***
+ parallel-la-boundary
+eolr
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Runq_str (){
+ -> Rchr {
+ op
+ Cunq_str* fsm = (Cunq_str*)rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* sym = new T_unquoted_string(fsm->c_);
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ RSVP(sym);
+ ***
+ }
+}
+
+Rchr (){
+ -> Rall_shift
+ -> Rchr Rall_shift
+}
+
+Rall_shift (){
+ -> |+|{
+ op
+ Cunq_str* fsm = (Cunq_str*)rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* sym = sf->p1__;
+ fsm->c_ += sym->id__;
+ if(fsm->la_bnds_fnd(rule_info__.parser__->current_token()) == true){// chk LA
+ rule_info__.parser__->set_use_all_shift_off();
+ }
+ ***
+ }
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/unq_strsym.cpp b/web/yacco2/compiler/grammars/unq_strsym.cpp
new file mode 100644
index 0000000000..2ffd17f30d
--- /dev/null
+++ b/web/yacco2/compiler/grammars/unq_strsym.cpp
@@ -0,0 +1,106 @@
+/*
+ File: unq_strsym.cpp
+ Date and Time: Fri Jan 30 18:55:27 2015
+*/
+#include "unq_str.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_unq_str;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_unq_str::TH_unq_str(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_unq_str;
+ NS_unq_str::Cunq_str Cunq_str_;// parallel-parser's parse table
+#define ssPARSE_TABLE Cunq_str_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_unq_str::PROC_TH_unq_str(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_unq_str";
+ static bool one_time(false);
+ static NS_unq_str::Cunq_str* NS_unq_str_Cunq_str_(0);// parallel-parser's fsm table
+ static Parser* NS_unq_str_Cunq_str_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_unq_str_Cunq_str_ = new NS_unq_str::Cunq_str();// parallel-parser's fsm table
+ NS_unq_str_Cunq_str_parser = new Parser(*NS_unq_str_Cunq_str_,Caller_pp);
+ }
+ proc_parser = NS_unq_str_Cunq_str_parser;
+#include "wproc_pp_core.h"
+}
+void
+Cunq_str::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Runq_str_:{
+ Runq_str* sym;
+ if(re->rule_ == 0){
+ sym = new Runq_str(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Runq_str*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rchr_:{
+ Rchr* sym;
+ if(re->rule_ == 0){
+ sym = new Rchr(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rchr*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ return;}
+ case rhs2_Rchr_:{
+ Rchr* sym;
+ if(re->rule_ == 0){
+ sym = new Rchr(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rchr*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ return;}
+ case rhs1_Rall_shift_:{
+ Rall_shift* sym;
+ if(re->rule_ == 0){
+ sym = new Rall_shift(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rall_shift*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/unq_strtbl.cpp b/web/yacco2/compiler/grammars/unq_strtbl.cpp
new file mode 100644
index 0000000000..492a1501c5
--- /dev/null
+++ b/web/yacco2/compiler/grammars/unq_strtbl.cpp
@@ -0,0 +1,112 @@
+/*
+ File: unq_strtbl.cpp
+ Date and Time: Fri Jan 30 18:55:27 2015
+*/
+#include "unq_str.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_unq_str;// grammar's ns
+// first set terminals
+// LR1_eolr
+yacco2::UCHAR LA1_Cunq_str[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Cunq_str;
+extern yacco2::State S2_Cunq_str;
+extern yacco2::State S3_Cunq_str;
+extern yacco2::State S4_Cunq_str;
+extern yacco2::State S5_Cunq_str;
+struct S1std_Cunq_str{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[4];
+};
+S1std_Cunq_str S1st_Cunq_str = {
+ 4
+ ,
+ {// start of table
+ {6,(State*)&S2_Cunq_str} // shift sym: LR1_all_shift_operator
+ ,{569,(State*)&S1_Cunq_str} // accept sym: Runq_str
+ ,{570,(State*)&S3_Cunq_str} // shift sym: Rchr
+ ,{571,(State*)&S5_Cunq_str} // shift sym: Rall_shift
+ }// end of shift table
+};
+yacco2::Shift_entry S1ase_Cunq_str = {6,(State*)&S2_Cunq_str};
+yacco2::State S1_Cunq_str = //State's vectored into symbol: " No symbol"
+{1
+,0,(Shift_entry*)&S1ase_Cunq_str
+,0,0,(Shift_tbl*)&S1st_Cunq_str,0,0,0,0};
+struct S2rtd_Cunq_str{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Cunq_str S2rt_Cunq_str = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cunq_str,Cunq_str::rhs1_Rall_shift_}
+ }// end of reduce table
+};
+yacco2::State S2_Cunq_str = //State's vectored into symbol: "|+|"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Cunq_str,0,0,0};
+struct S3std_Cunq_str{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[2];
+};
+S3std_Cunq_str S3st_Cunq_str = {
+ 2
+ ,
+ {// start of table
+ {6,(State*)&S2_Cunq_str} // shift sym: LR1_all_shift_operator
+ ,{571,(State*)&S4_Cunq_str} // shift sym: Rall_shift
+ }// end of shift table
+};
+yacco2::Shift_entry S3ase_Cunq_str = {6,(State*)&S2_Cunq_str};
+struct S3rtd_Cunq_str{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Cunq_str S3rt_Cunq_str = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cunq_str,Cunq_str::rhs1_Runq_str_}
+ }// end of reduce table
+};
+yacco2::State S3_Cunq_str = //State's vectored into symbol: "Rchr"
+{3
+,0,(Shift_entry*)&S3ase_Cunq_str
+,0,0,(Shift_tbl*)&S3st_Cunq_str,(Reduce_tbl*)&S3rt_Cunq_str,0,0,0};
+struct S4rtd_Cunq_str{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Cunq_str S4rt_Cunq_str = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cunq_str,Cunq_str::rhs2_Rchr_}
+ }// end of reduce table
+};
+yacco2::State S4_Cunq_str = //State's vectored into symbol: "Rall_shift"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Cunq_str,0,0,0};
+struct S5rtd_Cunq_str{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Cunq_str S5rt_Cunq_str = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cunq_str,Cunq_str::rhs1_Rchr_}
+ }// end of reduce table
+};
+yacco2::State S5_Cunq_str = //State's vectored into symbol: "Rall_shift"
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Cunq_str,0,0,0};
diff --git a/web/yacco2/compiler/grammars/ws.cpp b/web/yacco2/compiler/grammars/ws.cpp
new file mode 100644
index 0000000000..4cf3a26fa1
--- /dev/null
+++ b/web/yacco2/compiler/grammars/ws.cpp
@@ -0,0 +1,95 @@
+/*
+ File: ws.cpp
+ Date and Time: Fri Jan 30 18:55:28 2015
+*/
+#include "ws.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_ws;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 2;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+}
+ Cws::
+ Cws()
+ :yacco2::CAbs_fsm
+ ("ws.lex"
+ ,"1.0"
+ ,"17 Juin 2003"
+ ,false
+ ,"White space globber."
+ ,"Fri Jan 30 18:55:28 2015 "
+ ,S1_Cws){
+
+ }
+
+Cws::~Cws(){
+
+ for(int x = 0;x < 2;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cws::failed(){
+ return false;
+ }
+ void Cws::op(){
+}
+int Cws::rhs_to_rules_mapping_[6] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+ ,1 // subrule 3 for rule 2
+ ,1 // subrule 4 for rule 2
+ ,1 // subrule 5 for rule 2
+};
+
+ void Cws::read_white_stuff(){
+loop:
+ switch (parser__->current_token()->enumerated_id__){
+ case T_Enum::T_raw_sp_: goto other;
+ case T_Enum::T_raw_ht_: goto other;
+ case T_Enum::T_raw_vt_: goto other;
+ case T_Enum::T_raw_ff_: goto other;
+ default: return;
+ }
+ other:{
+ parser__->get_next_token();
+goto loop;
+ }
+
+ }
+
+Rws::Rws(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rws",0,Cws::R_Rws_,P,false,false){
+}
+
+void Rws::sr1(){
+
+ Cws* fsm = (Cws*) rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* sym = NS_yacco2_terminals::PTR_ws__;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ sym->set_line_no_and_pos_in_line(*rule_info__.parser__->start_token__);
+ RSVP(sym);
+
+}
+
+Rchr::Rchr(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rchr",0,Cws::R_Rchr_,P,false,false){
+}
+
+void Rchr::op(){
+ sstrace_rulesss
+
+ Cws* fsm = (Cws*) rule_info__.parser__->fsm_tbl__;
+ fsm->read_white_stuff();// current token is the next character to assess
+
+}
diff --git a/web/yacco2/compiler/grammars/ws.fsc b/web/yacco2/compiler/grammars/ws.fsc
new file mode 100644
index 0000000000..0c6120c051
--- /dev/null
+++ b/web/yacco2/compiler/grammars/ws.fsc
@@ -0,0 +1,23 @@
+/*
+ File: ws.fsc
+ Date and Time: Fri Jan 30 18:55:28 2015
+*/
+transitive n
+grammar-name "ws"
+name-space "NS_ws"
+thread-name "TH_ws"
+monolithic n
+file-name "ws.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 4
+ raw_ht
+ raw_vt
+ raw_ff
+ raw_sp
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"White space globber."
diff --git a/web/yacco2/compiler/grammars/ws.h b/web/yacco2/compiler/grammars/ws.h
new file mode 100644
index 0000000000..d6d8d08f83
--- /dev/null
+++ b/web/yacco2/compiler/grammars/ws.h
@@ -0,0 +1,71 @@
+/*
+ File: ws.h
+ Date and Time: Fri Jan 30 18:55:28 2015
+*/
+#ifndef __ws_h__
+#define __ws_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+extern yacco2::Thread_entry ITH_ws;
+
+extern yacco2::State S1_Cws;
+namespace NS_ws {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_ws(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_ws(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[2];
+};
+class Cws: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rws_ = 569//start_of_rule_list + 0
+ ,rhs1_Rws_ = 1
+ ,R_Rchr_ = 570//start_of_rule_list + 2
+ ,rhs1_Rchr_ = 2
+ ,rhs2_Rchr_ = 3
+ ,rhs3_Rchr_ = 4
+ ,rhs4_Rchr_ = 5
+ };
+ //no of la sets = 2
+ //no of states = 7
+ Cws();
+ ~Cws();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[6];
+
+ public:
+ void read_white_stuff();
+
+ };
+struct Rws;
+struct Rchr;
+struct Rws:public yacco2::CAbs_lr1_sym {
+ Rws(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rchr:public yacco2::CAbs_lr1_sym {
+ Rchr(yacco2::Parser* P);
+ void op();
+ public:
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/ws.lex b/web/yacco2/compiler/grammars/ws.lex
new file mode 100644
index 0000000000..3104becb50
--- /dev/null
+++ b/web/yacco2/compiler/grammars/ws.lex
@@ -0,0 +1,105 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: ws.lex
+Date: 17 Juin 2003
+Purpose: white space lexer
+Conduit: ws
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |ws| Thread.\fbreak
+White space globber of:\fbreak
+\ptindent{1) \] --- space}
+\ptindent{2) horizontal tab}
+\ptindent{3) vertical tab}
+\ptindent{4) form feed}
+Use a global pointer to it as it is just an indicator.
+The new / delete cycle is too expensive.
+
+As the data accepted is not needed, i skip building up its characters
+in a local string.
+@/
+fsm
+(fsm-id "ws.lex",fsm-filename ws,fsm-namespace NS_ws
+,fsm-class Cws{
+ user-declaration
+ public:
+ void read_white_stuff();
+ ***
+ user-implementation
+ void Cws::read_white_stuff(){
+loop:
+ switch (parser__->current_token()->enumerated_id__){
+ case T_Enum::T_raw_sp_: goto other;
+ case T_Enum::T_raw_ht_: goto other;
+ case T_Enum::T_raw_vt_: goto other;
+ case T_Enum::T_raw_ff_: goto other;
+ default: return;
+ }
+ other:{
+ parser__->get_next_token();
+goto loop;
+ }
+
+ }
+ ***
+ }
+,fsm-version "1.0",fsm-date "17 Juin 2003",fsm-debug "false",fsm-comments "White space globber.")
+parallel-parser
+(
+ parallel-thread-function
+ TH_ws
+ ***
+ parallel-la-boundary
+ eolr
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rws (){
+ -> Rchr |.|{
+ op
+ Cws* fsm = (Cws*) rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* sym = NS_yacco2_terminals::PTR_ws__;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ sym->set_line_no_and_pos_in_line(*rule_info__.parser__->start_token__);
+ RSVP(sym);
+ ***
+ }
+}
+
+Rchr (
+lhs{
+/@
+Why the previous stack frame?
+Cuz the finite state implementation has the
+vectoring symbol associated with its state and
+the current stack frame is its goto state
+with no associated symbol.
+
+Why the delayed grabbing of the character here instead of
+at its subrule?
+To prevent code bloat and to improvize.
+@/
+ op
+ Cws* fsm = (Cws*) rule_info__.parser__->fsm_tbl__;
+ fsm->read_white_stuff();// current token is the next character to assess
+ ***
+ }
+){
+ ->
+ /@
+The white space is dotted in the
+diagram due to |convertMPtoPDF| limitations.
+ @/
+
+" "
+ -> "x09" // ht
+ -> "x0b" // vt
+ -> "x0c" // ff
+}
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/wssym.cpp b/web/yacco2/compiler/grammars/wssym.cpp
new file mode 100644
index 0000000000..a2bca394cf
--- /dev/null
+++ b/web/yacco2/compiler/grammars/wssym.cpp
@@ -0,0 +1,123 @@
+/*
+ File: wssym.cpp
+ Date and Time: Fri Jan 30 18:55:28 2015
+*/
+#include "ws.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_ws;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_ws::TH_ws(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_ws;
+ NS_ws::Cws Cws_;// parallel-parser's parse table
+#define ssPARSE_TABLE Cws_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_ws::PROC_TH_ws(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_ws";
+ static bool one_time(false);
+ static NS_ws::Cws* NS_ws_Cws_(0);// parallel-parser's fsm table
+ static Parser* NS_ws_Cws_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_ws_Cws_ = new NS_ws::Cws();// parallel-parser's fsm table
+ NS_ws_Cws_parser = new Parser(*NS_ws_Cws_,Caller_pp);
+ }
+ proc_parser = NS_ws_Cws_parser;
+#include "wproc_pp_core.h"
+}
+void
+Cws::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rws_:{
+ Rws* sym;
+ if(re->rule_ == 0){
+ sym = new Rws(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rws*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rchr_:{
+ Rchr* sym;
+ if(re->rule_ == 0){
+ sym = new Rchr(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rchr*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs2_Rchr_:{
+ Rchr* sym;
+ if(re->rule_ == 0){
+ sym = new Rchr(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rchr*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs3_Rchr_:{
+ Rchr* sym;
+ if(re->rule_ == 0){
+ sym = new Rchr(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rchr*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ case rhs4_Rchr_:{
+ Rchr* sym;
+ if(re->rule_ == 0){
+ sym = new Rchr(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rchr*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->op();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/wstbl.cpp b/web/yacco2/compiler/grammars/wstbl.cpp
new file mode 100644
index 0000000000..3baac8de71
--- /dev/null
+++ b/web/yacco2/compiler/grammars/wstbl.cpp
@@ -0,0 +1,135 @@
+/*
+ File: wstbl.cpp
+ Date and Time: Fri Jan 30 18:55:28 2015
+*/
+#include "ws.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_ws;// grammar's ns
+// first set terminals
+// LR1_invisible_shift_operator
+yacco2::UCHAR LA1_Cws[] ={
+1
+,0,32
+};
+// LR1_eolr
+yacco2::UCHAR LA2_Cws[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Cws;
+extern yacco2::State S2_Cws;
+extern yacco2::State S3_Cws;
+extern yacco2::State S4_Cws;
+extern yacco2::State S5_Cws;
+extern yacco2::State S6_Cws;
+extern yacco2::State S7_Cws;
+struct S1std_Cws{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[6];
+};
+S1std_Cws S1st_Cws = {
+ 6
+ ,
+ {// start of table
+ {17,(State*)&S2_Cws} // shift sym: raw_ht
+ ,{19,(State*)&S3_Cws} // shift sym: raw_vt
+ ,{20,(State*)&S4_Cws} // shift sym: raw_ff
+ ,{40,(State*)&S5_Cws} // shift sym: raw_sp
+ ,{569,(State*)&S1_Cws} // accept sym: Rws
+ ,{570,(State*)&S6_Cws} // shift sym: Rchr
+ }// end of shift table
+};
+yacco2::State S1_Cws = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Cws,0,0,0,0};
+struct S2rtd_Cws{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Cws S2rt_Cws = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cws,Cws::rhs2_Rchr_}
+ }// end of reduce table
+};
+yacco2::State S2_Cws = //State's vectored into symbol: "x09"
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Cws,0,0,0};
+struct S3rtd_Cws{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S3rtd_Cws S3rt_Cws = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cws,Cws::rhs3_Rchr_}
+ }// end of reduce table
+};
+yacco2::State S3_Cws = //State's vectored into symbol: "x0b"
+{3
+,0,0,0,0,0,(Reduce_tbl*)&S3rt_Cws,0,0,0};
+struct S4rtd_Cws{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Cws S4rt_Cws = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cws,Cws::rhs4_Rchr_}
+ }// end of reduce table
+};
+yacco2::State S4_Cws = //State's vectored into symbol: "x0c"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Cws,0,0,0};
+struct S5rtd_Cws{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S5rtd_Cws S5rt_Cws = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cws,Cws::rhs1_Rchr_}
+ }// end of reduce table
+};
+yacco2::State S5_Cws = //State's vectored into symbol: " "
+{5
+,0,0,0,0,0,(Reduce_tbl*)&S5rt_Cws,0,0,0};
+struct S6std_Cws{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S6std_Cws S6st_Cws = {
+ 1
+ ,
+ {// start of table
+ {5,(State*)&S7_Cws} // shift sym: LR1_invisible_shift_operator
+ }// end of shift table
+};
+yacco2::Shift_entry S6ise_Cws = {5,(State*)&S7_Cws};
+yacco2::State S6_Cws = //State's vectored into symbol: "Rchr"
+{6
+,0,0,(Shift_entry*)&S6ise_Cws
+,0,(Shift_tbl*)&S6st_Cws,0,0,0,0};
+struct S7rtd_Cws{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S7rtd_Cws S7rt_Cws = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cws,Cws::rhs1_Rws_}
+ }// end of reduce table
+};
+yacco2::State S7_Cws = //State's vectored into symbol: "|.|"
+{7
+,0,0,0,0,0,(Reduce_tbl*)&S7rt_Cws,0,0,0};
diff --git a/web/yacco2/compiler/grammars/xc_str.cpp b/web/yacco2/compiler/grammars/xc_str.cpp
new file mode 100644
index 0000000000..42dae4878c
--- /dev/null
+++ b/web/yacco2/compiler/grammars/xc_str.cpp
@@ -0,0 +1,126 @@
+/*
+ File: xc_str.cpp
+ Date and Time: Fri Jan 30 18:55:28 2015
+*/
+#include "xc_str.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_xc_str;// grammar's ns
+// first set terminals
+fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){
+ no_rules_entries_ = 2;
+ per_rule_s_table_[0] = new Per_rule_s_reuse_table();
+ per_rule_s_table_[1] = new Per_rule_s_reuse_table();
+}
+ Cxc_str::
+ Cxc_str()
+ :yacco2::CAbs_fsm
+ ("xc_str.lex"
+ ,"1.0"
+ ,"27 Juin 2005"
+ ,false
+ ,"No escape sequence check: accept all characters between dbl. quoted string."
+ ,"Fri Jan 30 18:55:28 2015 "
+ ,S1_Cxc_str){
+
+ ddd_idx_ = 0;
+ ddd_[ddd_idx_] = 0;
+
+ }
+
+Cxc_str::~Cxc_str(){
+
+ for(int x = 0;x < 2;++x){
+ ///delete fsm_rules_reuse_table.per_rule_s_table_[x];
+ }
+}
+
+ bool Cxc_str::failed(){
+ return false;
+ }
+ void Cxc_str::op(){
+ ddd_idx_ = 0;
+ ddd_[ddd_idx_] = 0;
+
+}
+int Cxc_str::rhs_to_rules_mapping_[3] = {
+ -1
+ ,0 // subrule 1 for rule 1
+ ,1 // subrule 2 for rule 2
+};
+
+ void Cxc_str::copy_str_into_buffer(std::string* Str){
+ const char* y = Str->c_str();
+ int x(0);
+ for(;y[x]!=0;++x,++ddd_idx_)ddd_[ddd_idx_] = y[x];
+ ddd_[ddd_idx_] = 0;
+ }
+ void Cxc_str::copy_kstr_into_buffer(const char* Str){
+ const char* y = Str;
+ int x(0);
+ for(;y[x]!=0;++x,++ddd_idx_)ddd_[ddd_idx_] = y[x];
+ ddd_[ddd_idx_] = 0;
+ }
+
+Rxc_str::Rxc_str(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rxc_str",0,Cxc_str::R_Rxc_str_,P,false,false){
+}
+
+void Rxc_str::sr1(){
+
+ Cxc_str* fsm = (Cxc_str*) rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* sym = new T_xc_str((const char*)&fsm->ddd_);
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ sym->set_line_no_and_pos_in_line(*rule_info__.parser__->start_token__);
+ RSVP(sym);
+
+}
+
+Rquote::Rquote(yacco2::Parser* P)
+ :CAbs_lr1_sym
+ ("Rquote",0,Cxc_str::R_Rquote_,P,false,false){
+}
+
+void Rquote::sr1(){
+
+ Cxc_str* fsm = (Cxc_str*) rule_info__.parser__->fsm_tbl__;
+loop:
+ switch (rule_info__.parser__->current_token()->enumerated_id__){
+ case T_Enum::T_raw_lf_: goto overrun;
+ case T_Enum::T_raw_cr_: goto overrun;
+ case T_Enum::T_LR1_eog_: goto overrun;
+ case T_Enum::T_raw_dbl_quote_: goto dblquote;
+ default: goto other;
+ }
+ dblquote:{ // end of string
+ rule_info__.parser__->get_next_token();
+ if(rule_info__.parser__->current_token()->enumerated_id__
+ == T_Enum::T_raw_dbl_quote_){
+ fsm->copy_kstr_into_buffer("\"");// due to lex scanner
+ fsm->copy_kstr_into_buffer("\"");
+ rule_info__.parser__->get_next_token();
+ goto loop;
+ }
+ return;// end of c string
+ }
+ overrun:{
+ CAbs_lr1_sym* sym = new Err_bad_eos;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ sym->set_line_no_and_pos_in_line(*rule_info__.parser__->start_token__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ other:{
+ fsm->copy_kstr_into_buffer(rule_info__.parser__->current_token()->id__);
+ rule_info__.parser__->get_next_token();
+goto loop;
+ }
+
+}
+
diff --git a/web/yacco2/compiler/grammars/xc_str.fsc b/web/yacco2/compiler/grammars/xc_str.fsc
new file mode 100644
index 0000000000..c4f1ca7214
--- /dev/null
+++ b/web/yacco2/compiler/grammars/xc_str.fsc
@@ -0,0 +1,20 @@
+/*
+ File: xc_str.fsc
+ Date and Time: Fri Jan 30 18:55:28 2015
+*/
+transitive n
+grammar-name "xc_str"
+name-space "NS_xc_str"
+thread-name "TH_xc_str"
+monolithic n
+file-name "xc_str.fsc"
+no-of-T 569
+list-of-native-first-set-terminals 1
+ raw_dbl_quote
+end-list-of-native-first-set-terminals
+list-of-transitive-threads 0
+end-list-of-transitive-threads
+list-of-used-threads 0
+end-list-of-used-threads
+fsm-comments
+"No escape sequence check: accept all characters between dbl. quoted string."
diff --git a/web/yacco2/compiler/grammars/xc_str.h b/web/yacco2/compiler/grammars/xc_str.h
new file mode 100644
index 0000000000..c943840463
--- /dev/null
+++ b/web/yacco2/compiler/grammars/xc_str.h
@@ -0,0 +1,71 @@
+/*
+ File: xc_str.h
+ Date and Time: Fri Jan 30 18:55:28 2015
+*/
+#ifndef __xc_str_h__
+#define __xc_str_h__ 1
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+extern yacco2::Thread_entry ITH_xc_str;
+
+extern yacco2::State S1_Cxc_str;
+namespace NS_xc_str {
+yacco2::THR _YACCO2_CALL_TYPE
+TH_xc_str(yacco2::Parser* Caller);// called thread
+yacco2::THR_result _YACCO2_CALL_TYPE
+PROC_TH_xc_str(yacco2::Parser* Caller);// called thread's twin the procedure
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace yacco2;
+struct fsm_rules_reuse_table_type{
+ fsm_rules_reuse_table_type();
+ int no_rules_entries_;
+ Per_rule_s_reuse_table* per_rule_s_table_[2];
+};
+class Cxc_str: public yacco2::CAbs_fsm {
+ public:
+ enum rules_and_subrules{
+ start_of_rule_list = NS_yacco2_T_enum::T_Enum::sum_total_T
+ ,R_Rxc_str_ = 569//start_of_rule_list + 0
+ ,rhs1_Rxc_str_ = 1
+ ,R_Rquote_ = 570//start_of_rule_list + 2
+ ,rhs1_Rquote_ = 2
+ };
+ //no of la sets = 2
+ //no of states = 4
+ Cxc_str();
+ ~Cxc_str();
+ void op();
+ bool failed();
+ void reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);
+ fsm_rules_reuse_table_type fsm_rules_reuse_table;
+ static int rhs_to_rules_mapping_[3];
+
+ public:
+ char ddd_[1024*32];
+ int ddd_idx_;
+ void copy_str_into_buffer(std::string* Str);
+ void copy_kstr_into_buffer(const char* Str);
+
+ };
+struct Rxc_str;
+struct Rquote;
+struct Rxc_str:public yacco2::CAbs_lr1_sym {
+ Rxc_str(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+struct Rquote:public yacco2::CAbs_lr1_sym {
+ Rquote(yacco2::Parser* P);
+ public:
+ void sr1();
+};
+
+} // end of namespace
+
+#endif
diff --git a/web/yacco2/compiler/grammars/xc_str.lex b/web/yacco2/compiler/grammars/xc_str.lex
new file mode 100644
index 0000000000..6f67720bba
--- /dev/null
+++ b/web/yacco2/compiler/grammars/xc_str.lex
@@ -0,0 +1,130 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+FILE: xc_str.lex
+Dates: 17 Juin 2003
+Purpose: double quoted string with no escape seq.
+Returned: T_xc_str
+ Err_bad_eos - meta terminal indicating an improper end-of-string
+ this occurs on eof,eog, or an eol terminal ending the string
+Note: Stripped of its double quotes for ease of use
+*/
+/@
+@i "/usr/local/yacco2/copyright.w"
+@** |xc_str| Thread.\fbreak
+Doubled quoted string without the escape sequences.
+@/
+fsm
+(fsm-id "xc_str.lex",fsm-filename xc_str,fsm-namespace NS_xc_str
+,fsm-class Cxc_str {
+ user-declaration
+ public:
+ char ddd_[1024*32];
+ int ddd_idx_;
+ void copy_str_into_buffer(std::string* Str);
+ void copy_kstr_into_buffer(const char* Str);
+ ***
+ user-implementation
+ void Cxc_str::copy_str_into_buffer(std::string* Str){
+ const char* y = Str->c_str();
+ int x(0);
+ for(;y[x]!=0;++x,++ddd_idx_)ddd_[ddd_idx_] = y[x];
+ ddd_[ddd_idx_] = 0;
+ }
+ void Cxc_str::copy_kstr_into_buffer(const char* Str){
+ const char* y = Str;
+ int x(0);
+ for(;y[x]!=0;++x,++ddd_idx_)ddd_[ddd_idx_] = y[x];
+ ddd_[ddd_idx_] = 0;
+ }
+ ***
+ constructor
+ ddd_idx_ = 0;
+ ddd_[ddd_idx_] = 0;
+ ***
+ op
+ ddd_idx_ = 0;
+ ddd_[ddd_idx_] = 0;
+ ***
+}
+,fsm-version "1.0" ,fsm-date "27 Juin 2005"
+,fsm-debug "false"
+,fsm-comments "No escape sequence check: accept all characters between dbl. quoted string.")
+parallel-parser
+(
+ parallel-thread-function
+ TH_xc_str
+ ***
+ parallel-la-boundary
+ eolr
+ ***
+)
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
+
+rules{
+Rxc_str
+/@
+Use of \invisibleshift to lower the number of members in the lookahead set.
+@/
+()
+{
+ -> Rquote |.| {
+ op
+ Cxc_str* fsm = (Cxc_str*) rule_info__.parser__->fsm_tbl__;
+ CAbs_lr1_sym* sym = new T_xc_str((const char*)&fsm->ddd_);
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ sym->set_line_no_and_pos_in_line(*rule_info__.parser__->start_token__);
+ RSVP(sym);
+ ***
+ }
+}
+
+Rquote (){
+ -> "\"" {
+ /@
+ Mpost weakness in literal form so substitute the double quote for
+``char(34)'' in diagram. The finite state automata recognition is to lower
+the push / pop lr1 activity as this is a lexical automata.
+ @/
+
+ op
+ Cxc_str* fsm = (Cxc_str*) rule_info__.parser__->fsm_tbl__;
+loop:
+ switch (rule_info__.parser__->current_token()->enumerated_id__){
+ case T_Enum::T_raw_lf_: goto overrun;
+ case T_Enum::T_raw_cr_: goto overrun;
+ case T_Enum::T_LR1_eog_: goto overrun;
+ case T_Enum::T_raw_dbl_quote_: goto dblquote;
+ default: goto other;
+ }
+ dblquote:{ // end of string
+ rule_info__.parser__->get_next_token();
+ if(rule_info__.parser__->current_token()->enumerated_id__
+ == T_Enum::T_raw_dbl_quote_){
+ fsm->copy_kstr_into_buffer("\"");// due to lex scanner
+ fsm->copy_kstr_into_buffer("\"");
+ rule_info__.parser__->get_next_token();
+ goto loop;
+ }
+ return;// end of c string
+ }
+ overrun:{
+ CAbs_lr1_sym* sym = new Err_bad_eos;
+ sym->set_rc(*rule_info__.parser__->start_token__,__FILE__,__LINE__);
+ sym->set_line_no_and_pos_in_line(*rule_info__.parser__->start_token__);
+ RSVP(sym);
+ rule_info__.parser__->set_stop_parse(true);
+ return;
+ }
+ other:{
+ fsm->copy_kstr_into_buffer(rule_info__.parser__->current_token()->id__);
+ rule_info__.parser__->get_next_token();
+goto loop;
+ }
+ ***
+ }
+}
+
+}// end of rules
diff --git a/web/yacco2/compiler/grammars/xc_strsym.cpp b/web/yacco2/compiler/grammars/xc_strsym.cpp
new file mode 100644
index 0000000000..5178c843de
--- /dev/null
+++ b/web/yacco2/compiler/grammars/xc_strsym.cpp
@@ -0,0 +1,78 @@
+/*
+ File: xc_strsym.cpp
+ Date and Time: Fri Jan 30 18:55:28 2015
+*/
+#include "xc_str.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_xc_str;// grammar's ns
+// first set terminals
+yacco2::THR _YACCO2_CALL_TYPE
+NS_xc_str::TH_xc_str(yacco2::Parser* Caller_pp){
+ yacco2::Thread_entry& pp_thread_entry = ITH_xc_str;
+ NS_xc_str::Cxc_str Cxc_str_;// parallel-parser's parse table
+#define ssPARSE_TABLE Cxc_str_
+#include "wpp_core.h"
+}
+THR_result _YACCO2_CALL_TYPE
+NS_xc_str::PROC_TH_xc_str(yacco2::Parser* Caller_pp){
+ char called_proc_name[] = "PROC_TH_xc_str";
+ static bool one_time(false);
+ static NS_xc_str::Cxc_str* NS_xc_str_Cxc_str_(0);// parallel-parser's fsm table
+ static Parser* NS_xc_str_Cxc_str_parser(0);
+ Parser* proc_parser(0);
+ if(one_time == false){
+ one_time = true;
+ NS_xc_str_Cxc_str_ = new NS_xc_str::Cxc_str();// parallel-parser's fsm table
+ NS_xc_str_Cxc_str_parser = new Parser(*NS_xc_str_Cxc_str_,Caller_pp);
+ }
+ proc_parser = NS_xc_str_Cxc_str_parser;
+#include "wproc_pp_core.h"
+}
+void
+Cxc_str::reduce_rhs_of_rule
+ (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){
+ int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];
+ Per_rule_s_reuse_table* rule_reuse_tbl_ptr =
+ fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];
+ Rule_s_reuse_entry* re(0);
+ find_a_recycled_rule(rule_reuse_tbl_ptr,&re);
+ (*Recycled_rule) = re;
+ fnd_re: switch (Sub_rule_no){
+ case rhs1_Rxc_str_:{
+ Rxc_str* sym;
+ if(re->rule_ == 0){
+ sym = new Rxc_str(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rxc_str*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 2;
+
+
+ sym->sr1();
+ return;}
+ case rhs1_Rquote_:{
+ Rquote* sym;
+ if(re->rule_ == 0){
+ sym = new Rquote(parser__);
+ re->rule_ = sym;
+ }else{
+ sym = (Rquote*)re->rule_;
+ }
+ // no rule's constructor directive
+ (*Recycled_rule)->rule_ = sym;
+ sym->rule_info__.rhs_no_of_parms__ = 1;
+
+
+ sym->sr1();
+ return;}
+ default: return;
+ }
+}
diff --git a/web/yacco2/compiler/grammars/xc_strtbl.cpp b/web/yacco2/compiler/grammars/xc_strtbl.cpp
new file mode 100644
index 0000000000..034327182b
--- /dev/null
+++ b/web/yacco2/compiler/grammars/xc_strtbl.cpp
@@ -0,0 +1,87 @@
+/*
+ File: xc_strtbl.cpp
+ Date and Time: Fri Jan 30 18:55:28 2015
+*/
+#include "xc_str.h"
+using namespace NS_yacco2_T_enum;// enumerate
+using namespace NS_yacco2_err_symbols;// error symbols
+using namespace NS_yacco2_k_symbols;// lrk
+using namespace NS_yacco2_terminals;// terminals
+using namespace NS_yacco2_characters;// rc
+using namespace yacco2;// yacco2 library
+using namespace NS_xc_str;// grammar's ns
+// first set terminals
+// LR1_invisible_shift_operator
+yacco2::UCHAR LA1_Cxc_str[] ={
+1
+,0,32
+};
+// LR1_eolr
+yacco2::UCHAR LA2_Cxc_str[] ={
+1
+,0,4
+};
+extern yacco2::State S1_Cxc_str;
+extern yacco2::State S2_Cxc_str;
+extern yacco2::State S3_Cxc_str;
+extern yacco2::State S4_Cxc_str;
+struct S1std_Cxc_str{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[3];
+};
+S1std_Cxc_str S1st_Cxc_str = {
+ 3
+ ,
+ {// start of table
+ {42,(State*)&S2_Cxc_str} // shift sym: raw_dbl_quote
+ ,{569,(State*)&S1_Cxc_str} // accept sym: Rxc_str
+ ,{570,(State*)&S3_Cxc_str} // shift sym: Rquote
+ }// end of shift table
+};
+yacco2::State S1_Cxc_str = //State's vectored into symbol: " No symbol"
+{1
+,0,0,0,0,(Shift_tbl*)&S1st_Cxc_str,0,0,0,0};
+struct S2rtd_Cxc_str{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S2rtd_Cxc_str S2rt_Cxc_str = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA1_Cxc_str,Cxc_str::rhs1_Rquote_}
+ }// end of reduce table
+};
+yacco2::State S2_Cxc_str = //State's vectored into symbol: "\""
+{2
+,0,0,0,0,0,(Reduce_tbl*)&S2rt_Cxc_str,0,0,0};
+struct S3std_Cxc_str{
+ yacco2::USINT no_entries_;
+ yacco2::Shift_entry shift_entries_[1];
+};
+S3std_Cxc_str S3st_Cxc_str = {
+ 1
+ ,
+ {// start of table
+ {5,(State*)&S4_Cxc_str} // shift sym: LR1_invisible_shift_operator
+ }// end of shift table
+};
+yacco2::Shift_entry S3ise_Cxc_str = {5,(State*)&S4_Cxc_str};
+yacco2::State S3_Cxc_str = //State's vectored into symbol: "Rquote"
+{3
+,0,0,(Shift_entry*)&S3ise_Cxc_str
+,0,(Shift_tbl*)&S3st_Cxc_str,0,0,0,0};
+struct S4rtd_Cxc_str{
+ yacco2::USINT no_entries_;
+ yacco2::Reduce_entry reduce_entries_[1];
+};
+S4rtd_Cxc_str S4rt_Cxc_str = {
+ 1
+ ,
+ {// start of table
+ {(Set_tbl*)&LA2_Cxc_str,Cxc_str::rhs1_Rxc_str_}
+ }// end of reduce table
+};
+yacco2::State S4_Cxc_str = //State's vectored into symbol: "|.|"
+{4
+,0,0,0,0,0,(Reduce_tbl*)&S4rt_Cxc_str,0,0,0};
diff --git a/web/yacco2/compiler/grammars/yacco2.fsc b/web/yacco2/compiler/grammars/yacco2.fsc
new file mode 100644
index 0000000000..9b5114ea49
--- /dev/null
+++ b/web/yacco2/compiler/grammars/yacco2.fsc
@@ -0,0 +1,91 @@
+file-of-T-alphabet "/usr/local/yacco2/compiler/grammars/yacco2_T_enumeration.fsc"
+emitfile "/usr/local/yacco2/compiler/grammars/yacco2_fsc.cpp"
+preamble
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+using namespace NS_yacco2_T_enum;
+using namespace NS_yacco2_err_symbols;
+using namespace NS_yacco2_k_symbols;
+using namespace NS_yacco2_terminals;
+using namespace NS_yacco2_characters;
+end-preamble
+"/usr/local/yacco2/compiler/grammars/rules_use_cnt.fsc"
+"/usr/local/yacco2/compiler/grammars/enumerate_grammar.fsc"
+"/usr/local/yacco2/compiler/grammars/enumerate_T_alphabet.fsc"
+"/usr/local/yacco2/compiler/grammars/angled_string.fsc"
+"/usr/local/yacco2/compiler/grammars/bad_char_set.fsc"
+"/usr/local/yacco2/compiler/grammars/c_comments.fsc"
+"/usr/local/yacco2/compiler/grammars/c_literal.fsc"
+"/usr/local/yacco2/compiler/grammars/c_string.fsc"
+"/usr/local/yacco2/compiler/grammars/cweb_or_c_k.fsc"
+"/usr/local/yacco2/compiler/grammars/cweave_fsm_sdc.fsc"
+"/usr/local/yacco2/compiler/grammars/cweave_lhs_sdc.fsc"
+"/usr/local/yacco2/compiler/grammars/cweave_sdc.fsc"
+"/usr/local/yacco2/compiler/grammars/cweave_T_sdc.fsc"
+"/usr/local/yacco2/compiler/grammars/cweb_put_k_into_ph.fsc"
+"/usr/local/yacco2/compiler/grammars/dbl_colon.fsc"
+"/usr/local/yacco2/compiler/grammars/eol.fsc"
+"/usr/local/yacco2/compiler/grammars/epsilon_rules.fsc"
+"/usr/local/yacco2/compiler/grammars/err_symbols_ph.fsc"
+"/usr/local/yacco2/compiler/grammars/err_symbols_ph_th.fsc"
+"/usr/local/yacco2/compiler/grammars/esc_seq.fsc"
+"/usr/local/yacco2/compiler/grammars/eval_phrases.fsc"
+"/usr/local/yacco2/compiler/grammars/fsc_file.fsc"
+"/usr/local/yacco2/compiler/grammars/fsm_phrase.fsc"
+"/usr/local/yacco2/compiler/grammars/fsm_phrase_th.fsc"
+"/usr/local/yacco2/compiler/grammars/fsm_class_phrase_th.fsc"
+"/usr/local/yacco2/compiler/grammars/identifier.fsc"
+"/usr/local/yacco2/compiler/grammars/int_no.fsc"
+"/usr/local/yacco2/compiler/grammars/la_expr.fsc"
+"/usr/local/yacco2/compiler/grammars/la_expr_lexical.fsc"
+"/usr/local/yacco2/compiler/grammars/la_expr_src.fsc"
+"/usr/local/yacco2/compiler/grammars/la_lrk_T.fsc"
+"/usr/local/yacco2/compiler/grammars/lr1_k_phrase.fsc"
+"/usr/local/yacco2/compiler/grammars/link_cleanser.fsc"
+"/usr/local/yacco2/compiler/grammars/linker_id.fsc"
+"/usr/local/yacco2/compiler/grammars/linker_pass3.fsc"
+"/usr/local/yacco2/compiler/grammars/linker_preamble_code.fsc"
+"/usr/local/yacco2/compiler/grammars/lint_balls.fsc"
+"/usr/local/yacco2/compiler/grammars/lr1_k_phrase_th.fsc"
+"/usr/local/yacco2/compiler/grammars/mpost_output.fsc"
+"/usr/local/yacco2/compiler/grammars/o2_sdc.fsc"
+"/usr/local/yacco2/compiler/grammars/parallel_monitor_ph.fsc"
+"/usr/local/yacco2/compiler/grammars/parallel_parser_phrase.fsc"
+"/usr/local/yacco2/compiler/grammars/parallel_parser_ph_th.fsc"
+"/usr/local/yacco2/compiler/grammars/parallel_oper.fsc"
+"/usr/local/yacco2/compiler/grammars/pass3.fsc"
+"/usr/local/yacco2/compiler/grammars/prefile_include.fsc"
+"/usr/local/yacco2/compiler/grammars/prt_xrefs_docs.fsc"
+"/usr/local/yacco2/compiler/grammars/prt_sr_elements.fsc"
+"/usr/local/yacco2/compiler/grammars/rc_phrase.fsc"
+"/usr/local/yacco2/compiler/grammars/rc_phrase_th.fsc"
+"/usr/local/yacco2/compiler/grammars/rhs_bnd.fsc"
+"/usr/local/yacco2/compiler/grammars/rhs_component.fsc"
+"/usr/local/yacco2/compiler/grammars/rtn_component.fsc"
+"/usr/local/yacco2/compiler/grammars/rule_def_phrase.fsc"
+"/usr/local/yacco2/compiler/grammars/rules_phrase.fsc"
+"/usr/local/yacco2/compiler/grammars/rules_phrase_th.fsc"
+"/usr/local/yacco2/compiler/grammars/rule_lhs_phrase.fsc"
+"/usr/local/yacco2/compiler/grammars/subrule_def.fsc"
+"/usr/local/yacco2/compiler/grammars/subrules_phrase.fsc"
+"/usr/local/yacco2/compiler/grammars/subrule_vector.fsc"
+"/usr/local/yacco2/compiler/grammars/terminals_phrase.fsc"
+"/usr/local/yacco2/compiler/grammars/terminals_phrase_th.fsc"
+"/usr/local/yacco2/compiler/grammars/test_components.fsc"
+"/usr/local/yacco2/compiler/grammars/t_alphabet.fsc"
+"/usr/local/yacco2/compiler/grammars/T_enum_phrase.fsc"
+"/usr/local/yacco2/compiler/grammars/T_enum_phrase_th.fsc"
+"/usr/local/yacco2/compiler/grammars/t_def_delabort_tags.fsc"
+"/usr/local/yacco2/compiler/grammars/term_def_ph.fsc"
+"/usr/local/yacco2/compiler/grammars/terminal_def_symclass.fsc"
+"/usr/local/yacco2/compiler/grammars/unq_str.fsc"
+"/usr/local/yacco2/compiler/grammars/ws.fsc"
+"/usr/local/yacco2/compiler/grammars/xc_str.fsc"
+"/usr/local/yacco2/compiler/grammars/o2_code_end.fsc"
+"/usr/local/yacco2/compiler/grammars/o2_err_hdlr.fsc"
+"/usr/local/yacco2/compiler/grammars/o2_lcl_opt.fsc"
+"/usr/local/yacco2/compiler/grammars/o2_lcl_opts.fsc"
+"/usr/local/yacco2/compiler/grammars/o2_linker_opts.fsc"
diff --git a/web/yacco2/compiler/grammars/yacco2_T_enumeration.T b/web/yacco2/compiler/grammars/yacco2_T_enumeration.T
new file mode 100644
index 0000000000..de883be962
--- /dev/null
+++ b/web/yacco2/compiler/grammars/yacco2_T_enumeration.T
@@ -0,0 +1,39 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+File: yacco2_T_enumeration.lex
+Date: 10 July 00
+Author: Dave Bone
+Purpose:
+ Supplies emitted enumeration file name and namespace. The lr1 compiler/compiler
+ generates the "enum" type for the 4 classes of terminals:
+ 1) lr1 constants
+ 2) raw characters
+ 3) errors
+ 4) terminals
+ Note:
+ The enumerated type is emitted which is referenced in the other
+ emitted grammars via the "#include" directive having a symbol ordering:
+ 0 <= Lr1_K < raw chars < error terminals < Terminals < grammar's Rules
+ The subrules of a grammar's rule are locally enumerated within the grammar
+ starting from 1.
+
+ This order is per emitted grammar. That is to say, each parallel grammar has
+ its own generated lr1 table using the enumerated terminal class symbols with
+ its enumerated rules starting 1 after the high bound of the enumerated terminal
+ classes.
+ After the parameters, a { k-body } can follow. This k-body
+ is used for global definitions of contants:
+ {
+ constant-defs
+ C++ syntax directed code for constant definitions
+ ***
+ }
+
+*/
+T-enumeration
+(file-name yacco2_T_enumeration
+,name-space NS_yacco2_T_enum) {
+}
diff --git a/web/yacco2/compiler/grammars/yacco2_T_enumeration.fsc b/web/yacco2/compiler/grammars/yacco2_T_enumeration.fsc
new file mode 100644
index 0000000000..019d2958ca
--- /dev/null
+++ b/web/yacco2/compiler/grammars/yacco2_T_enumeration.fsc
@@ -0,0 +1,575 @@
+/*
+ File: yacco2_T_enumeration.fsc
+ Date and Time: Sun Apr 20 13:54:30 2014
+*/
+T-alphabet
+LR1_questionable_shift_operator
+LR1_eog
+LR1_eolr
+LR1_parallel_operator
+LR1_reduce_operator
+LR1_invisible_shift_operator
+LR1_all_shift_operator
+LR1_fset_transience_operator
+raw_nul
+raw_soh
+raw_stx
+raw_etx
+raw_eot
+raw_enq
+raw_ack
+raw_bel
+raw_bs
+raw_ht
+raw_lf
+raw_vt
+raw_ff
+raw_cr
+raw_so
+raw_si
+raw_dle
+raw_dc1
+raw_dc2
+raw_dc3
+raw_dc4
+raw_nak
+raw_syn
+raw_etb
+raw_can
+raw_em
+raw_sub
+raw_esc
+raw_fs
+raw_gs
+raw_rs
+raw_us
+raw_sp
+raw_exclam
+raw_dbl_quote
+raw_no_sign
+raw_dollar_sign
+raw_percent
+raw_ampersign
+raw_right_quote
+raw_open_bracket
+raw_close_bracket
+raw_asteric
+raw_plus
+raw_comma
+raw_minus
+raw_period
+raw_slash
+raw_0
+raw_1
+raw_2
+raw_3
+raw_4
+raw_5
+raw_6
+raw_7
+raw_8
+raw_9
+raw_colon
+raw_semi_colon
+raw_less_than
+raw_eq
+raw_gt_than
+raw_question_mark
+raw_at_sign
+raw_A
+raw_B
+raw_C
+raw_D
+raw_E
+raw_F
+raw_G
+raw_H
+raw_I
+raw_J
+raw_K
+raw_L
+raw_M
+raw_N
+raw_O
+raw_P
+raw_Q
+raw_R
+raw_S
+raw_T
+raw_U
+raw_V
+raw_W
+raw_X
+raw_Y
+raw_Z
+raw_open_sq_bracket
+raw_back_slash
+raw_close_sq_bracket
+raw_up_arrow
+raw_under_score
+raw_left_quote
+raw_a
+raw_b
+raw_c
+raw_d
+raw_e
+raw_f
+raw_g
+raw_h
+raw_i
+raw_j
+raw_k
+raw_l
+raw_m
+raw_n
+raw_o
+raw_p
+raw_q
+raw_r
+raw_s
+raw_t
+raw_u
+raw_v
+raw_w
+raw_x
+raw_y
+raw_z
+raw_open_brace
+raw_vertical_line
+raw_close_brace
+raw_tilde
+raw_del
+raw_x80
+raw_x81
+raw_x82
+raw_x83
+raw_x84
+raw_x85
+raw_x86
+raw_x87
+raw_x88
+raw_x89
+raw_x8a
+raw_x8b
+raw_x8c
+raw_x8d
+raw_x8e
+raw_x8f
+raw_x90
+raw_x91
+raw_x92
+raw_x93
+raw_x94
+raw_x95
+raw_x96
+raw_x97
+raw_x98
+raw_x99
+raw_x9a
+raw_x9b
+raw_x9c
+raw_x9d
+raw_x9e
+raw_x9f
+raw_xa0
+raw_xa1
+raw_xa2
+raw_xa3
+raw_xa4
+raw_xa5
+raw_xa6
+raw_xa7
+raw_xa8
+raw_xa9
+raw_xaa
+raw_xab
+raw_xac
+raw_xad
+raw_xae
+raw_xaf
+raw_xb0
+raw_xb1
+raw_xb2
+raw_xb3
+raw_xb4
+raw_xb5
+raw_xb6
+raw_xb7
+raw_xb8
+raw_xb9
+raw_xba
+raw_xbb
+raw_xbc
+raw_xbd
+raw_xbe
+raw_xbf
+raw_xc0
+raw_xc1
+raw_xc2
+raw_xc3
+raw_xc4
+raw_xc5
+raw_xc6
+raw_xc7
+raw_xc8
+raw_xc9
+raw_xca
+raw_xcb
+raw_xcc
+raw_xcd
+raw_xce
+raw_xcf
+raw_xd0
+raw_xd1
+raw_xd2
+raw_xd3
+raw_xd4
+raw_xd5
+raw_xd6
+raw_xd7
+raw_xd8
+raw_xd9
+raw_xda
+raw_xdb
+raw_xdc
+raw_xdd
+raw_xde
+raw_xdf
+raw_xe0
+raw_xe1
+raw_xe2
+raw_xe3
+raw_xe4
+raw_xe5
+raw_xe6
+raw_xe7
+raw_xe8
+raw_xe9
+raw_xea
+raw_xeb
+raw_xec
+raw_xed
+raw_xee
+raw_xef
+raw_xf0
+raw_xf1
+raw_xf2
+raw_xf3
+raw_xf4
+raw_xf5
+raw_xf6
+raw_xf7
+raw_xf8
+raw_xf9
+raw_xfa
+raw_xfb
+raw_xfc
+raw_xfd
+raw_xfe
+raw_xff
+T_option_t
+T_option_p
+T_option_err
+T_esc_seq
+T_eol
+T_basic_char
+T_raw_char
+T_comment
+T_ws
+T_angled_string
+T_c_literal
+T_c_string
+T_xc_str
+T_unquoted_string
+T_file_inclusion
+T_identifier
+T_int_no
+T_raw_characters
+T_lr1_constant_symbols
+T_error_symbols
+T_eocode
+T_AD
+T_AB
+T_parallel_la_boundary
+T_arbitrator_code
+T_parallel_parser
+T_parallel_thread_function
+T_parallel_control_monitor
+T_fsm
+T_fsm_id
+T_fsm_filename
+T_fsm_namespace
+T_fsm_class
+T_fsm_version
+T_fsm_date
+T_fsm_debug
+T_fsm_comments
+T_terminals
+T_enumeration
+T_file_name
+T_name_space
+T_sym_class
+T_rules
+T_lhs
+T_user_declaration
+T_user_prefix_declaration
+T_user_suffix_declaration
+T_constructor
+T_destructor
+T_op
+T_failed
+T_user_implementation
+T_user_imp_tbl
+T_user_imp_sym
+T_constant_defs
+T_terminals_refs
+T_terminals_sufx
+T_lrk_sufx
+T_selector
+T_NULL
+T_2colon
+T_block
+T_syntax_code
+T_fsm_class_phrase
+T_fsm_phrase
+T_parallel_parser_phrase
+T_enum_phrase
+T_terminal_def
+table_entry
+T_sym_tbl_report_card
+T_terminals_phrase
+T_error_symbols_phrase
+T_lr1_k_phrase
+T_rc_phrase
+T_rule_lhs_phrase
+T_parallel_monitor_phrase
+rule_def
+T_rules_phrase
+T_subrule_def
+T_subrules_phrase
+T_in_stbl
+refered_T
+rule_in_stbl
+refered_rule
+T_transitive
+T_grammar_name
+T_thread_name
+T_monolithic
+T_no_of_T
+T_list_of_native_first_set_terminals
+T_end_list_of_native_first_set_terminals
+T_list_of_transitive_threads
+T_end_list_of_transitive_threads
+T_emitfile
+T_preamble
+T_end_preamble
+T_T_alphabet
+T_end_T_alphabet
+T_file_of_T_alphabet
+T_attributes
+tth_in_stbl
+thread_attributes
+th_in_stbl
+kw_in_stbl
+T_la_expr_src
+T_eosubrule
+T_called_thread_eosubrule
+T_null_call_thread_eosubrule
+T_cweb_comment
+T_grammar_phrase
+T_cweb_marker
+T_lint
+T_list_of_used_threads
+T_end_list_of_used_threads
+Err_nested_files_exceeded
+Err_no_end_of_code
+Err_no_cmd_lne_data
+Err_no_filename
+Err_bad_filename
+Err_bad_fsmheader_filename
+Err_bad_fsmcpp_filename
+Err_bad_fsmsym_filename
+Err_bad_fsmtbl_filename
+Err_bad_enum_filename
+Err_bad_errors_hdrfilename
+Err_bad_errors_impfilename
+Err_bad_cmd_lne_opt
+Err_bad_int_no
+Err_bad_int_no_range
+Err_no_int_present
+Err_bad_eos
+Err_bad_esc
+Err_comment_overrun
+Err_bad_char
+Err_bad_univ_seq
+Err_improper_closing_of_rules
+Err_no_identifier_present
+Err_no_directive_present
+Err_duplicate_directive
+Err_no_syntax_code_present
+Err_no_open_parenthesis
+Err_no_close_parenthesis
+Err_no_fsm_id_present
+Err_no_fsm_id_string
+Err_no_fsm_filename_present
+Err_no_fsm_filename_id_present
+Err_no_comma_present
+Err_no_fsm_namespace_present
+Err_no_fsm_namespace_id_present
+Err_no_fsm_class_present
+Err_no_fsm_version_present
+Err_no_fsm_version_string
+Err_no_fsm_date_present
+Err_no_fsm_date_string
+Err_no_fsm_debug_present
+Err_no_fsm_debug_string
+Err_no_fsm_comments_present
+Err_no_fsm_comments_string
+Err_fsm_debug_string_not_true_or_false
+Err_no_pp_thread_function_present
+Err_no_pp_ctrl_mntor_kw_present
+Err_no_pp_fnct_id_present
+Err_no_pp_bndry_present
+Err_no_pp_la_bndary_expr_present
+Err_no_syntax_code_end_present
+Err_no_pp_code_present
+Err_no_pp_code_stc_present
+Err_not_arbitration_code_kw
+Err_no_open_brace
+Err_no_close_brace
+Err_no_constant_defs_present
+Err_no_filename_present
+Err_no_filename_id_present
+Err_no_namespace_present
+Err_no_namespace_id_present
+Err_no_kdefs_code_present
+Err_no_kdefs_kw_present
+Err_no_tdef_code_present
+Err_no_sym_defs_present
+Err_no_terminal_key_present
+Err_dup_entry_in_alphabet
+Err_already_defined_AB
+Err_already_defined_AD
+Err_improper_directive
+Err_no_sym_class_present
+Err_no_sym_class_id_present
+Err_zero_len_sym
+Err_sym_tbl_full
+Err_sym_tbl_char_pool_full
+Err_dup_entry_in_sym_table
+Err_subscript_out_of_range
+Err_sym_tbl_nested_scope_stk_overflow
+Err_sym_tbl_nested_scope_stk_underflow
+Err_sym_tbl_context_buf_overflow
+Err_report_card_ptr_0
+Err_cannot_define_term_after_sufx_dir
+Err_dup_sufx_directive
+Err_terminals_refs_def_after_terminals
+Err_terminals_refs_dup_def
+Err_no_rule_name_present
+Err_no_sub_rule_present
+Err_subrule_use_undefined_T
+Err_stbl_entry_unknown
+Err_subrule_overrun
+Err_stble_has_entry_but_not_a_rule
+Err_file_of_T_alphabet_kw_not_present
+Err_emitfile_kw_not_present
+Err_preamble_kw_not_present
+Err_preamble_srce_code_not_present
+Err_end_preamble_kw_not_present
+Err_cmd_line_chaffe
+Err_T_alphabet_kw_not_present
+Err_T_alphabet_file_not_present
+Err_end_T_alphabet_kw_not_present
+Err_no_terminals_in_T_alphabet_list
+Err_rotten_chr_in_T_alphabet
+Err_transitive_kw_not_present
+Err_grammar_name_kw_not_present
+Err_namespace_kw_not_present
+Err_filename_kw_not_present
+Err_threadname_kw_not_present
+Err_monolithic_kw_not_present
+Err_no_of_T_kw_not_present
+Err_list_of_terminals_kw_not_present
+Err_no_list_of_trans_threads_kw
+Err_no_terminals_present_in_T_alphabet
+Err_transitive_value_bad
+Err_monolithic_value_bad
+Err_grammar_name_value_not_present
+Err_namespace_value_not_present
+Err_threadname_value_not_present
+Err_filename_value_not_present
+Err_no_of_T_value_not_present
+Err_no_of_terminals_not_present
+Err_end_list_native_T_kw_not_present
+Err_end_list_of_transitive_threads_kw_not_present
+Err_no_of_native_Ts_in_list_not_equal
+Err_no_of_threads_in_list_not_equal
+Err_thread_refed_but_not_defined
+Err_bad_T_in_list
+Err_bad_th_in_list
+Err_already_defined_in_fsc_file
+Err_bad_thread_subscript
+Err_not_a_keyword
+Err_no_of_threads_not_present
+Err_bad_T_alphabet
+Err_fsc_file_does_not_exist
+Err_filename_file_does_not_exist
+Err_T_alphabet_file_does_not_exist
+Err_emitfile_file_does_not_exist
+Err_emitfile_file_not_present
+Err_fsc_cntl_file_not_present
+Err_file_of_T_alphabet_not_present
+Err_epsilon_pass_thru
+Err_epsilon_pass_thru_no_Ts
+Err_rule_not_in_stbl
+Err_T_not_in_stbl
+Err_bad_directive
+Err_bad_term_in_la_expr
+Err_empty_set_removal_in_la_expr
+Err_bad_operator_in_la_expr
+Err_not_a_lhs_kw
+Err_pp_la_boundary_attribute_not_fnd
+Err_already_processed_fsm_phase
+Err_already_processed_pp_phase
+Err_already_processed_T_enum_phase
+Err_already_processed_error_phase
+Err_already_processed_rc_phase
+Err_already_processed_lrk_phase
+Err_already_processed_T_phase
+Err_already_processed_rule_phase
+Err_not_T_for_rtned_token_from_th
+Err_not_id_for_ns_in_th_stmt
+Err_not_id_for_th_name_in_th_stmt
+Err_bad_th_qualifier
+Err_not_dbl_colon_in_th_stmt
+Err_not_T_or_R_in_subrule_expr
+Err_not_T_or_R_or_eos_in_subrule_expr
+Err_not_eos_in_subrule_expr
+Err_invalid_logical_name
+Err_invalid_logical_value
+Err_duplicate_logical_name
+Err_missing_terminals_refs_kw
+Err_missing_terminals_sufx_kw
+Err_not_a_terminal_definition
+Err_missing_lrk_sufx_kw
+ERR_sick_grammar
+ERR_no_fsm_phrase
+ERR_no_T_enum_phrase
+ERR_no_lrk_phrase
+ERR_no_rc_phrase
+ERR_no_errors_phrase
+ERR_no_terminals_phrase
+ERR_no_rules_phrase
+Err_used_rule_but_undefined
+Err_rule_already_defined
+Err_la_expr_calc_empty_set
+Err_no_close_brace_ending_rules_defs
+Err_use_of_T_outside_Rules_construct
+Err_not_kw_defining_grammar_construct
+Err_use_of_N_outside_Rules_construct
+Err_misplaced_or_misspelt_Rule_or_T
+Err_not_a_Rule
+Err_empty_file
+Err_not_lhs_pcnrl_mntr
+end-T-alphabet
diff --git a/web/yacco2/compiler/grammars/yacco2_T_enumeration.h b/web/yacco2/compiler/grammars/yacco2_T_enumeration.h
new file mode 100644
index 0000000000..6119af36d8
--- /dev/null
+++ b/web/yacco2/compiler/grammars/yacco2_T_enumeration.h
@@ -0,0 +1,592 @@
+/*
+ File: yacco2_T_enumeration.h
+ Date and Time: Fri Jan 30 18:55:28 2015
+*/
+#ifndef __yacco2_T_enumeration_h__
+#define __yacco2_T_enumeration_h__ 1
+namespace NS_yacco2_T_enum {
+ struct T_Enum {
+ enum enumerated_terminals {
+ sum_total_T = 569
+ ,no_of_terminals = 114
+ ,no_of_raw_chars = 256
+ ,no_of_lr1_constants = 8
+ ,no_of_error_terminals = 191
+ ,start_LRK=0,end_LRK=7
+ ,start_RC=8,end_RC=263
+ ,start_T=264,end_T=377
+ ,start_ERR=378,end_ERR=568
+ ,start_R=569
+ ,T_LR1_questionable_shift_operator_ = 0
+ ,T_LR1_eog_ = 1
+ ,T_LR1_eolr_ = 2
+ ,T_LR1_parallel_operator_ = 3
+ ,T_LR1_reduce_operator_ = 4
+ ,T_LR1_invisible_shift_operator_ = 5
+ ,T_LR1_all_shift_operator_ = 6
+ ,T_LR1_fset_transience_operator_ = 7
+ ,T_raw_nul_ = 8
+ ,T_raw_soh_ = 9
+ ,T_raw_stx_ = 10
+ ,T_raw_etx_ = 11
+ ,T_raw_eot_ = 12
+ ,T_raw_enq_ = 13
+ ,T_raw_ack_ = 14
+ ,T_raw_bel_ = 15
+ ,T_raw_bs_ = 16
+ ,T_raw_ht_ = 17
+ ,T_raw_lf_ = 18
+ ,T_raw_vt_ = 19
+ ,T_raw_ff_ = 20
+ ,T_raw_cr_ = 21
+ ,T_raw_so_ = 22
+ ,T_raw_si_ = 23
+ ,T_raw_dle_ = 24
+ ,T_raw_dc1_ = 25
+ ,T_raw_dc2_ = 26
+ ,T_raw_dc3_ = 27
+ ,T_raw_dc4_ = 28
+ ,T_raw_nak_ = 29
+ ,T_raw_syn_ = 30
+ ,T_raw_etb_ = 31
+ ,T_raw_can_ = 32
+ ,T_raw_em_ = 33
+ ,T_raw_sub_ = 34
+ ,T_raw_esc_ = 35
+ ,T_raw_fs_ = 36
+ ,T_raw_gs_ = 37
+ ,T_raw_rs_ = 38
+ ,T_raw_us_ = 39
+ ,T_raw_sp_ = 40
+ ,T_raw_exclam_ = 41
+ ,T_raw_dbl_quote_ = 42
+ ,T_raw_no_sign_ = 43
+ ,T_raw_dollar_sign_ = 44
+ ,T_raw_percent_ = 45
+ ,T_raw_ampersign_ = 46
+ ,T_raw_right_quote_ = 47
+ ,T_raw_open_bracket_ = 48
+ ,T_raw_close_bracket_ = 49
+ ,T_raw_asteric_ = 50
+ ,T_raw_plus_ = 51
+ ,T_raw_comma_ = 52
+ ,T_raw_minus_ = 53
+ ,T_raw_period_ = 54
+ ,T_raw_slash_ = 55
+ ,T_raw_0_ = 56
+ ,T_raw_1_ = 57
+ ,T_raw_2_ = 58
+ ,T_raw_3_ = 59
+ ,T_raw_4_ = 60
+ ,T_raw_5_ = 61
+ ,T_raw_6_ = 62
+ ,T_raw_7_ = 63
+ ,T_raw_8_ = 64
+ ,T_raw_9_ = 65
+ ,T_raw_colon_ = 66
+ ,T_raw_semi_colon_ = 67
+ ,T_raw_less_than_ = 68
+ ,T_raw_eq_ = 69
+ ,T_raw_gt_than_ = 70
+ ,T_raw_question_mark_ = 71
+ ,T_raw_at_sign_ = 72
+ ,T_raw_A_ = 73
+ ,T_raw_B_ = 74
+ ,T_raw_C_ = 75
+ ,T_raw_D_ = 76
+ ,T_raw_E_ = 77
+ ,T_raw_F_ = 78
+ ,T_raw_G_ = 79
+ ,T_raw_H_ = 80
+ ,T_raw_I_ = 81
+ ,T_raw_J_ = 82
+ ,T_raw_K_ = 83
+ ,T_raw_L_ = 84
+ ,T_raw_M_ = 85
+ ,T_raw_N_ = 86
+ ,T_raw_O_ = 87
+ ,T_raw_P_ = 88
+ ,T_raw_Q_ = 89
+ ,T_raw_R_ = 90
+ ,T_raw_S_ = 91
+ ,T_raw_T_ = 92
+ ,T_raw_U_ = 93
+ ,T_raw_V_ = 94
+ ,T_raw_W_ = 95
+ ,T_raw_X_ = 96
+ ,T_raw_Y_ = 97
+ ,T_raw_Z_ = 98
+ ,T_raw_open_sq_bracket_ = 99
+ ,T_raw_back_slash_ = 100
+ ,T_raw_close_sq_bracket_ = 101
+ ,T_raw_up_arrow_ = 102
+ ,T_raw_under_score_ = 103
+ ,T_raw_left_quote_ = 104
+ ,T_raw_a_ = 105
+ ,T_raw_b_ = 106
+ ,T_raw_c_ = 107
+ ,T_raw_d_ = 108
+ ,T_raw_e_ = 109
+ ,T_raw_f_ = 110
+ ,T_raw_g_ = 111
+ ,T_raw_h_ = 112
+ ,T_raw_i_ = 113
+ ,T_raw_j_ = 114
+ ,T_raw_k_ = 115
+ ,T_raw_l_ = 116
+ ,T_raw_m_ = 117
+ ,T_raw_n_ = 118
+ ,T_raw_o_ = 119
+ ,T_raw_p_ = 120
+ ,T_raw_q_ = 121
+ ,T_raw_r_ = 122
+ ,T_raw_s_ = 123
+ ,T_raw_t_ = 124
+ ,T_raw_u_ = 125
+ ,T_raw_v_ = 126
+ ,T_raw_w_ = 127
+ ,T_raw_x_ = 128
+ ,T_raw_y_ = 129
+ ,T_raw_z_ = 130
+ ,T_raw_open_brace_ = 131
+ ,T_raw_vertical_line_ = 132
+ ,T_raw_close_brace_ = 133
+ ,T_raw_tilde_ = 134
+ ,T_raw_del_ = 135
+ ,T_raw_x80_ = 136
+ ,T_raw_x81_ = 137
+ ,T_raw_x82_ = 138
+ ,T_raw_x83_ = 139
+ ,T_raw_x84_ = 140
+ ,T_raw_x85_ = 141
+ ,T_raw_x86_ = 142
+ ,T_raw_x87_ = 143
+ ,T_raw_x88_ = 144
+ ,T_raw_x89_ = 145
+ ,T_raw_x8a_ = 146
+ ,T_raw_x8b_ = 147
+ ,T_raw_x8c_ = 148
+ ,T_raw_x8d_ = 149
+ ,T_raw_x8e_ = 150
+ ,T_raw_x8f_ = 151
+ ,T_raw_x90_ = 152
+ ,T_raw_x91_ = 153
+ ,T_raw_x92_ = 154
+ ,T_raw_x93_ = 155
+ ,T_raw_x94_ = 156
+ ,T_raw_x95_ = 157
+ ,T_raw_x96_ = 158
+ ,T_raw_x97_ = 159
+ ,T_raw_x98_ = 160
+ ,T_raw_x99_ = 161
+ ,T_raw_x9a_ = 162
+ ,T_raw_x9b_ = 163
+ ,T_raw_x9c_ = 164
+ ,T_raw_x9d_ = 165
+ ,T_raw_x9e_ = 166
+ ,T_raw_x9f_ = 167
+ ,T_raw_xa0_ = 168
+ ,T_raw_xa1_ = 169
+ ,T_raw_xa2_ = 170
+ ,T_raw_xa3_ = 171
+ ,T_raw_xa4_ = 172
+ ,T_raw_xa5_ = 173
+ ,T_raw_xa6_ = 174
+ ,T_raw_xa7_ = 175
+ ,T_raw_xa8_ = 176
+ ,T_raw_xa9_ = 177
+ ,T_raw_xaa_ = 178
+ ,T_raw_xab_ = 179
+ ,T_raw_xac_ = 180
+ ,T_raw_xad_ = 181
+ ,T_raw_xae_ = 182
+ ,T_raw_xaf_ = 183
+ ,T_raw_xb0_ = 184
+ ,T_raw_xb1_ = 185
+ ,T_raw_xb2_ = 186
+ ,T_raw_xb3_ = 187
+ ,T_raw_xb4_ = 188
+ ,T_raw_xb5_ = 189
+ ,T_raw_xb6_ = 190
+ ,T_raw_xb7_ = 191
+ ,T_raw_xb8_ = 192
+ ,T_raw_xb9_ = 193
+ ,T_raw_xba_ = 194
+ ,T_raw_xbb_ = 195
+ ,T_raw_xbc_ = 196
+ ,T_raw_xbd_ = 197
+ ,T_raw_xbe_ = 198
+ ,T_raw_xbf_ = 199
+ ,T_raw_xc0_ = 200
+ ,T_raw_xc1_ = 201
+ ,T_raw_xc2_ = 202
+ ,T_raw_xc3_ = 203
+ ,T_raw_xc4_ = 204
+ ,T_raw_xc5_ = 205
+ ,T_raw_xc6_ = 206
+ ,T_raw_xc7_ = 207
+ ,T_raw_xc8_ = 208
+ ,T_raw_xc9_ = 209
+ ,T_raw_xca_ = 210
+ ,T_raw_xcb_ = 211
+ ,T_raw_xcc_ = 212
+ ,T_raw_xcd_ = 213
+ ,T_raw_xce_ = 214
+ ,T_raw_xcf_ = 215
+ ,T_raw_xd0_ = 216
+ ,T_raw_xd1_ = 217
+ ,T_raw_xd2_ = 218
+ ,T_raw_xd3_ = 219
+ ,T_raw_xd4_ = 220
+ ,T_raw_xd5_ = 221
+ ,T_raw_xd6_ = 222
+ ,T_raw_xd7_ = 223
+ ,T_raw_xd8_ = 224
+ ,T_raw_xd9_ = 225
+ ,T_raw_xda_ = 226
+ ,T_raw_xdb_ = 227
+ ,T_raw_xdc_ = 228
+ ,T_raw_xdd_ = 229
+ ,T_raw_xde_ = 230
+ ,T_raw_xdf_ = 231
+ ,T_raw_xe0_ = 232
+ ,T_raw_xe1_ = 233
+ ,T_raw_xe2_ = 234
+ ,T_raw_xe3_ = 235
+ ,T_raw_xe4_ = 236
+ ,T_raw_xe5_ = 237
+ ,T_raw_xe6_ = 238
+ ,T_raw_xe7_ = 239
+ ,T_raw_xe8_ = 240
+ ,T_raw_xe9_ = 241
+ ,T_raw_xea_ = 242
+ ,T_raw_xeb_ = 243
+ ,T_raw_xec_ = 244
+ ,T_raw_xed_ = 245
+ ,T_raw_xee_ = 246
+ ,T_raw_xef_ = 247
+ ,T_raw_xf0_ = 248
+ ,T_raw_xf1_ = 249
+ ,T_raw_xf2_ = 250
+ ,T_raw_xf3_ = 251
+ ,T_raw_xf4_ = 252
+ ,T_raw_xf5_ = 253
+ ,T_raw_xf6_ = 254
+ ,T_raw_xf7_ = 255
+ ,T_raw_xf8_ = 256
+ ,T_raw_xf9_ = 257
+ ,T_raw_xfa_ = 258
+ ,T_raw_xfb_ = 259
+ ,T_raw_xfc_ = 260
+ ,T_raw_xfd_ = 261
+ ,T_raw_xfe_ = 262
+ ,T_raw_xff_ = 263
+ ,T_T_option_t_ = 264
+ ,T_T_option_p_ = 265
+ ,T_T_option_err_ = 266
+ ,T_T_esc_seq_ = 267
+ ,T_T_eol_ = 268
+ ,T_T_basic_char_ = 269
+ ,T_T_raw_char_ = 270
+ ,T_T_comment_ = 271
+ ,T_T_ws_ = 272
+ ,T_T_angled_string_ = 273
+ ,T_T_c_literal_ = 274
+ ,T_T_c_string_ = 275
+ ,T_T_xc_str_ = 276
+ ,T_T_unquoted_string_ = 277
+ ,T_T_file_inclusion_ = 278
+ ,T_T_identifier_ = 279
+ ,T_T_int_no_ = 280
+ ,T_T_raw_characters_ = 281
+ ,T_T_lr1_constant_symbols_ = 282
+ ,T_T_error_symbols_ = 283
+ ,T_T_eocode_ = 284
+ ,T_T_AD_ = 285
+ ,T_T_AB_ = 286
+ ,T_T_parallel_la_boundary_ = 287
+ ,T_T_arbitrator_code_ = 288
+ ,T_T_parallel_parser_ = 289
+ ,T_T_parallel_thread_function_ = 290
+ ,T_T_parallel_control_monitor_ = 291
+ ,T_T_fsm_ = 292
+ ,T_T_fsm_id_ = 293
+ ,T_T_fsm_filename_ = 294
+ ,T_T_fsm_namespace_ = 295
+ ,T_T_fsm_class_ = 296
+ ,T_T_fsm_version_ = 297
+ ,T_T_fsm_date_ = 298
+ ,T_T_fsm_debug_ = 299
+ ,T_T_fsm_comments_ = 300
+ ,T_T_terminals_ = 301
+ ,T_T_enumeration_ = 302
+ ,T_T_file_name_ = 303
+ ,T_T_name_space_ = 304
+ ,T_T_sym_class_ = 305
+ ,T_T_rules_ = 306
+ ,T_T_lhs_ = 307
+ ,T_T_user_declaration_ = 308
+ ,T_T_user_prefix_declaration_ = 309
+ ,T_T_user_suffix_declaration_ = 310
+ ,T_T_constructor_ = 311
+ ,T_T_destructor_ = 312
+ ,T_T_op_ = 313
+ ,T_T_failed_ = 314
+ ,T_T_user_implementation_ = 315
+ ,T_T_user_imp_tbl_ = 316
+ ,T_T_user_imp_sym_ = 317
+ ,T_T_constant_defs_ = 318
+ ,T_T_terminals_refs_ = 319
+ ,T_T_terminals_sufx_ = 320
+ ,T_T_lrk_sufx_ = 321
+ ,T_T_selector_ = 322
+ ,T_T_NULL_ = 323
+ ,T_T_2colon_ = 324
+ ,T_T_block_ = 325
+ ,T_T_syntax_code_ = 326
+ ,T_T_fsm_class_phrase_ = 327
+ ,T_T_fsm_phrase_ = 328
+ ,T_T_parallel_parser_phrase_ = 329
+ ,T_T_enum_phrase_ = 330
+ ,T_T_terminal_def_ = 331
+ ,T_table_entry_ = 332
+ ,T_T_sym_tbl_report_card_ = 333
+ ,T_T_terminals_phrase_ = 334
+ ,T_T_error_symbols_phrase_ = 335
+ ,T_T_lr1_k_phrase_ = 336
+ ,T_T_rc_phrase_ = 337
+ ,T_T_rule_lhs_phrase_ = 338
+ ,T_T_parallel_monitor_phrase_ = 339
+ ,T_rule_def_ = 340
+ ,T_T_rules_phrase_ = 341
+ ,T_T_subrule_def_ = 342
+ ,T_T_subrules_phrase_ = 343
+ ,T_T_in_stbl_ = 344
+ ,T_refered_T_ = 345
+ ,T_rule_in_stbl_ = 346
+ ,T_refered_rule_ = 347
+ ,T_T_transitive_ = 348
+ ,T_T_grammar_name_ = 349
+ ,T_T_thread_name_ = 350
+ ,T_T_monolithic_ = 351
+ ,T_T_no_of_T_ = 352
+ ,T_T_list_of_native_first_set_terminals_ = 353
+ ,T_T_end_list_of_native_first_set_terminals_ = 354
+ ,T_T_list_of_transitive_threads_ = 355
+ ,T_T_end_list_of_transitive_threads_ = 356
+ ,T_T_emitfile_ = 357
+ ,T_T_preamble_ = 358
+ ,T_T_end_preamble_ = 359
+ ,T_T_T_alphabet_ = 360
+ ,T_T_end_T_alphabet_ = 361
+ ,T_T_file_of_T_alphabet_ = 362
+ ,T_T_attributes_ = 363
+ ,T_tth_in_stbl_ = 364
+ ,T_thread_attributes_ = 365
+ ,T_th_in_stbl_ = 366
+ ,T_kw_in_stbl_ = 367
+ ,T_T_la_expr_src_ = 368
+ ,T_T_eosubrule_ = 369
+ ,T_T_called_thread_eosubrule_ = 370
+ ,T_T_null_call_thread_eosubrule_ = 371
+ ,T_T_cweb_comment_ = 372
+ ,T_T_grammar_phrase_ = 373
+ ,T_T_cweb_marker_ = 374
+ ,T_T_lint_ = 375
+ ,T_T_list_of_used_threads_ = 376
+ ,T_T_end_list_of_used_threads_ = 377
+ ,T_Err_nested_files_exceeded_ = 378
+ ,T_Err_no_end_of_code_ = 379
+ ,T_Err_no_cmd_lne_data_ = 380
+ ,T_Err_no_filename_ = 381
+ ,T_Err_bad_filename_ = 382
+ ,T_Err_bad_fsmheader_filename_ = 383
+ ,T_Err_bad_fsmcpp_filename_ = 384
+ ,T_Err_bad_fsmsym_filename_ = 385
+ ,T_Err_bad_fsmtbl_filename_ = 386
+ ,T_Err_bad_enum_filename_ = 387
+ ,T_Err_bad_errors_hdrfilename_ = 388
+ ,T_Err_bad_errors_impfilename_ = 389
+ ,T_Err_bad_cmd_lne_opt_ = 390
+ ,T_Err_bad_int_no_ = 391
+ ,T_Err_bad_int_no_range_ = 392
+ ,T_Err_no_int_present_ = 393
+ ,T_Err_bad_eos_ = 394
+ ,T_Err_bad_esc_ = 395
+ ,T_Err_comment_overrun_ = 396
+ ,T_Err_bad_char_ = 397
+ ,T_Err_bad_univ_seq_ = 398
+ ,T_Err_improper_closing_of_rules_ = 399
+ ,T_Err_no_identifier_present_ = 400
+ ,T_Err_no_directive_present_ = 401
+ ,T_Err_duplicate_directive_ = 402
+ ,T_Err_no_syntax_code_present_ = 403
+ ,T_Err_no_open_parenthesis_ = 404
+ ,T_Err_no_close_parenthesis_ = 405
+ ,T_Err_no_fsm_id_present_ = 406
+ ,T_Err_no_fsm_id_string_ = 407
+ ,T_Err_no_fsm_filename_present_ = 408
+ ,T_Err_no_fsm_filename_id_present_ = 409
+ ,T_Err_no_comma_present_ = 410
+ ,T_Err_no_fsm_namespace_present_ = 411
+ ,T_Err_no_fsm_namespace_id_present_ = 412
+ ,T_Err_no_fsm_class_present_ = 413
+ ,T_Err_no_fsm_version_present_ = 414
+ ,T_Err_no_fsm_version_string_ = 415
+ ,T_Err_no_fsm_date_present_ = 416
+ ,T_Err_no_fsm_date_string_ = 417
+ ,T_Err_no_fsm_debug_present_ = 418
+ ,T_Err_no_fsm_debug_string_ = 419
+ ,T_Err_no_fsm_comments_present_ = 420
+ ,T_Err_no_fsm_comments_string_ = 421
+ ,T_Err_fsm_debug_string_not_true_or_false_ = 422
+ ,T_Err_no_pp_thread_function_present_ = 423
+ ,T_Err_no_pp_ctrl_mntor_kw_present_ = 424
+ ,T_Err_no_pp_fnct_id_present_ = 425
+ ,T_Err_no_pp_bndry_present_ = 426
+ ,T_Err_no_pp_la_bndary_expr_present_ = 427
+ ,T_Err_no_syntax_code_end_present_ = 428
+ ,T_Err_no_pp_code_present_ = 429
+ ,T_Err_no_pp_code_stc_present_ = 430
+ ,T_Err_not_arbitration_code_kw_ = 431
+ ,T_Err_no_open_brace_ = 432
+ ,T_Err_no_close_brace_ = 433
+ ,T_Err_no_constant_defs_present_ = 434
+ ,T_Err_no_filename_present_ = 435
+ ,T_Err_no_filename_id_present_ = 436
+ ,T_Err_no_namespace_present_ = 437
+ ,T_Err_no_namespace_id_present_ = 438
+ ,T_Err_no_kdefs_code_present_ = 439
+ ,T_Err_no_kdefs_kw_present_ = 440
+ ,T_Err_no_tdef_code_present_ = 441
+ ,T_Err_no_sym_defs_present_ = 442
+ ,T_Err_no_terminal_key_present_ = 443
+ ,T_Err_dup_entry_in_alphabet_ = 444
+ ,T_Err_already_defined_AB_ = 445
+ ,T_Err_already_defined_AD_ = 446
+ ,T_Err_improper_directive_ = 447
+ ,T_Err_no_sym_class_present_ = 448
+ ,T_Err_no_sym_class_id_present_ = 449
+ ,T_Err_zero_len_sym_ = 450
+ ,T_Err_sym_tbl_full_ = 451
+ ,T_Err_sym_tbl_char_pool_full_ = 452
+ ,T_Err_dup_entry_in_sym_table_ = 453
+ ,T_Err_subscript_out_of_range_ = 454
+ ,T_Err_sym_tbl_nested_scope_stk_overflow_ = 455
+ ,T_Err_sym_tbl_nested_scope_stk_underflow_ = 456
+ ,T_Err_sym_tbl_context_buf_overflow_ = 457
+ ,T_Err_report_card_ptr_0_ = 458
+ ,T_Err_cannot_define_term_after_sufx_dir_ = 459
+ ,T_Err_dup_sufx_directive_ = 460
+ ,T_Err_terminals_refs_def_after_terminals_ = 461
+ ,T_Err_terminals_refs_dup_def_ = 462
+ ,T_Err_no_rule_name_present_ = 463
+ ,T_Err_no_sub_rule_present_ = 464
+ ,T_Err_subrule_use_undefined_T_ = 465
+ ,T_Err_stbl_entry_unknown_ = 466
+ ,T_Err_subrule_overrun_ = 467
+ ,T_Err_stble_has_entry_but_not_a_rule_ = 468
+ ,T_Err_file_of_T_alphabet_kw_not_present_ = 469
+ ,T_Err_emitfile_kw_not_present_ = 470
+ ,T_Err_preamble_kw_not_present_ = 471
+ ,T_Err_preamble_srce_code_not_present_ = 472
+ ,T_Err_end_preamble_kw_not_present_ = 473
+ ,T_Err_cmd_line_chaffe_ = 474
+ ,T_Err_T_alphabet_kw_not_present_ = 475
+ ,T_Err_T_alphabet_file_not_present_ = 476
+ ,T_Err_end_T_alphabet_kw_not_present_ = 477
+ ,T_Err_no_terminals_in_T_alphabet_list_ = 478
+ ,T_Err_rotten_chr_in_T_alphabet_ = 479
+ ,T_Err_transitive_kw_not_present_ = 480
+ ,T_Err_grammar_name_kw_not_present_ = 481
+ ,T_Err_namespace_kw_not_present_ = 482
+ ,T_Err_filename_kw_not_present_ = 483
+ ,T_Err_threadname_kw_not_present_ = 484
+ ,T_Err_monolithic_kw_not_present_ = 485
+ ,T_Err_no_of_T_kw_not_present_ = 486
+ ,T_Err_list_of_terminals_kw_not_present_ = 487
+ ,T_Err_no_list_of_trans_threads_kw_ = 488
+ ,T_Err_no_terminals_present_in_T_alphabet_ = 489
+ ,T_Err_transitive_value_bad_ = 490
+ ,T_Err_monolithic_value_bad_ = 491
+ ,T_Err_grammar_name_value_not_present_ = 492
+ ,T_Err_namespace_value_not_present_ = 493
+ ,T_Err_threadname_value_not_present_ = 494
+ ,T_Err_filename_value_not_present_ = 495
+ ,T_Err_no_of_T_value_not_present_ = 496
+ ,T_Err_no_of_terminals_not_present_ = 497
+ ,T_Err_end_list_native_T_kw_not_present_ = 498
+ ,T_Err_end_list_of_transitive_threads_kw_not_present_ = 499
+ ,T_Err_no_of_native_Ts_in_list_not_equal_ = 500
+ ,T_Err_no_of_threads_in_list_not_equal_ = 501
+ ,T_Err_thread_refed_but_not_defined_ = 502
+ ,T_Err_bad_T_in_list_ = 503
+ ,T_Err_bad_th_in_list_ = 504
+ ,T_Err_already_defined_in_fsc_file_ = 505
+ ,T_Err_bad_thread_subscript_ = 506
+ ,T_Err_not_a_keyword_ = 507
+ ,T_Err_no_of_threads_not_present_ = 508
+ ,T_Err_bad_T_alphabet_ = 509
+ ,T_Err_fsc_file_does_not_exist_ = 510
+ ,T_Err_filename_file_does_not_exist_ = 511
+ ,T_Err_T_alphabet_file_does_not_exist_ = 512
+ ,T_Err_emitfile_file_does_not_exist_ = 513
+ ,T_Err_emitfile_file_not_present_ = 514
+ ,T_Err_fsc_cntl_file_not_present_ = 515
+ ,T_Err_file_of_T_alphabet_not_present_ = 516
+ ,T_Err_epsilon_pass_thru_ = 517
+ ,T_Err_epsilon_pass_thru_no_Ts_ = 518
+ ,T_Err_rule_not_in_stbl_ = 519
+ ,T_Err_T_not_in_stbl_ = 520
+ ,T_Err_bad_directive_ = 521
+ ,T_Err_bad_term_in_la_expr_ = 522
+ ,T_Err_empty_set_removal_in_la_expr_ = 523
+ ,T_Err_bad_operator_in_la_expr_ = 524
+ ,T_Err_not_a_lhs_kw_ = 525
+ ,T_Err_pp_la_boundary_attribute_not_fnd_ = 526
+ ,T_Err_already_processed_fsm_phase_ = 527
+ ,T_Err_already_processed_pp_phase_ = 528
+ ,T_Err_already_processed_T_enum_phase_ = 529
+ ,T_Err_already_processed_error_phase_ = 530
+ ,T_Err_already_processed_rc_phase_ = 531
+ ,T_Err_already_processed_lrk_phase_ = 532
+ ,T_Err_already_processed_T_phase_ = 533
+ ,T_Err_already_processed_rule_phase_ = 534
+ ,T_Err_not_T_for_rtned_token_from_th_ = 535
+ ,T_Err_not_id_for_ns_in_th_stmt_ = 536
+ ,T_Err_not_id_for_th_name_in_th_stmt_ = 537
+ ,T_Err_bad_th_qualifier_ = 538
+ ,T_Err_not_dbl_colon_in_th_stmt_ = 539
+ ,T_Err_not_T_or_R_in_subrule_expr_ = 540
+ ,T_Err_not_T_or_R_or_eos_in_subrule_expr_ = 541
+ ,T_Err_not_eos_in_subrule_expr_ = 542
+ ,T_Err_invalid_logical_name_ = 543
+ ,T_Err_invalid_logical_value_ = 544
+ ,T_Err_duplicate_logical_name_ = 545
+ ,T_Err_missing_terminals_refs_kw_ = 546
+ ,T_Err_missing_terminals_sufx_kw_ = 547
+ ,T_Err_not_a_terminal_definition_ = 548
+ ,T_Err_missing_lrk_sufx_kw_ = 549
+ ,T_ERR_sick_grammar_ = 550
+ ,T_ERR_no_fsm_phrase_ = 551
+ ,T_ERR_no_T_enum_phrase_ = 552
+ ,T_ERR_no_lrk_phrase_ = 553
+ ,T_ERR_no_rc_phrase_ = 554
+ ,T_ERR_no_errors_phrase_ = 555
+ ,T_ERR_no_terminals_phrase_ = 556
+ ,T_ERR_no_rules_phrase_ = 557
+ ,T_Err_used_rule_but_undefined_ = 558
+ ,T_Err_rule_already_defined_ = 559
+ ,T_Err_la_expr_calc_empty_set_ = 560
+ ,T_Err_no_close_brace_ending_rules_defs_ = 561
+ ,T_Err_use_of_T_outside_Rules_construct_ = 562
+ ,T_Err_not_kw_defining_grammar_construct_ = 563
+ ,T_Err_use_of_N_outside_Rules_construct_ = 564
+ ,T_Err_misplaced_or_misspelt_Rule_or_T_ = 565
+ ,T_Err_not_a_Rule_ = 566
+ ,T_Err_empty_file_ = 567
+ ,T_Err_not_lhs_pcnrl_mntr_ = 568
+ }; // close defining enum list
+ }; // close defining T_enum
+} // end of namespace
+#endif
diff --git a/web/yacco2/compiler/grammars/yacco2_T_includes.T b/web/yacco2/compiler/grammars/yacco2_T_includes.T
new file mode 100644
index 0000000000..cd592a07ee
--- /dev/null
+++ b/web/yacco2/compiler/grammars/yacco2_T_includes.T
@@ -0,0 +1,15 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+File: yacco2_T_includes.T
+Purpose: Terminal alphabet definitions used by yacco2's grammars.
+Author: Dave Bone
+Date: 28 May 2003
+*/
+@"/usr/local/yacco2/compiler/grammars/yacco2_T_enumeration.T"
+@"/usr/local/yacco2/library/grammars/yacco2_k_symbols.T"
+@"/usr/local/yacco2/library/grammars/yacco2_characters.T"
+@"/usr/local/yacco2/compiler/grammars/yacco2_terminals.T"
+@"/usr/local/yacco2/compiler/grammars/yacco2_err_symbols.T"
diff --git a/web/yacco2/compiler/grammars/yacco2_err_symbols.T b/web/yacco2/compiler/grammars/yacco2_err_symbols.T
new file mode 100644
index 0000000000..a2eab128da
--- /dev/null
+++ b/web/yacco2/compiler/grammars/yacco2_err_symbols.T
@@ -0,0 +1,704 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+File: yacco2_err_symbols.lex
+Date: 7 July 2003
+Author: Dave Bone
+*/
+/@
+@i "/yacco2/copyright.w"
+@** Error symbols vocabulary.\fbreak
+Error symbols for the telling.\fbreak
+Due to my verbosity and |cweb|'s (\TeX) black slug output
+some of my symbol keys are
+more cryptic in description as i wanted to title them with
+their enumeration symbol.
+Now, the enumeration symbol is removed from the index so there is
+no blob of ...
+If the truth be told, these descriptions should
+be indirect key values that allow for
+multilingual translation.
+One step at a time...
+
+Upon experimentation with error keys
+having a suffixed Exxx indicator in the key itself
+whereby
+the xxx is a number: 001 and
+associating a translation file with the error construct, i nixed the ideas.
+It is simply a post error evaluation on the given
+error keys to translate them using some form of associated map.
+The error enumeration key with a language indicator would suffice.
+A simple database could be used.
+For example T\_Enum::T\_LR1\_err\_nested\_files\_exceeded\_ with
+ a country code of ``DE'' for
+German would translate ``nested files exceeded''.
+Not finding a translation should default to the error token's
+literal key.
+See grammar ``o2\_err\_hdr.lex'' for a context sensitive approach to error reporting.
+
+
+Ahh... grandeur. Now what about unicode?
+@/
+
+error-symbols
+(file-name yacco2_err_symbols
+,name-space NS_yacco2_err_symbols)
+{
+"nested files exceeded"
+(sym-class Err_nested_files_exceeded {
+ user-declaration
+ public:
+ Err_nested_files_exceeded(yacco2::INT Nested_file_cnt,std::string& File_name);
+ yacco2::INT nested_cnt(){return nested_cnt_;};
+ std::string* file_exceeded(){return &file_exceeded_;};
+ private:
+ yacco2::INT nested_cnt_;
+ std::string file_exceeded_;
+ ***
+ user-implementation
+ Err_nested_files_exceeded::
+ Err_nested_files_exceeded(yacco2::INT Nested_cnt,std::string& File_name)
+ T_CTOR("nested files exceeded",T_Enum::T_Err_nested_files_exceeded_,0,false,false)
+ {nested_cnt_ = Nested_cnt;file_exceeded_ += File_name.c_str();}
+ ***
+ }
+)
+"no end-of-code" (sym-class Err_no_end_of_code)
+"no cmd-lne-data" (sym-class Err_no_cmd_lne_data)
+"no filename" (sym-class Err_no_filename)
+"bad filename"
+(sym-class Err_bad_filename {
+ user-declaration
+ public:
+ Err_bad_filename(std::string& File_name);
+ Err_bad_filename(const char* File_name);
+ std::string* file_name();
+ private:
+ std::string file_name_;
+ ***
+ user-implementation
+ Err_bad_filename::
+ Err_bad_filename(std::string& File_name)
+ T_CTOR("bad filename",T_Enum::T_Err_bad_filename_,0,false,false)
+ {file_name_ += File_name.c_str();}
+ Err_bad_filename::
+ Err_bad_filename(const char* File_name)
+ T_CTOR("bad filename",T_Enum::T_Err_bad_filename_,0,false,false)
+ {file_name_ += File_name;}
+ std::string* Err_bad_filename::file_name(){return &file_name_;}
+ ***
+ }
+)
+"bad filename to output grammar header"
+(sym-class Err_bad_fsmheader_filename {
+ user-declaration
+ public:
+ Err_bad_fsmheader_filename(std::string& File_name);
+ Err_bad_fsmheader_filename(const char* File_name);
+ std::string* file_name();
+ private:
+ std::string file_name_;
+ ***
+ user-implementation
+ Err_bad_fsmheader_filename::
+ Err_bad_fsmheader_filename(std::string& File_name)
+T_CTOR("bad filename to output grammar header",T_Enum::T_Err_bad_fsmheader_filename_,0,false,false)
+ {file_name_ += File_name.c_str();}
+ Err_bad_fsmheader_filename::
+ Err_bad_fsmheader_filename(const char* File_name)
+T_CTOR("bad filename to output grammar header",T_Enum::T_Err_bad_fsmheader_filename_,0,false,false)
+ {file_name_ += File_name;}
+ std::string* Err_bad_fsmheader_filename::file_name(){return &file_name_;}
+ ***
+ }
+)
+"bad filename to output cpp"
+(sym-class Err_bad_fsmcpp_filename {
+ user-declaration
+ public:
+ Err_bad_fsmcpp_filename(std::string& File_name);
+ Err_bad_fsmcpp_filename(const char* File_name);
+ std::string* file_name();
+ private:
+ std::string file_name_;
+ ***
+ user-implementation
+ Err_bad_fsmcpp_filename::
+ Err_bad_fsmcpp_filename(std::string& File_name)
+T_CTOR("bad filename to output cpp",T_Enum::T_Err_bad_fsmcpp_filename_,0,false,false)
+ {file_name_ += File_name.c_str();}
+ Err_bad_fsmcpp_filename::
+ Err_bad_fsmcpp_filename(const char* File_name)
+T_CTOR("bad filename to output cpp",T_Enum::T_Err_bad_fsmcpp_filename_,0,false,false)
+ {file_name_ += File_name;}
+ std::string* Err_bad_fsmcpp_filename::file_name(){return &file_name_;}
+ ***
+ }
+)
+"bad filename to output sym"
+(sym-class Err_bad_fsmsym_filename {
+ user-declaration
+ public:
+ Err_bad_fsmsym_filename(std::string& File_name);
+ Err_bad_fsmsym_filename(const char* File_name);
+ std::string* file_name();
+ private:
+ std::string file_name_;
+ ***
+ user-implementation
+ Err_bad_fsmsym_filename::
+ Err_bad_fsmsym_filename(std::string& File_name)
+T_CTOR("bad filename to output sym",T_Enum::T_Err_bad_fsmsym_filename_,0,false,false)
+ {file_name_ += File_name.c_str();}
+ Err_bad_fsmsym_filename::
+ Err_bad_fsmsym_filename(const char* File_name)
+T_CTOR("bad filename to output sym",T_Enum::T_Err_bad_fsmsym_filename_,0,false,false)
+ {file_name_ += File_name;}
+ std::string* Err_bad_fsmsym_filename::file_name(){return &file_name_;}
+ ***
+ }
+)
+"bad filename to output tbl"
+(sym-class Err_bad_fsmtbl_filename {
+ user-declaration
+ public:
+ Err_bad_fsmtbl_filename(std::string& File_name);
+ Err_bad_fsmtbl_filename(const char* File_name);
+ std::string* file_name();
+ private:
+ std::string file_name_;
+ ***
+ user-implementation
+ Err_bad_fsmtbl_filename::
+ Err_bad_fsmtbl_filename(std::string& File_name)
+T_CTOR("bad filename to output tbl",T_Enum::T_Err_bad_fsmtbl_filename_,0,false,false)
+ {file_name_ += File_name.c_str();}
+ Err_bad_fsmtbl_filename::
+ Err_bad_fsmtbl_filename(const char* File_name)
+T_CTOR("bad filename to output tbl",T_Enum::T_Err_bad_fsmtbl_filename_,0,false,false)
+ {file_name_ += File_name;}
+ std::string* Err_bad_fsmtbl_filename::file_name(){return &file_name_;}
+ ***
+ }
+)
+"bad filename to output enumeration header"
+(sym-class Err_bad_enum_filename {
+ user-declaration
+ public:
+ Err_bad_enum_filename(std::string& File_name);
+ Err_bad_enum_filename(const char* File_name);
+ std::string* file_name();
+ private:
+ std::string file_name_;
+ ***
+ user-implementation
+ Err_bad_enum_filename::
+ Err_bad_enum_filename(std::string& File_name)
+T_CTOR("bad filename to output enumeration header",T_Enum::T_Err_bad_enum_filename_,0,false,false)
+ {file_name_ += File_name.c_str();}
+ Err_bad_enum_filename::
+ Err_bad_enum_filename(const char* File_name)
+T_CTOR("bad filename to output enumeration header",T_Enum::T_Err_bad_enum_filename_,0,false,false)
+ {file_name_ += File_name;}
+ std::string* Err_bad_enum_filename::file_name(){return &file_name_;}
+ ***
+ }
+)
+
+"bad filename for Errors vocabulary header"
+(sym-class Err_bad_errors_hdrfilename {
+ user-declaration
+ public:
+ Err_bad_errors_hdrfilename(std::string& File_name);
+ Err_bad_errors_hdrfilename(const char* File_name);
+ std::string* file_name();
+ private:
+ std::string file_name_;
+ ***
+ user-implementation
+ Err_bad_errors_hdrfilename::
+ Err_bad_errors_hdrfilename(std::string& File_name)
+T_CTOR("bad filename for Errors vocabulary header",T_Enum::T_Err_bad_errors_hdrfilename_,0,false,false)
+ {file_name_ += File_name.c_str();}
+ Err_bad_errors_hdrfilename::
+ Err_bad_errors_hdrfilename(const char* File_name)
+T_CTOR("bad filename for Errors vocabulary header",T_Enum::T_Err_bad_errors_hdrfilename_,0,false,false)
+ {file_name_ += File_name;}
+ std::string* Err_bad_errors_hdrfilename::file_name(){return &file_name_;}
+ ***
+ }
+)
+
+"bad filename for Errors vocabulary implementation"
+(sym-class Err_bad_errors_impfilename {
+ user-declaration
+ public:
+ Err_bad_errors_impfilename(std::string& File_name);
+ Err_bad_errors_impfilename(const char* File_name);
+ std::string* file_name();
+ private:
+ std::string file_name_;
+ ***
+ user-implementation
+ Err_bad_errors_impfilename::
+ Err_bad_errors_impfilename(std::string& File_name)
+T_CTOR("bad filename for Errors vocabulary implementation",T_Enum::T_Err_bad_errors_impfilename_,0,false,false)
+ {file_name_ += File_name.c_str();}
+ Err_bad_errors_impfilename::
+ Err_bad_errors_impfilename(const char* File_name)
+T_CTOR("bad filename for Errors vocabulary implementation",T_Enum::T_Err_bad_errors_impfilename_,0,false,false)
+ {file_name_ += File_name;}
+ std::string* Err_bad_errors_impfilename::file_name(){return &file_name_;}
+ ***
+ }
+)
+
+"bad cmd-opt" (sym-class Err_bad_cmd_lne_opt)
+"bad int-no" (sym-class Err_bad_int_no)
+"bad int-no range"(sym-class Err_bad_int_no_range)
+"no int present" (sym-class Err_no_int_present)
+"bad eos" (sym-class Err_bad_eos)
+"bad esc" (sym-class Err_bad_esc)
+"comment-overrun" (sym-class Err_comment_overrun)
+
+"bad char"
+ (sym-class Err_bad_char{
+ user-declaration
+ public:
+ Err_bad_char(CAbs_lr1_sym* Err_char);
+ yacco2::CAbs_lr1_sym* bad_char()const;
+ void zero_out_bad_char();
+ private:
+ yacco2::CAbs_lr1_sym* bad_char_;
+ ***
+ destructor
+ if(R->bad_char_!=0)
+ delete R->bad_char();
+ ***
+ user-implementation
+ Err_bad_char::
+ Err_bad_char(CAbs_lr1_sym* Bad_char)
+T_CTOR("bad char",T_Enum::T_Err_bad_char_,&dtor_Err_bad_char,false,false)
+ {bad_char_ = Bad_char;}
+ yacco2::CAbs_lr1_sym* Err_bad_char::bad_char()const{return bad_char_;}
+ void Err_bad_char::zero_out_bad_char(){bad_char_ = 0;}
+ ***
+ }
+)
+
+"bad univ-seq" (sym-class Err_bad_univ_seq{
+ user-declaration
+ public:
+ Err_bad_univ_seq(unsigned long Value);
+ unsigned long bad_univ_seq()const;
+ private:unsigned long bad_univ_seq_;
+ ***
+ user-implementation
+ Err_bad_univ_seq::
+ Err_bad_univ_seq(unsigned long Bad_univ_seq)
+ T_CTOR("bad univ seq",T_Enum::T_Err_bad_univ_seq_,0,false,false)
+ {bad_univ_seq_ = Bad_univ_seq;
+ }
+ unsigned long
+ Err_bad_univ_seq::bad_univ_seq()const{return bad_univ_seq_;}
+ ***
+ }
+)
+"improper closing of rules construct"
+ (sym-class Err_improper_closing_of_rules)
+"no identifier present" (sym-class Err_no_identifier_present)
+"no directive present" (sym-class Err_no_directive_present)
+"duplicate directive" (sym-class Err_duplicate_directive)
+"no syntax-code present" (sym-class Err_no_syntax_code_present)
+"no open-parenthesis" (sym-class Err_no_open_parenthesis)
+"no close-parenthesis" (sym-class Err_no_close_parenthesis)
+"no fsm-id-present" (sym-class Err_no_fsm_id_present)
+"no fsm-id-string present" (sym-class Err_no_fsm_id_string)
+"no fsm-filename present" (sym-class Err_no_fsm_filename_present)
+"no fsm-filename id present"(sym-class Err_no_fsm_filename_id_present)
+
+"no comma present" (sym-class Err_no_comma_present)
+"no fsm-namespace present" (sym-class Err_no_fsm_namespace_present)
+"no fsm-namespace id present"(sym-class Err_no_fsm_namespace_id_present)
+"no fsm-class present" (sym-class Err_no_fsm_class_present)
+
+"no fsm-version present" (sym-class Err_no_fsm_version_present)
+"no fsm-version string present" (sym-class Err_no_fsm_version_string)
+"no fsm-date present" (sym-class Err_no_fsm_date_present)
+"no fsm-date string present" (sym-class Err_no_fsm_date_string)
+"no fsm-debug present" (sym-class Err_no_fsm_debug_present)
+"no fsm-debug string present" (sym-class Err_no_fsm_debug_string)
+"no fsm-comments present" (sym-class Err_no_fsm_comments_present)
+"no fsm-comments string present" (sym-class Err_no_fsm_comments_string)
+"invalid fsm-debug value" (sym-class Err_fsm_debug_string_not_true_or_false)
+
+"no parallel-thread-function" (sym-class Err_no_pp_thread_function_present)
+"no parallel-control-monitor" (sym-class Err_no_pp_ctrl_mntor_kw_present)
+"no parallel thread function" (sym-class Err_no_pp_fnct_id_present)
+"no parallel-la-boundary" (sym-class Err_no_pp_bndry_present)
+"no parallel-la-boundary-expr" (sym-class Err_no_pp_la_bndary_expr_present)
+"no ***" (sym-class Err_no_syntax_code_end_present)
+"no parallel-code" (sym-class Err_no_pp_code_present)
+"no parallel-code-syntax-code" (sym-class Err_no_pp_code_stc_present)
+"not an arbitration-code keyword" (sym-class Err_not_arbitration_code_kw)
+
+"no open-brace" (sym-class Err_no_open_brace)
+"no close-brace" (sym-class Err_no_close_brace)
+"no constant-defs-directive present" (sym-class Err_no_constant_defs_present)
+"no file-name present" (sym-class Err_no_filename_present)
+"no file-name-id present"(sym-class Err_no_filename_id_present)
+"no name-space present" (sym-class Err_no_namespace_present)
+"no name-space-id present"(sym-class Err_no_namespace_id_present)
+"no constant-defs-code present"(sym-class Err_no_kdefs_code_present)
+"no constant-defs keyword present"(sym-class Err_no_kdefs_kw_present)
+"no terminal-def-code present"(sym-class Err_no_tdef_code_present)
+
+"no symbol definition present" (sym-class Err_no_sym_defs_present)
+"no key-value present in definition" (sym-class Err_no_terminal_key_present)
+"duplicate-entry in alphabet" (sym-class Err_dup_entry_in_alphabet)
+"already defined AB tag" (sym-class Err_already_defined_AB)
+"already defined AD tag" (sym-class Err_already_defined_AD)
+"improper directive" (sym-class Err_improper_directive)
+"no sym-class present" (sym-class Err_no_sym_class_present)
+"no sym-class id present" (sym-class Err_no_sym_class_id_present)
+
+"zero len symbol" (sym-class Err_zero_len_sym)
+"stbl full" (sym-class Err_sym_tbl_full)
+"stbl char-pool full" (sym-class Err_sym_tbl_char_pool_full)
+"dup-entry in sym-table" (sym-class Err_dup_entry_in_sym_table)
+"subscript out-of-range" (sym-class Err_subscript_out_of_range)
+"stbl scope-stk overflow" (sym-class Err_sym_tbl_nested_scope_stk_overflow)
+"stbl scope-stk underflow" (sym-class Err_sym_tbl_nested_scope_stk_underflow)
+"stbl context-buf-overflow" (sym-class Err_sym_tbl_context_buf_overflow)
+"report-card-ptr-0" (sym-class Err_report_card_ptr_0)
+"bad pos of t def" (sym-class Err_cannot_define_term_after_sufx_dir)
+"dup ? sufx directive" (sym-class Err_dup_sufx_directive)
+"bad pos of terminals-refs" (sym-class Err_terminals_refs_def_after_terminals)
+"terminals-refs duplicate" (sym-class Err_terminals_refs_dup_def)
+"no rule name present" (sym-class Err_no_rule_name_present)
+"no sub rule present" (sym-class Err_no_sub_rule_present)
+"undefined terminal in subrule" (sym-class Err_subrule_use_undefined_T)
+"unknown symbol type in stbl" (sym-class Err_stbl_entry_unknown)
+"subrule overrun" (sym-class Err_subrule_overrun)
+"stbl has entry but not a rule" (sym-class Err_stble_has_entry_but_not_a_rule)
+
+"no file-of-T-alphabet" (sym-class Err_file_of_T_alphabet_kw_not_present)
+"emitfile kw not present" (sym-class Err_emitfile_kw_not_present)
+"preamble kw not present" (sym-class Err_preamble_kw_not_present)
+"no preamble source code" (sym-class Err_preamble_srce_code_not_present)
+"no end-preamble present" (sym-class Err_end_preamble_kw_not_present)
+"command line chaffe" (sym-class Err_cmd_line_chaffe)
+"T-alphabet kw not present" (sym-class Err_T_alphabet_kw_not_present)
+"T-alphabet file not present" (sym-class Err_T_alphabet_file_not_present)
+"no end-T-alphabet present" (sym-class Err_end_T_alphabet_kw_not_present)
+"no T in T-alphabet list" (sym-class Err_no_terminals_in_T_alphabet_list)
+"rotten chr in T-alphabet" (sym-class Err_rotten_chr_in_T_alphabet)
+"no transitive present" (sym-class Err_transitive_kw_not_present)
+"no grammar-name present" (sym-class Err_grammar_name_kw_not_present)
+"no name-space" (sym-class Err_namespace_kw_not_present)
+"no file-name kw present" (sym-class Err_filename_kw_not_present)
+"no thread-name present" (sym-class Err_threadname_kw_not_present)
+"no monolithic present" (sym-class Err_monolithic_kw_not_present)
+"no no-of-T present" (sym-class Err_no_of_T_kw_not_present)
+"no list-of-native-terminals" (sym-class Err_list_of_terminals_kw_not_present)
+"no list-of-transit..." (sym-class Err_no_list_of_trans_threads_kw)
+"no Ts in T-alphabet" (sym-class Err_no_terminals_present_in_T_alphabet)
+"linker's transitive value not n or y" (sym-class Err_transitive_value_bad)
+"linker's monolithic value not n or y" (sym-class Err_monolithic_value_bad)
+"no grammar-name value" (sym-class Err_grammar_name_value_not_present)
+"no name-space value" (sym-class Err_namespace_value_not_present)
+"no thread-name value" (sym-class Err_threadname_value_not_present)
+"no file-name value" (sym-class Err_filename_value_not_present)
+"no-of-T value not present" (sym-class Err_no_of_T_value_not_present)
+"no# in list-of-native-term..." (sym-class Err_no_of_terminals_not_present)
+"no end-list-of-native..." (sym-class Err_end_list_native_T_kw_not_present)
+"no end-list-of-trans..." (sym-class Err_end_list_of_transitive_threads_kw_not_present)
+
+"# T in list not eq" (sym-class Err_no_of_native_Ts_in_list_not_equal{
+ user-declaration
+ public:
+ Err_no_of_native_Ts_in_list_not_equal(unsigned long Value);
+ unsigned long no()const;
+ private:unsigned long no_;
+ ***
+ user-implementation
+ Err_no_of_native_Ts_in_list_not_equal::
+ Err_no_of_native_Ts_in_list_not_equal(unsigned long No)
+T_CTOR("no terminals in list not equal, chk items in list",T_Enum::T_Err_no_of_native_Ts_in_list_not_equal_,0,false,false)
+ { no_ = No;}
+ unsigned long
+ Err_no_of_native_Ts_in_list_not_equal::no()const{return no_;}
+ ***
+ }
+)
+
+"# threads in list not eq" (sym-class Err_no_of_threads_in_list_not_equal{
+ user-declaration
+ public:
+ Err_no_of_threads_in_list_not_equal(unsigned long No);
+ unsigned long no()const;
+ private:unsigned long no_;
+ ***
+ user-implementation
+ Err_no_of_threads_in_list_not_equal::
+ Err_no_of_threads_in_list_not_equal(unsigned long No)
+T_CTOR("no threads in list not equal, chk list",T_Enum::T_Err_no_of_threads_in_list_not_equal_,0,false,false)
+ { no_ = No;}
+ unsigned long
+ Err_no_of_threads_in_list_not_equal::no()const{return no_;}
+ ***
+ }
+)
+
+"thread xrefed, but not defed"
+ (sym-class Err_thread_refed_but_not_defined{
+ user-declaration
+ public:
+ Err_thread_refed_but_not_defined(CAbs_lr1_sym* Th_id);
+ CAbs_lr1_sym* th_id();
+ private:CAbs_lr1_sym* th_id_;
+ ***
+ user-implementation
+ Err_thread_refed_but_not_defined::
+ Err_thread_refed_but_not_defined(CAbs_lr1_sym* Th_id)
+T_CTOR("thread xrefed, but not defed",T_Enum::T_Err_thread_refed_but_not_defined_,0,false,false)
+ { th_id_ = Th_id;}
+yacco2::CAbs_lr1_sym* Err_thread_refed_but_not_defined::th_id(){return th_id_;};
+ ***
+ }
+)
+"T in list not defined in T-alphabet"
+/@
+\Olinker message. It indicates that the terminal
+is not defined in ``T-alphabet'' construct.
+This is the T vocabulary.
+If the terminal is not defined, it means that the
+grammar writer has not generated the vocabulary.
+So turn on the /t option and re-compile a grammar thus
+creating the updated list.
+@/
+ (sym-class Err_bad_T_in_list)
+
+"transitive list thread not defined by fsc files"
+/@
+The hand coded ``???.fsc'' control file provides
+all the threads' ``fsc'' files has thread entries missing.
+Typically the grammar writer created a new thread but forgot the
+include it in the global ``fsc'' file.
+So go add the missing thread entries in the global ``fsc'' file.
+@/
+ (sym-class Err_bad_th_in_list)
+"thread defined by another fsc file"
+/@
+Each individual thread's fsc file contains its bio.
+This error indicates that the grammar writer probably
+cloned off a grammar but did not
+edit properly the vital statistics.
+So go edit the erroneous grammar and correct
+its thread name, namespace etc.
+@/
+(sym-class Err_already_defined_in_fsc_file)
+
+"thread in stbl but subscript badly set"
+/@
+More of a sanity check in the symbol table.
+If this occurs i'm really in trouble.
+@/
+(sym-class Err_bad_thread_subscript)
+
+"token found in stbl but not a kw"
+/@
+The symbol is not a keyword. Could be an initialization
+problem with my \O2 setup.
+@/
+ (sym-class Err_not_a_keyword)
+
+"no# in list-of-trans..."
+/@
+Cross check against the \O2 linker ``fsc'' info.
+The ``list-of-transitive-threads'' construct also
+states the number of entries in its list.
+Some how they don't jive.
+i think thar's something rotten in the fingers and
+diletants playing with the file?
+@/
+(sym-class Err_no_of_threads_not_present)
+
+"re-compile grammar: bad T-alphabet"
+/@
+Mismatch with the contents of the ``T-alphabet'' construct and the
+number of terminals stated in each individual grammar ``fsc'' file.
+Usually means that terminals of some ilk have changed the
+population and requires a recompilation per grammar
+to match the vocabulary numbers.
+That is regen grammars with the ``-t'' and ``-err'' switches.
+This gens the eumeration file that ``o2linker'' depends on.
+@/
+(sym-class Err_bad_T_alphabet)
+
+"fsc file does not exist" (sym-class Err_fsc_file_does_not_exist)
+"file-name file does not exist" (sym-class Err_filename_file_does_not_exist)
+"T-alphabet file does not exist"
+ (sym-class Err_T_alphabet_file_does_not_exist)
+"emitfile file does not exist" (sym-class Err_emitfile_file_does_not_exist)
+"emitfile file not present" (sym-class Err_emitfile_file_not_present)
+"fsc file not present" (sym-class Err_fsc_cntl_file_not_present)
+"file of T-alphabet not present" (sym-class Err_file_of_T_alphabet_not_present)
+
+"O2 epsilon badly gened: 0 items in fsc lists"
+/@
+\O2 states that a thread has epsilon pass thru of thread calling.
+Example the called thread start state has an epsilon subrule.
+Sanity check or paranoia on my work.
+@/
+(sym-class Err_epsilon_pass_thru)
+
+"O2 epsilon: T present, but no T list"
+/@
+\O2 states that a thread has epsilon pass thru of thread calling.
+Example the called thread start state has an epsilon subrule.
+Sanity check or paranoia on my work.
+@/
+(sym-class Err_epsilon_pass_thru_no_Ts)
+
+"rule not found in stbl"
+/@
+Post process the grammar's vocabulary.
+A rule can be referenced before
+its definition.
+Just help the grammar writer of misselling or forgetfulness.
+@/
+(sym-class Err_rule_not_in_stbl)
+
+"T not found in stbl"
+/@
+Either the grammmar writer forgot to add a new T definition or
+its a mistype.
+@/
+(sym-class Err_T_not_in_stbl)
+
+"bad directive" (sym-class Err_bad_directive)
+
+"bad term in la expr"
+/@
+Must be a Rule or a T term within the subrule expression.
+@/
+(sym-class Err_bad_term_in_la_expr)
+
+"removal of term against empty set in la expr"
+/@
+Bad expression where a removal expression is against an empty set.
+For example, a - eolr - b is invalid. The eolr empties the set.
+a - eolr + b is a round about way of having just b in the set.
+@/
+(sym-class Err_empty_set_removal_in_la_expr)
+
+"bad operator la expr: not a + or -"
+/@
+Thread's lookahead expression malformed.
+@/
+(sym-class Err_bad_operator_in_la_expr)
+
+"not a lhs kw" (sym-class Err_not_a_lhs_kw)
+"no parallel-la-bndary expr"
+ (sym-class Err_pp_la_boundary_attribute_not_fnd)
+"duplicate fsm phrase" (sym-class Err_already_processed_fsm_phase)
+"duplicate parallel-parse phrase" (sym-class Err_already_processed_pp_phase)
+"duplicate T_enum phrase" (sym-class Err_already_processed_T_enum_phase)
+"duplicate error phrase" (sym-class Err_already_processed_error_phase)
+"duplicate raw character phrase" (sym-class Err_already_processed_rc_phase)
+"duplicate lrk phrase" (sym-class Err_already_processed_lrk_phase)
+"duplicate terminal phrase" (sym-class Err_already_processed_T_phase)
+"duplicate rule phrase" (sym-class Err_already_processed_rule_phase)
+"T not returned from a thread" (sym-class Err_not_T_for_rtned_token_from_th)
+"not a namespace id in thread expr" (sym-class Err_not_id_for_ns_in_th_stmt)
+"not a thread name id in expr" (sym-class Err_not_id_for_th_name_in_th_stmt)
+"bad thread expr" (sym-class Err_bad_th_qualifier)
+"not :: in thread expr" (sym-class Err_not_dbl_colon_in_th_stmt)
+"bad term in subrule expr" (sym-class Err_not_T_or_R_in_subrule_expr)
+"? ended subrule expr" (sym-class Err_not_T_or_R_or_eos_in_subrule_expr)
+"not an eosr in subrule expr" (sym-class Err_not_eos_in_subrule_expr)
+"invalid logical name" (sym-class Err_invalid_logical_name)
+"invalid logical value" (sym-class Err_invalid_logical_value)
+"duplicate logical name" (sym-class Err_duplicate_logical_name)
+"missing terminals-refs kw" (sym-class Err_missing_terminals_refs_kw)
+"missing terminals-sufx kw" (sym-class Err_missing_terminals_sufx_kw)
+"not a terminal definition" (sym-class Err_not_a_terminal_definition)
+"missing lrk-sufx kw" (sym-class Err_missing_lrk_sufx_kw)
+"rule does not gen T strings - sick grammar" (sym-class ERR_sick_grammar)
+"misplaced or missing fsm phrase" (sym-class ERR_no_fsm_phrase)
+"misplaced or missing T enumeration phrase" (sym-class ERR_no_T_enum_phrase)
+"misplaced or missing lrk phrase" (sym-class ERR_no_lrk_phrase)
+"misplaced or missing rc phrase" (sym-class ERR_no_rc_phrase)
+"misplaced or missing errors phrase" (sym-class ERR_no_errors_phrase)
+"misplaced or missing terminals phrase" (sym-class ERR_no_terminals_phrase)
+"misplaced or missing rules phrase" (sym-class ERR_no_rules_phrase)
+"rule used but undefined" (sym-class Err_used_rule_but_undefined)
+"rule already defined" (sym-class Err_rule_already_defined)
+"la expression calculates an empty set" (sym-class Err_la_expr_calc_empty_set)
+"no closing brace ending rules defs"
+ (sym-class Err_no_close_brace_ending_rules_defs)
+
+"use of T outside Rules's construct"
+/@
+Thrown by |pass3.lex| grammar.
+The terminal definitions have already been parsed and
+stored in the symbol table.
+The symbol table returns the found item as a terminal rather than
+the unfound identifier.
+Cause is reference of a terminal outside of the Rules construct.
+Probably a typo by the grammar writer.
+@/
+ (sym-class Err_use_of_T_outside_Rules_construct)
+
+"not a kw to start the top/down parse construct"
+/@
+Thrown by |pass3.lex| grammar.
+Caused by an identifier that has been misplaced.
+Could be a typo
+where the item should be within the
+defining Rules Vocabulary or
+a premature ending of the Rules construct by an extra close brace
+whereby it is trying to define a rule.
+@/
+ (sym-class Err_not_kw_defining_grammar_construct)
+
+"use of Non-terminal (rule) outside Rules's construct"
+/@
+Thrown by |pass3.lex| grammar.
+The rule reference has already been
+seen by the parsed Rules construct and
+stored in the symbol table.
+The symbol table returns the found item as a rule.
+Cause is a reference to the rule outside of the Rules construct.
+Probably a typo by the grammar writer caused by the premature
+parsing of the Rules Vocabulary.
+@/
+ (sym-class Err_use_of_N_outside_Rules_construct)
+
+"misplaced or misspelt Rule or T outside of Rules defs"
+/@
+Thrown by |pass3.lex| grammar.
+It is outside of a proper grammar's construct and
+does not have a symbol table entry.
+So it could be a misspelt T or an orphanned rule outside of its
+defining Rules construct.
+@/
+ (sym-class Err_misplaced_or_misspelt_Rule_or_T)
+
+"not a Rule in chained dispatcher expr"
+/@
+Thrown by |subrule_def.lex| grammar supporting the
+new back-to-back thread call construct whereby the following procedure call is chained to
+the pushed ``return T'' of the 1st thread call.
+The term following the 1st thread call expression must be a rule whose
+contents use the \\TRAshift operator.
+@/
+(sym-class Err_not_a_Rule)
+"Empty file no grammar constructs present" (sym-class Err_empty_file)
+"term not a lhs or parallel-control-monitor kw" (sym-class Err_not_lhs_pcnrl_mntr)
+}// end of error symbol definitions
+
+
diff --git a/web/yacco2/compiler/grammars/yacco2_err_symbols.cpp b/web/yacco2/compiler/grammars/yacco2_err_symbols.cpp
new file mode 100644
index 0000000000..a51522d83b
--- /dev/null
+++ b/web/yacco2/compiler/grammars/yacco2_err_symbols.cpp
@@ -0,0 +1,665 @@
+/*
+ File: yacco2_err_symbols.cpp
+ Date and Time: Sun Apr 20 13:54:30 2014
+*/
+#include "yacco2_err_symbols.h"
+ using namespace NS_yacco2_err_symbols;
+ using namespace NS_yacco2_T_enum;
+
+ Err_nested_files_exceeded::
+ Err_nested_files_exceeded(yacco2::INT Nested_cnt,std::string& File_name)
+ T_CTOR("nested files exceeded",T_Enum::T_Err_nested_files_exceeded_,0,false,false)
+ {nested_cnt_ = Nested_cnt;file_exceeded_ += File_name.c_str();}
+ Err_no_end_of_code::
+Err_no_end_of_code()
+ T_CTOR("no end-of-code",T_Enum::T_Err_no_end_of_code_,0,false,false){}
+Err_no_cmd_lne_data::
+Err_no_cmd_lne_data()
+ T_CTOR("no cmd-lne-data",T_Enum::T_Err_no_cmd_lne_data_,0,false,false){}
+Err_no_filename::
+Err_no_filename()
+ T_CTOR("no filename",T_Enum::T_Err_no_filename_,0,false,false){}
+
+ Err_bad_filename::
+ Err_bad_filename(std::string& File_name)
+ T_CTOR("bad filename",T_Enum::T_Err_bad_filename_,0,false,false)
+ {file_name_ += File_name.c_str();}
+ Err_bad_filename::
+ Err_bad_filename(const char* File_name)
+ T_CTOR("bad filename",T_Enum::T_Err_bad_filename_,0,false,false)
+ {file_name_ += File_name;}
+ std::string* Err_bad_filename::file_name(){return &file_name_;}
+
+ Err_bad_fsmheader_filename::
+ Err_bad_fsmheader_filename(std::string& File_name)
+T_CTOR("bad filename to output grammar header",T_Enum::T_Err_bad_fsmheader_filename_,0,false,false)
+ {file_name_ += File_name.c_str();}
+ Err_bad_fsmheader_filename::
+ Err_bad_fsmheader_filename(const char* File_name)
+T_CTOR("bad filename to output grammar header",T_Enum::T_Err_bad_fsmheader_filename_,0,false,false)
+ {file_name_ += File_name;}
+ std::string* Err_bad_fsmheader_filename::file_name(){return &file_name_;}
+
+ Err_bad_fsmcpp_filename::
+ Err_bad_fsmcpp_filename(std::string& File_name)
+T_CTOR("bad filename to output cpp",T_Enum::T_Err_bad_fsmcpp_filename_,0,false,false)
+ {file_name_ += File_name.c_str();}
+ Err_bad_fsmcpp_filename::
+ Err_bad_fsmcpp_filename(const char* File_name)
+T_CTOR("bad filename to output cpp",T_Enum::T_Err_bad_fsmcpp_filename_,0,false,false)
+ {file_name_ += File_name;}
+ std::string* Err_bad_fsmcpp_filename::file_name(){return &file_name_;}
+
+ Err_bad_fsmsym_filename::
+ Err_bad_fsmsym_filename(std::string& File_name)
+T_CTOR("bad filename to output sym",T_Enum::T_Err_bad_fsmsym_filename_,0,false,false)
+ {file_name_ += File_name.c_str();}
+ Err_bad_fsmsym_filename::
+ Err_bad_fsmsym_filename(const char* File_name)
+T_CTOR("bad filename to output sym",T_Enum::T_Err_bad_fsmsym_filename_,0,false,false)
+ {file_name_ += File_name;}
+ std::string* Err_bad_fsmsym_filename::file_name(){return &file_name_;}
+
+ Err_bad_fsmtbl_filename::
+ Err_bad_fsmtbl_filename(std::string& File_name)
+T_CTOR("bad filename to output tbl",T_Enum::T_Err_bad_fsmtbl_filename_,0,false,false)
+ {file_name_ += File_name.c_str();}
+ Err_bad_fsmtbl_filename::
+ Err_bad_fsmtbl_filename(const char* File_name)
+T_CTOR("bad filename to output tbl",T_Enum::T_Err_bad_fsmtbl_filename_,0,false,false)
+ {file_name_ += File_name;}
+ std::string* Err_bad_fsmtbl_filename::file_name(){return &file_name_;}
+
+ Err_bad_enum_filename::
+ Err_bad_enum_filename(std::string& File_name)
+T_CTOR("bad filename to output enumeration header",T_Enum::T_Err_bad_enum_filename_,0,false,false)
+ {file_name_ += File_name.c_str();}
+ Err_bad_enum_filename::
+ Err_bad_enum_filename(const char* File_name)
+T_CTOR("bad filename to output enumeration header",T_Enum::T_Err_bad_enum_filename_,0,false,false)
+ {file_name_ += File_name;}
+ std::string* Err_bad_enum_filename::file_name(){return &file_name_;}
+
+ Err_bad_errors_hdrfilename::
+ Err_bad_errors_hdrfilename(std::string& File_name)
+T_CTOR("bad filename for Errors vocabulary header",T_Enum::T_Err_bad_errors_hdrfilename_,0,false,false)
+ {file_name_ += File_name.c_str();}
+ Err_bad_errors_hdrfilename::
+ Err_bad_errors_hdrfilename(const char* File_name)
+T_CTOR("bad filename for Errors vocabulary header",T_Enum::T_Err_bad_errors_hdrfilename_,0,false,false)
+ {file_name_ += File_name;}
+ std::string* Err_bad_errors_hdrfilename::file_name(){return &file_name_;}
+
+ Err_bad_errors_impfilename::
+ Err_bad_errors_impfilename(std::string& File_name)
+T_CTOR("bad filename for Errors vocabulary implementation",T_Enum::T_Err_bad_errors_impfilename_,0,false,false)
+ {file_name_ += File_name.c_str();}
+ Err_bad_errors_impfilename::
+ Err_bad_errors_impfilename(const char* File_name)
+T_CTOR("bad filename for Errors vocabulary implementation",T_Enum::T_Err_bad_errors_impfilename_,0,false,false)
+ {file_name_ += File_name;}
+ std::string* Err_bad_errors_impfilename::file_name(){return &file_name_;}
+ Err_bad_cmd_lne_opt::
+Err_bad_cmd_lne_opt()
+ T_CTOR("bad cmd-opt",T_Enum::T_Err_bad_cmd_lne_opt_,0,false,false){}
+Err_bad_int_no::
+Err_bad_int_no()
+ T_CTOR("bad int-no",T_Enum::T_Err_bad_int_no_,0,false,false){}
+Err_bad_int_no_range::
+Err_bad_int_no_range()
+ T_CTOR("bad int-no range",T_Enum::T_Err_bad_int_no_range_,0,false,false){}
+Err_no_int_present::
+Err_no_int_present()
+ T_CTOR("no int present",T_Enum::T_Err_no_int_present_,0,false,false){}
+Err_bad_eos::
+Err_bad_eos()
+ T_CTOR("bad eos",T_Enum::T_Err_bad_eos_,0,false,false){}
+Err_bad_esc::
+Err_bad_esc()
+ T_CTOR("bad esc",T_Enum::T_Err_bad_esc_,0,false,false){}
+Err_comment_overrun::
+Err_comment_overrun()
+ T_CTOR("comment-overrun",T_Enum::T_Err_comment_overrun_,0,false,false){}
+
+ Err_bad_char::
+ Err_bad_char(CAbs_lr1_sym* Bad_char)
+T_CTOR("bad char",T_Enum::T_Err_bad_char_,&dtor_Err_bad_char,false,false)
+ {bad_char_ = Bad_char;}
+ yacco2::CAbs_lr1_sym* Err_bad_char::bad_char()const{return bad_char_;}
+ void Err_bad_char::zero_out_bad_char(){bad_char_ = 0;}
+ void Err_bad_char::dtor_Err_bad_char(yacco2::VOIDP This,yacco2::VOIDP P){
+ Err_bad_char* R = (Err_bad_char*)(This);
+
+ if(R->bad_char_!=0)
+ delete R->bad_char();
+
+}
+
+ Err_bad_univ_seq::
+ Err_bad_univ_seq(unsigned long Bad_univ_seq)
+ T_CTOR("bad univ seq",T_Enum::T_Err_bad_univ_seq_,0,false,false)
+ {bad_univ_seq_ = Bad_univ_seq;
+ }
+ unsigned long
+ Err_bad_univ_seq::bad_univ_seq()const{return bad_univ_seq_;}
+ Err_improper_closing_of_rules::
+Err_improper_closing_of_rules()
+ T_CTOR("improper closing of rules construct",T_Enum::T_Err_improper_closing_of_rules_,0,false,false){}
+Err_no_identifier_present::
+Err_no_identifier_present()
+ T_CTOR("no identifier present",T_Enum::T_Err_no_identifier_present_,0,false,false){}
+Err_no_directive_present::
+Err_no_directive_present()
+ T_CTOR("no directive present",T_Enum::T_Err_no_directive_present_,0,false,false){}
+Err_duplicate_directive::
+Err_duplicate_directive()
+ T_CTOR("duplicate directive",T_Enum::T_Err_duplicate_directive_,0,false,false){}
+Err_no_syntax_code_present::
+Err_no_syntax_code_present()
+ T_CTOR("no syntax-code present",T_Enum::T_Err_no_syntax_code_present_,0,false,false){}
+Err_no_open_parenthesis::
+Err_no_open_parenthesis()
+ T_CTOR("no open-parenthesis",T_Enum::T_Err_no_open_parenthesis_,0,false,false){}
+Err_no_close_parenthesis::
+Err_no_close_parenthesis()
+ T_CTOR("no close-parenthesis",T_Enum::T_Err_no_close_parenthesis_,0,false,false){}
+Err_no_fsm_id_present::
+Err_no_fsm_id_present()
+ T_CTOR("no fsm-id-present",T_Enum::T_Err_no_fsm_id_present_,0,false,false){}
+Err_no_fsm_id_string::
+Err_no_fsm_id_string()
+ T_CTOR("no fsm-id-string present",T_Enum::T_Err_no_fsm_id_string_,0,false,false){}
+Err_no_fsm_filename_present::
+Err_no_fsm_filename_present()
+ T_CTOR("no fsm-filename present",T_Enum::T_Err_no_fsm_filename_present_,0,false,false){}
+Err_no_fsm_filename_id_present::
+Err_no_fsm_filename_id_present()
+ T_CTOR("no fsm-filename id present",T_Enum::T_Err_no_fsm_filename_id_present_,0,false,false){}
+Err_no_comma_present::
+Err_no_comma_present()
+ T_CTOR("no comma present",T_Enum::T_Err_no_comma_present_,0,false,false){}
+Err_no_fsm_namespace_present::
+Err_no_fsm_namespace_present()
+ T_CTOR("no fsm-namespace present",T_Enum::T_Err_no_fsm_namespace_present_,0,false,false){}
+Err_no_fsm_namespace_id_present::
+Err_no_fsm_namespace_id_present()
+ T_CTOR("no fsm-namespace id present",T_Enum::T_Err_no_fsm_namespace_id_present_,0,false,false){}
+Err_no_fsm_class_present::
+Err_no_fsm_class_present()
+ T_CTOR("no fsm-class present",T_Enum::T_Err_no_fsm_class_present_,0,false,false){}
+Err_no_fsm_version_present::
+Err_no_fsm_version_present()
+ T_CTOR("no fsm-version present",T_Enum::T_Err_no_fsm_version_present_,0,false,false){}
+Err_no_fsm_version_string::
+Err_no_fsm_version_string()
+ T_CTOR("no fsm-version string present",T_Enum::T_Err_no_fsm_version_string_,0,false,false){}
+Err_no_fsm_date_present::
+Err_no_fsm_date_present()
+ T_CTOR("no fsm-date present",T_Enum::T_Err_no_fsm_date_present_,0,false,false){}
+Err_no_fsm_date_string::
+Err_no_fsm_date_string()
+ T_CTOR("no fsm-date string present",T_Enum::T_Err_no_fsm_date_string_,0,false,false){}
+Err_no_fsm_debug_present::
+Err_no_fsm_debug_present()
+ T_CTOR("no fsm-debug present",T_Enum::T_Err_no_fsm_debug_present_,0,false,false){}
+Err_no_fsm_debug_string::
+Err_no_fsm_debug_string()
+ T_CTOR("no fsm-debug string present",T_Enum::T_Err_no_fsm_debug_string_,0,false,false){}
+Err_no_fsm_comments_present::
+Err_no_fsm_comments_present()
+ T_CTOR("no fsm-comments present",T_Enum::T_Err_no_fsm_comments_present_,0,false,false){}
+Err_no_fsm_comments_string::
+Err_no_fsm_comments_string()
+ T_CTOR("no fsm-comments string present",T_Enum::T_Err_no_fsm_comments_string_,0,false,false){}
+Err_fsm_debug_string_not_true_or_false::
+Err_fsm_debug_string_not_true_or_false()
+ T_CTOR("invalid fsm-debug value",T_Enum::T_Err_fsm_debug_string_not_true_or_false_,0,false,false){}
+Err_no_pp_thread_function_present::
+Err_no_pp_thread_function_present()
+ T_CTOR("no parallel-thread-function",T_Enum::T_Err_no_pp_thread_function_present_,0,false,false){}
+Err_no_pp_ctrl_mntor_kw_present::
+Err_no_pp_ctrl_mntor_kw_present()
+ T_CTOR("no parallel-control-monitor",T_Enum::T_Err_no_pp_ctrl_mntor_kw_present_,0,false,false){}
+Err_no_pp_fnct_id_present::
+Err_no_pp_fnct_id_present()
+ T_CTOR("no parallel thread function",T_Enum::T_Err_no_pp_fnct_id_present_,0,false,false){}
+Err_no_pp_bndry_present::
+Err_no_pp_bndry_present()
+ T_CTOR("no parallel-la-boundary",T_Enum::T_Err_no_pp_bndry_present_,0,false,false){}
+Err_no_pp_la_bndary_expr_present::
+Err_no_pp_la_bndary_expr_present()
+ T_CTOR("no parallel-la-boundary-expr",T_Enum::T_Err_no_pp_la_bndary_expr_present_,0,false,false){}
+Err_no_syntax_code_end_present::
+Err_no_syntax_code_end_present()
+ T_CTOR("no ***",T_Enum::T_Err_no_syntax_code_end_present_,0,false,false){}
+Err_no_pp_code_present::
+Err_no_pp_code_present()
+ T_CTOR("no parallel-code",T_Enum::T_Err_no_pp_code_present_,0,false,false){}
+Err_no_pp_code_stc_present::
+Err_no_pp_code_stc_present()
+ T_CTOR("no parallel-code-syntax-code",T_Enum::T_Err_no_pp_code_stc_present_,0,false,false){}
+Err_not_arbitration_code_kw::
+Err_not_arbitration_code_kw()
+ T_CTOR("not an arbitration-code keyword",T_Enum::T_Err_not_arbitration_code_kw_,0,false,false){}
+Err_no_open_brace::
+Err_no_open_brace()
+ T_CTOR("no open-brace",T_Enum::T_Err_no_open_brace_,0,false,false){}
+Err_no_close_brace::
+Err_no_close_brace()
+ T_CTOR("no close-brace",T_Enum::T_Err_no_close_brace_,0,false,false){}
+Err_no_constant_defs_present::
+Err_no_constant_defs_present()
+ T_CTOR("no constant-defs-directive present",T_Enum::T_Err_no_constant_defs_present_,0,false,false){}
+Err_no_filename_present::
+Err_no_filename_present()
+ T_CTOR("no file-name present",T_Enum::T_Err_no_filename_present_,0,false,false){}
+Err_no_filename_id_present::
+Err_no_filename_id_present()
+ T_CTOR("no file-name-id present",T_Enum::T_Err_no_filename_id_present_,0,false,false){}
+Err_no_namespace_present::
+Err_no_namespace_present()
+ T_CTOR("no name-space present",T_Enum::T_Err_no_namespace_present_,0,false,false){}
+Err_no_namespace_id_present::
+Err_no_namespace_id_present()
+ T_CTOR("no name-space-id present",T_Enum::T_Err_no_namespace_id_present_,0,false,false){}
+Err_no_kdefs_code_present::
+Err_no_kdefs_code_present()
+ T_CTOR("no constant-defs-code present",T_Enum::T_Err_no_kdefs_code_present_,0,false,false){}
+Err_no_kdefs_kw_present::
+Err_no_kdefs_kw_present()
+ T_CTOR("no constant-defs keyword present",T_Enum::T_Err_no_kdefs_kw_present_,0,false,false){}
+Err_no_tdef_code_present::
+Err_no_tdef_code_present()
+ T_CTOR("no terminal-def-code present",T_Enum::T_Err_no_tdef_code_present_,0,false,false){}
+Err_no_sym_defs_present::
+Err_no_sym_defs_present()
+ T_CTOR("no symbol definition present",T_Enum::T_Err_no_sym_defs_present_,0,false,false){}
+Err_no_terminal_key_present::
+Err_no_terminal_key_present()
+ T_CTOR("no key-value present in definition",T_Enum::T_Err_no_terminal_key_present_,0,false,false){}
+Err_dup_entry_in_alphabet::
+Err_dup_entry_in_alphabet()
+ T_CTOR("duplicate-entry in alphabet",T_Enum::T_Err_dup_entry_in_alphabet_,0,false,false){}
+Err_already_defined_AB::
+Err_already_defined_AB()
+ T_CTOR("already defined AB tag",T_Enum::T_Err_already_defined_AB_,0,false,false){}
+Err_already_defined_AD::
+Err_already_defined_AD()
+ T_CTOR("already defined AD tag",T_Enum::T_Err_already_defined_AD_,0,false,false){}
+Err_improper_directive::
+Err_improper_directive()
+ T_CTOR("improper directive",T_Enum::T_Err_improper_directive_,0,false,false){}
+Err_no_sym_class_present::
+Err_no_sym_class_present()
+ T_CTOR("no sym-class present",T_Enum::T_Err_no_sym_class_present_,0,false,false){}
+Err_no_sym_class_id_present::
+Err_no_sym_class_id_present()
+ T_CTOR("no sym-class id present",T_Enum::T_Err_no_sym_class_id_present_,0,false,false){}
+Err_zero_len_sym::
+Err_zero_len_sym()
+ T_CTOR("zero len symbol",T_Enum::T_Err_zero_len_sym_,0,false,false){}
+Err_sym_tbl_full::
+Err_sym_tbl_full()
+ T_CTOR("stbl full",T_Enum::T_Err_sym_tbl_full_,0,false,false){}
+Err_sym_tbl_char_pool_full::
+Err_sym_tbl_char_pool_full()
+ T_CTOR("stbl char-pool full",T_Enum::T_Err_sym_tbl_char_pool_full_,0,false,false){}
+Err_dup_entry_in_sym_table::
+Err_dup_entry_in_sym_table()
+ T_CTOR("dup-entry in sym-table",T_Enum::T_Err_dup_entry_in_sym_table_,0,false,false){}
+Err_subscript_out_of_range::
+Err_subscript_out_of_range()
+ T_CTOR("subscript out-of-range",T_Enum::T_Err_subscript_out_of_range_,0,false,false){}
+Err_sym_tbl_nested_scope_stk_overflow::
+Err_sym_tbl_nested_scope_stk_overflow()
+ T_CTOR("stbl scope-stk overflow",T_Enum::T_Err_sym_tbl_nested_scope_stk_overflow_,0,false,false){}
+Err_sym_tbl_nested_scope_stk_underflow::
+Err_sym_tbl_nested_scope_stk_underflow()
+ T_CTOR("stbl scope-stk underflow",T_Enum::T_Err_sym_tbl_nested_scope_stk_underflow_,0,false,false){}
+Err_sym_tbl_context_buf_overflow::
+Err_sym_tbl_context_buf_overflow()
+ T_CTOR("stbl context-buf-overflow",T_Enum::T_Err_sym_tbl_context_buf_overflow_,0,false,false){}
+Err_report_card_ptr_0::
+Err_report_card_ptr_0()
+ T_CTOR("report-card-ptr-0",T_Enum::T_Err_report_card_ptr_0_,0,false,false){}
+Err_cannot_define_term_after_sufx_dir::
+Err_cannot_define_term_after_sufx_dir()
+ T_CTOR("bad pos of t def",T_Enum::T_Err_cannot_define_term_after_sufx_dir_,0,false,false){}
+Err_dup_sufx_directive::
+Err_dup_sufx_directive()
+ T_CTOR("dup ? sufx directive",T_Enum::T_Err_dup_sufx_directive_,0,false,false){}
+Err_terminals_refs_def_after_terminals::
+Err_terminals_refs_def_after_terminals()
+ T_CTOR("bad pos of terminals-refs",T_Enum::T_Err_terminals_refs_def_after_terminals_,0,false,false){}
+Err_terminals_refs_dup_def::
+Err_terminals_refs_dup_def()
+ T_CTOR("terminals-refs duplicate",T_Enum::T_Err_terminals_refs_dup_def_,0,false,false){}
+Err_no_rule_name_present::
+Err_no_rule_name_present()
+ T_CTOR("no rule name present",T_Enum::T_Err_no_rule_name_present_,0,false,false){}
+Err_no_sub_rule_present::
+Err_no_sub_rule_present()
+ T_CTOR("no sub rule present",T_Enum::T_Err_no_sub_rule_present_,0,false,false){}
+Err_subrule_use_undefined_T::
+Err_subrule_use_undefined_T()
+ T_CTOR("undefined terminal in subrule",T_Enum::T_Err_subrule_use_undefined_T_,0,false,false){}
+Err_stbl_entry_unknown::
+Err_stbl_entry_unknown()
+ T_CTOR("unknown symbol type in stbl",T_Enum::T_Err_stbl_entry_unknown_,0,false,false){}
+Err_subrule_overrun::
+Err_subrule_overrun()
+ T_CTOR("subrule overrun",T_Enum::T_Err_subrule_overrun_,0,false,false){}
+Err_stble_has_entry_but_not_a_rule::
+Err_stble_has_entry_but_not_a_rule()
+ T_CTOR("stbl has entry but not a rule",T_Enum::T_Err_stble_has_entry_but_not_a_rule_,0,false,false){}
+Err_file_of_T_alphabet_kw_not_present::
+Err_file_of_T_alphabet_kw_not_present()
+ T_CTOR("no file-of-T-alphabet",T_Enum::T_Err_file_of_T_alphabet_kw_not_present_,0,false,false){}
+Err_emitfile_kw_not_present::
+Err_emitfile_kw_not_present()
+ T_CTOR("emitfile kw not present",T_Enum::T_Err_emitfile_kw_not_present_,0,false,false){}
+Err_preamble_kw_not_present::
+Err_preamble_kw_not_present()
+ T_CTOR("preamble kw not present",T_Enum::T_Err_preamble_kw_not_present_,0,false,false){}
+Err_preamble_srce_code_not_present::
+Err_preamble_srce_code_not_present()
+ T_CTOR("no preamble source code",T_Enum::T_Err_preamble_srce_code_not_present_,0,false,false){}
+Err_end_preamble_kw_not_present::
+Err_end_preamble_kw_not_present()
+ T_CTOR("no end-preamble present",T_Enum::T_Err_end_preamble_kw_not_present_,0,false,false){}
+Err_cmd_line_chaffe::
+Err_cmd_line_chaffe()
+ T_CTOR("command line chaffe",T_Enum::T_Err_cmd_line_chaffe_,0,false,false){}
+Err_T_alphabet_kw_not_present::
+Err_T_alphabet_kw_not_present()
+ T_CTOR("T-alphabet kw not present",T_Enum::T_Err_T_alphabet_kw_not_present_,0,false,false){}
+Err_T_alphabet_file_not_present::
+Err_T_alphabet_file_not_present()
+ T_CTOR("T-alphabet file not present",T_Enum::T_Err_T_alphabet_file_not_present_,0,false,false){}
+Err_end_T_alphabet_kw_not_present::
+Err_end_T_alphabet_kw_not_present()
+ T_CTOR("no end-T-alphabet present",T_Enum::T_Err_end_T_alphabet_kw_not_present_,0,false,false){}
+Err_no_terminals_in_T_alphabet_list::
+Err_no_terminals_in_T_alphabet_list()
+ T_CTOR("no T in T-alphabet list",T_Enum::T_Err_no_terminals_in_T_alphabet_list_,0,false,false){}
+Err_rotten_chr_in_T_alphabet::
+Err_rotten_chr_in_T_alphabet()
+ T_CTOR("rotten chr in T-alphabet",T_Enum::T_Err_rotten_chr_in_T_alphabet_,0,false,false){}
+Err_transitive_kw_not_present::
+Err_transitive_kw_not_present()
+ T_CTOR("no transitive present",T_Enum::T_Err_transitive_kw_not_present_,0,false,false){}
+Err_grammar_name_kw_not_present::
+Err_grammar_name_kw_not_present()
+ T_CTOR("no grammar-name present",T_Enum::T_Err_grammar_name_kw_not_present_,0,false,false){}
+Err_namespace_kw_not_present::
+Err_namespace_kw_not_present()
+ T_CTOR("no name-space",T_Enum::T_Err_namespace_kw_not_present_,0,false,false){}
+Err_filename_kw_not_present::
+Err_filename_kw_not_present()
+ T_CTOR("no file-name kw present",T_Enum::T_Err_filename_kw_not_present_,0,false,false){}
+Err_threadname_kw_not_present::
+Err_threadname_kw_not_present()
+ T_CTOR("no thread-name present",T_Enum::T_Err_threadname_kw_not_present_,0,false,false){}
+Err_monolithic_kw_not_present::
+Err_monolithic_kw_not_present()
+ T_CTOR("no monolithic present",T_Enum::T_Err_monolithic_kw_not_present_,0,false,false){}
+Err_no_of_T_kw_not_present::
+Err_no_of_T_kw_not_present()
+ T_CTOR("no no-of-T present",T_Enum::T_Err_no_of_T_kw_not_present_,0,false,false){}
+Err_list_of_terminals_kw_not_present::
+Err_list_of_terminals_kw_not_present()
+ T_CTOR("no list-of-native-terminals",T_Enum::T_Err_list_of_terminals_kw_not_present_,0,false,false){}
+Err_no_list_of_trans_threads_kw::
+Err_no_list_of_trans_threads_kw()
+ T_CTOR("no list-of-transit...",T_Enum::T_Err_no_list_of_trans_threads_kw_,0,false,false){}
+Err_no_terminals_present_in_T_alphabet::
+Err_no_terminals_present_in_T_alphabet()
+ T_CTOR("no Ts in T-alphabet",T_Enum::T_Err_no_terminals_present_in_T_alphabet_,0,false,false){}
+Err_transitive_value_bad::
+Err_transitive_value_bad()
+ T_CTOR("linker's transitive value not n or y",T_Enum::T_Err_transitive_value_bad_,0,false,false){}
+Err_monolithic_value_bad::
+Err_monolithic_value_bad()
+ T_CTOR("linker's monolithic value not n or y",T_Enum::T_Err_monolithic_value_bad_,0,false,false){}
+Err_grammar_name_value_not_present::
+Err_grammar_name_value_not_present()
+ T_CTOR("no grammar-name value",T_Enum::T_Err_grammar_name_value_not_present_,0,false,false){}
+Err_namespace_value_not_present::
+Err_namespace_value_not_present()
+ T_CTOR("no name-space value",T_Enum::T_Err_namespace_value_not_present_,0,false,false){}
+Err_threadname_value_not_present::
+Err_threadname_value_not_present()
+ T_CTOR("no thread-name value",T_Enum::T_Err_threadname_value_not_present_,0,false,false){}
+Err_filename_value_not_present::
+Err_filename_value_not_present()
+ T_CTOR("no file-name value",T_Enum::T_Err_filename_value_not_present_,0,false,false){}
+Err_no_of_T_value_not_present::
+Err_no_of_T_value_not_present()
+ T_CTOR("no-of-T value not present",T_Enum::T_Err_no_of_T_value_not_present_,0,false,false){}
+Err_no_of_terminals_not_present::
+Err_no_of_terminals_not_present()
+ T_CTOR("no# in list-of-native-term...",T_Enum::T_Err_no_of_terminals_not_present_,0,false,false){}
+Err_end_list_native_T_kw_not_present::
+Err_end_list_native_T_kw_not_present()
+ T_CTOR("no end-list-of-native...",T_Enum::T_Err_end_list_native_T_kw_not_present_,0,false,false){}
+Err_end_list_of_transitive_threads_kw_not_present::
+Err_end_list_of_transitive_threads_kw_not_present()
+ T_CTOR("no end-list-of-trans...",T_Enum::T_Err_end_list_of_transitive_threads_kw_not_present_,0,false,false){}
+
+ Err_no_of_native_Ts_in_list_not_equal::
+ Err_no_of_native_Ts_in_list_not_equal(unsigned long No)
+T_CTOR("no terminals in list not equal, chk items in list",T_Enum::T_Err_no_of_native_Ts_in_list_not_equal_,0,false,false)
+ { no_ = No;}
+ unsigned long
+ Err_no_of_native_Ts_in_list_not_equal::no()const{return no_;}
+
+ Err_no_of_threads_in_list_not_equal::
+ Err_no_of_threads_in_list_not_equal(unsigned long No)
+T_CTOR("no threads in list not equal, chk list",T_Enum::T_Err_no_of_threads_in_list_not_equal_,0,false,false)
+ { no_ = No;}
+ unsigned long
+ Err_no_of_threads_in_list_not_equal::no()const{return no_;}
+
+ Err_thread_refed_but_not_defined::
+ Err_thread_refed_but_not_defined(CAbs_lr1_sym* Th_id)
+T_CTOR("thread xrefed, but not defed",T_Enum::T_Err_thread_refed_but_not_defined_,0,false,false)
+ { th_id_ = Th_id;}
+yacco2::CAbs_lr1_sym* Err_thread_refed_but_not_defined::th_id(){return th_id_;};
+ Err_bad_T_in_list::
+Err_bad_T_in_list()
+ T_CTOR("T in list not defined in T-alphabet",T_Enum::T_Err_bad_T_in_list_,0,false,false){}
+Err_bad_th_in_list::
+Err_bad_th_in_list()
+ T_CTOR("transitive list thread not defined by fsc files",T_Enum::T_Err_bad_th_in_list_,0,false,false){}
+Err_already_defined_in_fsc_file::
+Err_already_defined_in_fsc_file()
+ T_CTOR("thread defined by another fsc file",T_Enum::T_Err_already_defined_in_fsc_file_,0,false,false){}
+Err_bad_thread_subscript::
+Err_bad_thread_subscript()
+ T_CTOR("thread in stbl but subscript badly set",T_Enum::T_Err_bad_thread_subscript_,0,false,false){}
+Err_not_a_keyword::
+Err_not_a_keyword()
+ T_CTOR("token found in stbl but not a kw",T_Enum::T_Err_not_a_keyword_,0,false,false){}
+Err_no_of_threads_not_present::
+Err_no_of_threads_not_present()
+ T_CTOR("no# in list-of-trans...",T_Enum::T_Err_no_of_threads_not_present_,0,false,false){}
+Err_bad_T_alphabet::
+Err_bad_T_alphabet()
+ T_CTOR("re-compile grammar: bad T-alphabet",T_Enum::T_Err_bad_T_alphabet_,0,false,false){}
+Err_fsc_file_does_not_exist::
+Err_fsc_file_does_not_exist()
+ T_CTOR("fsc file does not exist",T_Enum::T_Err_fsc_file_does_not_exist_,0,false,false){}
+Err_filename_file_does_not_exist::
+Err_filename_file_does_not_exist()
+ T_CTOR("file-name file does not exist",T_Enum::T_Err_filename_file_does_not_exist_,0,false,false){}
+Err_T_alphabet_file_does_not_exist::
+Err_T_alphabet_file_does_not_exist()
+ T_CTOR("T-alphabet file does not exist",T_Enum::T_Err_T_alphabet_file_does_not_exist_,0,false,false){}
+Err_emitfile_file_does_not_exist::
+Err_emitfile_file_does_not_exist()
+ T_CTOR("emitfile file does not exist",T_Enum::T_Err_emitfile_file_does_not_exist_,0,false,false){}
+Err_emitfile_file_not_present::
+Err_emitfile_file_not_present()
+ T_CTOR("emitfile file not present",T_Enum::T_Err_emitfile_file_not_present_,0,false,false){}
+Err_fsc_cntl_file_not_present::
+Err_fsc_cntl_file_not_present()
+ T_CTOR("fsc file not present",T_Enum::T_Err_fsc_cntl_file_not_present_,0,false,false){}
+Err_file_of_T_alphabet_not_present::
+Err_file_of_T_alphabet_not_present()
+ T_CTOR("file of T-alphabet not present",T_Enum::T_Err_file_of_T_alphabet_not_present_,0,false,false){}
+Err_epsilon_pass_thru::
+Err_epsilon_pass_thru()
+ T_CTOR("O2 epsilon badly gened: 0 items in fsc lists",T_Enum::T_Err_epsilon_pass_thru_,0,false,false){}
+Err_epsilon_pass_thru_no_Ts::
+Err_epsilon_pass_thru_no_Ts()
+ T_CTOR("O2 epsilon: T present, but no T list",T_Enum::T_Err_epsilon_pass_thru_no_Ts_,0,false,false){}
+Err_rule_not_in_stbl::
+Err_rule_not_in_stbl()
+ T_CTOR("rule not found in stbl",T_Enum::T_Err_rule_not_in_stbl_,0,false,false){}
+Err_T_not_in_stbl::
+Err_T_not_in_stbl()
+ T_CTOR("T not found in stbl",T_Enum::T_Err_T_not_in_stbl_,0,false,false){}
+Err_bad_directive::
+Err_bad_directive()
+ T_CTOR("bad directive",T_Enum::T_Err_bad_directive_,0,false,false){}
+Err_bad_term_in_la_expr::
+Err_bad_term_in_la_expr()
+ T_CTOR("bad term in la expr",T_Enum::T_Err_bad_term_in_la_expr_,0,false,false){}
+Err_empty_set_removal_in_la_expr::
+Err_empty_set_removal_in_la_expr()
+ T_CTOR("removal of term against empty set in la expr",T_Enum::T_Err_empty_set_removal_in_la_expr_,0,false,false){}
+Err_bad_operator_in_la_expr::
+Err_bad_operator_in_la_expr()
+ T_CTOR("bad operator la expr: not a + or -",T_Enum::T_Err_bad_operator_in_la_expr_,0,false,false){}
+Err_not_a_lhs_kw::
+Err_not_a_lhs_kw()
+ T_CTOR("not a lhs kw",T_Enum::T_Err_not_a_lhs_kw_,0,false,false){}
+Err_pp_la_boundary_attribute_not_fnd::
+Err_pp_la_boundary_attribute_not_fnd()
+ T_CTOR("no parallel-la-bndary expr",T_Enum::T_Err_pp_la_boundary_attribute_not_fnd_,0,false,false){}
+Err_already_processed_fsm_phase::
+Err_already_processed_fsm_phase()
+ T_CTOR("duplicate fsm phrase",T_Enum::T_Err_already_processed_fsm_phase_,0,false,false){}
+Err_already_processed_pp_phase::
+Err_already_processed_pp_phase()
+ T_CTOR("duplicate parallel-parse phrase",T_Enum::T_Err_already_processed_pp_phase_,0,false,false){}
+Err_already_processed_T_enum_phase::
+Err_already_processed_T_enum_phase()
+ T_CTOR("duplicate T_enum phrase",T_Enum::T_Err_already_processed_T_enum_phase_,0,false,false){}
+Err_already_processed_error_phase::
+Err_already_processed_error_phase()
+ T_CTOR("duplicate error phrase",T_Enum::T_Err_already_processed_error_phase_,0,false,false){}
+Err_already_processed_rc_phase::
+Err_already_processed_rc_phase()
+ T_CTOR("duplicate raw character phrase",T_Enum::T_Err_already_processed_rc_phase_,0,false,false){}
+Err_already_processed_lrk_phase::
+Err_already_processed_lrk_phase()
+ T_CTOR("duplicate lrk phrase",T_Enum::T_Err_already_processed_lrk_phase_,0,false,false){}
+Err_already_processed_T_phase::
+Err_already_processed_T_phase()
+ T_CTOR("duplicate terminal phrase",T_Enum::T_Err_already_processed_T_phase_,0,false,false){}
+Err_already_processed_rule_phase::
+Err_already_processed_rule_phase()
+ T_CTOR("duplicate rule phrase",T_Enum::T_Err_already_processed_rule_phase_,0,false,false){}
+Err_not_T_for_rtned_token_from_th::
+Err_not_T_for_rtned_token_from_th()
+ T_CTOR("T not returned from a thread",T_Enum::T_Err_not_T_for_rtned_token_from_th_,0,false,false){}
+Err_not_id_for_ns_in_th_stmt::
+Err_not_id_for_ns_in_th_stmt()
+ T_CTOR("not a namespace id in thread expr",T_Enum::T_Err_not_id_for_ns_in_th_stmt_,0,false,false){}
+Err_not_id_for_th_name_in_th_stmt::
+Err_not_id_for_th_name_in_th_stmt()
+ T_CTOR("not a thread name id in expr",T_Enum::T_Err_not_id_for_th_name_in_th_stmt_,0,false,false){}
+Err_bad_th_qualifier::
+Err_bad_th_qualifier()
+ T_CTOR("bad thread expr",T_Enum::T_Err_bad_th_qualifier_,0,false,false){}
+Err_not_dbl_colon_in_th_stmt::
+Err_not_dbl_colon_in_th_stmt()
+ T_CTOR("not :: in thread expr",T_Enum::T_Err_not_dbl_colon_in_th_stmt_,0,false,false){}
+Err_not_T_or_R_in_subrule_expr::
+Err_not_T_or_R_in_subrule_expr()
+ T_CTOR("bad term in subrule expr",T_Enum::T_Err_not_T_or_R_in_subrule_expr_,0,false,false){}
+Err_not_T_or_R_or_eos_in_subrule_expr::
+Err_not_T_or_R_or_eos_in_subrule_expr()
+ T_CTOR("? ended subrule expr",T_Enum::T_Err_not_T_or_R_or_eos_in_subrule_expr_,0,false,false){}
+Err_not_eos_in_subrule_expr::
+Err_not_eos_in_subrule_expr()
+ T_CTOR("not an eosr in subrule expr",T_Enum::T_Err_not_eos_in_subrule_expr_,0,false,false){}
+Err_invalid_logical_name::
+Err_invalid_logical_name()
+ T_CTOR("invalid logical name",T_Enum::T_Err_invalid_logical_name_,0,false,false){}
+Err_invalid_logical_value::
+Err_invalid_logical_value()
+ T_CTOR("invalid logical value",T_Enum::T_Err_invalid_logical_value_,0,false,false){}
+Err_duplicate_logical_name::
+Err_duplicate_logical_name()
+ T_CTOR("duplicate logical name",T_Enum::T_Err_duplicate_logical_name_,0,false,false){}
+Err_missing_terminals_refs_kw::
+Err_missing_terminals_refs_kw()
+ T_CTOR("missing terminals-refs kw",T_Enum::T_Err_missing_terminals_refs_kw_,0,false,false){}
+Err_missing_terminals_sufx_kw::
+Err_missing_terminals_sufx_kw()
+ T_CTOR("missing terminals-sufx kw",T_Enum::T_Err_missing_terminals_sufx_kw_,0,false,false){}
+Err_not_a_terminal_definition::
+Err_not_a_terminal_definition()
+ T_CTOR("not a terminal definition",T_Enum::T_Err_not_a_terminal_definition_,0,false,false){}
+Err_missing_lrk_sufx_kw::
+Err_missing_lrk_sufx_kw()
+ T_CTOR("missing lrk-sufx kw",T_Enum::T_Err_missing_lrk_sufx_kw_,0,false,false){}
+ERR_sick_grammar::
+ERR_sick_grammar()
+ T_CTOR("rule does not gen T strings - sick grammar",T_Enum::T_ERR_sick_grammar_,0,false,false){}
+ERR_no_fsm_phrase::
+ERR_no_fsm_phrase()
+ T_CTOR("misplaced or missing fsm phrase",T_Enum::T_ERR_no_fsm_phrase_,0,false,false){}
+ERR_no_T_enum_phrase::
+ERR_no_T_enum_phrase()
+ T_CTOR("misplaced or missing T enumeration phrase",T_Enum::T_ERR_no_T_enum_phrase_,0,false,false){}
+ERR_no_lrk_phrase::
+ERR_no_lrk_phrase()
+ T_CTOR("misplaced or missing lrk phrase",T_Enum::T_ERR_no_lrk_phrase_,0,false,false){}
+ERR_no_rc_phrase::
+ERR_no_rc_phrase()
+ T_CTOR("misplaced or missing rc phrase",T_Enum::T_ERR_no_rc_phrase_,0,false,false){}
+ERR_no_errors_phrase::
+ERR_no_errors_phrase()
+ T_CTOR("misplaced or missing errors phrase",T_Enum::T_ERR_no_errors_phrase_,0,false,false){}
+ERR_no_terminals_phrase::
+ERR_no_terminals_phrase()
+ T_CTOR("misplaced or missing terminals phrase",T_Enum::T_ERR_no_terminals_phrase_,0,false,false){}
+ERR_no_rules_phrase::
+ERR_no_rules_phrase()
+ T_CTOR("misplaced or missing rules phrase",T_Enum::T_ERR_no_rules_phrase_,0,false,false){}
+Err_used_rule_but_undefined::
+Err_used_rule_but_undefined()
+ T_CTOR("rule used but undefined",T_Enum::T_Err_used_rule_but_undefined_,0,false,false){}
+Err_rule_already_defined::
+Err_rule_already_defined()
+ T_CTOR("rule already defined",T_Enum::T_Err_rule_already_defined_,0,false,false){}
+Err_la_expr_calc_empty_set::
+Err_la_expr_calc_empty_set()
+ T_CTOR("la expression calculates an empty set",T_Enum::T_Err_la_expr_calc_empty_set_,0,false,false){}
+Err_no_close_brace_ending_rules_defs::
+Err_no_close_brace_ending_rules_defs()
+ T_CTOR("no closing brace ending rules defs",T_Enum::T_Err_no_close_brace_ending_rules_defs_,0,false,false){}
+Err_use_of_T_outside_Rules_construct::
+Err_use_of_T_outside_Rules_construct()
+ T_CTOR("use of T outside Rules's construct",T_Enum::T_Err_use_of_T_outside_Rules_construct_,0,false,false){}
+Err_not_kw_defining_grammar_construct::
+Err_not_kw_defining_grammar_construct()
+ T_CTOR("not a kw to start the top/down parse construct",T_Enum::T_Err_not_kw_defining_grammar_construct_,0,false,false){}
+Err_use_of_N_outside_Rules_construct::
+Err_use_of_N_outside_Rules_construct()
+ T_CTOR("use of Non-terminal (rule) outside Rules's construct",T_Enum::T_Err_use_of_N_outside_Rules_construct_,0,false,false){}
+Err_misplaced_or_misspelt_Rule_or_T::
+Err_misplaced_or_misspelt_Rule_or_T()
+ T_CTOR("misplaced or misspelt Rule or T outside of Rules defs",T_Enum::T_Err_misplaced_or_misspelt_Rule_or_T_,0,false,false){}
+Err_not_a_Rule::
+Err_not_a_Rule()
+ T_CTOR("not a Rule in chained dispatcher expr",T_Enum::T_Err_not_a_Rule_,0,false,false){}
+Err_empty_file::
+Err_empty_file()
+ T_CTOR("Empty file no grammar constructs present",T_Enum::T_Err_empty_file_,0,false,false){}
+Err_not_lhs_pcnrl_mntr::
+Err_not_lhs_pcnrl_mntr()
+ T_CTOR("term not a lhs or parallel-control-monitor kw",T_Enum::T_Err_not_lhs_pcnrl_mntr_,0,false,false){}
diff --git a/web/yacco2/compiler/grammars/yacco2_err_symbols.h b/web/yacco2/compiler/grammars/yacco2_err_symbols.h
new file mode 100644
index 0000000000..5593ca7ecf
--- /dev/null
+++ b/web/yacco2/compiler/grammars/yacco2_err_symbols.h
@@ -0,0 +1,679 @@
+/*
+ File: yacco2_err_symbols.h
+ Date and Time: Sun Apr 20 13:54:30 2014
+*/
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#ifndef __yacco2_err_symbols_h__
+#define __yacco2_err_symbols_h__ 1
+namespace NS_yacco2_err_symbols{
+ using namespace NS_yacco2_T_enum;
+ struct Err_nested_files_exceeded:public yacco2::CAbs_lr1_sym{
+
+ public:
+ Err_nested_files_exceeded(yacco2::INT Nested_file_cnt,std::string& File_name);
+ yacco2::INT nested_cnt(){return nested_cnt_;};
+ std::string* file_exceeded(){return &file_exceeded_;};
+ private:
+ yacco2::INT nested_cnt_;
+ std::string file_exceeded_;
+
+ };
+ struct Err_no_end_of_code:public yacco2::CAbs_lr1_sym{
+ Err_no_end_of_code();
+ };
+ struct Err_no_cmd_lne_data:public yacco2::CAbs_lr1_sym{
+ Err_no_cmd_lne_data();
+ };
+ struct Err_no_filename:public yacco2::CAbs_lr1_sym{
+ Err_no_filename();
+ };
+ struct Err_bad_filename:public yacco2::CAbs_lr1_sym{
+
+ public:
+ Err_bad_filename(std::string& File_name);
+ Err_bad_filename(const char* File_name);
+ std::string* file_name();
+ private:
+ std::string file_name_;
+
+ };
+ struct Err_bad_fsmheader_filename:public yacco2::CAbs_lr1_sym{
+
+ public:
+ Err_bad_fsmheader_filename(std::string& File_name);
+ Err_bad_fsmheader_filename(const char* File_name);
+ std::string* file_name();
+ private:
+ std::string file_name_;
+
+ };
+ struct Err_bad_fsmcpp_filename:public yacco2::CAbs_lr1_sym{
+
+ public:
+ Err_bad_fsmcpp_filename(std::string& File_name);
+ Err_bad_fsmcpp_filename(const char* File_name);
+ std::string* file_name();
+ private:
+ std::string file_name_;
+
+ };
+ struct Err_bad_fsmsym_filename:public yacco2::CAbs_lr1_sym{
+
+ public:
+ Err_bad_fsmsym_filename(std::string& File_name);
+ Err_bad_fsmsym_filename(const char* File_name);
+ std::string* file_name();
+ private:
+ std::string file_name_;
+
+ };
+ struct Err_bad_fsmtbl_filename:public yacco2::CAbs_lr1_sym{
+
+ public:
+ Err_bad_fsmtbl_filename(std::string& File_name);
+ Err_bad_fsmtbl_filename(const char* File_name);
+ std::string* file_name();
+ private:
+ std::string file_name_;
+
+ };
+ struct Err_bad_enum_filename:public yacco2::CAbs_lr1_sym{
+
+ public:
+ Err_bad_enum_filename(std::string& File_name);
+ Err_bad_enum_filename(const char* File_name);
+ std::string* file_name();
+ private:
+ std::string file_name_;
+
+ };
+ struct Err_bad_errors_hdrfilename:public yacco2::CAbs_lr1_sym{
+
+ public:
+ Err_bad_errors_hdrfilename(std::string& File_name);
+ Err_bad_errors_hdrfilename(const char* File_name);
+ std::string* file_name();
+ private:
+ std::string file_name_;
+
+ };
+ struct Err_bad_errors_impfilename:public yacco2::CAbs_lr1_sym{
+
+ public:
+ Err_bad_errors_impfilename(std::string& File_name);
+ Err_bad_errors_impfilename(const char* File_name);
+ std::string* file_name();
+ private:
+ std::string file_name_;
+
+ };
+ struct Err_bad_cmd_lne_opt:public yacco2::CAbs_lr1_sym{
+ Err_bad_cmd_lne_opt();
+ };
+ struct Err_bad_int_no:public yacco2::CAbs_lr1_sym{
+ Err_bad_int_no();
+ };
+ struct Err_bad_int_no_range:public yacco2::CAbs_lr1_sym{
+ Err_bad_int_no_range();
+ };
+ struct Err_no_int_present:public yacco2::CAbs_lr1_sym{
+ Err_no_int_present();
+ };
+ struct Err_bad_eos:public yacco2::CAbs_lr1_sym{
+ Err_bad_eos();
+ };
+ struct Err_bad_esc:public yacco2::CAbs_lr1_sym{
+ Err_bad_esc();
+ };
+ struct Err_comment_overrun:public yacco2::CAbs_lr1_sym{
+ Err_comment_overrun();
+ };
+ struct Err_bad_char:public yacco2::CAbs_lr1_sym{
+
+ public:
+ Err_bad_char(CAbs_lr1_sym* Err_char);
+ yacco2::CAbs_lr1_sym* bad_char()const;
+ void zero_out_bad_char();
+ private:
+ yacco2::CAbs_lr1_sym* bad_char_;
+
+ static void dtor_Err_bad_char(yacco2::VOIDP This,yacco2::VOIDP P);
+
+ };
+ struct Err_bad_univ_seq:public yacco2::CAbs_lr1_sym{
+
+ public:
+ Err_bad_univ_seq(unsigned long Value);
+ unsigned long bad_univ_seq()const;
+ private:unsigned long bad_univ_seq_;
+
+ };
+ struct Err_improper_closing_of_rules:public yacco2::CAbs_lr1_sym{
+ Err_improper_closing_of_rules();
+ };
+ struct Err_no_identifier_present:public yacco2::CAbs_lr1_sym{
+ Err_no_identifier_present();
+ };
+ struct Err_no_directive_present:public yacco2::CAbs_lr1_sym{
+ Err_no_directive_present();
+ };
+ struct Err_duplicate_directive:public yacco2::CAbs_lr1_sym{
+ Err_duplicate_directive();
+ };
+ struct Err_no_syntax_code_present:public yacco2::CAbs_lr1_sym{
+ Err_no_syntax_code_present();
+ };
+ struct Err_no_open_parenthesis:public yacco2::CAbs_lr1_sym{
+ Err_no_open_parenthesis();
+ };
+ struct Err_no_close_parenthesis:public yacco2::CAbs_lr1_sym{
+ Err_no_close_parenthesis();
+ };
+ struct Err_no_fsm_id_present:public yacco2::CAbs_lr1_sym{
+ Err_no_fsm_id_present();
+ };
+ struct Err_no_fsm_id_string:public yacco2::CAbs_lr1_sym{
+ Err_no_fsm_id_string();
+ };
+ struct Err_no_fsm_filename_present:public yacco2::CAbs_lr1_sym{
+ Err_no_fsm_filename_present();
+ };
+ struct Err_no_fsm_filename_id_present:public yacco2::CAbs_lr1_sym{
+ Err_no_fsm_filename_id_present();
+ };
+ struct Err_no_comma_present:public yacco2::CAbs_lr1_sym{
+ Err_no_comma_present();
+ };
+ struct Err_no_fsm_namespace_present:public yacco2::CAbs_lr1_sym{
+ Err_no_fsm_namespace_present();
+ };
+ struct Err_no_fsm_namespace_id_present:public yacco2::CAbs_lr1_sym{
+ Err_no_fsm_namespace_id_present();
+ };
+ struct Err_no_fsm_class_present:public yacco2::CAbs_lr1_sym{
+ Err_no_fsm_class_present();
+ };
+ struct Err_no_fsm_version_present:public yacco2::CAbs_lr1_sym{
+ Err_no_fsm_version_present();
+ };
+ struct Err_no_fsm_version_string:public yacco2::CAbs_lr1_sym{
+ Err_no_fsm_version_string();
+ };
+ struct Err_no_fsm_date_present:public yacco2::CAbs_lr1_sym{
+ Err_no_fsm_date_present();
+ };
+ struct Err_no_fsm_date_string:public yacco2::CAbs_lr1_sym{
+ Err_no_fsm_date_string();
+ };
+ struct Err_no_fsm_debug_present:public yacco2::CAbs_lr1_sym{
+ Err_no_fsm_debug_present();
+ };
+ struct Err_no_fsm_debug_string:public yacco2::CAbs_lr1_sym{
+ Err_no_fsm_debug_string();
+ };
+ struct Err_no_fsm_comments_present:public yacco2::CAbs_lr1_sym{
+ Err_no_fsm_comments_present();
+ };
+ struct Err_no_fsm_comments_string:public yacco2::CAbs_lr1_sym{
+ Err_no_fsm_comments_string();
+ };
+ struct Err_fsm_debug_string_not_true_or_false:public yacco2::CAbs_lr1_sym{
+ Err_fsm_debug_string_not_true_or_false();
+ };
+ struct Err_no_pp_thread_function_present:public yacco2::CAbs_lr1_sym{
+ Err_no_pp_thread_function_present();
+ };
+ struct Err_no_pp_ctrl_mntor_kw_present:public yacco2::CAbs_lr1_sym{
+ Err_no_pp_ctrl_mntor_kw_present();
+ };
+ struct Err_no_pp_fnct_id_present:public yacco2::CAbs_lr1_sym{
+ Err_no_pp_fnct_id_present();
+ };
+ struct Err_no_pp_bndry_present:public yacco2::CAbs_lr1_sym{
+ Err_no_pp_bndry_present();
+ };
+ struct Err_no_pp_la_bndary_expr_present:public yacco2::CAbs_lr1_sym{
+ Err_no_pp_la_bndary_expr_present();
+ };
+ struct Err_no_syntax_code_end_present:public yacco2::CAbs_lr1_sym{
+ Err_no_syntax_code_end_present();
+ };
+ struct Err_no_pp_code_present:public yacco2::CAbs_lr1_sym{
+ Err_no_pp_code_present();
+ };
+ struct Err_no_pp_code_stc_present:public yacco2::CAbs_lr1_sym{
+ Err_no_pp_code_stc_present();
+ };
+ struct Err_not_arbitration_code_kw:public yacco2::CAbs_lr1_sym{
+ Err_not_arbitration_code_kw();
+ };
+ struct Err_no_open_brace:public yacco2::CAbs_lr1_sym{
+ Err_no_open_brace();
+ };
+ struct Err_no_close_brace:public yacco2::CAbs_lr1_sym{
+ Err_no_close_brace();
+ };
+ struct Err_no_constant_defs_present:public yacco2::CAbs_lr1_sym{
+ Err_no_constant_defs_present();
+ };
+ struct Err_no_filename_present:public yacco2::CAbs_lr1_sym{
+ Err_no_filename_present();
+ };
+ struct Err_no_filename_id_present:public yacco2::CAbs_lr1_sym{
+ Err_no_filename_id_present();
+ };
+ struct Err_no_namespace_present:public yacco2::CAbs_lr1_sym{
+ Err_no_namespace_present();
+ };
+ struct Err_no_namespace_id_present:public yacco2::CAbs_lr1_sym{
+ Err_no_namespace_id_present();
+ };
+ struct Err_no_kdefs_code_present:public yacco2::CAbs_lr1_sym{
+ Err_no_kdefs_code_present();
+ };
+ struct Err_no_kdefs_kw_present:public yacco2::CAbs_lr1_sym{
+ Err_no_kdefs_kw_present();
+ };
+ struct Err_no_tdef_code_present:public yacco2::CAbs_lr1_sym{
+ Err_no_tdef_code_present();
+ };
+ struct Err_no_sym_defs_present:public yacco2::CAbs_lr1_sym{
+ Err_no_sym_defs_present();
+ };
+ struct Err_no_terminal_key_present:public yacco2::CAbs_lr1_sym{
+ Err_no_terminal_key_present();
+ };
+ struct Err_dup_entry_in_alphabet:public yacco2::CAbs_lr1_sym{
+ Err_dup_entry_in_alphabet();
+ };
+ struct Err_already_defined_AB:public yacco2::CAbs_lr1_sym{
+ Err_already_defined_AB();
+ };
+ struct Err_already_defined_AD:public yacco2::CAbs_lr1_sym{
+ Err_already_defined_AD();
+ };
+ struct Err_improper_directive:public yacco2::CAbs_lr1_sym{
+ Err_improper_directive();
+ };
+ struct Err_no_sym_class_present:public yacco2::CAbs_lr1_sym{
+ Err_no_sym_class_present();
+ };
+ struct Err_no_sym_class_id_present:public yacco2::CAbs_lr1_sym{
+ Err_no_sym_class_id_present();
+ };
+ struct Err_zero_len_sym:public yacco2::CAbs_lr1_sym{
+ Err_zero_len_sym();
+ };
+ struct Err_sym_tbl_full:public yacco2::CAbs_lr1_sym{
+ Err_sym_tbl_full();
+ };
+ struct Err_sym_tbl_char_pool_full:public yacco2::CAbs_lr1_sym{
+ Err_sym_tbl_char_pool_full();
+ };
+ struct Err_dup_entry_in_sym_table:public yacco2::CAbs_lr1_sym{
+ Err_dup_entry_in_sym_table();
+ };
+ struct Err_subscript_out_of_range:public yacco2::CAbs_lr1_sym{
+ Err_subscript_out_of_range();
+ };
+ struct Err_sym_tbl_nested_scope_stk_overflow:public yacco2::CAbs_lr1_sym{
+ Err_sym_tbl_nested_scope_stk_overflow();
+ };
+ struct Err_sym_tbl_nested_scope_stk_underflow:public yacco2::CAbs_lr1_sym{
+ Err_sym_tbl_nested_scope_stk_underflow();
+ };
+ struct Err_sym_tbl_context_buf_overflow:public yacco2::CAbs_lr1_sym{
+ Err_sym_tbl_context_buf_overflow();
+ };
+ struct Err_report_card_ptr_0:public yacco2::CAbs_lr1_sym{
+ Err_report_card_ptr_0();
+ };
+ struct Err_cannot_define_term_after_sufx_dir:public yacco2::CAbs_lr1_sym{
+ Err_cannot_define_term_after_sufx_dir();
+ };
+ struct Err_dup_sufx_directive:public yacco2::CAbs_lr1_sym{
+ Err_dup_sufx_directive();
+ };
+ struct Err_terminals_refs_def_after_terminals:public yacco2::CAbs_lr1_sym{
+ Err_terminals_refs_def_after_terminals();
+ };
+ struct Err_terminals_refs_dup_def:public yacco2::CAbs_lr1_sym{
+ Err_terminals_refs_dup_def();
+ };
+ struct Err_no_rule_name_present:public yacco2::CAbs_lr1_sym{
+ Err_no_rule_name_present();
+ };
+ struct Err_no_sub_rule_present:public yacco2::CAbs_lr1_sym{
+ Err_no_sub_rule_present();
+ };
+ struct Err_subrule_use_undefined_T:public yacco2::CAbs_lr1_sym{
+ Err_subrule_use_undefined_T();
+ };
+ struct Err_stbl_entry_unknown:public yacco2::CAbs_lr1_sym{
+ Err_stbl_entry_unknown();
+ };
+ struct Err_subrule_overrun:public yacco2::CAbs_lr1_sym{
+ Err_subrule_overrun();
+ };
+ struct Err_stble_has_entry_but_not_a_rule:public yacco2::CAbs_lr1_sym{
+ Err_stble_has_entry_but_not_a_rule();
+ };
+ struct Err_file_of_T_alphabet_kw_not_present:public yacco2::CAbs_lr1_sym{
+ Err_file_of_T_alphabet_kw_not_present();
+ };
+ struct Err_emitfile_kw_not_present:public yacco2::CAbs_lr1_sym{
+ Err_emitfile_kw_not_present();
+ };
+ struct Err_preamble_kw_not_present:public yacco2::CAbs_lr1_sym{
+ Err_preamble_kw_not_present();
+ };
+ struct Err_preamble_srce_code_not_present:public yacco2::CAbs_lr1_sym{
+ Err_preamble_srce_code_not_present();
+ };
+ struct Err_end_preamble_kw_not_present:public yacco2::CAbs_lr1_sym{
+ Err_end_preamble_kw_not_present();
+ };
+ struct Err_cmd_line_chaffe:public yacco2::CAbs_lr1_sym{
+ Err_cmd_line_chaffe();
+ };
+ struct Err_T_alphabet_kw_not_present:public yacco2::CAbs_lr1_sym{
+ Err_T_alphabet_kw_not_present();
+ };
+ struct Err_T_alphabet_file_not_present:public yacco2::CAbs_lr1_sym{
+ Err_T_alphabet_file_not_present();
+ };
+ struct Err_end_T_alphabet_kw_not_present:public yacco2::CAbs_lr1_sym{
+ Err_end_T_alphabet_kw_not_present();
+ };
+ struct Err_no_terminals_in_T_alphabet_list:public yacco2::CAbs_lr1_sym{
+ Err_no_terminals_in_T_alphabet_list();
+ };
+ struct Err_rotten_chr_in_T_alphabet:public yacco2::CAbs_lr1_sym{
+ Err_rotten_chr_in_T_alphabet();
+ };
+ struct Err_transitive_kw_not_present:public yacco2::CAbs_lr1_sym{
+ Err_transitive_kw_not_present();
+ };
+ struct Err_grammar_name_kw_not_present:public yacco2::CAbs_lr1_sym{
+ Err_grammar_name_kw_not_present();
+ };
+ struct Err_namespace_kw_not_present:public yacco2::CAbs_lr1_sym{
+ Err_namespace_kw_not_present();
+ };
+ struct Err_filename_kw_not_present:public yacco2::CAbs_lr1_sym{
+ Err_filename_kw_not_present();
+ };
+ struct Err_threadname_kw_not_present:public yacco2::CAbs_lr1_sym{
+ Err_threadname_kw_not_present();
+ };
+ struct Err_monolithic_kw_not_present:public yacco2::CAbs_lr1_sym{
+ Err_monolithic_kw_not_present();
+ };
+ struct Err_no_of_T_kw_not_present:public yacco2::CAbs_lr1_sym{
+ Err_no_of_T_kw_not_present();
+ };
+ struct Err_list_of_terminals_kw_not_present:public yacco2::CAbs_lr1_sym{
+ Err_list_of_terminals_kw_not_present();
+ };
+ struct Err_no_list_of_trans_threads_kw:public yacco2::CAbs_lr1_sym{
+ Err_no_list_of_trans_threads_kw();
+ };
+ struct Err_no_terminals_present_in_T_alphabet:public yacco2::CAbs_lr1_sym{
+ Err_no_terminals_present_in_T_alphabet();
+ };
+ struct Err_transitive_value_bad:public yacco2::CAbs_lr1_sym{
+ Err_transitive_value_bad();
+ };
+ struct Err_monolithic_value_bad:public yacco2::CAbs_lr1_sym{
+ Err_monolithic_value_bad();
+ };
+ struct Err_grammar_name_value_not_present:public yacco2::CAbs_lr1_sym{
+ Err_grammar_name_value_not_present();
+ };
+ struct Err_namespace_value_not_present:public yacco2::CAbs_lr1_sym{
+ Err_namespace_value_not_present();
+ };
+ struct Err_threadname_value_not_present:public yacco2::CAbs_lr1_sym{
+ Err_threadname_value_not_present();
+ };
+ struct Err_filename_value_not_present:public yacco2::CAbs_lr1_sym{
+ Err_filename_value_not_present();
+ };
+ struct Err_no_of_T_value_not_present:public yacco2::CAbs_lr1_sym{
+ Err_no_of_T_value_not_present();
+ };
+ struct Err_no_of_terminals_not_present:public yacco2::CAbs_lr1_sym{
+ Err_no_of_terminals_not_present();
+ };
+ struct Err_end_list_native_T_kw_not_present:public yacco2::CAbs_lr1_sym{
+ Err_end_list_native_T_kw_not_present();
+ };
+ struct Err_end_list_of_transitive_threads_kw_not_present:public yacco2::CAbs_lr1_sym{
+ Err_end_list_of_transitive_threads_kw_not_present();
+ };
+ struct Err_no_of_native_Ts_in_list_not_equal:public yacco2::CAbs_lr1_sym{
+
+ public:
+ Err_no_of_native_Ts_in_list_not_equal(unsigned long Value);
+ unsigned long no()const;
+ private:unsigned long no_;
+
+ };
+ struct Err_no_of_threads_in_list_not_equal:public yacco2::CAbs_lr1_sym{
+
+ public:
+ Err_no_of_threads_in_list_not_equal(unsigned long No);
+ unsigned long no()const;
+ private:unsigned long no_;
+
+ };
+ struct Err_thread_refed_but_not_defined:public yacco2::CAbs_lr1_sym{
+
+ public:
+ Err_thread_refed_but_not_defined(CAbs_lr1_sym* Th_id);
+ CAbs_lr1_sym* th_id();
+ private:CAbs_lr1_sym* th_id_;
+
+ };
+ struct Err_bad_T_in_list:public yacco2::CAbs_lr1_sym{
+ Err_bad_T_in_list();
+ };
+ struct Err_bad_th_in_list:public yacco2::CAbs_lr1_sym{
+ Err_bad_th_in_list();
+ };
+ struct Err_already_defined_in_fsc_file:public yacco2::CAbs_lr1_sym{
+ Err_already_defined_in_fsc_file();
+ };
+ struct Err_bad_thread_subscript:public yacco2::CAbs_lr1_sym{
+ Err_bad_thread_subscript();
+ };
+ struct Err_not_a_keyword:public yacco2::CAbs_lr1_sym{
+ Err_not_a_keyword();
+ };
+ struct Err_no_of_threads_not_present:public yacco2::CAbs_lr1_sym{
+ Err_no_of_threads_not_present();
+ };
+ struct Err_bad_T_alphabet:public yacco2::CAbs_lr1_sym{
+ Err_bad_T_alphabet();
+ };
+ struct Err_fsc_file_does_not_exist:public yacco2::CAbs_lr1_sym{
+ Err_fsc_file_does_not_exist();
+ };
+ struct Err_filename_file_does_not_exist:public yacco2::CAbs_lr1_sym{
+ Err_filename_file_does_not_exist();
+ };
+ struct Err_T_alphabet_file_does_not_exist:public yacco2::CAbs_lr1_sym{
+ Err_T_alphabet_file_does_not_exist();
+ };
+ struct Err_emitfile_file_does_not_exist:public yacco2::CAbs_lr1_sym{
+ Err_emitfile_file_does_not_exist();
+ };
+ struct Err_emitfile_file_not_present:public yacco2::CAbs_lr1_sym{
+ Err_emitfile_file_not_present();
+ };
+ struct Err_fsc_cntl_file_not_present:public yacco2::CAbs_lr1_sym{
+ Err_fsc_cntl_file_not_present();
+ };
+ struct Err_file_of_T_alphabet_not_present:public yacco2::CAbs_lr1_sym{
+ Err_file_of_T_alphabet_not_present();
+ };
+ struct Err_epsilon_pass_thru:public yacco2::CAbs_lr1_sym{
+ Err_epsilon_pass_thru();
+ };
+ struct Err_epsilon_pass_thru_no_Ts:public yacco2::CAbs_lr1_sym{
+ Err_epsilon_pass_thru_no_Ts();
+ };
+ struct Err_rule_not_in_stbl:public yacco2::CAbs_lr1_sym{
+ Err_rule_not_in_stbl();
+ };
+ struct Err_T_not_in_stbl:public yacco2::CAbs_lr1_sym{
+ Err_T_not_in_stbl();
+ };
+ struct Err_bad_directive:public yacco2::CAbs_lr1_sym{
+ Err_bad_directive();
+ };
+ struct Err_bad_term_in_la_expr:public yacco2::CAbs_lr1_sym{
+ Err_bad_term_in_la_expr();
+ };
+ struct Err_empty_set_removal_in_la_expr:public yacco2::CAbs_lr1_sym{
+ Err_empty_set_removal_in_la_expr();
+ };
+ struct Err_bad_operator_in_la_expr:public yacco2::CAbs_lr1_sym{
+ Err_bad_operator_in_la_expr();
+ };
+ struct Err_not_a_lhs_kw:public yacco2::CAbs_lr1_sym{
+ Err_not_a_lhs_kw();
+ };
+ struct Err_pp_la_boundary_attribute_not_fnd:public yacco2::CAbs_lr1_sym{
+ Err_pp_la_boundary_attribute_not_fnd();
+ };
+ struct Err_already_processed_fsm_phase:public yacco2::CAbs_lr1_sym{
+ Err_already_processed_fsm_phase();
+ };
+ struct Err_already_processed_pp_phase:public yacco2::CAbs_lr1_sym{
+ Err_already_processed_pp_phase();
+ };
+ struct Err_already_processed_T_enum_phase:public yacco2::CAbs_lr1_sym{
+ Err_already_processed_T_enum_phase();
+ };
+ struct Err_already_processed_error_phase:public yacco2::CAbs_lr1_sym{
+ Err_already_processed_error_phase();
+ };
+ struct Err_already_processed_rc_phase:public yacco2::CAbs_lr1_sym{
+ Err_already_processed_rc_phase();
+ };
+ struct Err_already_processed_lrk_phase:public yacco2::CAbs_lr1_sym{
+ Err_already_processed_lrk_phase();
+ };
+ struct Err_already_processed_T_phase:public yacco2::CAbs_lr1_sym{
+ Err_already_processed_T_phase();
+ };
+ struct Err_already_processed_rule_phase:public yacco2::CAbs_lr1_sym{
+ Err_already_processed_rule_phase();
+ };
+ struct Err_not_T_for_rtned_token_from_th:public yacco2::CAbs_lr1_sym{
+ Err_not_T_for_rtned_token_from_th();
+ };
+ struct Err_not_id_for_ns_in_th_stmt:public yacco2::CAbs_lr1_sym{
+ Err_not_id_for_ns_in_th_stmt();
+ };
+ struct Err_not_id_for_th_name_in_th_stmt:public yacco2::CAbs_lr1_sym{
+ Err_not_id_for_th_name_in_th_stmt();
+ };
+ struct Err_bad_th_qualifier:public yacco2::CAbs_lr1_sym{
+ Err_bad_th_qualifier();
+ };
+ struct Err_not_dbl_colon_in_th_stmt:public yacco2::CAbs_lr1_sym{
+ Err_not_dbl_colon_in_th_stmt();
+ };
+ struct Err_not_T_or_R_in_subrule_expr:public yacco2::CAbs_lr1_sym{
+ Err_not_T_or_R_in_subrule_expr();
+ };
+ struct Err_not_T_or_R_or_eos_in_subrule_expr:public yacco2::CAbs_lr1_sym{
+ Err_not_T_or_R_or_eos_in_subrule_expr();
+ };
+ struct Err_not_eos_in_subrule_expr:public yacco2::CAbs_lr1_sym{
+ Err_not_eos_in_subrule_expr();
+ };
+ struct Err_invalid_logical_name:public yacco2::CAbs_lr1_sym{
+ Err_invalid_logical_name();
+ };
+ struct Err_invalid_logical_value:public yacco2::CAbs_lr1_sym{
+ Err_invalid_logical_value();
+ };
+ struct Err_duplicate_logical_name:public yacco2::CAbs_lr1_sym{
+ Err_duplicate_logical_name();
+ };
+ struct Err_missing_terminals_refs_kw:public yacco2::CAbs_lr1_sym{
+ Err_missing_terminals_refs_kw();
+ };
+ struct Err_missing_terminals_sufx_kw:public yacco2::CAbs_lr1_sym{
+ Err_missing_terminals_sufx_kw();
+ };
+ struct Err_not_a_terminal_definition:public yacco2::CAbs_lr1_sym{
+ Err_not_a_terminal_definition();
+ };
+ struct Err_missing_lrk_sufx_kw:public yacco2::CAbs_lr1_sym{
+ Err_missing_lrk_sufx_kw();
+ };
+ struct ERR_sick_grammar:public yacco2::CAbs_lr1_sym{
+ ERR_sick_grammar();
+ };
+ struct ERR_no_fsm_phrase:public yacco2::CAbs_lr1_sym{
+ ERR_no_fsm_phrase();
+ };
+ struct ERR_no_T_enum_phrase:public yacco2::CAbs_lr1_sym{
+ ERR_no_T_enum_phrase();
+ };
+ struct ERR_no_lrk_phrase:public yacco2::CAbs_lr1_sym{
+ ERR_no_lrk_phrase();
+ };
+ struct ERR_no_rc_phrase:public yacco2::CAbs_lr1_sym{
+ ERR_no_rc_phrase();
+ };
+ struct ERR_no_errors_phrase:public yacco2::CAbs_lr1_sym{
+ ERR_no_errors_phrase();
+ };
+ struct ERR_no_terminals_phrase:public yacco2::CAbs_lr1_sym{
+ ERR_no_terminals_phrase();
+ };
+ struct ERR_no_rules_phrase:public yacco2::CAbs_lr1_sym{
+ ERR_no_rules_phrase();
+ };
+ struct Err_used_rule_but_undefined:public yacco2::CAbs_lr1_sym{
+ Err_used_rule_but_undefined();
+ };
+ struct Err_rule_already_defined:public yacco2::CAbs_lr1_sym{
+ Err_rule_already_defined();
+ };
+ struct Err_la_expr_calc_empty_set:public yacco2::CAbs_lr1_sym{
+ Err_la_expr_calc_empty_set();
+ };
+ struct Err_no_close_brace_ending_rules_defs:public yacco2::CAbs_lr1_sym{
+ Err_no_close_brace_ending_rules_defs();
+ };
+ struct Err_use_of_T_outside_Rules_construct:public yacco2::CAbs_lr1_sym{
+ Err_use_of_T_outside_Rules_construct();
+ };
+ struct Err_not_kw_defining_grammar_construct:public yacco2::CAbs_lr1_sym{
+ Err_not_kw_defining_grammar_construct();
+ };
+ struct Err_use_of_N_outside_Rules_construct:public yacco2::CAbs_lr1_sym{
+ Err_use_of_N_outside_Rules_construct();
+ };
+ struct Err_misplaced_or_misspelt_Rule_or_T:public yacco2::CAbs_lr1_sym{
+ Err_misplaced_or_misspelt_Rule_or_T();
+ };
+ struct Err_not_a_Rule:public yacco2::CAbs_lr1_sym{
+ Err_not_a_Rule();
+ };
+ struct Err_empty_file:public yacco2::CAbs_lr1_sym{
+ Err_empty_file();
+ };
+ struct Err_not_lhs_pcnrl_mntr:public yacco2::CAbs_lr1_sym{
+ Err_not_lhs_pcnrl_mntr();
+ };
+}//namespace
+#endif
diff --git a/web/yacco2/compiler/grammars/yacco2_fsc.cpp b/web/yacco2/compiler/grammars/yacco2_fsc.cpp
new file mode 100644
index 0000000000..9e226cc37c
--- /dev/null
+++ b/web/yacco2/compiler/grammars/yacco2_fsc.cpp
@@ -0,0 +1,9776 @@
+//
+// File: /usr/local/yacco2/compiler/grammars/yacco2_fsc.cpp
+// Generated by linker.exe
+// Date and Time: Mon Oct 27 12:07:42 2014
+//
+
+// Preamble code
+
+
+#include "yacco2.h"
+
+#include "yacco2_T_enumeration.h"
+
+#include "yacco2_k_symbols.h"
+
+#include "yacco2_terminals.h"
+
+#include "yacco2_characters.h"
+
+using namespace NS_yacco2_T_enum;
+
+using namespace NS_yacco2_err_symbols;
+
+using namespace NS_yacco2_k_symbols;
+
+using namespace NS_yacco2_terminals;
+
+using namespace NS_yacco2_characters;
+
+
+// thread include and namespace
+#include "angled_string.h"
+#include "bad_char_set.h"
+#include "cweb_or_c_k.h"
+#include "c_comments.h"
+#include "c_literal.h"
+#include "c_string.h"
+#include "dbl_colon.h"
+#include "eol.h"
+#include "err_symbols_ph_th.h"
+#include "esc_seq.h"
+#include "fsm_class_phrase_th.h"
+#include "fsm_phrase_th.h"
+#include "identifier.h"
+#include "int_no.h"
+#include "la_expr_src.h"
+#include "la_lrk_T.h"
+#include "linker_id.h"
+#include "linker_preamble_code.h"
+#include "lint_balls.h"
+#include "lr1_k_phrase_th.h"
+#include "o2_code_end.h"
+#include "o2_lcl_opt.h"
+#include "o2_sdc.h"
+#include "parallel_monitor_ph.h"
+#include "parallel_oper.h"
+#include "parallel_parser_ph_th.h"
+#include "prefile_include.h"
+#include "rc_phrase_th.h"
+#include "rhs_bnd.h"
+#include "rhs_component.h"
+#include "rtn_component.h"
+#include "rules_phrase_th.h"
+#include "rule_def_phrase.h"
+#include "rule_lhs_phrase.h"
+#include "subrules_phrase.h"
+#include "subrule_def.h"
+#include "subrule_vector.h"
+#include "terminals_phrase_th.h"
+#include "terminal_def_symclass.h"
+#include "term_def_ph.h"
+#include "t_def_delabort_tags.h"
+#include "T_enum_phrase_th.h"
+#include "unq_str.h"
+#include "ws.h"
+#include "xc_str.h"
+// BIT MAPS
+#define TOTAL_NO_BIT_WORDS 2*1024*50
+int yacco2::TOTAL_NO_BIT_WORDS__(TOTAL_NO_BIT_WORDS);
+yacco2::ULINT bit_maps[TOTAL_NO_BIT_WORDS];
+void* yacco2::BIT_MAPS_FOR_SALE__ = (void*)&bit_maps;
+int yacco2::BIT_MAP_IDX__(0);
+// THREAD STABLE
+yacco2::Thread_entry ITH_angled_string = {"TH_angled_string",NS_angled_string::TH_angled_string,0,NS_angled_string::PROC_TH_angled_string};
+yacco2::Thread_entry ITH_bad_char_set = {"TH_bad_char_set",NS_bad_char_set::TH_bad_char_set,1,NS_bad_char_set::PROC_TH_bad_char_set};
+yacco2::Thread_entry ITH_cweb_or_c_k = {"TH_cweb_or_c_k",NS_cweb_or_c_k::TH_cweb_or_c_k,2,NS_cweb_or_c_k::PROC_TH_cweb_or_c_k};
+yacco2::Thread_entry ITH_c_comments = {"TH_c_comments",NS_c_comments::TH_c_comments,3,NS_c_comments::PROC_TH_c_comments};
+yacco2::Thread_entry ITH_c_literal = {"TH_c_literal",NS_c_literal::TH_c_literal,4,NS_c_literal::PROC_TH_c_literal};
+yacco2::Thread_entry ITH_c_string = {"TH_c_string",NS_c_string::TH_c_string,5,NS_c_string::PROC_TH_c_string};
+yacco2::Thread_entry ITH_dbl_colon = {"TH_dbl_colon",NS_dbl_colon::TH_dbl_colon,6,NS_dbl_colon::PROC_TH_dbl_colon};
+yacco2::Thread_entry ITH_eol = {"TH_eol",NS_eol::TH_eol,7,NS_eol::PROC_TH_eol};
+yacco2::Thread_entry ITH_err_symbols_ph_th = {"TH_err_symbols_ph_th",NS_err_symbols_ph_th::TH_err_symbols_ph_th,8,NS_err_symbols_ph_th::PROC_TH_err_symbols_ph_th};
+yacco2::Thread_entry ITH_esc_seq = {"TH_esc_seq",NS_esc_seq::TH_esc_seq,9,NS_esc_seq::PROC_TH_esc_seq};
+yacco2::Thread_entry ITH_fsm_class_phrase_th = {"TH_fsm_class_phrase_th",NS_fsm_class_phrase_th::TH_fsm_class_phrase_th,10,NS_fsm_class_phrase_th::PROC_TH_fsm_class_phrase_th};
+yacco2::Thread_entry ITH_fsm_phrase_th = {"TH_fsm_phrase_th",NS_fsm_phrase_th::TH_fsm_phrase_th,11,NS_fsm_phrase_th::PROC_TH_fsm_phrase_th};
+yacco2::Thread_entry ITH_identifier = {"TH_identifier",NS_identifier::TH_identifier,12,NS_identifier::PROC_TH_identifier};
+yacco2::Thread_entry ITH_int_no = {"TH_int_no",NS_int_no::TH_int_no,13,NS_int_no::PROC_TH_int_no};
+yacco2::Thread_entry ITH_la_expr_src = {"TH_la_expr_src",NS_la_expr_src::TH_la_expr_src,14,NS_la_expr_src::PROC_TH_la_expr_src};
+yacco2::Thread_entry ITH_la_lrk_T = {"TH_la_lrk_T",NS_la_lrk_T::TH_la_lrk_T,15,NS_la_lrk_T::PROC_TH_la_lrk_T};
+yacco2::Thread_entry ITH_linker_id = {"TH_linker_id",NS_linker_id::TH_linker_id,16,NS_linker_id::PROC_TH_linker_id};
+yacco2::Thread_entry ITH_linker_preamble_code = {"TH_linker_preamble_code",NS_linker_preamble_code::TH_linker_preamble_code,17,NS_linker_preamble_code::PROC_TH_linker_preamble_code};
+yacco2::Thread_entry ITH_lint_balls = {"TH_lint_balls",NS_lint_balls::TH_lint_balls,18,NS_lint_balls::PROC_TH_lint_balls};
+yacco2::Thread_entry ITH_lr1_k_phrase_th = {"TH_lr1_k_phrase_th",NS_lr1_k_phrase_th::TH_lr1_k_phrase_th,19,NS_lr1_k_phrase_th::PROC_TH_lr1_k_phrase_th};
+yacco2::Thread_entry ITH_o2_code_end = {"TH_o2_code_end",NS_o2_code_end::TH_o2_code_end,20,NS_o2_code_end::PROC_TH_o2_code_end};
+yacco2::Thread_entry ITH_o2_lcl_opt = {"TH_o2_lcl_opt",NS_o2_lcl_opt::TH_o2_lcl_opt,21,NS_o2_lcl_opt::PROC_TH_o2_lcl_opt};
+yacco2::Thread_entry ITH_o2_sdc = {"TH_o2_sdc",NS_o2_sdc::TH_o2_sdc,22,NS_o2_sdc::PROC_TH_o2_sdc};
+yacco2::Thread_entry ITH_parallel_monitor_ph = {"TH_parallel_monitor_ph",NS_parallel_monitor_ph::TH_parallel_monitor_ph,23,NS_parallel_monitor_ph::PROC_TH_parallel_monitor_ph};
+yacco2::Thread_entry ITH_parallel_oper = {"TH_parallel_oper",NS_parallel_oper::TH_parallel_oper,24,NS_parallel_oper::PROC_TH_parallel_oper};
+yacco2::Thread_entry ITH_parallel_parser_ph_th = {"TH_parallel_parser_ph_th",NS_parallel_parser_ph_th::TH_parallel_parser_ph_th,25,NS_parallel_parser_ph_th::PROC_TH_parallel_parser_ph_th};
+yacco2::Thread_entry ITH_prefile_include = {"TH_prefile_include",NS_prefile_include::TH_prefile_include,26,NS_prefile_include::PROC_TH_prefile_include};
+yacco2::Thread_entry ITH_rc_phrase_th = {"TH_rc_phrase_th",NS_rc_phrase_th::TH_rc_phrase_th,27,NS_rc_phrase_th::PROC_TH_rc_phrase_th};
+yacco2::Thread_entry ITH_rhs_bnd = {"TH_rhs_bnd",NS_rhs_bnd::TH_rhs_bnd,28,NS_rhs_bnd::PROC_TH_rhs_bnd};
+yacco2::Thread_entry ITH_rhs_component = {"TH_rhs_component",NS_rhs_component::TH_rhs_component,29,NS_rhs_component::PROC_TH_rhs_component};
+yacco2::Thread_entry ITH_rtn_component = {"TH_rtn_component",NS_rtn_component::TH_rtn_component,30,NS_rtn_component::PROC_TH_rtn_component};
+yacco2::Thread_entry ITH_rules_phrase_th = {"TH_rules_phrase_th",NS_rules_phrase_th::TH_rules_phrase_th,31,NS_rules_phrase_th::PROC_TH_rules_phrase_th};
+yacco2::Thread_entry ITH_rule_def_phrase = {"TH_rule_def_phrase",NS_rule_def_phrase::TH_rule_def_phrase,32,NS_rule_def_phrase::PROC_TH_rule_def_phrase};
+yacco2::Thread_entry ITH_rule_lhs_phrase = {"TH_rule_lhs_phrase",NS_rule_lhs_phrase::TH_rule_lhs_phrase,33,NS_rule_lhs_phrase::PROC_TH_rule_lhs_phrase};
+yacco2::Thread_entry ITH_subrules_phrase = {"TH_subrules_phrase",NS_subrules_phrase::TH_subrules_phrase,34,NS_subrules_phrase::PROC_TH_subrules_phrase};
+yacco2::Thread_entry ITH_subrule_def = {"TH_subrule_def",NS_subrule_def::TH_subrule_def,35,NS_subrule_def::PROC_TH_subrule_def};
+yacco2::Thread_entry ITH_subrule_vector = {"TH_subrule_vector",NS_subrule_vector::TH_subrule_vector,36,NS_subrule_vector::PROC_TH_subrule_vector};
+yacco2::Thread_entry ITH_terminals_phrase_th = {"TH_terminals_phrase_th",NS_terminals_phrase_th::TH_terminals_phrase_th,37,NS_terminals_phrase_th::PROC_TH_terminals_phrase_th};
+yacco2::Thread_entry ITH_terminal_def_symclass = {"TH_terminal_def_symclass",NS_terminal_def_symclass::TH_terminal_def_symclass,38,NS_terminal_def_symclass::PROC_TH_terminal_def_symclass};
+yacco2::Thread_entry ITH_term_def_ph = {"TH_term_def_ph",NS_term_def_ph::TH_term_def_ph,39,NS_term_def_ph::PROC_TH_term_def_ph};
+yacco2::Thread_entry ITH_t_def_delabort_tags = {"TH_t_def_delabort_tags",NS_t_def_delabort_tags::TH_t_def_delabort_tags,40,NS_t_def_delabort_tags::PROC_TH_t_def_delabort_tags};
+yacco2::Thread_entry ITH_T_enum_phrase_th = {"TH_T_enum_phrase_th",NS_T_enum_phrase_th::TH_T_enum_phrase_th,41,NS_T_enum_phrase_th::PROC_TH_T_enum_phrase_th};
+yacco2::Thread_entry ITH_unq_str = {"TH_unq_str",NS_unq_str::TH_unq_str,42,NS_unq_str::PROC_TH_unq_str};
+yacco2::Thread_entry ITH_ws = {"TH_ws",NS_ws::TH_ws,43,NS_ws::PROC_TH_ws};
+yacco2::Thread_entry ITH_xc_str = {"TH_xc_str",NS_xc_str::TH_xc_str,44,NS_xc_str::PROC_TH_xc_str};
+struct thd_array_type {
+ yacco2::USINT no_entries__;
+ yacco2::Thread_entry* first_entry__[45];};
+thd_array_type thd_array = {
+ 45
+ ,
+ {
+
+ &ITH_angled_string
+ ,&ITH_bad_char_set
+ ,&ITH_cweb_or_c_k
+ ,&ITH_c_comments
+ ,&ITH_c_literal
+ ,&ITH_c_string
+ ,&ITH_dbl_colon
+ ,&ITH_eol
+ ,&ITH_err_symbols_ph_th
+ ,&ITH_esc_seq
+ ,&ITH_fsm_class_phrase_th
+ ,&ITH_fsm_phrase_th
+ ,&ITH_identifier
+ ,&ITH_int_no
+ ,&ITH_la_expr_src
+ ,&ITH_la_lrk_T
+ ,&ITH_linker_id
+ ,&ITH_linker_preamble_code
+ ,&ITH_lint_balls
+ ,&ITH_lr1_k_phrase_th
+ ,&ITH_o2_code_end
+ ,&ITH_o2_lcl_opt
+ ,&ITH_o2_sdc
+ ,&ITH_parallel_monitor_ph
+ ,&ITH_parallel_oper
+ ,&ITH_parallel_parser_ph_th
+ ,&ITH_prefile_include
+ ,&ITH_rc_phrase_th
+ ,&ITH_rhs_bnd
+ ,&ITH_rhs_component
+ ,&ITH_rtn_component
+ ,&ITH_rules_phrase_th
+ ,&ITH_rule_def_phrase
+ ,&ITH_rule_lhs_phrase
+ ,&ITH_subrules_phrase
+ ,&ITH_subrule_def
+ ,&ITH_subrule_vector
+ ,&ITH_terminals_phrase_th
+ ,&ITH_terminal_def_symclass
+ ,&ITH_term_def_ph
+ ,&ITH_t_def_delabort_tags
+ ,&ITH_T_enum_phrase_th
+ ,&ITH_unq_str
+ ,&ITH_ws
+ ,&ITH_xc_str
+ }
+};
+void* yacco2::THDS_STABLE__ = (void*)&thd_array;
+// Terminal thread sets
+struct T_0_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_0_type T_0 = {// for T: LR1_questionable_shift_operator
+//8: TH_err_symbols_ph_th
+//10: TH_fsm_class_phrase_th
+//11: TH_fsm_phrase_th
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//19: TH_lr1_k_phrase_th
+//22: TH_o2_sdc
+//25: TH_parallel_parser_ph_th
+//27: TH_rc_phrase_th
+//29: TH_rhs_component
+//30: TH_rtn_component
+//31: TH_rules_phrase_th
+//32: TH_rule_def_phrase
+//34: TH_subrules_phrase
+//37: TH_terminals_phrase_th
+//41: TH_T_enum_phrase_th
+//42: TH_unq_str
+ {3930737920
+ ,1573
+ }
+};
+struct T_1_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_1_type T_1 = {// for T: LR1_eog
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//28: TH_rhs_bnd
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1883389952
+ ,1024
+ }
+};
+struct T_6_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_6_type T_6 = {// for T: LR1_all_shift_operator
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_7_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_7_type T_7 = {// for T: LR1_fset_transience_operator
+//14: TH_la_expr_src
+ {16384
+ ,0
+ }
+};
+struct T_8_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_8_type T_8 = {// for T: raw_nul
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_9_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_9_type T_9 = {// for T: raw_soh
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_10_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_10_type T_10 = {// for T: raw_stx
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_11_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_11_type T_11 = {// for T: raw_etx
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_12_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_12_type T_12 = {// for T: raw_eot
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_13_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_13_type T_13 = {// for T: raw_enq
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_14_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_14_type T_14 = {// for T: raw_ack
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_15_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_15_type T_15 = {// for T: raw_bel
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_16_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_16_type T_16 = {// for T: raw_bs
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_17_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_17_type T_17 = {// for T: raw_ht
+//8: TH_err_symbols_ph_th
+//11: TH_fsm_phrase_th
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//18: TH_lint_balls
+//19: TH_lr1_k_phrase_th
+//22: TH_o2_sdc
+//25: TH_parallel_parser_ph_th
+//27: TH_rc_phrase_th
+//29: TH_rhs_component
+//30: TH_rtn_component
+//31: TH_rules_phrase_th
+//37: TH_terminals_phrase_th
+//41: TH_T_enum_phrase_th
+//42: TH_unq_str
+//43: TH_ws
+ {3930999040
+ ,3616
+ }
+};
+struct T_18_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_18_type T_18 = {// for T: raw_lf
+//7: TH_eol
+//8: TH_err_symbols_ph_th
+//11: TH_fsm_phrase_th
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//18: TH_lint_balls
+//19: TH_lr1_k_phrase_th
+//22: TH_o2_sdc
+//25: TH_parallel_parser_ph_th
+//27: TH_rc_phrase_th
+//29: TH_rhs_component
+//30: TH_rtn_component
+//31: TH_rules_phrase_th
+//37: TH_terminals_phrase_th
+//41: TH_T_enum_phrase_th
+//42: TH_unq_str
+ {3930999168
+ ,1568
+ }
+};
+struct T_19_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_19_type T_19 = {// for T: raw_vt
+//8: TH_err_symbols_ph_th
+//11: TH_fsm_phrase_th
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//18: TH_lint_balls
+//19: TH_lr1_k_phrase_th
+//22: TH_o2_sdc
+//25: TH_parallel_parser_ph_th
+//27: TH_rc_phrase_th
+//29: TH_rhs_component
+//30: TH_rtn_component
+//31: TH_rules_phrase_th
+//37: TH_terminals_phrase_th
+//41: TH_T_enum_phrase_th
+//42: TH_unq_str
+//43: TH_ws
+ {3930999040
+ ,3616
+ }
+};
+struct T_20_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_20_type T_20 = {// for T: raw_ff
+//8: TH_err_symbols_ph_th
+//11: TH_fsm_phrase_th
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//18: TH_lint_balls
+//19: TH_lr1_k_phrase_th
+//22: TH_o2_sdc
+//25: TH_parallel_parser_ph_th
+//27: TH_rc_phrase_th
+//29: TH_rhs_component
+//30: TH_rtn_component
+//31: TH_rules_phrase_th
+//37: TH_terminals_phrase_th
+//41: TH_T_enum_phrase_th
+//42: TH_unq_str
+//43: TH_ws
+ {3930999040
+ ,3616
+ }
+};
+struct T_21_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_21_type T_21 = {// for T: raw_cr
+//7: TH_eol
+//8: TH_err_symbols_ph_th
+//11: TH_fsm_phrase_th
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//18: TH_lint_balls
+//19: TH_lr1_k_phrase_th
+//22: TH_o2_sdc
+//25: TH_parallel_parser_ph_th
+//27: TH_rc_phrase_th
+//29: TH_rhs_component
+//30: TH_rtn_component
+//31: TH_rules_phrase_th
+//37: TH_terminals_phrase_th
+//41: TH_T_enum_phrase_th
+//42: TH_unq_str
+ {3930999168
+ ,1568
+ }
+};
+struct T_22_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_22_type T_22 = {// for T: raw_so
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_23_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_23_type T_23 = {// for T: raw_si
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_24_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_24_type T_24 = {// for T: raw_dle
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_25_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_25_type T_25 = {// for T: raw_dc1
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_26_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_26_type T_26 = {// for T: raw_dc2
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_27_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_27_type T_27 = {// for T: raw_dc3
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_28_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_28_type T_28 = {// for T: raw_dc4
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_29_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_29_type T_29 = {// for T: raw_nak
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_30_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_30_type T_30 = {// for T: raw_syn
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_31_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_31_type T_31 = {// for T: raw_etb
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_32_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_32_type T_32 = {// for T: raw_can
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_33_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_33_type T_33 = {// for T: raw_em
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_34_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_34_type T_34 = {// for T: raw_sub
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_35_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_35_type T_35 = {// for T: raw_esc
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_36_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_36_type T_36 = {// for T: raw_fs
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_37_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_37_type T_37 = {// for T: raw_gs
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_38_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_38_type T_38 = {// for T: raw_rs
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_39_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_39_type T_39 = {// for T: raw_us
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_40_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_40_type T_40 = {// for T: raw_sp
+//8: TH_err_symbols_ph_th
+//11: TH_fsm_phrase_th
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//18: TH_lint_balls
+//19: TH_lr1_k_phrase_th
+//22: TH_o2_sdc
+//25: TH_parallel_parser_ph_th
+//27: TH_rc_phrase_th
+//29: TH_rhs_component
+//30: TH_rtn_component
+//31: TH_rules_phrase_th
+//37: TH_terminals_phrase_th
+//41: TH_T_enum_phrase_th
+//42: TH_unq_str
+//43: TH_ws
+ {3930999040
+ ,3616
+ }
+};
+struct T_41_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_41_type T_41 = {// for T: raw_exclam
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_42_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_42_type T_42 = {// for T: raw_dbl_quote
+//5: TH_c_string
+//14: TH_la_expr_src
+//15: TH_la_lrk_T
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//24: TH_parallel_oper
+//29: TH_rhs_component
+//30: TH_rtn_component
+//39: TH_term_def_ph
+//42: TH_unq_str
+//44: TH_xc_str
+ {1631764512
+ ,5248
+ }
+};
+struct T_43_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_43_type T_43 = {// for T: raw_no_sign
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_44_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_44_type T_44 = {// for T: raw_dollar_sign
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_45_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_45_type T_45 = {// for T: raw_percent
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_46_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_46_type T_46 = {// for T: raw_ampersign
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_47_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_47_type T_47 = {// for T: raw_right_quote
+//4: TH_c_literal
+//14: TH_la_expr_src
+//15: TH_la_lrk_T
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614987280
+ ,1024
+ }
+};
+struct T_48_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_48_type T_48 = {// for T: raw_open_bracket
+//8: TH_err_symbols_ph_th
+//11: TH_fsm_phrase_th
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//19: TH_lr1_k_phrase_th
+//22: TH_o2_sdc
+//25: TH_parallel_parser_ph_th
+//27: TH_rc_phrase_th
+//29: TH_rhs_component
+//30: TH_rtn_component
+//37: TH_terminals_phrase_th
+//41: TH_T_enum_phrase_th
+//42: TH_unq_str
+ {1783253248
+ ,1568
+ }
+};
+struct T_49_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_49_type T_49 = {// for T: raw_close_bracket
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_50_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_50_type T_50 = {// for T: raw_asteric
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//20: TH_o2_code_end
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1616003072
+ ,1024
+ }
+};
+struct T_51_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_51_type T_51 = {// for T: raw_plus
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_52_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_52_type T_52 = {// for T: raw_comma
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_53_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_53_type T_53 = {// for T: raw_minus
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//21: TH_o2_lcl_opt
+//22: TH_o2_sdc
+//28: TH_rhs_bnd
+//29: TH_rhs_component
+//30: TH_rtn_component
+//34: TH_subrules_phrase
+//35: TH_subrule_def
+//36: TH_subrule_vector
+//42: TH_unq_str
+ {1885487104
+ ,1052
+ }
+};
+struct T_54_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_54_type T_54 = {// for T: raw_period
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_55_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_55_type T_55 = {// for T: raw_slash
+//2: TH_cweb_or_c_k
+//3: TH_c_comments
+//8: TH_err_symbols_ph_th
+//11: TH_fsm_phrase_th
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//18: TH_lint_balls
+//19: TH_lr1_k_phrase_th
+//22: TH_o2_sdc
+//25: TH_parallel_parser_ph_th
+//27: TH_rc_phrase_th
+//29: TH_rhs_component
+//30: TH_rtn_component
+//31: TH_rules_phrase_th
+//37: TH_terminals_phrase_th
+//41: TH_T_enum_phrase_th
+//42: TH_unq_str
+ {3930999052
+ ,1568
+ }
+};
+struct T_56_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_56_type T_56 = {// for T: raw_0
+//13: TH_int_no
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614962688
+ ,1024
+ }
+};
+struct T_57_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_57_type T_57 = {// for T: raw_1
+//13: TH_int_no
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614962688
+ ,1024
+ }
+};
+struct T_58_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_58_type T_58 = {// for T: raw_2
+//13: TH_int_no
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614962688
+ ,1024
+ }
+};
+struct T_59_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_59_type T_59 = {// for T: raw_3
+//13: TH_int_no
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614962688
+ ,1024
+ }
+};
+struct T_60_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_60_type T_60 = {// for T: raw_4
+//13: TH_int_no
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614962688
+ ,1024
+ }
+};
+struct T_61_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_61_type T_61 = {// for T: raw_5
+//13: TH_int_no
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614962688
+ ,1024
+ }
+};
+struct T_62_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_62_type T_62 = {// for T: raw_6
+//13: TH_int_no
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614962688
+ ,1024
+ }
+};
+struct T_63_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_63_type T_63 = {// for T: raw_7
+//13: TH_int_no
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614962688
+ ,1024
+ }
+};
+struct T_64_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_64_type T_64 = {// for T: raw_8
+//13: TH_int_no
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614962688
+ ,1024
+ }
+};
+struct T_65_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_65_type T_65 = {// for T: raw_9
+//13: TH_int_no
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614962688
+ ,1024
+ }
+};
+struct T_66_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_66_type T_66 = {// for T: raw_colon
+//6: TH_dbl_colon
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954560
+ ,1024
+ }
+};
+struct T_67_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_67_type T_67 = {// for T: raw_semi_colon
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_68_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_68_type T_68 = {// for T: raw_less_than
+//0: TH_angled_string
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954497
+ ,1024
+ }
+};
+struct T_69_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_69_type T_69 = {// for T: raw_eq
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_70_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_70_type T_70 = {// for T: raw_gt_than
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_71_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_71_type T_71 = {// for T: raw_question_mark
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_72_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_72_type T_72 = {// for T: raw_at_sign
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//26: TH_prefile_include
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1682063360
+ ,1024
+ }
+};
+struct T_73_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_73_type T_73 = {// for T: raw_A
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//40: TH_t_def_delabort_tags
+//42: TH_unq_str
+ {1615025152
+ ,1409
+ }
+};
+struct T_74_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_74_type T_74 = {// for T: raw_B
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_75_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_75_type T_75 = {// for T: raw_C
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_76_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_76_type T_76 = {// for T: raw_D
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_77_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_77_type T_77 = {// for T: raw_E
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_78_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_78_type T_78 = {// for T: raw_F
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_79_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_79_type T_79 = {// for T: raw_G
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_80_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_80_type T_80 = {// for T: raw_H
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_81_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_81_type T_81 = {// for T: raw_I
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_82_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_82_type T_82 = {// for T: raw_J
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_83_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_83_type T_83 = {// for T: raw_K
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_84_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_84_type T_84 = {// for T: raw_L
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_85_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_85_type T_85 = {// for T: raw_M
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_86_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_86_type T_86 = {// for T: raw_N
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_87_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_87_type T_87 = {// for T: raw_O
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_88_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_88_type T_88 = {// for T: raw_P
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_89_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_89_type T_89 = {// for T: raw_Q
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_90_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_90_type T_90 = {// for T: raw_R
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_91_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_91_type T_91 = {// for T: raw_S
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_92_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_92_type T_92 = {// for T: raw_T
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_93_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_93_type T_93 = {// for T: raw_U
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_94_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_94_type T_94 = {// for T: raw_V
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_95_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_95_type T_95 = {// for T: raw_W
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_96_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_96_type T_96 = {// for T: raw_X
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_97_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_97_type T_97 = {// for T: raw_Y
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_98_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_98_type T_98 = {// for T: raw_Z
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_99_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_99_type T_99 = {// for T: raw_open_sq_bracket
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_100_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_100_type T_100 = {// for T: raw_back_slash
+//9: TH_esc_seq
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614955008
+ ,1024
+ }
+};
+struct T_101_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_101_type T_101 = {// for T: raw_close_sq_bracket
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_102_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_102_type T_102 = {// for T: raw_up_arrow
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_103_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_103_type T_103 = {// for T: raw_under_score
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_104_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_104_type T_104 = {// for T: raw_left_quote
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_105_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_105_type T_105 = {// for T: raw_a
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_106_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_106_type T_106 = {// for T: raw_b
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_107_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_107_type T_107 = {// for T: raw_c
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_108_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_108_type T_108 = {// for T: raw_d
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_109_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_109_type T_109 = {// for T: raw_e
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_110_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_110_type T_110 = {// for T: raw_f
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_111_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_111_type T_111 = {// for T: raw_g
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_112_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_112_type T_112 = {// for T: raw_h
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_113_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_113_type T_113 = {// for T: raw_i
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_114_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_114_type T_114 = {// for T: raw_j
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_115_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_115_type T_115 = {// for T: raw_k
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_116_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_116_type T_116 = {// for T: raw_l
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_117_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_117_type T_117 = {// for T: raw_m
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_118_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_118_type T_118 = {// for T: raw_n
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_119_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_119_type T_119 = {// for T: raw_o
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_120_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_120_type T_120 = {// for T: raw_p
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_121_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_121_type T_121 = {// for T: raw_q
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_122_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_122_type T_122 = {// for T: raw_r
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_123_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_123_type T_123 = {// for T: raw_s
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//38: TH_terminal_def_symclass
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1217
+ }
+};
+struct T_124_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_124_type T_124 = {// for T: raw_t
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_125_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_125_type T_125 = {// for T: raw_u
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_126_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_126_type T_126 = {// for T: raw_v
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_127_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_127_type T_127 = {// for T: raw_w
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_128_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_128_type T_128 = {// for T: raw_x
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_129_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_129_type T_129 = {// for T: raw_y
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_130_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_130_type T_130 = {// for T: raw_z
+//10: TH_fsm_class_phrase_th
+//12: TH_identifier
+//14: TH_la_expr_src
+//16: TH_linker_id
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//32: TH_rule_def_phrase
+//39: TH_term_def_ph
+//42: TH_unq_str
+ {1615025152
+ ,1153
+ }
+};
+struct T_131_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_131_type T_131 = {// for T: raw_open_brace
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//28: TH_rhs_bnd
+//29: TH_rhs_component
+//30: TH_rtn_component
+//31: TH_rules_phrase_th
+//42: TH_unq_str
+ {4030873600
+ ,1024
+ }
+};
+struct T_132_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_132_type T_132 = {// for T: raw_vertical_line
+//14: TH_la_expr_src
+//15: TH_la_lrk_T
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//24: TH_parallel_oper
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1631764480
+ ,1024
+ }
+};
+struct T_133_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_133_type T_133 = {// for T: raw_close_brace
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//28: TH_rhs_bnd
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1883389952
+ ,1024
+ }
+};
+struct T_134_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_134_type T_134 = {// for T: raw_tilde
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_135_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_135_type T_135 = {// for T: raw_del
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_136_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_136_type T_136 = {// for T: raw_x80
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_137_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_137_type T_137 = {// for T: raw_x81
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_138_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_138_type T_138 = {// for T: raw_x82
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_139_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_139_type T_139 = {// for T: raw_x83
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_140_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_140_type T_140 = {// for T: raw_x84
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_141_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_141_type T_141 = {// for T: raw_x85
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_142_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_142_type T_142 = {// for T: raw_x86
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_143_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_143_type T_143 = {// for T: raw_x87
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_144_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_144_type T_144 = {// for T: raw_x88
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_145_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_145_type T_145 = {// for T: raw_x89
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_146_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_146_type T_146 = {// for T: raw_x8a
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_147_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_147_type T_147 = {// for T: raw_x8b
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_148_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_148_type T_148 = {// for T: raw_x8c
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_149_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_149_type T_149 = {// for T: raw_x8d
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_150_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_150_type T_150 = {// for T: raw_x8e
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_151_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_151_type T_151 = {// for T: raw_x8f
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_152_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_152_type T_152 = {// for T: raw_x90
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_153_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_153_type T_153 = {// for T: raw_x91
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_154_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_154_type T_154 = {// for T: raw_x92
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_155_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_155_type T_155 = {// for T: raw_x93
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_156_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_156_type T_156 = {// for T: raw_x94
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_157_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_157_type T_157 = {// for T: raw_x95
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_158_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_158_type T_158 = {// for T: raw_x96
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_159_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_159_type T_159 = {// for T: raw_x97
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_160_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_160_type T_160 = {// for T: raw_x98
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_161_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_161_type T_161 = {// for T: raw_x99
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_162_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_162_type T_162 = {// for T: raw_x9a
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_163_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_163_type T_163 = {// for T: raw_x9b
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_164_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_164_type T_164 = {// for T: raw_x9c
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_165_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_165_type T_165 = {// for T: raw_x9d
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_166_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_166_type T_166 = {// for T: raw_x9e
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_167_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_167_type T_167 = {// for T: raw_x9f
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_168_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_168_type T_168 = {// for T: raw_xa0
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_169_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_169_type T_169 = {// for T: raw_xa1
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_170_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_170_type T_170 = {// for T: raw_xa2
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_171_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_171_type T_171 = {// for T: raw_xa3
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_172_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_172_type T_172 = {// for T: raw_xa4
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_173_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_173_type T_173 = {// for T: raw_xa5
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_174_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_174_type T_174 = {// for T: raw_xa6
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_175_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_175_type T_175 = {// for T: raw_xa7
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_176_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_176_type T_176 = {// for T: raw_xa8
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_177_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_177_type T_177 = {// for T: raw_xa9
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_178_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_178_type T_178 = {// for T: raw_xaa
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_179_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_179_type T_179 = {// for T: raw_xab
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_180_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_180_type T_180 = {// for T: raw_xac
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_181_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_181_type T_181 = {// for T: raw_xad
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_182_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_182_type T_182 = {// for T: raw_xae
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_183_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_183_type T_183 = {// for T: raw_xaf
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_184_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_184_type T_184 = {// for T: raw_xb0
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_185_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_185_type T_185 = {// for T: raw_xb1
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_186_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_186_type T_186 = {// for T: raw_xb2
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_187_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_187_type T_187 = {// for T: raw_xb3
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_188_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_188_type T_188 = {// for T: raw_xb4
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_189_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_189_type T_189 = {// for T: raw_xb5
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_190_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_190_type T_190 = {// for T: raw_xb6
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_191_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_191_type T_191 = {// for T: raw_xb7
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_192_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_192_type T_192 = {// for T: raw_xb8
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_193_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_193_type T_193 = {// for T: raw_xb9
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_194_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_194_type T_194 = {// for T: raw_xba
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_195_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_195_type T_195 = {// for T: raw_xbb
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_196_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_196_type T_196 = {// for T: raw_xbc
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_197_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_197_type T_197 = {// for T: raw_xbd
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_198_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_198_type T_198 = {// for T: raw_xbe
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_199_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_199_type T_199 = {// for T: raw_xbf
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_200_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_200_type T_200 = {// for T: raw_xc0
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_201_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_201_type T_201 = {// for T: raw_xc1
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_202_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_202_type T_202 = {// for T: raw_xc2
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_203_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_203_type T_203 = {// for T: raw_xc3
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_204_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_204_type T_204 = {// for T: raw_xc4
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_205_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_205_type T_205 = {// for T: raw_xc5
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_206_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_206_type T_206 = {// for T: raw_xc6
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_207_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_207_type T_207 = {// for T: raw_xc7
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_208_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_208_type T_208 = {// for T: raw_xc8
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_209_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_209_type T_209 = {// for T: raw_xc9
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_210_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_210_type T_210 = {// for T: raw_xca
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_211_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_211_type T_211 = {// for T: raw_xcb
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_212_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_212_type T_212 = {// for T: raw_xcc
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_213_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_213_type T_213 = {// for T: raw_xcd
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_214_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_214_type T_214 = {// for T: raw_xce
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_215_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_215_type T_215 = {// for T: raw_xcf
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_216_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_216_type T_216 = {// for T: raw_xd0
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_217_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_217_type T_217 = {// for T: raw_xd1
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_218_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_218_type T_218 = {// for T: raw_xd2
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_219_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_219_type T_219 = {// for T: raw_xd3
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_220_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_220_type T_220 = {// for T: raw_xd4
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_221_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_221_type T_221 = {// for T: raw_xd5
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_222_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_222_type T_222 = {// for T: raw_xd6
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_223_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_223_type T_223 = {// for T: raw_xd7
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_224_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_224_type T_224 = {// for T: raw_xd8
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_225_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_225_type T_225 = {// for T: raw_xd9
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_226_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_226_type T_226 = {// for T: raw_xda
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_227_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_227_type T_227 = {// for T: raw_xdb
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_228_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_228_type T_228 = {// for T: raw_xdc
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_229_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_229_type T_229 = {// for T: raw_xdd
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_230_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_230_type T_230 = {// for T: raw_xde
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_231_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_231_type T_231 = {// for T: raw_xdf
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_232_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_232_type T_232 = {// for T: raw_xe0
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_233_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_233_type T_233 = {// for T: raw_xe1
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_234_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_234_type T_234 = {// for T: raw_xe2
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_235_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_235_type T_235 = {// for T: raw_xe3
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_236_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_236_type T_236 = {// for T: raw_xe4
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_237_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_237_type T_237 = {// for T: raw_xe5
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_238_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_238_type T_238 = {// for T: raw_xe6
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_239_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_239_type T_239 = {// for T: raw_xe7
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_240_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_240_type T_240 = {// for T: raw_xe8
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_241_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_241_type T_241 = {// for T: raw_xe9
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_242_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_242_type T_242 = {// for T: raw_xea
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_243_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_243_type T_243 = {// for T: raw_xeb
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_244_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_244_type T_244 = {// for T: raw_xec
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_245_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_245_type T_245 = {// for T: raw_xed
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_246_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_246_type T_246 = {// for T: raw_xee
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_247_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_247_type T_247 = {// for T: raw_xef
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_248_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_248_type T_248 = {// for T: raw_xf0
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_249_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_249_type T_249 = {// for T: raw_xf1
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_250_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_250_type T_250 = {// for T: raw_xf2
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_251_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_251_type T_251 = {// for T: raw_xf3
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_252_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_252_type T_252 = {// for T: raw_xf4
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_253_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_253_type T_253 = {// for T: raw_xf5
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_254_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_254_type T_254 = {// for T: raw_xf6
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_255_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_255_type T_255 = {// for T: raw_xf7
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_256_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_256_type T_256 = {// for T: raw_xf8
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_257_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_257_type T_257 = {// for T: raw_xf9
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_258_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_258_type T_258 = {// for T: raw_xfa
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_259_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_259_type T_259 = {// for T: raw_xfb
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_260_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_260_type T_260 = {// for T: raw_xfc
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_261_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_261_type T_261 = {// for T: raw_xfd
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_262_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_262_type T_262 = {// for T: raw_xfe
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_263_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_263_type T_263 = {// for T: raw_xff
+//1: TH_bad_char_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954498
+ ,1024
+ }
+};
+struct T_264_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_264_type T_264 = {// for T: T_option_t
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_265_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_265_type T_265 = {// for T: T_option_p
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_266_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_266_type T_266 = {// for T: T_option_err
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_267_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_267_type T_267 = {// for T: T_esc_seq
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_268_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_268_type T_268 = {// for T: T_eol
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_269_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_269_type T_269 = {// for T: T_basic_char
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_270_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_270_type T_270 = {// for T: T_raw_char
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_271_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_271_type T_271 = {// for T: T_comment
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_272_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_272_type T_272 = {// for T: T_ws
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_273_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_273_type T_273 = {// for T: T_angled_string
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_274_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_274_type T_274 = {// for T: T_c_literal
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_275_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_275_type T_275 = {// for T: T_c_string
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_276_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_276_type T_276 = {// for T: T_xc_str
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_277_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_277_type T_277 = {// for T: T_unquoted_string
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_278_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_278_type T_278 = {// for T: T_file_inclusion
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_279_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_279_type T_279 = {// for T: T_identifier
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_280_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_280_type T_280 = {// for T: T_int_no
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_281_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_281_type T_281 = {// for T: T_raw_characters
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_282_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_282_type T_282 = {// for T: T_lr1_constant_symbols
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_283_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_283_type T_283 = {// for T: T_error_symbols
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_284_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_284_type T_284 = {// for T: T_eocode
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_285_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_285_type T_285 = {// for T: T_AD
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_286_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_286_type T_286 = {// for T: T_AB
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_287_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_287_type T_287 = {// for T: T_parallel_la_boundary
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_288_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_288_type T_288 = {// for T: T_arbitrator_code
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_289_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_289_type T_289 = {// for T: T_parallel_parser
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_290_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_290_type T_290 = {// for T: T_parallel_thread_function
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_291_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_291_type T_291 = {// for T: T_parallel_control_monitor
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//23: TH_parallel_monitor_ph
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1623343104
+ ,1024
+ }
+};
+struct T_292_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_292_type T_292 = {// for T: T_fsm
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_293_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_293_type T_293 = {// for T: T_fsm_id
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_294_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_294_type T_294 = {// for T: T_fsm_filename
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_295_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_295_type T_295 = {// for T: T_fsm_namespace
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_296_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_296_type T_296 = {// for T: T_fsm_class
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_297_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_297_type T_297 = {// for T: T_fsm_version
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_298_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_298_type T_298 = {// for T: T_fsm_date
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_299_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_299_type T_299 = {// for T: T_fsm_debug
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_300_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_300_type T_300 = {// for T: T_fsm_comments
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_301_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_301_type T_301 = {// for T: T_terminals
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_302_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_302_type T_302 = {// for T: T_enumeration
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_303_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_303_type T_303 = {// for T: T_file_name
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_304_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_304_type T_304 = {// for T: T_name_space
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_305_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_305_type T_305 = {// for T: T_sym_class
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_306_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_306_type T_306 = {// for T: T_rules
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_307_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_307_type T_307 = {// for T: T_lhs
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//33: TH_rule_lhs_phrase
+//42: TH_unq_str
+ {1614954496
+ ,1026
+ }
+};
+struct T_308_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_308_type T_308 = {// for T: T_user_declaration
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_309_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_309_type T_309 = {// for T: T_user_prefix_declaration
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_310_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_310_type T_310 = {// for T: T_user_suffix_declaration
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_311_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_311_type T_311 = {// for T: T_constructor
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_312_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_312_type T_312 = {// for T: T_destructor
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_313_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_313_type T_313 = {// for T: T_op
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_314_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_314_type T_314 = {// for T: T_failed
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_315_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_315_type T_315 = {// for T: T_user_implementation
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_316_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_316_type T_316 = {// for T: T_user_imp_tbl
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_317_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_317_type T_317 = {// for T: T_user_imp_sym
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_318_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_318_type T_318 = {// for T: T_constant_defs
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_319_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_319_type T_319 = {// for T: T_terminals_refs
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_320_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_320_type T_320 = {// for T: T_terminals_sufx
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_321_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_321_type T_321 = {// for T: T_lrk_sufx
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_322_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_322_type T_322 = {// for T: T_selector
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_323_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_323_type T_323 = {// for T: T_NULL
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_324_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_324_type T_324 = {// for T: T_2colon
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_325_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_325_type T_325 = {// for T: T_block
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_326_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_326_type T_326 = {// for T: T_syntax_code
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_327_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_327_type T_327 = {// for T: T_fsm_class_phrase
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_328_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_328_type T_328 = {// for T: T_fsm_phrase
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_329_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_329_type T_329 = {// for T: T_parallel_parser_phrase
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_330_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_330_type T_330 = {// for T: T_enum_phrase
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_331_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_331_type T_331 = {// for T: T_terminal_def
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_332_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_332_type T_332 = {// for T: table_entry
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_333_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_333_type T_333 = {// for T: T_sym_tbl_report_card
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_334_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_334_type T_334 = {// for T: T_terminals_phrase
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_335_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_335_type T_335 = {// for T: T_error_symbols_phrase
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_336_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_336_type T_336 = {// for T: T_lr1_k_phrase
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_337_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_337_type T_337 = {// for T: T_rc_phrase
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_338_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_338_type T_338 = {// for T: T_rule_lhs_phrase
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_339_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_339_type T_339 = {// for T: T_parallel_monitor_phrase
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_340_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_340_type T_340 = {// for T: rule_def
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_341_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_341_type T_341 = {// for T: T_rules_phrase
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_342_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_342_type T_342 = {// for T: T_subrule_def
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_343_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_343_type T_343 = {// for T: T_subrules_phrase
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_344_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_344_type T_344 = {// for T: T_in_stbl
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_345_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_345_type T_345 = {// for T: refered_T
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_346_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_346_type T_346 = {// for T: rule_in_stbl
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_347_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_347_type T_347 = {// for T: refered_rule
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_348_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_348_type T_348 = {// for T: T_transitive
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_349_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_349_type T_349 = {// for T: T_grammar_name
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_350_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_350_type T_350 = {// for T: T_thread_name
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_351_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_351_type T_351 = {// for T: T_monolithic
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_352_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_352_type T_352 = {// for T: T_no_of_T
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_353_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_353_type T_353 = {// for T: T_list_of_native_first_set_terminals
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_354_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_354_type T_354 = {// for T: T_end_list_of_native_first_set_terminals
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_355_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_355_type T_355 = {// for T: T_list_of_transitive_threads
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_356_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_356_type T_356 = {// for T: T_end_list_of_transitive_threads
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_357_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_357_type T_357 = {// for T: T_emitfile
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_358_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_358_type T_358 = {// for T: T_preamble
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_359_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_359_type T_359 = {// for T: T_end_preamble
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_360_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_360_type T_360 = {// for T: T_T_alphabet
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_361_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_361_type T_361 = {// for T: T_end_T_alphabet
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_362_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_362_type T_362 = {// for T: T_file_of_T_alphabet
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_363_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_363_type T_363 = {// for T: T_attributes
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_364_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_364_type T_364 = {// for T: tth_in_stbl
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_365_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_365_type T_365 = {// for T: thread_attributes
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_366_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_366_type T_366 = {// for T: th_in_stbl
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_367_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_367_type T_367 = {// for T: kw_in_stbl
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_368_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_368_type T_368 = {// for T: T_la_expr_src
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_369_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_369_type T_369 = {// for T: T_eosubrule
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_370_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_370_type T_370 = {// for T: T_called_thread_eosubrule
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_371_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_371_type T_371 = {// for T: T_null_call_thread_eosubrule
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_372_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_372_type T_372 = {// for T: T_cweb_comment
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_373_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_373_type T_373 = {// for T: T_grammar_phrase
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_374_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_374_type T_374 = {// for T: T_cweb_marker
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_375_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_375_type T_375 = {// for T: T_lint
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_376_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_376_type T_376 = {// for T: T_list_of_used_threads
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_377_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_377_type T_377 = {// for T: T_end_list_of_used_threads
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_378_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_378_type T_378 = {// for T: Err_nested_files_exceeded
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_379_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_379_type T_379 = {// for T: Err_no_end_of_code
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_380_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_380_type T_380 = {// for T: Err_no_cmd_lne_data
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_381_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_381_type T_381 = {// for T: Err_no_filename
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_382_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_382_type T_382 = {// for T: Err_bad_filename
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_383_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_383_type T_383 = {// for T: Err_bad_fsmheader_filename
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_384_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_384_type T_384 = {// for T: Err_bad_fsmcpp_filename
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_385_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_385_type T_385 = {// for T: Err_bad_fsmsym_filename
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_386_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_386_type T_386 = {// for T: Err_bad_fsmtbl_filename
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_387_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_387_type T_387 = {// for T: Err_bad_enum_filename
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_388_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_388_type T_388 = {// for T: Err_bad_errors_hdrfilename
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_389_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_389_type T_389 = {// for T: Err_bad_errors_impfilename
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_390_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_390_type T_390 = {// for T: Err_bad_cmd_lne_opt
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_391_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_391_type T_391 = {// for T: Err_bad_int_no
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_392_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_392_type T_392 = {// for T: Err_bad_int_no_range
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_393_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_393_type T_393 = {// for T: Err_no_int_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_394_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_394_type T_394 = {// for T: Err_bad_eos
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_395_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_395_type T_395 = {// for T: Err_bad_esc
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_396_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_396_type T_396 = {// for T: Err_comment_overrun
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_397_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_397_type T_397 = {// for T: Err_bad_char
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_398_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_398_type T_398 = {// for T: Err_bad_univ_seq
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_399_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_399_type T_399 = {// for T: Err_improper_closing_of_rules
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_400_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_400_type T_400 = {// for T: Err_no_identifier_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_401_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_401_type T_401 = {// for T: Err_no_directive_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_402_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_402_type T_402 = {// for T: Err_duplicate_directive
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_403_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_403_type T_403 = {// for T: Err_no_syntax_code_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_404_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_404_type T_404 = {// for T: Err_no_open_parenthesis
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_405_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_405_type T_405 = {// for T: Err_no_close_parenthesis
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_406_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_406_type T_406 = {// for T: Err_no_fsm_id_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_407_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_407_type T_407 = {// for T: Err_no_fsm_id_string
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_408_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_408_type T_408 = {// for T: Err_no_fsm_filename_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_409_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_409_type T_409 = {// for T: Err_no_fsm_filename_id_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_410_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_410_type T_410 = {// for T: Err_no_comma_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_411_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_411_type T_411 = {// for T: Err_no_fsm_namespace_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_412_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_412_type T_412 = {// for T: Err_no_fsm_namespace_id_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_413_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_413_type T_413 = {// for T: Err_no_fsm_class_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_414_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_414_type T_414 = {// for T: Err_no_fsm_version_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_415_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_415_type T_415 = {// for T: Err_no_fsm_version_string
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_416_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_416_type T_416 = {// for T: Err_no_fsm_date_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_417_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_417_type T_417 = {// for T: Err_no_fsm_date_string
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_418_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_418_type T_418 = {// for T: Err_no_fsm_debug_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_419_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_419_type T_419 = {// for T: Err_no_fsm_debug_string
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_420_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_420_type T_420 = {// for T: Err_no_fsm_comments_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_421_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_421_type T_421 = {// for T: Err_no_fsm_comments_string
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_422_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_422_type T_422 = {// for T: Err_fsm_debug_string_not_true_or_false
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_423_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_423_type T_423 = {// for T: Err_no_pp_thread_function_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_424_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_424_type T_424 = {// for T: Err_no_pp_ctrl_mntor_kw_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_425_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_425_type T_425 = {// for T: Err_no_pp_fnct_id_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_426_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_426_type T_426 = {// for T: Err_no_pp_bndry_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_427_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_427_type T_427 = {// for T: Err_no_pp_la_bndary_expr_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_428_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_428_type T_428 = {// for T: Err_no_syntax_code_end_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_429_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_429_type T_429 = {// for T: Err_no_pp_code_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_430_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_430_type T_430 = {// for T: Err_no_pp_code_stc_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_431_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_431_type T_431 = {// for T: Err_not_arbitration_code_kw
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_432_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_432_type T_432 = {// for T: Err_no_open_brace
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_433_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_433_type T_433 = {// for T: Err_no_close_brace
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_434_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_434_type T_434 = {// for T: Err_no_constant_defs_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_435_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_435_type T_435 = {// for T: Err_no_filename_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_436_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_436_type T_436 = {// for T: Err_no_filename_id_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_437_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_437_type T_437 = {// for T: Err_no_namespace_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_438_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_438_type T_438 = {// for T: Err_no_namespace_id_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_439_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_439_type T_439 = {// for T: Err_no_kdefs_code_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_440_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_440_type T_440 = {// for T: Err_no_kdefs_kw_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_441_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_441_type T_441 = {// for T: Err_no_tdef_code_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_442_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_442_type T_442 = {// for T: Err_no_sym_defs_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_443_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_443_type T_443 = {// for T: Err_no_terminal_key_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_444_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_444_type T_444 = {// for T: Err_dup_entry_in_alphabet
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_445_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_445_type T_445 = {// for T: Err_already_defined_AB
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_446_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_446_type T_446 = {// for T: Err_already_defined_AD
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_447_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_447_type T_447 = {// for T: Err_improper_directive
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_448_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_448_type T_448 = {// for T: Err_no_sym_class_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_449_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_449_type T_449 = {// for T: Err_no_sym_class_id_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_450_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_450_type T_450 = {// for T: Err_zero_len_sym
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_451_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_451_type T_451 = {// for T: Err_sym_tbl_full
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_452_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_452_type T_452 = {// for T: Err_sym_tbl_char_pool_full
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_453_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_453_type T_453 = {// for T: Err_dup_entry_in_sym_table
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_454_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_454_type T_454 = {// for T: Err_subscript_out_of_range
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_455_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_455_type T_455 = {// for T: Err_sym_tbl_nested_scope_stk_overflow
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_456_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_456_type T_456 = {// for T: Err_sym_tbl_nested_scope_stk_underflow
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_457_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_457_type T_457 = {// for T: Err_sym_tbl_context_buf_overflow
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_458_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_458_type T_458 = {// for T: Err_report_card_ptr_0
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_459_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_459_type T_459 = {// for T: Err_cannot_define_term_after_sufx_dir
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_460_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_460_type T_460 = {// for T: Err_dup_sufx_directive
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_461_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_461_type T_461 = {// for T: Err_terminals_refs_def_after_terminals
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_462_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_462_type T_462 = {// for T: Err_terminals_refs_dup_def
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_463_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_463_type T_463 = {// for T: Err_no_rule_name_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_464_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_464_type T_464 = {// for T: Err_no_sub_rule_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_465_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_465_type T_465 = {// for T: Err_subrule_use_undefined_T
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_466_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_466_type T_466 = {// for T: Err_stbl_entry_unknown
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_467_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_467_type T_467 = {// for T: Err_subrule_overrun
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_468_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_468_type T_468 = {// for T: Err_stble_has_entry_but_not_a_rule
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_469_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_469_type T_469 = {// for T: Err_file_of_T_alphabet_kw_not_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_470_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_470_type T_470 = {// for T: Err_emitfile_kw_not_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_471_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_471_type T_471 = {// for T: Err_preamble_kw_not_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_472_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_472_type T_472 = {// for T: Err_preamble_srce_code_not_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_473_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_473_type T_473 = {// for T: Err_end_preamble_kw_not_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_474_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_474_type T_474 = {// for T: Err_cmd_line_chaffe
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_475_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_475_type T_475 = {// for T: Err_T_alphabet_kw_not_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_476_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_476_type T_476 = {// for T: Err_T_alphabet_file_not_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_477_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_477_type T_477 = {// for T: Err_end_T_alphabet_kw_not_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_478_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_478_type T_478 = {// for T: Err_no_terminals_in_T_alphabet_list
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_479_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_479_type T_479 = {// for T: Err_rotten_chr_in_T_alphabet
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_480_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_480_type T_480 = {// for T: Err_transitive_kw_not_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_481_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_481_type T_481 = {// for T: Err_grammar_name_kw_not_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_482_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_482_type T_482 = {// for T: Err_namespace_kw_not_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_483_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_483_type T_483 = {// for T: Err_filename_kw_not_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_484_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_484_type T_484 = {// for T: Err_threadname_kw_not_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_485_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_485_type T_485 = {// for T: Err_monolithic_kw_not_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_486_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_486_type T_486 = {// for T: Err_no_of_T_kw_not_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_487_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_487_type T_487 = {// for T: Err_list_of_terminals_kw_not_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_488_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_488_type T_488 = {// for T: Err_no_list_of_trans_threads_kw
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_489_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_489_type T_489 = {// for T: Err_no_terminals_present_in_T_alphabet
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_490_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_490_type T_490 = {// for T: Err_transitive_value_bad
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_491_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_491_type T_491 = {// for T: Err_monolithic_value_bad
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_492_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_492_type T_492 = {// for T: Err_grammar_name_value_not_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_493_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_493_type T_493 = {// for T: Err_namespace_value_not_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_494_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_494_type T_494 = {// for T: Err_threadname_value_not_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_495_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_495_type T_495 = {// for T: Err_filename_value_not_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_496_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_496_type T_496 = {// for T: Err_no_of_T_value_not_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_497_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_497_type T_497 = {// for T: Err_no_of_terminals_not_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_498_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_498_type T_498 = {// for T: Err_end_list_native_T_kw_not_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_499_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_499_type T_499 = {// for T: Err_end_list_of_transitive_threads_kw_not_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_500_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_500_type T_500 = {// for T: Err_no_of_native_Ts_in_list_not_equal
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_501_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_501_type T_501 = {// for T: Err_no_of_threads_in_list_not_equal
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_502_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_502_type T_502 = {// for T: Err_thread_refed_but_not_defined
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_503_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_503_type T_503 = {// for T: Err_bad_T_in_list
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_504_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_504_type T_504 = {// for T: Err_bad_th_in_list
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_505_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_505_type T_505 = {// for T: Err_already_defined_in_fsc_file
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_506_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_506_type T_506 = {// for T: Err_bad_thread_subscript
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_507_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_507_type T_507 = {// for T: Err_not_a_keyword
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_508_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_508_type T_508 = {// for T: Err_no_of_threads_not_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_509_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_509_type T_509 = {// for T: Err_bad_T_alphabet
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_510_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_510_type T_510 = {// for T: Err_fsc_file_does_not_exist
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_511_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_511_type T_511 = {// for T: Err_filename_file_does_not_exist
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_512_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_512_type T_512 = {// for T: Err_T_alphabet_file_does_not_exist
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_513_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_513_type T_513 = {// for T: Err_emitfile_file_does_not_exist
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_514_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_514_type T_514 = {// for T: Err_emitfile_file_not_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_515_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_515_type T_515 = {// for T: Err_fsc_cntl_file_not_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_516_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_516_type T_516 = {// for T: Err_file_of_T_alphabet_not_present
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_517_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_517_type T_517 = {// for T: Err_epsilon_pass_thru
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_518_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_518_type T_518 = {// for T: Err_epsilon_pass_thru_no_Ts
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_519_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_519_type T_519 = {// for T: Err_rule_not_in_stbl
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_520_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_520_type T_520 = {// for T: Err_T_not_in_stbl
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_521_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_521_type T_521 = {// for T: Err_bad_directive
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_522_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_522_type T_522 = {// for T: Err_bad_term_in_la_expr
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_523_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_523_type T_523 = {// for T: Err_empty_set_removal_in_la_expr
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_524_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_524_type T_524 = {// for T: Err_bad_operator_in_la_expr
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_525_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_525_type T_525 = {// for T: Err_not_a_lhs_kw
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_526_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_526_type T_526 = {// for T: Err_pp_la_boundary_attribute_not_fnd
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_527_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_527_type T_527 = {// for T: Err_already_processed_fsm_phase
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_528_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_528_type T_528 = {// for T: Err_already_processed_pp_phase
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_529_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_529_type T_529 = {// for T: Err_already_processed_T_enum_phase
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_530_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_530_type T_530 = {// for T: Err_already_processed_error_phase
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_531_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_531_type T_531 = {// for T: Err_already_processed_rc_phase
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_532_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_532_type T_532 = {// for T: Err_already_processed_lrk_phase
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_533_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_533_type T_533 = {// for T: Err_already_processed_T_phase
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_534_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_534_type T_534 = {// for T: Err_already_processed_rule_phase
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_535_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_535_type T_535 = {// for T: Err_not_T_for_rtned_token_from_th
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_536_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_536_type T_536 = {// for T: Err_not_id_for_ns_in_th_stmt
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_537_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_537_type T_537 = {// for T: Err_not_id_for_th_name_in_th_stmt
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_538_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_538_type T_538 = {// for T: Err_bad_th_qualifier
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_539_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_539_type T_539 = {// for T: Err_not_dbl_colon_in_th_stmt
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_540_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_540_type T_540 = {// for T: Err_not_T_or_R_in_subrule_expr
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_541_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_541_type T_541 = {// for T: Err_not_T_or_R_or_eos_in_subrule_expr
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_542_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_542_type T_542 = {// for T: Err_not_eos_in_subrule_expr
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_543_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_543_type T_543 = {// for T: Err_invalid_logical_name
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_544_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_544_type T_544 = {// for T: Err_invalid_logical_value
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_545_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_545_type T_545 = {// for T: Err_duplicate_logical_name
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_546_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_546_type T_546 = {// for T: Err_missing_terminals_refs_kw
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_547_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_547_type T_547 = {// for T: Err_missing_terminals_sufx_kw
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_548_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_548_type T_548 = {// for T: Err_not_a_terminal_definition
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_549_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_549_type T_549 = {// for T: Err_missing_lrk_sufx_kw
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_550_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_550_type T_550 = {// for T: ERR_sick_grammar
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_551_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_551_type T_551 = {// for T: ERR_no_fsm_phrase
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_552_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_552_type T_552 = {// for T: ERR_no_T_enum_phrase
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_553_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_553_type T_553 = {// for T: ERR_no_lrk_phrase
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_554_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_554_type T_554 = {// for T: ERR_no_rc_phrase
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_555_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_555_type T_555 = {// for T: ERR_no_errors_phrase
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_556_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_556_type T_556 = {// for T: ERR_no_terminals_phrase
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_557_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_557_type T_557 = {// for T: ERR_no_rules_phrase
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_558_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_558_type T_558 = {// for T: Err_used_rule_but_undefined
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_559_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_559_type T_559 = {// for T: Err_rule_already_defined
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_560_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_560_type T_560 = {// for T: Err_la_expr_calc_empty_set
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_561_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_561_type T_561 = {// for T: Err_no_close_brace_ending_rules_defs
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_562_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_562_type T_562 = {// for T: Err_use_of_T_outside_Rules_construct
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_563_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_563_type T_563 = {// for T: Err_not_kw_defining_grammar_construct
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_564_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_564_type T_564 = {// for T: Err_use_of_N_outside_Rules_construct
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_565_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_565_type T_565 = {// for T: Err_misplaced_or_misspelt_Rule_or_T
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_566_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_566_type T_566 = {// for T: Err_not_a_Rule
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_567_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_567_type T_567 = {// for T: Err_empty_file
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct T_568_type{
+ yacco2::ULINT first_entry__[2];
+};
+
+T_568_type T_568 = {// for T: Err_not_lhs_pcnrl_mntr
+//14: TH_la_expr_src
+//17: TH_linker_preamble_code
+//22: TH_o2_sdc
+//29: TH_rhs_component
+//30: TH_rtn_component
+//42: TH_unq_str
+ {1614954496
+ ,1024
+ }
+};
+struct t_array_type {
+ yacco2::USINT no_entries__;
+ yacco2::thd_ids_having_T* first_entry__[569];
+};
+t_array_type t_array = {
+ 569
+ ,{
+(yacco2::thd_ids_having_T*)&T_0 // LR1_questionable_shift_operator
+ ,(yacco2::thd_ids_having_T*)&T_1 // LR1_eog
+ ,0// LR1_eolr
+ ,0// LR1_parallel_operator
+ ,0// LR1_reduce_operator
+ ,0// LR1_invisible_shift_operator
+ ,(yacco2::thd_ids_having_T*)&T_6 // LR1_all_shift_operator
+ ,(yacco2::thd_ids_having_T*)&T_7 // LR1_fset_transience_operator
+ ,(yacco2::thd_ids_having_T*)&T_8 // raw_nul
+ ,(yacco2::thd_ids_having_T*)&T_9 // raw_soh
+ ,(yacco2::thd_ids_having_T*)&T_10 // raw_stx
+ ,(yacco2::thd_ids_having_T*)&T_11 // raw_etx
+ ,(yacco2::thd_ids_having_T*)&T_12 // raw_eot
+ ,(yacco2::thd_ids_having_T*)&T_13 // raw_enq
+ ,(yacco2::thd_ids_having_T*)&T_14 // raw_ack
+ ,(yacco2::thd_ids_having_T*)&T_15 // raw_bel
+ ,(yacco2::thd_ids_having_T*)&T_16 // raw_bs
+ ,(yacco2::thd_ids_having_T*)&T_17 // raw_ht
+ ,(yacco2::thd_ids_having_T*)&T_18 // raw_lf
+ ,(yacco2::thd_ids_having_T*)&T_19 // raw_vt
+ ,(yacco2::thd_ids_having_T*)&T_20 // raw_ff
+ ,(yacco2::thd_ids_having_T*)&T_21 // raw_cr
+ ,(yacco2::thd_ids_having_T*)&T_22 // raw_so
+ ,(yacco2::thd_ids_having_T*)&T_23 // raw_si
+ ,(yacco2::thd_ids_having_T*)&T_24 // raw_dle
+ ,(yacco2::thd_ids_having_T*)&T_25 // raw_dc1
+ ,(yacco2::thd_ids_having_T*)&T_26 // raw_dc2
+ ,(yacco2::thd_ids_having_T*)&T_27 // raw_dc3
+ ,(yacco2::thd_ids_having_T*)&T_28 // raw_dc4
+ ,(yacco2::thd_ids_having_T*)&T_29 // raw_nak
+ ,(yacco2::thd_ids_having_T*)&T_30 // raw_syn
+ ,(yacco2::thd_ids_having_T*)&T_31 // raw_etb
+ ,(yacco2::thd_ids_having_T*)&T_32 // raw_can
+ ,(yacco2::thd_ids_having_T*)&T_33 // raw_em
+ ,(yacco2::thd_ids_having_T*)&T_34 // raw_sub
+ ,(yacco2::thd_ids_having_T*)&T_35 // raw_esc
+ ,(yacco2::thd_ids_having_T*)&T_36 // raw_fs
+ ,(yacco2::thd_ids_having_T*)&T_37 // raw_gs
+ ,(yacco2::thd_ids_having_T*)&T_38 // raw_rs
+ ,(yacco2::thd_ids_having_T*)&T_39 // raw_us
+ ,(yacco2::thd_ids_having_T*)&T_40 // raw_sp
+ ,(yacco2::thd_ids_having_T*)&T_41 // raw_exclam
+ ,(yacco2::thd_ids_having_T*)&T_42 // raw_dbl_quote
+ ,(yacco2::thd_ids_having_T*)&T_43 // raw_no_sign
+ ,(yacco2::thd_ids_having_T*)&T_44 // raw_dollar_sign
+ ,(yacco2::thd_ids_having_T*)&T_45 // raw_percent
+ ,(yacco2::thd_ids_having_T*)&T_46 // raw_ampersign
+ ,(yacco2::thd_ids_having_T*)&T_47 // raw_right_quote
+ ,(yacco2::thd_ids_having_T*)&T_48 // raw_open_bracket
+ ,(yacco2::thd_ids_having_T*)&T_49 // raw_close_bracket
+ ,(yacco2::thd_ids_having_T*)&T_50 // raw_asteric
+ ,(yacco2::thd_ids_having_T*)&T_51 // raw_plus
+ ,(yacco2::thd_ids_having_T*)&T_52 // raw_comma
+ ,(yacco2::thd_ids_having_T*)&T_53 // raw_minus
+ ,(yacco2::thd_ids_having_T*)&T_54 // raw_period
+ ,(yacco2::thd_ids_having_T*)&T_55 // raw_slash
+ ,(yacco2::thd_ids_having_T*)&T_56 // raw_0
+ ,(yacco2::thd_ids_having_T*)&T_57 // raw_1
+ ,(yacco2::thd_ids_having_T*)&T_58 // raw_2
+ ,(yacco2::thd_ids_having_T*)&T_59 // raw_3
+ ,(yacco2::thd_ids_having_T*)&T_60 // raw_4
+ ,(yacco2::thd_ids_having_T*)&T_61 // raw_5
+ ,(yacco2::thd_ids_having_T*)&T_62 // raw_6
+ ,(yacco2::thd_ids_having_T*)&T_63 // raw_7
+ ,(yacco2::thd_ids_having_T*)&T_64 // raw_8
+ ,(yacco2::thd_ids_having_T*)&T_65 // raw_9
+ ,(yacco2::thd_ids_having_T*)&T_66 // raw_colon
+ ,(yacco2::thd_ids_having_T*)&T_67 // raw_semi_colon
+ ,(yacco2::thd_ids_having_T*)&T_68 // raw_less_than
+ ,(yacco2::thd_ids_having_T*)&T_69 // raw_eq
+ ,(yacco2::thd_ids_having_T*)&T_70 // raw_gt_than
+ ,(yacco2::thd_ids_having_T*)&T_71 // raw_question_mark
+ ,(yacco2::thd_ids_having_T*)&T_72 // raw_at_sign
+ ,(yacco2::thd_ids_having_T*)&T_73 // raw_A
+ ,(yacco2::thd_ids_having_T*)&T_74 // raw_B
+ ,(yacco2::thd_ids_having_T*)&T_75 // raw_C
+ ,(yacco2::thd_ids_having_T*)&T_76 // raw_D
+ ,(yacco2::thd_ids_having_T*)&T_77 // raw_E
+ ,(yacco2::thd_ids_having_T*)&T_78 // raw_F
+ ,(yacco2::thd_ids_having_T*)&T_79 // raw_G
+ ,(yacco2::thd_ids_having_T*)&T_80 // raw_H
+ ,(yacco2::thd_ids_having_T*)&T_81 // raw_I
+ ,(yacco2::thd_ids_having_T*)&T_82 // raw_J
+ ,(yacco2::thd_ids_having_T*)&T_83 // raw_K
+ ,(yacco2::thd_ids_having_T*)&T_84 // raw_L
+ ,(yacco2::thd_ids_having_T*)&T_85 // raw_M
+ ,(yacco2::thd_ids_having_T*)&T_86 // raw_N
+ ,(yacco2::thd_ids_having_T*)&T_87 // raw_O
+ ,(yacco2::thd_ids_having_T*)&T_88 // raw_P
+ ,(yacco2::thd_ids_having_T*)&T_89 // raw_Q
+ ,(yacco2::thd_ids_having_T*)&T_90 // raw_R
+ ,(yacco2::thd_ids_having_T*)&T_91 // raw_S
+ ,(yacco2::thd_ids_having_T*)&T_92 // raw_T
+ ,(yacco2::thd_ids_having_T*)&T_93 // raw_U
+ ,(yacco2::thd_ids_having_T*)&T_94 // raw_V
+ ,(yacco2::thd_ids_having_T*)&T_95 // raw_W
+ ,(yacco2::thd_ids_having_T*)&T_96 // raw_X
+ ,(yacco2::thd_ids_having_T*)&T_97 // raw_Y
+ ,(yacco2::thd_ids_having_T*)&T_98 // raw_Z
+ ,(yacco2::thd_ids_having_T*)&T_99 // raw_open_sq_bracket
+ ,(yacco2::thd_ids_having_T*)&T_100 // raw_back_slash
+ ,(yacco2::thd_ids_having_T*)&T_101 // raw_close_sq_bracket
+ ,(yacco2::thd_ids_having_T*)&T_102 // raw_up_arrow
+ ,(yacco2::thd_ids_having_T*)&T_103 // raw_under_score
+ ,(yacco2::thd_ids_having_T*)&T_104 // raw_left_quote
+ ,(yacco2::thd_ids_having_T*)&T_105 // raw_a
+ ,(yacco2::thd_ids_having_T*)&T_106 // raw_b
+ ,(yacco2::thd_ids_having_T*)&T_107 // raw_c
+ ,(yacco2::thd_ids_having_T*)&T_108 // raw_d
+ ,(yacco2::thd_ids_having_T*)&T_109 // raw_e
+ ,(yacco2::thd_ids_having_T*)&T_110 // raw_f
+ ,(yacco2::thd_ids_having_T*)&T_111 // raw_g
+ ,(yacco2::thd_ids_having_T*)&T_112 // raw_h
+ ,(yacco2::thd_ids_having_T*)&T_113 // raw_i
+ ,(yacco2::thd_ids_having_T*)&T_114 // raw_j
+ ,(yacco2::thd_ids_having_T*)&T_115 // raw_k
+ ,(yacco2::thd_ids_having_T*)&T_116 // raw_l
+ ,(yacco2::thd_ids_having_T*)&T_117 // raw_m
+ ,(yacco2::thd_ids_having_T*)&T_118 // raw_n
+ ,(yacco2::thd_ids_having_T*)&T_119 // raw_o
+ ,(yacco2::thd_ids_having_T*)&T_120 // raw_p
+ ,(yacco2::thd_ids_having_T*)&T_121 // raw_q
+ ,(yacco2::thd_ids_having_T*)&T_122 // raw_r
+ ,(yacco2::thd_ids_having_T*)&T_123 // raw_s
+ ,(yacco2::thd_ids_having_T*)&T_124 // raw_t
+ ,(yacco2::thd_ids_having_T*)&T_125 // raw_u
+ ,(yacco2::thd_ids_having_T*)&T_126 // raw_v
+ ,(yacco2::thd_ids_having_T*)&T_127 // raw_w
+ ,(yacco2::thd_ids_having_T*)&T_128 // raw_x
+ ,(yacco2::thd_ids_having_T*)&T_129 // raw_y
+ ,(yacco2::thd_ids_having_T*)&T_130 // raw_z
+ ,(yacco2::thd_ids_having_T*)&T_131 // raw_open_brace
+ ,(yacco2::thd_ids_having_T*)&T_132 // raw_vertical_line
+ ,(yacco2::thd_ids_having_T*)&T_133 // raw_close_brace
+ ,(yacco2::thd_ids_having_T*)&T_134 // raw_tilde
+ ,(yacco2::thd_ids_having_T*)&T_135 // raw_del
+ ,(yacco2::thd_ids_having_T*)&T_136 // raw_x80
+ ,(yacco2::thd_ids_having_T*)&T_137 // raw_x81
+ ,(yacco2::thd_ids_having_T*)&T_138 // raw_x82
+ ,(yacco2::thd_ids_having_T*)&T_139 // raw_x83
+ ,(yacco2::thd_ids_having_T*)&T_140 // raw_x84
+ ,(yacco2::thd_ids_having_T*)&T_141 // raw_x85
+ ,(yacco2::thd_ids_having_T*)&T_142 // raw_x86
+ ,(yacco2::thd_ids_having_T*)&T_143 // raw_x87
+ ,(yacco2::thd_ids_having_T*)&T_144 // raw_x88
+ ,(yacco2::thd_ids_having_T*)&T_145 // raw_x89
+ ,(yacco2::thd_ids_having_T*)&T_146 // raw_x8a
+ ,(yacco2::thd_ids_having_T*)&T_147 // raw_x8b
+ ,(yacco2::thd_ids_having_T*)&T_148 // raw_x8c
+ ,(yacco2::thd_ids_having_T*)&T_149 // raw_x8d
+ ,(yacco2::thd_ids_having_T*)&T_150 // raw_x8e
+ ,(yacco2::thd_ids_having_T*)&T_151 // raw_x8f
+ ,(yacco2::thd_ids_having_T*)&T_152 // raw_x90
+ ,(yacco2::thd_ids_having_T*)&T_153 // raw_x91
+ ,(yacco2::thd_ids_having_T*)&T_154 // raw_x92
+ ,(yacco2::thd_ids_having_T*)&T_155 // raw_x93
+ ,(yacco2::thd_ids_having_T*)&T_156 // raw_x94
+ ,(yacco2::thd_ids_having_T*)&T_157 // raw_x95
+ ,(yacco2::thd_ids_having_T*)&T_158 // raw_x96
+ ,(yacco2::thd_ids_having_T*)&T_159 // raw_x97
+ ,(yacco2::thd_ids_having_T*)&T_160 // raw_x98
+ ,(yacco2::thd_ids_having_T*)&T_161 // raw_x99
+ ,(yacco2::thd_ids_having_T*)&T_162 // raw_x9a
+ ,(yacco2::thd_ids_having_T*)&T_163 // raw_x9b
+ ,(yacco2::thd_ids_having_T*)&T_164 // raw_x9c
+ ,(yacco2::thd_ids_having_T*)&T_165 // raw_x9d
+ ,(yacco2::thd_ids_having_T*)&T_166 // raw_x9e
+ ,(yacco2::thd_ids_having_T*)&T_167 // raw_x9f
+ ,(yacco2::thd_ids_having_T*)&T_168 // raw_xa0
+ ,(yacco2::thd_ids_having_T*)&T_169 // raw_xa1
+ ,(yacco2::thd_ids_having_T*)&T_170 // raw_xa2
+ ,(yacco2::thd_ids_having_T*)&T_171 // raw_xa3
+ ,(yacco2::thd_ids_having_T*)&T_172 // raw_xa4
+ ,(yacco2::thd_ids_having_T*)&T_173 // raw_xa5
+ ,(yacco2::thd_ids_having_T*)&T_174 // raw_xa6
+ ,(yacco2::thd_ids_having_T*)&T_175 // raw_xa7
+ ,(yacco2::thd_ids_having_T*)&T_176 // raw_xa8
+ ,(yacco2::thd_ids_having_T*)&T_177 // raw_xa9
+ ,(yacco2::thd_ids_having_T*)&T_178 // raw_xaa
+ ,(yacco2::thd_ids_having_T*)&T_179 // raw_xab
+ ,(yacco2::thd_ids_having_T*)&T_180 // raw_xac
+ ,(yacco2::thd_ids_having_T*)&T_181 // raw_xad
+ ,(yacco2::thd_ids_having_T*)&T_182 // raw_xae
+ ,(yacco2::thd_ids_having_T*)&T_183 // raw_xaf
+ ,(yacco2::thd_ids_having_T*)&T_184 // raw_xb0
+ ,(yacco2::thd_ids_having_T*)&T_185 // raw_xb1
+ ,(yacco2::thd_ids_having_T*)&T_186 // raw_xb2
+ ,(yacco2::thd_ids_having_T*)&T_187 // raw_xb3
+ ,(yacco2::thd_ids_having_T*)&T_188 // raw_xb4
+ ,(yacco2::thd_ids_having_T*)&T_189 // raw_xb5
+ ,(yacco2::thd_ids_having_T*)&T_190 // raw_xb6
+ ,(yacco2::thd_ids_having_T*)&T_191 // raw_xb7
+ ,(yacco2::thd_ids_having_T*)&T_192 // raw_xb8
+ ,(yacco2::thd_ids_having_T*)&T_193 // raw_xb9
+ ,(yacco2::thd_ids_having_T*)&T_194 // raw_xba
+ ,(yacco2::thd_ids_having_T*)&T_195 // raw_xbb
+ ,(yacco2::thd_ids_having_T*)&T_196 // raw_xbc
+ ,(yacco2::thd_ids_having_T*)&T_197 // raw_xbd
+ ,(yacco2::thd_ids_having_T*)&T_198 // raw_xbe
+ ,(yacco2::thd_ids_having_T*)&T_199 // raw_xbf
+ ,(yacco2::thd_ids_having_T*)&T_200 // raw_xc0
+ ,(yacco2::thd_ids_having_T*)&T_201 // raw_xc1
+ ,(yacco2::thd_ids_having_T*)&T_202 // raw_xc2
+ ,(yacco2::thd_ids_having_T*)&T_203 // raw_xc3
+ ,(yacco2::thd_ids_having_T*)&T_204 // raw_xc4
+ ,(yacco2::thd_ids_having_T*)&T_205 // raw_xc5
+ ,(yacco2::thd_ids_having_T*)&T_206 // raw_xc6
+ ,(yacco2::thd_ids_having_T*)&T_207 // raw_xc7
+ ,(yacco2::thd_ids_having_T*)&T_208 // raw_xc8
+ ,(yacco2::thd_ids_having_T*)&T_209 // raw_xc9
+ ,(yacco2::thd_ids_having_T*)&T_210 // raw_xca
+ ,(yacco2::thd_ids_having_T*)&T_211 // raw_xcb
+ ,(yacco2::thd_ids_having_T*)&T_212 // raw_xcc
+ ,(yacco2::thd_ids_having_T*)&T_213 // raw_xcd
+ ,(yacco2::thd_ids_having_T*)&T_214 // raw_xce
+ ,(yacco2::thd_ids_having_T*)&T_215 // raw_xcf
+ ,(yacco2::thd_ids_having_T*)&T_216 // raw_xd0
+ ,(yacco2::thd_ids_having_T*)&T_217 // raw_xd1
+ ,(yacco2::thd_ids_having_T*)&T_218 // raw_xd2
+ ,(yacco2::thd_ids_having_T*)&T_219 // raw_xd3
+ ,(yacco2::thd_ids_having_T*)&T_220 // raw_xd4
+ ,(yacco2::thd_ids_having_T*)&T_221 // raw_xd5
+ ,(yacco2::thd_ids_having_T*)&T_222 // raw_xd6
+ ,(yacco2::thd_ids_having_T*)&T_223 // raw_xd7
+ ,(yacco2::thd_ids_having_T*)&T_224 // raw_xd8
+ ,(yacco2::thd_ids_having_T*)&T_225 // raw_xd9
+ ,(yacco2::thd_ids_having_T*)&T_226 // raw_xda
+ ,(yacco2::thd_ids_having_T*)&T_227 // raw_xdb
+ ,(yacco2::thd_ids_having_T*)&T_228 // raw_xdc
+ ,(yacco2::thd_ids_having_T*)&T_229 // raw_xdd
+ ,(yacco2::thd_ids_having_T*)&T_230 // raw_xde
+ ,(yacco2::thd_ids_having_T*)&T_231 // raw_xdf
+ ,(yacco2::thd_ids_having_T*)&T_232 // raw_xe0
+ ,(yacco2::thd_ids_having_T*)&T_233 // raw_xe1
+ ,(yacco2::thd_ids_having_T*)&T_234 // raw_xe2
+ ,(yacco2::thd_ids_having_T*)&T_235 // raw_xe3
+ ,(yacco2::thd_ids_having_T*)&T_236 // raw_xe4
+ ,(yacco2::thd_ids_having_T*)&T_237 // raw_xe5
+ ,(yacco2::thd_ids_having_T*)&T_238 // raw_xe6
+ ,(yacco2::thd_ids_having_T*)&T_239 // raw_xe7
+ ,(yacco2::thd_ids_having_T*)&T_240 // raw_xe8
+ ,(yacco2::thd_ids_having_T*)&T_241 // raw_xe9
+ ,(yacco2::thd_ids_having_T*)&T_242 // raw_xea
+ ,(yacco2::thd_ids_having_T*)&T_243 // raw_xeb
+ ,(yacco2::thd_ids_having_T*)&T_244 // raw_xec
+ ,(yacco2::thd_ids_having_T*)&T_245 // raw_xed
+ ,(yacco2::thd_ids_having_T*)&T_246 // raw_xee
+ ,(yacco2::thd_ids_having_T*)&T_247 // raw_xef
+ ,(yacco2::thd_ids_having_T*)&T_248 // raw_xf0
+ ,(yacco2::thd_ids_having_T*)&T_249 // raw_xf1
+ ,(yacco2::thd_ids_having_T*)&T_250 // raw_xf2
+ ,(yacco2::thd_ids_having_T*)&T_251 // raw_xf3
+ ,(yacco2::thd_ids_having_T*)&T_252 // raw_xf4
+ ,(yacco2::thd_ids_having_T*)&T_253 // raw_xf5
+ ,(yacco2::thd_ids_having_T*)&T_254 // raw_xf6
+ ,(yacco2::thd_ids_having_T*)&T_255 // raw_xf7
+ ,(yacco2::thd_ids_having_T*)&T_256 // raw_xf8
+ ,(yacco2::thd_ids_having_T*)&T_257 // raw_xf9
+ ,(yacco2::thd_ids_having_T*)&T_258 // raw_xfa
+ ,(yacco2::thd_ids_having_T*)&T_259 // raw_xfb
+ ,(yacco2::thd_ids_having_T*)&T_260 // raw_xfc
+ ,(yacco2::thd_ids_having_T*)&T_261 // raw_xfd
+ ,(yacco2::thd_ids_having_T*)&T_262 // raw_xfe
+ ,(yacco2::thd_ids_having_T*)&T_263 // raw_xff
+ ,(yacco2::thd_ids_having_T*)&T_264 // T_option_t
+ ,(yacco2::thd_ids_having_T*)&T_265 // T_option_p
+ ,(yacco2::thd_ids_having_T*)&T_266 // T_option_err
+ ,(yacco2::thd_ids_having_T*)&T_267 // T_esc_seq
+ ,(yacco2::thd_ids_having_T*)&T_268 // T_eol
+ ,(yacco2::thd_ids_having_T*)&T_269 // T_basic_char
+ ,(yacco2::thd_ids_having_T*)&T_270 // T_raw_char
+ ,(yacco2::thd_ids_having_T*)&T_271 // T_comment
+ ,(yacco2::thd_ids_having_T*)&T_272 // T_ws
+ ,(yacco2::thd_ids_having_T*)&T_273 // T_angled_string
+ ,(yacco2::thd_ids_having_T*)&T_274 // T_c_literal
+ ,(yacco2::thd_ids_having_T*)&T_275 // T_c_string
+ ,(yacco2::thd_ids_having_T*)&T_276 // T_xc_str
+ ,(yacco2::thd_ids_having_T*)&T_277 // T_unquoted_string
+ ,(yacco2::thd_ids_having_T*)&T_278 // T_file_inclusion
+ ,(yacco2::thd_ids_having_T*)&T_279 // T_identifier
+ ,(yacco2::thd_ids_having_T*)&T_280 // T_int_no
+ ,(yacco2::thd_ids_having_T*)&T_281 // T_raw_characters
+ ,(yacco2::thd_ids_having_T*)&T_282 // T_lr1_constant_symbols
+ ,(yacco2::thd_ids_having_T*)&T_283 // T_error_symbols
+ ,(yacco2::thd_ids_having_T*)&T_284 // T_eocode
+ ,(yacco2::thd_ids_having_T*)&T_285 // T_AD
+ ,(yacco2::thd_ids_having_T*)&T_286 // T_AB
+ ,(yacco2::thd_ids_having_T*)&T_287 // T_parallel_la_boundary
+ ,(yacco2::thd_ids_having_T*)&T_288 // T_arbitrator_code
+ ,(yacco2::thd_ids_having_T*)&T_289 // T_parallel_parser
+ ,(yacco2::thd_ids_having_T*)&T_290 // T_parallel_thread_function
+ ,(yacco2::thd_ids_having_T*)&T_291 // T_parallel_control_monitor
+ ,(yacco2::thd_ids_having_T*)&T_292 // T_fsm
+ ,(yacco2::thd_ids_having_T*)&T_293 // T_fsm_id
+ ,(yacco2::thd_ids_having_T*)&T_294 // T_fsm_filename
+ ,(yacco2::thd_ids_having_T*)&T_295 // T_fsm_namespace
+ ,(yacco2::thd_ids_having_T*)&T_296 // T_fsm_class
+ ,(yacco2::thd_ids_having_T*)&T_297 // T_fsm_version
+ ,(yacco2::thd_ids_having_T*)&T_298 // T_fsm_date
+ ,(yacco2::thd_ids_having_T*)&T_299 // T_fsm_debug
+ ,(yacco2::thd_ids_having_T*)&T_300 // T_fsm_comments
+ ,(yacco2::thd_ids_having_T*)&T_301 // T_terminals
+ ,(yacco2::thd_ids_having_T*)&T_302 // T_enumeration
+ ,(yacco2::thd_ids_having_T*)&T_303 // T_file_name
+ ,(yacco2::thd_ids_having_T*)&T_304 // T_name_space
+ ,(yacco2::thd_ids_having_T*)&T_305 // T_sym_class
+ ,(yacco2::thd_ids_having_T*)&T_306 // T_rules
+ ,(yacco2::thd_ids_having_T*)&T_307 // T_lhs
+ ,(yacco2::thd_ids_having_T*)&T_308 // T_user_declaration
+ ,(yacco2::thd_ids_having_T*)&T_309 // T_user_prefix_declaration
+ ,(yacco2::thd_ids_having_T*)&T_310 // T_user_suffix_declaration
+ ,(yacco2::thd_ids_having_T*)&T_311 // T_constructor
+ ,(yacco2::thd_ids_having_T*)&T_312 // T_destructor
+ ,(yacco2::thd_ids_having_T*)&T_313 // T_op
+ ,(yacco2::thd_ids_having_T*)&T_314 // T_failed
+ ,(yacco2::thd_ids_having_T*)&T_315 // T_user_implementation
+ ,(yacco2::thd_ids_having_T*)&T_316 // T_user_imp_tbl
+ ,(yacco2::thd_ids_having_T*)&T_317 // T_user_imp_sym
+ ,(yacco2::thd_ids_having_T*)&T_318 // T_constant_defs
+ ,(yacco2::thd_ids_having_T*)&T_319 // T_terminals_refs
+ ,(yacco2::thd_ids_having_T*)&T_320 // T_terminals_sufx
+ ,(yacco2::thd_ids_having_T*)&T_321 // T_lrk_sufx
+ ,(yacco2::thd_ids_having_T*)&T_322 // T_selector
+ ,(yacco2::thd_ids_having_T*)&T_323 // T_NULL
+ ,(yacco2::thd_ids_having_T*)&T_324 // T_2colon
+ ,(yacco2::thd_ids_having_T*)&T_325 // T_block
+ ,(yacco2::thd_ids_having_T*)&T_326 // T_syntax_code
+ ,(yacco2::thd_ids_having_T*)&T_327 // T_fsm_class_phrase
+ ,(yacco2::thd_ids_having_T*)&T_328 // T_fsm_phrase
+ ,(yacco2::thd_ids_having_T*)&T_329 // T_parallel_parser_phrase
+ ,(yacco2::thd_ids_having_T*)&T_330 // T_enum_phrase
+ ,(yacco2::thd_ids_having_T*)&T_331 // T_terminal_def
+ ,(yacco2::thd_ids_having_T*)&T_332 // table_entry
+ ,(yacco2::thd_ids_having_T*)&T_333 // T_sym_tbl_report_card
+ ,(yacco2::thd_ids_having_T*)&T_334 // T_terminals_phrase
+ ,(yacco2::thd_ids_having_T*)&T_335 // T_error_symbols_phrase
+ ,(yacco2::thd_ids_having_T*)&T_336 // T_lr1_k_phrase
+ ,(yacco2::thd_ids_having_T*)&T_337 // T_rc_phrase
+ ,(yacco2::thd_ids_having_T*)&T_338 // T_rule_lhs_phrase
+ ,(yacco2::thd_ids_having_T*)&T_339 // T_parallel_monitor_phrase
+ ,(yacco2::thd_ids_having_T*)&T_340 // rule_def
+ ,(yacco2::thd_ids_having_T*)&T_341 // T_rules_phrase
+ ,(yacco2::thd_ids_having_T*)&T_342 // T_subrule_def
+ ,(yacco2::thd_ids_having_T*)&T_343 // T_subrules_phrase
+ ,(yacco2::thd_ids_having_T*)&T_344 // T_in_stbl
+ ,(yacco2::thd_ids_having_T*)&T_345 // refered_T
+ ,(yacco2::thd_ids_having_T*)&T_346 // rule_in_stbl
+ ,(yacco2::thd_ids_having_T*)&T_347 // refered_rule
+ ,(yacco2::thd_ids_having_T*)&T_348 // T_transitive
+ ,(yacco2::thd_ids_having_T*)&T_349 // T_grammar_name
+ ,(yacco2::thd_ids_having_T*)&T_350 // T_thread_name
+ ,(yacco2::thd_ids_having_T*)&T_351 // T_monolithic
+ ,(yacco2::thd_ids_having_T*)&T_352 // T_no_of_T
+ ,(yacco2::thd_ids_having_T*)&T_353 // T_list_of_native_first_set_terminals
+ ,(yacco2::thd_ids_having_T*)&T_354 // T_end_list_of_native_first_set_terminals
+ ,(yacco2::thd_ids_having_T*)&T_355 // T_list_of_transitive_threads
+ ,(yacco2::thd_ids_having_T*)&T_356 // T_end_list_of_transitive_threads
+ ,(yacco2::thd_ids_having_T*)&T_357 // T_emitfile
+ ,(yacco2::thd_ids_having_T*)&T_358 // T_preamble
+ ,(yacco2::thd_ids_having_T*)&T_359 // T_end_preamble
+ ,(yacco2::thd_ids_having_T*)&T_360 // T_T_alphabet
+ ,(yacco2::thd_ids_having_T*)&T_361 // T_end_T_alphabet
+ ,(yacco2::thd_ids_having_T*)&T_362 // T_file_of_T_alphabet
+ ,(yacco2::thd_ids_having_T*)&T_363 // T_attributes
+ ,(yacco2::thd_ids_having_T*)&T_364 // tth_in_stbl
+ ,(yacco2::thd_ids_having_T*)&T_365 // thread_attributes
+ ,(yacco2::thd_ids_having_T*)&T_366 // th_in_stbl
+ ,(yacco2::thd_ids_having_T*)&T_367 // kw_in_stbl
+ ,(yacco2::thd_ids_having_T*)&T_368 // T_la_expr_src
+ ,(yacco2::thd_ids_having_T*)&T_369 // T_eosubrule
+ ,(yacco2::thd_ids_having_T*)&T_370 // T_called_thread_eosubrule
+ ,(yacco2::thd_ids_having_T*)&T_371 // T_null_call_thread_eosubrule
+ ,(yacco2::thd_ids_having_T*)&T_372 // T_cweb_comment
+ ,(yacco2::thd_ids_having_T*)&T_373 // T_grammar_phrase
+ ,(yacco2::thd_ids_having_T*)&T_374 // T_cweb_marker
+ ,(yacco2::thd_ids_having_T*)&T_375 // T_lint
+ ,(yacco2::thd_ids_having_T*)&T_376 // T_list_of_used_threads
+ ,(yacco2::thd_ids_having_T*)&T_377 // T_end_list_of_used_threads
+ ,(yacco2::thd_ids_having_T*)&T_378 // Err_nested_files_exceeded
+ ,(yacco2::thd_ids_having_T*)&T_379 // Err_no_end_of_code
+ ,(yacco2::thd_ids_having_T*)&T_380 // Err_no_cmd_lne_data
+ ,(yacco2::thd_ids_having_T*)&T_381 // Err_no_filename
+ ,(yacco2::thd_ids_having_T*)&T_382 // Err_bad_filename
+ ,(yacco2::thd_ids_having_T*)&T_383 // Err_bad_fsmheader_filename
+ ,(yacco2::thd_ids_having_T*)&T_384 // Err_bad_fsmcpp_filename
+ ,(yacco2::thd_ids_having_T*)&T_385 // Err_bad_fsmsym_filename
+ ,(yacco2::thd_ids_having_T*)&T_386 // Err_bad_fsmtbl_filename
+ ,(yacco2::thd_ids_having_T*)&T_387 // Err_bad_enum_filename
+ ,(yacco2::thd_ids_having_T*)&T_388 // Err_bad_errors_hdrfilename
+ ,(yacco2::thd_ids_having_T*)&T_389 // Err_bad_errors_impfilename
+ ,(yacco2::thd_ids_having_T*)&T_390 // Err_bad_cmd_lne_opt
+ ,(yacco2::thd_ids_having_T*)&T_391 // Err_bad_int_no
+ ,(yacco2::thd_ids_having_T*)&T_392 // Err_bad_int_no_range
+ ,(yacco2::thd_ids_having_T*)&T_393 // Err_no_int_present
+ ,(yacco2::thd_ids_having_T*)&T_394 // Err_bad_eos
+ ,(yacco2::thd_ids_having_T*)&T_395 // Err_bad_esc
+ ,(yacco2::thd_ids_having_T*)&T_396 // Err_comment_overrun
+ ,(yacco2::thd_ids_having_T*)&T_397 // Err_bad_char
+ ,(yacco2::thd_ids_having_T*)&T_398 // Err_bad_univ_seq
+ ,(yacco2::thd_ids_having_T*)&T_399 // Err_improper_closing_of_rules
+ ,(yacco2::thd_ids_having_T*)&T_400 // Err_no_identifier_present
+ ,(yacco2::thd_ids_having_T*)&T_401 // Err_no_directive_present
+ ,(yacco2::thd_ids_having_T*)&T_402 // Err_duplicate_directive
+ ,(yacco2::thd_ids_having_T*)&T_403 // Err_no_syntax_code_present
+ ,(yacco2::thd_ids_having_T*)&T_404 // Err_no_open_parenthesis
+ ,(yacco2::thd_ids_having_T*)&T_405 // Err_no_close_parenthesis
+ ,(yacco2::thd_ids_having_T*)&T_406 // Err_no_fsm_id_present
+ ,(yacco2::thd_ids_having_T*)&T_407 // Err_no_fsm_id_string
+ ,(yacco2::thd_ids_having_T*)&T_408 // Err_no_fsm_filename_present
+ ,(yacco2::thd_ids_having_T*)&T_409 // Err_no_fsm_filename_id_present
+ ,(yacco2::thd_ids_having_T*)&T_410 // Err_no_comma_present
+ ,(yacco2::thd_ids_having_T*)&T_411 // Err_no_fsm_namespace_present
+ ,(yacco2::thd_ids_having_T*)&T_412 // Err_no_fsm_namespace_id_present
+ ,(yacco2::thd_ids_having_T*)&T_413 // Err_no_fsm_class_present
+ ,(yacco2::thd_ids_having_T*)&T_414 // Err_no_fsm_version_present
+ ,(yacco2::thd_ids_having_T*)&T_415 // Err_no_fsm_version_string
+ ,(yacco2::thd_ids_having_T*)&T_416 // Err_no_fsm_date_present
+ ,(yacco2::thd_ids_having_T*)&T_417 // Err_no_fsm_date_string
+ ,(yacco2::thd_ids_having_T*)&T_418 // Err_no_fsm_debug_present
+ ,(yacco2::thd_ids_having_T*)&T_419 // Err_no_fsm_debug_string
+ ,(yacco2::thd_ids_having_T*)&T_420 // Err_no_fsm_comments_present
+ ,(yacco2::thd_ids_having_T*)&T_421 // Err_no_fsm_comments_string
+ ,(yacco2::thd_ids_having_T*)&T_422 // Err_fsm_debug_string_not_true_or_false
+ ,(yacco2::thd_ids_having_T*)&T_423 // Err_no_pp_thread_function_present
+ ,(yacco2::thd_ids_having_T*)&T_424 // Err_no_pp_ctrl_mntor_kw_present
+ ,(yacco2::thd_ids_having_T*)&T_425 // Err_no_pp_fnct_id_present
+ ,(yacco2::thd_ids_having_T*)&T_426 // Err_no_pp_bndry_present
+ ,(yacco2::thd_ids_having_T*)&T_427 // Err_no_pp_la_bndary_expr_present
+ ,(yacco2::thd_ids_having_T*)&T_428 // Err_no_syntax_code_end_present
+ ,(yacco2::thd_ids_having_T*)&T_429 // Err_no_pp_code_present
+ ,(yacco2::thd_ids_having_T*)&T_430 // Err_no_pp_code_stc_present
+ ,(yacco2::thd_ids_having_T*)&T_431 // Err_not_arbitration_code_kw
+ ,(yacco2::thd_ids_having_T*)&T_432 // Err_no_open_brace
+ ,(yacco2::thd_ids_having_T*)&T_433 // Err_no_close_brace
+ ,(yacco2::thd_ids_having_T*)&T_434 // Err_no_constant_defs_present
+ ,(yacco2::thd_ids_having_T*)&T_435 // Err_no_filename_present
+ ,(yacco2::thd_ids_having_T*)&T_436 // Err_no_filename_id_present
+ ,(yacco2::thd_ids_having_T*)&T_437 // Err_no_namespace_present
+ ,(yacco2::thd_ids_having_T*)&T_438 // Err_no_namespace_id_present
+ ,(yacco2::thd_ids_having_T*)&T_439 // Err_no_kdefs_code_present
+ ,(yacco2::thd_ids_having_T*)&T_440 // Err_no_kdefs_kw_present
+ ,(yacco2::thd_ids_having_T*)&T_441 // Err_no_tdef_code_present
+ ,(yacco2::thd_ids_having_T*)&T_442 // Err_no_sym_defs_present
+ ,(yacco2::thd_ids_having_T*)&T_443 // Err_no_terminal_key_present
+ ,(yacco2::thd_ids_having_T*)&T_444 // Err_dup_entry_in_alphabet
+ ,(yacco2::thd_ids_having_T*)&T_445 // Err_already_defined_AB
+ ,(yacco2::thd_ids_having_T*)&T_446 // Err_already_defined_AD
+ ,(yacco2::thd_ids_having_T*)&T_447 // Err_improper_directive
+ ,(yacco2::thd_ids_having_T*)&T_448 // Err_no_sym_class_present
+ ,(yacco2::thd_ids_having_T*)&T_449 // Err_no_sym_class_id_present
+ ,(yacco2::thd_ids_having_T*)&T_450 // Err_zero_len_sym
+ ,(yacco2::thd_ids_having_T*)&T_451 // Err_sym_tbl_full
+ ,(yacco2::thd_ids_having_T*)&T_452 // Err_sym_tbl_char_pool_full
+ ,(yacco2::thd_ids_having_T*)&T_453 // Err_dup_entry_in_sym_table
+ ,(yacco2::thd_ids_having_T*)&T_454 // Err_subscript_out_of_range
+ ,(yacco2::thd_ids_having_T*)&T_455 // Err_sym_tbl_nested_scope_stk_overflow
+ ,(yacco2::thd_ids_having_T*)&T_456 // Err_sym_tbl_nested_scope_stk_underflow
+ ,(yacco2::thd_ids_having_T*)&T_457 // Err_sym_tbl_context_buf_overflow
+ ,(yacco2::thd_ids_having_T*)&T_458 // Err_report_card_ptr_0
+ ,(yacco2::thd_ids_having_T*)&T_459 // Err_cannot_define_term_after_sufx_dir
+ ,(yacco2::thd_ids_having_T*)&T_460 // Err_dup_sufx_directive
+ ,(yacco2::thd_ids_having_T*)&T_461 // Err_terminals_refs_def_after_terminals
+ ,(yacco2::thd_ids_having_T*)&T_462 // Err_terminals_refs_dup_def
+ ,(yacco2::thd_ids_having_T*)&T_463 // Err_no_rule_name_present
+ ,(yacco2::thd_ids_having_T*)&T_464 // Err_no_sub_rule_present
+ ,(yacco2::thd_ids_having_T*)&T_465 // Err_subrule_use_undefined_T
+ ,(yacco2::thd_ids_having_T*)&T_466 // Err_stbl_entry_unknown
+ ,(yacco2::thd_ids_having_T*)&T_467 // Err_subrule_overrun
+ ,(yacco2::thd_ids_having_T*)&T_468 // Err_stble_has_entry_but_not_a_rule
+ ,(yacco2::thd_ids_having_T*)&T_469 // Err_file_of_T_alphabet_kw_not_present
+ ,(yacco2::thd_ids_having_T*)&T_470 // Err_emitfile_kw_not_present
+ ,(yacco2::thd_ids_having_T*)&T_471 // Err_preamble_kw_not_present
+ ,(yacco2::thd_ids_having_T*)&T_472 // Err_preamble_srce_code_not_present
+ ,(yacco2::thd_ids_having_T*)&T_473 // Err_end_preamble_kw_not_present
+ ,(yacco2::thd_ids_having_T*)&T_474 // Err_cmd_line_chaffe
+ ,(yacco2::thd_ids_having_T*)&T_475 // Err_T_alphabet_kw_not_present
+ ,(yacco2::thd_ids_having_T*)&T_476 // Err_T_alphabet_file_not_present
+ ,(yacco2::thd_ids_having_T*)&T_477 // Err_end_T_alphabet_kw_not_present
+ ,(yacco2::thd_ids_having_T*)&T_478 // Err_no_terminals_in_T_alphabet_list
+ ,(yacco2::thd_ids_having_T*)&T_479 // Err_rotten_chr_in_T_alphabet
+ ,(yacco2::thd_ids_having_T*)&T_480 // Err_transitive_kw_not_present
+ ,(yacco2::thd_ids_having_T*)&T_481 // Err_grammar_name_kw_not_present
+ ,(yacco2::thd_ids_having_T*)&T_482 // Err_namespace_kw_not_present
+ ,(yacco2::thd_ids_having_T*)&T_483 // Err_filename_kw_not_present
+ ,(yacco2::thd_ids_having_T*)&T_484 // Err_threadname_kw_not_present
+ ,(yacco2::thd_ids_having_T*)&T_485 // Err_monolithic_kw_not_present
+ ,(yacco2::thd_ids_having_T*)&T_486 // Err_no_of_T_kw_not_present
+ ,(yacco2::thd_ids_having_T*)&T_487 // Err_list_of_terminals_kw_not_present
+ ,(yacco2::thd_ids_having_T*)&T_488 // Err_no_list_of_trans_threads_kw
+ ,(yacco2::thd_ids_having_T*)&T_489 // Err_no_terminals_present_in_T_alphabet
+ ,(yacco2::thd_ids_having_T*)&T_490 // Err_transitive_value_bad
+ ,(yacco2::thd_ids_having_T*)&T_491 // Err_monolithic_value_bad
+ ,(yacco2::thd_ids_having_T*)&T_492 // Err_grammar_name_value_not_present
+ ,(yacco2::thd_ids_having_T*)&T_493 // Err_namespace_value_not_present
+ ,(yacco2::thd_ids_having_T*)&T_494 // Err_threadname_value_not_present
+ ,(yacco2::thd_ids_having_T*)&T_495 // Err_filename_value_not_present
+ ,(yacco2::thd_ids_having_T*)&T_496 // Err_no_of_T_value_not_present
+ ,(yacco2::thd_ids_having_T*)&T_497 // Err_no_of_terminals_not_present
+ ,(yacco2::thd_ids_having_T*)&T_498 // Err_end_list_native_T_kw_not_present
+ ,(yacco2::thd_ids_having_T*)&T_499 // Err_end_list_of_transitive_threads_kw_not_present
+ ,(yacco2::thd_ids_having_T*)&T_500 // Err_no_of_native_Ts_in_list_not_equal
+ ,(yacco2::thd_ids_having_T*)&T_501 // Err_no_of_threads_in_list_not_equal
+ ,(yacco2::thd_ids_having_T*)&T_502 // Err_thread_refed_but_not_defined
+ ,(yacco2::thd_ids_having_T*)&T_503 // Err_bad_T_in_list
+ ,(yacco2::thd_ids_having_T*)&T_504 // Err_bad_th_in_list
+ ,(yacco2::thd_ids_having_T*)&T_505 // Err_already_defined_in_fsc_file
+ ,(yacco2::thd_ids_having_T*)&T_506 // Err_bad_thread_subscript
+ ,(yacco2::thd_ids_having_T*)&T_507 // Err_not_a_keyword
+ ,(yacco2::thd_ids_having_T*)&T_508 // Err_no_of_threads_not_present
+ ,(yacco2::thd_ids_having_T*)&T_509 // Err_bad_T_alphabet
+ ,(yacco2::thd_ids_having_T*)&T_510 // Err_fsc_file_does_not_exist
+ ,(yacco2::thd_ids_having_T*)&T_511 // Err_filename_file_does_not_exist
+ ,(yacco2::thd_ids_having_T*)&T_512 // Err_T_alphabet_file_does_not_exist
+ ,(yacco2::thd_ids_having_T*)&T_513 // Err_emitfile_file_does_not_exist
+ ,(yacco2::thd_ids_having_T*)&T_514 // Err_emitfile_file_not_present
+ ,(yacco2::thd_ids_having_T*)&T_515 // Err_fsc_cntl_file_not_present
+ ,(yacco2::thd_ids_having_T*)&T_516 // Err_file_of_T_alphabet_not_present
+ ,(yacco2::thd_ids_having_T*)&T_517 // Err_epsilon_pass_thru
+ ,(yacco2::thd_ids_having_T*)&T_518 // Err_epsilon_pass_thru_no_Ts
+ ,(yacco2::thd_ids_having_T*)&T_519 // Err_rule_not_in_stbl
+ ,(yacco2::thd_ids_having_T*)&T_520 // Err_T_not_in_stbl
+ ,(yacco2::thd_ids_having_T*)&T_521 // Err_bad_directive
+ ,(yacco2::thd_ids_having_T*)&T_522 // Err_bad_term_in_la_expr
+ ,(yacco2::thd_ids_having_T*)&T_523 // Err_empty_set_removal_in_la_expr
+ ,(yacco2::thd_ids_having_T*)&T_524 // Err_bad_operator_in_la_expr
+ ,(yacco2::thd_ids_having_T*)&T_525 // Err_not_a_lhs_kw
+ ,(yacco2::thd_ids_having_T*)&T_526 // Err_pp_la_boundary_attribute_not_fnd
+ ,(yacco2::thd_ids_having_T*)&T_527 // Err_already_processed_fsm_phase
+ ,(yacco2::thd_ids_having_T*)&T_528 // Err_already_processed_pp_phase
+ ,(yacco2::thd_ids_having_T*)&T_529 // Err_already_processed_T_enum_phase
+ ,(yacco2::thd_ids_having_T*)&T_530 // Err_already_processed_error_phase
+ ,(yacco2::thd_ids_having_T*)&T_531 // Err_already_processed_rc_phase
+ ,(yacco2::thd_ids_having_T*)&T_532 // Err_already_processed_lrk_phase
+ ,(yacco2::thd_ids_having_T*)&T_533 // Err_already_processed_T_phase
+ ,(yacco2::thd_ids_having_T*)&T_534 // Err_already_processed_rule_phase
+ ,(yacco2::thd_ids_having_T*)&T_535 // Err_not_T_for_rtned_token_from_th
+ ,(yacco2::thd_ids_having_T*)&T_536 // Err_not_id_for_ns_in_th_stmt
+ ,(yacco2::thd_ids_having_T*)&T_537 // Err_not_id_for_th_name_in_th_stmt
+ ,(yacco2::thd_ids_having_T*)&T_538 // Err_bad_th_qualifier
+ ,(yacco2::thd_ids_having_T*)&T_539 // Err_not_dbl_colon_in_th_stmt
+ ,(yacco2::thd_ids_having_T*)&T_540 // Err_not_T_or_R_in_subrule_expr
+ ,(yacco2::thd_ids_having_T*)&T_541 // Err_not_T_or_R_or_eos_in_subrule_expr
+ ,(yacco2::thd_ids_having_T*)&T_542 // Err_not_eos_in_subrule_expr
+ ,(yacco2::thd_ids_having_T*)&T_543 // Err_invalid_logical_name
+ ,(yacco2::thd_ids_having_T*)&T_544 // Err_invalid_logical_value
+ ,(yacco2::thd_ids_having_T*)&T_545 // Err_duplicate_logical_name
+ ,(yacco2::thd_ids_having_T*)&T_546 // Err_missing_terminals_refs_kw
+ ,(yacco2::thd_ids_having_T*)&T_547 // Err_missing_terminals_sufx_kw
+ ,(yacco2::thd_ids_having_T*)&T_548 // Err_not_a_terminal_definition
+ ,(yacco2::thd_ids_having_T*)&T_549 // Err_missing_lrk_sufx_kw
+ ,(yacco2::thd_ids_having_T*)&T_550 // ERR_sick_grammar
+ ,(yacco2::thd_ids_having_T*)&T_551 // ERR_no_fsm_phrase
+ ,(yacco2::thd_ids_having_T*)&T_552 // ERR_no_T_enum_phrase
+ ,(yacco2::thd_ids_having_T*)&T_553 // ERR_no_lrk_phrase
+ ,(yacco2::thd_ids_having_T*)&T_554 // ERR_no_rc_phrase
+ ,(yacco2::thd_ids_having_T*)&T_555 // ERR_no_errors_phrase
+ ,(yacco2::thd_ids_having_T*)&T_556 // ERR_no_terminals_phrase
+ ,(yacco2::thd_ids_having_T*)&T_557 // ERR_no_rules_phrase
+ ,(yacco2::thd_ids_having_T*)&T_558 // Err_used_rule_but_undefined
+ ,(yacco2::thd_ids_having_T*)&T_559 // Err_rule_already_defined
+ ,(yacco2::thd_ids_having_T*)&T_560 // Err_la_expr_calc_empty_set
+ ,(yacco2::thd_ids_having_T*)&T_561 // Err_no_close_brace_ending_rules_defs
+ ,(yacco2::thd_ids_having_T*)&T_562 // Err_use_of_T_outside_Rules_construct
+ ,(yacco2::thd_ids_having_T*)&T_563 // Err_not_kw_defining_grammar_construct
+ ,(yacco2::thd_ids_having_T*)&T_564 // Err_use_of_N_outside_Rules_construct
+ ,(yacco2::thd_ids_having_T*)&T_565 // Err_misplaced_or_misspelt_Rule_or_T
+ ,(yacco2::thd_ids_having_T*)&T_566 // Err_not_a_Rule
+ ,(yacco2::thd_ids_having_T*)&T_567 // Err_empty_file
+ ,(yacco2::thd_ids_having_T*)&T_568 // Err_not_lhs_pcnrl_mntr
+ }
+};
+void* yacco2::T_ARRAY_HAVING_THD_IDS__ = (void*)&t_array;
diff --git a/web/yacco2/compiler/grammars/yacco2_stbl.cpp b/web/yacco2/compiler/grammars/yacco2_stbl.cpp
new file mode 100644
index 0000000000..c60f711da6
--- /dev/null
+++ b/web/yacco2/compiler/grammars/yacco2_stbl.cpp
@@ -0,0 +1,391 @@
+/*9:*/
+#line 260 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+
+/*22:*/
+#line 462 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+
+#include "yacco2_stbl.h"
+
+/*:22*/
+#line 261 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+;
+using namespace NS_yacco2_err_symbols;
+using namespace NS_yacco2_terminals;
+using namespace yacco2;
+/*20:*/
+#line 454 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+
+table_entry yacco2_stbl::stbl[hash_table_size]= {table_entry()};
+char yacco2_stbl::char_pool_[char_pool_size]= {};
+int yacco2_stbl::char_pool_idx_(0);
+
+/*:20*//*24:*/
+#line 504 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+
+void yacco2_stbl::hash_fnct(T_sym_tbl_report_card&Report,const char&Key)
+{
+Report.pos_= -1;
+Report.key_len_= strlen(&Key);
+if(Report.key_len_==0){
+Report.status_= T_sym_tbl_report_card::failure;
+Report.err_entry_= new Err_zero_len_sym;
+return;
+}
+Report.key_len_+= 1;
+const char*k= &Key;
+Report.pos_= *k++;
+for(;*k!=0;++k){
+Report.pos_= ((Report.pos_*257)+*k)%hash_table_size;
+}
+Report.status_= T_sym_tbl_report_card::okay;
+}
+
+/*:24*//*25:*/
+#line 548 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+
+void yacco2_stbl::add_sym_to_stbl
+(T_sym_tbl_report_card&Report
+,const char&Name
+,yacco2::CAbs_lr1_sym&Sym
+,table_entry::defined_or_used_typ Why
+,table_entry::entry_typ What)
+{
+static int guest_cnt(0);
+hash:/*21:*/
+#line 459 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+
+yacco2_stbl::hash_fnct(Report,Name);
+/*:21*/
+#line 557 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+;
+/*26:*/
+#line 566 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+
+if(Report.status_==T_sym_tbl_report_card::failure)return;
+if(Report.status_==T_sym_tbl_report_card::fatal)return;
+
+
+/*:26*/
+#line 558 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+;
+compare:/*27:*/
+#line 572 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+
+table_entry*te= &yacco2_stbl::stbl[Report.pos_];
+int r(0);
+if(te->vacant_==true)goto insert;
+
+r= strcmp(te->key_,&Name);
+if(r==0){
+Report.status_= T_sym_tbl_report_card::failure;
+Report.err_entry_= new Err_dup_entry_in_sym_table;
+Report.tbl_entry_= te;
+Report.key_len_= 0;
+return;
+}
+
+/*:27*/
+#line 559 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+;
+advance:/*28:*/
+#line 587 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+
+--Report.pos_;
+if(Report.pos_<0)Report.pos_+= hash_table_size;
+goto compare;
+
+/*:28*/
+#line 560 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+;
+insert:/*29:*/
+#line 593 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+
+if(guest_cnt==hash_table_full){
+Report.status_= T_sym_tbl_report_card::failure;
+Report.err_entry_= new Err_sym_tbl_full;
+return;
+}
+if(char_pool_idx_+Report.key_len_> char_pool_size){
+Report.status_= T_sym_tbl_report_card::failure;
+Report.err_entry_= new Err_sym_tbl_char_pool_full;
+return;
+}
+++guest_cnt;
+te->pos_= Report.pos_;
+te->vacant_= false;
+char*key_name= &char_pool_[char_pool_idx_];
+strncpy(key_name,&Name,Report.key_len_);
+te->key_= key_name;
+te->key_len_= Report.key_len_;
+char_pool_idx_+= Report.key_len_;
+te->symbol_= &Sym;
+te->type_= What;
+if(Why==table_entry::used)
+te->used_= true;
+else
+te->defined_= true;
+Report.status_= T_sym_tbl_report_card::okay;
+Report.action_= T_sym_tbl_report_card::inserted;
+Report.tbl_entry_= te;
+
+
+
+/*:29*/
+#line 561 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+;
+}
+
+
+/*:25*//*30:*/
+#line 644 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+
+void yacco2_stbl::find_sym_in_stbl(T_sym_tbl_report_card&Report,const char&Name)
+{
+hash:/*21:*/
+#line 459 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+
+yacco2_stbl::hash_fnct(Report,Name);
+/*:21*/
+#line 647 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+;
+/*26:*/
+#line 566 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+
+if(Report.status_==T_sym_tbl_report_card::failure)return;
+if(Report.status_==T_sym_tbl_report_card::fatal)return;
+
+
+/*:26*/
+#line 648 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+;
+compare:/*31:*/
+#line 654 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+
+Report.tbl_entry_= &yacco2_stbl::stbl[Report.pos_];
+table_entry*te= Report.tbl_entry_;
+if(te->vacant_==true){
+Report.status_= T_sym_tbl_report_card::okay;
+Report.action_= T_sym_tbl_report_card::not_fnd;
+return;
+}
+int r= strcmp(te->key_,&Name);
+if(r==0){
+Report.status_= T_sym_tbl_report_card::okay;
+Report.action_= T_sym_tbl_report_card::fnd;
+return;
+}
+
+/*:31*/
+#line 649 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+;
+advance:/*32:*/
+#line 670 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+
+--Report.pos_;
+if(Report.pos_<0)Report.pos_+= hash_table_size;
+goto compare;
+
+/*:32*/
+#line 650 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+;
+}
+
+/*:30*//*33:*/
+#line 684 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+
+void yacco2_stbl::get_sym_entry_by_sub(T_sym_tbl_report_card&Report,int Sub)
+{
+Report.pos_= Sub;
+if((Sub<0)||(Sub> hash_table_full)){
+Report.status_= T_sym_tbl_report_card::failure;
+Report.err_entry_= new Err_subscript_out_of_range;
+return;
+}
+Report.tbl_entry_= &yacco2_stbl::stbl[Sub];
+Report.status_= T_sym_tbl_report_card::okay;
+if(Report.tbl_entry_->vacant_==false)
+Report.action_= T_sym_tbl_report_card::fnd;
+else
+Report.action_= T_sym_tbl_report_card::not_fnd;
+}
+
+
+/*:33*//*34:*/
+#line 710 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+
+void yacco2_stbl::test_program()
+{
+/*8:*/
+#line 256 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+
+using namespace yacco2_stbl;
+
+/*:8*/
+#line 713 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+;
+/*35:*/
+#line 724 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+
+const char*zero_len_name= "";
+T_eol*a_good_sym= new T_eol;
+int cnt(0);
+T_sym_tbl_report_card report_card;
+std::cout<<"Prime number used: "<<hash_table_size<<std::endl;
+std::cout<<"Test zero len key"<<std::endl;
+add_sym_to_stbl(report_card,*zero_len_name,*a_good_sym,table_entry::used,table_entry::terminal);
+if(report_card.status_==T_sym_tbl_report_card::failure){
+std::cout<<"Error zero_len_name: "<<report_card.err_entry_->id__<<std::endl;
+delete report_card.err_entry_;
+}else{
+std::cout<<"Should have been a zero_len_name error "<<std::endl;
+}
+
+/*:35*/
+#line 714 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+;
+/*36:*/
+#line 740 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+
+char buf[256];
+std::string*sbuf[hash_table_size];
+sbuf[1]= new string("1");
+const char*f1st_dup= "1";
+std::cout<<"1st entry test"<<std::endl;
+add_sym_to_stbl(report_card,*sbuf[1]->c_str(),*a_good_sym,table_entry::defed,table_entry::rule);
+if(report_card.status_==T_sym_tbl_report_card::failure){
+std::cout<<"Error first entry failed: "<<report_card.err_entry_->id__<<std::endl;
+delete report_card.err_entry_;
+}
+
+std::cout<<"duplicate entry test"<<std::endl;
+add_sym_to_stbl(report_card,*f1st_dup,*a_good_sym,table_entry::defed,table_entry::rule);
+if(report_card.status_==T_sym_tbl_report_card::failure){
+std::cout<<"Error duplicate entry: "<<report_card.err_entry_->id__<<std::endl;
+delete report_card.err_entry_;
+}else{
+std::cout<<"Should have been a duplicate entry error "<<std::endl;
+}
+
+cout<<"Same key address test "<<endl;
+add_sym_to_stbl(report_card,*sbuf[1]->c_str(),*a_good_sym,table_entry::defed,table_entry::rule);
+if(report_card.status_==T_sym_tbl_report_card::failure){
+std::cout<<"Error same key address: "<<report_card.err_entry_->id__<<std::endl;
+delete report_card.err_entry_;
+}else{
+std::cout<<"Should have been a same key address error "<<std::endl;
+}
+
+/*:36*/
+#line 715 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+;
+/*37:*/
+#line 771 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+
+const char*numeric_key= "%i";
+std::cout<<"Fill up balance of table"<<std::endl;
+for(cnt= 2;cnt<=hash_table_full;++cnt){
+sprintf(buf,numeric_key,cnt);
+sbuf[cnt]= new string(buf);
+add_sym_to_stbl(report_card,*sbuf[cnt]->c_str()
+,*a_good_sym,table_entry::defed,table_entry::rule);
+if(report_card.status_==T_sym_tbl_report_card::failure){
+std::cout<<"Error entry failed: "<<cnt<<" "
+<<report_card.err_entry_->id__<<std::endl;
+delete report_card.err_entry_;
+}
+}
+
+/*:37*/
+#line 716 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+;
+/*38:*/
+#line 787 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+
+const char*overflow_key= "overflow";
+std::cout<<"Overflow test"<<std::endl;
+add_sym_to_stbl(report_card,*overflow_key,*a_good_sym,table_entry::defed,table_entry::rule);
+if(report_card.status_==T_sym_tbl_report_card::failure){
+std::cout<<"Error overflow: "<<report_card.err_entry_->id__<<std::endl;
+delete report_card.err_entry_;
+}else{
+std::cout<<"Should be overflow error"<<std::endl;
+}
+
+/*:38*/
+#line 717 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+;
+/*39:*/
+#line 801 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+
+std::cout<<"Find symbol test"<<std::endl;
+for(cnt= 1;cnt<=hash_table_full;++cnt){
+find_sym_in_stbl(report_card,*sbuf[cnt]->c_str());
+if(report_card.status_==T_sym_tbl_report_card::failure){
+std::cout<<"Error Should have been found: "<<cnt
+<<" "<<report_card.err_entry_->id__<<std::endl;
+delete report_card.err_entry_;
+}else{
+if(report_card.action_==T_sym_tbl_report_card::not_fnd){
+std::cout<<"Error Action should have been found: "<<cnt<<std::endl;
+}
+}
+}
+std::cout<<"Not found test"<<std::endl;
+find_sym_in_stbl(report_card,*overflow_key);
+if(report_card.status_==T_sym_tbl_report_card::failure){
+std::cout<<"Should not be an error: "<<cnt
+<<" "<<report_card.err_entry_->id__<<std::endl;
+delete report_card.err_entry_;
+}else{
+if(report_card.action_==T_sym_tbl_report_card::fnd){
+std::cout<<"Error should be not found: "<<std::endl;
+}
+}
+
+/*:39*/
+#line 718 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+;
+/*40:*/
+#line 832 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+
+std::cout<<"get symbol by subscript test"<<std::endl;
+for(cnt= -1;cnt<=hash_table_size;++cnt){
+get_sym_entry_by_sub(report_card,cnt);
+if(report_card.status_==T_sym_tbl_report_card::failure){
+std::cout<<"Error subscript out of range: "
+<<cnt<<" "<<report_card.err_entry_->id__<<std::endl;
+delete report_card.err_entry_;
+}else{
+if(report_card.action_==T_sym_tbl_report_card::not_fnd){
+std::cout<<"Error not found if this message appears more than once: "
+<<cnt<<std::endl;
+std::cout<<"Remember 1 spot is left vacant in the algorithm!"<<std::endl;
+}
+}
+}
+
+/*:40*/
+#line 719 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+;
+/*41:*/
+#line 850 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+
+std::cout<<"Clean up"<<std::endl;
+delete a_good_sym;
+for(cnt= 1;cnt<=hash_table_full;++cnt){
+delete sbuf[cnt];
+}
+
+/*:41*/
+#line 720 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+;
+}
+
+/*:34*/
+#line 265 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+;
+
+
+
+
+/*:9*/
diff --git a/web/yacco2/compiler/grammars/yacco2_stbl.h b/web/yacco2/compiler/grammars/yacco2_stbl.h
new file mode 100644
index 0000000000..f9dc346932
--- /dev/null
+++ b/web/yacco2/compiler/grammars/yacco2_stbl.h
@@ -0,0 +1,36 @@
+/*19:*/
+#line 426 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+
+#define hash_table_size 20011
+#define hash_table_full hash_table_size-1
+#define str_delimiter '\x00'
+#define char_pool_size 100*1024
+
+#line 427 "/usr/local/yacco2/compiler/stbl/yacco2_stbl.w"
+
+#ifndef yacco2_stbl_
+#define yacco2_stbl_ 0
+#include "yacco2.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include <cstring>
+namespace yacco2_stbl{
+using namespace NS_yacco2_terminals;
+using namespace yacco2;
+extern table_entry stbl[hash_table_size];
+void hash_fnct(T_sym_tbl_report_card&Report,const char&Key);
+extern void add_sym_to_stbl
+(T_sym_tbl_report_card&Report
+,const char&Name
+,yacco2::CAbs_lr1_sym&Sym
+,table_entry::defined_or_used_typ Why
+,table_entry::entry_typ What);
+extern void find_sym_in_stbl(T_sym_tbl_report_card&Report,const char&Name);
+extern void test_program();
+extern void get_sym_entry_by_sub(T_sym_tbl_report_card&Report,int Sub);
+extern char char_pool_[char_pool_size];
+extern int char_pool_idx_;
+};
+#endif
+
+/*:19*/
diff --git a/web/yacco2/compiler/grammars/yacco2_terminals.T b/web/yacco2/compiler/grammars/yacco2_terminals.T
new file mode 100644
index 0000000000..db91f81bd4
--- /dev/null
+++ b/web/yacco2/compiler/grammars/yacco2_terminals.T
@@ -0,0 +1,3381 @@
+/*
+ Copyright Dave Bone 1998 - 2014
+ All Rights Reserved.
+ No part of this document may be reproduced without written consent from the author.
+
+ file: yacco2_terminals.lex
+*/
+/@
+@i "/yacco2/copyright.w"
+@** Terminal vocabulary.\fbreak
+There are some terminals that spoof the grammar's keywords like
+``\#fsm''. The keyword recognizer recognizes the character string
+of ``fsm'' but how do u define it and reference it within the
+grammars defining \O2's very own language: the
+conundrum of the grammar defining itself?
+Ahh to recurse or not to curse, that is the?
+Well this is my take.
+The logical keys are just proxy material.
+@/
+terminals
+(file-name yacco2_terminals
+,name-space NS_yacco2_terminals){
+/@
+Makesure c++ forward references compile.
+@/
+ terminals-refs
+using namespace std;
+using namespace NS_yacco2_err_symbols;
+using namespace yacco2;
+struct T_called_thread_eosubrule;
+struct T_c_literal;
+struct T_identifier;
+struct T_syntax_code;
+struct T_fsm_class_phrase;
+struct T_fsm_class;
+struct T_fsm_phrase;
+struct T_parallel_parser_phrase;
+struct T_enum_phrase;
+struct T_error_symbols_phrase;
+struct T_rc_phrase;
+struct T_lr1_k_phrase;
+struct T_terminals_phrase;
+struct T_rules_phrase;
+struct T_subrules_phrase;
+struct T_rhs_bnd;
+struct refered_rule;
+struct rule_def;
+struct refered_T;
+struct T_in_stbl;
+struct rule_in_stbl;
+extern yacco2::CAbs_lr1_sym* PTR_lint__;
+extern yacco2::CAbs_lr1_sym* PTR_ws__;
+extern yacco2::CAbs_lr1_sym* PTR_eol__;
+ ***
+"option-t" AD
+/@
+Command line option for \O2 indicating generate T vocabulary code.
+Returned from |yacco2_lcl_option| thread.
+@/
+(sym-class T_option_t)
+"option-p" AD
+/@
+Command line option for \O2 indicating generate
+cweb type documents.
+Returned from |yacco2_lcl_option| thread.
+@/
+(sym-class T_option_p)
+
+"option-err" AD
+/@
+Command line option for \O2 indicating generate Error vocabulary code.
+Returned from |yacco2_lcl_option| thread.
+@/
+(sym-class T_option_err)
+
+"esc-seq" AD
+/@
+Returned T from the |esc_seq| thread.
+Note within the |ctor| macro
+that the ``auto delete'' indicator is
+explicitly turned on and matches the ``AD'' switch.
+As i do not parse the c++ code, {\bf watch your self}.
+This is a dangerous bend in \TeX parlance.
+@/
+(sym-class T_esc_seq{
+ user-declaration
+ public:
+ T_esc_seq(const char* Esc_data);
+ std::string* esc_data();
+ private:std::string esc_data_;
+ ***
+ user-implementation
+ T_esc_seq::
+ T_esc_seq(const char* Esc_data)
+ T_CTOR("esc-seq",T_Enum::T_T_esc_seq_,0,true,false)
+ {
+ esc_data_ += Esc_data;
+ }
+ std::string* T_esc_seq::esc_data(){return &esc_data_;};
+ ***
+ }
+)
+"eol"
+/@
+This is the end-of-line indicator returned from the |eol| thread.
+@/
+(sym-class T_eol{
+ user-declaration
+ public:
+ T_eol();
+ ***
+ user-implementation
+ T_eol::
+ T_eol()
+ T_CTOR("eol",T_Enum::T_T_eol_,0,false,false)
+ {}
+ T_eol eol__;
+ yacco2::CAbs_lr1_sym* NS_yacco2_terminals::PTR_eol__ = &eol__;
+ ***
+ }
+)
+
+"basic-char"
+/@
+Basic source character set indicator.
+It can be used to assess the good, the bad, and the ulgy
+character traits.
+For example, prescan the characters against the
+|bad_char_set| thread and return one of the 2 terminals.
+It is left here but not used.
+ @/
+(sym-class T_basic_char{
+ user-declaration
+ public:
+ T_basic_char(CAbs_lr1_sym* Basic_char);
+ CAbs_lr1_sym* basic_char()const;
+ void zero_out_basic_char();
+ private:CAbs_lr1_sym* basic_char_;
+ ***
+ destructor
+ if(R->basic_char_!=0)
+ delete R->basic_char();
+ ***
+ user-implementation
+ T_basic_char::
+ T_basic_char(CAbs_lr1_sym* Basic_char)
+ T_CTOR("basic-char",T_Enum::T_T_basic_char_,&dtor_T_basic_char,false,false)
+ {basic_char_ = Basic_char;}
+ void T_basic_char::zero_out_basic_char(){basic_char_ = 0;}
+ CAbs_lr1_sym* T_basic_char::basic_char()const{return basic_char_;}
+ ***
+ }
+)
+
+"raw-char"
+/@
+A universal carrier from the raw text character into
+c++ objects.
+Still don't know why there is also a |raw-characters| terminal.
+@/
+(sym-class T_raw_char{
+ user-declaration
+ public:
+ T_raw_char(CAbs_lr1_sym* Raw_char);
+ CAbs_lr1_sym* raw_char()const;
+ void zero_out_raw_char();
+ private:CAbs_lr1_sym* raw_char_;
+ ***
+ destructor
+ if(R->raw_char_!=0)
+ delete R->raw_char();
+ ***
+ user-implementation
+ T_raw_char::
+ T_raw_char(CAbs_lr1_sym* Raw_char)
+ T_CTOR("raw-char",T_Enum::T_T_raw_char_,0,false,false)
+ {raw_char_ = Raw_char;}
+ void T_raw_char::zero_out_raw_char(){raw_char_ = 0;}
+ CAbs_lr1_sym* T_raw_char::raw_char()const{return raw_char_;}
+ ***
+ }
+)
+
+"comment"
+/@
+Basic c++ comment in its 2 forms:\fbreak
+/* ...*/ and single line //.
+The |c_comment| grammar returns it.
+@/
+(sym-class T_comment{
+ user-declaration
+ public:
+ T_comment(const std::string& Comment_data);
+ std::string* comment_data();
+ private:std::string comment_data_;
+ ***
+ user-implementation
+ T_comment::
+ T_comment(const std::string& Comment_data)
+ T_CTOR("comment",T_Enum::T_T_comment_,0,false,false)
+ {comment_data_ = Comment_data;}
+ std::string* T_comment::comment_data(){return &comment_data_;}
+ ***
+ }
+)
+
+"ws"
+/@
+Just white space of spaces, vertical and horizontal tabs,
+and form feeds. This is a vacuum cleaner of
+inter-word separators.
+@/
+(sym-class T_ws{
+ user-declaration
+ public:
+ T_ws(const std::string& White_space_data);
+ T_ws();
+ std::string* ws_data();
+ private:std::string ws_data_;
+ ***
+ user-implementation
+ T_ws::
+ T_ws(const std::string& Ws_data)
+ T_CTOR("ws",T_Enum::T_T_ws_,0,false,false)
+ {ws_data_+= Ws_data;}
+ T_ws::
+ T_ws()
+ T_CTOR("ws",T_Enum::T_T_ws_,0,false,false)
+ {}
+ std::string* T_ws::ws_data(){return &ws_data_;}
+ T_ws ws__;
+ yacco2::CAbs_lr1_sym* NS_yacco2_terminals::PTR_ws__ = &ws__;
+ ***
+ }
+)
+
+"angled-string"
+/@
+Returned from |angled_string| grammar whereby the
+|angled_string_| contains its content without the angle bars.
+Escape sequences are verified and not converted but
+just concatenated to its content.
+@/
+(sym-class T_angled_string{
+ user-declaration
+ public:
+ T_angled_string(const std::string& Angled_string);
+ std::string* angled_string();
+ private:std::string angled_string_;
+ ***
+ user-implementation
+ T_angled_string::T_angled_string(const string& Angled_string)
+ T_CTOR("angled-string",T_Enum::T_T_angled_string_,0,false,false)
+ {angled_string_ = Angled_string;}
+ std::string* T_angled_string::angled_string(){return &angled_string_;}
+ ***
+ }
+)
+
+"c-literal"
+/@
+Returned from |c_literal| grammar
+ recognizing a c++ literal.
+|c_literal_| contains its content without the single quotes.
+'hi there' is an example.
+Escape sequences are verified and not converted but
+ concatenated to its content.
+@/
+(sym-class T_c_literal{
+ user-declaration
+ public:
+ T_c_literal(const std::string& C_literal);
+ std::string* c_literal();
+ private:std::string c_literal_;
+ ***
+ user-implementation
+ T_c_literal::T_c_literal(const string& C_literal)
+ T_CTOR("c-literal",T_Enum::T_T_c_literal_,0,false,false)
+ {c_literal_ = C_literal;}
+ std::string* T_c_literal::c_literal(){return &c_literal_;}
+ ***
+ }
+)
+
+"c-string"
+/@
+Returned from |c_string| grammar recognizing a c++ string.
+|c_string_| contains its content without the double quotes.
+@/
+(sym-class T_c_string{
+ user-declaration
+ public:
+ T_c_string(const std::string& C_string);
+ std::string* c_string();
+ private:std::string c_string_;
+ ***
+ user-implementation
+ T_c_string::T_c_string(const std::string& C_string)
+ T_CTOR("c-string",T_Enum::T_T_c_string_,0,false,false)
+ {c_string_ = C_string;}
+ std::string* T_c_string::c_string(){return &c_string_;}
+ ***
+ }
+)
+
+"xc-str"
+/@
+Returned from |xc_str| grammar recognizing a c++ string
+without the escape sequence check. This allows one to input
+at the command level a string containing backslash etc in
+single quantities. Example, "\\nogood\\b".
+This does not end a line nor ring your bell.
+The surrounding double quotes are not added to the content.
+It's just a slight variation on ``c-string'' using
+a different grammar.
+@/
+(sym-class T_xc_str{
+ user-declaration
+ public:
+ T_xc_str(const std::string& C_string);
+ std::string* c_string();
+ private:std::string c_string_;
+ ***
+ user-implementation
+ T_xc_str::T_xc_str(const std::string& C_string)
+ T_CTOR("xc-str",T_Enum::T_T_xc_str_,0,false,false)
+ {c_string_ = C_string;}
+ std::string* T_xc_str::c_string(){return &c_string_;}
+ ***
+ }
+)
+
+"unquoted-string"
+/@
+Just as described. Gather all the characters until
+an end-of-line met.
+Used in the command line.
+Watch yourself as this is a gobbler:
+marginal utility.
+@/
+(sym-class T_unquoted_string{
+ user-declaration
+ public:
+ T_unquoted_string(const std::string& String);
+ std::string* unquoted_string();
+ private:std::string unquoted_string_;
+ ***
+ user-implementation
+ T_unquoted_string::T_unquoted_string(const std::string& String)
+ T_CTOR("unquoted-string",T_Enum::T_T_unquoted_string_,0,false,false)
+ {unquoted_string_ = String;}
+ std::string* T_unquoted_string::unquoted_string(){return &unquoted_string_;}
+ ***
+ }
+)
+
+"file-inclusion"
+/@
+Used in processing file inclusion: hence the name.
+Why the |error_sym_| variable?
+Normally i use this terminal by calling a file processing procedure.
+Deposited in this variable are conditions found to not allow
+the reading of the file.
+See |pass3| thread of how it applies.
+@/
+(sym-class T_file_inclusion{
+ user-declaration
+ public:
+ T_file_inclusion(T_c_string* File_name_,CAbs_lr1_sym* Error);
+ ~T_file_inclusion();
+ T_c_string* file_name();
+ CAbs_lr1_sym* error_sym();
+ void error_sym(CAbs_lr1_sym* Error);
+ private:T_c_string* file_name_;
+ CAbs_lr1_sym* error_sym_;
+ ***
+ user-implementation
+ T_file_inclusion::T_file_inclusion
+ (T_c_string* File_name,CAbs_lr1_sym* Error)
+ T_CTOR("file-inclusion",T_Enum::T_T_file_inclusion_,0,false,false)
+ {file_name_ = File_name;
+ error_sym_ = Error;}
+ CAbs_lr1_sym* T_file_inclusion::error_sym(){
+ return error_sym_;
+ }
+ void T_file_inclusion::error_sym(CAbs_lr1_sym* Error){
+ error_sym_ = Error;
+ }
+ T_c_string* T_file_inclusion::file_name(){return file_name_;}
+ T_file_inclusion::~T_file_inclusion(){delete file_name_;delete error_sym_;}
+ ***
+ }
+)
+
+"identifier"
+/@
+Returned terminal from the |identifier| thread.
+Just your basic word classifier.
+@/
+(sym-class T_identifier{
+ user-declaration
+ public:
+ T_identifier(yacco2::KCHARP Identifier);
+ std::string* identifier();
+ private:std::string identifier_;
+ ***
+ user-implementation
+ T_identifier::T_identifier(yacco2::KCHARP Identifier)
+ T_CTOR("identifier",T_Enum::T_T_identifier_,0,false,false)
+ {identifier_ = Identifier;}
+ std::string* T_identifier::identifier(){return &identifier_;}
+ ***
+ }
+)
+"int-no"
+/@
+Carrier returned from |integer_no| thread.
+Within |integer_no| the number is converted into its binary
+format.
+@/
+(sym-class T_int_no{
+ user-declaration
+ public:
+ T_int_no(long S_no);
+ long no();
+ private:
+ long no_;
+ ***
+ user-implementation
+ T_int_no::
+ T_int_no(long S_no)
+ T_CTOR("int-no",T_Enum::T_T_int_no_,0,false,false)
+ {no_ = S_no;}
+ long T_int_no::no(){return no_;};
+ ***
+ }
+)
+//
+// Yacco2 keywords
+//
+"#raw-characters"
+/@
+\O2's keyword introducing the raw characters vocabulary.
+@/
+(sym-class T_raw_characters{
+ user-declaration
+ public:
+ T_raw_characters();
+ void rc_phrase(T_rc_phrase* Phrase);
+ T_rc_phrase* rc_phrase();
+ private:T_rc_phrase* rc_phrase_;
+ ***
+ user-implementation
+ T_raw_characters::T_raw_characters()
+ T_CTOR("#raw-characters",T_Enum::T_T_raw_characters_,&dtor_T_raw_characters,false,false)
+ {rc_phrase_ = 0;}
+ T_rc_phrase* T_raw_characters::rc_phrase(){return rc_phrase_;}
+ void T_raw_characters::rc_phrase(T_rc_phrase* Phrase){rc_phrase_ = Phrase;}
+ ***
+ destructor
+ if(R->rc_phrase_!=0)
+ delete R->rc_phrase_;
+ ***
+ }
+)
+
+"#lr1-constant-symbols"
+/@
+\O2's keyword introducing the lr constants vocabulary.
+@/
+ (sym-class T_lr1_constant_symbols{
+ user-declaration
+ public:
+ T_lr1_constant_symbols();
+ void lr1_k_phrase(T_lr1_k_phrase* Phrase);
+ T_lr1_k_phrase* lr1_k_phrase();
+ private:T_lr1_k_phrase* lr1_k_phrase_;
+ ***
+ user-implementation
+ T_lr1_constant_symbols::T_lr1_constant_symbols()
+T_CTOR("#lr1-constant-symbols",T_Enum::T_T_lr1_constant_symbols_,&dtor_T_lr1_constant_symbols,false,false)
+ {lr1_k_phrase_ = 0;}
+ T_lr1_k_phrase* T_lr1_constant_symbols::lr1_k_phrase(){return lr1_k_phrase_;}
+ void T_lr1_constant_symbols::lr1_k_phrase(T_lr1_k_phrase* Phrase){lr1_k_phrase_ = Phrase;}
+ ***
+ destructor
+ if(R->lr1_k_phrase_ != 0)
+ delete R->lr1_k_phrase_;
+ ***
+ }
+)
+
+"#error-symbols"
+/@
+\O2's keyword introducing the Errors vocabulary.
+@/
+ (sym-class T_error_symbols{
+ user-declaration
+ public:
+ T_error_symbols();
+ void error_symbols_phrase(T_error_symbols_phrase* Phrase);
+ T_error_symbols_phrase* error_symbols_phrase();
+ private:T_error_symbols_phrase* error_symbols_phrase_;
+ ***
+ user-implementation
+ T_error_symbols::T_error_symbols()
+T_CTOR("#error-symbols",T_Enum::T_T_error_symbols_,&dtor_T_error_symbols,false,false)
+ {error_symbols_phrase_ = 0;}
+ T_error_symbols_phrase*
+ T_error_symbols::error_symbols_phrase(){return error_symbols_phrase_;}
+ void T_error_symbols::
+ error_symbols_phrase(T_error_symbols_phrase* Phrase){error_symbols_phrase_ = Phrase;}
+ ***
+ destructor
+ if(R->error_symbols_phrase_ != 0)
+ delete R->error_symbols_phrase_;
+ ***
+ }
+)
+
+"#***"
+/@
+\O2's keyword ending syntax directed code block.
+@/
+
+ (sym-class T_eocode)
+
+"#AD"
+/@
+``AD'' means auto-delete.
+This attribute when present with any grammar's vocabulary definition ---
+rules or terminals,
+indicates
+that the symbol is deleted when popped from
+the parse stack.
+Rules always have this attribute turned on.
+@/
+ (sym-class T_AD)
+"#AB"
+/@
+``AB'' means auto-abort.
+This attribute when present with any grammar's vocabulary definition ---
+rules or terminals,
+allows proper cleanup when a grammar aborts parsing.
+Rules always have this attribute turned on to
+house clean their parse tracings in any situation.
+Terminal definitions left on the aborted parse stack
+are also deleted if their ``AB'' attribute is on.
+This forced cleanup of the parse stack brings the grammar
+back to normalcy.
+@/
+ (sym-class T_AB)
+"#parallel-la-boundary"
+/@
+Thread lookahead first set.
+@/
+(sym-class T_parallel_la_boundary{
+ user-declaration
+ public:
+ T_parallel_la_boundary();
+ void la_first_set(std::set<T_in_stbl*>& Supplier);
+ std::set<T_in_stbl*>* la_first_set();
+ void la_supplier(yacco2::TOKEN_GAGGLE* Supplier);
+ yacco2::TOKEN_GAGGLE* la_supplier();
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ void cweb_la_srce_expr(const char* Srce_expr);
+ std::string* cweb_la_srce_expr();
+ private:
+ std::set<T_in_stbl*> la_first_set_;
+ std::string cweb_la_srce_expr_;
+ AST* cweb_marker_;
+ yacco2::TOKEN_GAGGLE* la_supplier_;
+ ***
+ user-implementation
+ T_parallel_la_boundary::T_parallel_la_boundary()
+ T_CTOR("#parallel-la-boundary",T_Enum::T_T_parallel_la_boundary_,0,false,false)
+ {la_supplier_ = 0;
+ cweb_marker_=0;
+ }
+ void T_parallel_la_boundary::cweb_la_srce_expr(const char* Srce_expr){
+ cweb_la_srce_expr_.append(Srce_expr);
+ }
+ std::string* T_parallel_la_boundary::cweb_la_srce_expr(){
+ return &cweb_la_srce_expr_;
+ }
+
+ yacco2::TOKEN_GAGGLE* T_parallel_la_boundary::la_supplier(){return la_supplier_;}
+ void T_parallel_la_boundary::la_supplier(yacco2::TOKEN_GAGGLE* Supplier)
+ {la_supplier_ = Supplier;}
+
+ void T_parallel_la_boundary::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+
+ AST* T_parallel_la_boundary::cweb_marker(){
+ return cweb_marker_;
+ }
+
+ std::set<T_in_stbl*>* T_parallel_la_boundary::la_first_set()
+ {return &la_first_set_;}
+ void T_parallel_la_boundary::la_first_set(std::set<T_in_stbl*>& Supplier)
+ {
+ la_first_set_.insert(Supplier.begin(),Supplier.end());
+ }
+ ***
+ }
+)
+
+"#arbitrator-code"
+/@
+\O2's keyword introducing c++ arbitration code within the grammar's rule.
+@/
+
+(sym-class T_arbitrator_code{
+ user-declaration
+ public:
+ T_arbitrator_code();
+ void syntax_code(T_syntax_code* Stc);
+ T_syntax_code* syntax_code();
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ private:T_syntax_code* syntax_code_;
+ AST* cweb_marker_;
+ ***
+ user-implementation
+ T_arbitrator_code::T_arbitrator_code()
+ T_CTOR("#arbitrator-code",T_Enum::T_T_arbitrator_code_,0,false,false)
+ {syntax_code_ = 0;cweb_marker_=0;}
+ T_syntax_code* T_arbitrator_code::syntax_code(){return syntax_code_;}
+ void T_arbitrator_code::syntax_code(T_syntax_code* Stc){syntax_code_ = Stc;}
+ void T_arbitrator_code::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+ AST* T_arbitrator_code::cweb_marker(){
+ return cweb_marker_;
+ }
+ ***
+ }
+)
+
+"#parallel-parser"
+/@
+\O2's keyword introducing the grammar as a thread:
+all the debutant's coming out like its thread name
+and look ahead expression.
+@/
+ (sym-class T_parallel_parser{
+ user-declaration
+ public:
+ T_parallel_parser();
+ void parallel_parser_phrase(T_parallel_parser_phrase* Phrase);
+ T_parallel_parser_phrase* parallel_parser_phrase();
+ private:T_parallel_parser_phrase* parallel_parser_phrase_;
+ ***
+ user-implementation
+ T_parallel_parser::T_parallel_parser()
+ T_CTOR("#parallel-parser",T_Enum::T_T_parallel_parser_,&dtor_T_parallel_parser,false,false)
+ {parallel_parser_phrase_ = 0;}
+ T_parallel_parser_phrase*
+ T_parallel_parser::parallel_parser_phrase(){return parallel_parser_phrase_;}
+ void T_parallel_parser::parallel_parser_phrase
+ (T_parallel_parser_phrase* Phrase){parallel_parser_phrase_ = Phrase;}
+ ***
+ destructor
+ if(R->parallel_parser_phrase_ != 0)
+ delete R->parallel_parser_phrase_;
+ ***
+ }
+)
+
+"#parallel-thread-function"
+/@
+The grammar thread's name construct.
+@/
+(sym-class T_parallel_thread_function{
+ user-declaration
+ public:
+ T_parallel_thread_function();
+ void identifier(T_identifier* Id);
+ T_identifier* identifier();
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ private:T_identifier* id_;
+ AST* cweb_marker_;
+ ***
+ user-implementation
+ T_parallel_thread_function::T_parallel_thread_function()
+ T_CTOR("#parallel-thread-function",T_Enum::T_T_parallel_thread_function_,0,false,false)
+ {id_ = 0;cweb_marker_=0;}
+ T_identifier* T_parallel_thread_function::identifier(){return id_;}
+ void T_parallel_thread_function::identifier(T_identifier* Id){id_ = Id;}
+ void T_parallel_thread_function::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+ AST* T_parallel_thread_function::cweb_marker(){
+ return cweb_marker_;
+ }
+ ***
+ }
+)
+
+"#parallel-control-monitor"
+/@
+Introduction of the rule's arbitration.
+For the moment, all rules using a thread call need this
+grammar construct that introduces
+the arbitration logic.
+Most rules do not need to arbitrate.
+It is determinist in the returned terminal from
+threads.
+So why must it be present?
+Only cuz of my frontend hacking of ideas.
+It will be corrected to simplifiy the grammar code.
+@/
+
+(sym-class T_parallel_control_monitor)
+
+"#fsm" (sym-class T_fsm{
+ user-declaration
+ public:
+ T_fsm();
+ void fsm_phrase(T_fsm_phrase* Phrase);
+ T_fsm_phrase* fsm_phrase();
+ private:T_fsm_phrase* fsm_phrase_;
+ ***
+ user-implementation
+ T_fsm::T_fsm()
+ T_CTOR("#fsm",T_Enum::T_T_fsm_,&dtor_T_fsm,false,false)
+ {fsm_phrase_ = 0;}
+ T_fsm_phrase* T_fsm::fsm_phrase(){return fsm_phrase_;}
+ void T_fsm::fsm_phrase(T_fsm_phrase* Phrase){fsm_phrase_ = Phrase;}
+ ***
+ destructor
+ if(R->fsm_phrase_ != 0)
+ delete R->fsm_phrase_;
+ ***
+ }
+)
+
+"#fsm-id" (sym-class T_fsm_id)
+"#fsm-filename" (sym-class T_fsm_filename)
+"#fsm-namespace" (sym-class T_fsm_namespace)
+"#fsm-class" (sym-class T_fsm_class)
+"#fsm-version" (sym-class T_fsm_version)
+"#fsm-date" (sym-class T_fsm_date)
+"#fsm-debug" (sym-class T_fsm_debug)
+"#fsm-comments" (sym-class T_fsm_comments)
+
+"#terminals" AB
+/@
+Introduces the Terminal vocabulary phrase of the grammar.
+Note the ``auto abort'' indicator that should match with the |CTOR| macro.
+Which vice is it?
+@/
+ (sym-class T_terminals{
+ user-declaration
+ public:
+ T_terminals();
+ void terminals_phrase(T_terminals_phrase* Phrase);
+ T_terminals_phrase* terminals_phrase();
+ private:T_terminals_phrase* terminals_phrase_;
+ ***
+ user-implementation
+ T_terminals::T_terminals()
+ T_CTOR("#terminals",T_Enum::T_T_terminals_,&dtor_T_terminals,false,true)
+ {terminals_phrase_ = 0;}
+ T_terminals_phrase* T_terminals::terminals_phrase(){return terminals_phrase_;}
+ void T_terminals::terminals_phrase(T_terminals_phrase* Phrase)
+ {terminals_phrase_ = Phrase;}
+ ***
+ destructor
+ if(R->terminals_phrase_ != 0)
+ delete R->terminals_phrase_;
+ ***
+ }
+)
+
+"#T-enumeration" AB
+/@
+Introduces the enumeration construct of the grammar.
+The 1 + 2 + 3 scheme counting of the symbols.
+@/
+ (sym-class T_enumeration{
+ user-declaration
+ public:
+ T_enumeration();
+ void enum_phrase(T_enum_phrase* Phrase);
+ T_enum_phrase* enum_phrase();
+ private:T_enum_phrase* enum_phrase_;
+ ***
+ user-implementation
+ T_enumeration::T_enumeration()
+ T_CTOR("#T-enumeration",T_Enum::T_T_enumeration_,&dtor_T_enumeration,false,true)
+ {enum_phrase_ = 0;}
+ T_enum_phrase* T_enumeration::enum_phrase(){return enum_phrase_;}
+ void T_enumeration::enum_phrase(T_enum_phrase* Phrase){enum_phrase_ = Phrase;}
+ ***
+ destructor
+ if(R->enum_phrase_ != 0)
+ delete R->enum_phrase_;
+ ***
+ }
+)
+
+
+"#file-name" (sym-class T_file_name)
+"#name-space" (sym-class T_name_space)
+"#sym-class" (sym-class T_sym_class)
+
+"#rules" AB
+/@
+Introduces the rules construct of the grammar.
+@/
+
+ (sym-class T_rules {
+ user-declaration
+ public:
+ T_rules();
+ void rules_phrase(T_rules_phrase* Phrase);
+ T_rules_phrase* rules_phrase();
+ private:T_rules_phrase* rules_phrase_;
+ ***
+ user-implementation
+ T_rules::T_rules()
+ T_CTOR("#rules",T_Enum::T_T_rules_,&dtor_T_rules,false,true)
+ {rules_phrase_ = 0;}
+ T_rules_phrase* T_rules::rules_phrase(){return rules_phrase_;}
+ void T_rules::rules_phrase(T_rules_phrase* Phrase){rules_phrase_ = Phrase;}
+ ***
+ destructor
+ if(R->rules_phrase_ != 0)
+ delete R->rules_phrase_;
+ ***
+ }
+)
+
+"#lhs" (sym-class T_lhs)
+
+"#user-declaration"
+(sym-class T_user_declaration{
+ user-declaration
+ public:
+ T_user_declaration();
+ void syntax_code(T_syntax_code* Stc);
+ T_syntax_code* syntax_code();
+ private:T_syntax_code* syntax_code_;
+ ***
+ user-implementation
+ T_user_declaration::T_user_declaration()
+ T_CTOR("#user-declaration",T_Enum::T_T_user_declaration_,0,false,false)
+ {syntax_code_ = 0;}
+ T_syntax_code* T_user_declaration::syntax_code(){return syntax_code_;}
+ void T_user_declaration::syntax_code(T_syntax_code* Stc){syntax_code_ = Stc;}
+ ***
+ }
+)
+
+"#user-prefix-declaration"
+(sym-class T_user_prefix_declaration{
+ user-declaration
+ public:
+ T_user_prefix_declaration();
+ void syntax_code(T_syntax_code* Stc);
+ T_syntax_code* syntax_code();
+ private:T_syntax_code* syntax_code_;
+ ***
+ user-implementation
+ T_user_prefix_declaration::T_user_prefix_declaration()
+ T_CTOR("#user-prefix-declaration",T_Enum::T_T_user_prefix_declaration_,0,false,false)
+ {syntax_code_ = 0;}
+ T_syntax_code* T_user_prefix_declaration::syntax_code(){return syntax_code_;}
+ void T_user_prefix_declaration::syntax_code(T_syntax_code* Stc){syntax_code_ = Stc;}
+ ***
+ }
+)
+
+"#user-suffix-declaration"
+(sym-class T_user_suffix_declaration{
+ user-declaration
+ public:
+ T_user_suffix_declaration();
+ void syntax_code(T_syntax_code* Stc);
+ T_syntax_code* syntax_code();
+ private:T_syntax_code* syntax_code_;
+ ***
+ user-implementation
+ T_user_suffix_declaration::T_user_suffix_declaration()
+ T_CTOR("#user-suffix-declaration",T_Enum::T_T_user_suffix_declaration_,0,false,false)
+ {syntax_code_ = 0;}
+ T_syntax_code* T_user_suffix_declaration::syntax_code(){return syntax_code_;}
+ void T_user_suffix_declaration::syntax_code(T_syntax_code* Stc){syntax_code_ = Stc;}
+ ***
+ }
+)
+
+"#constructor"
+(sym-class T_constructor{
+ user-declaration
+ public:
+ T_constructor();
+ void syntax_code(T_syntax_code* Stc);
+ T_syntax_code* syntax_code();
+ private:T_syntax_code* syntax_code_;
+ ***
+ user-implementation
+ T_constructor::T_constructor()
+ T_CTOR("#constructor",T_Enum::T_T_constructor_,0,false,false)
+ {syntax_code_ = 0;}
+ T_syntax_code* T_constructor::syntax_code(){return syntax_code_;}
+ void T_constructor::syntax_code(T_syntax_code* Stc){syntax_code_ = Stc;}
+ ***
+ }
+)
+
+"#destructor"
+(sym-class T_destructor{
+ user-declaration
+ public:
+ T_destructor();
+ void syntax_code(T_syntax_code* Stc);
+ T_syntax_code* syntax_code();
+ private:T_syntax_code* syntax_code_;
+ ***
+ user-implementation
+ T_destructor::T_destructor()
+ T_CTOR("#destructor",T_Enum::T_T_destructor_,0,false,false)
+ {syntax_code_ = 0;}
+ T_syntax_code* T_destructor::syntax_code(){return syntax_code_;}
+ void T_destructor::syntax_code(T_syntax_code* Stc){syntax_code_ = Stc;}
+ ***
+ }
+)
+
+"#op"
+(sym-class T_op{
+ user-declaration
+ public:
+ T_op();
+ void syntax_code(T_syntax_code* Stc);
+ T_syntax_code* syntax_code();
+ private:T_syntax_code* syntax_code_;
+ ***
+ user-implementation
+ T_op::T_op()
+ T_CTOR("#op",T_Enum::T_T_op_,0,false,false)
+ {syntax_code_ = 0;}
+ T_syntax_code* T_op::syntax_code(){return syntax_code_;}
+ void T_op::syntax_code(T_syntax_code* Stc){syntax_code_ = Stc;}
+ ***
+ }
+)
+
+"#failed"
+(sym-class T_failed{
+ user-declaration
+ public:
+ T_failed();
+ void syntax_code(T_syntax_code* Stc);
+ T_syntax_code* syntax_code();
+ private:T_syntax_code* syntax_code_;
+ ***
+ user-implementation
+ T_failed::T_failed()
+ T_CTOR("#failed",T_Enum::T_T_failed_,0,false,false)
+ {syntax_code_ = 0;}
+ T_syntax_code* T_failed::syntax_code(){return syntax_code_;}
+ void T_failed::syntax_code(T_syntax_code* Stc){syntax_code_ = Stc;}
+ ***
+ }
+)
+
+"#user-implementation"
+(sym-class T_user_implementation{
+ user-declaration
+ public:
+ T_user_implementation();
+ void syntax_code(T_syntax_code* Stc);
+ T_syntax_code* syntax_code();
+ private:T_syntax_code* syntax_code_;
+ ***
+ user-implementation
+ T_user_implementation::T_user_implementation()
+ T_CTOR("#user-implementation",T_Enum::T_T_user_implementation_,0,false,false)
+ {syntax_code_ = 0;}
+ T_syntax_code* T_user_implementation::syntax_code(){return syntax_code_;}
+ void T_user_implementation::syntax_code(T_syntax_code* Stc){syntax_code_ = Stc;}
+ ***
+ }
+)
+
+"#user-imp-tbl"
+(sym-class T_user_imp_tbl{
+ user-declaration
+ public:
+ T_user_imp_tbl();
+ void syntax_code(T_syntax_code* Stc);
+ T_syntax_code* syntax_code();
+ private:T_syntax_code* syntax_code_;
+ ***
+ user-implementation
+ T_user_imp_tbl::T_user_imp_tbl()
+ T_CTOR("#user-imp-tbl",T_Enum::T_T_user_imp_tbl_,0,false,false)
+ {syntax_code_ = 0;}
+ T_syntax_code* T_user_imp_tbl::syntax_code(){return syntax_code_;}
+ void T_user_imp_tbl::syntax_code(T_syntax_code* Stc){syntax_code_ = Stc;}
+ ***
+ }
+)
+
+"#user-imp-sym"
+(sym-class T_user_imp_sym{
+ user-declaration
+ public:
+ T_user_imp_sym();
+ void syntax_code(T_syntax_code* Stc);
+ T_syntax_code* syntax_code();
+ private:T_syntax_code* syntax_code_;
+ ***
+ user-implementation
+ T_user_imp_sym::T_user_imp_sym()
+ T_CTOR("#user-imp-sym",T_Enum::T_T_user_imp_sym_,0,false,false)
+ {syntax_code_ = 0;}
+ T_syntax_code* T_user_imp_sym::syntax_code(){return syntax_code_;}
+ void T_user_imp_sym::syntax_code(T_syntax_code* Stc){syntax_code_ = Stc;}
+ ***
+ }
+)
+
+"#constant-defs" (sym-class T_constant_defs)
+"#terminals-refs" (sym-class T_terminals_refs)
+"#terminals-sufx" (sym-class T_terminals_sufx)
+"#lrk-sufx" (sym-class T_lrk_sufx)
+
+"->" (sym-class T_selector)
+"#NULL" (sym-class T_NULL)
+"::" (sym-class T_2colon)
+
+
+
+"block" AB
+(sym-class T_block{
+ user-declaration
+ public:
+ T_block(yacco2::AST* Ast);
+ yacco2::AST* ast();
+ private: yacco2::AST* ast_;
+ ***
+ user-implementation
+ T_block::
+ T_block(yacco2::AST* Ast)
+ T_CTOR("block",T_Enum::T_T_block_,&dtor_T_block,false,true)
+ {ast_ = Ast;}
+ yacco2::AST* T_block::ast(){return ast_;}
+ ***
+ destructor
+ if(ABORT_STATUS == true){
+ yacco2::AST::zero_content(*R->ast());// break dbl delete of self
+ yacco2::AST::ast_delete(*R->ast(),ABORT_STATUS);
+ }
+ ***
+ }
+)
+
+"syntax-code"
+(sym-class T_syntax_code{
+ user-declaration
+ public:
+ T_syntax_code(const char* Syntax_code);
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ std::string* syntax_code();
+ private:std::string syntax_code_;
+ AST* cweb_marker_;
+ ***
+ user-implementation
+ T_syntax_code::T_syntax_code(const char* Syntax_code)
+ T_CTOR("syntax-code",T_Enum::T_T_syntax_code_,0,false,false)
+ {syntax_code_ += Syntax_code;
+ cweb_marker_=0;}
+ std::string* T_syntax_code::syntax_code(){return &syntax_code_;}
+ void T_syntax_code::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+ AST* T_syntax_code::cweb_marker(){
+ return cweb_marker_;
+ }
+ ***
+ }
+)
+
+"fsm-class-phrase" (sym-class T_fsm_class_phrase {
+ user-declaration
+ public:
+ T_fsm_class_phrase();
+ T_identifier* identifier();
+ void identifier(T_identifier* Id);
+ void remove_directives_from_map();
+ std::map<std::string,CAbs_lr1_sym*>* directives_map();
+ CAbs_lr1_sym* // 0 - ok, or error
+ add_directive_to_map(CAbs_lr1_sym* Directive,yacco2::Parser* P);
+ void phrase_tree(AST* Tree);
+ AST* phrase_tree();
+ private:
+ T_identifier* identifier_;
+ std::map<std::string,CAbs_lr1_sym*> directives_map_;
+ AST* phrase_tree_;
+ ***
+ user-implementation
+ T_fsm_class_phrase::T_fsm_class_phrase()
+T_CTOR("fsm-class-phrase",T_Enum::T_T_fsm_class_phrase_,&dtor_T_fsm_class_phrase,false,false)
+ {identifier_ = 0;phrase_tree_=0;}
+
+ void T_fsm_class_phrase::phrase_tree(AST* Tree){phrase_tree_=Tree;}
+ AST* T_fsm_class_phrase::phrase_tree(){return phrase_tree_;}
+
+ T_identifier* T_fsm_class_phrase::identifier(){return identifier_;}
+ void T_fsm_class_phrase::identifier(T_identifier* Id){identifier_ = Id;}
+
+ std::map<string,CAbs_lr1_sym*>*
+ T_fsm_class_phrase::directives_map(){
+ return &directives_map_;
+ }
+
+ void T_fsm_class_phrase::remove_directives_from_map(){
+ std::map<std::string,CAbs_lr1_sym*>::iterator i = directives_map_.begin();
+ std::map<std::string,CAbs_lr1_sym*>::iterator ie = directives_map_.end();
+ for(;i != ie;++i){
+ CAbs_lr1_sym* sym = i->second;
+ delete sym;
+ }
+ }
+
+ CAbs_lr1_sym* // 0 - ok, or error
+ T_fsm_class_phrase::
+ add_directive_to_map(CAbs_lr1_sym* Directive,yacco2::Parser* P){
+ std::map<std::string,CAbs_lr1_sym*>::iterator i;
+ string key(Directive->id__);
+ i = directives_map_.find(key);
+ if(i == directives_map_.end()){
+ directives_map_[key] = Directive;
+ return 0;
+ }
+ CAbs_lr1_sym* sym = new Err_duplicate_directive;
+ sym->set_rc(*Directive,__FILE__,__LINE__);
+ remove_directives_from_map();
+ return sym;
+ }
+ ***
+ destructor
+ if(R->identifier_ != 0)
+ delete R->identifier_;
+ R->remove_directives_from_map();
+ ***
+ }
+)
+//
+"fsm-phrase" (sym-class T_fsm_phrase {
+ user-declaration
+ public:
+ T_fsm_phrase();
+ T_c_string* fsm_id();
+ void fsm_id(T_c_string* Id);
+ T_identifier* filename_id();
+ void filename_id(T_identifier* Id);
+ T_identifier* namespace_id();
+ void namespace_id(T_identifier* Id);
+ T_fsm_class_phrase* fsm_class_phrase();
+ void fsm_class_phrase(T_fsm_class_phrase* Id);
+ T_c_string* version();
+ void version(T_c_string* Id);
+ T_c_string* date();
+ void date(T_c_string* Id);
+ T_c_string* debug();
+ void debug(T_c_string* Id);
+ T_c_string* comment();
+ void comment(T_c_string* Id);
+ void phrase_tree(AST* Tree);
+ AST* phrase_tree();
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ private:
+ T_c_string* fsm_id_;
+ T_identifier* filename_id_;
+ string filename_no_ext_;
+ T_identifier* namespace_id_;
+ T_fsm_class_phrase* fsm_class_phrase_;
+ T_c_string* version_;
+ T_c_string* date_;
+ T_c_string* debug_;
+ T_c_string* comment_;
+ AST* phrase_tree_;
+ AST* cweb_marker_;
+ ***
+ user-implementation
+ T_fsm_phrase::T_fsm_phrase()
+ T_CTOR("fsm-phrase",T_Enum::T_T_fsm_phrase_,&dtor_T_fsm_phrase,false,false)
+ {fsm_id_ = 0;
+ filename_id_ = 0;
+ namespace_id_ = 0;
+ fsm_class_phrase_ = 0;
+ version_ = 0;
+ date_ = 0;
+ debug_ = 0;
+ comment_ = 0;
+ phrase_tree_=0;
+ cweb_marker_=0;
+ }
+
+ void T_fsm_phrase::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+ AST* T_fsm_phrase::cweb_marker(){
+ return cweb_marker_;
+ }
+
+ void T_fsm_phrase::phrase_tree(AST* Tree){phrase_tree_=Tree;}
+ AST* T_fsm_phrase::phrase_tree(){return phrase_tree_;}
+
+ T_c_string* T_fsm_phrase::fsm_id(){return fsm_id_;}
+ void T_fsm_phrase::fsm_id(T_c_string* Id){fsm_id_ = Id;}
+ T_identifier* T_fsm_phrase::filename_id(){return filename_id_;}
+ void T_fsm_phrase::filename_id(T_identifier* Id){filename_id_ = Id;}
+ T_identifier* T_fsm_phrase::namespace_id(){return namespace_id_;}
+ void T_fsm_phrase::namespace_id(T_identifier* Id){namespace_id_ = Id;}
+
+ T_fsm_class_phrase* T_fsm_phrase::fsm_class_phrase(){return fsm_class_phrase_;}
+ void T_fsm_phrase::fsm_class_phrase(T_fsm_class_phrase* Id)
+ {fsm_class_phrase_ = Id;}
+
+
+ T_c_string* T_fsm_phrase::version(){return version_;}
+ void T_fsm_phrase::version(T_c_string* Id){version_ = Id;}
+ T_c_string* T_fsm_phrase::date(){return date_;}
+ void T_fsm_phrase::date(T_c_string* Id){date_ = Id;}
+ T_c_string* T_fsm_phrase::debug(){return debug_;}
+ void T_fsm_phrase::debug(T_c_string* Id){debug_ = Id;}
+ T_c_string* T_fsm_phrase::comment(){return comment_;}
+ void T_fsm_phrase::comment(T_c_string* Id){comment_ = Id;}
+ ***
+ destructor
+ delete R->fsm_id_;
+ delete R->filename_id_;
+ delete R->namespace_id_;
+ delete R->fsm_class_phrase_;
+ delete R->version_;
+ delete R->date_;
+ delete R->debug_;
+ delete R->comment_;
+ ***
+ }
+)
+//
+"parallel-parser-phrase" (sym-class T_parallel_parser_phrase {
+ user-declaration
+ public:
+ T_parallel_parser_phrase();
+ T_parallel_thread_function* pp_funct();
+ void pp_funct(T_parallel_thread_function* PP_fnct);
+ T_parallel_la_boundary* la_bndry();
+ void la_bndry(T_parallel_la_boundary* La_bndry);
+ void phrase_tree(AST* Tree);
+ AST* phrase_tree();
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ private:
+ T_parallel_thread_function* pp_funct_;
+ T_parallel_la_boundary* la_bndry_;
+ AST* phrase_tree_;
+ AST* cweb_marker_;
+ ***
+ user-implementation
+ T_parallel_parser_phrase::T_parallel_parser_phrase()
+ T_CTOR("parallel-parser-phrase",T_Enum::T_T_parallel_parser_phrase_,&dtor_T_parallel_parser_phrase,false,false)
+ {phrase_tree_=0;cweb_marker_=0;}
+
+ void T_parallel_parser_phrase::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+
+ AST* T_parallel_parser_phrase::cweb_marker(){
+ return cweb_marker_;
+ }
+
+ void T_parallel_parser_phrase::phrase_tree(AST* Tree){phrase_tree_=Tree;}
+ AST* T_parallel_parser_phrase::phrase_tree(){return phrase_tree_;}
+
+ T_parallel_thread_function* T_parallel_parser_phrase::pp_funct(){
+ return pp_funct_;
+ }
+ void T_parallel_parser_phrase::pp_funct(T_parallel_thread_function* PP_fnct){
+ pp_funct_ = PP_fnct;
+ }
+ T_parallel_la_boundary* T_parallel_parser_phrase::la_bndry(){
+ return la_bndry_;
+ }
+ void T_parallel_parser_phrase::la_bndry(T_parallel_la_boundary* La_bndry){
+ la_bndry_ = La_bndry;
+ }
+ ***
+ destructor
+ delete R->la_bndry_;
+ delete R->pp_funct_;
+ ***
+ }
+)
+//
+"T-enum-phrase" (sym-class T_enum_phrase {
+ user-declaration
+ public:
+ T_enum_phrase();
+ T_identifier* filename_id();
+ void filename_id(T_identifier* Id);
+ T_identifier* namespace_id();
+ void namespace_id(T_identifier* Id);
+ T_syntax_code* kdefs();
+ void kdefs(T_syntax_code* Kdefs);
+ void start_lrk_enumerate(int Enum);
+ void stop_lrk_enumerate(int Enum);
+ int start_lrk_enumerate();
+ int stop_lrk_enumerate();
+ void start_err_enumerate(int Enum);
+ void stop_err_enumerate(int Enum);
+ int start_err_enumerate();
+ int stop_err_enumerate();
+ void start_rc_enumerate(int Enum);
+ void stop_rc_enumerate(int Enum);
+ int start_rc_enumerate();
+ int stop_rc_enumerate();
+ void start_T_enumerate(int Enum);
+ void stop_T_enumerate(int Enum);
+ int start_T_enumerate();
+ int stop_T_enumerate();
+
+ int total_T_enumerate();
+ void total_T_enumerate(int Enum);
+ int total_rc_enumerate();
+ void total_rc_enumerate(int Enum);
+ int total_err_enumerate();
+ void total_err_enumerate(int Enum);
+ int total_lrk_enumerate();
+ void total_lrk_enumerate(int Enum);
+ void total_enumerate(int Enum);
+ int total_enumerate();
+ void phrase_tree(AST* Tree);
+ AST* phrase_tree();
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ int total_no_subrules();
+ void total_no_subrules(int Total_subrules);
+ private:
+ T_syntax_code* kdefs_;
+ T_identifier* filename_id_;
+ T_identifier* namespace_id_;
+ int start_lrk_enumerate_;
+ int stop_lrk_enumerate_;
+ int start_err_enumerate_;
+ int stop_err_enumerate_;
+ int start_rc_enumerate_;
+ int stop_rc_enumerate_;
+ int start_T_enumerate_;
+ int stop_T_enumerate_;
+ int total_enumerate_;
+ int total_T_enumerate_;
+ int total_rc_enumerate_;
+ int total_err_enumerate_;
+ int total_lrk_enumerate_;
+ int total_no_subrules_;
+ AST* phrase_tree_;
+ AST* cweb_marker_;
+ ***
+ user-implementation
+ T_enum_phrase::T_enum_phrase()
+ T_CTOR("T-enum-phrase",T_Enum::T_T_enum_phrase_,&dtor_T_enum_phrase,false,false)
+ {kdefs_ = 0;phrase_tree_=0;cweb_marker_=0;}
+
+ void T_enum_phrase::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+
+ AST* T_enum_phrase::cweb_marker(){
+ return cweb_marker_;
+ }
+
+ void T_enum_phrase::phrase_tree(AST* Tree){phrase_tree_=Tree;}
+ AST* T_enum_phrase::phrase_tree(){return phrase_tree_;}
+
+ T_identifier* T_enum_phrase::filename_id(){return filename_id_;}
+ void T_enum_phrase::filename_id(T_identifier* Id){filename_id_ = Id;}
+ T_identifier* T_enum_phrase::namespace_id(){return namespace_id_;}
+ void T_enum_phrase::namespace_id(T_identifier* Id){namespace_id_ = Id;}
+
+ T_syntax_code*
+ T_enum_phrase::kdefs(){return kdefs_;}
+
+ void T_enum_phrase::kdefs(T_syntax_code* Kdefs){
+ kdefs_ = Kdefs;
+ }
+ void T_enum_phrase::start_lrk_enumerate(int Enum){start_lrk_enumerate_ = Enum;}
+ void T_enum_phrase::stop_lrk_enumerate(int Enum){stop_lrk_enumerate_ = Enum;}
+ int T_enum_phrase::start_lrk_enumerate(){return start_lrk_enumerate_;}
+ int T_enum_phrase::stop_lrk_enumerate(){return stop_lrk_enumerate_;}
+ void T_enum_phrase::start_err_enumerate(int Enum){start_err_enumerate_ = Enum;}
+ void T_enum_phrase::stop_err_enumerate(int Enum){stop_err_enumerate_ = Enum;}
+ int T_enum_phrase::start_err_enumerate(){return start_err_enumerate_;}
+ int T_enum_phrase::stop_err_enumerate(){return stop_err_enumerate_;}
+ void T_enum_phrase::start_rc_enumerate(int Enum){start_rc_enumerate_ = Enum;}
+ void T_enum_phrase::stop_rc_enumerate(int Enum){stop_rc_enumerate_ = Enum;}
+ int T_enum_phrase::start_rc_enumerate(){return start_rc_enumerate_;}
+ int T_enum_phrase::stop_rc_enumerate(){return stop_rc_enumerate_;}
+ void T_enum_phrase::start_T_enumerate(int Enum){start_T_enumerate_ = Enum;}
+ void T_enum_phrase::stop_T_enumerate(int Enum){stop_T_enumerate_ = Enum;}
+ int T_enum_phrase::start_T_enumerate(){return start_T_enumerate_;}
+ int T_enum_phrase::stop_T_enumerate(){return stop_T_enumerate_;}
+ void T_enum_phrase::total_enumerate(int Enum){total_enumerate_ = Enum;}
+ int T_enum_phrase::total_enumerate(){return total_enumerate_;}
+
+ void T_enum_phrase::total_T_enumerate(int Enum){total_T_enumerate_ = Enum;}
+ int T_enum_phrase::total_T_enumerate(){return total_T_enumerate_;}
+ void T_enum_phrase::total_rc_enumerate(int Enum){total_rc_enumerate_ = Enum;}
+ int T_enum_phrase::total_rc_enumerate(){return total_rc_enumerate_;}
+ void T_enum_phrase::total_err_enumerate(int Enum){total_err_enumerate_ = Enum;}
+ int T_enum_phrase::total_err_enumerate(){return total_err_enumerate_;}
+ void T_enum_phrase::total_lrk_enumerate(int Enum){total_lrk_enumerate_ = Enum;}
+ int T_enum_phrase::total_lrk_enumerate(){return total_lrk_enumerate_;}
+ int T_enum_phrase::total_no_subrules(){return total_no_subrules_;}
+ void T_enum_phrase::total_no_subrules(int Total_subrules){
+ total_no_subrules_ = Total_subrules;
+ }
+ ***
+ destructor
+ delete R->filename_id_;
+ delete R->namespace_id_;
+ delete R->kdefs_;
+ ***
+ }
+)
+
+"terminal-def"
+/@
+Watch out.\fbreak
+The individual syntax directed code directives
+are unique whereby each directive terminal contains their source code.
+Depending on their key within the ``directives\_map\_'',
+u recast the abstract symbol
+into the specific directive.\fbreak
+For example:\fbreak
+The ``SDC\_user\_declaration'' key representing the ``user-declaration'' directive
+would cast the mapped symbol to |T_user_declaration|.
+@/
+
+(sym-class T_terminal_def {
+ user-declaration
+ public:
+ enum classification_typ {not_classed,err,rc,lrk,t};
+ T_terminal_def();
+ void remove_directives_from_map();
+ std::map<std::string,CAbs_lr1_sym*>* directives_map();
+ CAbs_lr1_sym* // 0 - ok, or error
+ add_directive_to_map(CAbs_lr1_sym* Directive,yacco2::Parser* P);
+
+ std::string* t_name();
+ void t_name(const char* Id);
+ std::string* classsym();
+ void classsym(const char* Id);
+ bool autodelete();
+ void autodelete(bool Ton);
+ bool autoabort();
+ void autoabort(bool Ton);
+ classification_typ classification();
+ void classification(classification_typ C);
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ void enum_id(int Id);
+ int enum_id();
+ private:
+ std::string t_name_;
+ std::string class_sym_;
+ bool auto_delete_;
+ bool auto_abort_;
+ map<std::string,CAbs_lr1_sym*> directives_map_;
+ classification_typ classification_;
+ AST* cweb_marker_;
+ int enum_id_;
+ ***
+ user-implementation
+ T_terminal_def::T_terminal_def()
+T_CTOR("terminal-def",T_Enum::T_T_terminal_def_,&dtor_T_terminal_def,false,false)
+ {auto_delete_ = false;
+ auto_abort_ = false;
+ classification_ = T_terminal_def::not_classed;
+ cweb_marker_ = 0;
+ enum_id_ = -1;
+ }
+ void T_terminal_def::enum_id(int Id){enum_id_=Id;}
+ int T_terminal_def::enum_id(){return enum_id_;}
+ void T_terminal_def::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+
+ AST* T_terminal_def::cweb_marker(){
+ return cweb_marker_;
+ }
+
+ map<std::string,CAbs_lr1_sym*>*
+ T_terminal_def::directives_map(){
+ return &directives_map_;
+ }
+
+ void T_terminal_def::remove_directives_from_map(){
+ std::map<std::string,CAbs_lr1_sym*>::iterator i = directives_map_.begin();
+ std::map<std::string,CAbs_lr1_sym*>::iterator ie = directives_map_.end();
+ for(;i != ie;++i){
+ CAbs_lr1_sym* sym = i->second;
+ delete sym;
+ }
+ }
+
+ CAbs_lr1_sym* // 0 - ok, or error
+ T_terminal_def::
+ add_directive_to_map(CAbs_lr1_sym* Directive,yacco2::Parser* P){
+ map<std::string,CAbs_lr1_sym*>::iterator i;
+ std::string key(Directive->id__);
+ i = directives_map_.find(key);
+ if(i == directives_map_.end()){
+ directives_map_[key] = Directive;
+ return 0;
+ }
+ CAbs_lr1_sym* sym = new Err_duplicate_directive;
+ sym->set_rc(*Directive,__FILE__,__LINE__);
+ remove_directives_from_map();
+ return sym;
+ }
+
+ std::string* T_terminal_def::t_name(){return &t_name_;}
+ void T_terminal_def::t_name(const char* Id){t_name_ += Id;}
+
+ std::string* T_terminal_def::classsym(){return &class_sym_;}
+ void T_terminal_def::classsym(const char* Id){class_sym_ += Id;}
+
+ bool T_terminal_def::autodelete(){return auto_delete_;}
+ void T_terminal_def::autodelete(bool Ton){auto_delete_ = Ton;}
+
+ bool T_terminal_def::autoabort(){return auto_abort_;}
+ void T_terminal_def::autoabort(bool Ton){auto_abort_ = Ton;}
+
+ T_terminal_def::classification_typ
+ T_terminal_def::classification(){return classification_;}
+ void
+ T_terminal_def::classification(T_terminal_def::classification_typ C)
+ {classification_ = C;}
+ ***
+ destructor
+ R->remove_directives_from_map();
+ ***
+ }
+)
+//
+"table-entry" (sym-class table_entry {
+ user-declaration
+ public:
+ enum entry_typ {terminal,rule,keyword,unknown,thread};
+ enum defined_or_used_typ {defed,used};
+ table_entry();
+ bool vacant_;
+ bool defined_;
+ bool used_;
+ entry_typ type_;
+ CAbs_lr1_sym* symbol_;
+ const char* key_;
+ int pos_;
+ int key_len_;
+ ***
+ user-implementation
+ table_entry::
+ table_entry()
+ T_CTOR("symbol-table",T_Enum::T_table_entry_,0,false,false)
+ {vacant_ = true;
+ defined_ = false;
+ used_ = false;
+ type_ = table_entry::unknown;
+ symbol_ = 0;
+ key_ = 0;
+ pos_ = -1;
+ key_len_ = 0;
+ }
+ ***
+ }
+)
+//
+"sym-tbl-report-card" (sym-class T_sym_tbl_report_card {
+ user-declaration
+ public:
+ enum status {okay,failure,fatal};
+ enum action {not_fnd,fnd,inserted,aborted,unknown};
+ T_sym_tbl_report_card();
+ T_sym_tbl_report_card::status status_;
+ T_sym_tbl_report_card::action action_;
+ table_entry* tbl_entry_;
+ CAbs_lr1_sym* err_entry_;
+ int pos_;
+ int key_len_;
+ ***
+ user-implementation
+ T_sym_tbl_report_card::
+ T_sym_tbl_report_card()
+ T_CTOR("sym-tbl-report-card",T_Enum::T_T_sym_tbl_report_card_,0,false,false)
+ {status_ = okay;
+ action_ = unknown;
+ tbl_entry_ = 0;
+ pos_ = 0;
+ key_len_ = 0;
+ }
+ ***
+ }
+)
+//
+"terminals-phrase" (sym-class T_terminals_phrase {
+ user-declaration
+ public:
+ T_terminals_phrase();
+ T_identifier* filename_id();
+ void filename_id(T_identifier* Id);
+ T_identifier* namespace_id();
+ void namespace_id(T_identifier* Id);
+ void destroy_alphabet();
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*>* alphabet();
+ CAbs_lr1_sym* add_t_to_alphabet(T_terminal_def* T,yacco2::Parser* P);
+ std::vector<T_terminal_def*>* crt_order();
+ T_syntax_code* terminals_refs_code();
+ void terminals_refs_code(T_syntax_code* Code);
+ T_syntax_code* terminals_sufx_code();
+ void terminals_sufx_code(T_syntax_code* Code);
+ void phrase_tree(AST* Tree);
+ AST* phrase_tree();
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ private:
+ T_identifier* filename_id_;
+ T_identifier* namespace_id_;
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*> alphabet_;
+ std::vector<T_terminal_def*> crt_order_;
+ T_syntax_code* terminals_refs_code_;
+ T_syntax_code* terminals_sufx_code_;
+ AST* phrase_tree_;
+ AST* cweb_marker_;
+ ***
+ user-implementation
+ T_terminals_phrase::T_terminals_phrase()
+T_CTOR("terminals-phrase",T_Enum::T_T_terminals_phrase_,&dtor_T_terminals_phrase,false,false)
+ {terminals_refs_code_ = 0;
+ terminals_sufx_code_ = 0;
+ phrase_tree_=0;
+ cweb_marker_=0;
+ }
+
+ void T_terminals_phrase::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+
+ AST* T_terminals_phrase::cweb_marker(){
+ return cweb_marker_;
+ }
+
+ void T_terminals_phrase::phrase_tree(AST* Tree){phrase_tree_=Tree;}
+ AST* T_terminals_phrase::phrase_tree(){return phrase_tree_;}
+
+ T_identifier* T_terminals_phrase::filename_id(){return filename_id_;}
+ void T_terminals_phrase::filename_id(T_identifier* Id){filename_id_ = Id;}
+ T_identifier* T_terminals_phrase::namespace_id(){return namespace_id_;}
+ void T_terminals_phrase::namespace_id(T_identifier* Id){namespace_id_ = Id;}
+
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*>*
+ T_terminals_phrase::alphabet(){
+ return &alphabet_;
+ }
+ std::vector<T_terminal_def*>*
+ T_terminals_phrase::
+ crt_order(){return &crt_order_;}
+
+ void T_terminals_phrase::destroy_alphabet(){
+ std::vector<T_terminal_def*>::iterator i = crt_order_.begin();
+ std::vector<T_terminal_def*>::iterator ie = crt_order_.end();
+ for(;i != ie;++i){
+ CAbs_lr1_sym* sym = *i;
+ delete sym;
+ }
+ alphabet_.clear();
+ }
+
+ CAbs_lr1_sym*
+ T_terminals_phrase::
+ add_t_to_alphabet(T_terminal_def* T,yacco2::Parser* P){
+ string key(T->t_name()->c_str());
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*>::iterator i = alphabet_.find(key);
+ if(i != alphabet_.end()){
+ CAbs_lr1_sym* sym = new Err_dup_entry_in_alphabet;
+ sym->set_rc(*T,__FILE__,__LINE__);
+ return sym;
+ }
+ alphabet_[key] = T;
+ crt_order_.push_back(T);
+ return 0;
+ }
+
+ T_syntax_code*
+ T_terminals_phrase::
+ terminals_refs_code(){return terminals_refs_code_;}
+
+ void
+ T_terminals_phrase::
+ terminals_refs_code(T_syntax_code* Code){
+ terminals_refs_code_ = Code;
+ }
+
+ T_syntax_code*
+ T_terminals_phrase::
+ terminals_sufx_code(){return terminals_sufx_code_;}
+
+ void
+ T_terminals_phrase::
+ terminals_sufx_code(T_syntax_code* Code){
+ terminals_sufx_code_ = Code;
+ }
+ ***
+ destructor
+ R->destroy_alphabet();
+ delete R->filename_id_;
+ delete R->namespace_id_;
+ delete R->terminals_refs_code_;
+ delete R->terminals_sufx_code_;
+ ***
+ }
+)
+//
+"error-symbols-phrase" (sym-class T_error_symbols_phrase {
+ user-declaration
+ public:
+ T_error_symbols_phrase();
+ T_identifier* filename_id();
+ void filename_id(T_identifier* Id);
+ T_identifier* namespace_id();
+ void namespace_id(T_identifier* Id);
+ void destroy_alphabet();
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*>* alphabet();
+ CAbs_lr1_sym* add_t_to_alphabet(T_terminal_def* T,yacco2::Parser* P);
+ std::vector<T_terminal_def*>* crt_order();
+ void phrase_tree(AST* Tree);
+ AST* phrase_tree();
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ private:
+ T_identifier* filename_id_;
+ T_identifier* namespace_id_;
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*> alphabet_;
+ std::vector<T_terminal_def*> crt_order_;
+ AST* phrase_tree_;
+ AST* cweb_marker_;
+ ***
+ user-implementation
+ T_error_symbols_phrase::T_error_symbols_phrase()
+T_CTOR("error-symbols-phrase",T_Enum::T_T_error_symbols_phrase_,&dtor_T_error_symbols_phrase,false,false)
+ {phrase_tree_=0;cweb_marker_=0;}
+
+ void T_error_symbols_phrase::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+
+ AST* T_error_symbols_phrase::cweb_marker(){
+ return cweb_marker_;
+ }
+
+ void T_error_symbols_phrase::phrase_tree(AST* Tree){phrase_tree_=Tree;}
+ AST* T_error_symbols_phrase::phrase_tree(){return phrase_tree_;}
+
+ T_identifier* T_error_symbols_phrase::filename_id(){return filename_id_;}
+ void T_error_symbols_phrase::filename_id(T_identifier* Id){filename_id_ = Id;}
+ T_identifier* T_error_symbols_phrase::namespace_id(){return namespace_id_;}
+ void T_error_symbols_phrase::namespace_id(T_identifier* Id){namespace_id_ = Id;}
+
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*>*
+ T_error_symbols_phrase::alphabet(){
+ return &alphabet_;
+ }
+
+ std::vector<T_terminal_def*>*
+ T_error_symbols_phrase::
+ crt_order(){return &crt_order_;}
+
+ void T_error_symbols_phrase::destroy_alphabet(){
+ std::vector<T_terminal_def*>::iterator i = crt_order_.begin();
+ std::vector<T_terminal_def*>::iterator ie = crt_order_.end();
+ for(;i != ie;++i){
+ CAbs_lr1_sym* sym = *i;
+ delete sym;
+ }
+ alphabet_.clear();
+ }
+
+ CAbs_lr1_sym*
+ T_error_symbols_phrase::
+ add_t_to_alphabet(T_terminal_def* T,yacco2::Parser* P){
+ std::string key(T->t_name()->c_str());
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*>::iterator i = alphabet_.find(key);
+ if(i != alphabet_.end()){
+ CAbs_lr1_sym* sym = new Err_dup_entry_in_alphabet;
+ sym->set_rc(*T,__FILE__,__LINE__);
+ return sym;
+ }
+ alphabet_[key] = T;
+ crt_order_.push_back(T);
+ return 0;
+ }
+ ***
+ destructor
+ R->destroy_alphabet();
+ delete R->filename_id_;
+ delete R->namespace_id_;
+ ***
+ }
+)
+
+"lr1-k-phrase" (sym-class T_lr1_k_phrase {
+ user-declaration
+ public:
+ T_lr1_k_phrase();
+ T_identifier* filename_id();
+ void filename_id(T_identifier* Id);
+ T_identifier* namespace_id();
+ void namespace_id(T_identifier* Id);
+ void destroy_alphabet();
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*>* alphabet();
+ CAbs_lr1_sym* add_t_to_alphabet(T_terminal_def* T,yacco2::Parser* P);
+ std::vector<T_terminal_def*>* crt_order();
+ T_syntax_code* lrk_sufx_code();
+ void lrk_sufx_code(T_syntax_code* Code);
+ void phrase_tree(AST* Tree);
+ AST* phrase_tree();
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ private:
+ T_identifier* filename_id_;
+ T_identifier* namespace_id_;
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*> alphabet_;
+ std::vector<T_terminal_def*> crt_order_;
+ T_syntax_code* lrk_sufx_code_;
+ AST* phrase_tree_;
+ AST* cweb_marker_;
+ ***
+ user-implementation
+ T_lr1_k_phrase::T_lr1_k_phrase()
+ T_CTOR("lr1-k-phrase",T_Enum::T_T_lr1_k_phrase_,&dtor_T_lr1_k_phrase,false,false)
+ {lrk_sufx_code_ = 0;phrase_tree_=0;cweb_marker_=0;}
+
+ void T_lr1_k_phrase::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+
+ AST* T_lr1_k_phrase::cweb_marker(){
+ return cweb_marker_;
+ }
+
+ void T_lr1_k_phrase::phrase_tree(AST* Tree){phrase_tree_=Tree;}
+ AST* T_lr1_k_phrase::phrase_tree(){return phrase_tree_;}
+
+ T_identifier* T_lr1_k_phrase::filename_id(){return filename_id_;}
+ void T_lr1_k_phrase::filename_id(T_identifier* Id){filename_id_ = Id;}
+ T_identifier* T_lr1_k_phrase::namespace_id(){return namespace_id_;}
+ void T_lr1_k_phrase::namespace_id(T_identifier* Id){namespace_id_ = Id;}
+
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*>*
+ T_lr1_k_phrase::alphabet(){
+ return &alphabet_;
+ }
+
+ std::vector<T_terminal_def*>*
+ T_lr1_k_phrase::
+ crt_order(){return &crt_order_;}
+
+ void T_lr1_k_phrase::destroy_alphabet(){
+ std::vector<T_terminal_def*>::iterator i = crt_order_.begin();
+ std::vector<T_terminal_def*>::iterator ie = crt_order_.end();
+ for(;i != ie;++i){
+ CAbs_lr1_sym* sym = *i;
+ delete sym;
+ }
+ alphabet_.clear();
+ }
+
+ CAbs_lr1_sym*
+ T_lr1_k_phrase::
+ add_t_to_alphabet(T_terminal_def* T,yacco2::Parser* P){
+ std::string key(T->t_name()->c_str());
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*>::iterator i = alphabet_.find(key);
+ if(i != alphabet_.end()){
+ CAbs_lr1_sym* sym = new Err_dup_entry_in_alphabet;
+ sym->set_rc(*T,__FILE__,__LINE__);
+ return sym;
+ }
+ alphabet_[key] = T;
+ crt_order_.push_back(T);
+ return 0;
+ }
+ T_syntax_code*
+ T_lr1_k_phrase::
+ lrk_sufx_code(){return lrk_sufx_code_;}
+
+ void
+ T_lr1_k_phrase::
+ lrk_sufx_code(T_syntax_code* Code){
+ lrk_sufx_code_ = Code;
+ }
+ ***
+ destructor
+ R->destroy_alphabet();
+ delete R->filename_id_;
+ delete R->namespace_id_;
+ delete R->lrk_sufx_code_;
+ ***
+ }
+)
+//
+"rc-phrase" (sym-class T_rc_phrase {
+ user-declaration
+ public:
+ T_rc_phrase();
+ T_identifier* filename_id();
+ void filename_id(T_identifier* Id);
+ T_identifier* namespace_id();
+ void namespace_id(T_identifier* Id);
+ void destroy_alphabet();
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*>* alphabet();
+ CAbs_lr1_sym* add_t_to_alphabet(T_terminal_def* T,yacco2::Parser* P);
+ std::vector<T_terminal_def*>* crt_order();
+ void phrase_tree(AST* Tree);
+ AST* phrase_tree();
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ private:
+ T_identifier* filename_id_;
+ T_identifier* namespace_id_;
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*> alphabet_;
+ std::vector<T_terminal_def*> crt_order_;
+ AST* phrase_tree_;
+ AST* cweb_marker_;
+ ***
+ user-implementation
+ T_rc_phrase::T_rc_phrase()
+ T_CTOR("rc-phrase",T_Enum::T_T_rc_phrase_,&dtor_T_rc_phrase,false,false)
+ {phrase_tree_=0;cweb_marker_=0;}
+
+ void T_rc_phrase::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+
+ AST* T_rc_phrase::cweb_marker(){
+ return cweb_marker_;
+ }
+
+ void T_rc_phrase::phrase_tree(AST* Tree){phrase_tree_=Tree;}
+ AST* T_rc_phrase::phrase_tree(){return phrase_tree_;}
+
+ T_identifier* T_rc_phrase::filename_id(){return filename_id_;}
+ void T_rc_phrase::filename_id(T_identifier* Id){filename_id_ = Id;}
+ T_identifier* T_rc_phrase::namespace_id(){return namespace_id_;}
+ void T_rc_phrase::namespace_id(T_identifier* Id){namespace_id_ = Id;}
+
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*>*
+ T_rc_phrase::alphabet(){
+ return &alphabet_;
+ }
+
+ std::vector<T_terminal_def*>*
+ T_rc_phrase::
+ crt_order(){return &crt_order_;}
+
+ void T_rc_phrase::destroy_alphabet(){
+ std::vector<T_terminal_def*>::iterator i = crt_order_.begin();
+ std::vector<T_terminal_def*>::iterator ie = crt_order_.end();
+ for(;i != ie;++i){
+ CAbs_lr1_sym* sym = *i;
+ delete sym;
+ }
+ alphabet_.clear();
+ }
+
+ CAbs_lr1_sym*
+ T_rc_phrase::
+ add_t_to_alphabet(T_terminal_def* T,yacco2::Parser* P){
+ std::string key(T->t_name()->c_str());
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*>::iterator i = alphabet_.find(key);
+ if(i != alphabet_.end()){
+ CAbs_lr1_sym* sym = new Err_dup_entry_in_alphabet;
+ sym->set_rc(*T,__FILE__,__LINE__);
+ return sym;
+ }
+ alphabet_[key] = T;
+ crt_order_.push_back(T);
+ return 0;
+ }
+ ***
+ destructor
+ R->destroy_alphabet();
+ delete R->filename_id_;
+ delete R->namespace_id_;
+ ***
+ }
+)
+//
+"rule-lhs-phrase" (sym-class T_rule_lhs_phrase {
+ user-declaration
+ public:
+ T_rule_lhs_phrase();
+ void remove_lhs_directives();
+ std::map<std::string,CAbs_lr1_sym*>* lhs_directives_map();
+ CAbs_lr1_sym* // 0 - ok, or error
+ add_directive_to_lhs(CAbs_lr1_sym* Directive,yacco2::Parser* P);
+ void phrase_tree(AST* Tree);
+ AST* phrase_tree();
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ private:
+ map<std::string,CAbs_lr1_sym*> lhs_directives_map_;
+ AST* phrase_tree_;
+ AST* cweb_marker_;
+ ***
+ user-implementation
+ T_rule_lhs_phrase::T_rule_lhs_phrase()
+T_CTOR("rule-lhs-phrase",T_Enum::T_T_rule_lhs_phrase_,&dtor_T_rule_lhs_phrase,false,false)
+ {phrase_tree_=0;cweb_marker_=0;}
+
+
+ void T_rule_lhs_phrase::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+
+ AST* T_rule_lhs_phrase::cweb_marker(){
+ return cweb_marker_;
+ }
+
+ void T_rule_lhs_phrase::phrase_tree(AST* Tree){phrase_tree_=Tree;}
+ AST* T_rule_lhs_phrase::phrase_tree(){return phrase_tree_;}
+
+ map<std::string,CAbs_lr1_sym*>*
+ T_rule_lhs_phrase::lhs_directives_map(){
+ return &lhs_directives_map_;
+ }
+
+ void T_rule_lhs_phrase::remove_lhs_directives(){
+ std::map<std::string,CAbs_lr1_sym*>::iterator i = lhs_directives_map_.begin();
+ std::map<std::string,CAbs_lr1_sym*>::iterator ie = lhs_directives_map_.end();
+ for(;i != ie;++i){
+ CAbs_lr1_sym* sym = i->second;
+ delete sym;
+ }
+ }
+
+ CAbs_lr1_sym* // 0 - ok, or error
+ T_rule_lhs_phrase::
+ add_directive_to_lhs(CAbs_lr1_sym* Directive,yacco2::Parser* P){
+ map<std::string,CAbs_lr1_sym*>::iterator i;
+ string key(Directive->id__);
+ i = lhs_directives_map_.find(key);
+ if(i == lhs_directives_map_.end()){
+ lhs_directives_map_[key] = Directive;
+ return 0;
+ }
+ CAbs_lr1_sym* sym = new Err_duplicate_directive;
+ sym->set_rc(*Directive,__FILE__,__LINE__);
+ remove_lhs_directives();
+ return sym;
+ }
+ ***
+ destructor
+ R->remove_lhs_directives();
+ ***
+ }
+)
+
+"parallel-monitor-phrase" (sym-class T_parallel_monitor_phrase {
+ user-declaration
+ public:
+ T_parallel_monitor_phrase();
+ void remove_mntr_directives();
+ std::map<std::string,CAbs_lr1_sym*>* mntr_directives_map();
+ CAbs_lr1_sym* // 0 - ok, or error
+ add_directive_to_mntr(CAbs_lr1_sym* Directive,yacco2::Parser* P);
+ void phrase_tree(AST* Tree);
+ AST* phrase_tree();
+ private:
+ map<std::string,CAbs_lr1_sym*> mntr_directives_map_;
+ AST* phrase_tree_;
+ ***
+ user-implementation
+ T_parallel_monitor_phrase::T_parallel_monitor_phrase()
+T_CTOR("parallel-monitor-phrase",T_Enum::T_T_parallel_monitor_phrase_,&dtor_T_parallel_monitor_phrase,false,false)
+ {phrase_tree_=0;}
+
+ void T_parallel_monitor_phrase::phrase_tree(AST* Tree){phrase_tree_=Tree;}
+ AST* T_parallel_monitor_phrase::phrase_tree(){return phrase_tree_;}
+
+ map<string,CAbs_lr1_sym*>*
+ T_parallel_monitor_phrase::mntr_directives_map(){
+ return &mntr_directives_map_;
+ }
+
+ void T_parallel_monitor_phrase::remove_mntr_directives(){
+ std::map<std::string,CAbs_lr1_sym*>::iterator i = mntr_directives_map_.begin();
+ std::map<std::string,CAbs_lr1_sym*>::iterator ie = mntr_directives_map_.end();
+ for(;i != ie;++i){
+ CAbs_lr1_sym* sym = i->second;
+ delete sym;
+ }
+ }
+
+ CAbs_lr1_sym* // 0 - ok, or error
+ T_parallel_monitor_phrase::
+ add_directive_to_mntr(CAbs_lr1_sym* Directive,yacco2::Parser* P){
+ map<std::string,CAbs_lr1_sym*>::iterator i;
+ std::string key(Directive->id__);
+ i = mntr_directives_map_.find(key);
+ if(i == mntr_directives_map_.end()){
+ mntr_directives_map_[key] = Directive;
+ return 0;
+ }
+ CAbs_lr1_sym* sym = new Err_duplicate_directive;
+ sym->set_rc(*Directive,__FILE__,__LINE__);
+ remove_mntr_directives();
+ return sym;
+ }
+ ***
+ destructor
+ R->remove_mntr_directives();
+ ***
+ }
+)
+
+"rule-def" (sym-class rule_def {
+ user-declaration
+ public:
+ rule_def(const char* Key);
+ T_rule_lhs_phrase* rule_lhs();
+ void rule_lhs(T_rule_lhs_phrase* Lhs);
+ int rule_no();
+ void rule_no(int Rule_no);
+ int lhs_use_cnt();
+ void lhs_use_cnt(int Use_cnt);
+ int rhs_use_cnt();
+ void rhs_use_cnt(int Use_cnt);
+ bool recursive();
+ void recursive(bool Recursive);
+
+ void parallel_mntr(T_parallel_monitor_phrase* Mntr);
+ T_parallel_monitor_phrase* parallel_mntr();
+ T_subrules_phrase* subrules();
+ void subrules(T_subrules_phrase* Subrules);
+
+ std::string* rule_name();
+ bool autodelete();
+ void autodelete(bool Ton);
+ bool autoabort();
+ void autoabort(bool Ton);
+ bool epsilon();
+ void epsilon(bool Ton);
+ bool derive_t();
+ void derive_t(bool Ton);
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ void bld_its_tree();
+ AST* rule_s_tree();
+ void enum_id(int Id);
+ int enum_id();
+ std::set<T_in_stbl*>* first_set();
+ void add_to_first_set(T_in_stbl& T);
+ std::set<T_called_thread_eosubrule*>* called_thread_first_set();
+ void add_to_called_thread_first_set(T_called_thread_eosubrule* T);
+ std::string* grammar_s_enumerate();
+ void grammar_s_enumerate(const char* Enumerate);
+ void add_closure_rule_making_up_first_set(rule_in_stbl* Rule);
+ std::set<rule_in_stbl*>* closure_rules_making_up_first_set();
+ void add_rule_adding_T_in_first_set(T_in_stbl* T,std::string* Rule_enumerate);
+ std::map<T_in_stbl*,std::set<std::string*> >* rule_adding_T_in_first_set();
+ AST* rule_use_skeleton();
+ void rule_use_skeleton(AST* Tree);
+ private:
+ std::string rule_name_;
+ T_parallel_monitor_phrase* parallel_mntr_;
+ T_subrules_phrase* subrules_;
+ T_rule_lhs_phrase* rule_lhs_;
+ bool auto_delete_;
+ bool auto_abort_;
+ AST* cweb_marker_;
+ AST* its_tree_;
+ int enum_id_;
+ int rule_no_;
+ int lhs_use_cnt_;// for rule recycling
+ int rhs_use_cnt_;// for rule recycling
+ bool recursive_;
+ bool epsilon_;
+ bool derive_t_;
+ std::string grammar_s_enumerate_;
+ std::set<T_in_stbl*> first_set_;
+ std::set<T_called_thread_eosubrule*> called_thread_first_set_;
+ std::set<rule_in_stbl*> closure_rules_making_up_first_set_;
+ std::map<T_in_stbl*,std::set<std::string*> > rules_adding_T_in_first_set_;
+ AST* rule_use_skeleton_;
+ ***
+ user-implementation
+ rule_def::rule_def(const char* Key)
+ T_CTOR("rule-def",T_Enum::T_rule_def_,&dtor_rule_def,false,false)
+ {auto_delete_ = false;
+ auto_abort_ = false;
+ rule_no_ = 0;//starts cnt at 1
+ recursive_ = NO;
+ lhs_use_cnt_ = 0;
+ rhs_use_cnt_ = 0;
+ rule_use_skeleton_ = 0;
+ parallel_mntr_ = 0;
+ subrules_ = 0;
+ rule_lhs_ = 0;
+ rule_name_ += Key;
+ epsilon_ = false;
+ derive_t_ = false;
+ cweb_marker_ = 0;
+ its_tree_ = 0;
+ enum_id_ = -1;
+ first_set_.clear();
+ }
+ std::set<rule_in_stbl*>* rule_def::closure_rules_making_up_first_set(){
+ return &closure_rules_making_up_first_set_;
+ }
+ AST* rule_def::rule_use_skeleton(){return rule_use_skeleton_;}
+ void rule_def::rule_use_skeleton(AST* Tree){rule_use_skeleton_ = Tree;}
+
+ std::map<T_in_stbl*,std::set<std::string*> >*
+ rule_def::rule_adding_T_in_first_set(){
+ return &rules_adding_T_in_first_set_;
+ }
+ int rule_def::rule_no(){return rule_no_;}
+ void rule_def::rule_no(int Rule_no){rule_no_ = Rule_no;}
+ bool rule_def::recursive(){return recursive_;}
+ void rule_def::recursive(bool Recursive){recursive_ = Recursive;}
+ int rule_def::lhs_use_cnt(){return lhs_use_cnt_;};
+ void rule_def::lhs_use_cnt(int Use_cnt){lhs_use_cnt_ = Use_cnt;}
+ int rule_def::rhs_use_cnt(){return rhs_use_cnt_;}
+ void rule_def::rhs_use_cnt(int Use_cnt){rhs_use_cnt_ = Use_cnt;}
+
+ void rule_def::add_closure_rule_making_up_first_set(rule_in_stbl* Rule){
+ if(closure_rules_making_up_first_set_.find(Rule)
+ !=
+ closure_rules_making_up_first_set_ .end()) return;
+ closure_rules_making_up_first_set_.insert(Rule);
+ }
+ void rule_def::add_rule_adding_T_in_first_set
+ (T_in_stbl* T,std::string* Rule_enumerate){
+ std::map<T_in_stbl*,std::set<std::string*> >::iterator i;
+ std::map<T_in_stbl*,std::set<std::string*> >::iterator ie;
+ ie = rules_adding_T_in_first_set_.end();
+ i = rules_adding_T_in_first_set_.find(T);
+ if(i == ie){
+ rules_adding_T_in_first_set_[T] = std::set<std::string*>();
+ i = rules_adding_T_in_first_set_.find(T);
+ i->second.insert(Rule_enumerate);
+ return;
+ }
+ i->second.insert(Rule_enumerate);
+ }
+
+ std::string* rule_def::grammar_s_enumerate(){
+ return &grammar_s_enumerate_;
+ }
+ void rule_def::grammar_s_enumerate(const char* Enumerate){
+ grammar_s_enumerate_+=Enumerate;
+ }
+
+ std::set<T_in_stbl*>* rule_def::first_set(){
+ return &first_set_;
+ }
+ std::set<T_called_thread_eosubrule*>* rule_def::called_thread_first_set(){
+ return &called_thread_first_set_;
+ }
+
+ void rule_def::add_to_first_set(T_in_stbl& T){
+ T_in_stbl* t = &T;
+ std::set<T_in_stbl*>::iterator i;
+ i = first_set_.find(t);
+ if(i == first_set_.end()){
+ first_set_.insert(t);
+ }
+ }
+ void rule_def::add_to_called_thread_first_set(T_called_thread_eosubrule* T){
+ std::set<T_called_thread_eosubrule*>::iterator i;
+ i = called_thread_first_set_.find(T);
+ if(i == called_thread_first_set_.end()){
+ called_thread_first_set_.insert(T);
+ }
+ }
+
+ void rule_def::enum_id(int Id){enum_id_=Id;}
+ int rule_def::enum_id(){return enum_id_;}
+ void rule_def::bld_its_tree(){
+ its_tree_ = new AST(*this);
+ T_subrules_phrase* subrules_ph = subrules();
+ std::vector<T_subrule_def*>* subrule_list = subrules_ph->subrules();
+ std::vector<T_subrule_def*>::iterator sri = subrule_list->begin();
+ std::vector<T_subrule_def*>::iterator srie = subrule_list->end();
+ AST* subrule_lvl = 0;
+ for(;sri!=srie;++sri){// walk subrules
+ T_subrule_def* srdef = *sri;
+ AST* srt = srdef->subrule_s_tree();
+ if(subrule_lvl == 0){
+ AST::crt_tree_of_1son(*its_tree_,*srt);
+ subrule_lvl = srt;
+ }else{ // subrule brothers
+ AST::join_sts(*subrule_lvl,*srt);
+ subrule_lvl = srt;
+ }
+ }
+ }
+
+ AST* rule_def::rule_s_tree(){
+ return its_tree_;
+ }
+
+ void rule_def::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+
+ AST* rule_def::cweb_marker(){
+ return cweb_marker_;
+ }
+
+ T_rule_lhs_phrase* rule_def::rule_lhs(){
+ return rule_lhs_;
+ }
+
+ void rule_def::rule_lhs(T_rule_lhs_phrase* Lhs){
+ rule_lhs_ = Lhs;
+ }
+
+ void rule_def::parallel_mntr(T_parallel_monitor_phrase* Mntr){
+ parallel_mntr_ = Mntr;
+ }
+
+ T_parallel_monitor_phrase* rule_def::parallel_mntr(){
+ return parallel_mntr_;
+ }
+
+ T_subrules_phrase* rule_def::subrules(){
+ return subrules_;
+ }
+
+ void rule_def::subrules(T_subrules_phrase* Subrules){
+ subrules_ = Subrules;
+ }
+
+ std::string* rule_def::rule_name(){return &rule_name_;}
+
+ bool rule_def::autodelete(){return auto_delete_;}
+ void rule_def::autodelete(bool Ton){auto_delete_ = Ton;}
+
+ bool rule_def::autoabort(){return auto_abort_;}
+ void rule_def::autoabort(bool Ton){auto_abort_ = Ton;}
+
+ bool rule_def::epsilon(){return epsilon_;}
+ void rule_def::epsilon(bool Ton){epsilon_ = Ton;}
+
+ bool rule_def::derive_t(){return derive_t_;}
+ void rule_def::derive_t(bool Ton){derive_t_ = Ton;}
+
+ ***
+ destructor
+ delete R->parallel_mntr_;
+ delete R->rule_lhs_;
+ delete R->subrules_;
+ ***
+ }
+)
+
+"rules-phrase" (sym-class T_rules_phrase {
+ user-declaration
+ public:
+ T_rules_phrase();
+ void destroy_rules_alphabet();
+ std::map<std::string,rule_def*>* rules_alphabet();
+ CAbs_lr1_sym* add_r_to_alphabet(rule_def* R,yacco2::Parser* P);
+ std::vector<rule_def*>* crt_order();
+ void rules_tree(AST* Tree);
+ void phrase_tree(AST* Tree);
+ AST* phrase_tree();
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ private:
+ std::map<std::string,rule_def*> rules_alphabet_;
+ std::vector<rule_def*> crt_order_;
+ AST* phrase_tree_;
+ AST* cweb_marker_;
+ ***
+ user-implementation
+ T_rules_phrase::T_rules_phrase()
+T_CTOR("rules-phrase",T_Enum::T_T_rules_phrase_,&dtor_T_rules_phrase,false,false)
+ {phrase_tree_=0;cweb_marker_=0;}
+
+ void T_rules_phrase::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+
+ AST* T_rules_phrase::cweb_marker(){
+ return cweb_marker_;
+ }
+
+
+ void T_rules_phrase::phrase_tree(AST* Tree){phrase_tree_=Tree;}
+ AST* T_rules_phrase::phrase_tree(){return phrase_tree_;}
+
+ std::map<string,rule_def*>*
+ T_rules_phrase::rules_alphabet(){
+ return &rules_alphabet_;
+ }
+
+ void T_rules_phrase::destroy_rules_alphabet(){
+ std::vector<rule_def*>::iterator i = crt_order_.begin();
+ std::vector<rule_def*>::iterator ie = crt_order_.end();
+ for(;i != ie;++i){
+ CAbs_lr1_sym* sym = *i;
+ delete sym;
+ }
+ rules_alphabet_.clear();
+ }
+
+ CAbs_lr1_sym*
+ T_rules_phrase::
+ add_r_to_alphabet(rule_def* R,yacco2::Parser* P){
+ std::string key(R->rule_name()->c_str());
+ std::map<std::string,rule_def*>::iterator i = rules_alphabet_.find(key);
+ if(i != rules_alphabet_.end()){
+ CAbs_lr1_sym* sym = new Err_dup_entry_in_alphabet;
+ sym->set_rc(*R,__FILE__,__LINE__);
+ return sym;
+ }
+ rules_alphabet_[key] = R;
+ crt_order_.push_back(R);
+ return 0;
+ }
+ std::vector<rule_def*>*
+ T_rules_phrase::
+ crt_order(){return &crt_order_;}
+ ***
+ destructor
+ R->destroy_rules_alphabet();
+ ***
+ }
+)
+
+"subrule-def"
+/@
+The |its_grammar_s_pos_| provides its position within the grammar.
+Not important in gening of the grammar but used in the cross reference document.
+As the address of the |T_subrule_def| object
+does not garantee ascending order, this does.
+@/
+(sym-class T_subrule_def {
+ user-declaration
+ public:
+ T_subrule_def();
+ int subrule_no_of_rule();
+ void subrule_no_of_rule(int Subrule_no);
+ void remove_subrule_directives();
+ std::map<std::string,CAbs_lr1_sym*>* subrule_directives();
+ CAbs_lr1_sym* // 0 - ok, or error
+ add_directive_to_subrule(CAbs_lr1_sym* Directive,yacco2::Parser* P);
+ std::vector<CAbs_lr1_sym*>* subrule_elems();
+ void add_elem_to_subrule_vector(CAbs_lr1_sym* Elem);
+ int no_of_elems();
+ void remove_subrule_elems_from_vector();
+ bool epsilon();
+ void epsilon(bool Epsilon);
+ bool derive_t();
+ void derive_t(bool Epsilon);
+ rule_def* its_rule_def();
+ void its_rule_def(rule_def* Its_rule_def);
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ void bld_its_tree();
+ AST* subrule_s_tree();
+ std::string* grammar_s_enumerate();
+ void grammar_s_enumerate(const char* Enumerate);
+ int its_grammar_s_pos();
+ void its_grammar_s_pos(int Pos);
+ private:
+ std::map<std::string,CAbs_lr1_sym*> subrule_directives_;
+ std::vector<CAbs_lr1_sym*> subrule_elems_;
+ int subrule_no_of_rule_;// rel 1
+ int no_of_elems_;
+ bool epsilon_;
+ bool derive_t_;
+ rule_def* its_rule_def_;
+ AST* cweb_marker_;
+ AST* its_tree_;
+ int its_grammar_s_pos_;
+ std::string grammar_s_enumerate_;
+ ***
+ user-implementation
+ T_subrule_def::T_subrule_def()
+T_CTOR("subrule-def",T_Enum::T_T_subrule_def_,&dtor_T_subrule_def,false,false)
+ {subrule_no_of_rule_ = 0;
+ no_of_elems_ = 0;
+ epsilon_ = false;
+ derive_t_ = false;
+ its_rule_def_ = 0;
+ cweb_marker_ = 0;
+ its_tree_ = 0;
+ its_grammar_s_pos_ = 0;
+ }
+ int T_subrule_def::its_grammar_s_pos(){return its_grammar_s_pos_;}
+ void T_subrule_def::its_grammar_s_pos(int Pos){its_grammar_s_pos_ = Pos;}
+ int T_subrule_def::subrule_no_of_rule(){
+ return subrule_no_of_rule_;
+ }
+ void T_subrule_def::subrule_no_of_rule(int Subrule_no){
+ subrule_no_of_rule_ = Subrule_no;
+ }
+
+ std::string* T_subrule_def::grammar_s_enumerate(){
+ return &grammar_s_enumerate_;
+ }
+ void T_subrule_def::grammar_s_enumerate(const char* Enumerate){
+ grammar_s_enumerate_+=Enumerate;
+ }
+
+ void T_subrule_def::bld_its_tree(){
+ its_tree_ = new AST(*this);
+ std::vector<CAbs_lr1_sym*>* element_list = subrule_elems();
+ std::vector<CAbs_lr1_sym*>::iterator ei = element_list->begin();
+ std::vector<CAbs_lr1_sym*>::iterator eie = element_list->end();
+ AST* element_lvl = 0;
+ for(;ei!=eie;++ei){// walk elements of subrule
+ CAbs_lr1_sym* elem_def = *ei;
+ AST* elemtt = new AST(*elem_def);
+ int id = elem_def->enumerated_id__;
+ using namespace NS_yacco2_terminals;
+ switch (id){
+ case T_Enum::T_refered_rule_: {
+ refered_rule* rrule = (refered_rule*)elem_def;
+ rrule->tree_node(elemtt);
+ break;
+ }
+ case T_Enum::T_T_eosubrule_: {
+ T_eosubrule* eos = (T_eosubrule*)elem_def;
+ eos->tree_node(elemtt);
+ break;
+ }
+ case T_Enum::T_refered_T_: {
+ refered_T* rt = (refered_T*)elem_def;
+ rt->tree_node(elemtt);
+ break;
+ }
+ }
+ if(element_lvl == 0){
+ AST::crt_tree_of_1son(*its_tree_,*elemtt);
+ element_lvl = elemtt;
+ }else{ // element brothers
+ AST::join_sts(*element_lvl,*elemtt);
+ element_lvl = elemtt;
+ }
+ }
+ }
+
+ AST* T_subrule_def::subrule_s_tree(){
+ return its_tree_;
+ }
+
+ void T_subrule_def::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+
+ AST* T_subrule_def::cweb_marker(){
+ return cweb_marker_;
+ }
+
+ rule_def* T_subrule_def::its_rule_def(){
+ return its_rule_def_;
+ }
+
+ void T_subrule_def::its_rule_def(rule_def* Its_rule_def){
+ its_rule_def_ = Its_rule_def;
+ }
+
+ std::vector<CAbs_lr1_sym*>* T_subrule_def::subrule_elems(){
+ return &subrule_elems_;
+ }
+
+ bool T_subrule_def::epsilon(){
+ return epsilon_;
+ }
+
+ void T_subrule_def::epsilon(bool Epsilon){
+ epsilon_ = Epsilon;
+ }
+
+ bool T_subrule_def::derive_t(){
+ return derive_t_;
+ }
+
+ void T_subrule_def::derive_t(bool Ton){
+ derive_t_ = Ton;
+ }
+
+ void T_subrule_def::
+ add_elem_to_subrule_vector(CAbs_lr1_sym* Elem){
+ ++no_of_elems_;
+ subrule_elems_.push_back(Elem);
+ }
+ int T_subrule_def::no_of_elems(){
+ return no_of_elems_;
+ }
+
+ map<std::string,CAbs_lr1_sym*>*
+ T_subrule_def::subrule_directives(){
+ return &subrule_directives_;
+ }
+
+ void T_subrule_def::remove_subrule_directives(){
+ std::map<std::string,CAbs_lr1_sym*>::iterator i = subrule_directives_.begin();
+ std::map<std::string,CAbs_lr1_sym*>::iterator ie = subrule_directives_.end();
+ for(;i != ie;++i){
+ CAbs_lr1_sym* sym = i->second;
+ delete sym;
+ }
+ }
+
+ CAbs_lr1_sym* // 0 - ok, or error
+ T_subrule_def::
+ add_directive_to_subrule(CAbs_lr1_sym* Directive,yacco2::Parser* P){
+ std::map<std::string,CAbs_lr1_sym*>::iterator i;
+ std::string key(Directive->id__);
+ i = subrule_directives_.find(key);
+ if(i == subrule_directives_.end()){
+ subrule_directives_[key] = Directive;
+ return 0;
+ }
+ CAbs_lr1_sym* sym = new Err_duplicate_directive;
+ sym->set_rc(*Directive,__FILE__,__LINE__);
+ remove_subrule_directives();
+ return sym;
+ }
+ void T_subrule_def::remove_subrule_elems_from_vector(){
+ std::vector<CAbs_lr1_sym*>::iterator i = subrule_elems_.begin();
+ std::vector<CAbs_lr1_sym*>::iterator ie = subrule_elems_.end();
+ for(;i != ie;++i){
+ delete *i;
+ }
+ }
+ ***
+ destructor
+ R->remove_subrule_directives();
+ R->remove_subrule_elems_from_vector();
+ ***
+ }
+)
+//
+"subrules-phrase" (sym-class T_subrules_phrase {
+ user-declaration
+ public:
+ T_subrules_phrase();
+ void destroy_subrules();
+ std::vector<T_subrule_def*>* subrules();
+ void add_sr_to_subrules(T_subrule_def* R);
+ int no_subrules();
+ void phrase_tree(AST* Tree);
+ AST* phrase_tree();
+ private:
+ std::vector<T_subrule_def*> subrules_;
+ int no_subrules_;
+ AST* phrase_tree_;
+ ***
+ user-implementation
+ T_subrules_phrase::T_subrules_phrase()
+T_CTOR("subrules-phrase",T_Enum::T_T_subrules_phrase_,&dtor_T_subrules_phrase,false,false)
+ {no_subrules_ = 0;phrase_tree_=0;}
+ void T_subrules_phrase::phrase_tree(AST* Tree){phrase_tree_=Tree;}
+ AST* T_subrules_phrase::phrase_tree(){return phrase_tree_;}
+
+ int T_subrules_phrase::no_subrules(){
+ return no_subrules_;
+ }
+ std::vector<T_subrule_def*>*
+ T_subrules_phrase::subrules(){
+ return &subrules_;
+ }
+
+ void T_subrules_phrase::destroy_subrules(){
+ std::vector<T_subrule_def*>::iterator i = subrules_.begin();
+ std::vector<T_subrule_def*>::iterator ie = subrules_.end();
+ for(;i != ie;++i){
+ CAbs_lr1_sym* sym = *i;
+ delete sym;
+ }
+ }
+
+ void
+ T_subrules_phrase::
+ add_sr_to_subrules(T_subrule_def* R){
+ ++no_subrules_;
+ subrules_.push_back(R);
+ }
+ ***
+ destructor
+ R->destroy_subrules();
+ ***
+ }
+)
+
+"T-in-stbl" (sym-class T_in_stbl { // Yacco2
+ user-declaration
+ public:
+ T_in_stbl(T_terminal_def* Fnd_T_in_stbl,CAbs_lr1_sym* Rc,yacco2::Parser* P);
+ T_terminal_def* t_def();
+ std::list<refered_T*>* xref_t();
+ void add_T_into_xref(refered_T& T);
+ void stbl_idx(yacco2::UINT Idx);
+ int stbl_idx();
+ private:
+ T_terminal_def* t_def_;
+ std::list<refered_T*> xref_t_;
+ int stbl_idx_;
+ ***
+ user-implementation
+T_in_stbl::T_in_stbl(T_terminal_def* Fnd_T_in_stbl,CAbs_lr1_sym* Rc,yacco2::Parser* P)
+ T_CTOR("T-in-stbl",T_Enum::T_T_in_stbl_,0,false,false)
+ {t_def_ = Fnd_T_in_stbl;
+ set_rc(*Rc,__FILE__,__LINE__);// set its source co-ordinates
+ stbl_idx_ = -1;
+ }
+ T_terminal_def* T_in_stbl::t_def(){
+ return t_def_;
+ }
+ std::list<refered_T*>* T_in_stbl::xref_t(){
+ return &xref_t_;;
+ }
+ void T_in_stbl::add_T_into_xref(refered_T& T){
+ xref_t_.push_back(&T);
+ }
+ void T_in_stbl::stbl_idx(yacco2::UINT Idx){stbl_idx_ = Idx;}
+ int T_in_stbl::stbl_idx(){return stbl_idx_;}
+ ***
+ }
+)
+
+"refered-T" (sym-class refered_T {
+ user-declaration
+ public:
+ refered_T(T_in_stbl& Term_in_stbl);
+ T_in_stbl* t_in_stbl();
+ T_terminal_def* its_t_def();
+ T_subrule_def* its_subrule_def();
+ void its_subrule_def(T_subrule_def* Its_subrule);
+ std::string* grammar_s_enumerate();
+ void grammar_s_enumerate(const char* Enumerate);
+ AST* tree_node();
+ void tree_node(AST* Tree_node);
+ rule_def* its_rule_def();
+ int element_pos();
+ void element_pos(int Pos);
+
+ private:
+ T_in_stbl* t_in_stbl_;
+ T_subrule_def* its_subrule_def_;
+ std::string grammar_s_enumerate_;
+ AST* tree_node_;
+ int element_pos_;
+ ***
+ user-implementation
+ refered_T::refered_T(T_in_stbl& Term_in_stbl)
+ T_CTOR("refered-T",T_Enum::T_refered_T_,0,false,false)
+ {t_in_stbl_ = &Term_in_stbl;
+ its_subrule_def_ = 0;
+ tree_node_ = 0;
+ element_pos_ = 0;
+ }
+ int refered_T::element_pos(){return element_pos_;}
+ void refered_T::element_pos(int Pos){element_pos_ = Pos;}
+
+ T_terminal_def* refered_T::its_t_def(){
+ return t_in_stbl_->t_def();
+ }
+ rule_def* refered_T::its_rule_def(){
+ return its_subrule_def_->its_rule_def();
+ }
+ AST* refered_T::tree_node(){
+ return tree_node_;
+ }
+ void refered_T::tree_node(AST* Tree_node){
+ tree_node_ = Tree_node;
+ }
+ std::string* refered_T::grammar_s_enumerate(){
+ return &grammar_s_enumerate_;
+ }
+ void refered_T::grammar_s_enumerate(const char* Enumerate){
+ grammar_s_enumerate_+=Enumerate;
+ }
+
+ T_in_stbl* refered_T::t_in_stbl(){
+ return t_in_stbl_;
+ }
+
+ T_subrule_def* refered_T::its_subrule_def(){
+ return its_subrule_def_;
+ }
+
+ void refered_T::its_subrule_def(T_subrule_def* Its_subrule){
+ its_subrule_def_ = Its_subrule;
+ }
+ ***
+ }
+)
+
+"rule-in-stbl" (sym-class rule_in_stbl {
+ user-declaration
+ public:
+ rule_in_stbl(rule_def& Rule_def);
+ rule_def* r_def();
+ std::list<refered_rule*>* xref_r();
+ void add_R_into_xref(refered_rule& R);
+ void stbl_idx(yacco2::UINT Idx);
+ int stbl_idx();
+ private:
+ rule_def* r_def_;
+ std::list<refered_rule*> xref_r_;
+ int stbl_idx_;
+ ***
+ user-implementation
+ rule_in_stbl::rule_in_stbl(rule_def& Rule_def)
+ T_CTOR("rule-in-stbl",T_Enum::T_rule_in_stbl_,0,false,false)
+ {r_def_ = &Rule_def;
+ stbl_idx_ = -1;
+ }
+ rule_def* rule_in_stbl::r_def(){
+ return r_def_;
+ }
+ std::list<refered_rule*>* rule_in_stbl::xref_r(){
+ return &xref_r_;;
+ }
+ void rule_in_stbl::add_R_into_xref(refered_rule& R){
+ xref_r_.push_back(&R);
+ }
+ void rule_in_stbl::stbl_idx(yacco2::UINT Idx){stbl_idx_ = Idx;}
+ int rule_in_stbl::stbl_idx(){return stbl_idx_;}
+ ***
+ }
+)
+
+"refered-rule" (sym-class refered_rule {
+ user-declaration
+ public:
+ refered_rule(rule_in_stbl& Rule_in_stbl);
+ rule_in_stbl* Rule_in_stbl();
+ T_subrule_def* its_subrule_def();
+ void its_subrule_def(T_subrule_def* Its_subrule);
+ std::string* grammar_s_enumerate();
+ void grammar_s_enumerate(const char* Enumerate);
+ AST* tree_node();
+ void tree_node(AST* Tree_node);
+ rule_def* its_rule_def();
+ int element_pos();
+ void element_pos(int Pos);
+ private:
+ rule_in_stbl* rule_in_stbl_;
+ T_subrule_def* its_subrule_def_;
+ std::string grammar_s_enumerate_;
+ AST* tree_node_;
+ int element_pos_;
+ ***
+ user-implementation
+ refered_rule::refered_rule(rule_in_stbl& Rule_in_stbl)
+ T_CTOR("refered-rule",T_Enum::T_refered_rule_,0,false,false)
+ {rule_in_stbl_ = &Rule_in_stbl;
+ its_subrule_def_ = 0;
+ tree_node_ = 0;
+ element_pos_ = 0;
+ }
+ int refered_rule::element_pos(){return element_pos_;}
+ void refered_rule::element_pos(int Pos){element_pos_ = Pos;}
+ rule_def* refered_rule::its_rule_def(){
+ return rule_in_stbl_->r_def();
+ }
+ AST* refered_rule::tree_node(){
+ return tree_node_;
+ }
+ void refered_rule::tree_node(AST* Tree_node){
+ tree_node_ = Tree_node;
+ }
+ std::string* refered_rule::grammar_s_enumerate(){
+ return &grammar_s_enumerate_;
+ }
+ void refered_rule::grammar_s_enumerate(const char* Enumerate){
+ grammar_s_enumerate_+=Enumerate;
+ }
+
+ T_subrule_def* refered_rule::its_subrule_def(){
+ return its_subrule_def_;
+ }
+
+ void refered_rule::its_subrule_def(T_subrule_def* Its_subrule){
+ its_subrule_def_ = Its_subrule;
+ }
+
+ rule_in_stbl* refered_rule::Rule_in_stbl(){
+ return rule_in_stbl_;
+ }
+ ***
+ }
+)
+
+"transitive" (sym-class T_transitive)
+"grammar-name" (sym-class T_grammar_name)
+"thread-name" (sym-class T_thread_name)
+"monolithic" (sym-class T_monolithic)
+"no-of-T" (sym-class T_no_of_T)
+"list-of-native-first-set-terminals"
+ (sym-class T_list_of_native_first_set_terminals)
+"end-list-of-native-first-set-terminals"
+ (sym-class T_end_list_of_native_first_set_terminals)
+"list-of-transitive-threads"
+ (sym-class T_list_of_transitive_threads)
+"end-list-of-transitive-threads"
+ (sym-class T_end_list_of_transitive_threads)
+"emitfile" (sym-class T_emitfile)
+"preamble" (sym-class T_preamble)
+"end-preamble" (sym-class T_end_preamble)
+"T-alphabet" (sym-class T_T_alphabet)
+"end-T-alphabet" (sym-class T_end_T_alphabet)
+"file-of-T-alphabet" (sym-class T_file_of_T_alphabet)
+
+
+"T-attributes" (sym-class T_attributes {
+ user-declaration
+ public:
+T_attributes(const char* Fully_qualified_T_name,int Enum);
+std::string fully_qualified_T_name_;
+ int T_enum_;
+ ***
+ user-implementation
+ T_attributes::T_attributes(const char* Fully_qualified_T_name,int Enum)
+ T_CTOR("T-attributes",T_Enum::T_T_attributes_,0,false,false)
+ {fully_qualified_T_name_ += Fully_qualified_T_name;
+ T_enum_ = Enum;
+ }
+ ***
+ }
+)
+
+"tth-in-stbl" (sym-class tth_in_stbl { // linker terminals
+ user-declaration
+ public:
+ tth_in_stbl(T_attributes* Fnd_T_in_stbl,CAbs_lr1_sym* Rc,yacco2::Parser* P);
+ T_attributes* t_in_stbl();
+ void stbl_idx(yacco2::UINT Idx);
+ int stbl_idx();
+ private:
+ T_attributes* t_in_stbl_;
+ int stbl_idx_;
+ ***
+ user-implementation
+ tth_in_stbl::tth_in_stbl
+ (T_attributes* Fnd_T_in_stbl,CAbs_lr1_sym* Rc,yacco2::Parser* P)
+ T_CTOR("tth-in-stbl",T_Enum::T_tth_in_stbl_,0,false,false)
+ {t_in_stbl_ = Fnd_T_in_stbl;
+ set_rc(*Rc,__FILE__,__LINE__);// set its source co-ordinates
+ stbl_idx_ = -1;
+ }
+ T_attributes* tth_in_stbl::t_in_stbl(){
+ return t_in_stbl_;
+ }
+ void tth_in_stbl::stbl_idx(yacco2::UINT Idx){stbl_idx_ = Idx;}
+ int tth_in_stbl::stbl_idx(){return stbl_idx_;}
+ ***
+ }
+)
+
+"thread-attributes" (sym-class thread_attributes {
+ user-declaration
+ public:
+ thread_attributes(const char* Fully_qualified_th_name);
+ thread_attributes
+ (const char* Fully_qualified_th_name
+ ,char Transitive
+ ,T_c_string* Grammar_name
+ ,T_c_string* Name_space_name
+ ,T_c_string* Thread_name
+ ,char Monolithic
+ ,T_c_string* File_name
+ ,std::vector<int>& List_of_Ts
+ ,std::vector<thread_attributes*>& List_of_transitive_thds
+ ,T_c_string* Fsm_comments);
+ std::string fully_qualified_th_name_;
+ char transitive_;
+ T_c_string* grammar_file_name_;
+ T_c_string* name_space_name_;
+ T_c_string* thread_name_;
+ char monolithic_;
+ T_c_string* file_name_;
+ std::vector<int> list_of_Ts_;
+ std::set<int> fs_;
+ std::vector<thread_attributes*> list_of_transitive_threads_;
+ int th_enum_;
+ T_c_string* fsm_comments_;
+ AST* called_thread_graph_;
+
+ ***
+ user-implementation
+ thread_attributes::thread_attributes(const char* Fully_qualified_th_name)
+T_CTOR("thread-attributes",T_Enum::T_thread_attributes_,0,false,false)
+ {fully_qualified_th_name_ += Fully_qualified_th_name;
+ transitive_ = ' ';
+ grammar_file_name_ = 0;
+ name_space_name_ = 0;
+ thread_name_ = 0;
+ monolithic_ = ' ';
+ file_name_ = 0;
+ th_enum_ = -1;
+ fsm_comments_ = 0;
+ called_thread_graph_ = 0;
+ }
+ thread_attributes::thread_attributes
+ (const char* Fully_qualified_th_name
+ ,char Transitive
+ ,T_c_string* Grammar_name
+ ,T_c_string* Name_space_name
+ ,T_c_string* Thread_name
+ ,char Monolithic
+ ,T_c_string* File_name
+ ,std::vector<int>& List_of_Ts
+ ,std::vector<thread_attributes*>& List_of_transitive_thds
+ ,T_c_string* Fsm_comments)
+ T_CTOR("thread-attributes",T_Enum::T_thread_attributes_,0,false,false)
+ {fully_qualified_th_name_ += Fully_qualified_th_name;
+ transitive_ = Transitive;
+ grammar_file_name_ = Grammar_name;
+ name_space_name_ = Name_space_name;
+ thread_name_ = Thread_name;
+ monolithic_ = Monolithic;
+ file_name_ = File_name;
+ if(!List_of_Ts.empty()){
+ copy(List_of_Ts.begin()
+ ,List_of_Ts.end()
+ ,back_inserter(list_of_Ts_));
+ std::vector<int>::iterator i = List_of_Ts.begin();
+ std::vector<int>::iterator ie = List_of_Ts.end();
+ for(;i!=ie;++i){
+ fs_.insert(*i);
+ }
+ }
+ if(!List_of_transitive_thds.empty())
+ copy(List_of_transitive_thds.begin()
+ ,List_of_transitive_thds.end()
+ ,back_inserter(list_of_transitive_threads_));
+ th_enum_ = -1;
+ fsm_comments_ = Fsm_comments;
+ called_thread_graph_ = 0;
+ }
+ ***
+ }
+)
+"th-in-stbl" (sym-class th_in_stbl {
+ user-declaration
+ public:
+ th_in_stbl(thread_attributes* Fnd_th_in_stbl);
+ thread_attributes* thread_in_stbl();
+ void stbl_idx(yacco2::UINT Idx);
+ int stbl_idx();
+ private:
+ thread_attributes* th_in_stbl_;
+ int stbl_idx_;
+ ***
+ user-implementation
+ th_in_stbl::th_in_stbl(thread_attributes* Fnd_th_in_stbl)
+ T_CTOR("th-in-stbl",T_Enum::T_th_in_stbl_,0,false,false)
+ {th_in_stbl_ = Fnd_th_in_stbl;
+ stbl_idx_ = -1;
+ }
+ thread_attributes* th_in_stbl::thread_in_stbl(){
+ return th_in_stbl_;
+ }
+ void th_in_stbl::stbl_idx(yacco2::UINT Idx){stbl_idx_ = Idx;}
+ int th_in_stbl::stbl_idx(){return stbl_idx_;}
+ ***
+ }
+)
+"kw-in-stbl" (sym-class kw_in_stbl {
+ user-declaration
+ public:
+ kw_in_stbl(CAbs_lr1_sym* Fnd_kw_in_stbl);
+ CAbs_lr1_sym* keyword_in_stbl();
+ void stbl_idx(yacco2::UINT Idx);
+ int stbl_idx();
+ private:
+ CAbs_lr1_sym* kw_in_stbl_;
+ int stbl_idx_;
+ ***
+ user-implementation
+ kw_in_stbl::kw_in_stbl(CAbs_lr1_sym* Fnd_kw_in_stbl)
+ T_CTOR("kw-in-stbl",T_Enum::T_kw_in_stbl_,0,false,false)
+ {kw_in_stbl_ = Fnd_kw_in_stbl;
+ stbl_idx_ = -1;
+ }
+ CAbs_lr1_sym* kw_in_stbl::keyword_in_stbl(){
+ return kw_in_stbl_;
+ }
+ void kw_in_stbl::stbl_idx(yacco2::UINT Idx){stbl_idx_ = Idx;}
+ int kw_in_stbl::stbl_idx(){return stbl_idx_;}
+ ***
+ }
+)
+"la-express-source" (sym-class T_la_expr_src {
+ user-declaration
+ public:
+ T_la_expr_src();
+ yacco2::TOKEN_GAGGLE* la_tok_can();
+ void zero_la_tok_can();
+ private:
+ yacco2::TOKEN_GAGGLE* la_tok_can_;
+ ***
+ user-implementation
+ T_la_expr_src::T_la_expr_src()
+T_CTOR("la-express-source",T_Enum::T_T_la_expr_src_,0,false,false)
+ {la_tok_can_ = new yacco2::TOKEN_GAGGLE;
+ }
+ void T_la_expr_src::zero_la_tok_can(){
+ la_tok_can_ = 0;
+ }
+ yacco2::TOKEN_GAGGLE* T_la_expr_src::la_tok_can(){
+ return la_tok_can_;
+ }
+ ***
+ }
+)
+"eosubrule" (sym-class T_eosubrule{
+ user-declaration
+ public:
+ T_eosubrule();
+ T_subrule_def* its_subrule_def();
+ void its_subrule_def(T_subrule_def* Its_subrule);
+ std::string* grammar_s_enumerate();
+ void grammar_s_enumerate(const char* Enumerate);
+ AST* tree_node();
+ void tree_node(AST* Tree_node);
+ rule_def* its_rule_def();
+ int element_pos();
+ void element_pos(int Pos);
+
+ private:
+ T_subrule_def* its_subrule_def_;
+ std::string grammar_s_enumerate_;
+ AST* tree_node_;
+ int element_pos_;
+ ***
+ user-implementation
+ T_eosubrule::T_eosubrule()
+ T_CTOR("eosubrule",T_Enum::T_T_eosubrule_,0,false,false){
+ its_subrule_def_ = 0;
+ tree_node_ = 0;
+ element_pos_ = 0;
+ }
+ int T_eosubrule::element_pos(){return element_pos_;}
+ void T_eosubrule::element_pos(int Pos){element_pos_ = Pos;}
+
+ rule_def* T_eosubrule::its_rule_def(){
+ return its_subrule_def_->its_rule_def();
+ }
+ AST* T_eosubrule::tree_node(){
+ return tree_node_;
+ }
+ void T_eosubrule::tree_node(AST* Tree_node){
+ tree_node_ = Tree_node;
+ }
+
+ std::string* T_eosubrule::grammar_s_enumerate(){
+ return &grammar_s_enumerate_;
+ }
+ void T_eosubrule::grammar_s_enumerate(const char* Enumerate){
+ grammar_s_enumerate_+=Enumerate;
+ }
+ T_subrule_def* T_eosubrule::its_subrule_def(){
+ return its_subrule_def_;
+ }
+
+ void T_eosubrule::its_subrule_def(T_subrule_def* Its_subrule){
+ its_subrule_def_ = Its_subrule;
+ }
+ ***
+ }
+)
+
+"called thread eosubrule" (sym-class T_called_thread_eosubrule{
+ user-declaration
+ public:
+ T_called_thread_eosubrule(T_identifier* Ns,T_identifier* Thread_name);
+ T_subrule_def* its_subrule_def();
+ void its_subrule_def(T_subrule_def* Its_subrule);
+ std::string* grammar_s_enumerate();
+ void grammar_s_enumerate(const char* Enumerate);
+ AST* tree_node();
+ void tree_node(AST* Tree_node);
+ rule_def* its_rule_def();
+ T_identifier* ns();
+ T_identifier* called_thread_name();
+ int element_pos();
+ void element_pos(int Pos);
+ private:
+ T_subrule_def* its_subrule_def_;
+ std::string grammar_s_enumerate_;
+ AST* tree_node_;
+ T_identifier* ns_;
+ T_identifier* called_thread_name_;
+ int element_pos_;
+ ***
+ user-implementation
+T_called_thread_eosubrule::T_called_thread_eosubrule
+ (T_identifier* Ns,T_identifier* Thd_name)
+T_CTOR("called thread eosubrule",T_Enum::T_T_called_thread_eosubrule_,0,false,false){
+ its_subrule_def_ = 0;
+ tree_node_ = 0;
+ ns_ = Ns;
+ called_thread_name_ = Thd_name;
+ element_pos_ = 0;
+ }
+ int T_called_thread_eosubrule::element_pos(){return element_pos_;}
+ void T_called_thread_eosubrule::element_pos(int Pos){element_pos_ = Pos;}
+ T_identifier* T_called_thread_eosubrule::ns(){
+ return ns_;
+ }
+ T_identifier* T_called_thread_eosubrule::called_thread_name(){
+ return called_thread_name_;
+ }
+ rule_def* T_called_thread_eosubrule::its_rule_def(){
+ return its_subrule_def_->its_rule_def();
+ }
+ AST* T_called_thread_eosubrule::tree_node(){
+ return tree_node_;
+ }
+ void T_called_thread_eosubrule::tree_node(AST* Tree_node){
+ tree_node_ = Tree_node;
+ }
+
+ std::string* T_called_thread_eosubrule::grammar_s_enumerate(){
+ return &grammar_s_enumerate_;
+ }
+ void T_called_thread_eosubrule::grammar_s_enumerate(const char* Enumerate){
+ grammar_s_enumerate_+=Enumerate;
+ }
+ T_subrule_def* T_called_thread_eosubrule::its_subrule_def(){
+ return its_subrule_def_;
+ }
+
+ void T_called_thread_eosubrule::its_subrule_def(T_subrule_def* Its_subrule){
+ its_subrule_def_ = Its_subrule;
+ }
+ ***
+ }
+)
+
+"null call thread eosubrule" (sym-class T_null_call_thread_eosubrule{
+ user-declaration
+ public:
+ T_null_call_thread_eosubrule();
+ T_subrule_def* its_subrule_def();
+ void its_subrule_def(T_subrule_def* Its_subrule);
+ std::string* grammar_s_enumerate();
+ void grammar_s_enumerate(const char* Enumerate);
+ AST* tree_node();
+ void tree_node(AST* Tree_node);
+ rule_def* its_rule_def();
+ int element_pos();
+ void element_pos(int Pos);
+ private:
+ T_subrule_def* its_subrule_def_;
+ std::string grammar_s_enumerate_;
+ AST* tree_node_;
+ int element_pos_;
+ ***
+ user-implementation
+ T_null_call_thread_eosubrule::T_null_call_thread_eosubrule()
+T_CTOR("null call thread eosubrule",T_Enum::T_T_null_call_thread_eosubrule_,0,false,false){
+ its_subrule_def_ = 0;
+ tree_node_ = 0;
+ element_pos_ = 0;
+ }
+ int T_null_call_thread_eosubrule::element_pos(){return element_pos_;}
+ void T_null_call_thread_eosubrule::element_pos(int Pos){element_pos_ = Pos;}
+ rule_def* T_null_call_thread_eosubrule::its_rule_def(){
+ return its_subrule_def_->its_rule_def();
+ }
+ AST* T_null_call_thread_eosubrule::tree_node(){
+ return tree_node_;
+ }
+ void T_null_call_thread_eosubrule::tree_node(AST* Tree_node){
+ tree_node_ = Tree_node;
+ }
+
+ std::string* T_null_call_thread_eosubrule::grammar_s_enumerate(){
+ return &grammar_s_enumerate_;
+ }
+ void T_null_call_thread_eosubrule::grammar_s_enumerate(const char* Enumerate){
+ grammar_s_enumerate_+=Enumerate;
+ }
+ T_subrule_def* T_null_call_thread_eosubrule::its_subrule_def(){
+ return its_subrule_def_;
+ }
+
+ void T_null_call_thread_eosubrule::its_subrule_def(T_subrule_def* Its_subrule){
+ its_subrule_def_ = Its_subrule;
+ }
+ ***
+ }
+)
+
+"cweb-comment"
+(sym-class T_cweb_comment{
+ user-declaration
+ public:
+ T_cweb_comment(const std::string& Comment_data);
+ std::string* comment_data();
+ private:std::string comment_data_;
+ ***
+ user-implementation
+ T_cweb_comment::
+ T_cweb_comment(const std::string& Comment_data)
+ T_CTOR("cweb-comment",T_Enum::T_T_cweb_comment_,0,false,false)
+ {comment_data_ = Comment_data;}
+ std::string* T_cweb_comment::comment_data(){return &comment_data_;}
+ ***
+ }
+)
+"grammar-phrase" (sym-class T_grammar_phrase)
+"cweb-marker"
+(sym-class T_cweb_marker{
+ user-declaration
+ public:
+ T_cweb_marker(AST* Node);
+ T_cweb_marker();
+ AST* ast();
+ private:AST* ast_;
+ ***
+ user-implementation
+ T_cweb_marker::
+ T_cweb_marker(AST* Node)
+ T_CTOR("cweb-marker",T_Enum::T_T_cweb_marker_,0,false,false)
+ {ast_ = Node;}
+ T_cweb_marker::
+ T_cweb_marker()
+ T_CTOR("cweb-marker",T_Enum::T_T_cweb_marker_,0,false,false)
+ {ast_ = 0;}
+ AST* T_cweb_marker::ast(){return ast_;}
+ ***
+ }
+)
+
+"lint"
+ /@
+ Gathers the fluff.
+ @/
+ (sym-class T_lint{
+ user-declaration
+ T_lint();
+ ***
+ user-implementation
+ T_lint::T_lint()
+ T_CTOR("lint",T_Enum::T_T_lint_,0,false,false)
+ {}
+ T_lint lint__;
+ yacco2::CAbs_lr1_sym* NS_yacco2_terminals::PTR_lint__ = &lint__;
+ ***
+ }
+)
+
+"list-of-used-threads"
+ (sym-class T_list_of_used_threads)
+"end-list-of-used-threads"
+ (sym-class T_end_list_of_used_threads)
+} // end of terminals
diff --git a/web/yacco2/compiler/grammars/yacco2_terminals.cpp b/web/yacco2/compiler/grammars/yacco2_terminals.cpp
new file mode 100644
index 0000000000..faec51e511
--- /dev/null
+++ b/web/yacco2/compiler/grammars/yacco2_terminals.cpp
@@ -0,0 +1,1946 @@
+/*
+ File: yacco2_terminals.cpp
+ Date and Time: Sun Apr 20 13:54:30 2014
+*/
+#include "yacco2_terminals.h"
+ using namespace NS_yacco2_terminals;
+ using namespace NS_yacco2_T_enum;
+T_option_t::
+T_option_t()
+ T_CTOR("option-t",T_Enum::T_T_option_t_,0,true,false){}
+T_option_p::
+T_option_p()
+ T_CTOR("option-p",T_Enum::T_T_option_p_,0,true,false){}
+T_option_err::
+T_option_err()
+ T_CTOR("option-err",T_Enum::T_T_option_err_,0,true,false){}
+
+ T_esc_seq::
+ T_esc_seq(const char* Esc_data)
+ T_CTOR("esc-seq",T_Enum::T_T_esc_seq_,0,true,false)
+ {
+ esc_data_ += Esc_data;
+ }
+ std::string* T_esc_seq::esc_data(){return &esc_data_;};
+
+ T_eol::
+ T_eol()
+ T_CTOR("eol",T_Enum::T_T_eol_,0,false,false)
+ {}
+ T_eol eol__;
+ yacco2::CAbs_lr1_sym* NS_yacco2_terminals::PTR_eol__ = &eol__;
+
+ T_basic_char::
+ T_basic_char(CAbs_lr1_sym* Basic_char)
+ T_CTOR("basic-char",T_Enum::T_T_basic_char_,&dtor_T_basic_char,false,false)
+ {basic_char_ = Basic_char;}
+ void T_basic_char::zero_out_basic_char(){basic_char_ = 0;}
+ CAbs_lr1_sym* T_basic_char::basic_char()const{return basic_char_;}
+ void T_basic_char::dtor_T_basic_char(yacco2::VOIDP This,yacco2::VOIDP P){
+ T_basic_char* R = (T_basic_char*)(This);
+
+ if(R->basic_char_!=0)
+ delete R->basic_char();
+
+}
+
+ T_raw_char::
+ T_raw_char(CAbs_lr1_sym* Raw_char)
+ T_CTOR("raw-char",T_Enum::T_T_raw_char_,0,false,false)
+ {raw_char_ = Raw_char;}
+ void T_raw_char::zero_out_raw_char(){raw_char_ = 0;}
+ CAbs_lr1_sym* T_raw_char::raw_char()const{return raw_char_;}
+ void T_raw_char::dtor_T_raw_char(yacco2::VOIDP This,yacco2::VOIDP P){
+ T_raw_char* R = (T_raw_char*)(This);
+
+ if(R->raw_char_!=0)
+ delete R->raw_char();
+
+}
+
+ T_comment::
+ T_comment(const std::string& Comment_data)
+ T_CTOR("comment",T_Enum::T_T_comment_,0,false,false)
+ {comment_data_ = Comment_data;}
+ std::string* T_comment::comment_data(){return &comment_data_;}
+
+ T_ws::
+ T_ws(const std::string& Ws_data)
+ T_CTOR("ws",T_Enum::T_T_ws_,0,false,false)
+ {ws_data_+= Ws_data;}
+ T_ws::
+ T_ws()
+ T_CTOR("ws",T_Enum::T_T_ws_,0,false,false)
+ {}
+ std::string* T_ws::ws_data(){return &ws_data_;}
+ T_ws ws__;
+ yacco2::CAbs_lr1_sym* NS_yacco2_terminals::PTR_ws__ = &ws__;
+
+ T_angled_string::T_angled_string(const string& Angled_string)
+ T_CTOR("angled-string",T_Enum::T_T_angled_string_,0,false,false)
+ {angled_string_ = Angled_string;}
+ std::string* T_angled_string::angled_string(){return &angled_string_;}
+
+ T_c_literal::T_c_literal(const string& C_literal)
+ T_CTOR("c-literal",T_Enum::T_T_c_literal_,0,false,false)
+ {c_literal_ = C_literal;}
+ std::string* T_c_literal::c_literal(){return &c_literal_;}
+
+ T_c_string::T_c_string(const std::string& C_string)
+ T_CTOR("c-string",T_Enum::T_T_c_string_,0,false,false)
+ {c_string_ = C_string;}
+ std::string* T_c_string::c_string(){return &c_string_;}
+
+ T_xc_str::T_xc_str(const std::string& C_string)
+ T_CTOR("xc-str",T_Enum::T_T_xc_str_,0,false,false)
+ {c_string_ = C_string;}
+ std::string* T_xc_str::c_string(){return &c_string_;}
+
+ T_unquoted_string::T_unquoted_string(const std::string& String)
+ T_CTOR("unquoted-string",T_Enum::T_T_unquoted_string_,0,false,false)
+ {unquoted_string_ = String;}
+ std::string* T_unquoted_string::unquoted_string(){return &unquoted_string_;}
+
+ T_file_inclusion::T_file_inclusion
+ (T_c_string* File_name,CAbs_lr1_sym* Error)
+ T_CTOR("file-inclusion",T_Enum::T_T_file_inclusion_,0,false,false)
+ {file_name_ = File_name;
+ error_sym_ = Error;}
+ CAbs_lr1_sym* T_file_inclusion::error_sym(){
+ return error_sym_;
+ }
+ void T_file_inclusion::error_sym(CAbs_lr1_sym* Error){
+ error_sym_ = Error;
+ }
+ T_c_string* T_file_inclusion::file_name(){return file_name_;}
+ T_file_inclusion::~T_file_inclusion(){delete file_name_;delete error_sym_;}
+
+ T_identifier::T_identifier(yacco2::KCHARP Identifier)
+ T_CTOR("identifier",T_Enum::T_T_identifier_,0,false,false)
+ {identifier_ = Identifier;}
+ std::string* T_identifier::identifier(){return &identifier_;}
+
+ T_int_no::
+ T_int_no(long S_no)
+ T_CTOR("int-no",T_Enum::T_T_int_no_,0,false,false)
+ {no_ = S_no;}
+ long T_int_no::no(){return no_;};
+
+ T_raw_characters::T_raw_characters()
+ T_CTOR("#raw-characters",T_Enum::T_T_raw_characters_,&dtor_T_raw_characters,false,false)
+ {rc_phrase_ = 0;}
+ T_rc_phrase* T_raw_characters::rc_phrase(){return rc_phrase_;}
+ void T_raw_characters::rc_phrase(T_rc_phrase* Phrase){rc_phrase_ = Phrase;}
+ void T_raw_characters::dtor_T_raw_characters(yacco2::VOIDP This,yacco2::VOIDP P){
+ T_raw_characters* R = (T_raw_characters*)(This);
+
+ if(R->rc_phrase_!=0)
+ delete R->rc_phrase_;
+
+}
+
+ T_lr1_constant_symbols::T_lr1_constant_symbols()
+T_CTOR("#lr1-constant-symbols",T_Enum::T_T_lr1_constant_symbols_,&dtor_T_lr1_constant_symbols,false,false)
+ {lr1_k_phrase_ = 0;}
+ T_lr1_k_phrase* T_lr1_constant_symbols::lr1_k_phrase(){return lr1_k_phrase_;}
+ void T_lr1_constant_symbols::lr1_k_phrase(T_lr1_k_phrase* Phrase){lr1_k_phrase_ = Phrase;}
+ void T_lr1_constant_symbols::dtor_T_lr1_constant_symbols(yacco2::VOIDP This,yacco2::VOIDP P){
+ T_lr1_constant_symbols* R = (T_lr1_constant_symbols*)(This);
+
+ if(R->lr1_k_phrase_ != 0)
+ delete R->lr1_k_phrase_;
+
+}
+
+ T_error_symbols::T_error_symbols()
+T_CTOR("#error-symbols",T_Enum::T_T_error_symbols_,&dtor_T_error_symbols,false,false)
+ {error_symbols_phrase_ = 0;}
+ T_error_symbols_phrase*
+ T_error_symbols::error_symbols_phrase(){return error_symbols_phrase_;}
+ void T_error_symbols::
+ error_symbols_phrase(T_error_symbols_phrase* Phrase){error_symbols_phrase_ = Phrase;}
+ void T_error_symbols::dtor_T_error_symbols(yacco2::VOIDP This,yacco2::VOIDP P){
+ T_error_symbols* R = (T_error_symbols*)(This);
+
+ if(R->error_symbols_phrase_ != 0)
+ delete R->error_symbols_phrase_;
+
+}
+T_eocode::
+T_eocode()
+ T_CTOR("#***",T_Enum::T_T_eocode_,0,false,false){}
+T_AD::
+T_AD()
+ T_CTOR("#AD",T_Enum::T_T_AD_,0,false,false){}
+T_AB::
+T_AB()
+ T_CTOR("#AB",T_Enum::T_T_AB_,0,false,false){}
+
+ T_parallel_la_boundary::T_parallel_la_boundary()
+ T_CTOR("#parallel-la-boundary",T_Enum::T_T_parallel_la_boundary_,0,false,false)
+ {la_supplier_ = 0;
+ cweb_marker_=0;
+ }
+ void T_parallel_la_boundary::cweb_la_srce_expr(const char* Srce_expr){
+ cweb_la_srce_expr_.append(Srce_expr);
+ }
+ std::string* T_parallel_la_boundary::cweb_la_srce_expr(){
+ return &cweb_la_srce_expr_;
+ }
+
+ yacco2::TOKEN_GAGGLE* T_parallel_la_boundary::la_supplier(){return la_supplier_;}
+ void T_parallel_la_boundary::la_supplier(yacco2::TOKEN_GAGGLE* Supplier)
+ {la_supplier_ = Supplier;}
+
+ void T_parallel_la_boundary::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+
+ AST* T_parallel_la_boundary::cweb_marker(){
+ return cweb_marker_;
+ }
+
+ std::set<T_in_stbl*>* T_parallel_la_boundary::la_first_set()
+ {return &la_first_set_;}
+ void T_parallel_la_boundary::la_first_set(std::set<T_in_stbl*>& Supplier)
+ {
+ la_first_set_.insert(Supplier.begin(),Supplier.end());
+ }
+
+ T_arbitrator_code::T_arbitrator_code()
+ T_CTOR("#arbitrator-code",T_Enum::T_T_arbitrator_code_,0,false,false)
+ {syntax_code_ = 0;cweb_marker_=0;}
+ T_syntax_code* T_arbitrator_code::syntax_code(){return syntax_code_;}
+ void T_arbitrator_code::syntax_code(T_syntax_code* Stc){syntax_code_ = Stc;}
+ void T_arbitrator_code::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+ AST* T_arbitrator_code::cweb_marker(){
+ return cweb_marker_;
+ }
+
+ T_parallel_parser::T_parallel_parser()
+ T_CTOR("#parallel-parser",T_Enum::T_T_parallel_parser_,&dtor_T_parallel_parser,false,false)
+ {parallel_parser_phrase_ = 0;}
+ T_parallel_parser_phrase*
+ T_parallel_parser::parallel_parser_phrase(){return parallel_parser_phrase_;}
+ void T_parallel_parser::parallel_parser_phrase
+ (T_parallel_parser_phrase* Phrase){parallel_parser_phrase_ = Phrase;}
+ void T_parallel_parser::dtor_T_parallel_parser(yacco2::VOIDP This,yacco2::VOIDP P){
+ T_parallel_parser* R = (T_parallel_parser*)(This);
+
+ if(R->parallel_parser_phrase_ != 0)
+ delete R->parallel_parser_phrase_;
+
+}
+
+ T_parallel_thread_function::T_parallel_thread_function()
+ T_CTOR("#parallel-thread-function",T_Enum::T_T_parallel_thread_function_,0,false,false)
+ {id_ = 0;cweb_marker_=0;}
+ T_identifier* T_parallel_thread_function::identifier(){return id_;}
+ void T_parallel_thread_function::identifier(T_identifier* Id){id_ = Id;}
+ void T_parallel_thread_function::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+ AST* T_parallel_thread_function::cweb_marker(){
+ return cweb_marker_;
+ }
+ T_parallel_control_monitor::
+T_parallel_control_monitor()
+ T_CTOR("#parallel-control-monitor",T_Enum::T_T_parallel_control_monitor_,0,false,false){}
+
+ T_fsm::T_fsm()
+ T_CTOR("#fsm",T_Enum::T_T_fsm_,&dtor_T_fsm,false,false)
+ {fsm_phrase_ = 0;}
+ T_fsm_phrase* T_fsm::fsm_phrase(){return fsm_phrase_;}
+ void T_fsm::fsm_phrase(T_fsm_phrase* Phrase){fsm_phrase_ = Phrase;}
+ void T_fsm::dtor_T_fsm(yacco2::VOIDP This,yacco2::VOIDP P){
+ T_fsm* R = (T_fsm*)(This);
+
+ if(R->fsm_phrase_ != 0)
+ delete R->fsm_phrase_;
+
+}
+T_fsm_id::
+T_fsm_id()
+ T_CTOR("#fsm-id",T_Enum::T_T_fsm_id_,0,false,false){}
+T_fsm_filename::
+T_fsm_filename()
+ T_CTOR("#fsm-filename",T_Enum::T_T_fsm_filename_,0,false,false){}
+T_fsm_namespace::
+T_fsm_namespace()
+ T_CTOR("#fsm-namespace",T_Enum::T_T_fsm_namespace_,0,false,false){}
+T_fsm_class::
+T_fsm_class()
+ T_CTOR("#fsm-class",T_Enum::T_T_fsm_class_,0,false,false){}
+T_fsm_version::
+T_fsm_version()
+ T_CTOR("#fsm-version",T_Enum::T_T_fsm_version_,0,false,false){}
+T_fsm_date::
+T_fsm_date()
+ T_CTOR("#fsm-date",T_Enum::T_T_fsm_date_,0,false,false){}
+T_fsm_debug::
+T_fsm_debug()
+ T_CTOR("#fsm-debug",T_Enum::T_T_fsm_debug_,0,false,false){}
+T_fsm_comments::
+T_fsm_comments()
+ T_CTOR("#fsm-comments",T_Enum::T_T_fsm_comments_,0,false,false){}
+
+ T_terminals::T_terminals()
+ T_CTOR("#terminals",T_Enum::T_T_terminals_,&dtor_T_terminals,false,true)
+ {terminals_phrase_ = 0;}
+ T_terminals_phrase* T_terminals::terminals_phrase(){return terminals_phrase_;}
+ void T_terminals::terminals_phrase(T_terminals_phrase* Phrase)
+ {terminals_phrase_ = Phrase;}
+ void T_terminals::dtor_T_terminals(yacco2::VOIDP This,yacco2::VOIDP P){
+ T_terminals* R = (T_terminals*)(This);
+
+ if(R->terminals_phrase_ != 0)
+ delete R->terminals_phrase_;
+
+}
+
+ T_enumeration::T_enumeration()
+ T_CTOR("#T-enumeration",T_Enum::T_T_enumeration_,&dtor_T_enumeration,false,true)
+ {enum_phrase_ = 0;}
+ T_enum_phrase* T_enumeration::enum_phrase(){return enum_phrase_;}
+ void T_enumeration::enum_phrase(T_enum_phrase* Phrase){enum_phrase_ = Phrase;}
+ void T_enumeration::dtor_T_enumeration(yacco2::VOIDP This,yacco2::VOIDP P){
+ T_enumeration* R = (T_enumeration*)(This);
+
+ if(R->enum_phrase_ != 0)
+ delete R->enum_phrase_;
+
+}
+T_file_name::
+T_file_name()
+ T_CTOR("#file-name",T_Enum::T_T_file_name_,0,false,false){}
+T_name_space::
+T_name_space()
+ T_CTOR("#name-space",T_Enum::T_T_name_space_,0,false,false){}
+T_sym_class::
+T_sym_class()
+ T_CTOR("#sym-class",T_Enum::T_T_sym_class_,0,false,false){}
+
+ T_rules::T_rules()
+ T_CTOR("#rules",T_Enum::T_T_rules_,&dtor_T_rules,false,true)
+ {rules_phrase_ = 0;}
+ T_rules_phrase* T_rules::rules_phrase(){return rules_phrase_;}
+ void T_rules::rules_phrase(T_rules_phrase* Phrase){rules_phrase_ = Phrase;}
+ void T_rules::dtor_T_rules(yacco2::VOIDP This,yacco2::VOIDP P){
+ T_rules* R = (T_rules*)(This);
+
+ if(R->rules_phrase_ != 0)
+ delete R->rules_phrase_;
+
+}
+T_lhs::
+T_lhs()
+ T_CTOR("#lhs",T_Enum::T_T_lhs_,0,false,false){}
+
+ T_user_declaration::T_user_declaration()
+ T_CTOR("#user-declaration",T_Enum::T_T_user_declaration_,0,false,false)
+ {syntax_code_ = 0;}
+ T_syntax_code* T_user_declaration::syntax_code(){return syntax_code_;}
+ void T_user_declaration::syntax_code(T_syntax_code* Stc){syntax_code_ = Stc;}
+
+ T_user_prefix_declaration::T_user_prefix_declaration()
+ T_CTOR("#user-prefix-declaration",T_Enum::T_T_user_prefix_declaration_,0,false,false)
+ {syntax_code_ = 0;}
+ T_syntax_code* T_user_prefix_declaration::syntax_code(){return syntax_code_;}
+ void T_user_prefix_declaration::syntax_code(T_syntax_code* Stc){syntax_code_ = Stc;}
+
+ T_user_suffix_declaration::T_user_suffix_declaration()
+ T_CTOR("#user-suffix-declaration",T_Enum::T_T_user_suffix_declaration_,0,false,false)
+ {syntax_code_ = 0;}
+ T_syntax_code* T_user_suffix_declaration::syntax_code(){return syntax_code_;}
+ void T_user_suffix_declaration::syntax_code(T_syntax_code* Stc){syntax_code_ = Stc;}
+
+ T_constructor::T_constructor()
+ T_CTOR("#constructor",T_Enum::T_T_constructor_,0,false,false)
+ {syntax_code_ = 0;}
+ T_syntax_code* T_constructor::syntax_code(){return syntax_code_;}
+ void T_constructor::syntax_code(T_syntax_code* Stc){syntax_code_ = Stc;}
+
+ T_destructor::T_destructor()
+ T_CTOR("#destructor",T_Enum::T_T_destructor_,0,false,false)
+ {syntax_code_ = 0;}
+ T_syntax_code* T_destructor::syntax_code(){return syntax_code_;}
+ void T_destructor::syntax_code(T_syntax_code* Stc){syntax_code_ = Stc;}
+
+ T_op::T_op()
+ T_CTOR("#op",T_Enum::T_T_op_,0,false,false)
+ {syntax_code_ = 0;}
+ T_syntax_code* T_op::syntax_code(){return syntax_code_;}
+ void T_op::syntax_code(T_syntax_code* Stc){syntax_code_ = Stc;}
+
+ T_failed::T_failed()
+ T_CTOR("#failed",T_Enum::T_T_failed_,0,false,false)
+ {syntax_code_ = 0;}
+ T_syntax_code* T_failed::syntax_code(){return syntax_code_;}
+ void T_failed::syntax_code(T_syntax_code* Stc){syntax_code_ = Stc;}
+
+ T_user_implementation::T_user_implementation()
+ T_CTOR("#user-implementation",T_Enum::T_T_user_implementation_,0,false,false)
+ {syntax_code_ = 0;}
+ T_syntax_code* T_user_implementation::syntax_code(){return syntax_code_;}
+ void T_user_implementation::syntax_code(T_syntax_code* Stc){syntax_code_ = Stc;}
+
+ T_user_imp_tbl::T_user_imp_tbl()
+ T_CTOR("#user-imp-tbl",T_Enum::T_T_user_imp_tbl_,0,false,false)
+ {syntax_code_ = 0;}
+ T_syntax_code* T_user_imp_tbl::syntax_code(){return syntax_code_;}
+ void T_user_imp_tbl::syntax_code(T_syntax_code* Stc){syntax_code_ = Stc;}
+
+ T_user_imp_sym::T_user_imp_sym()
+ T_CTOR("#user-imp-sym",T_Enum::T_T_user_imp_sym_,0,false,false)
+ {syntax_code_ = 0;}
+ T_syntax_code* T_user_imp_sym::syntax_code(){return syntax_code_;}
+ void T_user_imp_sym::syntax_code(T_syntax_code* Stc){syntax_code_ = Stc;}
+ T_constant_defs::
+T_constant_defs()
+ T_CTOR("#constant-defs",T_Enum::T_T_constant_defs_,0,false,false){}
+T_terminals_refs::
+T_terminals_refs()
+ T_CTOR("#terminals-refs",T_Enum::T_T_terminals_refs_,0,false,false){}
+T_terminals_sufx::
+T_terminals_sufx()
+ T_CTOR("#terminals-sufx",T_Enum::T_T_terminals_sufx_,0,false,false){}
+T_lrk_sufx::
+T_lrk_sufx()
+ T_CTOR("#lrk-sufx",T_Enum::T_T_lrk_sufx_,0,false,false){}
+T_selector::
+T_selector()
+ T_CTOR("->",T_Enum::T_T_selector_,0,false,false){}
+T_NULL::
+T_NULL()
+ T_CTOR("#NULL",T_Enum::T_T_NULL_,0,false,false){}
+T_2colon::
+T_2colon()
+ T_CTOR("::",T_Enum::T_T_2colon_,0,false,false){}
+
+ T_block::
+ T_block(yacco2::AST* Ast)
+ T_CTOR("block",T_Enum::T_T_block_,&dtor_T_block,false,true)
+ {ast_ = Ast;}
+ yacco2::AST* T_block::ast(){return ast_;}
+ void T_block::dtor_T_block(yacco2::VOIDP This,yacco2::VOIDP P){
+ bool ABORT_STATUS = ((yacco2::Parser*)P)->top_stack_record()->aborted__;
+ T_block* R = (T_block*)(This);
+
+ if(ABORT_STATUS == true){
+ yacco2::AST::zero_content(*R->ast());// break dbl delete of self
+ yacco2::AST::ast_delete(*R->ast(),ABORT_STATUS);
+ }
+
+}
+
+ T_syntax_code::T_syntax_code(const char* Syntax_code)
+ T_CTOR("syntax-code",T_Enum::T_T_syntax_code_,0,false,false)
+ {syntax_code_ += Syntax_code;
+ cweb_marker_=0;}
+ std::string* T_syntax_code::syntax_code(){return &syntax_code_;}
+ void T_syntax_code::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+ AST* T_syntax_code::cweb_marker(){
+ return cweb_marker_;
+ }
+
+ T_fsm_class_phrase::T_fsm_class_phrase()
+T_CTOR("fsm-class-phrase",T_Enum::T_T_fsm_class_phrase_,&dtor_T_fsm_class_phrase,false,false)
+ {identifier_ = 0;phrase_tree_=0;}
+
+ void T_fsm_class_phrase::phrase_tree(AST* Tree){phrase_tree_=Tree;}
+ AST* T_fsm_class_phrase::phrase_tree(){return phrase_tree_;}
+
+ T_identifier* T_fsm_class_phrase::identifier(){return identifier_;}
+ void T_fsm_class_phrase::identifier(T_identifier* Id){identifier_ = Id;}
+
+ std::map<string,CAbs_lr1_sym*>*
+ T_fsm_class_phrase::directives_map(){
+ return &directives_map_;
+ }
+
+ void T_fsm_class_phrase::remove_directives_from_map(){
+ std::map<std::string,CAbs_lr1_sym*>::iterator i = directives_map_.begin();
+ std::map<std::string,CAbs_lr1_sym*>::iterator ie = directives_map_.end();
+ for(;i != ie;++i){
+ CAbs_lr1_sym* sym = i->second;
+ delete sym;
+ }
+ }
+
+ CAbs_lr1_sym* // 0 - ok, or error
+ T_fsm_class_phrase::
+ add_directive_to_map(CAbs_lr1_sym* Directive,yacco2::Parser* P){
+ std::map<std::string,CAbs_lr1_sym*>::iterator i;
+ string key(Directive->id__);
+ i = directives_map_.find(key);
+ if(i == directives_map_.end()){
+ directives_map_[key] = Directive;
+ return 0;
+ }
+ CAbs_lr1_sym* sym = new Err_duplicate_directive;
+ sym->set_rc(*Directive,__FILE__,__LINE__);
+ remove_directives_from_map();
+ return sym;
+ }
+ void T_fsm_class_phrase::dtor_T_fsm_class_phrase(yacco2::VOIDP This,yacco2::VOIDP P){
+ T_fsm_class_phrase* R = (T_fsm_class_phrase*)(This);
+
+ if(R->identifier_ != 0)
+ delete R->identifier_;
+ R->remove_directives_from_map();
+
+}
+
+ T_fsm_phrase::T_fsm_phrase()
+ T_CTOR("fsm-phrase",T_Enum::T_T_fsm_phrase_,&dtor_T_fsm_phrase,false,false)
+ {fsm_id_ = 0;
+ filename_id_ = 0;
+ namespace_id_ = 0;
+ fsm_class_phrase_ = 0;
+ version_ = 0;
+ date_ = 0;
+ debug_ = 0;
+ comment_ = 0;
+ phrase_tree_=0;
+ cweb_marker_=0;
+ }
+
+ void T_fsm_phrase::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+ AST* T_fsm_phrase::cweb_marker(){
+ return cweb_marker_;
+ }
+
+ void T_fsm_phrase::phrase_tree(AST* Tree){phrase_tree_=Tree;}
+ AST* T_fsm_phrase::phrase_tree(){return phrase_tree_;}
+
+ T_c_string* T_fsm_phrase::fsm_id(){return fsm_id_;}
+ void T_fsm_phrase::fsm_id(T_c_string* Id){fsm_id_ = Id;}
+ T_identifier* T_fsm_phrase::filename_id(){return filename_id_;}
+ void T_fsm_phrase::filename_id(T_identifier* Id){filename_id_ = Id;}
+ T_identifier* T_fsm_phrase::namespace_id(){return namespace_id_;}
+ void T_fsm_phrase::namespace_id(T_identifier* Id){namespace_id_ = Id;}
+
+ T_fsm_class_phrase* T_fsm_phrase::fsm_class_phrase(){return fsm_class_phrase_;}
+ void T_fsm_phrase::fsm_class_phrase(T_fsm_class_phrase* Id)
+ {fsm_class_phrase_ = Id;}
+
+
+ T_c_string* T_fsm_phrase::version(){return version_;}
+ void T_fsm_phrase::version(T_c_string* Id){version_ = Id;}
+ T_c_string* T_fsm_phrase::date(){return date_;}
+ void T_fsm_phrase::date(T_c_string* Id){date_ = Id;}
+ T_c_string* T_fsm_phrase::debug(){return debug_;}
+ void T_fsm_phrase::debug(T_c_string* Id){debug_ = Id;}
+ T_c_string* T_fsm_phrase::comment(){return comment_;}
+ void T_fsm_phrase::comment(T_c_string* Id){comment_ = Id;}
+ void T_fsm_phrase::dtor_T_fsm_phrase(yacco2::VOIDP This,yacco2::VOIDP P){
+ T_fsm_phrase* R = (T_fsm_phrase*)(This);
+
+ delete R->fsm_id_;
+ delete R->filename_id_;
+ delete R->namespace_id_;
+ delete R->fsm_class_phrase_;
+ delete R->version_;
+ delete R->date_;
+ delete R->debug_;
+ delete R->comment_;
+
+}
+
+ T_parallel_parser_phrase::T_parallel_parser_phrase()
+ T_CTOR("parallel-parser-phrase",T_Enum::T_T_parallel_parser_phrase_,&dtor_T_parallel_parser_phrase,false,false)
+ {phrase_tree_=0;cweb_marker_=0;}
+
+ void T_parallel_parser_phrase::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+
+ AST* T_parallel_parser_phrase::cweb_marker(){
+ return cweb_marker_;
+ }
+
+ void T_parallel_parser_phrase::phrase_tree(AST* Tree){phrase_tree_=Tree;}
+ AST* T_parallel_parser_phrase::phrase_tree(){return phrase_tree_;}
+
+ T_parallel_thread_function* T_parallel_parser_phrase::pp_funct(){
+ return pp_funct_;
+ }
+ void T_parallel_parser_phrase::pp_funct(T_parallel_thread_function* PP_fnct){
+ pp_funct_ = PP_fnct;
+ }
+ T_parallel_la_boundary* T_parallel_parser_phrase::la_bndry(){
+ return la_bndry_;
+ }
+ void T_parallel_parser_phrase::la_bndry(T_parallel_la_boundary* La_bndry){
+ la_bndry_ = La_bndry;
+ }
+ void T_parallel_parser_phrase::dtor_T_parallel_parser_phrase(yacco2::VOIDP This,yacco2::VOIDP P){
+ T_parallel_parser_phrase* R = (T_parallel_parser_phrase*)(This);
+
+ delete R->la_bndry_;
+ delete R->pp_funct_;
+
+}
+
+ T_enum_phrase::T_enum_phrase()
+ T_CTOR("T-enum-phrase",T_Enum::T_T_enum_phrase_,&dtor_T_enum_phrase,false,false)
+ {kdefs_ = 0;phrase_tree_=0;cweb_marker_=0;}
+
+ void T_enum_phrase::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+
+ AST* T_enum_phrase::cweb_marker(){
+ return cweb_marker_;
+ }
+
+ void T_enum_phrase::phrase_tree(AST* Tree){phrase_tree_=Tree;}
+ AST* T_enum_phrase::phrase_tree(){return phrase_tree_;}
+
+ T_identifier* T_enum_phrase::filename_id(){return filename_id_;}
+ void T_enum_phrase::filename_id(T_identifier* Id){filename_id_ = Id;}
+ T_identifier* T_enum_phrase::namespace_id(){return namespace_id_;}
+ void T_enum_phrase::namespace_id(T_identifier* Id){namespace_id_ = Id;}
+
+ T_syntax_code*
+ T_enum_phrase::kdefs(){return kdefs_;}
+
+ void T_enum_phrase::kdefs(T_syntax_code* Kdefs){
+ kdefs_ = Kdefs;
+ }
+ void T_enum_phrase::start_lrk_enumerate(int Enum){start_lrk_enumerate_ = Enum;}
+ void T_enum_phrase::stop_lrk_enumerate(int Enum){stop_lrk_enumerate_ = Enum;}
+ int T_enum_phrase::start_lrk_enumerate(){return start_lrk_enumerate_;}
+ int T_enum_phrase::stop_lrk_enumerate(){return stop_lrk_enumerate_;}
+ void T_enum_phrase::start_err_enumerate(int Enum){start_err_enumerate_ = Enum;}
+ void T_enum_phrase::stop_err_enumerate(int Enum){stop_err_enumerate_ = Enum;}
+ int T_enum_phrase::start_err_enumerate(){return start_err_enumerate_;}
+ int T_enum_phrase::stop_err_enumerate(){return stop_err_enumerate_;}
+ void T_enum_phrase::start_rc_enumerate(int Enum){start_rc_enumerate_ = Enum;}
+ void T_enum_phrase::stop_rc_enumerate(int Enum){stop_rc_enumerate_ = Enum;}
+ int T_enum_phrase::start_rc_enumerate(){return start_rc_enumerate_;}
+ int T_enum_phrase::stop_rc_enumerate(){return stop_rc_enumerate_;}
+ void T_enum_phrase::start_T_enumerate(int Enum){start_T_enumerate_ = Enum;}
+ void T_enum_phrase::stop_T_enumerate(int Enum){stop_T_enumerate_ = Enum;}
+ int T_enum_phrase::start_T_enumerate(){return start_T_enumerate_;}
+ int T_enum_phrase::stop_T_enumerate(){return stop_T_enumerate_;}
+ void T_enum_phrase::total_enumerate(int Enum){total_enumerate_ = Enum;}
+ int T_enum_phrase::total_enumerate(){return total_enumerate_;}
+
+ void T_enum_phrase::total_T_enumerate(int Enum){total_T_enumerate_ = Enum;}
+ int T_enum_phrase::total_T_enumerate(){return total_T_enumerate_;}
+ void T_enum_phrase::total_rc_enumerate(int Enum){total_rc_enumerate_ = Enum;}
+ int T_enum_phrase::total_rc_enumerate(){return total_rc_enumerate_;}
+ void T_enum_phrase::total_err_enumerate(int Enum){total_err_enumerate_ = Enum;}
+ int T_enum_phrase::total_err_enumerate(){return total_err_enumerate_;}
+ void T_enum_phrase::total_lrk_enumerate(int Enum){total_lrk_enumerate_ = Enum;}
+ int T_enum_phrase::total_lrk_enumerate(){return total_lrk_enumerate_;}
+ int T_enum_phrase::total_no_subrules(){return total_no_subrules_;}
+ void T_enum_phrase::total_no_subrules(int Total_subrules){
+ total_no_subrules_ = Total_subrules;
+ }
+ void T_enum_phrase::dtor_T_enum_phrase(yacco2::VOIDP This,yacco2::VOIDP P){
+ T_enum_phrase* R = (T_enum_phrase*)(This);
+
+ delete R->filename_id_;
+ delete R->namespace_id_;
+ delete R->kdefs_;
+
+}
+
+ T_terminal_def::T_terminal_def()
+T_CTOR("terminal-def",T_Enum::T_T_terminal_def_,&dtor_T_terminal_def,false,false)
+ {auto_delete_ = false;
+ auto_abort_ = false;
+ classification_ = T_terminal_def::not_classed;
+ cweb_marker_ = 0;
+ enum_id_ = -1;
+ }
+ void T_terminal_def::enum_id(int Id){enum_id_=Id;}
+ int T_terminal_def::enum_id(){return enum_id_;}
+ void T_terminal_def::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+
+ AST* T_terminal_def::cweb_marker(){
+ return cweb_marker_;
+ }
+
+ map<std::string,CAbs_lr1_sym*>*
+ T_terminal_def::directives_map(){
+ return &directives_map_;
+ }
+
+ void T_terminal_def::remove_directives_from_map(){
+ std::map<std::string,CAbs_lr1_sym*>::iterator i = directives_map_.begin();
+ std::map<std::string,CAbs_lr1_sym*>::iterator ie = directives_map_.end();
+ for(;i != ie;++i){
+ CAbs_lr1_sym* sym = i->second;
+ delete sym;
+ }
+ }
+
+ CAbs_lr1_sym* // 0 - ok, or error
+ T_terminal_def::
+ add_directive_to_map(CAbs_lr1_sym* Directive,yacco2::Parser* P){
+ map<std::string,CAbs_lr1_sym*>::iterator i;
+ std::string key(Directive->id__);
+ i = directives_map_.find(key);
+ if(i == directives_map_.end()){
+ directives_map_[key] = Directive;
+ return 0;
+ }
+ CAbs_lr1_sym* sym = new Err_duplicate_directive;
+ sym->set_rc(*Directive,__FILE__,__LINE__);
+ remove_directives_from_map();
+ return sym;
+ }
+
+ std::string* T_terminal_def::t_name(){return &t_name_;}
+ void T_terminal_def::t_name(const char* Id){t_name_ += Id;}
+
+ std::string* T_terminal_def::classsym(){return &class_sym_;}
+ void T_terminal_def::classsym(const char* Id){class_sym_ += Id;}
+
+ bool T_terminal_def::autodelete(){return auto_delete_;}
+ void T_terminal_def::autodelete(bool Ton){auto_delete_ = Ton;}
+
+ bool T_terminal_def::autoabort(){return auto_abort_;}
+ void T_terminal_def::autoabort(bool Ton){auto_abort_ = Ton;}
+
+ T_terminal_def::classification_typ
+ T_terminal_def::classification(){return classification_;}
+ void
+ T_terminal_def::classification(T_terminal_def::classification_typ C)
+ {classification_ = C;}
+ void T_terminal_def::dtor_T_terminal_def(yacco2::VOIDP This,yacco2::VOIDP P){
+ T_terminal_def* R = (T_terminal_def*)(This);
+
+ R->remove_directives_from_map();
+
+}
+
+ table_entry::
+ table_entry()
+ T_CTOR("symbol-table",T_Enum::T_table_entry_,0,false,false)
+ {vacant_ = true;
+ defined_ = false;
+ used_ = false;
+ type_ = table_entry::unknown;
+ symbol_ = 0;
+ key_ = 0;
+ pos_ = -1;
+ key_len_ = 0;
+ }
+
+ T_sym_tbl_report_card::
+ T_sym_tbl_report_card()
+ T_CTOR("sym-tbl-report-card",T_Enum::T_T_sym_tbl_report_card_,0,false,false)
+ {status_ = okay;
+ action_ = unknown;
+ tbl_entry_ = 0;
+ pos_ = 0;
+ key_len_ = 0;
+ }
+
+ T_terminals_phrase::T_terminals_phrase()
+T_CTOR("terminals-phrase",T_Enum::T_T_terminals_phrase_,&dtor_T_terminals_phrase,false,false)
+ {terminals_refs_code_ = 0;
+ terminals_sufx_code_ = 0;
+ phrase_tree_=0;
+ cweb_marker_=0;
+ }
+
+ void T_terminals_phrase::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+
+ AST* T_terminals_phrase::cweb_marker(){
+ return cweb_marker_;
+ }
+
+ void T_terminals_phrase::phrase_tree(AST* Tree){phrase_tree_=Tree;}
+ AST* T_terminals_phrase::phrase_tree(){return phrase_tree_;}
+
+ T_identifier* T_terminals_phrase::filename_id(){return filename_id_;}
+ void T_terminals_phrase::filename_id(T_identifier* Id){filename_id_ = Id;}
+ T_identifier* T_terminals_phrase::namespace_id(){return namespace_id_;}
+ void T_terminals_phrase::namespace_id(T_identifier* Id){namespace_id_ = Id;}
+
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*>*
+ T_terminals_phrase::alphabet(){
+ return &alphabet_;
+ }
+ std::vector<T_terminal_def*>*
+ T_terminals_phrase::
+ crt_order(){return &crt_order_;}
+
+ void T_terminals_phrase::destroy_alphabet(){
+ std::vector<T_terminal_def*>::iterator i = crt_order_.begin();
+ std::vector<T_terminal_def*>::iterator ie = crt_order_.end();
+ for(;i != ie;++i){
+ CAbs_lr1_sym* sym = *i;
+ delete sym;
+ }
+ alphabet_.clear();
+ }
+
+ CAbs_lr1_sym*
+ T_terminals_phrase::
+ add_t_to_alphabet(T_terminal_def* T,yacco2::Parser* P){
+ string key(T->t_name()->c_str());
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*>::iterator i = alphabet_.find(key);
+ if(i != alphabet_.end()){
+ CAbs_lr1_sym* sym = new Err_dup_entry_in_alphabet;
+ sym->set_rc(*T,__FILE__,__LINE__);
+ return sym;
+ }
+ alphabet_[key] = T;
+ crt_order_.push_back(T);
+ return 0;
+ }
+
+ T_syntax_code*
+ T_terminals_phrase::
+ terminals_refs_code(){return terminals_refs_code_;}
+
+ void
+ T_terminals_phrase::
+ terminals_refs_code(T_syntax_code* Code){
+ terminals_refs_code_ = Code;
+ }
+
+ T_syntax_code*
+ T_terminals_phrase::
+ terminals_sufx_code(){return terminals_sufx_code_;}
+
+ void
+ T_terminals_phrase::
+ terminals_sufx_code(T_syntax_code* Code){
+ terminals_sufx_code_ = Code;
+ }
+ void T_terminals_phrase::dtor_T_terminals_phrase(yacco2::VOIDP This,yacco2::VOIDP P){
+ T_terminals_phrase* R = (T_terminals_phrase*)(This);
+
+ R->destroy_alphabet();
+ delete R->filename_id_;
+ delete R->namespace_id_;
+ delete R->terminals_refs_code_;
+ delete R->terminals_sufx_code_;
+
+}
+
+ T_error_symbols_phrase::T_error_symbols_phrase()
+T_CTOR("error-symbols-phrase",T_Enum::T_T_error_symbols_phrase_,&dtor_T_error_symbols_phrase,false,false)
+ {phrase_tree_=0;cweb_marker_=0;}
+
+ void T_error_symbols_phrase::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+
+ AST* T_error_symbols_phrase::cweb_marker(){
+ return cweb_marker_;
+ }
+
+ void T_error_symbols_phrase::phrase_tree(AST* Tree){phrase_tree_=Tree;}
+ AST* T_error_symbols_phrase::phrase_tree(){return phrase_tree_;}
+
+ T_identifier* T_error_symbols_phrase::filename_id(){return filename_id_;}
+ void T_error_symbols_phrase::filename_id(T_identifier* Id){filename_id_ = Id;}
+ T_identifier* T_error_symbols_phrase::namespace_id(){return namespace_id_;}
+ void T_error_symbols_phrase::namespace_id(T_identifier* Id){namespace_id_ = Id;}
+
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*>*
+ T_error_symbols_phrase::alphabet(){
+ return &alphabet_;
+ }
+
+ std::vector<T_terminal_def*>*
+ T_error_symbols_phrase::
+ crt_order(){return &crt_order_;}
+
+ void T_error_symbols_phrase::destroy_alphabet(){
+ std::vector<T_terminal_def*>::iterator i = crt_order_.begin();
+ std::vector<T_terminal_def*>::iterator ie = crt_order_.end();
+ for(;i != ie;++i){
+ CAbs_lr1_sym* sym = *i;
+ delete sym;
+ }
+ alphabet_.clear();
+ }
+
+ CAbs_lr1_sym*
+ T_error_symbols_phrase::
+ add_t_to_alphabet(T_terminal_def* T,yacco2::Parser* P){
+ std::string key(T->t_name()->c_str());
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*>::iterator i = alphabet_.find(key);
+ if(i != alphabet_.end()){
+ CAbs_lr1_sym* sym = new Err_dup_entry_in_alphabet;
+ sym->set_rc(*T,__FILE__,__LINE__);
+ return sym;
+ }
+ alphabet_[key] = T;
+ crt_order_.push_back(T);
+ return 0;
+ }
+ void T_error_symbols_phrase::dtor_T_error_symbols_phrase(yacco2::VOIDP This,yacco2::VOIDP P){
+ T_error_symbols_phrase* R = (T_error_symbols_phrase*)(This);
+
+ R->destroy_alphabet();
+ delete R->filename_id_;
+ delete R->namespace_id_;
+
+}
+
+ T_lr1_k_phrase::T_lr1_k_phrase()
+ T_CTOR("lr1-k-phrase",T_Enum::T_T_lr1_k_phrase_,&dtor_T_lr1_k_phrase,false,false)
+ {lrk_sufx_code_ = 0;phrase_tree_=0;cweb_marker_=0;}
+
+ void T_lr1_k_phrase::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+
+ AST* T_lr1_k_phrase::cweb_marker(){
+ return cweb_marker_;
+ }
+
+ void T_lr1_k_phrase::phrase_tree(AST* Tree){phrase_tree_=Tree;}
+ AST* T_lr1_k_phrase::phrase_tree(){return phrase_tree_;}
+
+ T_identifier* T_lr1_k_phrase::filename_id(){return filename_id_;}
+ void T_lr1_k_phrase::filename_id(T_identifier* Id){filename_id_ = Id;}
+ T_identifier* T_lr1_k_phrase::namespace_id(){return namespace_id_;}
+ void T_lr1_k_phrase::namespace_id(T_identifier* Id){namespace_id_ = Id;}
+
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*>*
+ T_lr1_k_phrase::alphabet(){
+ return &alphabet_;
+ }
+
+ std::vector<T_terminal_def*>*
+ T_lr1_k_phrase::
+ crt_order(){return &crt_order_;}
+
+ void T_lr1_k_phrase::destroy_alphabet(){
+ std::vector<T_terminal_def*>::iterator i = crt_order_.begin();
+ std::vector<T_terminal_def*>::iterator ie = crt_order_.end();
+ for(;i != ie;++i){
+ CAbs_lr1_sym* sym = *i;
+ delete sym;
+ }
+ alphabet_.clear();
+ }
+
+ CAbs_lr1_sym*
+ T_lr1_k_phrase::
+ add_t_to_alphabet(T_terminal_def* T,yacco2::Parser* P){
+ std::string key(T->t_name()->c_str());
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*>::iterator i = alphabet_.find(key);
+ if(i != alphabet_.end()){
+ CAbs_lr1_sym* sym = new Err_dup_entry_in_alphabet;
+ sym->set_rc(*T,__FILE__,__LINE__);
+ return sym;
+ }
+ alphabet_[key] = T;
+ crt_order_.push_back(T);
+ return 0;
+ }
+ T_syntax_code*
+ T_lr1_k_phrase::
+ lrk_sufx_code(){return lrk_sufx_code_;}
+
+ void
+ T_lr1_k_phrase::
+ lrk_sufx_code(T_syntax_code* Code){
+ lrk_sufx_code_ = Code;
+ }
+ void T_lr1_k_phrase::dtor_T_lr1_k_phrase(yacco2::VOIDP This,yacco2::VOIDP P){
+ T_lr1_k_phrase* R = (T_lr1_k_phrase*)(This);
+
+ R->destroy_alphabet();
+ delete R->filename_id_;
+ delete R->namespace_id_;
+ delete R->lrk_sufx_code_;
+
+}
+
+ T_rc_phrase::T_rc_phrase()
+ T_CTOR("rc-phrase",T_Enum::T_T_rc_phrase_,&dtor_T_rc_phrase,false,false)
+ {phrase_tree_=0;cweb_marker_=0;}
+
+ void T_rc_phrase::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+
+ AST* T_rc_phrase::cweb_marker(){
+ return cweb_marker_;
+ }
+
+ void T_rc_phrase::phrase_tree(AST* Tree){phrase_tree_=Tree;}
+ AST* T_rc_phrase::phrase_tree(){return phrase_tree_;}
+
+ T_identifier* T_rc_phrase::filename_id(){return filename_id_;}
+ void T_rc_phrase::filename_id(T_identifier* Id){filename_id_ = Id;}
+ T_identifier* T_rc_phrase::namespace_id(){return namespace_id_;}
+ void T_rc_phrase::namespace_id(T_identifier* Id){namespace_id_ = Id;}
+
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*>*
+ T_rc_phrase::alphabet(){
+ return &alphabet_;
+ }
+
+ std::vector<T_terminal_def*>*
+ T_rc_phrase::
+ crt_order(){return &crt_order_;}
+
+ void T_rc_phrase::destroy_alphabet(){
+ std::vector<T_terminal_def*>::iterator i = crt_order_.begin();
+ std::vector<T_terminal_def*>::iterator ie = crt_order_.end();
+ for(;i != ie;++i){
+ CAbs_lr1_sym* sym = *i;
+ delete sym;
+ }
+ alphabet_.clear();
+ }
+
+ CAbs_lr1_sym*
+ T_rc_phrase::
+ add_t_to_alphabet(T_terminal_def* T,yacco2::Parser* P){
+ std::string key(T->t_name()->c_str());
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*>::iterator i = alphabet_.find(key);
+ if(i != alphabet_.end()){
+ CAbs_lr1_sym* sym = new Err_dup_entry_in_alphabet;
+ sym->set_rc(*T,__FILE__,__LINE__);
+ return sym;
+ }
+ alphabet_[key] = T;
+ crt_order_.push_back(T);
+ return 0;
+ }
+ void T_rc_phrase::dtor_T_rc_phrase(yacco2::VOIDP This,yacco2::VOIDP P){
+ T_rc_phrase* R = (T_rc_phrase*)(This);
+
+ R->destroy_alphabet();
+ delete R->filename_id_;
+ delete R->namespace_id_;
+
+}
+
+ T_rule_lhs_phrase::T_rule_lhs_phrase()
+T_CTOR("rule-lhs-phrase",T_Enum::T_T_rule_lhs_phrase_,&dtor_T_rule_lhs_phrase,false,false)
+ {phrase_tree_=0;cweb_marker_=0;}
+
+
+ void T_rule_lhs_phrase::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+
+ AST* T_rule_lhs_phrase::cweb_marker(){
+ return cweb_marker_;
+ }
+
+ void T_rule_lhs_phrase::phrase_tree(AST* Tree){phrase_tree_=Tree;}
+ AST* T_rule_lhs_phrase::phrase_tree(){return phrase_tree_;}
+
+ map<std::string,CAbs_lr1_sym*>*
+ T_rule_lhs_phrase::lhs_directives_map(){
+ return &lhs_directives_map_;
+ }
+
+ void T_rule_lhs_phrase::remove_lhs_directives(){
+ std::map<std::string,CAbs_lr1_sym*>::iterator i = lhs_directives_map_.begin();
+ std::map<std::string,CAbs_lr1_sym*>::iterator ie = lhs_directives_map_.end();
+ for(;i != ie;++i){
+ CAbs_lr1_sym* sym = i->second;
+ delete sym;
+ }
+ }
+
+ CAbs_lr1_sym* // 0 - ok, or error
+ T_rule_lhs_phrase::
+ add_directive_to_lhs(CAbs_lr1_sym* Directive,yacco2::Parser* P){
+ map<std::string,CAbs_lr1_sym*>::iterator i;
+ string key(Directive->id__);
+ i = lhs_directives_map_.find(key);
+ if(i == lhs_directives_map_.end()){
+ lhs_directives_map_[key] = Directive;
+ return 0;
+ }
+ CAbs_lr1_sym* sym = new Err_duplicate_directive;
+ sym->set_rc(*Directive,__FILE__,__LINE__);
+ remove_lhs_directives();
+ return sym;
+ }
+ void T_rule_lhs_phrase::dtor_T_rule_lhs_phrase(yacco2::VOIDP This,yacco2::VOIDP P){
+ T_rule_lhs_phrase* R = (T_rule_lhs_phrase*)(This);
+
+ R->remove_lhs_directives();
+
+}
+
+ T_parallel_monitor_phrase::T_parallel_monitor_phrase()
+T_CTOR("parallel-monitor-phrase",T_Enum::T_T_parallel_monitor_phrase_,&dtor_T_parallel_monitor_phrase,false,false)
+ {phrase_tree_=0;}
+
+ void T_parallel_monitor_phrase::phrase_tree(AST* Tree){phrase_tree_=Tree;}
+ AST* T_parallel_monitor_phrase::phrase_tree(){return phrase_tree_;}
+
+ map<string,CAbs_lr1_sym*>*
+ T_parallel_monitor_phrase::mntr_directives_map(){
+ return &mntr_directives_map_;
+ }
+
+ void T_parallel_monitor_phrase::remove_mntr_directives(){
+ std::map<std::string,CAbs_lr1_sym*>::iterator i = mntr_directives_map_.begin();
+ std::map<std::string,CAbs_lr1_sym*>::iterator ie = mntr_directives_map_.end();
+ for(;i != ie;++i){
+ CAbs_lr1_sym* sym = i->second;
+ delete sym;
+ }
+ }
+
+ CAbs_lr1_sym* // 0 - ok, or error
+ T_parallel_monitor_phrase::
+ add_directive_to_mntr(CAbs_lr1_sym* Directive,yacco2::Parser* P){
+ map<std::string,CAbs_lr1_sym*>::iterator i;
+ std::string key(Directive->id__);
+ i = mntr_directives_map_.find(key);
+ if(i == mntr_directives_map_.end()){
+ mntr_directives_map_[key] = Directive;
+ return 0;
+ }
+ CAbs_lr1_sym* sym = new Err_duplicate_directive;
+ sym->set_rc(*Directive,__FILE__,__LINE__);
+ remove_mntr_directives();
+ return sym;
+ }
+ void T_parallel_monitor_phrase::dtor_T_parallel_monitor_phrase(yacco2::VOIDP This,yacco2::VOIDP P){
+ T_parallel_monitor_phrase* R = (T_parallel_monitor_phrase*)(This);
+
+ R->remove_mntr_directives();
+
+}
+
+ rule_def::rule_def(const char* Key)
+ T_CTOR("rule-def",T_Enum::T_rule_def_,&dtor_rule_def,false,false)
+ {auto_delete_ = false;
+ auto_abort_ = false;
+ rule_no_ = 0;//starts cnt at 1
+ recursive_ = NO;
+ lhs_use_cnt_ = 0;
+ rhs_use_cnt_ = 0;
+ rule_use_skeleton_ = 0;
+ parallel_mntr_ = 0;
+ subrules_ = 0;
+ rule_lhs_ = 0;
+ rule_name_ += Key;
+ epsilon_ = false;
+ derive_t_ = false;
+ cweb_marker_ = 0;
+ its_tree_ = 0;
+ enum_id_ = -1;
+ first_set_.clear();
+ }
+ std::set<rule_in_stbl*>* rule_def::closure_rules_making_up_first_set(){
+ return &closure_rules_making_up_first_set_;
+ }
+ AST* rule_def::rule_use_skeleton(){return rule_use_skeleton_;}
+ void rule_def::rule_use_skeleton(AST* Tree){rule_use_skeleton_ = Tree;}
+
+ std::map<T_in_stbl*,std::set<std::string*> >*
+ rule_def::rule_adding_T_in_first_set(){
+ return &rules_adding_T_in_first_set_;
+ }
+ int rule_def::rule_no(){return rule_no_;}
+ void rule_def::rule_no(int Rule_no){rule_no_ = Rule_no;}
+ bool rule_def::recursive(){return recursive_;}
+ void rule_def::recursive(bool Recursive){recursive_ = Recursive;}
+ int rule_def::lhs_use_cnt(){return lhs_use_cnt_;};
+ void rule_def::lhs_use_cnt(int Use_cnt){lhs_use_cnt_ = Use_cnt;}
+ int rule_def::rhs_use_cnt(){return rhs_use_cnt_;}
+ void rule_def::rhs_use_cnt(int Use_cnt){rhs_use_cnt_ = Use_cnt;}
+
+ void rule_def::add_closure_rule_making_up_first_set(rule_in_stbl* Rule){
+ if(closure_rules_making_up_first_set_.find(Rule)
+ !=
+ closure_rules_making_up_first_set_ .end()) return;
+ closure_rules_making_up_first_set_.insert(Rule);
+ }
+ void rule_def::add_rule_adding_T_in_first_set
+ (T_in_stbl* T,std::string* Rule_enumerate){
+ std::map<T_in_stbl*,std::set<std::string*> >::iterator i;
+ std::map<T_in_stbl*,std::set<std::string*> >::iterator ie;
+ ie = rules_adding_T_in_first_set_.end();
+ i = rules_adding_T_in_first_set_.find(T);
+ if(i == ie){
+ rules_adding_T_in_first_set_[T] = std::set<std::string*>();
+ i = rules_adding_T_in_first_set_.find(T);
+ i->second.insert(Rule_enumerate);
+ return;
+ }
+ i->second.insert(Rule_enumerate);
+ }
+
+ std::string* rule_def::grammar_s_enumerate(){
+ return &grammar_s_enumerate_;
+ }
+ void rule_def::grammar_s_enumerate(const char* Enumerate){
+ grammar_s_enumerate_+=Enumerate;
+ }
+
+ std::set<T_in_stbl*>* rule_def::first_set(){
+ return &first_set_;
+ }
+ std::set<T_called_thread_eosubrule*>* rule_def::called_thread_first_set(){
+ return &called_thread_first_set_;
+ }
+
+ void rule_def::add_to_first_set(T_in_stbl& T){
+ T_in_stbl* t = &T;
+ std::set<T_in_stbl*>::iterator i;
+ i = first_set_.find(t);
+ if(i == first_set_.end()){
+ first_set_.insert(t);
+ }
+ }
+ void rule_def::add_to_called_thread_first_set(T_called_thread_eosubrule* T){
+ std::set<T_called_thread_eosubrule*>::iterator i;
+ i = called_thread_first_set_.find(T);
+ if(i == called_thread_first_set_.end()){
+ called_thread_first_set_.insert(T);
+ }
+ }
+
+ void rule_def::enum_id(int Id){enum_id_=Id;}
+ int rule_def::enum_id(){return enum_id_;}
+ void rule_def::bld_its_tree(){
+ its_tree_ = new AST(*this);
+ T_subrules_phrase* subrules_ph = subrules();
+ std::vector<T_subrule_def*>* subrule_list = subrules_ph->subrules();
+ std::vector<T_subrule_def*>::iterator sri = subrule_list->begin();
+ std::vector<T_subrule_def*>::iterator srie = subrule_list->end();
+ AST* subrule_lvl = 0;
+ for(;sri!=srie;++sri){// walk subrules
+ T_subrule_def* srdef = *sri;
+ AST* srt = srdef->subrule_s_tree();
+ if(subrule_lvl == 0){
+ AST::crt_tree_of_1son(*its_tree_,*srt);
+ subrule_lvl = srt;
+ }else{ // subrule brothers
+ AST::join_sts(*subrule_lvl,*srt);
+ subrule_lvl = srt;
+ }
+ }
+ }
+
+ AST* rule_def::rule_s_tree(){
+ return its_tree_;
+ }
+
+ void rule_def::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+
+ AST* rule_def::cweb_marker(){
+ return cweb_marker_;
+ }
+
+ T_rule_lhs_phrase* rule_def::rule_lhs(){
+ return rule_lhs_;
+ }
+
+ void rule_def::rule_lhs(T_rule_lhs_phrase* Lhs){
+ rule_lhs_ = Lhs;
+ }
+
+ void rule_def::parallel_mntr(T_parallel_monitor_phrase* Mntr){
+ parallel_mntr_ = Mntr;
+ }
+
+ T_parallel_monitor_phrase* rule_def::parallel_mntr(){
+ return parallel_mntr_;
+ }
+
+ T_subrules_phrase* rule_def::subrules(){
+ return subrules_;
+ }
+
+ void rule_def::subrules(T_subrules_phrase* Subrules){
+ subrules_ = Subrules;
+ }
+
+ std::string* rule_def::rule_name(){return &rule_name_;}
+
+ bool rule_def::autodelete(){return auto_delete_;}
+ void rule_def::autodelete(bool Ton){auto_delete_ = Ton;}
+
+ bool rule_def::autoabort(){return auto_abort_;}
+ void rule_def::autoabort(bool Ton){auto_abort_ = Ton;}
+
+ bool rule_def::epsilon(){return epsilon_;}
+ void rule_def::epsilon(bool Ton){epsilon_ = Ton;}
+
+ bool rule_def::derive_t(){return derive_t_;}
+ void rule_def::derive_t(bool Ton){derive_t_ = Ton;}
+
+ void rule_def::dtor_rule_def(yacco2::VOIDP This,yacco2::VOIDP P){
+ rule_def* R = (rule_def*)(This);
+
+ delete R->parallel_mntr_;
+ delete R->rule_lhs_;
+ delete R->subrules_;
+
+}
+
+ T_rules_phrase::T_rules_phrase()
+T_CTOR("rules-phrase",T_Enum::T_T_rules_phrase_,&dtor_T_rules_phrase,false,false)
+ {phrase_tree_=0;cweb_marker_=0;}
+
+ void T_rules_phrase::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+
+ AST* T_rules_phrase::cweb_marker(){
+ return cweb_marker_;
+ }
+
+
+ void T_rules_phrase::phrase_tree(AST* Tree){phrase_tree_=Tree;}
+ AST* T_rules_phrase::phrase_tree(){return phrase_tree_;}
+
+ std::map<string,rule_def*>*
+ T_rules_phrase::rules_alphabet(){
+ return &rules_alphabet_;
+ }
+
+ void T_rules_phrase::destroy_rules_alphabet(){
+ std::vector<rule_def*>::iterator i = crt_order_.begin();
+ std::vector<rule_def*>::iterator ie = crt_order_.end();
+ for(;i != ie;++i){
+ CAbs_lr1_sym* sym = *i;
+ delete sym;
+ }
+ rules_alphabet_.clear();
+ }
+
+ CAbs_lr1_sym*
+ T_rules_phrase::
+ add_r_to_alphabet(rule_def* R,yacco2::Parser* P){
+ std::string key(R->rule_name()->c_str());
+ std::map<std::string,rule_def*>::iterator i = rules_alphabet_.find(key);
+ if(i != rules_alphabet_.end()){
+ CAbs_lr1_sym* sym = new Err_dup_entry_in_alphabet;
+ sym->set_rc(*R,__FILE__,__LINE__);
+ return sym;
+ }
+ rules_alphabet_[key] = R;
+ crt_order_.push_back(R);
+ return 0;
+ }
+ std::vector<rule_def*>*
+ T_rules_phrase::
+ crt_order(){return &crt_order_;}
+ void T_rules_phrase::dtor_T_rules_phrase(yacco2::VOIDP This,yacco2::VOIDP P){
+ T_rules_phrase* R = (T_rules_phrase*)(This);
+
+ R->destroy_rules_alphabet();
+
+}
+
+ T_subrule_def::T_subrule_def()
+T_CTOR("subrule-def",T_Enum::T_T_subrule_def_,&dtor_T_subrule_def,false,false)
+ {subrule_no_of_rule_ = 0;
+ no_of_elems_ = 0;
+ epsilon_ = false;
+ derive_t_ = false;
+ its_rule_def_ = 0;
+ cweb_marker_ = 0;
+ its_tree_ = 0;
+ its_grammar_s_pos_ = 0;
+ }
+ int T_subrule_def::its_grammar_s_pos(){return its_grammar_s_pos_;}
+ void T_subrule_def::its_grammar_s_pos(int Pos){its_grammar_s_pos_ = Pos;}
+ int T_subrule_def::subrule_no_of_rule(){
+ return subrule_no_of_rule_;
+ }
+ void T_subrule_def::subrule_no_of_rule(int Subrule_no){
+ subrule_no_of_rule_ = Subrule_no;
+ }
+
+ std::string* T_subrule_def::grammar_s_enumerate(){
+ return &grammar_s_enumerate_;
+ }
+ void T_subrule_def::grammar_s_enumerate(const char* Enumerate){
+ grammar_s_enumerate_+=Enumerate;
+ }
+
+ void T_subrule_def::bld_its_tree(){
+ its_tree_ = new AST(*this);
+ std::vector<CAbs_lr1_sym*>* element_list = subrule_elems();
+ std::vector<CAbs_lr1_sym*>::iterator ei = element_list->begin();
+ std::vector<CAbs_lr1_sym*>::iterator eie = element_list->end();
+ AST* element_lvl = 0;
+ for(;ei!=eie;++ei){// walk elements of subrule
+ CAbs_lr1_sym* elem_def = *ei;
+ AST* elemtt = new AST(*elem_def);
+ int id = elem_def->enumerated_id__;
+ using namespace NS_yacco2_terminals;
+ switch (id){
+ case T_Enum::T_refered_rule_: {
+ refered_rule* rrule = (refered_rule*)elem_def;
+ rrule->tree_node(elemtt);
+ break;
+ }
+ case T_Enum::T_T_eosubrule_: {
+ T_eosubrule* eos = (T_eosubrule*)elem_def;
+ eos->tree_node(elemtt);
+ break;
+ }
+ case T_Enum::T_refered_T_: {
+ refered_T* rt = (refered_T*)elem_def;
+ rt->tree_node(elemtt);
+ break;
+ }
+ }
+ if(element_lvl == 0){
+ AST::crt_tree_of_1son(*its_tree_,*elemtt);
+ element_lvl = elemtt;
+ }else{ // element brothers
+ AST::join_sts(*element_lvl,*elemtt);
+ element_lvl = elemtt;
+ }
+ }
+ }
+
+ AST* T_subrule_def::subrule_s_tree(){
+ return its_tree_;
+ }
+
+ void T_subrule_def::add_cweb_marker(AST* Cweb){
+ cweb_marker_ = Cweb;
+ }
+
+ AST* T_subrule_def::cweb_marker(){
+ return cweb_marker_;
+ }
+
+ rule_def* T_subrule_def::its_rule_def(){
+ return its_rule_def_;
+ }
+
+ void T_subrule_def::its_rule_def(rule_def* Its_rule_def){
+ its_rule_def_ = Its_rule_def;
+ }
+
+ std::vector<CAbs_lr1_sym*>* T_subrule_def::subrule_elems(){
+ return &subrule_elems_;
+ }
+
+ bool T_subrule_def::epsilon(){
+ return epsilon_;
+ }
+
+ void T_subrule_def::epsilon(bool Epsilon){
+ epsilon_ = Epsilon;
+ }
+
+ bool T_subrule_def::derive_t(){
+ return derive_t_;
+ }
+
+ void T_subrule_def::derive_t(bool Ton){
+ derive_t_ = Ton;
+ }
+
+ void T_subrule_def::
+ add_elem_to_subrule_vector(CAbs_lr1_sym* Elem){
+ ++no_of_elems_;
+ subrule_elems_.push_back(Elem);
+ }
+ int T_subrule_def::no_of_elems(){
+ return no_of_elems_;
+ }
+
+ map<std::string,CAbs_lr1_sym*>*
+ T_subrule_def::subrule_directives(){
+ return &subrule_directives_;
+ }
+
+ void T_subrule_def::remove_subrule_directives(){
+ std::map<std::string,CAbs_lr1_sym*>::iterator i = subrule_directives_.begin();
+ std::map<std::string,CAbs_lr1_sym*>::iterator ie = subrule_directives_.end();
+ for(;i != ie;++i){
+ CAbs_lr1_sym* sym = i->second;
+ delete sym;
+ }
+ }
+
+ CAbs_lr1_sym* // 0 - ok, or error
+ T_subrule_def::
+ add_directive_to_subrule(CAbs_lr1_sym* Directive,yacco2::Parser* P){
+ std::map<std::string,CAbs_lr1_sym*>::iterator i;
+ std::string key(Directive->id__);
+ i = subrule_directives_.find(key);
+ if(i == subrule_directives_.end()){
+ subrule_directives_[key] = Directive;
+ return 0;
+ }
+ CAbs_lr1_sym* sym = new Err_duplicate_directive;
+ sym->set_rc(*Directive,__FILE__,__LINE__);
+ remove_subrule_directives();
+ return sym;
+ }
+ void T_subrule_def::remove_subrule_elems_from_vector(){
+ std::vector<CAbs_lr1_sym*>::iterator i = subrule_elems_.begin();
+ std::vector<CAbs_lr1_sym*>::iterator ie = subrule_elems_.end();
+ for(;i != ie;++i){
+ delete *i;
+ }
+ }
+ void T_subrule_def::dtor_T_subrule_def(yacco2::VOIDP This,yacco2::VOIDP P){
+ T_subrule_def* R = (T_subrule_def*)(This);
+
+ R->remove_subrule_directives();
+ R->remove_subrule_elems_from_vector();
+
+}
+
+ T_subrules_phrase::T_subrules_phrase()
+T_CTOR("subrules-phrase",T_Enum::T_T_subrules_phrase_,&dtor_T_subrules_phrase,false,false)
+ {no_subrules_ = 0;phrase_tree_=0;}
+ void T_subrules_phrase::phrase_tree(AST* Tree){phrase_tree_=Tree;}
+ AST* T_subrules_phrase::phrase_tree(){return phrase_tree_;}
+
+ int T_subrules_phrase::no_subrules(){
+ return no_subrules_;
+ }
+ std::vector<T_subrule_def*>*
+ T_subrules_phrase::subrules(){
+ return &subrules_;
+ }
+
+ void T_subrules_phrase::destroy_subrules(){
+ std::vector<T_subrule_def*>::iterator i = subrules_.begin();
+ std::vector<T_subrule_def*>::iterator ie = subrules_.end();
+ for(;i != ie;++i){
+ CAbs_lr1_sym* sym = *i;
+ delete sym;
+ }
+ }
+
+ void
+ T_subrules_phrase::
+ add_sr_to_subrules(T_subrule_def* R){
+ ++no_subrules_;
+ subrules_.push_back(R);
+ }
+ void T_subrules_phrase::dtor_T_subrules_phrase(yacco2::VOIDP This,yacco2::VOIDP P){
+ T_subrules_phrase* R = (T_subrules_phrase*)(This);
+
+ R->destroy_subrules();
+
+}
+
+T_in_stbl::T_in_stbl(T_terminal_def* Fnd_T_in_stbl,CAbs_lr1_sym* Rc,yacco2::Parser* P)
+ T_CTOR("T-in-stbl",T_Enum::T_T_in_stbl_,0,false,false)
+ {t_def_ = Fnd_T_in_stbl;
+ set_rc(*Rc,__FILE__,__LINE__);// set its source co-ordinates
+ stbl_idx_ = -1;
+ }
+ T_terminal_def* T_in_stbl::t_def(){
+ return t_def_;
+ }
+ std::list<refered_T*>* T_in_stbl::xref_t(){
+ return &xref_t_;;
+ }
+ void T_in_stbl::add_T_into_xref(refered_T& T){
+ xref_t_.push_back(&T);
+ }
+ void T_in_stbl::stbl_idx(yacco2::UINT Idx){stbl_idx_ = Idx;}
+ int T_in_stbl::stbl_idx(){return stbl_idx_;}
+
+ refered_T::refered_T(T_in_stbl& Term_in_stbl)
+ T_CTOR("refered-T",T_Enum::T_refered_T_,0,false,false)
+ {t_in_stbl_ = &Term_in_stbl;
+ its_subrule_def_ = 0;
+ tree_node_ = 0;
+ element_pos_ = 0;
+ }
+ int refered_T::element_pos(){return element_pos_;}
+ void refered_T::element_pos(int Pos){element_pos_ = Pos;}
+
+ T_terminal_def* refered_T::its_t_def(){
+ return t_in_stbl_->t_def();
+ }
+ rule_def* refered_T::its_rule_def(){
+ return its_subrule_def_->its_rule_def();
+ }
+ AST* refered_T::tree_node(){
+ return tree_node_;
+ }
+ void refered_T::tree_node(AST* Tree_node){
+ tree_node_ = Tree_node;
+ }
+ std::string* refered_T::grammar_s_enumerate(){
+ return &grammar_s_enumerate_;
+ }
+ void refered_T::grammar_s_enumerate(const char* Enumerate){
+ grammar_s_enumerate_+=Enumerate;
+ }
+
+ T_in_stbl* refered_T::t_in_stbl(){
+ return t_in_stbl_;
+ }
+
+ T_subrule_def* refered_T::its_subrule_def(){
+ return its_subrule_def_;
+ }
+
+ void refered_T::its_subrule_def(T_subrule_def* Its_subrule){
+ its_subrule_def_ = Its_subrule;
+ }
+
+ rule_in_stbl::rule_in_stbl(rule_def& Rule_def)
+ T_CTOR("rule-in-stbl",T_Enum::T_rule_in_stbl_,0,false,false)
+ {r_def_ = &Rule_def;
+ stbl_idx_ = -1;
+ }
+ rule_def* rule_in_stbl::r_def(){
+ return r_def_;
+ }
+ std::list<refered_rule*>* rule_in_stbl::xref_r(){
+ return &xref_r_;;
+ }
+ void rule_in_stbl::add_R_into_xref(refered_rule& R){
+ xref_r_.push_back(&R);
+ }
+ void rule_in_stbl::stbl_idx(yacco2::UINT Idx){stbl_idx_ = Idx;}
+ int rule_in_stbl::stbl_idx(){return stbl_idx_;}
+
+ refered_rule::refered_rule(rule_in_stbl& Rule_in_stbl)
+ T_CTOR("refered-rule",T_Enum::T_refered_rule_,0,false,false)
+ {rule_in_stbl_ = &Rule_in_stbl;
+ its_subrule_def_ = 0;
+ tree_node_ = 0;
+ element_pos_ = 0;
+ }
+ int refered_rule::element_pos(){return element_pos_;}
+ void refered_rule::element_pos(int Pos){element_pos_ = Pos;}
+ rule_def* refered_rule::its_rule_def(){
+ return rule_in_stbl_->r_def();
+ }
+ AST* refered_rule::tree_node(){
+ return tree_node_;
+ }
+ void refered_rule::tree_node(AST* Tree_node){
+ tree_node_ = Tree_node;
+ }
+ std::string* refered_rule::grammar_s_enumerate(){
+ return &grammar_s_enumerate_;
+ }
+ void refered_rule::grammar_s_enumerate(const char* Enumerate){
+ grammar_s_enumerate_+=Enumerate;
+ }
+
+ T_subrule_def* refered_rule::its_subrule_def(){
+ return its_subrule_def_;
+ }
+
+ void refered_rule::its_subrule_def(T_subrule_def* Its_subrule){
+ its_subrule_def_ = Its_subrule;
+ }
+
+ rule_in_stbl* refered_rule::Rule_in_stbl(){
+ return rule_in_stbl_;
+ }
+ T_transitive::
+T_transitive()
+ T_CTOR("transitive",T_Enum::T_T_transitive_,0,false,false){}
+T_grammar_name::
+T_grammar_name()
+ T_CTOR("grammar-name",T_Enum::T_T_grammar_name_,0,false,false){}
+T_thread_name::
+T_thread_name()
+ T_CTOR("thread-name",T_Enum::T_T_thread_name_,0,false,false){}
+T_monolithic::
+T_monolithic()
+ T_CTOR("monolithic",T_Enum::T_T_monolithic_,0,false,false){}
+T_no_of_T::
+T_no_of_T()
+ T_CTOR("no-of-T",T_Enum::T_T_no_of_T_,0,false,false){}
+T_list_of_native_first_set_terminals::
+T_list_of_native_first_set_terminals()
+ T_CTOR("list-of-native-first-set-terminals",T_Enum::T_T_list_of_native_first_set_terminals_,0,false,false){}
+T_end_list_of_native_first_set_terminals::
+T_end_list_of_native_first_set_terminals()
+ T_CTOR("end-list-of-native-first-set-terminals",T_Enum::T_T_end_list_of_native_first_set_terminals_,0,false,false){}
+T_list_of_transitive_threads::
+T_list_of_transitive_threads()
+ T_CTOR("list-of-transitive-threads",T_Enum::T_T_list_of_transitive_threads_,0,false,false){}
+T_end_list_of_transitive_threads::
+T_end_list_of_transitive_threads()
+ T_CTOR("end-list-of-transitive-threads",T_Enum::T_T_end_list_of_transitive_threads_,0,false,false){}
+T_emitfile::
+T_emitfile()
+ T_CTOR("emitfile",T_Enum::T_T_emitfile_,0,false,false){}
+T_preamble::
+T_preamble()
+ T_CTOR("preamble",T_Enum::T_T_preamble_,0,false,false){}
+T_end_preamble::
+T_end_preamble()
+ T_CTOR("end-preamble",T_Enum::T_T_end_preamble_,0,false,false){}
+T_T_alphabet::
+T_T_alphabet()
+ T_CTOR("T-alphabet",T_Enum::T_T_T_alphabet_,0,false,false){}
+T_end_T_alphabet::
+T_end_T_alphabet()
+ T_CTOR("end-T-alphabet",T_Enum::T_T_end_T_alphabet_,0,false,false){}
+T_file_of_T_alphabet::
+T_file_of_T_alphabet()
+ T_CTOR("file-of-T-alphabet",T_Enum::T_T_file_of_T_alphabet_,0,false,false){}
+
+ T_attributes::T_attributes(const char* Fully_qualified_T_name,int Enum)
+ T_CTOR("T-attributes",T_Enum::T_T_attributes_,0,false,false)
+ {fully_qualified_T_name_ += Fully_qualified_T_name;
+ T_enum_ = Enum;
+ }
+
+ tth_in_stbl::tth_in_stbl
+ (T_attributes* Fnd_T_in_stbl,CAbs_lr1_sym* Rc,yacco2::Parser* P)
+ T_CTOR("tth-in-stbl",T_Enum::T_tth_in_stbl_,0,false,false)
+ {t_in_stbl_ = Fnd_T_in_stbl;
+ set_rc(*Rc,__FILE__,__LINE__);// set its source co-ordinates
+ stbl_idx_ = -1;
+ }
+ T_attributes* tth_in_stbl::t_in_stbl(){
+ return t_in_stbl_;
+ }
+ void tth_in_stbl::stbl_idx(yacco2::UINT Idx){stbl_idx_ = Idx;}
+ int tth_in_stbl::stbl_idx(){return stbl_idx_;}
+
+ thread_attributes::thread_attributes(const char* Fully_qualified_th_name)
+T_CTOR("thread-attributes",T_Enum::T_thread_attributes_,0,false,false)
+ {fully_qualified_th_name_ += Fully_qualified_th_name;
+ transitive_ = ' ';
+ grammar_file_name_ = 0;
+ name_space_name_ = 0;
+ thread_name_ = 0;
+ monolithic_ = ' ';
+ file_name_ = 0;
+ th_enum_ = -1;
+ fsm_comments_ = 0;
+ called_thread_graph_ = 0;
+ }
+ thread_attributes::thread_attributes
+ (const char* Fully_qualified_th_name
+ ,char Transitive
+ ,T_c_string* Grammar_name
+ ,T_c_string* Name_space_name
+ ,T_c_string* Thread_name
+ ,char Monolithic
+ ,T_c_string* File_name
+ ,std::vector<int>& List_of_Ts
+ ,std::vector<thread_attributes*>& List_of_transitive_thds
+ ,T_c_string* Fsm_comments)
+ T_CTOR("thread-attributes",T_Enum::T_thread_attributes_,0,false,false)
+ {fully_qualified_th_name_ += Fully_qualified_th_name;
+ transitive_ = Transitive;
+ grammar_file_name_ = Grammar_name;
+ name_space_name_ = Name_space_name;
+ thread_name_ = Thread_name;
+ monolithic_ = Monolithic;
+ file_name_ = File_name;
+ if(!List_of_Ts.empty()){
+ copy(List_of_Ts.begin()
+ ,List_of_Ts.end()
+ ,back_inserter(list_of_Ts_));
+ std::vector<int>::iterator i = List_of_Ts.begin();
+ std::vector<int>::iterator ie = List_of_Ts.end();
+ for(;i!=ie;++i){
+ fs_.insert(*i);
+ }
+ }
+ if(!List_of_transitive_thds.empty())
+ copy(List_of_transitive_thds.begin()
+ ,List_of_transitive_thds.end()
+ ,back_inserter(list_of_transitive_threads_));
+ th_enum_ = -1;
+ fsm_comments_ = Fsm_comments;
+ called_thread_graph_ = 0;
+ }
+
+ th_in_stbl::th_in_stbl(thread_attributes* Fnd_th_in_stbl)
+ T_CTOR("th-in-stbl",T_Enum::T_th_in_stbl_,0,false,false)
+ {th_in_stbl_ = Fnd_th_in_stbl;
+ stbl_idx_ = -1;
+ }
+ thread_attributes* th_in_stbl::thread_in_stbl(){
+ return th_in_stbl_;
+ }
+ void th_in_stbl::stbl_idx(yacco2::UINT Idx){stbl_idx_ = Idx;}
+ int th_in_stbl::stbl_idx(){return stbl_idx_;}
+
+ kw_in_stbl::kw_in_stbl(CAbs_lr1_sym* Fnd_kw_in_stbl)
+ T_CTOR("kw-in-stbl",T_Enum::T_kw_in_stbl_,0,false,false)
+ {kw_in_stbl_ = Fnd_kw_in_stbl;
+ stbl_idx_ = -1;
+ }
+ CAbs_lr1_sym* kw_in_stbl::keyword_in_stbl(){
+ return kw_in_stbl_;
+ }
+ void kw_in_stbl::stbl_idx(yacco2::UINT Idx){stbl_idx_ = Idx;}
+ int kw_in_stbl::stbl_idx(){return stbl_idx_;}
+
+ T_la_expr_src::T_la_expr_src()
+T_CTOR("la-express-source",T_Enum::T_T_la_expr_src_,0,false,false)
+ {la_tok_can_ = new yacco2::TOKEN_GAGGLE;
+ }
+ void T_la_expr_src::zero_la_tok_can(){
+ la_tok_can_ = 0;
+ }
+ yacco2::TOKEN_GAGGLE* T_la_expr_src::la_tok_can(){
+ return la_tok_can_;
+ }
+
+ T_eosubrule::T_eosubrule()
+ T_CTOR("eosubrule",T_Enum::T_T_eosubrule_,0,false,false){
+ its_subrule_def_ = 0;
+ tree_node_ = 0;
+ element_pos_ = 0;
+ }
+ int T_eosubrule::element_pos(){return element_pos_;}
+ void T_eosubrule::element_pos(int Pos){element_pos_ = Pos;}
+
+ rule_def* T_eosubrule::its_rule_def(){
+ return its_subrule_def_->its_rule_def();
+ }
+ AST* T_eosubrule::tree_node(){
+ return tree_node_;
+ }
+ void T_eosubrule::tree_node(AST* Tree_node){
+ tree_node_ = Tree_node;
+ }
+
+ std::string* T_eosubrule::grammar_s_enumerate(){
+ return &grammar_s_enumerate_;
+ }
+ void T_eosubrule::grammar_s_enumerate(const char* Enumerate){
+ grammar_s_enumerate_+=Enumerate;
+ }
+ T_subrule_def* T_eosubrule::its_subrule_def(){
+ return its_subrule_def_;
+ }
+
+ void T_eosubrule::its_subrule_def(T_subrule_def* Its_subrule){
+ its_subrule_def_ = Its_subrule;
+ }
+
+T_called_thread_eosubrule::T_called_thread_eosubrule
+ (T_identifier* Ns,T_identifier* Thd_name)
+T_CTOR("called thread eosubrule",T_Enum::T_T_called_thread_eosubrule_,0,false,false){
+ its_subrule_def_ = 0;
+ tree_node_ = 0;
+ ns_ = Ns;
+ called_thread_name_ = Thd_name;
+ element_pos_ = 0;
+ }
+ int T_called_thread_eosubrule::element_pos(){return element_pos_;}
+ void T_called_thread_eosubrule::element_pos(int Pos){element_pos_ = Pos;}
+ T_identifier* T_called_thread_eosubrule::ns(){
+ return ns_;
+ }
+ T_identifier* T_called_thread_eosubrule::called_thread_name(){
+ return called_thread_name_;
+ }
+ rule_def* T_called_thread_eosubrule::its_rule_def(){
+ return its_subrule_def_->its_rule_def();
+ }
+ AST* T_called_thread_eosubrule::tree_node(){
+ return tree_node_;
+ }
+ void T_called_thread_eosubrule::tree_node(AST* Tree_node){
+ tree_node_ = Tree_node;
+ }
+
+ std::string* T_called_thread_eosubrule::grammar_s_enumerate(){
+ return &grammar_s_enumerate_;
+ }
+ void T_called_thread_eosubrule::grammar_s_enumerate(const char* Enumerate){
+ grammar_s_enumerate_+=Enumerate;
+ }
+ T_subrule_def* T_called_thread_eosubrule::its_subrule_def(){
+ return its_subrule_def_;
+ }
+
+ void T_called_thread_eosubrule::its_subrule_def(T_subrule_def* Its_subrule){
+ its_subrule_def_ = Its_subrule;
+ }
+
+ T_null_call_thread_eosubrule::T_null_call_thread_eosubrule()
+T_CTOR("null call thread eosubrule",T_Enum::T_T_null_call_thread_eosubrule_,0,false,false){
+ its_subrule_def_ = 0;
+ tree_node_ = 0;
+ element_pos_ = 0;
+ }
+ int T_null_call_thread_eosubrule::element_pos(){return element_pos_;}
+ void T_null_call_thread_eosubrule::element_pos(int Pos){element_pos_ = Pos;}
+ rule_def* T_null_call_thread_eosubrule::its_rule_def(){
+ return its_subrule_def_->its_rule_def();
+ }
+ AST* T_null_call_thread_eosubrule::tree_node(){
+ return tree_node_;
+ }
+ void T_null_call_thread_eosubrule::tree_node(AST* Tree_node){
+ tree_node_ = Tree_node;
+ }
+
+ std::string* T_null_call_thread_eosubrule::grammar_s_enumerate(){
+ return &grammar_s_enumerate_;
+ }
+ void T_null_call_thread_eosubrule::grammar_s_enumerate(const char* Enumerate){
+ grammar_s_enumerate_+=Enumerate;
+ }
+ T_subrule_def* T_null_call_thread_eosubrule::its_subrule_def(){
+ return its_subrule_def_;
+ }
+
+ void T_null_call_thread_eosubrule::its_subrule_def(T_subrule_def* Its_subrule){
+ its_subrule_def_ = Its_subrule;
+ }
+
+ T_cweb_comment::
+ T_cweb_comment(const std::string& Comment_data)
+ T_CTOR("cweb-comment",T_Enum::T_T_cweb_comment_,0,false,false)
+ {comment_data_ = Comment_data;}
+ std::string* T_cweb_comment::comment_data(){return &comment_data_;}
+ T_grammar_phrase::
+T_grammar_phrase()
+ T_CTOR("grammar-phrase",T_Enum::T_T_grammar_phrase_,0,false,false){}
+
+ T_cweb_marker::
+ T_cweb_marker(AST* Node)
+ T_CTOR("cweb-marker",T_Enum::T_T_cweb_marker_,0,false,false)
+ {ast_ = Node;}
+ T_cweb_marker::
+ T_cweb_marker()
+ T_CTOR("cweb-marker",T_Enum::T_T_cweb_marker_,0,false,false)
+ {ast_ = 0;}
+ AST* T_cweb_marker::ast(){return ast_;}
+
+ T_lint::T_lint()
+ T_CTOR("lint",T_Enum::T_T_lint_,0,false,false)
+ {}
+ T_lint lint__;
+ yacco2::CAbs_lr1_sym* NS_yacco2_terminals::PTR_lint__ = &lint__;
+ T_list_of_used_threads::
+T_list_of_used_threads()
+ T_CTOR("list-of-used-threads",T_Enum::T_T_list_of_used_threads_,0,false,false){}
+T_end_list_of_used_threads::
+T_end_list_of_used_threads()
+ T_CTOR("end-list-of-used-threads",T_Enum::T_T_end_list_of_used_threads_,0,false,false){}
diff --git a/web/yacco2/compiler/grammars/yacco2_terminals.h b/web/yacco2/compiler/grammars/yacco2_terminals.h
new file mode 100644
index 0000000000..d7aaa1614c
--- /dev/null
+++ b/web/yacco2/compiler/grammars/yacco2_terminals.h
@@ -0,0 +1,1217 @@
+/*
+ File: yacco2_terminals.h
+ Date and Time: Sun Apr 20 13:54:30 2014
+*/
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_err_symbols.h"
+#ifndef __yacco2_terminals_h__
+#define __yacco2_terminals_h__ 1
+namespace NS_yacco2_terminals{
+ using namespace NS_yacco2_T_enum;
+
+using namespace std;
+using namespace NS_yacco2_err_symbols;
+using namespace yacco2;
+struct T_called_thread_eosubrule;
+struct T_c_literal;
+struct T_identifier;
+struct T_syntax_code;
+struct T_fsm_class_phrase;
+struct T_fsm_class;
+struct T_fsm_phrase;
+struct T_parallel_parser_phrase;
+struct T_enum_phrase;
+struct T_error_symbols_phrase;
+struct T_rc_phrase;
+struct T_lr1_k_phrase;
+struct T_terminals_phrase;
+struct T_rules_phrase;
+struct T_subrules_phrase;
+struct T_rhs_bnd;
+struct refered_rule;
+struct rule_def;
+struct refered_T;
+struct T_in_stbl;
+struct rule_in_stbl;
+extern yacco2::CAbs_lr1_sym* PTR_lint__;
+extern yacco2::CAbs_lr1_sym* PTR_ws__;
+extern yacco2::CAbs_lr1_sym* PTR_eol__;
+
+ struct T_option_t:public yacco2::CAbs_lr1_sym{
+ T_option_t();
+ };
+ struct T_option_p:public yacco2::CAbs_lr1_sym{
+ T_option_p();
+ };
+ struct T_option_err:public yacco2::CAbs_lr1_sym{
+ T_option_err();
+ };
+ struct T_esc_seq:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_esc_seq(const char* Esc_data);
+ std::string* esc_data();
+ private:std::string esc_data_;
+ };
+ struct T_eol:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_eol();
+ };
+ struct T_basic_char:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_basic_char(CAbs_lr1_sym* Basic_char);
+ CAbs_lr1_sym* basic_char()const;
+ void zero_out_basic_char();
+ private:CAbs_lr1_sym* basic_char_;
+ static void dtor_T_basic_char(yacco2::VOIDP This,yacco2::VOIDP P);
+ };
+ struct T_raw_char:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_raw_char(CAbs_lr1_sym* Raw_char);
+ CAbs_lr1_sym* raw_char()const;
+ void zero_out_raw_char();
+ private:CAbs_lr1_sym* raw_char_;
+ static void dtor_T_raw_char(yacco2::VOIDP This,yacco2::VOIDP P);
+ };
+ struct T_comment:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_comment(const std::string& Comment_data);
+ std::string* comment_data();
+ private:std::string comment_data_;
+ };
+ struct T_ws:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_ws(const std::string& White_space_data);
+ T_ws();
+ std::string* ws_data();
+ private:std::string ws_data_;
+ };
+ struct T_angled_string:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_angled_string(const std::string& Angled_string);
+ std::string* angled_string();
+ private:std::string angled_string_;
+ };
+ struct T_c_literal:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_c_literal(const std::string& C_literal);
+ std::string* c_literal();
+ private:std::string c_literal_;
+ };
+ struct T_c_string:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_c_string(const std::string& C_string);
+ std::string* c_string();
+ private:std::string c_string_;
+ };
+ struct T_xc_str:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_xc_str(const std::string& C_string);
+ std::string* c_string();
+ private:std::string c_string_;
+ };
+ struct T_unquoted_string:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_unquoted_string(const std::string& String);
+ std::string* unquoted_string();
+ private:std::string unquoted_string_;
+ };
+ struct T_file_inclusion:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_file_inclusion(T_c_string* File_name_,CAbs_lr1_sym* Error);
+ ~T_file_inclusion();
+ T_c_string* file_name();
+ CAbs_lr1_sym* error_sym();
+ void error_sym(CAbs_lr1_sym* Error);
+ private:T_c_string* file_name_;
+ CAbs_lr1_sym* error_sym_;
+ };
+ struct T_identifier:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_identifier(yacco2::KCHARP Identifier);
+ std::string* identifier();
+ private:std::string identifier_;
+ };
+ struct T_int_no:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_int_no(long S_no);
+ long no();
+ private:
+ long no_;
+ };
+ struct T_raw_characters:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_raw_characters();
+ void rc_phrase(T_rc_phrase* Phrase);
+ T_rc_phrase* rc_phrase();
+ private:T_rc_phrase* rc_phrase_;
+ static void dtor_T_raw_characters(yacco2::VOIDP This,yacco2::VOIDP P);
+ };
+ struct T_lr1_constant_symbols:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_lr1_constant_symbols();
+ void lr1_k_phrase(T_lr1_k_phrase* Phrase);
+ T_lr1_k_phrase* lr1_k_phrase();
+ private:T_lr1_k_phrase* lr1_k_phrase_;
+ static void dtor_T_lr1_constant_symbols(yacco2::VOIDP This,yacco2::VOIDP P);
+ };
+ struct T_error_symbols:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_error_symbols();
+ void error_symbols_phrase(T_error_symbols_phrase* Phrase);
+ T_error_symbols_phrase* error_symbols_phrase();
+ private:T_error_symbols_phrase* error_symbols_phrase_;
+ static void dtor_T_error_symbols(yacco2::VOIDP This,yacco2::VOIDP P);
+ };
+ struct T_eocode:public yacco2::CAbs_lr1_sym{
+ T_eocode();
+ };
+ struct T_AD:public yacco2::CAbs_lr1_sym{
+ T_AD();
+ };
+ struct T_AB:public yacco2::CAbs_lr1_sym{
+ T_AB();
+ };
+ struct T_parallel_la_boundary:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_parallel_la_boundary();
+ void la_first_set(std::set<T_in_stbl*>& Supplier);
+ std::set<T_in_stbl*>* la_first_set();
+ void la_supplier(yacco2::TOKEN_GAGGLE* Supplier);
+ yacco2::TOKEN_GAGGLE* la_supplier();
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ void cweb_la_srce_expr(const char* Srce_expr);
+ std::string* cweb_la_srce_expr();
+ private:
+ std::set<T_in_stbl*> la_first_set_;
+ std::string cweb_la_srce_expr_;
+ AST* cweb_marker_;
+ yacco2::TOKEN_GAGGLE* la_supplier_;
+ };
+ struct T_arbitrator_code:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_arbitrator_code();
+ void syntax_code(T_syntax_code* Stc);
+ T_syntax_code* syntax_code();
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ private:T_syntax_code* syntax_code_;
+ AST* cweb_marker_;
+ };
+ struct T_parallel_parser:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_parallel_parser();
+ void parallel_parser_phrase(T_parallel_parser_phrase* Phrase);
+ T_parallel_parser_phrase* parallel_parser_phrase();
+ private:T_parallel_parser_phrase* parallel_parser_phrase_;
+ static void dtor_T_parallel_parser(yacco2::VOIDP This,yacco2::VOIDP P);
+ };
+ struct T_parallel_thread_function:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_parallel_thread_function();
+ void identifier(T_identifier* Id);
+ T_identifier* identifier();
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ private:T_identifier* id_;
+ AST* cweb_marker_;
+ };
+ struct T_parallel_control_monitor:public yacco2::CAbs_lr1_sym{
+ T_parallel_control_monitor();
+ };
+ struct T_fsm:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_fsm();
+ void fsm_phrase(T_fsm_phrase* Phrase);
+ T_fsm_phrase* fsm_phrase();
+ private:T_fsm_phrase* fsm_phrase_;
+ static void dtor_T_fsm(yacco2::VOIDP This,yacco2::VOIDP P);
+ };
+ struct T_fsm_id:public yacco2::CAbs_lr1_sym{
+ T_fsm_id();
+ };
+ struct T_fsm_filename:public yacco2::CAbs_lr1_sym{
+ T_fsm_filename();
+ };
+ struct T_fsm_namespace:public yacco2::CAbs_lr1_sym{
+ T_fsm_namespace();
+ };
+ struct T_fsm_class:public yacco2::CAbs_lr1_sym{
+ T_fsm_class();
+ };
+ struct T_fsm_version:public yacco2::CAbs_lr1_sym{
+ T_fsm_version();
+ };
+ struct T_fsm_date:public yacco2::CAbs_lr1_sym{
+ T_fsm_date();
+ };
+ struct T_fsm_debug:public yacco2::CAbs_lr1_sym{
+ T_fsm_debug();
+ };
+ struct T_fsm_comments:public yacco2::CAbs_lr1_sym{
+ T_fsm_comments();
+ };
+ struct T_terminals:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_terminals();
+ void terminals_phrase(T_terminals_phrase* Phrase);
+ T_terminals_phrase* terminals_phrase();
+ private:T_terminals_phrase* terminals_phrase_;
+ static void dtor_T_terminals(yacco2::VOIDP This,yacco2::VOIDP P);
+ };
+ struct T_enumeration:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_enumeration();
+ void enum_phrase(T_enum_phrase* Phrase);
+ T_enum_phrase* enum_phrase();
+ private:T_enum_phrase* enum_phrase_;
+ static void dtor_T_enumeration(yacco2::VOIDP This,yacco2::VOIDP P);
+ };
+ struct T_file_name:public yacco2::CAbs_lr1_sym{
+ T_file_name();
+ };
+ struct T_name_space:public yacco2::CAbs_lr1_sym{
+ T_name_space();
+ };
+ struct T_sym_class:public yacco2::CAbs_lr1_sym{
+ T_sym_class();
+ };
+ struct T_rules:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_rules();
+ void rules_phrase(T_rules_phrase* Phrase);
+ T_rules_phrase* rules_phrase();
+ private:T_rules_phrase* rules_phrase_;
+ static void dtor_T_rules(yacco2::VOIDP This,yacco2::VOIDP P);
+ };
+ struct T_lhs:public yacco2::CAbs_lr1_sym{
+ T_lhs();
+ };
+ struct T_user_declaration:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_user_declaration();
+ void syntax_code(T_syntax_code* Stc);
+ T_syntax_code* syntax_code();
+ private:T_syntax_code* syntax_code_;
+ };
+ struct T_user_prefix_declaration:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_user_prefix_declaration();
+ void syntax_code(T_syntax_code* Stc);
+ T_syntax_code* syntax_code();
+ private:T_syntax_code* syntax_code_;
+ };
+ struct T_user_suffix_declaration:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_user_suffix_declaration();
+ void syntax_code(T_syntax_code* Stc);
+ T_syntax_code* syntax_code();
+ private:T_syntax_code* syntax_code_;
+ };
+ struct T_constructor:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_constructor();
+ void syntax_code(T_syntax_code* Stc);
+ T_syntax_code* syntax_code();
+ private:T_syntax_code* syntax_code_;
+ };
+ struct T_destructor:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_destructor();
+ void syntax_code(T_syntax_code* Stc);
+ T_syntax_code* syntax_code();
+ private:T_syntax_code* syntax_code_;
+ };
+ struct T_op:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_op();
+ void syntax_code(T_syntax_code* Stc);
+ T_syntax_code* syntax_code();
+ private:T_syntax_code* syntax_code_;
+ };
+ struct T_failed:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_failed();
+ void syntax_code(T_syntax_code* Stc);
+ T_syntax_code* syntax_code();
+ private:T_syntax_code* syntax_code_;
+ };
+ struct T_user_implementation:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_user_implementation();
+ void syntax_code(T_syntax_code* Stc);
+ T_syntax_code* syntax_code();
+ private:T_syntax_code* syntax_code_;
+ };
+ struct T_user_imp_tbl:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_user_imp_tbl();
+ void syntax_code(T_syntax_code* Stc);
+ T_syntax_code* syntax_code();
+ private:T_syntax_code* syntax_code_;
+ };
+ struct T_user_imp_sym:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_user_imp_sym();
+ void syntax_code(T_syntax_code* Stc);
+ T_syntax_code* syntax_code();
+ private:T_syntax_code* syntax_code_;
+ };
+ struct T_constant_defs:public yacco2::CAbs_lr1_sym{
+ T_constant_defs();
+ };
+ struct T_terminals_refs:public yacco2::CAbs_lr1_sym{
+ T_terminals_refs();
+ };
+ struct T_terminals_sufx:public yacco2::CAbs_lr1_sym{
+ T_terminals_sufx();
+ };
+ struct T_lrk_sufx:public yacco2::CAbs_lr1_sym{
+ T_lrk_sufx();
+ };
+ struct T_selector:public yacco2::CAbs_lr1_sym{
+ T_selector();
+ };
+ struct T_NULL:public yacco2::CAbs_lr1_sym{
+ T_NULL();
+ };
+ struct T_2colon:public yacco2::CAbs_lr1_sym{
+ T_2colon();
+ };
+ struct T_block:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_block(yacco2::AST* Ast);
+ yacco2::AST* ast();
+ private: yacco2::AST* ast_;
+ static void dtor_T_block(yacco2::VOIDP This,yacco2::VOIDP P);
+ };
+ struct T_syntax_code:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_syntax_code(const char* Syntax_code);
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ std::string* syntax_code();
+ private:std::string syntax_code_;
+ AST* cweb_marker_;
+ };
+ struct T_fsm_class_phrase:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_fsm_class_phrase();
+ T_identifier* identifier();
+ void identifier(T_identifier* Id);
+ void remove_directives_from_map();
+ std::map<std::string,CAbs_lr1_sym*>* directives_map();
+ CAbs_lr1_sym* // 0 - ok, or error
+ add_directive_to_map(CAbs_lr1_sym* Directive,yacco2::Parser* P);
+ void phrase_tree(AST* Tree);
+ AST* phrase_tree();
+ private:
+ T_identifier* identifier_;
+ std::map<std::string,CAbs_lr1_sym*> directives_map_;
+ AST* phrase_tree_;
+ static void dtor_T_fsm_class_phrase(yacco2::VOIDP This,yacco2::VOIDP P);
+ };
+ struct T_fsm_phrase:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_fsm_phrase();
+ T_c_string* fsm_id();
+ void fsm_id(T_c_string* Id);
+ T_identifier* filename_id();
+ void filename_id(T_identifier* Id);
+ T_identifier* namespace_id();
+ void namespace_id(T_identifier* Id);
+ T_fsm_class_phrase* fsm_class_phrase();
+ void fsm_class_phrase(T_fsm_class_phrase* Id);
+ T_c_string* version();
+ void version(T_c_string* Id);
+ T_c_string* date();
+ void date(T_c_string* Id);
+ T_c_string* debug();
+ void debug(T_c_string* Id);
+ T_c_string* comment();
+ void comment(T_c_string* Id);
+ void phrase_tree(AST* Tree);
+ AST* phrase_tree();
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ private:
+ T_c_string* fsm_id_;
+ T_identifier* filename_id_;
+ string filename_no_ext_;
+ T_identifier* namespace_id_;
+ T_fsm_class_phrase* fsm_class_phrase_;
+ T_c_string* version_;
+ T_c_string* date_;
+ T_c_string* debug_;
+ T_c_string* comment_;
+ AST* phrase_tree_;
+ AST* cweb_marker_;
+ static void dtor_T_fsm_phrase(yacco2::VOIDP This,yacco2::VOIDP P);
+ };
+ struct T_parallel_parser_phrase:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_parallel_parser_phrase();
+ T_parallel_thread_function* pp_funct();
+ void pp_funct(T_parallel_thread_function* PP_fnct);
+ T_parallel_la_boundary* la_bndry();
+ void la_bndry(T_parallel_la_boundary* La_bndry);
+ void phrase_tree(AST* Tree);
+ AST* phrase_tree();
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ private:
+ T_parallel_thread_function* pp_funct_;
+ T_parallel_la_boundary* la_bndry_;
+ AST* phrase_tree_;
+ AST* cweb_marker_;
+ static void dtor_T_parallel_parser_phrase(yacco2::VOIDP This,yacco2::VOIDP P);
+ };
+ struct T_enum_phrase:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_enum_phrase();
+ T_identifier* filename_id();
+ void filename_id(T_identifier* Id);
+ T_identifier* namespace_id();
+ void namespace_id(T_identifier* Id);
+ T_syntax_code* kdefs();
+ void kdefs(T_syntax_code* Kdefs);
+ void start_lrk_enumerate(int Enum);
+ void stop_lrk_enumerate(int Enum);
+ int start_lrk_enumerate();
+ int stop_lrk_enumerate();
+ void start_err_enumerate(int Enum);
+ void stop_err_enumerate(int Enum);
+ int start_err_enumerate();
+ int stop_err_enumerate();
+ void start_rc_enumerate(int Enum);
+ void stop_rc_enumerate(int Enum);
+ int start_rc_enumerate();
+ int stop_rc_enumerate();
+ void start_T_enumerate(int Enum);
+ void stop_T_enumerate(int Enum);
+ int start_T_enumerate();
+ int stop_T_enumerate();
+
+ int total_T_enumerate();
+ void total_T_enumerate(int Enum);
+ int total_rc_enumerate();
+ void total_rc_enumerate(int Enum);
+ int total_err_enumerate();
+ void total_err_enumerate(int Enum);
+ int total_lrk_enumerate();
+ void total_lrk_enumerate(int Enum);
+ void total_enumerate(int Enum);
+ int total_enumerate();
+ void phrase_tree(AST* Tree);
+ AST* phrase_tree();
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ int total_no_subrules();
+ void total_no_subrules(int Total_subrules);
+ private:
+ T_syntax_code* kdefs_;
+ T_identifier* filename_id_;
+ T_identifier* namespace_id_;
+ int start_lrk_enumerate_;
+ int stop_lrk_enumerate_;
+ int start_err_enumerate_;
+ int stop_err_enumerate_;
+ int start_rc_enumerate_;
+ int stop_rc_enumerate_;
+ int start_T_enumerate_;
+ int stop_T_enumerate_;
+ int total_enumerate_;
+ int total_T_enumerate_;
+ int total_rc_enumerate_;
+ int total_err_enumerate_;
+ int total_lrk_enumerate_;
+ int total_no_subrules_;
+ AST* phrase_tree_;
+ AST* cweb_marker_;
+ static void dtor_T_enum_phrase(yacco2::VOIDP This,yacco2::VOIDP P);
+ };
+ struct T_terminal_def:public yacco2::CAbs_lr1_sym{
+
+ public:
+ enum classification_typ {not_classed,err,rc,lrk,t};
+ T_terminal_def();
+ void remove_directives_from_map();
+ std::map<std::string,CAbs_lr1_sym*>* directives_map();
+ CAbs_lr1_sym* // 0 - ok, or error
+ add_directive_to_map(CAbs_lr1_sym* Directive,yacco2::Parser* P);
+
+ std::string* t_name();
+ void t_name(const char* Id);
+ std::string* classsym();
+ void classsym(const char* Id);
+ bool autodelete();
+ void autodelete(bool Ton);
+ bool autoabort();
+ void autoabort(bool Ton);
+ classification_typ classification();
+ void classification(classification_typ C);
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ void enum_id(int Id);
+ int enum_id();
+ private:
+ std::string t_name_;
+ std::string class_sym_;
+ bool auto_delete_;
+ bool auto_abort_;
+ map<std::string,CAbs_lr1_sym*> directives_map_;
+ classification_typ classification_;
+ AST* cweb_marker_;
+ int enum_id_;
+ static void dtor_T_terminal_def(yacco2::VOIDP This,yacco2::VOIDP P);
+ };
+ struct table_entry:public yacco2::CAbs_lr1_sym{
+
+ public:
+ enum entry_typ {terminal,rule,keyword,unknown,thread};
+ enum defined_or_used_typ {defed,used};
+ table_entry();
+ bool vacant_;
+ bool defined_;
+ bool used_;
+ entry_typ type_;
+ CAbs_lr1_sym* symbol_;
+ const char* key_;
+ int pos_;
+ int key_len_;
+ };
+ struct T_sym_tbl_report_card:public yacco2::CAbs_lr1_sym{
+
+ public:
+ enum status {okay,failure,fatal};
+ enum action {not_fnd,fnd,inserted,aborted,unknown};
+ T_sym_tbl_report_card();
+ T_sym_tbl_report_card::status status_;
+ T_sym_tbl_report_card::action action_;
+ table_entry* tbl_entry_;
+ CAbs_lr1_sym* err_entry_;
+ int pos_;
+ int key_len_;
+ };
+ struct T_terminals_phrase:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_terminals_phrase();
+ T_identifier* filename_id();
+ void filename_id(T_identifier* Id);
+ T_identifier* namespace_id();
+ void namespace_id(T_identifier* Id);
+ void destroy_alphabet();
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*>* alphabet();
+ CAbs_lr1_sym* add_t_to_alphabet(T_terminal_def* T,yacco2::Parser* P);
+ std::vector<T_terminal_def*>* crt_order();
+ T_syntax_code* terminals_refs_code();
+ void terminals_refs_code(T_syntax_code* Code);
+ T_syntax_code* terminals_sufx_code();
+ void terminals_sufx_code(T_syntax_code* Code);
+ void phrase_tree(AST* Tree);
+ AST* phrase_tree();
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ private:
+ T_identifier* filename_id_;
+ T_identifier* namespace_id_;
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*> alphabet_;
+ std::vector<T_terminal_def*> crt_order_;
+ T_syntax_code* terminals_refs_code_;
+ T_syntax_code* terminals_sufx_code_;
+ AST* phrase_tree_;
+ AST* cweb_marker_;
+ static void dtor_T_terminals_phrase(yacco2::VOIDP This,yacco2::VOIDP P);
+ };
+ struct T_error_symbols_phrase:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_error_symbols_phrase();
+ T_identifier* filename_id();
+ void filename_id(T_identifier* Id);
+ T_identifier* namespace_id();
+ void namespace_id(T_identifier* Id);
+ void destroy_alphabet();
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*>* alphabet();
+ CAbs_lr1_sym* add_t_to_alphabet(T_terminal_def* T,yacco2::Parser* P);
+ std::vector<T_terminal_def*>* crt_order();
+ void phrase_tree(AST* Tree);
+ AST* phrase_tree();
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ private:
+ T_identifier* filename_id_;
+ T_identifier* namespace_id_;
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*> alphabet_;
+ std::vector<T_terminal_def*> crt_order_;
+ AST* phrase_tree_;
+ AST* cweb_marker_;
+ static void dtor_T_error_symbols_phrase(yacco2::VOIDP This,yacco2::VOIDP P);
+ };
+ struct T_lr1_k_phrase:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_lr1_k_phrase();
+ T_identifier* filename_id();
+ void filename_id(T_identifier* Id);
+ T_identifier* namespace_id();
+ void namespace_id(T_identifier* Id);
+ void destroy_alphabet();
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*>* alphabet();
+ CAbs_lr1_sym* add_t_to_alphabet(T_terminal_def* T,yacco2::Parser* P);
+ std::vector<T_terminal_def*>* crt_order();
+ T_syntax_code* lrk_sufx_code();
+ void lrk_sufx_code(T_syntax_code* Code);
+ void phrase_tree(AST* Tree);
+ AST* phrase_tree();
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ private:
+ T_identifier* filename_id_;
+ T_identifier* namespace_id_;
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*> alphabet_;
+ std::vector<T_terminal_def*> crt_order_;
+ T_syntax_code* lrk_sufx_code_;
+ AST* phrase_tree_;
+ AST* cweb_marker_;
+ static void dtor_T_lr1_k_phrase(yacco2::VOIDP This,yacco2::VOIDP P);
+ };
+ struct T_rc_phrase:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_rc_phrase();
+ T_identifier* filename_id();
+ void filename_id(T_identifier* Id);
+ T_identifier* namespace_id();
+ void namespace_id(T_identifier* Id);
+ void destroy_alphabet();
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*>* alphabet();
+ CAbs_lr1_sym* add_t_to_alphabet(T_terminal_def* T,yacco2::Parser* P);
+ std::vector<T_terminal_def*>* crt_order();
+ void phrase_tree(AST* Tree);
+ AST* phrase_tree();
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ private:
+ T_identifier* filename_id_;
+ T_identifier* namespace_id_;
+ std::map<std::string,NS_yacco2_terminals::T_terminal_def*> alphabet_;
+ std::vector<T_terminal_def*> crt_order_;
+ AST* phrase_tree_;
+ AST* cweb_marker_;
+ static void dtor_T_rc_phrase(yacco2::VOIDP This,yacco2::VOIDP P);
+ };
+ struct T_rule_lhs_phrase:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_rule_lhs_phrase();
+ void remove_lhs_directives();
+ std::map<std::string,CAbs_lr1_sym*>* lhs_directives_map();
+ CAbs_lr1_sym* // 0 - ok, or error
+ add_directive_to_lhs(CAbs_lr1_sym* Directive,yacco2::Parser* P);
+ void phrase_tree(AST* Tree);
+ AST* phrase_tree();
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ private:
+ map<std::string,CAbs_lr1_sym*> lhs_directives_map_;
+ AST* phrase_tree_;
+ AST* cweb_marker_;
+ static void dtor_T_rule_lhs_phrase(yacco2::VOIDP This,yacco2::VOIDP P);
+ };
+ struct T_parallel_monitor_phrase:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_parallel_monitor_phrase();
+ void remove_mntr_directives();
+ std::map<std::string,CAbs_lr1_sym*>* mntr_directives_map();
+ CAbs_lr1_sym* // 0 - ok, or error
+ add_directive_to_mntr(CAbs_lr1_sym* Directive,yacco2::Parser* P);
+ void phrase_tree(AST* Tree);
+ AST* phrase_tree();
+ private:
+ map<std::string,CAbs_lr1_sym*> mntr_directives_map_;
+ AST* phrase_tree_;
+ static void dtor_T_parallel_monitor_phrase(yacco2::VOIDP This,yacco2::VOIDP P);
+ };
+ struct rule_def:public yacco2::CAbs_lr1_sym{
+
+ public:
+ rule_def(const char* Key);
+ T_rule_lhs_phrase* rule_lhs();
+ void rule_lhs(T_rule_lhs_phrase* Lhs);
+ int rule_no();
+ void rule_no(int Rule_no);
+ int lhs_use_cnt();
+ void lhs_use_cnt(int Use_cnt);
+ int rhs_use_cnt();
+ void rhs_use_cnt(int Use_cnt);
+ bool recursive();
+ void recursive(bool Recursive);
+
+ void parallel_mntr(T_parallel_monitor_phrase* Mntr);
+ T_parallel_monitor_phrase* parallel_mntr();
+ T_subrules_phrase* subrules();
+ void subrules(T_subrules_phrase* Subrules);
+
+ std::string* rule_name();
+ bool autodelete();
+ void autodelete(bool Ton);
+ bool autoabort();
+ void autoabort(bool Ton);
+ bool epsilon();
+ void epsilon(bool Ton);
+ bool derive_t();
+ void derive_t(bool Ton);
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ void bld_its_tree();
+ AST* rule_s_tree();
+ void enum_id(int Id);
+ int enum_id();
+ std::set<T_in_stbl*>* first_set();
+ void add_to_first_set(T_in_stbl& T);
+ std::set<T_called_thread_eosubrule*>* called_thread_first_set();
+ void add_to_called_thread_first_set(T_called_thread_eosubrule* T);
+ std::string* grammar_s_enumerate();
+ void grammar_s_enumerate(const char* Enumerate);
+ void add_closure_rule_making_up_first_set(rule_in_stbl* Rule);
+ std::set<rule_in_stbl*>* closure_rules_making_up_first_set();
+ void add_rule_adding_T_in_first_set(T_in_stbl* T,std::string* Rule_enumerate);
+ std::map<T_in_stbl*,std::set<std::string*> >* rule_adding_T_in_first_set();
+ AST* rule_use_skeleton();
+ void rule_use_skeleton(AST* Tree);
+ private:
+ std::string rule_name_;
+ T_parallel_monitor_phrase* parallel_mntr_;
+ T_subrules_phrase* subrules_;
+ T_rule_lhs_phrase* rule_lhs_;
+ bool auto_delete_;
+ bool auto_abort_;
+ AST* cweb_marker_;
+ AST* its_tree_;
+ int enum_id_;
+ int rule_no_;
+ int lhs_use_cnt_;// for rule recycling
+ int rhs_use_cnt_;// for rule recycling
+ bool recursive_;
+ bool epsilon_;
+ bool derive_t_;
+ std::string grammar_s_enumerate_;
+ std::set<T_in_stbl*> first_set_;
+ std::set<T_called_thread_eosubrule*> called_thread_first_set_;
+ std::set<rule_in_stbl*> closure_rules_making_up_first_set_;
+ std::map<T_in_stbl*,std::set<std::string*> > rules_adding_T_in_first_set_;
+ AST* rule_use_skeleton_;
+ static void dtor_rule_def(yacco2::VOIDP This,yacco2::VOIDP P);
+ };
+ struct T_rules_phrase:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_rules_phrase();
+ void destroy_rules_alphabet();
+ std::map<std::string,rule_def*>* rules_alphabet();
+ CAbs_lr1_sym* add_r_to_alphabet(rule_def* R,yacco2::Parser* P);
+ std::vector<rule_def*>* crt_order();
+ void rules_tree(AST* Tree);
+ void phrase_tree(AST* Tree);
+ AST* phrase_tree();
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ private:
+ std::map<std::string,rule_def*> rules_alphabet_;
+ std::vector<rule_def*> crt_order_;
+ AST* phrase_tree_;
+ AST* cweb_marker_;
+ static void dtor_T_rules_phrase(yacco2::VOIDP This,yacco2::VOIDP P);
+ };
+ struct T_subrule_def:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_subrule_def();
+ int subrule_no_of_rule();
+ void subrule_no_of_rule(int Subrule_no);
+ void remove_subrule_directives();
+ std::map<std::string,CAbs_lr1_sym*>* subrule_directives();
+ CAbs_lr1_sym* // 0 - ok, or error
+ add_directive_to_subrule(CAbs_lr1_sym* Directive,yacco2::Parser* P);
+ std::vector<CAbs_lr1_sym*>* subrule_elems();
+ void add_elem_to_subrule_vector(CAbs_lr1_sym* Elem);
+ int no_of_elems();
+ void remove_subrule_elems_from_vector();
+ bool epsilon();
+ void epsilon(bool Epsilon);
+ bool derive_t();
+ void derive_t(bool Epsilon);
+ rule_def* its_rule_def();
+ void its_rule_def(rule_def* Its_rule_def);
+ void add_cweb_marker(AST* Cweb);
+ AST* cweb_marker();
+ void bld_its_tree();
+ AST* subrule_s_tree();
+ std::string* grammar_s_enumerate();
+ void grammar_s_enumerate(const char* Enumerate);
+ int its_grammar_s_pos();
+ void its_grammar_s_pos(int Pos);
+ private:
+ std::map<std::string,CAbs_lr1_sym*> subrule_directives_;
+ std::vector<CAbs_lr1_sym*> subrule_elems_;
+ int subrule_no_of_rule_;// rel 1
+ int no_of_elems_;
+ bool epsilon_;
+ bool derive_t_;
+ rule_def* its_rule_def_;
+ AST* cweb_marker_;
+ AST* its_tree_;
+ int its_grammar_s_pos_;
+ std::string grammar_s_enumerate_;
+ static void dtor_T_subrule_def(yacco2::VOIDP This,yacco2::VOIDP P);
+ };
+ struct T_subrules_phrase:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_subrules_phrase();
+ void destroy_subrules();
+ std::vector<T_subrule_def*>* subrules();
+ void add_sr_to_subrules(T_subrule_def* R);
+ int no_subrules();
+ void phrase_tree(AST* Tree);
+ AST* phrase_tree();
+ private:
+ std::vector<T_subrule_def*> subrules_;
+ int no_subrules_;
+ AST* phrase_tree_;
+ static void dtor_T_subrules_phrase(yacco2::VOIDP This,yacco2::VOIDP P);
+ };
+ struct T_in_stbl:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_in_stbl(T_terminal_def* Fnd_T_in_stbl,CAbs_lr1_sym* Rc,yacco2::Parser* P);
+ T_terminal_def* t_def();
+ std::list<refered_T*>* xref_t();
+ void add_T_into_xref(refered_T& T);
+ void stbl_idx(yacco2::UINT Idx);
+ int stbl_idx();
+ private:
+ T_terminal_def* t_def_;
+ std::list<refered_T*> xref_t_;
+ int stbl_idx_;
+ };
+ struct refered_T:public yacco2::CAbs_lr1_sym{
+
+ public:
+ refered_T(T_in_stbl& Term_in_stbl);
+ T_in_stbl* t_in_stbl();
+ T_terminal_def* its_t_def();
+ T_subrule_def* its_subrule_def();
+ void its_subrule_def(T_subrule_def* Its_subrule);
+ std::string* grammar_s_enumerate();
+ void grammar_s_enumerate(const char* Enumerate);
+ AST* tree_node();
+ void tree_node(AST* Tree_node);
+ rule_def* its_rule_def();
+ int element_pos();
+ void element_pos(int Pos);
+
+ private:
+ T_in_stbl* t_in_stbl_;
+ T_subrule_def* its_subrule_def_;
+ std::string grammar_s_enumerate_;
+ AST* tree_node_;
+ int element_pos_;
+ };
+ struct rule_in_stbl:public yacco2::CAbs_lr1_sym{
+
+ public:
+ rule_in_stbl(rule_def& Rule_def);
+ rule_def* r_def();
+ std::list<refered_rule*>* xref_r();
+ void add_R_into_xref(refered_rule& R);
+ void stbl_idx(yacco2::UINT Idx);
+ int stbl_idx();
+ private:
+ rule_def* r_def_;
+ std::list<refered_rule*> xref_r_;
+ int stbl_idx_;
+ };
+ struct refered_rule:public yacco2::CAbs_lr1_sym{
+
+ public:
+ refered_rule(rule_in_stbl& Rule_in_stbl);
+ rule_in_stbl* Rule_in_stbl();
+ T_subrule_def* its_subrule_def();
+ void its_subrule_def(T_subrule_def* Its_subrule);
+ std::string* grammar_s_enumerate();
+ void grammar_s_enumerate(const char* Enumerate);
+ AST* tree_node();
+ void tree_node(AST* Tree_node);
+ rule_def* its_rule_def();
+ int element_pos();
+ void element_pos(int Pos);
+ private:
+ rule_in_stbl* rule_in_stbl_;
+ T_subrule_def* its_subrule_def_;
+ std::string grammar_s_enumerate_;
+ AST* tree_node_;
+ int element_pos_;
+ };
+ struct T_transitive:public yacco2::CAbs_lr1_sym{
+ T_transitive();
+ };
+ struct T_grammar_name:public yacco2::CAbs_lr1_sym{
+ T_grammar_name();
+ };
+ struct T_thread_name:public yacco2::CAbs_lr1_sym{
+ T_thread_name();
+ };
+ struct T_monolithic:public yacco2::CAbs_lr1_sym{
+ T_monolithic();
+ };
+ struct T_no_of_T:public yacco2::CAbs_lr1_sym{
+ T_no_of_T();
+ };
+ struct T_list_of_native_first_set_terminals:public yacco2::CAbs_lr1_sym{
+ T_list_of_native_first_set_terminals();
+ };
+ struct T_end_list_of_native_first_set_terminals:public yacco2::CAbs_lr1_sym{
+ T_end_list_of_native_first_set_terminals();
+ };
+ struct T_list_of_transitive_threads:public yacco2::CAbs_lr1_sym{
+ T_list_of_transitive_threads();
+ };
+ struct T_end_list_of_transitive_threads:public yacco2::CAbs_lr1_sym{
+ T_end_list_of_transitive_threads();
+ };
+ struct T_emitfile:public yacco2::CAbs_lr1_sym{
+ T_emitfile();
+ };
+ struct T_preamble:public yacco2::CAbs_lr1_sym{
+ T_preamble();
+ };
+ struct T_end_preamble:public yacco2::CAbs_lr1_sym{
+ T_end_preamble();
+ };
+ struct T_T_alphabet:public yacco2::CAbs_lr1_sym{
+ T_T_alphabet();
+ };
+ struct T_end_T_alphabet:public yacco2::CAbs_lr1_sym{
+ T_end_T_alphabet();
+ };
+ struct T_file_of_T_alphabet:public yacco2::CAbs_lr1_sym{
+ T_file_of_T_alphabet();
+ };
+ struct T_attributes:public yacco2::CAbs_lr1_sym{
+
+ public:
+T_attributes(const char* Fully_qualified_T_name,int Enum);
+std::string fully_qualified_T_name_;
+ int T_enum_;
+ };
+ struct tth_in_stbl:public yacco2::CAbs_lr1_sym{
+
+ public:
+ tth_in_stbl(T_attributes* Fnd_T_in_stbl,CAbs_lr1_sym* Rc,yacco2::Parser* P);
+ T_attributes* t_in_stbl();
+ void stbl_idx(yacco2::UINT Idx);
+ int stbl_idx();
+ private:
+ T_attributes* t_in_stbl_;
+ int stbl_idx_;
+ };
+ struct thread_attributes:public yacco2::CAbs_lr1_sym{
+
+ public:
+ thread_attributes(const char* Fully_qualified_th_name);
+ thread_attributes
+ (const char* Fully_qualified_th_name
+ ,char Transitive
+ ,T_c_string* Grammar_name
+ ,T_c_string* Name_space_name
+ ,T_c_string* Thread_name
+ ,char Monolithic
+ ,T_c_string* File_name
+ ,std::vector<int>& List_of_Ts
+ ,std::vector<thread_attributes*>& List_of_transitive_thds
+ ,T_c_string* Fsm_comments);
+ std::string fully_qualified_th_name_;
+ char transitive_;
+ T_c_string* grammar_file_name_;
+ T_c_string* name_space_name_;
+ T_c_string* thread_name_;
+ char monolithic_;
+ T_c_string* file_name_;
+ std::vector<int> list_of_Ts_;
+ std::set<int> fs_;
+ std::vector<thread_attributes*> list_of_transitive_threads_;
+ int th_enum_;
+ T_c_string* fsm_comments_;
+ AST* called_thread_graph_;
+
+ };
+ struct th_in_stbl:public yacco2::CAbs_lr1_sym{
+
+ public:
+ th_in_stbl(thread_attributes* Fnd_th_in_stbl);
+ thread_attributes* thread_in_stbl();
+ void stbl_idx(yacco2::UINT Idx);
+ int stbl_idx();
+ private:
+ thread_attributes* th_in_stbl_;
+ int stbl_idx_;
+ };
+ struct kw_in_stbl:public yacco2::CAbs_lr1_sym{
+
+ public:
+ kw_in_stbl(CAbs_lr1_sym* Fnd_kw_in_stbl);
+ CAbs_lr1_sym* keyword_in_stbl();
+ void stbl_idx(yacco2::UINT Idx);
+ int stbl_idx();
+ private:
+ CAbs_lr1_sym* kw_in_stbl_;
+ int stbl_idx_;
+ };
+ struct T_la_expr_src:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_la_expr_src();
+ yacco2::TOKEN_GAGGLE* la_tok_can();
+ void zero_la_tok_can();
+ private:
+ yacco2::TOKEN_GAGGLE* la_tok_can_;
+ };
+ struct T_eosubrule:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_eosubrule();
+ T_subrule_def* its_subrule_def();
+ void its_subrule_def(T_subrule_def* Its_subrule);
+ std::string* grammar_s_enumerate();
+ void grammar_s_enumerate(const char* Enumerate);
+ AST* tree_node();
+ void tree_node(AST* Tree_node);
+ rule_def* its_rule_def();
+ int element_pos();
+ void element_pos(int Pos);
+
+ private:
+ T_subrule_def* its_subrule_def_;
+ std::string grammar_s_enumerate_;
+ AST* tree_node_;
+ int element_pos_;
+ };
+ struct T_called_thread_eosubrule:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_called_thread_eosubrule(T_identifier* Ns,T_identifier* Thread_name);
+ T_subrule_def* its_subrule_def();
+ void its_subrule_def(T_subrule_def* Its_subrule);
+ std::string* grammar_s_enumerate();
+ void grammar_s_enumerate(const char* Enumerate);
+ AST* tree_node();
+ void tree_node(AST* Tree_node);
+ rule_def* its_rule_def();
+ T_identifier* ns();
+ T_identifier* called_thread_name();
+ int element_pos();
+ void element_pos(int Pos);
+ private:
+ T_subrule_def* its_subrule_def_;
+ std::string grammar_s_enumerate_;
+ AST* tree_node_;
+ T_identifier* ns_;
+ T_identifier* called_thread_name_;
+ int element_pos_;
+ };
+ struct T_null_call_thread_eosubrule:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_null_call_thread_eosubrule();
+ T_subrule_def* its_subrule_def();
+ void its_subrule_def(T_subrule_def* Its_subrule);
+ std::string* grammar_s_enumerate();
+ void grammar_s_enumerate(const char* Enumerate);
+ AST* tree_node();
+ void tree_node(AST* Tree_node);
+ rule_def* its_rule_def();
+ int element_pos();
+ void element_pos(int Pos);
+ private:
+ T_subrule_def* its_subrule_def_;
+ std::string grammar_s_enumerate_;
+ AST* tree_node_;
+ int element_pos_;
+ };
+ struct T_cweb_comment:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_cweb_comment(const std::string& Comment_data);
+ std::string* comment_data();
+ private:std::string comment_data_;
+ };
+ struct T_grammar_phrase:public yacco2::CAbs_lr1_sym{
+ T_grammar_phrase();
+ };
+ struct T_cweb_marker:public yacco2::CAbs_lr1_sym{
+
+ public:
+ T_cweb_marker(AST* Node);
+ T_cweb_marker();
+ AST* ast();
+ private:AST* ast_;
+ };
+ struct T_lint:public yacco2::CAbs_lr1_sym{
+
+ T_lint();
+ };
+ struct T_list_of_used_threads:public yacco2::CAbs_lr1_sym{
+ T_list_of_used_threads();
+ };
+ struct T_end_list_of_used_threads:public yacco2::CAbs_lr1_sym{
+ T_end_list_of_used_threads();
+ };
+}//namespace
+#endif
diff --git a/web/yacco2/compiler/grammars/yacco2_test.fsc b/web/yacco2/compiler/grammars/yacco2_test.fsc
new file mode 100644
index 0000000000..9b7eddca28
--- /dev/null
+++ b/web/yacco2/compiler/grammars/yacco2_test.fsc
@@ -0,0 +1,94 @@
+file-of-T-alphabet "/yacco2/compiler/grammars/yacco2_T_enumeration.fsc"
+emitfile "/yacco2/compiler/grammars/yacco2_fsc_test.cpp"
+preamble
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_terminals.h"
+#include "yacco2_characters.h"
+using namespace NS_yacco2_T_enum;
+using namespace NS_yacco2_err_symbols;
+using namespace NS_yacco2_k_symbols;
+using namespace NS_yacco2_terminals;
+using namespace NS_yacco2_characters;
+end-preamble
+"/yacco2/compiler/grammars/rules_use_cnt.fsc"
+"/yacco2/compiler/grammars/enumerate_grammar.fsc"
+"/yacco2/compiler/grammars/first_set_rules.fsc"
+"/yacco2/compiler/grammars/enumerate_T_alphabet.fsc"
+"/yacco2/compiler/grammars/angled_string.fsc"
+"/yacco2/compiler/grammars/bad_char_set.fsc"
+"/yacco2/compiler/grammars/c_comments.fsc"
+"/yacco2/compiler/grammars/c_literal.fsc"
+"/yacco2/compiler/grammars/c_string.fsc"
+"/yacco2/compiler/grammars/c_k_of_cweb_or_cpp.fsc"
+"/yacco2/compiler/grammars/cweave_fsm_sdc.fsc"
+"/yacco2/compiler/grammars/cweave_lhs_sdc.fsc"
+"/yacco2/compiler/grammars/cweave_sdc.fsc"
+"/yacco2/compiler/grammars/cweave_T_sdc.fsc"
+"/yacco2/compiler/grammars/cweb_comments.fsc"
+//"/yacco2/compiler/grammars/cweb_marker.fsc"
+"/yacco2/compiler/grammars/cweb_put_k_into_ph.fsc"
+"/yacco2/compiler/grammars/dbl_colon.fsc"
+"/yacco2/compiler/grammars/eol.fsc"
+"/yacco2/compiler/grammars/epsilon_rules.fsc"
+"/yacco2/compiler/grammars/err_symbols_ph.fsc"
+"/yacco2/compiler/grammars/err_symbols_ph_th.fsc"
+"/yacco2/compiler/grammars/esc_seq.fsc"
+"/yacco2/compiler/grammars/eval_phrases.fsc"
+"/yacco2/compiler/grammars/fsc_file.fsc"
+"/yacco2/compiler/grammars/fsm_phrase.fsc"
+"/yacco2/compiler/grammars/fsm_phrase_th.fsc"
+"/yacco2/compiler/grammars/fsm_class_phrase_th.fsc"
+"/yacco2/compiler/grammars/identifier.fsc"
+"/yacco2/compiler/grammars/int_no.fsc"
+"/yacco2/compiler/grammars/la_expr.fsc"
+"/yacco2/compiler/grammars/la_expr_lexical.fsc"
+"/yacco2/compiler/grammars/la_express_source.fsc"
+"/yacco2/compiler/grammars/la_lrk_T.fsc"
+"/yacco2/compiler/grammars/lr1_k_phrase.fsc"
+"/yacco2/compiler/grammars/link_cleanser.fsc"
+"/yacco2/compiler/grammars/linker_id.fsc"
+"/yacco2/compiler/grammars/linker_pass3.fsc"
+"/yacco2/compiler/grammars/linker_preamble_code.fsc"
+"/yacco2/compiler/grammars/lint_balls.fsc"
+"/yacco2/compiler/grammars/lr1_k_phrase_th.fsc"
+"/yacco2/compiler/grammars/mpost_output.fsc"
+"/yacco2/compiler/grammars/o2_sdc.fsc"
+"/yacco2/compiler/grammars/parallel_monitor_ph.fsc"
+"/yacco2/compiler/grammars/parallel_parser_phrase.fsc"
+"/yacco2/compiler/grammars/parallel_parser_ph_th.fsc"
+"/yacco2/compiler/grammars/parallel_oper.fsc"
+"/yacco2/compiler/grammars/pass3.fsc"
+"/yacco2/compiler/grammars/prefile_include.fsc"
+"/yacco2/compiler/grammars/prt_xrefs_docs.fsc"
+"/yacco2/compiler/grammars/prt_sr_elements.fsc"
+"/yacco2/compiler/grammars/rc_phrase.fsc"
+"/yacco2/compiler/grammars/rc_phrase_th.fsc"
+"/yacco2/compiler/grammars/rhs_bnd.fsc"
+"/yacco2/compiler/grammars/rhs_component.fsc"
+"/yacco2/compiler/grammars/rtn_component.fsc"
+"/yacco2/compiler/grammars/rule_def_phrase.fsc"
+"/yacco2/compiler/grammars/rules_phrase.fsc"
+"/yacco2/compiler/grammars/rules_phrase_th.fsc"
+"/yacco2/compiler/grammars/rule_lhs_phrase.fsc"
+"/yacco2/compiler/grammars/subrule_def.fsc"
+"/yacco2/compiler/grammars/subrules_phrase.fsc"
+"/yacco2/compiler/grammars/subrule_vector.fsc"
+"/yacco2/compiler/grammars/terminals_phrase.fsc"
+"/yacco2/compiler/grammars/terminals_phrase_th.fsc"
+"/yacco2/compiler/grammars/test_components.fsc"
+"/yacco2/compiler/grammars/t_alphabet.fsc"
+"/yacco2/compiler/grammars/T_enum_phrase.fsc"
+"/yacco2/compiler/grammars/T_enum_phrase_th.fsc"
+"/yacco2/compiler/grammars/t_def_delabort_tags.fsc"
+"/yacco2/compiler/grammars/term_def_ph.fsc"
+"/yacco2/compiler/grammars/terminal_def_symclass.fsc"
+"/yacco2/compiler/grammars/unq_str.fsc"
+"/yacco2/compiler/grammars/ws.fsc"
+"/yacco2/compiler/grammars/xc_str.fsc"
+"/yacco2/compiler/grammars/o2_code_end.fsc"
+"/yacco2/compiler/grammars/o2_err_hdlr.fsc"
+"/yacco2/compiler/grammars/o2_lcl_opt.fsc"
+"/yacco2/compiler/grammars/o2_lcl_opts.fsc"
+"/yacco2/compiler/grammars/o2_linker_opts.fsc"
diff --git a/web/yacco2/compiler/o2/Makefile_Edit_cweb b/web/yacco2/compiler/o2/Makefile_Edit_cweb
new file mode 100644
index 0000000000..cd28197520
--- /dev/null
+++ b/web/yacco2/compiler/o2/Makefile_Edit_cweb
@@ -0,0 +1,31 @@
+#! /bin/sh
+# Makefile_Edit_cweb
+# clean up the ctangle and cweave droppings
+# changed cwebmac.tex to include \input eplain instead of modifying before o2,yacco2stbl, and yacco2extn.tex
+# comment out #line of cweb emits
+#
+tmp=/tmp/o2
+mkdir /tmp/o2
+if [ ! -e "$tmp" ]
+then
+ mkdir $tmp
+fi
+
+sed_cmd1="'-e s;^#line;//line;'"
+sed_cmd2="'-e s/^;$//'"
+
+for i in o2 o2_externs common_externs o2_defs # comment out line reference macros
+do
+ j=$i.cpp
+ echo "correcting cweb file: $j"
+ eval "sed $sed_cmd1 $sed_cmd2 < $j > $tmp/$j"
+ cp $tmp/$j $j
+done
+for i in o2 o2_externs common_externs extndefs globals # comment out line reference macros of gened headers
+do
+ j=$i.h
+ echo "correcting cweb file: $j"
+ eval "sed $sed_cmd1 $sed_cmd2 < $j > $tmp/$j"
+ cp $tmp/$j $j
+done
+rm -fr $tmp \ No newline at end of file
diff --git a/web/yacco2/compiler/o2/bugs.w b/web/yacco2/compiler/o2/bugs.w
new file mode 100644
index 0000000000..f9b70b625b
--- /dev/null
+++ b/web/yacco2/compiler/o2/bugs.w
@@ -0,0 +1,426 @@
+@q% bugs.w@>
+@q% Copyright Dave Bone 1998 - 2015@>
+@q% /*@>
+@q% This Source Code Form is subject to the terms of the Mozilla Public@>
+@q% License, v. 2.0. If a copy of the MPL was not distributed with this@>
+@q% file, You can obtain one at http://mozilla.org/MPL/2.0/.@>
+@q% */@>
+
+@** Bugs --- ugh.\fbreak
+ What are they good for? Abolutely nothing!
+Though i paraphrase the song, my entomology teaches and exposes my myopic shortcomings.
+Ahh... the forest versus the trees of relativist processes attending to correctness.
+
+@*2 |Microsoft compiler| Corrupted memory heap.\fbreak
+Well here's the scoop: IT IS THEIR TEMPLATE HANDLING
+of a globally defined set:
+The following code shows the bug:\fbreak
+\let\setuplistinghook = \linenumberedlisting
+\listing{"/usr/local/yacco2/diagrams/bug1.txt"}
+\fbreak
+\let\setuplistinghook = \relax
+Debug displays the dtor winddown of the tree
+when the program is exiting that gives its access violation.
+It is walking the tree when it thinks there is something to delete ---
+bad initialization values for their iterators within their container.
+There are other heap variants but ...
+Now the real stupidity: screen shots for MS to deal with
+and trying to send the ``feedback'' to MS out of
+Visual Studio 2005 caused another Visual Studio bug:
+it experience technical difficulties ... did not register the problem with them
+ ---
+but i had their acknowledgement reference number that i emailed
+with their assurance that they would within 3 days (whose days business?)
+acknowledge receipt of the to-be-investigated problem.
+Well u got it i'm still waiting.
+From the above code i have no pre-initialization code before it enters
+the mainline but i'll not display their screen shot as this is
+wasting my time.
+
+Again it's a sad statement regarding
+how they deal with problems and lag time before
+product fixes: just read their approach to voting on bugs before fixing them,
+all other software companies call it a ``Bug Report'' or a variant there of
+but not MS ---
+their euphemism is Customer Feedback ... stop gagging Dave,
+and why is it 2 years between compiler releases to correct bugs, and
+have u tried obtaining their Beta compiler release?
+\fbreak
+There is no fix until MS fixes it in possibly their next release.
+Until then at least it reguritates at the end of the program
+and my patience for the deliverance day.
+\fbreak
+\fbreak
+Early July 2006.
+\fbreak
+@*2 Comment no 2: Apple bug -- Problem Id: 4403453 unresolved linkages.\fbreak
+Open source has it's warts whereby i was testing how
+Apple deals with problems when they go thru a middle man
+like gnu.org for their C++ compiler and linker.
+At least they have a ``Bug Reporter'' and dialogue of receipt and
+``how's it going'' followups.
+Unfortunately
+they flunked in their Californian way to getting the problem fixed
+and in not answering how i could get their lodged reference number
+when they passed the problem to the gnu.org.
+My beef is how i can track my problem(s) within the open source community
+thru the middleman and see how fast they correct the problem?
+Voting does not count here.
+This problem is still being sat on by Apple
+when their last followup was ``how's it going?'' (only 10 months o/s).
+It only confirmed my skepticism about this community and my middleman and how
+they pass on the problem. I have not reached the next step in how gnu.org
+deals with the fielded problem.
+Going to gnu.org shows a genuine honesty towards publishing problems.
+Microsoft is not of the same ilk.
+If they were GM would people buy their cars particularly when
+there are the Naders who keep them accountable?
+What would it cost in litigation towards tarnished goods / services by MS?
+\fbreak
+\fbreak
+Another beef:\fbreak
+Proof of bug demonstrated with logged outputs etc
+does not seem to be adequate in Apple's engineers' minds?
+Boy i can't wait for the day when the software
+manufacturer can under restricted access enter my computer
+and see / diagnose problems without
+the crap of whittle down code size, demonstrate
+the bug in at most 1 line of code platitudes.
+At least Apple is a bit more earnest in frontline manners... but
+i'm still waiting on this problem particularly
+when their engineer flubbed the initial response back to me.
+
+Alas what can i do?
+I'm currently looking at Sun and their development team to
+deliver a better comnpiler
+with faster logistics in dealing with bugs.
+I'm more optimistic as my people used the ``Oregon Pascal''
+compiler for 16 years.
+Even though the company folded in the early nineties
+some of their excellent compiler engineers
+are working for Sun.
+So let's see when my Sun AMD desktop running Solaris 10
+and 3 years software support with Sun comes in so that i can peddle-to-the-metal
+my program against this new backdrop.
+So far all portings have drawn problems be it interpretations of
+the C++ compiler standard
+by the compiler writers with their implementations,
+past failings by C++ compilers to handle properly
+class itor lists with 1998 work arounds, template tantrums
+to this day and i'm not meta templating, and threading issues.
+I guess i'm just stubborn in what i think will be good for the
+software world: as i just keep on hanging on as the song goes...
+I'm slowly regressing towards C only cuz C++ has that ++ complexity with ++ bugs.
+The beguiling part of C++ is templates dealing with common containers
+that makes the withdrawal process more painful...
+\fbreak
+\fbreak
+9 Jan 2006.\fbreak
+
+@*2 |Sun Microsystems compiler|. Excellent!.\fbreak
+Well so far the \O2 port is going well.
+Their performance tools are great.
+Their compiler works as it should.
+Their development IDE is close to Microsoft in facilities.
+The only speed bump is in the ``file mount'' when it occassionally gets lost
+in not finding things even when the mounted account has been refreshed.
+Also their text editor can't handle very large text files like tracings.
+The odd time ``Sunstudio'' goes in tail-chasing: must exit out and sign back in but...
+Overall rating between a 1 - 10 dada 11 that binary for well done even with the droppings
+as what is probably happening (my musings) in their messaging / interupt facility
+drops those claques --- that french for hits.
+\fbreak
+\fbreak
+23 March 2007.\fbreak
+PS: won't be going back to Microsoft. They are too arrogent without the personalized
+client support. Sun's problem reporting / case followup is just excellent. With just posted
+black quarter results and the flop of Vista buy-in i hope this bodes well for Sun
+who are trying very hard to be Open and frank. Keep it going Sun!
+
+@*2 Incomplete gening of state's core items due to common prefix.\fbreak
+The state being gened is determined by the elements associated to the closure
+state being formed.
+If there is a common prefix making up the state whereby the elements come from
+different closure states, still all the elements must go into the goto state being gened.
+As i walked the vector list, the elements that were of different closure state
+were skipped.
+This was the filtering that took place when the State was
+being assessed for closure items generation.
+The first item found for generation also became the starting point within the list
+to gen from. Remember the ``goto symbol'' vector is a list of elements to gen.
+Solution: any element in the
+``goto symbol'' vector meets the filter criteria, then
+the complete list must be used: not from the point found within the list.
+Like any mistake --- just dumb! It was not conceptual but an implementation slippage.
+|@<create a new state@>| adjusted as the element list's
+``begin and end'' j and je variables are
+present due to Apple's compiler's indigestion. Again quality assurance on
+Open Source can be exasperating at the compiler level! Sun's compiler
+is greeeeat!
+\fbreak
+\fbreak
+July 2007.\fbreak
+
+@*2 Missing reduced state deposit on prefix elements
+ leading up to the merged state.\fbreak
+Only went back 1 element to deposit the reduced state: Missing reduce deposits
+for the balance of elements
+ thru to the beginning
+of the subrule. Man there are times when u missed the boat Dave. No its links!
+\fbreak
+\fbreak
+July 2007.\fbreak
+
+@*2 3rd party AdobeReader annoyances.\fbreak
+|xpdf| and |gpdf| programs ain't doing too well on my Sun Solaris Operating system.
+As i output pdf documents and these programs either core dump or display partial info, this
+ain't good.
+So i have split up the documents generated so that one can take what is wanted, and
+hopefully i'll be able to get a more recent version that works as
+Adobe seems to be avoiding proprietary Ops --- particularly Sun.
+BTW, the generated documents work properly on my Apple iBook laptop.
+\fbreak
+\fbreak
+Sept. 2007.\fbreak
+
+@*2 Missing T(s) in lookahead set due to merges.\fbreak
+The problem was i use a list of closure states of merges that are state contexts
+for the follow set calculation.
+Remember, closure states provide the follow set contexts.
+If 2 subrules of a rule are merged into the same ``closure state'' context:
+u now have duplicate states in the ``merged into'' list.
+So i test on membership before adding to the list.
+Here's the melted down rogue grammar where ``Ra'' has the 2 subrules:\fbreak
+\let\setuplistinghook = \linenumberedlisting
+\listing{"/usr/local/yacco2/diagrams/1test.txt"}
+\fbreak
+\let\setuplistinghook = \relax
+Ra's lookahead set is ``c,m,t'' but it was missing ``m''
+caused by the duplicate closure state.
+Why u ask does duplicates cause a problem? i tested visited states to guard agaist
+cycles so
+stop going thru the balance of the list!
+\fbreak
+\fbreak
+Nov. 2007.\fbreak
+
+@*2 Not testing Start State for LRness.\fbreak
+The symtoms: the quality assurance non lr1 grammar caused \O2 to loop
+when gening its states and more states ...
+The cause came from the epsilon rule in the state state
+not having its reduce\_state set to self.
+When gening the |calc_la| for the reduced subrule, it exited due to the
+sanity check on state address must be the same as the reduce state address.
+So there was no lookahead set for the reducing and consequently
+no proper santity checks of outcome.
+Well why did u not thrown an error?
+Don't know what my thought process was at time so enough of the conjecture.
+The |TS_path7.lex| grammar did it.
+So let's hear it for QA.
+\fbreak
+\fbreak
+Jul. 2008.\fbreak
+
+@*2 Run run run run run away.\fbreak
+The symtoms: gening of states keeps going into a right recursion loop
+that never ends until ``death do us part'' with memory.
+The current closure state network being gened did not detect on self
+one of its states being ``not lr1'' compatible.
+Please see |/yacco2/qa/knu1_sick.lex|
+grammar to test this out.
+This bug came about when i was gening up some of the grammars from
+Knuth's paper --- ``On the translation of laguages from left to right''
+In ``Information and Control'', volume 8 of 6, pages 607--639, 1965.
+The first grammar got mistyped where RB was replaced with RA
+which made it not lr1.
+Not too swift Dave --- ahh the Occam of self reflections.
+But the detection of it strengthens \o2.
+\o2 stops gening the lr states, announces the bad news,
+and reguritates its states configurations to show where the
+nonlr1ness was found.
+\fbreak
+\fbreak
+Oct. 2008.\fbreak
+
+@*2 Ditto to above --- random monkeys throwing coconuts.\fbreak
+The symtoms: occassionally not completing the gening of states
+for a specific closure network.
+Due to the introduction of |gening_a_state| returning a status,
+i forgot to return ``a default true'' when the vector loop was completed.
+This loop is normally not completed ``the normal for loop'' way
+but a ``bypass this vector for the gening''
+as it is associated with another closure state network
+continues with the next vector in the for loop.
+So random results returned was caused by
+whatever was in the memory at the time.
+So it's not the sky falling only Dave's memory lapses, myopic vission,
+and not paying attention to the simple code.
+\fbreak
+\fbreak
+Oct. 2008.\fbreak
+
+@*2 Random VMS monkeys throwing spurious end-of-lines into streaming text.\fbreak
+The symtoms: in VMS the outputted C++ source files contains spurious carriage returns.
+Man u should see what it does to the C++ compiler
+when trying to compile these grammar programs where variable names are
+sliced-and-diced, struct defintions malformed, and
+ keywords being morphed. When the VMS C++ compiler hits
+the streaming text's buffer-end
+it takes the initiative to insert an end-of-line (carrage return). How calvalier!
+\fbreak
+The work-around: Use lots and lots of ``std::endl()''
+to flush out the text buffer instead of text ending with ``\\n''.
+Not efficient but hey do u think HP will fix this
+when their C++ compiler is probably contracted out?
+Researching this problem they suggested this work-around
+as the smell is still lingering and the latest compiler
+dittos the same tune.
+Ditto workaround to \olinker's output that manages the global thread list
+and their ``first sets''.
+\fbreak
+\fbreak
+Dec. 2008.\fbreak
+
+@*2 Take 2: Random VMS monkeys throwing spurious end-of-lines.\fbreak
+The problem is how VMS opens a file. If it is transfered using ``ftp''
+onto the Alpha as default text, then the file attributes are variable length with carriage return.
+This is the fault. By getting ``o2'' working and deleting all the ``cpp'' type files, they
+get gened as ``stream-lf'' file and not as a file of variable length with carriage return.
+This was discovered when ``o2linker'' was taking 60 to 100 x longer to
+output the ``yacco2\_fsc.fsc''
+file from its input: ``yacco2.fsc'' file.
+When the old ``yacco2\_fsc.cpp'' file was removed,
+VMS operating system did not default to the previous version
+with its attributes but created it as a ``stream-lf'' type file provided by ``ofstream'' type.
+This stopped the heavy seeking on writing out the file as it was probably
+doing this per character.
+Now the file is generated in less that a second rather than 60 plus seconds.
+
+This led to looking at the last problem of random ``end-of-line'' inserts
+being injected into the source file
+when on its file buffer boundary: when
+it flushes the buffer out to the disk.
+Low and behold, both generating of Tes and Error definitions now work
+ with ``stream-lf'' file attributes and {\bf no suprious end-of-line} injections.
+Yipee.
+\fbreak
+\fbreak
+Dec. 2009.\fbreak
+
+@*2 Other takes on VMS port: cxxlink.\fbreak
+When linking the last problem was unresolved symbols: {\sl cxxdemangle} on these symbols
+showed that they were all template based.
+Required was making sure the various respositories
+ were also present per
+library: ``yacco2'', and ``o2grammars''. Without this, some of the templates from ``o2''
+were undefined due to incomplete instantiation.
+For the 2 libraries, it is their type definitions used within the
+templates that are required.
+Here is {\sl cxxlink}'s {\bf /reportitory} parameter for ``o2'' link
+to resolve their references:\fbreak
+\INDENT{2cm}{/repository=([yacco2.compiler.o2.cxx\_repository]-}
+\INDENT{3cm}{,[yacco2.compiler.grammars.cxx\_repository]-}
+\INDENT{3cm}{,[yacco2.library.cxx\_repository])-}
+This allows VMS's {\sl cxxlink} to recompile these partially instantiated templates.
+The 1st repository is read/write while the others are read-only: u must follow the order as
+``o2'' is still being compiled and its repository will be completed by the
+{\sl cxxlink} reguritation of source templates back to {\sl cxx} compiler.
+
+The order of the
+libraries inputted are not multipassed by {\sl cxxlink} for unresolved symbols.
+This occurred with yacco2's symbol table ``add\_sym\_to\_stbl'' routine that
+is in the ``o2grammars'' library.
+Originally the inputted libraries was ``yacco2'' followed by ``o2grammars''.
+I needed to have the ``o2grammars/lib''
+first in the list of libraries instead of ``yacco2/lib''.
+
+A final adjustment was ``how much stack space'' to reserve both per thread and for the process
+that the threads ran under.
+Parameter ``stack=1024'' for the process like ``o2'' and ``o2linker''.
+``pthread'' allocation is 10$^6$ in bytes in the ``yacco2\_compile\_symbols.h'' file:\fbreak
+\INDENT{2cm}{VMS\_PTHREAD\_STACK\_SIZE\_\_ 1024*4*256}
+It was a bit of a hit-and-trial-by-fire to get it going.
+All told now ``o2'' is ported onto VMS and it works.
+\fbreak
+\fbreak
+Dec. 2009.\fbreak
+
+@*2 Evil con numbra those optimizations: lr1 compatibility check.\fbreak
+Background to my stupidities in |is_state_lr1_compatible|:\fbreak
+A thread grammar's la expression has only ``eolr'' in it.
+So it is not exploded into all the other Tes if alone.
+Now the lr1 compatibility check expected that the reducing la
+had exploded it. So ...
+Before it was working but with the explosion or is my implosion?
+\fbreak
+\fbreak
+To respect the optimization, 2 checks are done:\fbreak
+If there are 2 reduces taking place and ``eolr'' is present then not lr1.
+On the shift / reduce check, if ``eolr'' is present then ca boom.
+\fbreak
+\fbreak
+Jan. 2010.\fbreak
+
+@*2 \ALLshift{} versus ``eolr'' Evil con numbra duo: lr1 compatibility check.\fbreak
+See previous stupidity.
+With above eolr vs \ALLshift{} which also means all-the-terminals.
+So u are shifting on all Tes and trying to reduce on all Tes.
+I lean to the shift-in-the-wild until
+ the use \ALLshift{} facility is turned off.
+This is a non lr(1) extension.
+Leave alone and default to \ALLshift{} over ``eolr''.
+
+\fbreak
+\fbreak
+2 lr(1) compatability checks are done:\fbreak
+If there are 2 reduces taking place and ``eolr'' is present then not lr1.
+Shift / reduce check: if shift not one of the ``lr1 k terminals'' and the
+eolr is present its ca boom.
+\fbreak
+\fbreak
+Feb. 2010.\fbreak
+
+\fbreak
+\fbreak
+@*2 Closure state/vector context infinitely gening states when 1 of its own states not lr(1).\fbreak
+Originally detected improperly which made a legitimate grammar declared as not lr1.\fbreak
+The short of it is to test the states while being gened for lr1 compatibility.
+The loop was caused when the gening closure state/vector was within itself and not lr1
+which kept adding to the states to be gened.
+|gen_a_state| and |gen_transitive_states_for_closure_part_of_state| now handle
+the situation properly.
+The gening closure context is passed to them with these functions returning
+``continue gening'' or ``stop'' status back to their callers.
+The bad state is added to the gening states network so that the appropriate
+state reducing context is reported to the user as not lr1 for fixing.
+Also the gening of the grammar's start state loop within the main program
+handles the compatibility issue while gening rather than do a post lr1 evaluation.
+\fbreak
+
+Rewrote the ``lr states driver'' and
+included tracing to {\bf{lrclog}} with the lr state decisions made
+using the closure/vector gening contexts regarding states its gens,
+merging of states, and non lr1ness discovery be it against proposed state merges, and ugh
+a non lr1 grammar.
+This log allows one to review decisions made by \O2{} to discover faulty grammars, or faulty gened grammars.
+Of course its a faster way for me the author to correct implementation
+foibles.
+It also helps u when
+the grammar is wonkie and u want to see where the ambiguous context is for the correcting.
+\fbreak
+\fbreak
+Oct. 2014.\fbreak
+
+@*2 Improvement: arbitration-code procedure name added to grammar doc.\fbreak
+Where did i indicate the arbritration code used or not by each \PARshift{} state?
+Nada. So |mpost_output.lex| grammar now emits such indicator when present to the grammar's document
+within the lr state network,
+ |o2_types.w| and |o2_defs.w|
+were adjusted to add the |arbitration_name_| string in the state definition.
+|o2_externs.w| sets the state's |arbitration_name_|
+when found in the state where one of its threading subrule(s) has arbitration-code.
+At least now the grammar writer can post assess when arbitration is happening.
+\fbreak
+\fbreak
+Oct. 2014\fbreak
+
diff --git a/web/yacco2/compiler/o2/common_externs.cpp b/web/yacco2/compiler/o2/common_externs.cpp
new file mode 100644
index 0000000000..6c2bf5ca10
--- /dev/null
+++ b/web/yacco2/compiler/o2/common_externs.cpp
@@ -0,0 +1,379 @@
+/*7:*/
+//line 87 "/usr/local/yacco2/externals/common_externs.w"
+
+/*6:*/
+//line 84 "/usr/local/yacco2/externals/common_externs.w"
+
+#include "common_externs.h"
+/*:6*/
+//line 88 "/usr/local/yacco2/externals/common_externs.w"
+
+/*8:*/
+//line 93 "/usr/local/yacco2/externals/common_externs.w"
+
+
+
+/*:8*//*10:*/
+//line 116 "/usr/local/yacco2/externals/common_externs.w"
+
+extern
+void GET_CMD_LINE
+(int argc,char*argv[],const char*Holding,yacco2::TOKEN_GAGGLE&Errors)
+{
+using namespace std;
+using namespace NS_yacco2_err_symbols;
+using namespace yacco2;
+ofstream ofile;
+ofile.open(Holding,ios_base::out|ios::trunc);
+if(!ofile){
+CAbs_lr1_sym*sym= new Err_bad_filename(Holding);
+sym->set_external_file_id(1);
+sym->set_line_no(1);
+sym->set_pos_in_line(1);
+Errors.push_back(*sym);
+return;
+}
+if(argc==1){
+char cmd_line[Max_buf_size];
+cout<<"Please enter Command line to process: ";
+cin.get(cmd_line,Max_buf_size,'\n');
+ofile<<cmd_line;
+ofile.close();
+return;
+}
+for(int x= 1;x<argc;++x){
+ofile<<argv[x]<<' ';
+}
+ofile.close();
+return;
+}
+
+/*:10*//*11:*/
+//line 167 "/usr/local/yacco2/externals/common_externs.w"
+
+extern
+void
+DUMP_ERROR_QUEUE(yacco2::TOKEN_GAGGLE&Errors)
+{
+using namespace NS_yacco2_k_symbols;
+using namespace yacco2;
+Errors.push_back(*yacco2::PTR_LR1_eog__);
+Errors.push_back(*yacco2::PTR_LR1_eog__);
+using namespace NS_o2_err_hdlr;
+Co2_err_hdlr fsm;
+Parser pass_errors(fsm,&Errors,0);
+pass_errors.parse();
+yacco2::Parallel_threads_shutdown(pass_errors);
+
+}
+
+/*:11*//*12:*/
+//line 185 "/usr/local/yacco2/externals/common_externs.w"
+
+extern const char*DATE_AND_TIME(){
+static std::string dt;
+if(dt.empty()){
+time_t theTime= time(0);
+char*cTime= ctime(&theTime);
+dt+= cTime;
+int n= dt.find('\n');
+dt[n]= ' ';
+}
+return dt.c_str();
+}
+
+/*:12*//*13:*/
+//line 199 "/usr/local/yacco2/externals/common_externs.w"
+
+extern
+void
+XLATE_SYMBOLS_FOR_cweave(const char*Sym_to_xlate,char*Xlated_sym){
+Xlated_sym[0]= (char)0;
+int lll= strlen(Sym_to_xlate);
+int app_ptr= 0;
+for(int x= 0;x<lll;++x,--app_ptr){
+switch(Sym_to_xlate[x]){
+case'{':{
+int sz= sizeof("\\BRACEOPEN{}");
+strncpy(&Xlated_sym[app_ptr],"\\BRACEOPEN{}",sz);
+app_ptr+= sz;
+continue;
+}
+case'}':{
+int sz= sizeof("\\BRACECLOSE{}");
+strncpy(&Xlated_sym[app_ptr],"\\BRACECLOSE{}",sz);
+app_ptr+= sz;
+continue;
+}
+case'<':{
+int sz= sizeof("\\LTsign{}");
+strncpy(&Xlated_sym[app_ptr],"\\LTsign{}",sz);
+app_ptr+= sz;
+continue;
+}
+case'>':{
+int sz= sizeof("\\GTsign{}");
+strncpy(&Xlated_sym[app_ptr],"\\GTsign{}",sz);
+app_ptr+= sz;
+continue;
+}
+case'@':{
+int sz= sizeof("\\ATsign{}");
+strncpy(&Xlated_sym[app_ptr],"\\ATsign{}",sz);
+app_ptr+= sz;
+continue;
+}
+case'|':{
+if(x+2<lll){
+if(Sym_to_xlate[x+2]!='|'){
+int sz= sizeof("\\Verticalbar ");
+strncpy(&Xlated_sym[app_ptr],"\\Verticalbar ",sz);
+app_ptr+= sz;
+continue;
+}
+}else{
+int sz= sizeof("\\Verticalbar ");
+strncpy(&Xlated_sym[app_ptr],"\\Verticalbar ",sz);
+app_ptr+= sz;
+continue;
+}
+switch(Sym_to_xlate[x+1]){
+case'+':{
+int sz= sizeof("\\ALLshift{}");
+strncpy(&Xlated_sym[app_ptr],"\\ALLshift{}",sz);
+app_ptr+= sz;
+x+= 2;
+continue;
+}
+case'.':{
+int sz= sizeof("\\INVshift{}");
+strncpy(&Xlated_sym[app_ptr],"\\INVshift{}",sz);
+app_ptr+= sz;
+x+= 2;
+continue;
+}
+case'?':{
+int sz= sizeof("\\QUEshift{}");
+strncpy(&Xlated_sym[app_ptr],"\\QUEshift{}",sz);
+app_ptr+= sz;
+x+= 2;
+continue;
+}
+case'|':{
+int sz= sizeof("\\PARshift{}");
+strncpy(&Xlated_sym[app_ptr],"\\PARshift{}",sz);
+app_ptr+= sz;
+x+= 2;
+continue;
+}
+case'r':{
+int sz= sizeof("\\REDshift{}");
+strncpy(&Xlated_sym[app_ptr],"\\REDshift{}",sz);
+app_ptr+= sz;
+x+= 2;
+continue;
+}
+case'p':{
+int sz= sizeof("\\PROCshift{}");
+strncpy(&Xlated_sym[app_ptr],"\\PROCshift{}",sz);
+app_ptr+= sz;
+x+= 2;
+continue;
+}
+case't':{
+int sz= sizeof("\\TRAshift{}");
+strncpy(&Xlated_sym[app_ptr],"\\TRAshift{}",sz);
+app_ptr+= sz;
+x+= 2;
+continue;
+}
+default:{
+int sz= sizeof("\\Verticalbar{}");
+strncpy(&Xlated_sym[app_ptr],"\\Verticalbar{}",sz);
+app_ptr+= sz;
+continue;
+}
+}
+}
+case'+':{
+int sz= sizeof("+");
+strncpy(&Xlated_sym[app_ptr],"+",sz);
+app_ptr+= sz;
+continue;
+}
+case'-':{
+int sz= sizeof("-");
+strncpy(&Xlated_sym[app_ptr],"-",sz);
+app_ptr+= sz;
+continue;
+}
+case'*':{
+int sz= sizeof("\\ASTERICsign{}");
+strncpy(&Xlated_sym[app_ptr],"\\ASTERICsign{}",sz);
+app_ptr+= sz;
+continue;
+}
+case'#':{
+int sz= sizeof("\\NOsign ");
+strncpy(&Xlated_sym[app_ptr],"\\NOsign ",sz);
+app_ptr+= sz;
+continue;
+}
+case'&':{
+int sz= sizeof("\\AMPERsign{}");
+strncpy(&Xlated_sym[app_ptr],"\\AMPERsign{}",sz);
+app_ptr+= sz;
+continue;
+}
+case'%':{
+int sz= sizeof("\\PERCENTsign{}");
+strncpy(&Xlated_sym[app_ptr],"\\PERCENTsign{}",sz);
+app_ptr+= sz;
+continue;
+}
+case'$':{
+int sz= sizeof("\\DOLLARsign{}");
+strncpy(&Xlated_sym[app_ptr],"\\DOLLARsign{}",sz);
+app_ptr+= sz;
+continue;
+}
+case'\\':{
+if(lll==1){
+int sz= sizeof("\\BKSLASHsign{}");
+strncpy(&Xlated_sym[app_ptr],"\\BKSLASHsign{}",sz);
+app_ptr+= sz;
+continue;
+}
+switch(Sym_to_xlate[x+1]){
+case'\\':{
+if(lll==2){
+int sz= sizeof("\\BKSLASHsign{}");
+strncpy(&Xlated_sym[app_ptr],"\\BKSLASHsign{}",sz);
+app_ptr+= sz;
+++x;
+continue;
+}
+int sz= sizeof("\\");
+strcat(Xlated_sym,"\\");
+app_ptr+= sz;
+++x;
+continue;
+}
+case'"':{
+int sz= sizeof("\\DBLQUOTEsign{}");
+strncpy(&Xlated_sym[app_ptr],"\\DBLQUOTEsign{}",sz);
+app_ptr+= sz;
+++x;
+continue;
+}
+case'\'':{
+int sz= sizeof("\\RTQUOTEsign{}");
+strncpy(&Xlated_sym[app_ptr],"\\RTQUOTEsign{}",sz);
+app_ptr+= sz;
+++x;
+continue;
+}
+case'n':{
+int sz= sizeof("\n");
+strncpy(&Xlated_sym[app_ptr],"\n",sz);
+app_ptr+= sz;
+++x;
+continue;
+}
+case't':{
+int sz= sizeof("\t");
+strncpy(&Xlated_sym[app_ptr],"\t",sz);
+app_ptr+= sz;
+++x;
+continue;
+}
+case'r':{
+int sz= sizeof("\r");
+strncpy(&Xlated_sym[app_ptr],"\r",sz);
+app_ptr+= sz;
+++x;
+continue;
+}
+case'v':{
+int sz= sizeof("\v");
+strncpy(&Xlated_sym[app_ptr],"\v",sz);
+app_ptr+= sz;
+++x;
+continue;
+}
+case'b':{
+int sz= sizeof("\b");
+strncpy(&Xlated_sym[app_ptr],"\b",sz);
+app_ptr+= sz;
+++x;
+continue;
+}
+case'f':{
+int sz= sizeof("\f");
+strncpy(&Xlated_sym[app_ptr],"\f",sz);
+app_ptr+= sz;
+++x;
+continue;
+}
+case'a':{
+int sz= sizeof("\a");
+strncpy(&Xlated_sym[app_ptr],"\a",sz);
+app_ptr+= sz;
+++x;
+continue;
+}
+case'?':{
+int sz= sizeof("\?");
+strncpy(&Xlated_sym[app_ptr],"\?",sz);
+app_ptr+= sz;
+++x;
+continue;
+}
+default:{
+int sz= sizeof("\\");
+strncpy(&Xlated_sym[app_ptr],"\\",sz);
+app_ptr+= sz-1;
+strncpy(&Xlated_sym[app_ptr],&Sym_to_xlate[x+1],1);
+++app_ptr;
+strncpy(&Xlated_sym[app_ptr],"",1);
+++x;
+++app_ptr;
+continue;
+}
+}
+}
+case'^':{
+int sz= sizeof("\\UPARROWsign{}");
+strncpy(&Xlated_sym[app_ptr],"\\UPARROWsign{}",sz);
+app_ptr+= sz;
+continue;
+}
+case'~':{
+int sz= sizeof("\\TILDE{}");
+strncpy(&Xlated_sym[app_ptr],"\\TILDE{}",sz);
+app_ptr+= sz;
+continue;
+}
+case'_':{
+int sz= sizeof("\\_");
+strncpy(&Xlated_sym[app_ptr],"\\_",sz);
+app_ptr+= sz;
+continue;
+}
+default:{
+strncpy(&Xlated_sym[app_ptr],&Sym_to_xlate[x],1);
+++app_ptr;
+strncpy(&Xlated_sym[app_ptr],"",1);
+++app_ptr;
+continue;
+}
+}
+}
+}
+
+/*:13*/
+//line 89 "/usr/local/yacco2/externals/common_externs.w"
+
+
+
+/*:7*/
diff --git a/web/yacco2/compiler/o2/common_externs.h b/web/yacco2/compiler/o2/common_externs.h
new file mode 100644
index 0000000000..2a6f913943
--- /dev/null
+++ b/web/yacco2/compiler/o2/common_externs.h
@@ -0,0 +1,28 @@
+/*4:*/
+//line 63 "/usr/local/yacco2/externals/common_externs.w"
+
+#ifndef common_extern_
+#define common_extern_ 1
+
+//line 66 "/usr/local/yacco2/externals/common_externs.w"
+
+/*5:*/
+//line 71 "/usr/local/yacco2/externals/common_externs.w"
+
+#include "globals.h"
+#include "/usr/local/yacco2/compiler/o2/o2_types.h"
+#include "o2_lcl_opts.h"
+#include "o2_lcl_opt.h"
+#include "o2_err_hdlr.h"
+extern
+void GET_CMD_LINE(int argc,char*argv[]
+,const char*File,yacco2::TOKEN_GAGGLE&Errors);
+extern
+void DUMP_ERROR_QUEUE(yacco2::TOKEN_GAGGLE&Errors);
+extern const char*DATE_AND_TIME();
+/*:5*/
+//line 67 "/usr/local/yacco2/externals/common_externs.w"
+
+#endif
+
+/*:4*/
diff --git a/web/yacco2/compiler/o2/globals.h b/web/yacco2/compiler/o2/globals.h
new file mode 100644
index 0000000000..71a3d6cf8f
--- /dev/null
+++ b/web/yacco2/compiler/o2/globals.h
@@ -0,0 +1,26 @@
+/*1:*/
+//line 13 "./o2_types.w"
+
+
+
+#ifndef globals_h__
+#define globals_h__ 1
+#include <stdarg.h>
+#include <stdlib.h>
+#include <string.h>
+#include <limits.h>
+
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_characters.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_terminals.h"
+using namespace std;
+using namespace NS_yacco2_T_enum;
+using namespace NS_yacco2_k_symbols;
+using namespace NS_yacco2_terminals;
+using namespace yacco2;
+#endif
+
+/*:1*/
diff --git a/web/yacco2/compiler/o2/includes.w b/web/yacco2/compiler/o2/includes.w
new file mode 100644
index 0000000000..7770ee4668
--- /dev/null
+++ b/web/yacco2/compiler/o2/includes.w
@@ -0,0 +1,50 @@
+@q file: includes.w@>
+@q% Copyright Dave Bone 1998 - 2015@>
+@q% /*@>
+@q% This Source Code Form is subject to the terms of the Mozilla Public@>
+@q% License, v. 2.0. If a copy of the MPL was not distributed with this@>
+@q% file, You can obtain one at http://mozilla.org/MPL/2.0/.@>
+@q% */@>
+@** Cweb's writing out of \O2 program.\fbreak
+@*2 Include files.\fbreak
+To start things off, there are the Standard Template Library (STL) containers,
+ \Yacco2's parse library definitions, and the specific
+grammar definitions to parse the grammar.
+@<Include files@>=
+#include "globals.h"
+#include "yacco2_stbl.h"
+using namespace yacco2_stbl;
+#include "o2_lcl_opts.h"
+#include "o2_lcl_opt.h"
+#include "pass3.h"
+#include "o2_types.h"
+#include "la_expr_lexical.h"
+#include "la_expr.h"
+#include "enumerate_T_alphabet.h"
+#include "epsilon_rules.h"
+#include "mpost_output.h"
+#include "prt_xrefs_docs.h"
+#include "eval_phrases.h"
+#include "enumerate_grammar.h"
+#include "rules_use_cnt.h"
+@ Accrue \O2 code.
+@<accrue \o2 code@>= // accrue code
+
+@*2 Create header file for \O2 environment.\fbreak
+Note, the ``include search'' directories for the c++ compiler has to be supplied
+to the compiler environment used. This must include \Yacco2's library.
+@(o2.h@>=
+@h
+#ifndef o2__
+#define o2__ 1
+@<Include files@>;
+ @<External rtns and variables@>;
+#endif
+
+@*1 \O2 implementation.\fbreak
+Start the code output to |o2.cpp|
+by appending its include file.
+@(o2.cpp@>=
+#include "o2.h"
+@<accrue \o2 code@>;
+
diff --git a/web/yacco2/compiler/o2/intro.w b/web/yacco2/compiler/o2/intro.w
new file mode 100644
index 0000000000..233feef680
--- /dev/null
+++ b/web/yacco2/compiler/o2/intro.w
@@ -0,0 +1,417 @@
+@q file: intro.w@>
+@q% Copyright Dave Bone 1998 - 2015@>
+@q% /*@>
+@q% This Source Code Form is subject to the terms of the Mozilla Public@>
+@q% License, v. 2.0. If a copy of the MPL was not distributed with this@>
+@q% file, You can obtain one at http://mozilla.org/MPL/2.0/.@>
+@q% */@>
+@** Summary of \O2 --- Yacco${_2}$'s nickname.\fbreak
+The compiler / compiler's formal name is \Yacco2 but call me \O2.
+\Yacco2 can be morphed many ways; here are some hints: sound of a cold, molecular contortions.
+Do your own expletives.
+@*2 Component overview running \O2.\fbreak
+I use a ``.lex'' extension to distinguish a grammar file.
+This is not hard coded. You can choose your own memory mnemonics for any of my files.
+The ``.T'' file extension identifies the Terminal vocabulary.
+Its components are described later in the document.
+The Lrk and Rc terminals are pre-assembled and reside in the
+``\Whereyacco2/library/grammars'' account.
+My original thought was to allow the compiler writer to experiment with his own
+terminal definitions for all classes: LR constants, raw characters, errors, and terminals.
+From experience, only the last 2 classes are local to each language being defined.
+\fbreak
+\fbreak
+\convertMPtoPDF{"/usr/local/yacco2/diagrams/o2_overview.1"}{1}{1}
+\fbreak
+\fbreak
+Please note, the ``header'' files are absent from the diagram due to space constraints.
+The salient ones to note are:\fbreak
+\ptindent{1) the enumeration of the vocabulary's symbols}
+\ptindent{2) headers for fsm, and the terminal classifications: lrk,error,rc,and T}
+Per compiled ``xxx.lex'' grammar, the 2 status files ``xxx\_tracings.log'' and ``xxx\_errors.log''
+hold the text-only compiled results lodged within the local grammar's folder.
+``T-Alphabet'' gets gened when the ``-t'' option is inputted
+to gen the Terminal vocabulary.
+It is a file by defined order of all the terminals's literal names
+ used as comments against the outputted lookahead tables
+to make sense of their compressed set definitions.
+Its file name is built from the grammar's ``T-enumeration'' construct
+using its filename and adding
+a ``.fsc'' extension.
+\Olinker cross checks the number of terminals defined
+ in the ``no-of-T'' value in each grammar's ``fsc'' file against this file.
+Out-of-sync values indicates that new terminals have been added to
+either the ``error'' or ``terminal'' class terminals vocabulary
+ without gening up the grammar with the ``-t'' and/or ``-err'' option(s).
+The ``yyy.fsc'' file is the grammar writer's handcrafted file containing
+references to these ``xxx.fsc'' files
+and the T-Alphabet file for \Olinker to
+compile. Its name can be anything but i use the ``.fsc'' as a memory jog.
+Please see \Olinker's documentation on its raison d'\^etre and make file comments.
+
+@*3 Tracing facilities.\fbreak
+Some of the more important tracing facilities are as follows where their mnemonic
+replaces the ``xx'': \fbreak
+\ptindent{TH --- dynamic trace of the grammar's parse stack when its ``debug option is true}
+\ptindent{T --- trace terminals fetched across all grammars}
+\ptindent{AR --- trace arbitration when grammar's debug switch is true}
+\ptindent{MSG --- dynamic threading messages between the co-operatives}
+Please see \O2's library documentation concerning
+each tracing variable when set to 1 within your
+program by the programmer: ``yacco2::YACCO2\_xx\_\_ = 1;''
+starts their specific scribblings.
+There are other less important trace variables not listed above.
+The turned on \O2's library trace facility will log to ``xxx\_tracings.log' file where `xxx'
+represents the grammar being parsed without its extension.
+As the ``xxx\_tracings.log'' is text-only content, this allows the use of a general text editor
+to browse its material.
+If the editor has indigestion due to its volume, a script can be written to postprocess
+it for study by the ``sed'' / ``grep'' combo or using just the ``split'' utility.
+
+@*2 Grammar anatomy.\fbreak
+The grammar is composed of your traditional
+components: start rule, non-terminal vocabulary,
+terminal vocabulary, and 2 additional parts: fsm and syntax directed code.
+``fsm'' (short for finite state machine) is a packaging agent.
+It houses all the grammar's software generated parts along with
+the c++ syntax directed code within the grammar
+ associated with their directives.
+These directives are local to the grammar's rules, subrules, and possibly
+ the grammar's start-run-finish sequence that is handled within the fsm.
+``fsm'' supplies the grammar's c++ namespace,
+ class name, and filename prefix to output the components to.
+
+@*2 Terminal vocabulary.\fbreak
+From the diagram below, the ``enumeration'' component is a packaging agent that
+receives the outputed enumeration definitions for each terminal class.
+The counting scheme uses the natural numbers
+starting from 0 listing the ``lrk'' constants, followed by each of the
+other components's terminals.
+The last component ``terminals'' is your regular terminal definitions that gets assembled from
+the lexical or syntactical passes, and possibly out into etherland of abstraction.
+All vocabulary elements are tagged this way.
+It is the glue to all the emitted tables.
+For the record, each grammar's non-terminal vocabulary (rules)
+ are enumerated after the terminal enumeration count
+and are defined within the grammar's fsm class definition.
+The rules's subrules are also enumerated and defined there.
+They are not dependent on the Terminal vocabulary.
+\fbreak
+\fbreak
+\convertMPtoPDF{"/usr/local/yacco2/diagrams/o2_Toverview.1"}{1}{1}
+\fbreak
+
+
+@*2 Overview of generating the grammar's pdf and postscript(ps) documents.\fbreak
+There are 2 generated documents using the ``-p'' option emitting
+``cweave'' content and associated ``mpost'' diagrams for compilation:\fbreak
+\INDENT{.35in}{1) grammar with its syntax direct code,}
+\INDENT{.5in}{emitted \O2linker file, and gened lr1 state network}
+\INDENT{.35in}{2) various cross references against the grammar, and lr1 state network}
+\INDENT{.7in}{- symbols used from each rule's subrules symbol string position}
+\INDENT{.7in}{- additional information supporting the lr1 state network in the 1st document}
+\INDENT{1in}{$\bullet$ each lr1 state's rules follow sets}
+\INDENT{1in}{$\bullet$ reducing states subrules with references to their contributors' follow sets}
+\INDENT{1in}{$\bullet$ global lookahead sets with their yield used by the parse reduce operation}
+The below diagram shows the manufacturing
+of a grammar's document.
+\fbreak
+\fbreak
+\fbreak
+\convertMPtoPDF{"/usr/local/yacco2/diagrams/docgeneration.1"}{1}{1}
+\fbreak
+\fbreak
+Also for each ``pdf'' document generated there is a postscript document to
+remove the dependency of a ``pdf reader'' and its ``gui'' interaction when wanting to
+spool the document for print.
+For example on my Sun Solaris, the program ``pdftops''
+takes a ``pdf'' document and creates an equivalent ``ps'' document.
+Spooling it to a print would use the command line ``lp xxx.ps''.
+
+@*2 A sample \O2 script where the options are described.\fbreak
+\O2's input data template is $[options]$ filename where options are optional as
+they have preconfigured values.
+Here are the switches that can be inputted to \O2 using the Unix approach to turn
+on the specific option. Each option must be inputted with its own $-$ sign.\fbreak
+{\bf Options}: if they are not present, do not generate\fbreak
+\ptindent{1) -t --- generate the Terminal vocabulary}
+\ptindent{2) -err --- generate the Error vocabulary}
+\ptindent{3) -lrk --- generate the lr k vocabulary: Deprecated not supported}
+\ptindent{4) -rc --- generate the Raw characters vocabulary: Deprecated not supported}
+\ptindent{5) -p --- generate the grammar's documents}
+Points 1 and 2 are usually stable and do not need to be gened. Do so when these
+vocabularies have been modified. Don't forget to regen all the grammars
+and re-run \O2{}linker to reprocess the ``fsc'' files if the number of
+Terminals in the vocabularies has changed as all the Lookahead sets are now different along
+with the enumeration scheme that ties them together.
+Points 3 and 4 cannot be used as they reside in ``\Whereyacco2/library/grammars'' pregened.
+I included them as a memory jog to my
+experiments; if u try to input these deprecated options u'll get an error message.
+Other options were experimented with but found boarderline marginal:
+gen namespace, gen the grammar, and turn on debug of grammar instead of using the editor cycle to
+modify the grammar to be traced. Now namespace and grammar are always generated, and hello editor.
+So out damn spot.
+
+Here is a batch command file that runs on a Microsoft's NT/XP desktop.
+The same can be done within a ``Unix'' flavour script language like ``Bash''.
+Though it does not illustrate a conditional test as to whether
+the script should continue when the grammar is faulty,
+\O2 returns a 0 to indicate a healthy grammar
+and a 1 to indicate a sick grammar:
+The gory details are in the error log.
+\let\setuplistinghook = \linenumberedlisting
+\listing{"/usr/local/yacco2/diagrams/o2run_example.txt"}
+\fbreak
+\let\setuplistinghook = \relax
+The above example uses line numbers delimited by ``:'' at the start of each
+line for commentary purposes.
+Line 3 sets the directory where \O2 resides and repository
+for the temporary files from \O2, ``mpost'' that draws the grammar diagrams,
+while ``cweave'' generates the ``xxx.tex'' file for ``pdftex''
+who completes the document for an ``Adobe'' reader program: for example ``xpdf'' of open source
+or Adobe's reader.
+``cweave'' is one of the programs by Donald E. Knuth and Silvio Levy
+from their book ``The CWEB System of Structured Documentation''.
+Go to the web site ``www.tex.org'' for more information on how to obtain
+``CWEB''. The same comments apply to ``mpost'' written by John D. Hobby of
+`Bell Labs''.
+This is a remake of ``MetaFont''language / ``MetaPost'' program by Donald E. Knuth.
+These programs are grrrreat! More people should be using them.
+The emitted grammar files get placed in the same directory
+of the inputted grammar to \O2.
+
+Line 6 runs \O2 with its inputted grammar file
+``/yacco2/compiler/grammars/enumerate\_grammar.lex''
+and switches to gen up the Terminal and Error vocabularies
+and gen a printed set of documents.
+\O2 also generates the documentation files
+ ``enumerate\_grammar.mp'' and ``enumerate\_grammar.w'' files.
+Lines 7--9 are command lines to create the output document.
+In the example, ``enumerate\_grammar.pdf'' is the final
+file document for printing.
+``enumerate\_grammar.xx'' are figure files generated by mpost from file
+``enumerate\_grammar.mp''.
+These files are referenced in the ``enumerate\_grammar.w''
+file by cweave who produces an ``enumerate\_grammar.tex'' file for program pdftex.
+All this to say that there can be many generated files before the document is complete.
+Please note the other cross reference document
+is not shown but follows the same run pattern.
+
+@*2 Some definitions.\fbreak
+\fbreak
+Non-terminal:\fbreak
+This is your normal grammar definition. I interchange this term with ``rule''.
+They are the same. Depending on the context, i also use rule
+in the same sense of a grammar's production.
+To refine the context, the term ``subrule'' indicates one of a rule's productions.\fbreak
+\fbreak
+Subrule:\fbreak
+Equivalent to a grammar's production.
+It is one of a rule's right-hand-side string of symbols drawn from
+the non-terminal or Terminal alphabets.
+The string can be empty indicating epsilon.\fbreak
+
+Please see the mavelous book ``Formal Languages and Their Relationn to Automata''
+by Hopcroft and Ullman for a complete discussion on grammars and their makeup.
+Excellent reading for a 1968 vintage on automata.\fbreak
+\fbreak
+Here are some basic definitions used by my lr1 generator.\fbreak
+\fbreak
+First set:\fbreak
+Please see |first_set_rules.lex| grammar for a more thorough discussion.
+First set is the set of terminals that begins a string of symbols.
+When the symbol is a rule, then all its subrules contribute to the first set.
+This is a recursive definition as the rule's subrules can also bring in other
+rules' subrules string of symbols that contribute to it.
+If the string's start symbol is a rule and its epsilonable,
+then its right neighbour also contributes. Again if its a rule and epsilonable
+its right neighbour is a contributor: ahh recursive definitions.
+\fbreak
+\fbreak
+Follow set:\fbreak
+The rule's first set of production strings to the right of a lr state's configuration.
+Here is a simple arithmetic grammar to illustrate follow sets for the ``Closure-only'' state
+where all production strings have their configuration
+position at their very beginning illustrated by ''$ _.$''.
+I use a form of Dewey decimal notation to reference the production's configuration.
+For example ``E.1.2'' means the production of rule ``E'' referencing subrule 1
+of its second symbol is being refered to.
+In this example below the referenced symbol is $+$.
+How follow sets are arrived at is discussed in ``Overview of \O2's state generated components''.
+ \fbreak
+
+\settabs\+\indent&1in\qquad&\qquad&\qquad&\cr
+\+&\it Rule&&{\it subrule's symbols}\cr
+\+&S &$\rightarrow$ &$ _.$E $\bot$\cr
+\+&E &$\rightarrow$ &$ _.$E $+$ T\cr
+\+&&$\rightarrow$ &$ _.$T\cr
+\+&T&$\rightarrow$ &$ _.$T $*$ F\cr
+\+&&$\rightarrow$ &$ _.$F\cr
+\+&F&$\rightarrow$ &$ _.$( E )\cr
+\+&&$\rightarrow$ &$ _.$id\cr
+\fbreak
+\settabs\+\indent&mmmmmm&\qquad&followset&\qquad&R.SR.Pos follow setxxxxxx &\qquad&transitions&\cr
+%\settabs 4 \columns
+\+&\it Rule&&{\it follow set}&& {\it R.SR.Pos of follow set}&&{\it with transitions}\cr
+\+&E && $\bot\ +$ &&$\bot$ by S.1.2, $+$ from E.1.2&& $\bot\ +$\cr
+\+&$\uparrow$ && && E.2.2\cr
+\+&T&& $*$&&$*$ by T.1.2&&$*\ \bot\ +$\cr
+\+&$\uparrow$ && && T.2.2\cr
+\+&F&& $\emptyset$&&&&$*\ \bot\ +$\cr
+\fbreak
+\hbox{\hskip.5in Table of follow sets for the ``Start state'' of the above grammar}\fbreak
+
+There are 3 subtleties that are watched for in the follow set calculation:\fbreak
+\ptindent{1) rule symbol --- use its ``first set''}
+\ptindent{2) epsilonable rule symbol --- continue to next symbol in follow string for assessment}
+\ptindent{3) end of symbol string reached --- transition}
+Point 3 requires some explanation.
+Its condition means that the rule's right-hand-side has been consumed (or is epsilon)
+ so what's
+it follow set? Nothing?
+No it's the subrule's rule that spawned it that provides more follow set context.
+This context resides in the ``closure'' state of this rule.
+So now there is a transition to this rule's follow set.
+This is the transitive closure of spawning contexts.
+The Table of follow sets shows these transitions with the $\uparrow$ symbol.
+Epsilon rules are chameleon in nature: they supply their first sets and
+also disappear and so u must continue to the next symbol in the follow string
+to complete the follow set while observing the
+end-of-string condition to follow its transitions.
+
+@*2 Catalogue of \O2's files.\fbreak
+Cweb Documents:\fbreak
+\ptindent{1) \Yacco2 parse library}
+\ptindent{2) \o2{}extern --- external routines}
+\ptindent{3) \Yacco2{}stbl --- symbol table}
+
+\O2's Input files to |cweb|:\fbreak
+\ptindent{1) |o2.w| --- master file that starts things off}
+\ptindent{2) |intro.w| --- introduction }
+\ptindent{3) |defs.w| --- basic definitions to gen lr1 network}
+\ptindent{4) |prog.w| --- \o2 cweb code }
+\ptindent{5) |bug.w| --- confessions}
+\ptindent{6) |o2_defs.w| --- details}
+\ptindent{7) |includes.w| --- bring in those grammars for the parsing}
+\ptindent{8) |o2externs.w| --- external routines}
+|cweb| generated files:\fbreak
+\ptindent{1) |o2.h| --- compiler definitions}
+\ptindent{2) |o2.cpp| --- \O2 program}
+\ptindent{3) |o2_defs.cpp| --- structure implementations}
+\ptindent{4) |o2_externs.h| --- global definitions used across \o2's source code}
+
+\O2's generated files where xxx is the grammar's name being compiled:\fbreak
+\ptindent{1) |xxx.fsc| --- grammar's first set confessions for Linker}
+\ptindent{2) |xxx.h| --- grammar's header file}
+\ptindent{3) |xxx.cpp| --- automaton code}
+\ptindent{4) |xxxsym.cpp| --- automaton symbols}
+\ptindent{5) |xxxtbl.cpp| --- automaton's state definitions}
+
+\Yacco2 library memorabilia:\fbreak
+\ptindent{1) yacco2 --- library namespace}
+\ptindent{2) ``\Whereyacco2/library'' --- yacco2's library directory}
+\ptindent{3) ${< yacco2.h >}$ --- Yacco2's library header file}
+\ptindent{4) ``library directory/xxxx'' - xxxx is the debug or release of the object library}
+
+Dependency files from \Yacco2 sub-systems:\fbreak
+\ptindent{|yacco2.h| - basic definitions used by Yacco2}
+\ptindent{|yacco2_T_enumeration.h| - terminal enumeration for Yacco2's terminal grammar alphabet}
+\ptindent{|yacco2_err_symbols.h| - error terminal definitions from Yacco2's grammar alphabet}
+\ptindent{|yacco2_characters.h| - raw character definitions from Yacco2's grammar alphabet}
+\ptindent{|yacco2_k_symbols.h| - constant terminal definitions from Yacco2's grammar alphabet}
+\ptindent{|yacco2_terminals.h| - regular terminal definitions from Yacco2's grammar alphabet}
+\ptindent{|*.h| - assorted grammar definitions from Yacco2 to parse}
+\ptindent{|o2_externs.h| - external support routines for \O2}
+
+Grammars\fbreak
+\ptindent{|pass3.lex| --- lex and syntactic phase of grammar}
+\ptindent{|la_expr_source.lex| --- lexical phase of lookahead expression}
+\ptindent{|la_expr.lex| -- syntactic phase of lookahead expression}
+\ptindent{|enumerate_T_alphabet.lex| -- logic grammar to assign each T a number from 0..n}
+\ptindent{|epsilon_rules.lex| -- grammar determines epsilon per rule and pathological conditions}
+\ptindent{|first_set.lex| -- logic grammar to calculate each rule's first set}
+\ptindent{|prt_fs_of_rules.lex| -- logic grammar to print each rule's first set}
+\ptindent{|enumerate_grammar.lex| -- dump aid: enumerate grammar's components}
+
+Globals\fbreak
+\ptindent{|LR1_STATES| --- list of gened lr1 states}
+\ptindent{|LR1_COMMON_STATES| --- common states map having same vectored into symbol}
+\ptindent{|START_OF_RULES_ENUM| --- used in shift / reduce conflict evaluation}
+
+Comments:\fbreak
+My external routines use the all upper case approach to names. I know it's like shouting but it
+clues the reader where the heck the routine comes from. I could have
+tempered the all caps approach to a capital letter
+but i'm myopic and becoming
+visually golden in age.
+So my excuses to the reader for this tasteless approach.
+
+@*2 \O2's language.\fbreak
+There are 3 languages that are actually parsed: 2 in preparation ---
+command line and its contents, and the grammar file.
+A grammar is divided into 4 parts:\fbreak
+\ptindent{a) Finite automaton definition --- basic statements about the grammar}
+\ptindent{b) Parallel parse that defines a threading grammar}
+\ptindent{c) Terminal vocabulary: errors, lr k, raw characters, and terminals}
+\ptindent{d) Rule definitions}
+
+\let\setuplistinghook = \linenumberedlisting
+\listing{"/usr/local/yacco2/diagrams/eol.txt"}
+\fbreak
+\let\setuplistinghook = \relax
+
+The above source listing is an example of a threaded grammar.
+Starting each source line is a line number suffixed by `:' present
+only for discussion purposes.
+Line numbers 6--10 defines the fsm component.
+Lines 11--19 indicates that the grammar is a thread.
+Though the terminal vocabulary definitions are hidden
+by line 20, it illustrates the file include feature of \O2.
+Lines 22--39 are the rule definitions.
+Each grammar's section has a defining keyword like ``fsm'', ``parallel-parser'', ``rules''
+that introduces the part being defined.
+
+
+@*2 C macros.\fbreak
+Originally there were conditionally defined trace variables
+that controlled the inclusion of trace code.
+This was a pain-in-the-seat so now they are global
+variables that test their values.
+I felt the slight speed bump merited the facility without the
+combinatorics of libraries needed for distribution.
+|YACCO2_define_trace_variables| macro defines these global variables used
+by \O2's tracing purposes.
+U can roll your own or just include the macro in your code.
+These variables are dormant until their values are not zero.
+Without their inclusion, a linker message of unresolved variable will be
+regurgitated: they must be present
+when using the \O2 library. It's an easy way to define them within your program.
+Please see \O2 library documentation for a discussion on each trace variable.
+To activate a specific tracing, assignment a non zero value to
+the selected trace variable: set it to 1.
+Here is their catalogue:\fbreak
+\ptindent{|YACCO2_T__| --- trace terminal when fetched}
+\ptindent{|YACCO2_TLEX__| --- trace macros of emitted grammar: rules and user emergency macros}
+\ptindent{|YACCO2_MSG__| --- trace thread messages}
+\ptindent{|YACCO2_MU_TRACING__| --- trace acquire / release of trace mutex}
+\ptindent{|YACCO2_MU_TH_TBL__| --- trace acquire / release mutex of thread table}
+\ptindent{|YACCO2_MU_GRAMMAR__| --- trace acquire / release each grammar's mutex}
+\ptindent{|YACCO2_TH__| --- trace the parse stack: fsa and syntax directed activities }
+\ptindent{|YACCO2_AR__| --- trace arbitrator procedure}
+\ptindent{|YACCO2_THP__| --- trace thread performance}
+They are enrobed by namespace yacco2.
+To set the trace variable be sure the namespace is delared: either explicitly
+as in: \fbreak
+\ptindent{|yacco2::YACCO2_T__| = 1;}
+ or implicitly by a ``using namespace yacco2;'' statement
+somewhere preceding the assignment:\fbreak
+\ptindent{using namespace yacco2;}
+\ptindent{...}
+\ptindent{|YACCO2_T__| = 1;}
+\fbreak
+Each traced output line identifies its type by the trace variable turned on.
+As tracing can be very very volumnious, post evaluating the output thru
+a Bash type filter script makes the log output manageable.
+I say this from experience as some editors blow up due to the size of the traced file.
+Names withheld to protect the innocent.
+
diff --git a/web/yacco2/compiler/o2/makefile_APPLE b/web/yacco2/compiler/o2/makefile_APPLE
new file mode 100644
index 0000000000..b46050a5e6
--- /dev/null
+++ b/web/yacco2/compiler/o2/makefile_APPLE
@@ -0,0 +1,115 @@
+# File: makefile_APPLE
+# Why: Creates the o2 compiler /compiler using the GNU make program
+# Ks: Depending on your system, this utility might be called gmake or make
+#
+# O2 placement:
+# Rlse: /usr/local/yacco2/bin/o2
+# Dbg: /usr/local/yacco2/bin/o2_debug
+# Genw: for the pdf file: yacco2/docs
+# for the *.cpp files
+#
+# How to run: U must choose the label to execute: Rlse, Dbg, or Genw
+# Rlse --- gen the optimizwd version of O2 with no debug support
+# Dbg --- gen the debug version of O2
+# Genw --- gen the pdf document and the cpp code
+# from cweb see www.tug.org for details on obtaining code
+# for the literate programming environment aka CWEB
+# and please join Tug. It is a marvelous FOSS
+# Note: U do not need to use Genw as *.cpp and pdf
+# document are included in the ``yacco2'' package
+#
+# ---> Know where the stdc++ library resides and adjust the STDCC_dir variable
+#
+# Example: gen the compiler/compiler o2 release version using GNU make
+# cd /usr/local//yacco2/compiler/o2
+# make Rlse -f makefile_APPLE
+#
+# Example: gen programs from cweb
+# make Genw -f makefile_APPLE
+#
+
+O2 := /usr/local/yacco2
+##CC := /opt/local/bin/c++-mp-4.9
+CC := clang++#g++
+##LD := /opt/local/bin/ld
+LD := ld #apple linker
+
+02_target_dir :=
+ifeq ($(MAKECMDGOALS),Rlse)
+Prg := o2
+O2_target_dir := Release
+Compile_opts := -c -pthread -arch x86_64 #-frepo -fno-implicit-templates -fno-rtti
+else
+O2_target_dir := Debug
+Prg := o2_debug
+Compile_opts := -c -g -pthread -arch x86_64
+endif
+
+###
+# Set up directories
+###
+Base_o2 := $(O2)
+O2_bin := $(Base_o2)/bin
+O2_eternals := $(Base_o2)/externals
+O2_docs := $(Base_o2)/docs
+O2_cc := $(Base_o2)/compiler/o2
+O2_docs := $(Base_o2)/docs
+O2_library := $(Base_o2)/library
+O2_library_lib := $(O2_library)/lib
+O2_lib_grms := $(O2_library)/grammars
+O2_cc_grms := $(Base_o2)/compiler/grammars
+O2_cc := $(Base_o2)/compiler/o2
+O2_includes := -I'$(O2_cc)' -I'$(O2_cc_grms)' -I'$(O2_library)' -I'$(O2_lib_grms)'
+O2_req_libraries := -lyacco2 -lo2grammars
+O2_lib_directories := -L$(O2_cc_grms)/lib/$(O2_target_dir) -L$(O2_library_lib)/$(O2_target_dir)
+
+CC_lib := c++
+##CC_lib := stdc++ #gnu c++
+LD_PARMS := -arch x86_64 -macosx_version_min 10.9 #-stack_size 0x2000000 -no_compact_unwind
+
+#STDCC_dir := -L/usr/llvm-gcc-4.2/lib/gcc/i686-apple-darwin11/4.2.1/
+##STDCC_dir := -L/opt/local/lib/gcc49/ #gnu c++
+STDCC_dir := -L/usr/lib/
+
+###
+# Compile, link, and move O2 into bin account
+###
+Rlse: YYY Move_o2
+Dbg: YYY Move_o2
+
+YYY:
+ $(CC) -v $(Compile_opts) $(O2_includes) o2.cpp -o $(Prg).o
+ $(CC) -v $(Compile_opts) $(O2_includes) common_externs.cpp -o common_externs.o
+ $(CC) -v $(Compile_opts) $(O2_includes) o2_externs.cpp -o o2_externs.o
+ $(CC) -v $(Compile_opts) $(O2_includes) o2_defs.cpp -o o2_defs.o
+ $(LD) $(LD_PARMS) -o $(Prg) $(STDCC_dir) $(O2_lib_directories) $(O2_req_libraries) -l$(CC_lib) -lpthread o2_externs.o o2_defs.o common_externs.o $(Prg).o
+
+Move_o2:
+ mv $(Prg) $(O2_bin)
+ rm *.o
+
+Genw:
+ cweave o2_types # struct definitions for o2
+ pdftex o2_types
+ mv o2_types.pdf $(O2_docs)
+ cweave o2
+ pdftex o2
+ mv o2.pdf $(O2_docs)
+ cweave $(O2_eternals)/common_externs
+ pdftex common_externs
+ mv common_externs.pdf $(O2_docs)
+ cweave o2externs
+ pdftex o2externs
+ mv o2externs.pdf $(O2_docs)
+ ctangle -l +e $(O2_eternals)/common_externs
+ ctangle -l +e o2externs
+ ctangle -l +e o2_defs
+ ctangle -l +e o2
+ ctangle -l +e o2_types
+ sh Makefile_Edit_cweb
+ rm *.idx
+ rm *.scn
+ rm *.toc
+ rm *.tex
+ rm *.log
+ rm *.c
diff --git a/web/yacco2/compiler/o2/makefile_GNU b/web/yacco2/compiler/o2/makefile_GNU
new file mode 100644
index 0000000000..50bf802b8b
--- /dev/null
+++ b/web/yacco2/compiler/o2/makefile_GNU
@@ -0,0 +1,89 @@
+# File: makefile_GNU
+# Why: Creates the o2 compiler /compiler using the GNU make program
+# Ks: Depending on your system, this utility might be called gmake or make
+#
+# O2 placement:
+# Rlse: /usr/local/yacco2/bin/o2
+# Dbg: /usr/local/yacco2/bin/o2_dbg
+# Genw: for the pdf file: yacco2/docs
+# for the *.cpp files
+#
+# How to run: U must choose the label to execute: Rlse, Dbg, or Genw
+# Rlse --- gen the optimizwd version of O2 with no debug support
+# Dbg --- gen the debug version of O2
+# Genw --- gen the pdf document and the cpp code
+# from cweb see www.tug.org for details on obtaining code
+# for the literate programming environment aka CWEB
+# and please join Tug. It is a marvalous FOSS
+# Note: U do not need to use Genw as *.cpp and pdf
+# document are included in the ``yacco2'' package
+#
+# Example: gen the debug version of the library using GNU make = gmake
+# cd /usr/local/yacco2/compiler/o2
+# make Rlse -f GNU_makefile
+#
+
+CC := g++
+
+02_target_dir :=
+ifeq ($(MAKECMDGOALS),Rlse)
+O2_target_dir := Release
+else
+O2_target_dir := Debug
+endif
+
+###
+# Set up directories
+###
+Base_yacco2 := $(O2)
+O2_bin := $(Base_yacco2)/bin
+O2_eternals := $(Base_yacco2)/externals
+O2_docs := $(Base_yacco2)/docs
+O2_lib := $(Base_yacco2)/library
+O2_lib_grms := $(Base_yacco2)/library/grammars
+O2_cc_grms := $(Base_yacco2)/compiler/grammars
+O2_cc := $(Base_yacco2)/compiler/o2
+O2_includes := -I'$(O2_cc)' -I'$(O2_cc_grms)' -I'$(O2_lib)' -I'$(O2_lib_grms)'
+O2_req_libraries := -lyacco2 -lo2grammars
+O2_lib_directories := -L$(O2_cc_grms)/lib/$(O2_target_dir) -L$(O2_lib)/lib/$(O2_target_dir)
+
+###
+# Set up c++ compiler and ld linker options
+###
+
+Rlse: Compile_opts := -c -O3 -pthread #-frepo -fno-implicit-templates -fno-rtti
+Dbg: Compile_opts := -c -g -pthread -arch x86_64
+Link_opts := -Wl,-z -Wl,muldefs -Wl,-Ur #$(O2_lib_directories)
+Multi_rd_libs := -static-libgcc -Wl,--start-group -lyacco2 -lo2grammars -Wl,--end-group -lpthread
+
+###
+# Compile, link, and move O2 into bin account
+###
+Rlse: YYY Move_rlse_o2
+Dbg: YYY Move_dbg_o2
+YYY:
+ $(CC) -v $(Compile_opts) o2.cpp -o o2.o $(O2_includes)
+ $(CC) -v $(Compile_opts) common_externs.cpp -o common_externs.o $(O2_includes)
+ $(CC) -v $(Compile_opts) o2_externs.cpp -o o2_externs.o $(O2_includes)
+ $(CC) -v $(Compile_opts) o2_defs.cpp -o o2_defs.o $(O2_includes)
+ ld '-o' 'o2' '-shared-libgcc' '-mtune=generic'\
+ --eh-frame-hdr -m elf_i386 --hash-style=both -dynamic-linker\
+ /lib/ld-linux.so.2 -o o2 -z relro /usr/lib/gcc/i486-linux-gnu/4.3.2/../../../../lib/crt1.o\
+ /usr/lib/gcc/i486-linux-gnu/4.3.2/../../../../lib/crti.o /usr/lib/gcc/i486-linux-gnu/4.3.2/crtbegin.o\
+ -L/usr/lib/gcc/i486-linux-gnu/4.3.2 -L/usr/lib/gcc/i486-linux-gnu/4.3.2\
+ -L/usr/lib/gcc/i486-linux-gnu/4.3.2/../../../../lib -L/lib/../lib -L/usr/lib/../lib\
+ -L/usr/lib/gcc/i486-linux-gnu/4.3.2/../../..\
+ $(O2_lib_directories) o2_externs.o o2_defs.o common_externs.o o2.o\
+ --whole-archive -lyacco2 --no-whole-archive -start-group -lo2grammars --end-group -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc\
+ -lpthread /usr/lib/gcc/i486-linux-gnu/4.3.2/crtend.o\
+ /usr/lib/gcc/i486-linux-gnu/4.3.2/../../../../lib/crtn.o
+
+Move_rlse_o2:
+ mv o2 $(O2_bin)
+ rm *.o
+Move_dbg_o2:
+ mv o2 o2_dbg
+ mv o2_dbg $(O2_bin)
+ rm o2
+ rm *.o
+
diff --git a/web/yacco2/compiler/o2/makefile_SOLARIS b/web/yacco2/compiler/o2/makefile_SOLARIS
new file mode 100644
index 0000000000..f532a30739
--- /dev/null
+++ b/web/yacco2/compiler/o2/makefile_SOLARIS
@@ -0,0 +1,123 @@
+# File: makefile_SOLARIS
+# Why: Creates the o2 compiler /compiler
+# Library placement:
+# Rlse: /usr/local/yacco2/bin/o2
+# Dbg: /usr/local/yacco2/bin/o2_debug
+# Genw: for the pdf file: yacco2/docs
+# for the *.cpp files
+#
+# How to run: U must choose the label to execute: Rlse, Dbg
+# Rlse --- gen the fast version of library with no debug support
+# Dbg --- gen the debug version of library
+# Genw --- gen the pdf document and the cpp code
+# from cweb see www.tug.org for details on obtaining code
+# for the literate programming environment aka CWEB
+# and please join Tug. It is a marvalous FOSS
+# Note: U do not need to use Genw as *.cpp and pdf
+# document are included in the ``yacco2'' package
+# Notice: Some possible construction to be done
+# 1) Adjust base_dir variable if the ``yacco2'' package is moved elsewhere.
+# For example, if u installed the ``yacco2'' package in /opt/yacco2
+# Set the base_dir variable in this file to: base_dir = /opt/
+# The trailing / must be there or ugly things will happen.
+#
+# Example: gen the debug version of the library
+# cd /usr/local//yacco2/compiler/o2
+# make Dbg -f Solaris_makefile
+#
+Rlse: BASICOPTS := -fast -c -m64 -lpthread
+Rlse: Bld_BASICOPTS := -m64 -lpthread
+
+Dbg: BASICOPTS := -c -m64 -lpthread -xs -g
+Dbg: Bld_BASICOPTS := -m64 -lpthread -xs -g
+
+o2_lib := $(O2)/library/
+o2_stbl := $(O2)/compiler/stbl/
+o2_docs := $(O2)/docs/
+o2_lib_grms := $(O2)/library/grammars/
+o2_grms := $(O2)/compiler/grammars/
+o2 := $(O2)/compiler/o2/
+
+
+O2_includes := -I'$(o2)' -I'$(o2_grms)' -I'$(o2_lib)' -I'$(o2_lib_grms)'
+o2_req_libraries := -lyacco2 -lo2grammars
+Rlse: o2_lib_directories := -L $(o2_grms)lib/Release/ -L $(o2_lib)lib/Release/
+Dbg: o2_lib_directories := -L $(o2_grms)lib/Debug/ -L $(o2_lib)lib/Debug/
+files_to_cc := \
+o2_defs.cpp \
+common_externs.cpp \
+o2_externs.cpp \
+o2.cpp
+files_to_o := $(files_to_cc:.cpp=.o)
+
+Rlse: Compile Rlse_o2
+Rlse_o2:
+ mv o2prg $(base_dir)yacco2/bin/o2
+ rm -f *.o
+
+Dbg: $(files_to_o) Dbg_o2
+Dbg_o2:
+ mv o2prg $(base_dir)yacco2/bin/o2_debug
+ rm -f *.o
+
+Compile: $(files_to_o)
+common_externs.o: common_externs.cpp
+ CC $(BASICOPTS) $(O2_includes) common_externs.cpp -o $@
+o2_externs.o: o2_externs.cpp
+ CC $(BASICOPTS) $(O2_includes) o2_externs.cpp -o $@
+o2_defs.o: o2_defs.cpp
+ CC $(BASICOPTS) $(O2_includes) o2_defs.cpp -o $@
+o2.o: o2.cpp
+ CC $(Bld_BASICOPTS) $(O2_includes) o2.cpp -o o2prg \
+o2_defs.o common_externs.o o2_externs.o \
+$(o2_lib_directories) $(o2_req_libraries)
+Genw:
+ cweave types.w
+ ctangle -l +e types.w
+ pdftex types
+ pdftops types.pdf
+ mv types.pdf $(o2_docs)
+ mv types.ps $(o2_docs)
+ cweave common_externs.w
+ ctangle -l +e common_externs.w
+ pdftex common_externs
+ pdftops common_externs.pdf
+ mv common_externs.pdf $(o2_docs)
+ mv common_externs.ps $(o2_docs)
+ cweave o2externs.w
+ ctangle -l +e o2externs.w
+ pdftex o2externs
+ pdftops o2externs.pdf
+ mv o2externs.pdf $(o2_docs)
+ mv o2externs.ps $(o2_docs)
+ cweave o2.w
+ ctangle -l +e o2.w
+ sh Makefile_Edit_cweb
+ pdftex o2
+ pdftops o2.pdf
+ mv o2.pdf $(o2_docs)
+ mv o2.ps $(o2_docs)
+ rm types.idx
+ rm types.scn
+ rm types.toc
+ rm types.tex
+ rm types.log
+ rm types.c
+ rm common_externs.idx
+ rm common_externs.scn
+ rm common_externs.toc
+ rm common_externs.tex
+ rm common_externs.log
+ rm common_externs.c
+ rm o2externs.idx
+ rm o2externs.scn
+ rm o2externs.toc
+ rm o2externs.tex
+ rm o2externs.log
+ rm o2externs.c
+ rm o2.idx
+ rm o2.scn
+ rm o2.toc
+ rm o2.tex
+ rm o2.log
+ rm o2.c
diff --git a/web/yacco2/compiler/o2/o2.cpp b/web/yacco2/compiler/o2/o2.cpp
new file mode 100644
index 0000000000..8d093caeb9
--- /dev/null
+++ b/web/yacco2/compiler/o2/o2.cpp
@@ -0,0 +1,849 @@
+/*164:*/
+//line 47 "/usr/local/yacco2/compiler/o2/includes.w"
+
+#include "o2.h"
+/*14:*/
+//line 33 "/usr/local/yacco2/compiler/o2/prog.w"
+
+
+YACCO2_define_trace_variables();
+
+int RECURSION_INDEX__(0);
+yacco2::CHAR T_SW('n');
+yacco2::CHAR ERR_SW('n');
+yacco2::CHAR PRT_SW('n');
+
+yacco2::TOKEN_GAGGLE JUNK_tokens;
+yacco2::TOKEN_GAGGLE P3_tokens;
+yacco2::TOKEN_GAGGLE Error_queue;
+char Big_buf[BIG_BUFFER_32K];
+T_sym_tbl_report_card report_card;
+std::string o2_file_to_compile;
+std::string o2_fq_fn_noext;
+STBL_T_ITEMS_type STBL_T_ITEMS;
+STATES_type LR1_STATES;
+LR1_STATES_type LR1_COMMON_STATES;
+bool LR1_HEALTH(LR1_COMPATIBLE);
+int NO_LR1_STATES(0);
+STATES_SET_type VISITED_MERGE_STATES_IN_LA_CALC;
+CYCLIC_USE_TBL_type CYCLIC_USE_TABLE;
+
+
+int main(int argc,char*argv[])
+{
+cout<<yacco2::Lr1_VERSION<<std::endl;
+
+/*17:*/
+//line 98 "/usr/local/yacco2/compiler/o2/prog.w"
+
+/*18:*/
+//line 113 "/usr/local/yacco2/compiler/o2/prog.w"
+
+LOAD_YACCO2_KEYWORDS_INTO_STBL();
+
+/*:18*/
+//line 99 "/usr/local/yacco2/compiler/o2/prog.w"
+
+
+/*:17*/
+//line 62 "/usr/local/yacco2/compiler/o2/prog.w"
+
+/*19:*/
+//line 124 "/usr/local/yacco2/compiler/o2/prog.w"
+
+/*20:*/
+//line 135 "/usr/local/yacco2/compiler/o2/prog.w"
+
+GET_CMD_LINE(argc,argv,Yacco2_holding_file,Error_queue);
+/*21:*/
+//line 146 "/usr/local/yacco2/compiler/o2/prog.w"
+
+if(Error_queue.empty()!=true){
+DUMP_ERROR_QUEUE(Error_queue);
+return 1;
+}
+
+/*:21*/
+//line 137 "/usr/local/yacco2/compiler/o2/prog.w"
+
+
+
+/*:20*/
+//line 125 "/usr/local/yacco2/compiler/o2/prog.w"
+
+/*22:*/
+//line 153 "/usr/local/yacco2/compiler/o2/prog.w"
+
+YACCO2_PARSE_CMD_LINE
+(T_SW,ERR_SW,PRT_SW,o2_file_to_compile,Error_queue);
+/*21:*/
+//line 146 "/usr/local/yacco2/compiler/o2/prog.w"
+
+if(Error_queue.empty()!=true){
+DUMP_ERROR_QUEUE(Error_queue);
+return 1;
+}
+
+/*:21*/
+//line 156 "/usr/local/yacco2/compiler/o2/prog.w"
+
+/*25:*/
+//line 196 "/usr/local/yacco2/compiler/o2/prog.w"
+
+lrclog<<"Parse options selected:"<<std::endl;
+lrclog<<" Gen T: "<<T_SW;
+lrclog<<" Gen Err: "<<ERR_SW;
+lrclog<<" Gen RC: "<<PRT_SW;
+
+/*:25*/
+//line 157 "/usr/local/yacco2/compiler/o2/prog.w"
+
+/*23:*/
+//line 166 "/usr/local/yacco2/compiler/o2/prog.w"
+
+std::string::size_type pp= o2_file_to_compile.rfind('.');
+if(pp==std::string::npos){
+o2_fq_fn_noext+= o2_file_to_compile;
+}else{
+o2_fq_fn_noext+= o2_file_to_compile.substr(0,pp);
+}
+
+/*:23*/
+//line 158 "/usr/local/yacco2/compiler/o2/prog.w"
+
+/*24:*/
+//line 184 "/usr/local/yacco2/compiler/o2/prog.w"
+
+std::string normal_tracing(o2_fq_fn_noext.c_str());
+normal_tracing+= "_tracings.log";
+std::string error_logging(o2_fq_fn_noext.c_str());
+error_logging+= "_errors.log";
+yacco2::lrclog.close();
+yacco2::lrerrors.close();
+yacco2::lrclog.open(normal_tracing.c_str());
+yacco2::lrerrors.open(error_logging.c_str());
+
+
+/*:24*/
+//line 159 "/usr/local/yacco2/compiler/o2/prog.w"
+
+
+/*:22*/
+//line 126 "/usr/local/yacco2/compiler/o2/prog.w"
+
+/*26:*/
+//line 227 "/usr/local/yacco2/compiler/o2/prog.w"
+
+
+
+using namespace NS_pass3;
+tok_can<std::ifstream> cmd_line(o2_file_to_compile.c_str());
+Cpass3 p3_fsm;
+Parser pass3(p3_fsm,&cmd_line,&P3_tokens,0,&Error_queue,&JUNK_tokens,0);
+pass3.parse();
+/*21:*/
+//line 146 "/usr/local/yacco2/compiler/o2/prog.w"
+
+if(Error_queue.empty()!=true){
+DUMP_ERROR_QUEUE(Error_queue);
+return 1;
+}
+
+/*:21*/
+//line 235 "/usr/local/yacco2/compiler/o2/prog.w"
+
+/*27:*/
+//line 240 "/usr/local/yacco2/compiler/o2/prog.w"
+
+yacco2::TOKEN_GAGGLE_ITER i= P3_tokens.begin();
+yacco2::TOKEN_GAGGLE_ITER ie= P3_tokens.end();
+lrclog<<"Dump of P3 tokons"<<endl;
+for(int yyy= 1;i!=ie;++i){
+CAbs_lr1_sym*sym= *i;
+if(sym==yacco2::PTR_LR1_eog__)continue;
+lrclog<<yyy<<":: "<<sym->id__
+<<" file no: "<<sym->tok_co_ords__.external_file_id__
+<<" line no: "<<sym->tok_co_ords__.line_no__
+<<" pos: "<<sym->tok_co_ords__.pos_in_line__
+<<endl;
+++yyy;
+}
+
+/*:27*/
+//line 236 "/usr/local/yacco2/compiler/o2/prog.w"
+
+
+
+/*:26*/
+//line 127 "/usr/local/yacco2/compiler/o2/prog.w"
+
+
+/*:19*/
+//line 63 "/usr/local/yacco2/compiler/o2/prog.w"
+
+lrclog<<yacco2::Lr1_VERSION<<std::endl;
+
+/*34:*/
+//line 433 "/usr/local/yacco2/compiler/o2/prog.w"
+
+set<int> phase_order_filter;
+phase_order_filter.insert(T_Enum::T_T_fsm_phrase_);
+phase_order_filter.insert(T_Enum::T_T_enum_phrase_);
+phase_order_filter.insert(T_Enum::T_T_lr1_k_phrase_);
+phase_order_filter.insert(T_Enum::T_T_rc_phrase_);
+phase_order_filter.insert(T_Enum::T_T_error_symbols_phrase_);
+phase_order_filter.insert(T_Enum::T_T_terminals_phrase_);
+phase_order_filter.insert(T_Enum::T_T_rules_phrase_);
+
+tok_can_ast_functor orderly_walk;
+ast_prefix_wbreadth_only
+evaluate_phase_order(*GRAMMAR_TREE,&orderly_walk,&phase_order_filter,ACCEPT_FILTER);
+tok_can<AST*> phrases_can(evaluate_phase_order);
+
+using namespace NS_eval_phrases;
+Ceval_phrases eval_fsm;
+Parser eval_phrases(eval_fsm,&phrases_can,0,0,&Error_queue,0,0);
+eval_phrases.parse();
+/*21:*/
+//line 146 "/usr/local/yacco2/compiler/o2/prog.w"
+
+if(Error_queue.empty()!=true){
+DUMP_ERROR_QUEUE(Error_queue);
+return 1;
+}
+
+/*:21*/
+//line 452 "/usr/local/yacco2/compiler/o2/prog.w"
+
+
+/*:34*/
+//line 66 "/usr/local/yacco2/compiler/o2/prog.w"
+
+/*29:*/
+//line 307 "/usr/local/yacco2/compiler/o2/prog.w"
+
+using namespace NS_epsilon_rules;
+set<AST*> yes_pile;
+set<AST*> no_pile;
+list< pair<AST*,AST*> > maybe_list;
+T_rules_phrase*rules_ph= O2_RULES_PHASE;
+AST*rules_tree= rules_ph->phrase_tree();
+
+set<int> filter;
+filter.insert(T_Enum::T_T_subrule_def_);
+filter.insert(T_Enum::T_rule_def_);
+
+tok_can_ast_functor just_walk_functr;
+ast_prefix rule_walk(*rules_tree,&just_walk_functr,&filter,ACCEPT_FILTER);
+tok_can<AST*> rules_can(rule_walk);
+Cepsilon_rules epsilon_fsm;
+Parser epsilon_rules(epsilon_fsm,&rules_can,0,0,&Error_queue);
+epsilon_rules.parse();
+/*30:*/
+//line 329 "/usr/local/yacco2/compiler/o2/prog.w"
+
+if(Error_queue.empty()!=true){
+DUMP_ERROR_QUEUE(Error_queue);
+Error_queue.clear();
+return 1;
+}
+
+/*:30*/
+//line 325 "/usr/local/yacco2/compiler/o2/prog.w"
+
+
+
+/*:29*/
+//line 67 "/usr/local/yacco2/compiler/o2/prog.w"
+
+/*28:*/
+//line 267 "/usr/local/yacco2/compiler/o2/prog.w"
+
+set<int> enumerate_filter;
+enumerate_filter.insert(T_Enum::T_rule_def_);
+enumerate_filter.insert(T_Enum::T_T_subrule_def_);
+enumerate_filter.insert(T_Enum::T_refered_T_);
+enumerate_filter.insert(T_Enum::T_T_eosubrule_);
+enumerate_filter.insert(T_Enum::T_refered_rule_);
+enumerate_filter.insert(T_Enum::T_T_called_thread_eosubrule_);
+enumerate_filter.insert(T_Enum::T_T_null_call_thread_eosubrule_);
+using namespace NS_enumerate_grammar;
+
+tok_can_ast_functor walk_the_plank_mate;
+ast_prefix enumerate_grammar_walk
+(*rules_tree,&walk_the_plank_mate,&enumerate_filter,ACCEPT_FILTER);
+tok_can<AST*> enumerate_grammar_can(enumerate_grammar_walk);
+Cenumerate_grammar enumerate_grammar_fsm;
+Parser enumerate_grammar(enumerate_grammar_fsm,&enumerate_grammar_can,0,0,&Error_queue);
+enumerate_grammar.parse();
+
+/*:28*/
+//line 68 "/usr/local/yacco2/compiler/o2/prog.w"
+
+/*35:*/
+//line 497 "/usr/local/yacco2/compiler/o2/prog.w"
+
+if(O2_PP_PHASE!=0){
+/*36:*/
+//line 503 "/usr/local/yacco2/compiler/o2/prog.w"
+
+T_parallel_parser_phrase*pp_ph= O2_PP_PHASE;
+
+if(pp_ph->la_bndry()==0){
+CAbs_lr1_sym*sym= new Err_pp_la_boundary_attribute_not_fnd;
+sym->set_rc(*pp_ph);
+Error_queue.push_back(*sym);
+/*21:*/
+//line 146 "/usr/local/yacco2/compiler/o2/prog.w"
+
+if(Error_queue.empty()!=true){
+DUMP_ERROR_QUEUE(Error_queue);
+return 1;
+}
+
+/*:21*/
+//line 510 "/usr/local/yacco2/compiler/o2/prog.w"
+
+}
+T_parallel_la_boundary*la_bndry= pp_ph->la_bndry();
+yacco2::TOKEN_GAGGLE*la_srce_tok_can= la_bndry->la_supplier();
+yacco2::TOKEN_GAGGLE la_tok_can_lex;
+yacco2::TOKEN_GAGGLE la_expr_tok_can;
+using namespace NS_la_expr_lexical;
+Cla_expr_lexical la_expr_lex_fsm;
+Parser la_expr_lex_parse(la_expr_lex_fsm,la_srce_tok_can
+,&la_tok_can_lex,0,&Error_queue,&JUNK_tokens,0);
+la_expr_lex_parse.parse();
+/*21:*/
+//line 146 "/usr/local/yacco2/compiler/o2/prog.w"
+
+if(Error_queue.empty()!=true){
+DUMP_ERROR_QUEUE(Error_queue);
+return 1;
+}
+
+/*:21*/
+//line 521 "/usr/local/yacco2/compiler/o2/prog.w"
+
+using namespace NS_la_expr;
+Cla_expr la_expr_fsm;
+Parser la_expr_parse(la_expr_fsm,&la_tok_can_lex,&la_expr_tok_can
+,0,&Error_queue,&JUNK_tokens,0);
+la_expr_parse.parse();
+/*21:*/
+//line 146 "/usr/local/yacco2/compiler/o2/prog.w"
+
+if(Error_queue.empty()!=true){
+DUMP_ERROR_QUEUE(Error_queue);
+return 1;
+}
+
+/*:21*/
+//line 527 "/usr/local/yacco2/compiler/o2/prog.w"
+
+
+/*:36*/
+//line 499 "/usr/local/yacco2/compiler/o2/prog.w"
+
+}
+
+/*:35*/
+//line 69 "/usr/local/yacco2/compiler/o2/prog.w"
+
+/*31:*/
+//line 348 "/usr/local/yacco2/compiler/o2/prog.w"
+
+set<int> sr_filter;
+sr_filter.insert(T_Enum::T_T_subrule_def_);
+ast_prefix sr_walk(*rules_tree,&just_walk_functr,&sr_filter,ACCEPT_FILTER);
+tok_can<AST*> sr_can(sr_walk);
+for(int xx(0);sr_can[xx]!=yacco2::PTR_LR1_eog__;++xx);
+O2_T_ENUM_PHASE->total_no_subrules(sr_can.size());
+if(O2_T_ENUM_PHASE->total_no_subrules()> Max_no_subrules){
+lrclog<<"Grammar's number of subrules: "
+<<O2_T_ENUM_PHASE->total_no_subrules()
+<<" exceeds the allocated space for table elem_space: "
+<<Max_no_subrules<<endl;
+lrclog<<"This is a big grammar so please correct the grammar."<<std::endl;
+clog<<"Grammar's number of subrules: "
+<<O2_T_ENUM_PHASE->total_no_subrules()
+<<" exceeds the allocated space for table elem_space: "
+<<Max_no_subrules<<endl;
+clog<<"This is a big grammar so please correct the grammar."<<std::endl;
+return 1;
+}
+
+/*:31*/
+//line 70 "/usr/local/yacco2/compiler/o2/prog.w"
+
+/*32:*/
+//line 376 "/usr/local/yacco2/compiler/o2/prog.w"
+
+set<int> fs_filter;
+fs_filter.insert(T_Enum::T_rule_def_);
+ast_prefix fs_rule_walk(*rules_tree,&just_walk_functr,&fs_filter,ACCEPT_FILTER);
+tok_can<AST*> fs_rules_can(fs_rule_walk);
+for(int xx(0);fs_rules_can[xx]!=yacco2::PTR_LR1_eog__;++xx){
+rule_def* rd = (rule_def*)fs_rules_can[xx];
+GEN_FS_OF_RULE(rd);
+}
+
+/*:32*/
+//line 71 "/usr/local/yacco2/compiler/o2/prog.w"
+
+/*33:*/
+//line 399 "/usr/local/yacco2/compiler/o2/prog.w"
+
+rule_def*start_rule_def= (rule_def*)fs_rules_can.operator[](0);
+GEN_CALLED_THREADS_FS_OF_RULE(start_rule_def);
+
+/*:33*/
+//line 72 "/usr/local/yacco2/compiler/o2/prog.w"
+
+/*39:*/
+//line 582 "/usr/local/yacco2/compiler/o2/prog.w"
+
+AST*start_rule_def_t= AST::get_1st_son(*rules_tree);
+state*gening_state= new state(start_rule_def_t);
+gen_context gening_context(0,-1);
+STATES_ITER_type si= LR1_STATES.begin();
+STATES_ITER_type sie= LR1_STATES.end();
+
+
+for(;si!=sie;++si){
+gening_state= *si;
+gening_context.for_closure_state_= gening_state;
+gening_context.gen_vector_= -1;
+lrclog<<"lr state driver considered state: "
+<<gening_context.for_closure_state_->state_no_
+<<" for vector: "
+<<gening_context.gen_vector_
+<<endl;
+
+LR1_HEALTH= gening_state->gen_transitive_states_for_closure_context(gening_context,*gening_state,*gening_state);
+if(LR1_HEALTH==NOT_LR1_COMPATIBLE){
+/*40:*/
+//line 611 "/usr/local/yacco2/compiler/o2/prog.w"
+
+if(LR1_HEALTH==NOT_LR1_COMPATIBLE){
+yacco2::lrclog<<"===>Please check Grammar dump file: "
+<<normal_tracing.c_str()<<" for Not LR1 details"<<endl;
+std::cout<<"===>Please check Grammar dump file: "
+<<normal_tracing.c_str()<<" for Not LR1 details"<<endl;
+yacco2::lrclog<<"Not LR1 --- check state conflict list of state: "
+<<gening_state->state_no_<<" for details"<<endl;
+/*135:*/
+//line 2187 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+const char*literal_name;
+yacco2::lrclog<<std::endl;
+yacco2::lrclog<<"State dump"<<std::endl;
+si= LR1_STATES.begin();
+sie= LR1_STATES.end();
+for(;si!=sie;++si){
+state*cur_state= *si;
+Print_dump_state(cur_state);
+}
+
+/*:135*/
+//line 619 "/usr/local/yacco2/compiler/o2/prog.w"
+
+/*134:*/
+//line 2159 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+LR1_STATES_ITER_type ci= LR1_COMMON_STATES.begin();
+LR1_STATES_ITER_type cie= LR1_COMMON_STATES.end();
+yacco2::lrclog<<"Common States dump"<<std::endl;
+int cstate_no(0);
+for(;ci!=cie;++ci){
+++cstate_no;
+STATES_ITER_type si= ci->second.begin();
+STATES_ITER_type sie= ci->second.end();
+bool pre= false;
+for(;si!=sie;++si){
+state*cstate= *si;
+if(pre==false){
+pre= true;
+yacco2::lrclog<<cstate_no<<"::Common State: "<<cstate->vectored_into_by_elem_;
+if(cstate->vectored_into_by_elem_sym_==0){
+yacco2::lrclog<<" Entry Symbol: No symbol"<<std::endl;
+}else{
+yacco2::lrclog<<" Entry Symbol: "<<cstate->entry_symbol_literal()<<std::endl;
+}
+}
+yacco2::lrclog<<"\tstate no: "<<cstate->state_no_<<std::endl;
+}
+yacco2::lrclog<<std::endl;
+}
+
+
+/*:134*/
+//line 620 "/usr/local/yacco2/compiler/o2/prog.w"
+
+return 1;
+}
+
+/*:40*/
+//line 602 "/usr/local/yacco2/compiler/o2/prog.w"
+
+}
+}
+
+/*41:*/
+//line 634 "/usr/local/yacco2/compiler/o2/prog.w"
+
+COMMONIZE_LA_SETS();
+
+
+/*:41*/
+//line 606 "/usr/local/yacco2/compiler/o2/prog.w"
+
+
+
+
+/*:39*/
+//line 73 "/usr/local/yacco2/compiler/o2/prog.w"
+
+/*40:*/
+//line 611 "/usr/local/yacco2/compiler/o2/prog.w"
+
+if(LR1_HEALTH==NOT_LR1_COMPATIBLE){
+yacco2::lrclog<<"===>Please check Grammar dump file: "
+<<normal_tracing.c_str()<<" for Not LR1 details"<<endl;
+std::cout<<"===>Please check Grammar dump file: "
+<<normal_tracing.c_str()<<" for Not LR1 details"<<endl;
+yacco2::lrclog<<"Not LR1 --- check state conflict list of state: "
+<<gening_state->state_no_<<" for details"<<endl;
+/*135:*/
+//line 2187 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+const char*literal_name;
+yacco2::lrclog<<std::endl;
+yacco2::lrclog<<"State dump"<<std::endl;
+si= LR1_STATES.begin();
+sie= LR1_STATES.end();
+for(;si!=sie;++si){
+state*cur_state= *si;
+Print_dump_state(cur_state);
+}
+
+/*:135*/
+//line 619 "/usr/local/yacco2/compiler/o2/prog.w"
+
+/*134:*/
+//line 2159 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+LR1_STATES_ITER_type ci= LR1_COMMON_STATES.begin();
+LR1_STATES_ITER_type cie= LR1_COMMON_STATES.end();
+yacco2::lrclog<<"Common States dump"<<std::endl;
+int cstate_no(0);
+for(;ci!=cie;++ci){
+++cstate_no;
+STATES_ITER_type si= ci->second.begin();
+STATES_ITER_type sie= ci->second.end();
+bool pre= false;
+for(;si!=sie;++si){
+state*cstate= *si;
+if(pre==false){
+pre= true;
+yacco2::lrclog<<cstate_no<<"::Common State: "<<cstate->vectored_into_by_elem_;
+if(cstate->vectored_into_by_elem_sym_==0){
+yacco2::lrclog<<" Entry Symbol: No symbol"<<std::endl;
+}else{
+yacco2::lrclog<<" Entry Symbol: "<<cstate->entry_symbol_literal()<<std::endl;
+}
+}
+yacco2::lrclog<<"\tstate no: "<<cstate->state_no_<<std::endl;
+}
+yacco2::lrclog<<std::endl;
+}
+
+
+/*:134*/
+//line 620 "/usr/local/yacco2/compiler/o2/prog.w"
+
+return 1;
+}
+
+/*:40*/
+//line 74 "/usr/local/yacco2/compiler/o2/prog.w"
+
+/*37:*/
+//line 537 "/usr/local/yacco2/compiler/o2/prog.w"
+
+lrclog<<"Evaluate rules count"<<endl;
+using namespace NS_rules_use_cnt;
+
+set<int> rules_use_cnt_filter;
+rules_use_cnt_filter.insert(T_Enum::T_T_subrule_def_);
+rules_use_cnt_filter.insert(T_Enum::T_rule_def_);
+rules_use_cnt_filter.insert(T_Enum::T_refered_rule_);
+
+tok_can_ast_functor rules_use_walk_functr;
+ast_prefix rules_use_walk(*GRAMMAR_TREE,&rules_use_walk_functr
+,&rules_use_cnt_filter,ACCEPT_FILTER);
+tok_can<AST*> rules_use_can(rules_use_walk);
+Crules_use_cnt rules_use_cnt_fsm;
+Parser rules_use_cnt(rules_use_cnt_fsm,&rules_use_can,0,0,&Error_queue);
+rules_use_cnt.parse();
+
+
+/*:37*/
+//line 75 "/usr/local/yacco2/compiler/o2/prog.w"
+
+/*130:*/
+//line 2126 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+
+/*118:*/
+//line 1990 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+lrclog<<"Output enumeration header file "<<endl;
+OP_ENUMERATION_HEADER(Error_queue);
+/*21:*/
+//line 146 "/usr/local/yacco2/compiler/o2/prog.w"
+
+if(Error_queue.empty()!=true){
+DUMP_ERROR_QUEUE(Error_queue);
+return 1;
+}
+
+/*:21*/
+//line 1993 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+
+/*:118*/
+//line 2128 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+/*119:*/
+//line 1996 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+if(ERR_SW=='y'){
+lrclog<<"Output Errors vocabulary files "<<endl;
+OP_ERRORS_HEADER(Error_queue);
+OP_ERRORS_CPP(Error_queue);
+/*21:*/
+//line 146 "/usr/local/yacco2/compiler/o2/prog.w"
+
+if(Error_queue.empty()!=true){
+DUMP_ERROR_QUEUE(Error_queue);
+return 1;
+}
+
+/*:21*/
+//line 2001 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+}
+
+/*:119*/
+//line 2129 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+/*120:*/
+//line 2005 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+if(T_SW=='y'){
+lrclog<<"Output User Terminal vocabulary files "<<endl;
+OP_USER_T_HEADER(Error_queue);
+OP_USER_T_CPP(Error_queue);
+/*21:*/
+//line 146 "/usr/local/yacco2/compiler/o2/prog.w"
+
+if(Error_queue.empty()!=true){
+DUMP_ERROR_QUEUE(Error_queue);
+return 1;
+}
+
+/*:21*/
+//line 2010 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+}
+
+/*:120*/
+//line 2130 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+/*125:*/
+//line 2036 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+if(T_SW=='y'||ERR_SW=='y'){
+lrclog<<"Output User Terminal vocabulary files "<<endl;
+OP_T_Alphabet(Error_queue);
+/*21:*/
+//line 146 "/usr/local/yacco2/compiler/o2/prog.w"
+
+if(Error_queue.empty()!=true){
+DUMP_ERROR_QUEUE(Error_queue);
+return 1;
+}
+
+/*:21*/
+//line 2040 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+}
+
+/*:125*/
+//line 2131 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+/*121:*/
+//line 2014 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+lrclog<<"Output grammar header file "<<endl;
+OP_GRAMMAR_HEADER(Error_queue);
+/*21:*/
+//line 146 "/usr/local/yacco2/compiler/o2/prog.w"
+
+if(Error_queue.empty()!=true){
+DUMP_ERROR_QUEUE(Error_queue);
+return 1;
+}
+
+/*:21*/
+//line 2017 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+
+/*:121*/
+//line 2132 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+/*122:*/
+//line 2020 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+lrclog<<"Output grammar cpp file "<<endl;
+OP_GRAMMAR_CPP(Error_queue);
+/*21:*/
+//line 146 "/usr/local/yacco2/compiler/o2/prog.w"
+
+if(Error_queue.empty()!=true){
+DUMP_ERROR_QUEUE(Error_queue);
+return 1;
+}
+
+/*:21*/
+//line 2023 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+/*:122*/
+//line 2133 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+/*123:*/
+//line 2025 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+lrclog<<"Output grammar sym file "<<endl;
+OP_GRAMMAR_SYM(Error_queue);
+/*21:*/
+//line 146 "/usr/local/yacco2/compiler/o2/prog.w"
+
+if(Error_queue.empty()!=true){
+DUMP_ERROR_QUEUE(Error_queue);
+return 1;
+}
+
+/*:21*/
+//line 2028 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+/*:123*/
+//line 2134 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+/*124:*/
+//line 2030 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+lrclog<<"Output grammar tbl file "<<endl;
+OP_GRAMMAR_TBL(Error_queue);
+/*21:*/
+//line 146 "/usr/local/yacco2/compiler/o2/prog.w"
+
+if(Error_queue.empty()!=true){
+DUMP_ERROR_QUEUE(Error_queue);
+return 1;
+}
+
+/*:21*/
+//line 2033 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+
+/*:124*/
+//line 2135 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+/*129:*/
+//line 2122 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+OP_FSC_FILE(Error_queue);
+
+/*:129*/
+//line 2136 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+/*126:*/
+//line 2044 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+if(PRT_SW=='y'){
+/*127:*/
+//line 2076 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+using namespace yacco2;
+using namespace NS_yacco2_k_symbols;
+using namespace NS_mpost_output;
+lrclog<<"Emit grammar's railroad diagrams for Mpost"<<endl;
+set<int> cweb_k_filter;
+cweb_k_filter.insert(T_Enum::T_T_cweb_comment_);
+tok_can_ast_functor mpost_just_walk_functr;
+ast_prefix mpost_rule_walk(*GRAMMAR_TREE,&mpost_just_walk_functr,&cweb_k_filter,BYPASS_FILTER);
+tok_can<AST*> mpost_rules_can(mpost_rule_walk);
+Cmpost_output mpost_fsm;
+T_fsm_phrase*fsm_ph= O2_FSM_PHASE;
+mpost_fsm.grammar_filename_prefix_+= fsm_ph->filename_id()->identifier()->c_str();
+mpost_fsm.fq_filename_noext_+= o2_fq_fn_noext.c_str();
+
+Parser mpost_rules(mpost_fsm,&mpost_rules_can,0,0,&Error_queue);
+mpost_rules.parse();
+
+/*:127*/
+//line 2046 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+/*128:*/
+//line 2097 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+using namespace NS_prt_xrefs_docs;
+yacco2::lrclog<<"----- Print xref docs -----"<<std::endl;
+set<int> prt_xrefs_docs_filter;
+prt_xrefs_docs_filter.insert(T_Enum::T_rule_def_);
+prt_xrefs_docs_filter.insert(T_Enum::T_T_subrule_def_);
+prt_xrefs_docs_filter.insert(T_Enum::T_refered_T_);
+prt_xrefs_docs_filter.insert(T_Enum::T_refered_rule_);
+prt_xrefs_docs_filter.insert(T_Enum::T_T_called_thread_eosubrule_);
+prt_xrefs_docs_filter.insert(T_Enum::T_T_null_call_thread_eosubrule_);
+prt_xrefs_docs_filter.insert(T_Enum::T_T_eosubrule_);
+
+tok_can_ast_functor xrefs_docs_walk_functr;
+ast_prefix prt_xrefs_docs_walk(*rules_tree
+,&xrefs_docs_walk_functr,&prt_xrefs_docs_filter,ACCEPT_FILTER);
+tok_can<AST*> prt_xrefs_docs_can(prt_xrefs_docs_walk);
+Cprt_xrefs_docs prt_xrefs_docs_fsm;
+prt_xrefs_docs_fsm.grammar_filename_prefix_+= mpost_fsm.grammar_filename_prefix_;
+prt_xrefs_docs_fsm.fq_filename_noext_+= o2_fq_fn_noext.c_str();
+Parser prt_xrefs_docs(prt_xrefs_docs_fsm,&prt_xrefs_docs_can,0,0,&Error_queue);
+prt_xrefs_docs.parse();
+
+/*:128*/
+//line 2047 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+}
+/*:126*/
+//line 2137 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+
+/*:130*/
+//line 76 "/usr/local/yacco2/compiler/o2/prog.w"
+
+
+
+exit:
+lrclog<<"Exiting O2"<<std::endl;
+return 0;
+}
+/*:14*//*162:*/
+//line 31 "/usr/local/yacco2/compiler/o2/includes.w"
+
+
+/*:162*/
+//line 49 "/usr/local/yacco2/compiler/o2/includes.w"
+
+
+//line 17 "./o2.w"
+/*:164*/
diff --git a/web/yacco2/compiler/o2/o2.h b/web/yacco2/compiler/o2/o2.h
new file mode 100644
index 0000000000..713155db96
--- /dev/null
+++ b/web/yacco2/compiler/o2/o2.h
@@ -0,0 +1,46 @@
+/*163:*/
+//line 36 "/usr/local/yacco2/compiler/o2/includes.w"
+
+
+//line 37 "/usr/local/yacco2/compiler/o2/includes.w"
+
+#ifndef o2__
+#define o2__ 1
+/*161:*/
+//line 13 "/usr/local/yacco2/compiler/o2/includes.w"
+
+#include "globals.h"
+#include "yacco2_stbl.h"
+using namespace yacco2_stbl;
+#include "o2_lcl_opts.h"
+#include "o2_lcl_opt.h"
+#include "pass3.h"
+#include "o2_types.h"
+#include "la_expr_lexical.h"
+#include "la_expr.h"
+#include "enumerate_T_alphabet.h"
+#include "epsilon_rules.h"
+#include "mpost_output.h"
+#include "prt_xrefs_docs.h"
+#include "eval_phrases.h"
+#include "enumerate_grammar.h"
+#include "rules_use_cnt.h"
+/*:161*/
+//line 40 "/usr/local/yacco2/compiler/o2/includes.w"
+
+/*13:*/
+//line 24 "/usr/local/yacco2/compiler/o2/prog.w"
+
+extern int RECURSION_INDEX__;
+extern void COMMONIZE_LA_SETS();
+extern int NO_LR1_STATES;
+extern STATES_SET_type VISITED_MERGE_STATES_IN_LA_CALC;
+extern LR1_STATES_type LR1_COMMON_STATES;
+extern CYCLIC_USE_TBL_type CYCLIC_USE_TABLE;
+extern void Print_dump_state(state*State);
+/*:13*/
+//line 41 "/usr/local/yacco2/compiler/o2/includes.w"
+
+#endif
+
+/*:163*/
diff --git a/web/yacco2/compiler/o2/o2.w b/web/yacco2/compiler/o2/o2.w
new file mode 100644
index 0000000000..90d4891b73
--- /dev/null
+++ b/web/yacco2/compiler/o2/o2.w
@@ -0,0 +1,17 @@
+@q file: o2.w@>
+@q% Copyright Dave Bone 1998 - 2015@>
+@q% /*@>
+@q% This Source Code Form is subject to the terms of the Mozilla Public@>
+@q% License, v. 2.0. If a copy of the MPL was not distributed with this@>
+@q% file, You can obtain one at http://mozilla.org/MPL/2.0/.@>
+@q% */@>
+\input "eplain"
+\input "supp-pdf"
+\input"/usr/local/yacco2/diagrams/o2mac.tex"
+@i "/usr/local/yacco2/license.w"
+@i "/usr/local/yacco2/compiler/o2/intro.w"
+@i "/usr/local/yacco2/compiler/o2/prog.w"
+@i "/usr/local/yacco2/compiler/o2/o2_defs.w"
+@i "/usr/local/yacco2/compiler/o2/bugs.w"
+@i "/usr/local/yacco2/compiler/o2/includes.w"
+@** Index. \ No newline at end of file
diff --git a/web/yacco2/compiler/o2/o2_defs.cpp b/web/yacco2/compiler/o2/o2_defs.cpp
new file mode 100644
index 0000000000..6dded9d49d
--- /dev/null
+++ b/web/yacco2/compiler/o2/o2_defs.cpp
@@ -0,0 +1,1671 @@
+/*141:*/
+//line 2215 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+#include "o2.h"
+/*44:*/
+//line 242 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+gen_context::gen_context(state*S,Voc_ENO Ve):for_closure_state_(S),gen_vector_(Ve){}
+
+/*:44*//*46:*/
+//line 259 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+state_element::state_element(AST*Elem)
+:cs_vector_combo_gening_it_(0,-1)
+,sr_element_(Elem)
+,sr_def_element_(0)
+,its_enum_id_(-1)
+,subrule_def_(0)
+,closure_state_(0)
+,goto_state_(0)
+,previous_state_(0)
+,reduced_state_(0)
+,self_state_(0)
+,previous_state_element_(0)
+,next_state_element_(0)
+,la_set_(0)
+,common_la_set_idx_(-1)
+{
+/*47:*/
+//line 280 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+CAbs_lr1_sym*sym= AST::content(*Elem);
+Voc_ENO id= sym->enumerated_id__;
+switch(id){
+case T_Enum::T_refered_rule_:{
+/*108:*/
+//line 1885 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+refered_rule* rr = (refered_rule*)sym;
+
+/*:108*/
+//line 285 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+rule_def*rd= rr->its_rule_def();
+sr_def_element_= rd;
+its_enum_id_= rd->enum_id();
+break;
+}
+case T_Enum::T_T_eosubrule_:{
+/*110:*/
+//line 1893 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+T_eosubrule* eos = (T_eosubrule*)sym;
+/*:110*/
+//line 292 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+sr_def_element_= eos;
+its_enum_id_= eos->enumerated_id__;
+la_set_= new LA_SET_type();
+break;
+}
+case T_Enum::T_T_null_call_thread_eosubrule_:{
+/*111:*/
+//line 1896 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+T_null_call_thread_eosubrule* eos = (T_null_call_thread_eosubrule*)sym;
+/*:111*/
+//line 299 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+sr_def_element_= eos;
+its_enum_id_= eos->enumerated_id__;
+break;
+}
+case T_Enum::T_T_called_thread_eosubrule_:{
+/*112:*/
+//line 1899 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+T_called_thread_eosubrule* eos = (T_called_thread_eosubrule*)sym;
+
+/*:112*/
+//line 305 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+sr_def_element_= eos;
+its_enum_id_= eos->enumerated_id__;
+break;
+}
+case T_Enum::T_refered_T_:{
+/*109:*/
+//line 1889 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+refered_T* rt = (refered_T*)sym;
+
+/*:109*/
+//line 311 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+T_terminal_def*td= rt->its_t_def();
+sr_def_element_= td;
+its_enum_id_= td->enum_id();
+break;
+}
+}
+
+/*:47*/
+//line 276 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+}
+/*:46*//*48:*/
+//line 320 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+state_element::~state_element(){
+if(la_set_!=0)delete la_set_;
+}
+
+/*:48*//*50:*/
+//line 334 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+void state_element::add_fs_setA_to_LA(follow_element&Fe,LA_SET_type&La_to_fill_in){
+FOLLOW_SETS_ITER_type i= Fe.follow_set_.begin();
+FOLLOW_SETS_ITER_type ie= Fe.follow_set_.end();
+for(;i!=ie;++i){
+LA_SET_ITER_type j= La_to_fill_in.find(*i);
+if(j==La_to_fill_in.end()){
+T_in_stbl*t_sym= *i;
+/*51:*/
+//line 351 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+if(t_sym->t_def()->enum_id()!=LR1_PARALLEL_OPERATOR){
+La_to_fill_in.insert(t_sym);
+}else{
+using namespace yacco2_stbl;
+T_sym_tbl_report_card report_card;
+find_sym_in_stbl(report_card,*LR1_REDUCE_OPERATOR_LITERAL);
+T_in_stbl* td = (T_in_stbl*)report_card.tbl_entry_->symbol_;
+La_to_fill_in.insert(td);
+}
+
+/*:51*/
+//line 342 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+}
+}
+}
+/*:50*//*52:*/
+//line 368 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+bool state_element::calc_la(state_element&La_to_fill_in){
+if(La_to_fill_in.la_set_==NULL){
+return false;
+}
+if(La_to_fill_in.reduced_state_!=La_to_fill_in.self_state_)return true;
+VISITED_MERGE_STATES_IN_LA_CALC.clear();
+La_to_fill_in.la_set_->clear();
+state*cs= La_to_fill_in.closure_state_;
+CAbs_lr1_sym*sym= AST::content(*La_to_fill_in.sr_element_);
+T_ENO id= sym->enumerated_id__;
+switch(id){
+case T_Enum::T_T_eosubrule_:{
+/*110:*/
+//line 1893 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+T_eosubrule* eos = (T_eosubrule*)sym;
+/*:110*/
+//line 381 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+rule_def*rd= eos->its_rule_def();
+RULE_ENO r_id= rd->enum_id();
+S_FOLLOW_SETS_ITER_type i= cs->state_s_follow_set_map_.find(r_id);
+follow_element*fe= i->second;
+add_fs_setA_to_LA(*fe,*La_to_fill_in.la_set_);
+if(fe->transitions_.empty()!=true){
+fill_la_from_transition(La_to_fill_in,fe->transitions_);
+}
+if(fe->merges_.empty()!=true){
+fill_la_from_merge(La_to_fill_in,fe->merges_,r_id);
+}
+break;
+}
+case T_Enum::T_T_null_call_thread_eosubrule_:{
+break;
+}
+case T_Enum::T_T_called_thread_eosubrule_:{
+break;
+}
+}
+if(La_to_fill_in.la_set_->empty()==true){
+return false;
+}else{
+return true;
+}
+}
+
+/*:52*//*53:*/
+//line 410 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+void
+state_element::
+fill_la_from_merge(state_element&La_to_fill_in,MERGES_type&Merge,RULE_ENO Rule_no){
+MERGES_ITER_type i= Merge.begin();
+MERGES_ITER_type ie= Merge.end();
+for(;i!=ie;++i){
+state*cs= *i;
+STATES_SET_ITER_type ii= VISITED_MERGE_STATES_IN_LA_CALC.find(cs);
+if(ii!=VISITED_MERGE_STATES_IN_LA_CALC.end())return;
+VISITED_MERGE_STATES_IN_LA_CALC.insert(cs);
+S_FOLLOW_SETS_ITER_type i= cs->state_s_follow_set_map_.find(Rule_no);
+follow_element*fe= i->second;
+add_fs_setA_to_LA(*fe,*La_to_fill_in.la_set_);
+if(fe->transitions_.empty()!=true){
+fill_la_from_transition(La_to_fill_in,fe->transitions_);
+}
+if(fe->merges_.empty()!=true){
+fill_la_from_merge(La_to_fill_in,fe->merges_,fe->rule_no_);
+}
+}
+}
+
+/*:53*//*54:*/
+//line 434 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+void
+state_element::
+fill_la_from_transition(state_element&La_to_fill_in,TRANSITIONS_type&Transition){
+TRANSITIONS_ITER_type i= Transition.begin();
+TRANSITIONS_ITER_type ie= Transition.end();
+for(;i!=ie;++i){
+follow_element*fe= *i;
+add_fs_setA_to_LA(*fe,*La_to_fill_in.la_set_);
+if(fe->transitions_.empty()!=true){
+fill_la_from_transition(La_to_fill_in,fe->transitions_);
+}
+if(fe->merges_.empty()!=true){
+fill_la_from_merge(La_to_fill_in,fe->merges_,fe->rule_no_);
+}
+}
+}
+
+/*:54*//*55:*/
+//line 454 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+RULE_ENO state_element::find_state_element_s_rule_no(){
+return subrule_def_->its_rule_def()->enum_id();
+}
+
+/*:55*//*57:*/
+//line 472 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+AST*follow_element::rule_def_t(){return rule_def_t_;}
+state*follow_element::its_state(){return its_state_;}
+follow_element::follow_element(state*State)
+:rule_no_(-1)
+,rule_def_t_(0)
+,its_state_(State)
+{}
+follow_element::follow_element(RULE_ENO Rule_no,state_element&State_elem,AST&Rule_def_t)
+:rule_no_(Rule_no)
+,rule_def_t_(&Rule_def_t)
+,its_state_(State_elem.closure_state_)
+{}
+
+void follow_element::add_follow_set_contributor(AST*SR_element){
+sr_elements_.push_back(SR_element);
+}
+/*:57*//*58:*/
+//line 495 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+void follow_element::add_follow_set_transition(state_element&State_elem,T_eosubrule&Eos){
+rule_def*rd= Eos.its_rule_def();
+RULE_ENO eno= rd->enum_id();
+
+S_FOLLOW_SETS_ITER_type fsi=
+State_elem.closure_state_->state_s_follow_set_map_.find(eno);
+if(fsi==State_elem.closure_state_->state_s_follow_set_map_.end()){
+return;
+}
+follow_element*fe= fsi->second;
+/*59:*/
+//line 513 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+if((rule_no_==eno)
+&&
+(its_state_->state_no_==State_elem.closure_state_->state_no_))
+return;
+
+/*:59*/
+//line 506 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+transitions_.push_back(fe);
+}
+
+/*:58*//*60:*/
+//line 521 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+void follow_element::add_T_to_follow_set(AST*Refered_T){
+/*61:*/
+//line 527 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+refered_T* t = (refered_T*)AST::content(*Refered_T);
+
+/*:61*/
+//line 523 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+follow_set_.insert(t->t_in_stbl());
+}
+/*:60*//*62:*/
+//line 531 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+void follow_element::remove_merge_closure_info(){
+merges_.pop_front();
+}
+
+/*:62*//*63:*/
+//line 539 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+void follow_element::add_merge_closure_info(state&To_merge_closure_state){
+state*tm= &To_merge_closure_state;
+MERGES_ITER_type i= merges_.begin();
+MERGES_ITER_type ie= merges_.end();
+for(;i!=ie;++i){
+state*s= *i;
+if(s==tm)return;
+}
+merges_.push_front(&To_merge_closure_state);
+}
+
+/*:63*//*66:*/
+//line 640 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+
+
+/*:66*//*67:*/
+//line 644 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+state::state(AST*Start_rule_t)
+:cs_vector_combo_gening_it_(0,-1)
+,vectored_into_by_elem_(START_STATE_ENUMERATE)
+,vectored_into_by_elem_sym_(0)
+,state_no_(0)
+,closure_state_birthing_it_(0)
+,state_type_(0)
+,arbitrator_name_(0)
+{
+create_start_state(*Start_rule_t);
+add_state_to_gbl_lr1_state_tbls(this);
+}
+
+/*:67*//*68:*/
+//line 659 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+state::state()
+:cs_vector_combo_gening_it_(0,-1)
+,vectored_into_by_elem_(START_STATE_ENUMERATE)
+,vectored_into_by_elem_sym_(0)
+,state_no_(0)
+,closure_state_birthing_it_(0)
+,state_type_(0)
+,arbitrator_name_(0)
+{}
+
+/*:68*//*69:*/
+//line 671 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+state::state(Voc_ENO Eno,CAbs_lr1_sym*Entry_sym)
+:cs_vector_combo_gening_it_(0,-1)
+,vectored_into_by_elem_(Eno)
+,vectored_into_by_elem_sym_(Entry_sym)
+,state_no_(0)
+,closure_state_birthing_it_(0)
+,state_type_(0)
+,arbitrator_name_(0)
+{}
+
+/*:69*//*70:*/
+//line 686 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+void state::closure_only_derives(AST*Rule_tree){
+gen_context gening_context(0,-1);
+add_rule_s_subrules_to_state(*Rule_tree,gening_context,*this);
+add_closure_rules_subrules_to_state(gening_context,*this);
+}
+
+
+/*:70*//*72:*/
+//line 708 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+void state::add_element_to_state_vector
+(Voc_ENO Elem_id,state_element&Elem){
+S_VECTORS_ITER_type i= state_s_vector_.find(Elem_id);
+if(i==state_s_vector_.end()){
+state_s_vector_[Elem_id]= S_VECTOR_ELEMS_type();
+i= state_s_vector_.find(Elem_id);
+}
+S_VECTOR_ELEMS_type&el= i->second;
+if(el.empty()==true){
+el.push_back(&Elem);
+return;
+}
+S_VECTOR_ELEMS_ITER_type j= el.begin();
+S_VECTOR_ELEMS_ITER_type je= el.end();
+for(;j!=je;++j){
+state_element*se= *j;
+if(Elem.sr_element_<se->sr_element_){
+el.insert(j,&Elem);
+return;
+}
+}
+el.push_back(&Elem);
+}
+
+/*:72*//*73:*/
+//line 739 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+void state::add_closure_rules_subrules_to_state(gen_context&Possible_gen_context,state&Closure_state){
+CLOSURE_RULES_type processed_rules_set;
+loop_until_empty:;
+if(closure_rule_list_.empty()==true)return;
+CLOSURE_RULES_ITER_type i= closure_rule_list_.begin();
+if(processed_rules_set.find(*i)!=processed_rules_set.end()){
+closure_rule_list_.erase(*i);
+goto loop_until_empty;
+}
+processed_rules_set.insert(*i);
+rule_def*rd= (*i)->r_def();
+AST*t= rd->rule_s_tree();
+add_rule_s_subrules_to_state(*t,Possible_gen_context,Closure_state);
+goto loop_until_empty;
+}
+
+/*:73*//*74:*/
+//line 757 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+void state::add_rule_to_closure_list(rule_in_stbl*Rule_in_stbl){
+CLOSURE_RULES_ITER_type i= closure_rule_list_.find(Rule_in_stbl);
+if(i==closure_rule_list_.end()){
+closure_rule_list_.insert(Rule_in_stbl);
+derives_closure_rule_list_.insert(Rule_in_stbl);
+rule_def*rd= Rule_in_stbl->r_def();
+if(rd->closure_rules_making_up_first_set()->empty()==true)return;
+CLOSURE_RULES_type*cr= rd->closure_rules_making_up_first_set();
+CLOSURE_RULES_ITER_type j= cr->begin();
+CLOSURE_RULES_ITER_type je= cr->end();
+for(;j!=je;++j){
+rule_in_stbl*ris= *j;
+i= closure_rule_list_.find(ris);
+if(i==closure_rule_list_.end()){
+derives_closure_rule_list_.insert(ris);
+closure_rule_list_.insert(ris);
+}
+}
+}
+}
+/*:74*//*75:*/
+//line 785 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+void
+state::
+add_rule_s_subrules_to_state(AST&Start_Rule_def_t,gen_context&Possible_gen_context,state&Closure_state_associate_with){
+AST*subrules_t= AST::get_1st_son(Start_Rule_def_t);
+AST*first_element_t(0);
+CAbs_lr1_sym*first_element(0);
+Voc_ENO id(START_STATE_ENUMERATE);
+Voc_ENO cs_id(START_STATE_ENUMERATE);
+for(;subrules_t!=0;subrules_t= AST::brother(*subrules_t)){
+T_subrule_def* srd = (T_subrule_def*)AST::content(*subrules_t);
+first_element_t= AST::get_1st_son(*subrules_t);
+first_element= AST::content(*first_element_t);
+state_element*se= new state_element(first_element_t);
+se->subrule_def_= srd;
+se->self_state_= this;
+se->closure_state_= this;
+se->closured_state_gening_it_= &Closure_state_associate_with;
+id= first_element->enumerated_id__;
+switch(id){
+case T_Enum::T_refered_rule_:{
+refered_rule* rr = (refered_rule*)first_element;
+rule_def*rd= rr->its_rule_def();
+rule_in_stbl*ris= rr->Rule_in_stbl();
+RULE_ENO r_id= rd->enum_id();
+cs_id= r_id;
+se->cs_vector_combo_gening_it_.gen_vector_= r_id;
+add_element_to_state_vector(r_id,*se);
+add_rule_to_follow_list(r_id);
+add_rule_to_closure_list(ris);
+break;
+}
+case T_Enum::T_T_eosubrule_:{
+T_ENO t_id= T_Enum::T_T_eosubrule_;
+cs_id= t_id;
+se->reduced_state_= this;
+se->cs_vector_combo_gening_it_.gen_vector_= t_id;
+add_element_to_state_vector(-t_id,*se);
+break;
+}
+case T_Enum::T_T_null_call_thread_eosubrule_:{
+T_ENO t_id= T_Enum::T_T_null_call_thread_eosubrule_;
+cs_id= t_id;
+se->reduced_state_= this;
+se->cs_vector_combo_gening_it_.gen_vector_= t_id;
+add_element_to_state_vector(-t_id,*se);
+break;
+}
+case T_Enum::T_T_called_thread_eosubrule_:{
+T_ENO t_id= T_Enum::T_T_called_thread_eosubrule_;
+cs_id= t_id;
+se->reduced_state_= this;
+se->cs_vector_combo_gening_it_.gen_vector_= t_id;
+add_element_to_state_vector(-t_id,*se);
+break;
+}
+case T_Enum::T_refered_T_:{
+refered_T* rt = (refered_T*)first_element;
+T_terminal_def*td= rt->its_t_def();
+T_ENO t_id= td->enum_id();
+cs_id= t_id;
+se->cs_vector_combo_gening_it_.gen_vector_= t_id;
+add_element_to_state_vector(t_id,*se);
+break;
+}
+}
+if(Possible_gen_context.gen_vector_!=-1){
+se->cs_vector_combo_gening_it_= Possible_gen_context;
+}else{
+se->cs_vector_combo_gening_it_.for_closure_state_= this;
+se->cs_vector_combo_gening_it_.gen_vector_= cs_id;
+}
+
+}
+}
+
+/*:75*//*76:*/
+//line 877 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+bool state::crt_core_items_of_state
+(S_VECTOR_ELEMS_ITER_type&Iter_begin
+,S_VECTOR_ELEMS_ITER_type&Iter_end
+,gen_context&Gening_context){
+bool rt_bnded(false);
+AST*to_element_t(0);
+CAbs_lr1_sym*to_element(0);
+Voc_ENO id(START_STATE_ENUMERATE);
+for(;Iter_begin!=Iter_end;++Iter_begin){
+state_element*from_se= *Iter_begin;
+to_element_t= AST::brother(*from_se->sr_element_);
+bool se_rt_bnded_condition= is_str_rt_bnded(to_element_t);
+if(se_rt_bnded_condition==true)rt_bnded= se_rt_bnded_condition;
+to_element= AST::content(*to_element_t);
+switch(to_element->enumerated_id__){
+case T_Enum::T_T_null_call_thread_eosubrule_:{
+to_element_t= AST::brother(*to_element_t);
+se_rt_bnded_condition= is_str_rt_bnded(to_element_t);
+if(se_rt_bnded_condition==true)rt_bnded= se_rt_bnded_condition;
+to_element= AST::content(*to_element_t);
+break;
+}
+case T_Enum::T_T_called_thread_eosubrule_:{
+to_element_t= AST::brother(*to_element_t);
+se_rt_bnded_condition= is_str_rt_bnded(to_element_t);
+if(se_rt_bnded_condition==true)rt_bnded= se_rt_bnded_condition;
+to_element= AST::content(*to_element_t);
+break;
+}
+}
+state_element*se= new state_element(to_element_t);
+se->subrule_def_= from_se->subrule_def_;
+se->self_state_= this;
+se->closure_state_= from_se->closure_state_;
+se->closured_state_gening_it_= Gening_context.for_closure_state_;
+
+se->cs_vector_combo_gening_it_= Gening_context;
+
+if(se_rt_bnded_condition==true){
+if(from_se->closured_state_gening_it_!=Gening_context.for_closure_state_){
+
+se->cs_vector_combo_gening_it_= from_se->cs_vector_combo_gening_it_;
+se->closured_state_gening_it_= from_se->closured_state_gening_it_;
+}else{
+se->cs_vector_combo_gening_it_= Gening_context;
+se->closured_state_gening_it_= Gening_context.for_closure_state_;
+}
+}
+from_se->goto_state_= se->self_state_;
+se->previous_state_= from_se->self_state_;
+
+from_se->next_state_element_= se;
+se->previous_state_element_= from_se;
+id= to_element->enumerated_id__;
+/*77:*/
+//line 938 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+switch(id){
+case T_Enum::T_refered_rule_:{
+refered_rule* rr = (refered_rule*)to_element;
+rule_def*rd= rr->its_rule_def();
+rule_in_stbl*ris= rr->Rule_in_stbl();
+RULE_ENO r_id= rd->enum_id();
+add_element_to_state_vector(r_id,*se);
+add_rule_to_follow_list(r_id);
+add_rule_to_closure_list(ris);
+break;
+}
+case T_Enum::T_T_eosubrule_:{
+T_ENO t_id= T_Enum::T_T_eosubrule_;
+add_element_to_state_vector(-t_id,*se);
+break;
+}
+case T_Enum::T_T_null_call_thread_eosubrule_:{
+T_ENO t_id= T_Enum::T_T_null_call_thread_eosubrule_;
+add_element_to_state_vector(-t_id,*se);
+break;
+}
+case T_Enum::T_T_called_thread_eosubrule_:{
+T_ENO t_id= T_Enum::T_T_called_thread_eosubrule_;
+add_element_to_state_vector(-t_id,*se);
+break;
+}
+case T_Enum::T_refered_T_:{
+refered_T* rt = (refered_T*)to_element;
+T_terminal_def*td= rt->its_t_def();
+T_ENO t_id= td->enum_id();
+add_element_to_state_vector(t_id,*se);
+break;
+}
+}
+
+/*:77*/
+//line 932 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+}
+return rt_bnded;
+}
+
+/*:76*//*78:*/
+//line 975 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+void state::create_start_state(AST&Start_rule_t){
+gen_context gening_context(0,-1);
+add_rule_s_subrules_to_state(Start_rule_t,gening_context,*this);
+add_closure_rules_subrules_to_state(gening_context,*this);
+crt_start_rule_s_follow_set(Start_rule_t);
+create_follow_sets_of_state();
+this->state_type_= determine_reduced_state_type(this);
+
+}
+/*:78*//*79:*/
+//line 993 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+bool
+state::
+gen_transitive_states_for_closure_context
+(gen_context&For_gening_context,state&For_closure_state,state&State){
+/*137:*/
+//line 2200 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+/*138:*/
+//line 2205 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+++RECURSION_INDEX__;
+/*:138*/
+//line 2201 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+/*139:*/
+//line 2208 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+for(int y__(1);y__<=RECURSION_INDEX__;++y__)lrclog<<'.';
+/*:139*/
+//line 2202 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+
+/*:137*/
+//line 998 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+lrclog<<"gen_transitive_states_for_closure_context for closure state: "
+<<For_gening_context.for_closure_state_->state_no_
+<<endl;
+S_VECTORS_ITER_type i= State.state_s_vector_.begin();
+S_VECTORS_ITER_type ie= State.state_s_vector_.end();
+for(;i!=ie;++i){
+Voc_ENO eno= i->first;
+/*80:*/
+//line 1025 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+if(eno==-T_Enum::T_T_eosubrule_)
+{
+S_VECTOR_ELEMS_type elem_list= i->second;
+S_VECTOR_ELEMS_ITER_type j= elem_list.begin();
+S_VECTOR_ELEMS_ITER_type je= elem_list.end();
+for(;j!=je;++j){
+state_element*se= *j;
+se->reduced_state_= se->self_state_;
+state*reduced_state= se->self_state_;
+while(se->previous_state_element_!=0){
+se->previous_state_element_->reduced_state_= reduced_state;
+se= se->previous_state_element_;
+}
+}
+continue;
+}
+
+/*:80*/
+//line 1006 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+For_gening_context.gen_vector_= eno;
+/*139:*/
+//line 2208 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+for(int y__(1);y__<=RECURSION_INDEX__;++y__)lrclog<<'.';
+/*:139*/
+//line 1008 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+lrclog<<" for vector: "
+<<For_gening_context.gen_vector_
+<<endl;
+bool continue_gening= gen_a_state(For_gening_context,For_closure_state,State,i);
+if(continue_gening==NOT_LR1_COMPATIBLE){
+/*140:*/
+//line 2211 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+--RECURSION_INDEX__;
+
+/*:140*/
+//line 1014 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+return NOT_LR1_COMPATIBLE;
+}
+}
+/*140:*/
+//line 2211 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+--RECURSION_INDEX__;
+
+/*:140*/
+//line 1018 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+return LR1_COMPATIBLE;
+}
+
+/*:79*//*81:*/
+//line 1044 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+bool
+state::
+gen_transitive_states_balance_for_closure_vector
+(gen_context&Gen_context,state&For_closure_state,state&Goto_state){
+/*137:*/
+//line 2200 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+/*138:*/
+//line 2205 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+++RECURSION_INDEX__;
+/*:138*/
+//line 2201 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+/*139:*/
+//line 2208 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+for(int y__(1);y__<=RECURSION_INDEX__;++y__)lrclog<<'.';
+/*:139*/
+//line 2202 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+
+/*:137*/
+//line 1049 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+
+lrclog<<"gen_transitive_states_balance_for_closure_vector for <"
+<<Gen_context.for_closure_state_->state_no_
+<<","
+<<Gen_context.gen_vector_
+<<"> goto state: "
+<<Goto_state.state_no_
+<<endl;
+S_VECTORS_ITER_type i= Goto_state.state_s_vector_.begin();
+S_VECTORS_ITER_type ie= Goto_state.state_s_vector_.end();
+for(;i!=ie;++i){
+Voc_ENO eno= i->first;
+/*80:*/
+//line 1025 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+if(eno==-T_Enum::T_T_eosubrule_)
+{
+S_VECTOR_ELEMS_type elem_list= i->second;
+S_VECTOR_ELEMS_ITER_type j= elem_list.begin();
+S_VECTOR_ELEMS_ITER_type je= elem_list.end();
+for(;j!=je;++j){
+state_element*se= *j;
+se->reduced_state_= se->self_state_;
+state*reduced_state= se->self_state_;
+while(se->previous_state_element_!=0){
+se->previous_state_element_->reduced_state_= reduced_state;
+se= se->previous_state_element_;
+}
+}
+continue;
+}
+
+/*:80*/
+//line 1062 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+bool continue_gening= gen_a_state(Gen_context,For_closure_state,Goto_state,i);
+if(continue_gening==NOT_LR1_COMPATIBLE){
+/*140:*/
+//line 2211 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+--RECURSION_INDEX__;
+
+/*:140*/
+//line 1065 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+return NOT_LR1_COMPATIBLE;
+}
+}
+/*140:*/
+//line 2211 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+--RECURSION_INDEX__;
+
+/*:140*/
+//line 1069 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+return LR1_COMPATIBLE;
+}
+
+
+/*:81*//*82:*/
+//line 1117 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+bool state::gen_a_state
+(gen_context&For_gening_context
+,state&For_closure_state
+,state&Requesting_state,S_VECTORS_ITER_type&Elem_iter){
+/*137:*/
+//line 2200 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+/*138:*/
+//line 2205 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+++RECURSION_INDEX__;
+/*:138*/
+//line 2201 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+/*139:*/
+//line 2208 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+for(int y__(1);y__<=RECURSION_INDEX__;++y__)lrclog<<'.';
+/*:139*/
+//line 2202 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+
+/*:137*/
+//line 1122 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+lrclog<<"gen_a_state for <"
+<<For_gening_context.for_closure_state_->state_no_
+<<","
+<<For_gening_context.gen_vector_
+<<"> requesting state: "
+<<Requesting_state.state_no_
+<<endl;
+
+gen_context associated_rt_bnded_cs(0,-1);
+Voc_ENO eno= Elem_iter->first;
+S_VECTOR_ELEMS_type elem_list= Elem_iter->second;
+S_VECTOR_ELEMS_ITER_type i= elem_list.begin();
+S_VECTOR_ELEMS_ITER_type ie= elem_list.end();
+bool compatible(false);
+for(;i!=ie;++i){
+state_element*se= *i;
+/*83:*/
+//line 1173 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+if((
+(se->cs_vector_combo_gening_it_.for_closure_state_==For_gening_context.for_closure_state_)
+&&
+(se->cs_vector_combo_gening_it_.gen_vector_==For_gening_context.gen_vector_)
+)!=true){
+/*139:*/
+//line 2208 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+for(int y__(1);y__<=RECURSION_INDEX__;++y__)lrclog<<'.';
+/*:139*/
+//line 1179 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+lrclog<<"gen_a_state Bypass subrule as its gening <"
+<<se->cs_vector_combo_gening_it_.for_closure_state_->state_no_
+<<","
+<<se->cs_vector_combo_gening_it_.gen_vector_
+<<"> different then gening <"
+<<For_gening_context.for_closure_state_->state_no_
+<<","
+<<For_gening_context.gen_vector_
+<<">"
+<<endl;
+continue;
+}
+
+/*:83*/
+//line 1139 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+/*84:*/
+//line 1194 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+if(se->goto_state_!=0){
+/*139:*/
+//line 2208 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+for(int y__(1);y__<=RECURSION_INDEX__;++y__)lrclog<<'.';
+/*:139*/
+//line 1196 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+
+lrclog<<"gen_a_state subrule COMMON PREFIX state gened by a different gening context. <"
+<<se->cs_vector_combo_gening_it_.for_closure_state_->state_no_
+<<","
+<<se->cs_vector_combo_gening_it_.gen_vector_
+<<"> goto state: "
+<<se->goto_state_->state_no_
+<<endl;
+add_state_to_conflict_states_list_if(For_gening_context,*se->goto_state_);
+bool gen_ok= gen_transitive_states_balance_for_closure_vector(For_gening_context,For_closure_state,*se->goto_state_);
+/*140:*/
+//line 2211 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+--RECURSION_INDEX__;
+
+/*:140*/
+//line 1207 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+return gen_ok;
+}
+/*:84*/
+//line 1140 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+/*85:*/
+//line 1211 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+state*s= new state(eno,se->sr_def_element_);
+s->closure_state_birthing_it_= For_gening_context.for_closure_state_;
+s->cs_vector_combo_gening_it_= For_gening_context;
+S_VECTOR_ELEMS_ITER_type j= elem_list.begin();
+S_VECTOR_ELEMS_ITER_type je= elem_list.end();
+
+bool rt_bnded= s->crt_core_items_of_state(j,je,For_gening_context);
+if(rt_bnded==true){
+associated_rt_bnded_cs= For_gening_context;
+}else{
+associated_rt_bnded_cs.for_closure_state_= 0;
+associated_rt_bnded_cs.gen_vector_= -1;
+}
+s->add_closure_rules_subrules_to_state(associated_rt_bnded_cs,*s);
+s->create_follow_sets_of_state();
+
+/*:85*/
+//line 1141 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+/*86:*/
+//line 1231 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+int compatibility_result= find_2_states_compatible_and_merge(*s);
+switch(compatibility_result){
+case MERGED:{
+delete s;
+/*140:*/
+//line 2211 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+--RECURSION_INDEX__;
+
+/*:140*/
+//line 1236 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+return true;
+}
+case ABORT_GENING_STATES:{
+/*140:*/
+//line 2211 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+--RECURSION_INDEX__;
+
+/*:140*/
+//line 1240 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+return NOT_LR1_COMPATIBLE;
+}
+case NOT_MERGED:{
+break;
+}
+}
+
+/*:86*/
+//line 1142 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+add_state_to_gbl_lr1_state_tbls(s);
+/*139:*/
+//line 2208 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+for(int y__(1);y__<=RECURSION_INDEX__;++y__)lrclog<<'.';
+/*:139*/
+//line 1144 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+
+lrclog<<"gen_a_state for <"
+<<For_gening_context.for_closure_state_->state_no_
+<<","
+<<For_gening_context.gen_vector_
+<<"> requesting state: "
+<<Requesting_state.state_no_
+<<" NEW STATE CREATED: "
+<<s->state_no_
+<<endl;
+add_state_to_conflict_states_list_if(For_gening_context,*s);
+compatible= is_state_lr1_compatible(*s);
+if(compatible==NOT_LR1_COMPATIBLE){
+/*140:*/
+//line 2211 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+--RECURSION_INDEX__;
+
+/*:140*/
+//line 1158 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+return NOT_LR1_COMPATIBLE;
+}
+
+s->state_type_= determine_reduced_state_type(s);
+bool gen_ok= gen_transitive_states_balance_for_closure_vector(For_gening_context,For_closure_state,*s);
+/*140:*/
+//line 2211 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+--RECURSION_INDEX__;
+
+/*:140*/
+//line 1164 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+return gen_ok;
+}
+/*140:*/
+//line 2211 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+--RECURSION_INDEX__;
+
+/*:140*/
+//line 1167 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+
+return LR1_COMPATIBLE;
+}
+
+/*:82*//*87:*/
+//line 1251 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+int state::determine_reduced_state_type(state*S){
+
+using namespace NS_yacco2_T_enum;
+int no_reduces(0);
+int no_reduce_types(0);
+S_VECTORS_ITER_type svi= S->state_s_vector_.begin();
+S_VECTORS_ITER_type svie= S->state_s_vector_.end();
+S_VECTORS_ITER_type tvi= S->state_s_vector_.find(-T_Enum::T_T_eosubrule_);
+if(tvi!=svie){
+no_reduces+= tvi->second.size();
+++no_reduce_types;
+}
+tvi= S->state_s_vector_.find(-T_Enum::T_T_called_thread_eosubrule_);
+if(tvi!=svie){
+no_reduces+= tvi->second.size();
+++no_reduce_types;
+}
+tvi= S->state_s_vector_.find(-T_Enum::T_T_null_call_thread_eosubrule_);
+if(tvi!=svie){
+no_reduces+= tvi->second.size();
+++no_reduce_types;
+}
+if(no_reduces> 1)no_reduces= 3;
+if(S->state_s_vector_.size()> no_reduce_types){
+if(no_reduce_types> 0){
+++no_reduces;
+}
+}
+return no_reduces;
+}
+
+/*:87*//*88:*/
+//line 1284 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+void state::add_state_to_gbl_lr1_state_tbls(state*State){
+++NO_LR1_STATES;
+State->state_no_= NO_LR1_STATES;
+LR1_STATES.push_back(State);
+Voc_ENO eno= State->vectored_into_by_elem_;
+LR1_STATES_ITER_type i= LR1_COMMON_STATES.find(eno);
+if(i==LR1_COMMON_STATES.end()){
+LR1_COMMON_STATES[eno]= STATES_type();
+i= LR1_COMMON_STATES.find(eno);
+}
+i->second.push_back(State);
+}
+
+/*:88*//*89:*/
+//line 1303 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+void state::add_state_to_conflict_states_list_if(gen_context&Gening_context,state&State){
+S_VECTORS_ITER_type i= State.state_s_vector_.find(-T_Enum::T_T_eosubrule_);
+if(i!=State.state_s_vector_.end())goto reduce_fnd;
+return;
+reduce_fnd:;
+if(i->second.size()> 1){
+Gening_context.for_closure_state_->state_s_conflict_state_list_.push_back(&State);
+return;
+}
+if(State.state_s_vector_.size()<2)return;
+Gening_context.for_closure_state_->state_s_conflict_state_list_.push_back(&State);
+}
+
+/*:89*//*91:*/
+//line 1353 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+bool state::are_states_equivalent(state&Merge_into_state,state&To_merge_state){
+if(Merge_into_state.vectored_into_by_elem_!=To_merge_state.vectored_into_by_elem_){
+return false;
+}
+if(Merge_into_state.state_s_vector_.size()!=To_merge_state.state_s_vector_.size()){
+return false;
+}
+S_VECTORS_ITER_type i= Merge_into_state.state_s_vector_.begin();
+S_VECTORS_ITER_type ie= Merge_into_state.state_s_vector_.end();
+S_VECTORS_ITER_type j= To_merge_state.state_s_vector_.begin();
+S_VECTORS_ITER_type je= To_merge_state.state_s_vector_.end();
+for(;i!=ie;++i,++j){
+Voc_ENO ieno= i->first;
+Voc_ENO jeno= j->first;
+if(ieno!=jeno){
+return false;
+}
+if(i->second.size()!=j->second.size()){
+return false;
+}
+S_VECTOR_ELEMS_ITER_type l= i->second.begin();
+S_VECTOR_ELEMS_ITER_type le= i->second.end();
+S_VECTOR_ELEMS_ITER_type m= j->second.begin();
+S_VECTOR_ELEMS_ITER_type me= j->second.end();
+for(;l!=le;++l,++m){
+state_element*ls= *l;
+state_element*ms= *m;
+if(ls->sr_element_!=ms->sr_element_){
+return false;
+}
+}
+}
+return true;
+}
+
+/*:91*//*92:*/
+//line 1407 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+bool state::is_state_lr1_compatible(state&State_to_eval){
+T_COUNT_type t_cnt(START_OF_RULES_ENUM);
+for(int x= 0;x<START_OF_RULES_ENUM;++x)t_cnt[x]= 0;
+S_VECTORS_ITER_type i;
+i= State_to_eval.state_s_vector_.find(-T_Enum::T_T_eosubrule_);
+if(i!=State_to_eval.state_s_vector_.end()){
+goto assess_state;
+}
+i= State_to_eval.state_s_vector_.find(-T_Enum::T_T_called_thread_eosubrule_);
+if(i!=State_to_eval.state_s_vector_.end()){
+goto assess_state;
+}
+i= State_to_eval.state_s_vector_.find(-T_Enum::T_T_null_call_thread_eosubrule_);
+if(i!=State_to_eval.state_s_vector_.end()){
+goto assess_state;
+}
+return LR1_COMPATIBLE;
+assess_state:
+int no_reduces= 0;
+S_VECTOR_ELEMS_ITER_type j= i->second.begin();
+S_VECTOR_ELEMS_ITER_type je= i->second.end();
+bool T_not_meta(false);
+for(;j!=je;++j){
+++no_reduces;
+state_element*se= *j;
+if(se->calc_la(*se)==false){
+return NOT_LR1_COMPATIBLE;
+}
+LA_SET_ITER_type k= se->la_set_->begin();
+LA_SET_ITER_type ke= se->la_set_->end();
+for(;k!=ke;++k){
+T_in_stbl*tintbl= *k;
+T_ENO teno= tintbl->t_def()->enum_id();
+if(teno<=END_OF_LR1_DEFS){
+if(teno==LR1_EOG){
+T_not_meta= true;
+}
+}else{
+T_not_meta= true;
+}
+++t_cnt[teno];
+if(t_cnt[teno]> 1)return NOT_LR1_COMPATIBLE;
+}
+}
+if(no_reduces> 1){
+if(T_not_meta==true){
+if(t_cnt[LR1_EOLR]> 0)return NOT_LR1_COMPATIBLE;
+}
+}
+
+
+S_VECTORS_ITER_type l= State_to_eval.state_s_vector_.begin();
+S_VECTORS_ITER_type le= State_to_eval.state_s_vector_.end();
+for(;l!=le;++l){
+Voc_ENO t= l->first;
+if(t==-T_Enum::T_T_eosubrule_)continue;
+if(t==-T_Enum::T_T_null_call_thread_eosubrule_)continue;
+if(t==-T_Enum::T_T_called_thread_eosubrule_)continue;
+if(t==T_Enum::T_refered_rule_)continue;
+S_VECTOR_ELEMS_ITER_type m= l->second.begin();
+state_element*se= *m;
+CAbs_lr1_sym*sym= AST::content(*se->sr_element_);
+T_ENO tid= sym->enumerated_id__;
+switch(tid){
+case T_Enum::T_refered_T_:{
+/*109:*/
+//line 1889 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+refered_T* rt = (refered_T*)sym;
+
+/*:109*/
+//line 1473 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+T_in_stbl*tintbl= rt->t_in_stbl();
+T_ENO teno= tintbl->t_def()->enum_id();
+if(teno<=END_OF_LR1_DEFS){
+if(teno!=LR1_EOG){
+continue;
+}
+}
+++t_cnt[teno];
+if(t_cnt[teno]> 1)return NOT_LR1_COMPATIBLE;
+if(teno> END_OF_LR1_DEFS){
+if(t_cnt[LR1_EOLR]> 0)return NOT_LR1_COMPATIBLE;
+}
+}
+}
+}
+return LR1_COMPATIBLE;
+}
+
+/*:92*//*93:*/
+//line 1547 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+int
+state::
+are_2_states_compatible_yes_merge(state&To_merge_into_state,state&State_for_merging){
+state*cs_To_merge_into= To_merge_into_state.closure_state_birthing_it_;
+state*cs_for_merging= State_for_merging.closure_state_birthing_it_;
+
+/*94:*/
+//line 1586 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+RULE_NOS_SET_type rules_to_add;
+S_VECTORS_ITER_type sfmi= To_merge_into_state.state_s_vector_.begin();
+S_VECTORS_ITER_type sfmie= To_merge_into_state.state_s_vector_.end();
+S_VECTORS_ITER_type msfmi= State_for_merging.state_s_vector_.begin();
+for(;sfmi!=sfmie;++sfmi,++msfmi){
+S_VECTOR_ELEMS_ITER_type rri= sfmi->second.begin();
+S_VECTOR_ELEMS_ITER_type mrri= msfmi->second.begin();
+S_VECTOR_ELEMS_ITER_type rrie= sfmi->second.end();
+for(;rri!=rrie;++rri,++mrri){
+state_element*re= *rri;
+state_element*mre= *mrri;
+if(re->closure_state_==re->self_state_)continue;
+RULE_ENO ruleno= re->find_state_element_s_rule_no();
+S_FOLLOW_SETS_ITER_type j= re->closure_state_->state_s_follow_set_map_.find(ruleno);
+follow_element*fe= j->second;
+RULE_NOS_SET_ITER_type rni= rules_to_add.find(ruleno);
+if(rni==rules_to_add.end()){
+fe->add_merge_closure_info(*mre->closure_state_);
+rules_to_add.insert(ruleno);
+}
+}
+}
+/*:94*/
+//line 1554 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+bool compatible(false);
+if(cs_To_merge_into->state_s_conflict_state_list_.empty()==true)goto merged;
+lr1_test:
+{
+S_CONFLICT_STATES_ITER_type k= cs_To_merge_into->state_s_conflict_state_list_.begin();
+S_CONFLICT_STATES_ITER_type ke= cs_To_merge_into->state_s_conflict_state_list_.end();
+for(;k!=ke;++k){
+state*s= *k;
+
+compatible= s->is_state_lr1_compatible(*s);
+
+if(compatible==NOT_LR1_COMPATIBLE)goto unwind_merge;
+}
+}
+merged:
+{
+/*95:*/
+//line 1610 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+S_VECTORS_ITER_type ri= State_for_merging.state_s_vector_.begin();
+S_VECTORS_ITER_type rie= State_for_merging.state_s_vector_.end();
+S_VECTORS_ITER_type si= To_merge_into_state.state_s_vector_.begin();
+for(;ri!=rie;++ri,++si){
+S_VECTOR_ELEMS_ITER_type rri= ri->second.begin();
+S_VECTOR_ELEMS_ITER_type rrie= ri->second.end();
+S_VECTOR_ELEMS_ITER_type ssi= si->second.begin();
+for(;rri!=rrie;++rri,++ssi){
+state_element*re= *rri;
+state_element*se= *ssi;
+if(re->previous_state_element_==0)continue;
+state_element*prev_re= re->previous_state_element_;
+prev_re->goto_state_= se->self_state_;
+prev_re->reduced_state_= se->reduced_state_;
+prev_re->next_state_element_= se;
+
+for(prev_re= prev_re->previous_state_element_;
+prev_re!=0;prev_re= prev_re->previous_state_element_){
+prev_re->reduced_state_= se->reduced_state_;
+}
+}
+}
+/*96:*/
+//line 1642 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+if(cs_for_merging->cs_vector_combo_gening_it_.for_closure_state_
+!=cs_To_merge_into->cs_vector_combo_gening_it_.for_closure_state_){
+S_CONFLICT_STATES_ITER_type k= cs_To_merge_into->state_s_conflict_state_list_.begin();
+S_CONFLICT_STATES_ITER_type ke= cs_To_merge_into->state_s_conflict_state_list_.end();
+for(;k!=ke;++k){
+state*s= *k;
+cs_for_merging->state_s_conflict_state_list_.push_back(s);
+}
+}
+
+/*:96*/
+//line 1633 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+
+/*:95*/
+//line 1571 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+return MERGED;
+}
+
+unwind_merge:{
+
+unwind:;
+/*97:*/
+//line 1654 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+RULE_NOS_SET_type rules_to_add;
+S_VECTORS_ITER_type sfmi= To_merge_into_state.state_s_vector_.begin();
+S_VECTORS_ITER_type sfmie= To_merge_into_state.state_s_vector_.end();
+for(;sfmi!=sfmie;++sfmi){
+S_VECTOR_ELEMS_ITER_type rri= sfmi->second.begin();
+S_VECTOR_ELEMS_ITER_type rrie= sfmi->second.end();
+for(;rri!=rrie;++rri){
+state_element*re= *rri;
+if(re->closure_state_==re->self_state_)continue;
+RULE_ENO ruleno= re->find_state_element_s_rule_no();
+S_FOLLOW_SETS_ITER_type j= re->closure_state_->state_s_follow_set_map_.find(ruleno);
+follow_element*fe= j->second;
+RULE_NOS_SET_ITER_type rni= rules_to_add.find(ruleno);
+if(rni==rules_to_add.end()){
+fe->remove_merge_closure_info();
+rules_to_add.insert(ruleno);
+}
+}
+}
+
+/*:97*/
+//line 1578 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+return NOT_MERGED;
+}
+return NOT_MERGED;
+}
+
+/*:93*//*98:*/
+//line 1678 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+int state::find_2_states_compatible_and_merge(state&State_for_merging){
+Voc_ENO eno= State_for_merging.vectored_into_by_elem_;
+LR1_STATES_ITER_type i= LR1_COMMON_STATES.find(eno);
+if(i==LR1_COMMON_STATES.end()){
+return NOT_MERGED;
+}
+STATES_ITER_type j= i->second.begin();
+STATES_ITER_type je= i->second.end();
+for(;j!=je;++j){
+state*s= *j;
+bool equivalent= are_states_equivalent(State_for_merging,*s);
+if(equivalent==false)continue;
+int compatible= are_2_states_compatible_yes_merge(*s,State_for_merging);
+if(compatible==LR1_COMPATIBLE)return MERGED;
+if(compatible==ABORT_GENING_STATES)return ABORT_GENING_STATES;
+}
+return NOT_MERGED;
+}
+
+/*:98*//*99:*/
+//line 1700 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+bool state::are_gened_states_lr1_compatible(){
+S_CONFLICT_STATES_ITER_type i= state_s_conflict_state_list_.begin();
+S_CONFLICT_STATES_ITER_type ie= state_s_conflict_state_list_.end();
+if(i==ie)return LR1_COMPATIBLE;
+for(;i!=ie;++i){
+state*s= *i;
+if(is_state_lr1_compatible(*s)==NOT_LR1_COMPATIBLE)return NOT_LR1_COMPATIBLE;
+}
+return LR1_COMPATIBLE;
+}
+
+/*:99*//*100:*/
+//line 1733 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+bool state::is_str_rt_bnded(AST*Str){
+AST*rstr_t= AST::brother(*Str);
+if(rstr_t==0)return false;
+CAbs_lr1_sym*sym= AST::content(*rstr_t);
+Voc_ENO id= sym->enumerated_id__;
+if(id==T_Enum::T_T_eosubrule_){
+CAbs_lr1_sym*rsym= AST::content(*Str);
+if(rsym->enumerated_id__==T_Enum::T_refered_rule_){
+return true;
+}
+}
+return is_str_epsilonable(rstr_t);
+}
+/*:100*//*101:*/
+//line 1756 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+bool state::is_str_epsilonable(AST*Str){
+AST*str_t= Str;
+for(;str_t!=0;str_t= AST::brother(*str_t)){
+CAbs_lr1_sym*sym= AST::content(*str_t);
+Voc_ENO id= sym->enumerated_id__;
+/*102:*/
+//line 1773 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+switch(id){
+case T_Enum::T_refered_rule_:{
+/*108:*/
+//line 1885 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+refered_rule* rr = (refered_rule*)sym;
+
+/*:108*/
+//line 1776 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+rule_def*rd= rr->its_rule_def();
+if(rd->epsilon()!=true)return false;
+break;
+}
+case T_Enum::T_T_eosubrule_:{
+return true;
+}
+case T_Enum::T_refered_T_:{
+return false;
+}
+}
+
+/*:102*/
+//line 1762 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+}
+return true;
+}
+
+/*:101*//*104:*/
+//line 1791 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+void state::add_rule_to_follow_list(RULE_ENO Refered_rule){
+FOLLOW_RULES_ITER_type i= follow_rule_list_.find(Refered_rule);
+if(i==follow_rule_list_.end()){
+follow_rule_list_.insert(Refered_rule);
+}
+}
+
+/*:104*//*105:*/
+//line 1806 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+void state::create_follow_sets_of_state(){
+if(follow_rule_list_.empty()==true)return;
+RULE_ENO eno(-1);
+FOLLOW_RULES_ITER_type i= follow_rule_list_.begin();
+FOLLOW_RULES_ITER_type ie= follow_rule_list_.end();
+for(;i!=ie;++i){
+follow_element*fe= new follow_element(this);
+eno= *i;
+fe->rule_no_= eno;
+state_s_follow_set_map_[eno]= fe;
+}
+
+i= follow_rule_list_.begin();
+for(;i!=ie;++i){
+eno= *i;
+S_VECTORS_ITER_type j= state_s_vector_.find(eno);
+S_FOLLOW_SETS_ITER_type fsi= state_s_follow_set_map_.find(eno);
+follow_element*fe= fsi->second;
+
+S_VECTOR_ELEMS_ITER_type k= j->second.begin();
+S_VECTOR_ELEMS_ITER_type ke= j->second.end();
+for(;k!=ke;++k){
+state_element*se= *k;
+/*107:*/
+//line 1882 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+refered_rule* rr = (refered_rule*)AST::content(*se->sr_element_);
+/*:107*/
+//line 1830 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+AST*follow_str_t= AST::brother(*se->sr_element_);
+deal_with_follow_str_sym:;
+fe->rule_def_t_= rr->its_rule_def()->rule_s_tree();
+fe->add_follow_set_contributor(follow_str_t);
+CAbs_lr1_sym*sym= AST::content(*follow_str_t);
+Voc_ENO id= sym->enumerated_id__;
+/*106:*/
+//line 1842 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+switch(id){
+case T_Enum::T_refered_rule_:{
+/*108:*/
+//line 1885 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+refered_rule* rr = (refered_rule*)sym;
+
+/*:108*/
+//line 1845 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+rule_def*rd= rr->its_rule_def();
+if(rd->first_set()->empty()!=true){
+FIRST_SET_ITER_type a= rd->first_set()->begin();
+FIRST_SET_ITER_type ae= rd->first_set()->end();
+for(;a!=ae;++a){
+T_in_stbl*t= *a;
+if(fe->follow_set_.find(t)==fe->follow_set_.end()){
+fe->follow_set_.insert(t);
+}
+}
+}
+if(rd->epsilon()==true){
+follow_str_t= AST::brother(*follow_str_t);
+goto deal_with_follow_str_sym;
+}
+break;
+}
+case T_Enum::T_T_eosubrule_:{
+/*110:*/
+//line 1893 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+T_eosubrule* eos = (T_eosubrule*)sym;
+/*:110*/
+//line 1864 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+fe->add_follow_set_transition(*se,*eos);
+break;
+}
+case T_Enum::T_T_null_call_thread_eosubrule_:{
+break;
+}
+case T_Enum::T_T_called_thread_eosubrule_:{
+break;
+}
+case T_Enum::T_refered_T_:{
+/*109:*/
+//line 1889 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+refered_T* rt = (refered_T*)sym;
+
+/*:109*/
+//line 1875 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+fe->follow_set_.insert(rt->t_in_stbl());
+break;
+}
+}
+
+/*:106*/
+//line 1837 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+}
+}
+}
+/*:105*//*113:*/
+//line 1912 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+void state::crt_start_rule_s_follow_set(AST&Start_rule){
+CAbs_lr1_sym*sym= AST::content(Start_rule);
+rule_def* rd = (rule_def*)sym;;
+RULE_ENO rno= rd->enum_id();
+follow_element*fe= new follow_element(this);
+fe->rule_no_= rno;
+state_s_follow_set_map_[rno]= fe;
+fe->rule_def_t_= rd->rule_s_tree();
+if(O2_PP_PHASE==0){
+fe->follow_set_.insert(STBL_T_ITEMS[LR1_EOLR]);
+}else{
+T_parallel_parser_phrase*pp_ph= O2_PP_PHASE;
+T_parallel_la_boundary*la= pp_ph->la_bndry();
+LA_SET_ITER_type i= la->la_first_set()->begin();
+LA_SET_ITER_type ie= la->la_first_set()->end();
+for(;i!=ie;++i){
+T_in_stbl*t= *i;
+FOLLOW_SETS_ITER_type j= fe->follow_set_.find(t);
+if(j==fe->follow_set_.end()){
+fe->follow_set_.insert(t);
+}
+}
+}
+
+}
+
+/*:113*//*115:*/
+//line 1941 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+const char*state::entry_symbol_literal(){
+if(vectored_into_by_elem_sym_==0)return" No symbol";
+/*116:*/
+//line 1949 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+Voc_ENO id= vectored_into_by_elem_sym_->enumerated_id__;
+CAbs_lr1_sym*sym= vectored_into_by_elem_sym_;
+switch(id){
+case T_Enum::T_rule_def_:{
+rule_def* rd = (rule_def*)sym;
+return rd->rule_name()->c_str();
+}
+case T_Enum::T_T_eosubrule_:{
+return"eos";
+break;
+}
+case T_Enum::T_T_null_call_thread_eosubrule_:{
+return"null-eos";
+break;
+}
+case T_Enum::T_T_called_thread_eosubrule_:{
+return"called-thd-eos";
+break;
+}
+case T_Enum::T_T_terminal_def_:{
+T_terminal_def* td = (T_terminal_def*)sym;
+return td->t_name()->c_str();
+}
+default:{
+return"null-eos";
+break;
+}
+}
+
+/*:116*/
+//line 1944 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+}
+
+/*:115*/
+//line 2217 "/usr/local/yacco2/compiler/o2/o2_defs.w"
+
+//line 1 "/usr/local/yacco2/compiler/o2/bugs.w"
+
+
+
+
+
+
+
+
+/*:141*/
diff --git a/web/yacco2/compiler/o2/o2_defs.w b/web/yacco2/compiler/o2/o2_defs.w
new file mode 100644
index 0000000000..35e0dfe1eb
--- /dev/null
+++ b/web/yacco2/compiler/o2/o2_defs.w
@@ -0,0 +1,2217 @@
+@q file: o2_defs.w@>
+@q% Copyright Dave Bone 1998 - 2015@>
+@q% /*@>
+@q% This Source Code Form is subject to the terms of the Mozilla Public@>
+@q% License, v. 2.0. If a copy of the MPL was not distributed with this@>
+@q% file, You can obtain one at http://mozilla.org/MPL/2.0/.@>
+@q% */@>
+@q% See o2_types.w document for defiitions@>
+
+@*1 {\bf{LR1 definitions}}.\fbreak
+\fbreak
+\convertMPtoPDF{"/usr/local/yacco2/diagrams/o2_structures.1"}{1}{1}
+\fbreak
+\fbreak
+\convertMPtoPDF{"/usr/local/yacco2/diagrams/o2_structures.2"}{1}{1}
+\fbreak
+\fbreak
+Let's review what makes up a state:\fbreak
+\ptindent{1) subrules's specific element --- state's to gen vectors}
+\ptindent{2) rules's follow set}
+\ptindent{3) state's entry symbol --- Start state has no entry symbol}
+\ptindent{4) state's list of conflict states}
+A state is a set of productions (subrules) where each production's current symbol
+being worked on
+is some position along its string.
+A state from the arithmetic grammar discussed earlier
+ could be represented by the following example where the ``.'' indicates
+the position within the production's
+string being worked on in the state:\fbreak
+\ptindent{S $\rightarrow$ E \ . \ $\bot$}
+\ptindent{E $\rightarrow$ E \ . \ $+$ T}
+The above state has 2 productions
+where each symbol being worked on is in position 2 of their respective strings.
+These are items in the state having their production configuration of
+subrule $\otimes$ string position.
+Sometimes I shall call each entry a {\bf state element} rather than an item.
+A rule's follow set gets created when it is present in point 1: ie, the state's element is a rule
+and its follow set is the string to its right that generates teminals.
+Please see at the beginning of this document the ``follow set'' definition.
+Point 3's entry symbol identifies the symbol used to gen the state
+and to quickly help in determining whether two states
+are equivalent for potential state merging.
+Point 4 is a requirement to support merging of states from 2 different
+closured-part state networks.
+It supplies the lr1 states that have reduce / reduce or shift conditions
+that
+require the lr1 compatibility check.
+When there is a proposed merger from 2 different closured-part contexts,
+it is the union of their follow sets that gives the reducing subrules their lookahead sets.
+Consequently the lr1 conflict states of the ``merged into context''
+must be evaluated for lr1 compatibility.
+\fbreak
+\fbreak
+Parts of a state:\fbreak
+\ptindent{1) Closured }
+\ptindent{2) Transitive }
+A closured part are all the state's items whose elements start their strings.
+They have been brought into the state by the ``closure'' operation
+caused by a state's element being a rule.
+A transitive part are those productions whose elements are to
+the right of the start element.
+Items used to generate a new state are called {\bf ``core items''}.
+\fbreak
+\fbreak
+State generation:\fbreak
+All states are generated from a closured part of a state.
+Its productions are walked along their strings producing transitive states
+until their strings are completely consumed.
+This holds for the ``Start state'' that starts things off by
+generating all it transitive children.
+Thereafter each transitive state is visited and assessed for its closured components
+that then generates its own transitive states.
+This goes on until all the generated states have been visited.
+\fbreak
+\fbreak
+Contexts:\fbreak
+\ptindent{1) follow sets}
+\ptindent{2) production's reduced lookahead set}
+A production's reduction occurs when all its string has been recognized.
+For it to reduce, it depends on the context of its follow set within
+its birthing closured state:
+This is the lr1 compatibility context that is refered to as {\bf lookahead}.
+When there is no
+conflict of interest between competing productions (reduces with possibly shifts)
+within the state,
+this becomes a lr(0) situation.
+Without regard for the lookahead context this now shifts the error
+detection to the state that must deal with the lookahead as the current terminal for shifting.
+This strategy is used when state merges takes place.
+Instead of exploding the number of states sensitive to only its own
+lookahead context, mergers combine the follow set contexts as long as there is no
+state incompatibilities created.
+2 or more competing reducing productions
+requires their follow set contexts to resolve the reducing conflict:
+reduce / reduce or reduce / shift.
+Shifts of symbols are local to the reducing state.
+
+Of course lookaheads are context sensitive according to
+each productions birthing states. In LR(1) terms, the lookahead is
+deterministic and provided by the
+follow sets having only 1 symbol string as lookahead.
+\fbreak
+\fbreak
+Follow set and right bounded condition:\fbreak
+This condition is where a rule is the last symbol in its production string.
+Its closured productions inherit the follow set
+ of the production string(s) that closured it.
+These follow sets are found in the gening closured
+state environment.
+Consequently right bounded closured productions must be gened
+in case it could produce a conflict state.
+Why? Merges taking place above this to-be-gened production from a different closured state
+generation could produce a conflict as
+the merger is not aware that one
+of its transitive states has a future conflict condition
+dependent on these merged follow set contexts.\fbreak
+As an example please see David Spector from ``SIGPLAN VOL 23 DEC/88''
+where my gened ``lr1\_sp5.lex'' grammar illustrates this condition.
+\fbreak
+\fbreak
+Epsilon rules and right bounded condition:\fbreak
+If the last symbol is a rule and is epsilonable, then the right bounded condition
+moves left inwards from the end of the symbol string to the next right-to-left symbol.
+Now if that symbol is a rule it is considered a right bounded requiring
+generation within the current closured
+state environment. This is a recursive definition: right bounded condition gens closures
+having the right bounded condition that also requires immediate generation.
+When it comes time to gen the closured-part
+state of the right bounded components,
+they will have been already gened
+and their conflict states
+entered against their gening closured-part state environment.
+\fbreak
+\fbreak
+Significance of right bounded condition:\fbreak
+It demands that its future closured state generation be associated with the
+ generating closured state that created it.
+Restated: It must be generated prematurely by its spawning
+closured state.
+This way any of its transitive states that have the lr1 conflict condition will
+get placed in the
+conflict state list of the generating closured state so
+that a proposed merger relative to the original closured state
+is aware of the potential conflict and checked accordingly.
+\fbreak
+\fbreak
+Some synonyms:\fbreak
+``Closure-only'' state:\fbreak
+ A state where all its state elements are configurations with their start symbol.
+ This is your one and only Start state.\fbreak
+\fbreak
+``Transitive'' state:\fbreak
+ A state where at least one state element
+ is not the starting symbol of a production's string.
+ \fbreak
+\fbreak
+``Closured-only-part'' of a state:\fbreak
+ All state's elements whose symbols start the subrule string.
+ Synonym: ``closured state''.\fbreak
+\fbreak
+``Closured-only-subrules'' of a state:\fbreak
+ Productions's symbol strings brought into the state by the closure operation
+ caused by a state's element being a rule.
+ The ``closured-only'' part are those subrules birthed within this state
+ to
+ generate all its ``closured-only'' subrules transitive states.
+ \fbreak
+ \fbreak
+``Conflict state'':\fbreak
+ A state having at least 2 items where at least one of the productions
+ is reducing.
+\fbreak
+\fbreak
+Building a state core:\fbreak
+There are only 2 contexts that provide the generation fodder for a state:\fbreak
+\ptindent{1) Start (closure-only) state --- Start rule's grammar tree definition}
+\ptindent{2) Transitive states --- generated from a closured state}
+The ``closured-part'' of a state generates all its transitive states from its closure subrules
+regardless of the type of state --- Start or transitive.
+Point 1 starts things off. It generates all its transitive states.
+Point 2 deals with transitive states from point 1 that have closured-only residues
+that need generating.
+Of course these newly generated transitive states
+could be merged into the existing lr1 state network if they meet
+the lr1 compatibility criteria.
+Eventually the newly added transitive states
+will be assessed for their ``closured-part'' generation.
+\fbreak
+\fbreak
+Some Merge points:\fbreak
+First, only conflict states are tested.
+They are supplied by their associated closured generating state.
+When a merge takes place, the state being absorbed by the older closured network
+deposits its follow set info against the merged into state.
+
+Second, the conflict states of the ``merged into'' state network must also
+be added to the gening closured state's conflict state list.
+Why?
+If the state was not merged, eventually all its gened states would have
+the equivalent conflict states as the proposed merger.
+The only refinement to this is conflict states should only be added that are
+eventually generated from the ``merged into'' state.
+Now if future mergers are proposed into this newly closured state's network,
+the conflict states of the absorbing network will also be there for the testing.
+\fbreak
+\fbreak
+In summary, Lr1 state generation is discrete in its generation passes.
+Pass one: generate all the states
+for the start state from its ``closured-only'' subrules.
+Pass two and greater deals with ``closured-only'' parts of transitive states that
+have not been completely gened. Remember a subrule is associated with its
+birth state that brought it into existance.
+These transitive states
+are of previous passes.
+Each transitive pass looks for the next transitive state
+to generate
+until
+all its lr state network have been built.
+The ``transitive state pass'' generates all its ``closured-only''
+subrules independently of the past generations.
+\fbreak
+\fbreak
+Now the state implementation bedevils this definition as does Goethic churches ---
+one usually does not see the infrastructure required to build it
+unless the project ran out of money
+and
+stands unfinished but open to its engineering secrets.
+So here's the scaffolding for my sanity.
+A note on the following type defs sections: to make ``cweave'' behave in
+formatting its the document --- a slight ahem until i debug / correct ``cweave''.
+The cause is templates that came after the original program was written.
+
+
+@*2 |gen_context| definition/implementation.\fbreak
+The context identifying the closure state and vector combo gening its states.
+This context is needed to prevent same closure state merges whose
+vectors are different but generate common states having different follow sets.
+If merged the contributing contexts could make it non lr1.
+See David Spector's paper ``Efficicent Full Lr1 Parser Generators'': G2 example.
+The context is maintained per state that gened it and per state's
+ subrules vectors: |state_element|.
+@<Structure implementations@>+=
+ gen_context::gen_context(state* S,Voc_ENO Ve):for_closure_state_(S),gen_vector_(Ve){}
+
+@*2 |state_element| definition/implementation.\fbreak
+Basic building block of a state's set of subrules'
+string symbols.
+Laced throughout |state_element| are linkages between the
+past, present, and future of its lr1 state generation.
+This is the scaffolding to build the state network.
+|sr_def_element_| {\bf is for tracing purposes only}.
+I could have gone the long way by getting the tree node's content and then
+fetch its definition
+but this makes life easier when truth telling takes place --- {\bf terminal-def or rule-def}.
+
+The |la_set_| only gets created at the end-of-string point.
+It's a fast way to scratch-pad potential merges and the lr1 breathalyzer test.\fbreak
+@*3 |state_element| implementation.\fbreak
+@<Structure implementations@>+=
+ state_element::state_element(AST* Elem)
+ :cs_vector_combo_gening_it_(0,-1)
+ ,sr_element_(Elem)
+ ,sr_def_element_(0)
+ ,its_enum_id_(-1)
+ ,subrule_def_(0)
+ ,closure_state_(0)
+ ,goto_state_(0)
+ ,previous_state_(0)
+ ,reduced_state_(0)
+ ,self_state_(0)
+ ,previous_state_element_(0)
+ ,next_state_element_(0)
+ ,la_set_(0)
+ ,common_la_set_idx_(-1)
+ {
+ @<determine entry symbol@>;
+ }
+@ Determine entry symbol.\fbreak
+Eases tracing of lr states easier instead of just displaying its enumerated value.
+@<determine entry symbol@>=
+ CAbs_lr1_sym* sym = AST::content(*Elem);
+ Voc_ENO id = sym->enumerated_id__;
+ switch(id){
+ case T_Enum::T_refered_rule_:{
+ @<get cast referenced rule@>;
+ rule_def* rd = rr->its_rule_def();
+ sr_def_element_ = rd;
+ its_enum_id_ = rd->enum_id();
+ break;
+ }
+ case T_Enum::T_T_eosubrule_:{
+ @<get cast referenced eosubrule@>;
+ sr_def_element_ = eos;
+ its_enum_id_ = eos->enumerated_id__;
+ la_set_ = new LA_SET_type();
+ break;
+ }
+ case T_Enum::T_T_null_call_thread_eosubrule_:{
+ @<get cast referenced null called thread eosubrule@>;
+ sr_def_element_ = eos;
+ its_enum_id_ = eos->enumerated_id__;
+ break;
+ }
+ case T_Enum::T_T_called_thread_eosubrule_:{
+ @<get cast referenced called thread eosubrule@>;
+ sr_def_element_ = eos;
+ its_enum_id_ = eos->enumerated_id__;
+ break;
+ }
+ case T_Enum::T_refered_T_:{
+ @<get cast referenced T@>;
+ T_terminal_def* td = rt->its_t_def();
+ sr_def_element_ = td;
+ its_enum_id_ = td->enum_id();
+ break;
+ }
+ }
+
+@*3 |~state_element|.\fbreak
+@<Structure implementations@>+=
+state_element::~state_element(){
+ if (la_set_ != 0) delete la_set_;
+}
+
+@*2 Lookahead Comments.\fbreak
+Please see the |la_express| grammar as to how it calculates the thread's end-of-parse stream
+lookahead. The ``eolr'' metaterminal is discussed in length as to what it represents
+and how it is exploded when lookahead expressions are used in a thread grammar
+ ``parallel-la-boundary'' construct.
+@*3 |add_fs_setA_to_LA|.\fbreak
+Substitute ``parallel-reduce-operator for ``parallel-operator''
+to eliminate the ambiguity between look ahead for reduction purposes
+versus calling thread for shift purposes.
+@<Structure implementations@>+=
+ void state_element::add_fs_setA_to_LA(follow_element& Fe,LA_SET_type& La_to_fill_in){
+ FOLLOW_SETS_ITER_type i = Fe.follow_set_.begin();
+ FOLLOW_SETS_ITER_type ie = Fe.follow_set_.end();
+ for(;i!=ie;++i){
+ LA_SET_ITER_type j = La_to_fill_in.find(*i);
+ if(j == La_to_fill_in.end()) {
+ T_in_stbl* t_sym = *i;
+ @<is there back to back thread calls?@>;
+ }
+ }
+ }
+@ Is there back to back thread call?.\fbreak
+Before the thread call reduce was made lr(0), it used the \REDshift
+meta terminal to reduce the first thread call as
+the \PARshift operator within a state was ambiguous in the 2 contexts
+--- run the thread or reduce the called thread.
+@<is there back to back thread calls?@>=
+ if(t_sym->t_def()->enum_id() != LR1_PARALLEL_OPERATOR){
+ La_to_fill_in.insert(t_sym);
+ }else{
+ using namespace yacco2_stbl;
+ T_sym_tbl_report_card report_card;
+ find_sym_in_stbl(report_card,*LR1_REDUCE_OPERATOR_LITERAL);
+ @=T_in_stbl* td = (T_in_stbl*)report_card.tbl_entry_->symbol_;@>@/
+ La_to_fill_in.insert(td);
+ }
+
+@*3 |calc_la| --- fill the reduced element's la set by walking follow set graph.\fbreak
+Fill in the lookahead set for a reduced subrule by walking its
+follow sets.
+I protect against merges vs right bounded transitions that could cycle
+by |VISITED_MERGE_STATES_IN_LA_CALC|.
+The gened la is checked empty so indicate as bad.
+@<Structure implementations@>+=
+bool state_element::calc_la(state_element& La_to_fill_in){
+ if(La_to_fill_in.la_set_ == NULL){
+ return false; // no set to fill;so not lr1
+ }
+ if (La_to_fill_in.reduced_state_ != La_to_fill_in.self_state_) return true;
+VISITED_MERGE_STATES_IN_LA_CALC.clear();
+ La_to_fill_in.la_set_->clear();
+ state* cs = La_to_fill_in.closure_state_;
+ CAbs_lr1_sym* sym = AST::content(*La_to_fill_in.sr_element_);
+ T_ENO id = sym->enumerated_id__;
+ switch(id){
+ case T_Enum::T_T_eosubrule_:{
+ @<get cast referenced eosubrule@>;
+ rule_def* rd = eos->its_rule_def();
+ RULE_ENO r_id = rd->enum_id();
+ S_FOLLOW_SETS_ITER_type i = cs->state_s_follow_set_map_.find(r_id);
+ follow_element* fe = i->second;
+ add_fs_setA_to_LA(*fe,*La_to_fill_in.la_set_);
+ if(fe->transitions_.empty() != true){
+ fill_la_from_transition(La_to_fill_in,fe->transitions_);
+ }
+ if(fe->merges_.empty() != true){
+ fill_la_from_merge(La_to_fill_in,fe->merges_,r_id);
+ }
+ break;
+ }
+ case T_Enum::T_T_null_call_thread_eosubrule_:{
+ break;
+ }
+ case T_Enum::T_T_called_thread_eosubrule_:{
+ break;
+ }
+ }
+ if (La_to_fill_in.la_set_->empty() == true){
+ return false; // not lr1 as cant have an empty la set
+ }else{
+ return true; // la set ok
+ }
+}
+
+@*3 |fill_la_from_merge|.\fbreak
+@<Structure implementations@>+=
+void
+state_element::
+fill_la_from_merge(state_element& La_to_fill_in,MERGES_type& Merge,RULE_ENO Rule_no){
+ MERGES_ITER_type i = Merge.begin();
+ MERGES_ITER_type ie = Merge.end();
+ for(;i!=ie;++i){
+ state* cs = *i;
+ STATES_SET_ITER_type ii = VISITED_MERGE_STATES_IN_LA_CALC.find(cs);
+ if(ii != VISITED_MERGE_STATES_IN_LA_CALC.end()) return;
+ VISITED_MERGE_STATES_IN_LA_CALC.insert(cs);
+ S_FOLLOW_SETS_ITER_type i = cs->state_s_follow_set_map_.find(Rule_no);
+ follow_element* fe = i->second;
+ add_fs_setA_to_LA(*fe,*La_to_fill_in.la_set_);
+ if(fe->transitions_.empty() != true){
+ fill_la_from_transition(La_to_fill_in,fe->transitions_);
+ }
+ if(fe->merges_.empty() != true){
+ fill_la_from_merge(La_to_fill_in,fe->merges_,fe->rule_no_);
+ }
+ }
+}
+
+@*3 |fill_la_from_transition|.\fbreak
+@<Structure implementations@>+=
+void
+state_element::
+fill_la_from_transition(state_element& La_to_fill_in,TRANSITIONS_type& Transition){
+ TRANSITIONS_ITER_type i = Transition.begin();
+ TRANSITIONS_ITER_type ie = Transition.end();
+ for(;i!=ie;++i){
+ follow_element* fe = *i;
+ add_fs_setA_to_LA(*fe,*La_to_fill_in.la_set_);
+ if(fe->transitions_.empty() != true){
+ fill_la_from_transition(La_to_fill_in,fe->transitions_);
+ }
+ if(fe->merges_.empty() != true){
+ fill_la_from_merge(La_to_fill_in,fe->merges_,fe->rule_no_);
+ }
+ }
+}
+
+@*3 |find_state_element_s_rule_no|.\fbreak
+Used for state merging to calculate a reducing subrule's lookahead set.
+@<Structure implementations@>+=
+ RULE_ENO state_element::find_state_element_s_rule_no(){
+ return subrule_def_->its_rule_def()->enum_id();
+ }
+
+@*2 Follow set definition for a rule.\fbreak
+The input set of strings for the rule's follow set are
+provided by the state's |S_VECTORS_type| that is
+a map of 3 generic enumerate types --- ``rule-defs'', ``T-defs'', and ``eosubrule'' variants.
+Of particular interest in this map are the ``rule-def''s.
+The |state_element|s associated with the rule are the GPS into each subrule's symbol
+string. One can view this as the state's contributors list to generate
+both its lr states and
+the referenced rules' follow sets for this state.
+Now these input follow set strings are
+ the strings to its right of its GPS.
+This is supplied thru the symbol's grammar next brother tree node.
+@*3 Follow set implementation.\fbreak
+@<Structure implementations@>+=
+ AST* follow_element::rule_def_t(){return rule_def_t_;}
+ state* follow_element::its_state(){return its_state_;}
+ follow_element::follow_element(state* State)
+ :rule_no_(-1)
+ ,rule_def_t_(0)
+ ,its_state_(State)
+ {}
+ follow_element::follow_element(RULE_ENO Rule_no,state_element& State_elem,AST& Rule_def_t)
+ :rule_no_(Rule_no)
+ ,rule_def_t_(&Rule_def_t)
+ ,its_state_(State_elem.closure_state_)
+ {}
+
+ void follow_element::add_follow_set_contributor(AST* SR_element){@/
+ sr_elements_.push_back(SR_element);
+ }
+ @*3 |add_follow_set_transition|.\fbreak
+ Find eosubule's lhs rule. This gives the ``rule no'' to fetch
+ its follow set element from its closure state's follow set map.
+ Remember, epsilon stays within its closured state whilst
+ a reducing subrule {\bf needs to go back to the start of its symbol string}
+ for its spawning rule and hence its follow set.\fbreak
+@<Structure implementations@>+=
+ void follow_element::add_follow_set_transition(state_element& State_elem,T_eosubrule& Eos){@/
+ rule_def* rd = Eos.its_rule_def();
+ RULE_ENO eno = rd->enum_id();
+
+ S_FOLLOW_SETS_ITER_type fsi =
+ State_elem.closure_state_->state_s_follow_set_map_.find(eno);
+ if(fsi == State_elem.closure_state_->state_s_follow_set_map_.end()){
+ return;
+ }
+ follow_element* fe = fsi->second;
+ @<left recursion on rule check --- out damn spot@>;
+ transitions_.push_back(fe);
+ }
+
+ @ Left recursion on rule check.\fbreak
+ Don't want to cycle on the same state spot: S1.A transitions on S1.A
+ caused by a grammar's rule having left rule recursion.
+ @<left recursion on rule check --- out damn spot@>=
+ if((rule_no_ == eno)
+ &&
+ (its_state_->state_no_ == State_elem.closure_state_->state_no_))
+ return;
+
+ @
+ Add the terminal to the follow set.
+@<Structure implementations@>+=
+ void follow_element::add_T_to_follow_set(AST* Refered_T){
+ @<get refered-t@>;
+ follow_set_.insert(t->t_in_stbl());
+ }
+@ Get refered-t.
+@<get refered-t@>=
+ @=refered_T* t = (refered_T*)AST::content(*Refered_T);@>@/
+
+ @*3 |remove_merge_closure_info|.
+@<Structure implementations@>+=
+void follow_element::remove_merge_closure_info(){
+ merges_.pop_front();
+}
+
+ @*3 |add_merge_closure_info|.\fbreak
+Watch for rule having subrules that are merged with common closure state.
+U should only have 1 such state in list so throw out duplicates.
+@<Structure implementations@>+=
+void follow_element::add_merge_closure_info(state& To_merge_closure_state){
+ state* tm = &To_merge_closure_state;
+ MERGES_ITER_type i = merges_.begin();
+ MERGES_ITER_type ie = merges_.end();
+ for(;i!=ie;++i){
+ state* s = *i;
+ if(s == tm) return;
+ }
+ merges_.push_front(&To_merge_closure_state);
+}
+
+@*2 State definition/implementation.\fbreak
+|vectored_into_by_elem_| is the goto element from the spawning state that
+ enters this state.
+The ``xxx-def'' symbol is provided by |vectored_into_by_elem_sym_|
+that is used for tracing purposes.
+It is one of the elements in determining whether 2 states are equal.
+I use the symbol's defining enumerate value which was enumerated across all the
+Grammar's vocabulary: Rules and Terminals.
+|START_STATE_ENUMERATE| symbol representing -1
+is used to accommodate a ``closure only'' state where there is no
+symbol entering the start state as a Grammar's vocabulary enumeration begins at 0.
+
+|closure_rule_list_| provides referenced rules in the state to complete the state's
+elements.
+|follow_rule_list_| is a fast way to deal with building follow sets for the state
+as it is a list of rule numbers that are keys into |state_s_to_vector|
+that indirectly supplies the follow string contexts.
+
+To support rules recycling optimization, a quasi
+closure state for any rule of the grammar has been added.
+Why the addition?
+Recycling of rules requires a use count derived from
+recursion and subrules references to the rule.
+My first attempt was wrong as i did not take into account
+that a rhs subrule could have a referenced rule that
+could be indirectly referenced by (derived by) a suffixed referenced rule.
+So i need to derive the state containing the closured items
+and them analyse its content to see whether
+indirect referencing is taking place.
+So create ctor of state with no tree and a |closure_only_derives| method.
+@*3 State's map of ``to vector'' elements.\fbreak
+|S_VECTORS_type| is the state's map of ``to vector'' elements
+of ``rule-ref'', ``T-ref'', and |eosubrule|.
+These elements produce the ``goto'' state eminating out of the lr1 state.
+This is a white lie as the |eosubrule| eminates nothing.
+It
+represents either the epsilon condition if its the first element of a subrule
+or a fully consumed subrule: its string of symbols has been consumed and so
+to be reduced.
+``rule-ref'', ``T-ref'' are proxies to their definitions whereby their enumerated values
+are unique.
+
+The second part of the map is the list of {\bf same state elements} having identical
+enumerated keys. These vectors are the fodder to generate the
+next set of states eminating from this state and all the ``closured-only part'' states progeny.
+The list is sorted by the AST address inside the state's emlement
+so that state equivalences can be determined.
+U might raise the point: doesn't it matter what order the elements are placed inside the
+state to generate the lr1 state network: FIFO?
+NO!
+Let's review why.\fbreak
+\ptindent{1) ``closured only'' state composed of 1st position only subrules' elements.}
+\ptindent{2) this state's follow sets are static: first set from strings to rt of refered rules.}
+\ptindent{3) only the closured-only subrules are fully generated at the same time.}
+\ptindent{4) transitive states only continue gening their subrules from the closured state.}
+\ptindent{5) the resulting lr1 states are evaluated for lr1 conflicts.}
+\ptindent{6) apply the logic above to gened states having incomplete gened closured-only parts.}
+\fbreak
+It is point 2 that is interesting: the birthing closured states
+ of its reducing subrules supplies their lookahead.
+ This means the closured state is
+ generated completely before an assessment needs to take place.
+ The lr1 assessment determines whether the gened states are lr(1) compatible.
+ This check goes only against states that have reducing subrules so that the reduce / reduce
+ and shift / reduce conditions can be verified.
+
+ How is the lr1 condition evaluated?
+ Easy, the reducing subrule's rule within its birthing closured state contains its follow set:
+ ie its lookahead terminals.
+ All it takes is to make sure that the intersection
+ of all the reducing subrules' follow sets
+ is empty and that the state's shift terminals are
+ not in any of the reducing subrules' follow sets.
+ This shift set can be considered an invisible follow set that is applied at
+ the same time to the other reducing follow sets.
+ Keeping a list of conflicting states within the ``closure-only or part'' state
+ when a state merge is proposed allows one to
+ apply this lr1 condition for compatibility against the potential merged follow sets.
+ Remember a gened state is produced out of its closured state.
+ Thus mergers mean use the follow sets of each closure state. The
+ ``state to merge into'' already has it list of lr1 conflict states
+ in its associated gening closured state that need checking
+ before Mr. Goodwrench nods. \fbreak
+ \fbreak
+ Key: element's enumerate: ``rule-def'', ``T-def'', and ``eosubrule'' \fbreak
+ Elements in list: state's elements that contain a grammar's tree node address \fbreak
+
+
+@*2 State implementation.\fbreak
+@<Structure implementations@>+=
+
+
+@*3 |state(AST* Start_rule_t)|.
+@<Structure implementations@>+=
+state::state(AST* Start_rule_t)
+:cs_vector_combo_gening_it_(0,-1)
+,vectored_into_by_elem_(START_STATE_ENUMERATE)
+,vectored_into_by_elem_sym_(0)
+,state_no_(0)
+,closure_state_birthing_it_(0)
+,state_type_(0)
+,arbitrator_name_(0)
+{
+ create_start_state(*Start_rule_t);
+ add_state_to_gbl_lr1_state_tbls(this);
+}
+
+@*3 |state()|: for closure only state of derives.
+@<Structure implementations@>+=
+state::state()
+:cs_vector_combo_gening_it_(0,-1)
+,vectored_into_by_elem_(START_STATE_ENUMERATE)
+,vectored_into_by_elem_sym_(0)
+,state_no_(0)
+,closure_state_birthing_it_(0)
+,state_type_(0)
+,arbitrator_name_(0)
+{}
+
+@*3 |state(AST& Vectored_into_id_t)| --- Create transitive state.
+@<Structure implementations@>+=
+state::state(Voc_ENO Eno,CAbs_lr1_sym* Entry_sym)
+:cs_vector_combo_gening_it_(0,-1)
+,vectored_into_by_elem_(Eno)
+,vectored_into_by_elem_sym_(Entry_sym)
+,state_no_(0)
+,closure_state_birthing_it_(0)
+,state_type_(0)
+,arbitrator_name_(0)
+{}
+
+@*3 |closure_only_derives| --- Create a closure only derives state.\fbreak
+Gen a derives only state for a rule so that
+the rule's recycle count is correct for indirect references.
+Used by |rules_use_cnt.lex| grammar.
+@<Structure implementations@>+=
+void state::closure_only_derives(AST* Rule_tree){
+ gen_context gening_context(0,-1);
+ add_rule_s_subrules_to_state(*Rule_tree,gening_context,*this);
+ add_closure_rules_subrules_to_state(gening_context,*this);
+}
+
+
+@*1 {\bf{Generate states}}.
+@*3 |add_element_to_state_vector|. \fbreak
+The |state_s_vector_|[enumerate of element] is positive except when its
+``eosubrule''. Why?
+Cuz i'm (re)cursing on this terminal in 2 ways: as an end-of-subrule condition
+for a production
+and in grammars that are referencing it: is this devine?
+So when it's a real end-of-string situation i make the key negative.
+When it's a ``refered-T'' then use its contained ``terminal-def'' positive image that
+could be the containment of ``eosubrule''.
+
+The element list is sorted on its AST address. Why the order?
+This makes sure that 2 elements having been brought into the state by
+different order will equate when state merges are proposed.
+@<Structure implementations@>+=
+void state::add_element_to_state_vector
+(Voc_ENO Elem_id,state_element& Elem){
+ S_VECTORS_ITER_type i = state_s_vector_.find(Elem_id);
+ if(i == state_s_vector_.end()){
+ state_s_vector_[Elem_id]= S_VECTOR_ELEMS_type();
+ i = state_s_vector_.find(Elem_id);
+ }
+ S_VECTOR_ELEMS_type& el = i->second;
+ if(el.empty() == true){
+ el.push_back(&Elem);
+ return;
+ }
+ S_VECTOR_ELEMS_ITER_type j = el.begin();
+ S_VECTOR_ELEMS_ITER_type je = el.end();
+ for(;j!=je;++j){
+ state_element* se = *j;
+ if(Elem.sr_element_ < se->sr_element_){
+ el.insert(j,&Elem);
+ return;
+ }
+ }
+ el.push_back(&Elem);
+}
+
+@*3 |add_closure_rules_subrules_to_state|.\fbreak
+Why the |closure_rule_list_.end()| in the loop?
+As i'm adding
+items to it while iterating thru it, i play it safe
+by testing each cycle for the end-of-container condition via the function call
+rather than a local variable set before the iteration.
+@<Structure implementations@>+=
+void state::add_closure_rules_subrules_to_state(gen_context& Possible_gen_context,state& Closure_state){
+ CLOSURE_RULES_type processed_rules_set;
+ loop_until_empty:;
+ if(closure_rule_list_.empty() == true) return;
+ CLOSURE_RULES_ITER_type i = closure_rule_list_.begin();
+ if(processed_rules_set.find(*i) != processed_rules_set.end()){
+ closure_rule_list_.erase(*i);
+ goto loop_until_empty;
+ }
+ processed_rules_set.insert(*i);
+ rule_def* rd = (*i)->r_def();
+ AST* t = rd->rule_s_tree();
+ add_rule_s_subrules_to_state(*t,Possible_gen_context,Closure_state);
+ goto loop_until_empty;
+}
+
+@*3 |add_rule_to_closure_list|.
+@<Structure implementations@>+=
+void state::add_rule_to_closure_list(rule_in_stbl* Rule_in_stbl){
+ CLOSURE_RULES_ITER_type i = closure_rule_list_.find(Rule_in_stbl);
+ if(i == closure_rule_list_.end()){
+ closure_rule_list_.insert(Rule_in_stbl);
+ derives_closure_rule_list_.insert(Rule_in_stbl);
+ rule_def* rd = Rule_in_stbl->r_def();
+ if(rd->closure_rules_making_up_first_set()->empty() == true) return;
+ CLOSURE_RULES_type* cr = rd->closure_rules_making_up_first_set();
+ CLOSURE_RULES_ITER_type j = cr->begin();
+ CLOSURE_RULES_ITER_type je = cr->end();
+ for(;j!=je;++j){
+ rule_in_stbl* ris = *j;
+ i = closure_rule_list_.find(ris);
+ if(i == closure_rule_list_.end()){
+ derives_closure_rule_list_.insert(ris);
+ closure_rule_list_.insert(ris);
+ }
+ }
+ }
+}
+@*3 |add_rule_s_subrules_to_state|.\fbreak
+Add rule's productions to state due to closured operation.
+
+A wrinkle: if the possible gen context has a gen vector of -1,
+this means the state's closure elements are not right bounded
+and are not assiciated with generating context and so its gen context
+will be out its own state and own vector.
+@<Structure implementations@>+=
+void
+state::
+add_rule_s_subrules_to_state(AST& Start_Rule_def_t,gen_context& Possible_gen_context,state& Closure_state_associate_with){
+ AST* subrules_t = AST::get_1st_son(Start_Rule_def_t);
+ AST* first_element_t(0);
+ CAbs_lr1_sym* first_element(0);
+ Voc_ENO id(START_STATE_ENUMERATE);
+ Voc_ENO cs_id(START_STATE_ENUMERATE);
+ for(;subrules_t !=0;subrules_t = AST::brother(*subrules_t)){
+ @=T_subrule_def* srd = (T_subrule_def*)AST::content(*subrules_t);@>@/
+ first_element_t = AST::get_1st_son(*subrules_t);
+ first_element = AST::content(*first_element_t);
+ state_element* se = new state_element(first_element_t);
+ se->subrule_def_ = srd;
+ se->self_state_ = this;
+ se->closure_state_ = this;
+ se->closured_state_gening_it_ = &Closure_state_associate_with;
+ id = first_element->enumerated_id__;
+ switch(id){
+ case T_Enum::T_refered_rule_:{
+ @=refered_rule* rr = (refered_rule*)first_element;@>@/
+ rule_def* rd = rr->its_rule_def();
+ rule_in_stbl*ris= rr->Rule_in_stbl();
+ RULE_ENO r_id = rd->enum_id();
+ cs_id = r_id;
+ se->cs_vector_combo_gening_it_.gen_vector_ = r_id;
+ add_element_to_state_vector(r_id,*se);
+ add_rule_to_follow_list(r_id);
+ add_rule_to_closure_list(ris);
+ break;
+ }
+ case T_Enum::T_T_eosubrule_:{
+ T_ENO t_id = T_Enum::T_T_eosubrule_;
+ cs_id = t_id;
+ se->reduced_state_ = this;
+ se->cs_vector_combo_gening_it_.gen_vector_ = t_id;
+ add_element_to_state_vector(-t_id,*se);
+ break;
+ }
+ case T_Enum::T_T_null_call_thread_eosubrule_:{
+ T_ENO t_id = T_Enum::T_T_null_call_thread_eosubrule_;
+ cs_id = t_id;
+ se->reduced_state_ = this;
+ se->cs_vector_combo_gening_it_.gen_vector_ = t_id;
+ add_element_to_state_vector(-t_id,*se);
+ break;
+ }
+ case T_Enum::T_T_called_thread_eosubrule_:{
+ T_ENO t_id = T_Enum::T_T_called_thread_eosubrule_;
+ cs_id = t_id;
+ se->reduced_state_ = this;
+ se->cs_vector_combo_gening_it_.gen_vector_ = t_id;
+ add_element_to_state_vector(-t_id,*se);
+ break;
+ }
+ case T_Enum::T_refered_T_:{
+ @=refered_T* rt = (refered_T*)first_element;@>@/
+ T_terminal_def* td = rt->its_t_def();
+ T_ENO t_id = td->enum_id();
+ cs_id = t_id;
+ se->cs_vector_combo_gening_it_.gen_vector_ = t_id;
+ add_element_to_state_vector(t_id,*se);
+ break;
+ }
+ }
+ if(Possible_gen_context.gen_vector_ != -1){
+ se->cs_vector_combo_gening_it_ = Possible_gen_context;
+ }else{
+ se->cs_vector_combo_gening_it_.for_closure_state_ = this;
+ se->cs_vector_combo_gening_it_.gen_vector_ = cs_id;
+ }
+
+ }
+}
+
+@*3 |crt_core_items_of_state|.\fbreak
+Add subrules to the new state being created.
+The iterators walk the vector list of the spawning state.\fbreak
+\fbreak
+Right bounded check:\fbreak
+\hbox{\hskip.5in 1) Rx \subrule{} \Alpha . Ra t}\fbreak
+\hbox{\hskip.5in 2) Ry \subrule{} \Beta . Ra}\fbreak
+\hbox{\hskip.5in 3) Rz \subrule{} . Ra Rb}\fbreak
+The period indicates where within the string of the production the current
+vector is.
+Point 1 is not right bounded due to t representing a terminal.
+Point 2 is right bounded as the follow set of its Ra hits the end-of-string condition and
+so must transition back along to Ry's follow sets. Point 3
+could be right bounded if Rb is epsilonable.
+Cuz of point 2, the newly generated state's closure rules will be associated
+with the current closure state generation.
+@<Structure implementations@>+=
+bool state::crt_core_items_of_state
+ (S_VECTOR_ELEMS_ITER_type& Iter_begin
+ ,S_VECTOR_ELEMS_ITER_type& Iter_end
+ ,gen_context& Gening_context){
+ bool rt_bnded(false);
+ AST* to_element_t(0);
+ CAbs_lr1_sym* to_element(0);
+ Voc_ENO id(START_STATE_ENUMERATE);
+ for(;Iter_begin !=Iter_end;++Iter_begin){
+ state_element* from_se = *Iter_begin;
+ to_element_t = AST::brother(*from_se->sr_element_);
+ bool se_rt_bnded_condition = is_str_rt_bnded(to_element_t);
+ if(se_rt_bnded_condition == true) rt_bnded = se_rt_bnded_condition;
+ to_element = AST::content(*to_element_t);
+ switch(to_element->enumerated_id__){
+ case T_Enum::T_T_null_call_thread_eosubrule_:{//bypass
+ to_element_t = AST::brother(*to_element_t);
+ se_rt_bnded_condition = is_str_rt_bnded(to_element_t);
+ if(se_rt_bnded_condition == true) rt_bnded = se_rt_bnded_condition;
+ to_element = AST::content(*to_element_t);
+ break;
+ }
+ case T_Enum::T_T_called_thread_eosubrule_:{//bypass
+ to_element_t = AST::brother(*to_element_t);
+ se_rt_bnded_condition = is_str_rt_bnded(to_element_t);
+ if(se_rt_bnded_condition == true) rt_bnded = se_rt_bnded_condition;
+ to_element = AST::content(*to_element_t);
+ break;
+ }
+ }
+ state_element* se = new state_element(to_element_t);
+ se->subrule_def_ = from_se->subrule_def_;
+ se->self_state_ = this;
+ se->closure_state_ = from_se->closure_state_;
+ se->closured_state_gening_it_ = Gening_context.for_closure_state_;
+ //|se->cs_vector_combo_gening_it_ = from_se->cs_vector_combo_gening_it_;|
+ se->cs_vector_combo_gening_it_ = Gening_context;
+
+ if(se_rt_bnded_condition == true){
+ if(from_se->closured_state_gening_it_ != Gening_context.for_closure_state_){
+ // common prefix syndrome: keep it pure: same as from se
+ se->cs_vector_combo_gening_it_ = from_se->cs_vector_combo_gening_it_;
+ se->closured_state_gening_it_ = from_se->closured_state_gening_it_;
+ }else{
+ se->cs_vector_combo_gening_it_ = Gening_context;
+ se->closured_state_gening_it_ = Gening_context.for_closure_state_;
+ }
+ }
+ from_se->goto_state_ = se->self_state_;
+ se->previous_state_ = from_se->self_state_;
+
+ from_se->next_state_element_ = se;
+ se->previous_state_element_ = from_se;
+ id = to_element->enumerated_id__;
+ @<add subrule's element to the being gened state's vector@>;
+ }
+ return rt_bnded;
+}
+
+@*4 Add subrule's element to the being gened state's vector.
+@<add subrule's element to the being gened state's vector@>=
+ switch(id){
+ case T_Enum::T_refered_rule_:{
+ @=refered_rule* rr = (refered_rule*)to_element;@>@/
+ rule_def* rd = rr->its_rule_def();
+ rule_in_stbl*ris= rr->Rule_in_stbl();
+ RULE_ENO r_id = rd->enum_id();
+ add_element_to_state_vector(r_id,*se);
+ add_rule_to_follow_list(r_id);
+ add_rule_to_closure_list(ris);
+ break;
+ }
+ case T_Enum::T_T_eosubrule_:{
+ T_ENO t_id = T_Enum::T_T_eosubrule_;
+ add_element_to_state_vector(-t_id,*se);
+ break;
+ }
+ case T_Enum::T_T_null_call_thread_eosubrule_:{
+ T_ENO t_id = T_Enum::T_T_null_call_thread_eosubrule_;
+ add_element_to_state_vector(-t_id,*se);
+ break;
+ }
+ case T_Enum::T_T_called_thread_eosubrule_:{
+ T_ENO t_id = T_Enum::T_T_called_thread_eosubrule_;
+ add_element_to_state_vector(-t_id,*se);
+ break;
+ }
+ case T_Enum::T_refered_T_:{
+ @=refered_T* rt = (refered_T*)to_element;@>@/
+ T_terminal_def* td = rt->its_t_def();
+ T_ENO t_id = td->enum_id();
+ add_element_to_state_vector(t_id,*se);
+ break;
+ }
+ }
+
+@*3 |create_start_state| --- Create start state.
+@<Structure implementations@>+=
+void state::create_start_state(AST& Start_rule_t){
+ gen_context gening_context(0,-1);
+ add_rule_s_subrules_to_state(Start_rule_t,gening_context,*this);
+ add_closure_rules_subrules_to_state(gening_context,*this);
+ crt_start_rule_s_follow_set(Start_rule_t);
+ create_follow_sets_of_state();
+ this->state_type_ = determine_reduced_state_type(this);
+//|Print_dump_state(this);|
+}
+@*3 |gen_transitive_states_for_closure_context|.\fbreak
+Loop thru the state's closure/vector where the subrule's start position
+is the first symbol.
+The loop depends on the gening closure state/vector.
+When a state is constructed, the closured rules are
+associated with either:\fbreak
+\ptindent{1) itself state/vector}
+\ptindent{2) a right bounded rule context that associates with the gening context creating the state}
+@<Structure implementations@>+=
+bool
+state::
+gen_transitive_states_for_closure_context@/
+ (gen_context& For_gening_context,state& For_closure_state,state& State){@/
+@<Increment and printout Recursion counter@>;
+lrclog << "gen_transitive_states_for_closure_context for closure state: "
+<< For_gening_context.for_closure_state_->state_no_
+<< endl;
+ S_VECTORS_ITER_type i = State.state_s_vector_.begin();
+ S_VECTORS_ITER_type ie = State.state_s_vector_.end();
+ for(;i !=ie;++i){// read state's goto symbols
+ Voc_ENO eno = i->first;
+ @<unchain my reduce states if end-of-subrule and continue to next item@>;
+ For_gening_context.gen_vector_ = eno;
+@<Printout Recursion counter@>;
+lrclog << " for vector: "
+<< For_gening_context.gen_vector_
+<< endl;
+ bool continue_gening = gen_a_state(For_gening_context,For_closure_state,State,i);
+ if(continue_gening == NOT_LR1_COMPATIBLE){
+ @<Decrement Recursion counter@>;
+ return NOT_LR1_COMPATIBLE;
+ }
+ }
+ @<Decrement Recursion counter@>;
+ return LR1_COMPATIBLE;// gened states ok
+}
+
+@*4 Unchain my reduced states if end-of-subrule and continue to next item.\fbreak
+Rip thru the subrule's symbols depositing its reduced state as
+eyeball info.
+@<unchain my reduce states if end-of-subrule and continue to next item@>=
+ if(eno ==-T_Enum::T_T_eosubrule_)
+ {
+ S_VECTOR_ELEMS_type elem_list = i->second;
+ S_VECTOR_ELEMS_ITER_type j = elem_list.begin();
+ S_VECTOR_ELEMS_ITER_type je = elem_list.end();
+ for(;j!=je;++j){
+ state_element* se = *j;
+ se->reduced_state_ = se->self_state_;
+ state* reduced_state = se->self_state_;
+ while (se->previous_state_element_ != 0){
+ se->previous_state_element_->reduced_state_ = reduced_state;
+ se = se->previous_state_element_;
+ }
+ }
+ continue; // eosubrule: onto next vector to gen in closure state's vector loop
+ }
+
+@*3 |gen_transitive_states_balance_for_closure_vector|. \fbreak
+@<Structure implementations@>+=
+ bool
+ state::
+ gen_transitive_states_balance_for_closure_vector@/
+ (gen_context& Gen_context,state& For_closure_state,state& Goto_state){@/
+@<Increment and printout Recursion counter@>;
+
+lrclog << "gen_transitive_states_balance_for_closure_vector for <"
+<< Gen_context.for_closure_state_->state_no_
+<< ","
+<< Gen_context.gen_vector_
+<< "> goto state: "
+<< Goto_state.state_no_
+<< endl;
+ S_VECTORS_ITER_type i = Goto_state.state_s_vector_.begin();
+ S_VECTORS_ITER_type ie = Goto_state.state_s_vector_.end();
+ for(;i !=ie;++i){// read state's goto symbols
+ Voc_ENO eno = i->first;
+ @<unchain my reduce states if end-of-subrule and continue to next item@>;
+ bool continue_gening = gen_a_state(Gen_context,For_closure_state,Goto_state,i);
+ if(continue_gening == NOT_LR1_COMPATIBLE){
+ @<Decrement Recursion counter@>;
+ return NOT_LR1_COMPATIBLE; // stop gening as not lr1
+ }
+ }
+ @<Decrement Recursion counter@>;
+ return LR1_COMPATIBLE;
+ }
+
+
+@*3 |gen_a_state|.\fbreak
+The only wrinkle is when a previous closured state has dragged along a common
+prefix subrule that is not part of its productions being gened.
+Call this a premature production generation: the production could be partially gened
+up to where the common prefix differs or
+the production completely gened as its right-hand-side string of symbols
+was contained in the other closure state gened productions.
+When this premature production's closure state is finally generating all its productions,
+common conflict states from a past closure generation that
+include premature gened
+productions must also be assessed for state conflicts.
+There is a commonality between the conflict states per gened closure states
+due to their productions that contributed to this conflict state list and so these
+common states must be added to the premature closure state's conflict state list.
+The premature gened production could be reducing whilst its common production
+that dragged it along could be shifting or reducing. The reverse could also be happening:
+the being gened production could be reducing while the premature
+production shifting.
+Thus a proposed merge into a state of this closure state must also
+have these common conflict states assessed for lr1ness.
+
+A good example of this is situation is Deremer and Pennello's paper on
+``Efficient computation of lalr(1) lookahead sets''
+ACM Transactions on Programming Language and Systems:
+Vol. 4 no. 4 October 1982 Page 632.
+Please see my gened grammar ``lalr\_dp1.lex'' illustrating this.\fbreak
+\fbreak
+Pathological grammar condition:\fbreak
+Not lr1 grammar where the gening closure state network is not lr1.
+So must flag the |gen_a_state| with a returned result: continue or stop.
+
+To stop infinite looping within its own closure state / vector being gened,
+make sure new state being added is lr1 compatible!
+Instead of analysing the gened network for lr1 compatibility after it is built, do a
+compatibilty test while it is being built. This stops the infinite looping context!\fbreak
+\fbreak
+There are 2 not lr1 compatibilty contexts:\fbreak
+\ptindent{1) can a state be merged into another closure state's network}
+\ptindent{2) can not merge and its is not a kosher lr(1) grammar}
+Point 1) tests the merge for incompatibility and rejects the merge.
+This does not mean that the grammar is incompatible but that the merged contexts make it incompatible.
+Point 2) is a state within its own closure state/vector environment which is not okay.
+
+@<Structure implementations@>+=
+bool state::gen_a_state
+ (gen_context& For_gening_context
+ ,state& For_closure_state
+ ,state& Requesting_state,S_VECTORS_ITER_type& Elem_iter){
+@<Increment and printout Recursion counter@>;
+lrclog << "gen_a_state for <"
+<< For_gening_context.for_closure_state_->state_no_
+<< ","
+<< For_gening_context.gen_vector_
+<< "> requesting state: "
+<< Requesting_state.state_no_
+<< endl;
+
+ gen_context associated_rt_bnded_cs(0,-1);
+ Voc_ENO eno = Elem_iter->first;
+ S_VECTOR_ELEMS_type elem_list = Elem_iter->second;
+ S_VECTOR_ELEMS_ITER_type i = elem_list.begin();
+ S_VECTOR_ELEMS_ITER_type ie = elem_list.end();
+ bool compatible(false);
+ for(;i !=ie;++i){// read symbol's element list to gen
+ state_element* se = *i;
+ @<is state's element associated with gened closure state? no bypass@>;
+ @<common prefix gened goto state? yes deal with its goto state@>;
+ @<create a new state@>;
+ @<can new state be merged into state network? yes erase its existance and exit@>;
+ add_state_to_gbl_lr1_state_tbls(s);
+@<Printout Recursion counter@>;
+
+lrclog << "gen_a_state for <"
+<< For_gening_context.for_closure_state_->state_no_
+<< ","
+<< For_gening_context.gen_vector_
+<< "> requesting state: "
+<< Requesting_state.state_no_
+<< " NEW STATE CREATED: "
+<< s->state_no_
+<< endl;
+ add_state_to_conflict_states_list_if(For_gening_context,*s);
+ compatible= is_state_lr1_compatible(*s);//is new state to be added lr1 compatible?
+ if(compatible==NOT_LR1_COMPATIBLE){// added
+ @<Decrement Recursion counter@>;
+ return NOT_LR1_COMPATIBLE;// stop gening: note state added before test as if not lr1 reports properly why
+ }
+//|Print_dump_state(s);|
+ s->state_type_ = determine_reduced_state_type(s);
+ bool gen_ok = gen_transitive_states_balance_for_closure_vector(For_gening_context,For_closure_state,*s);
+ @<Decrement Recursion counter@>;
+ return gen_ok;// state gened so finished going thru element list
+ }
+ @<Decrement Recursion counter@>;
+
+ return LR1_COMPATIBLE;
+}
+
+@*4 Is element vector associated with the current closure state being gened?.
+@<is state's element associated with gened closure state? no bypass@>=
+ if ((
+ (se->cs_vector_combo_gening_it_.for_closure_state_ == For_gening_context.for_closure_state_)
+ &&
+ (se->cs_vector_combo_gening_it_.gen_vector_ == For_gening_context.gen_vector_)
+ ) != true){
+@<Printout Recursion counter@>;
+lrclog << "gen_a_state Bypass subrule as its gening <"
+<< se->cs_vector_combo_gening_it_.for_closure_state_->state_no_
+<< ","
+<< se->cs_vector_combo_gening_it_.gen_vector_
+<< "> different then gening <"
+<< For_gening_context.for_closure_state_->state_no_
+<< ","
+<< For_gening_context.gen_vector_
+<< ">"
+<< endl;
+ continue;
+ }
+
+@*4 Is element gened from common prefix of an earlier closure state gen?.
+@<common prefix gened goto state? yes deal with its goto state@>=
+ if(se->goto_state_ != 0){
+@<Printout Recursion counter@>;
+
+lrclog << "gen_a_state subrule COMMON PREFIX state gened by a different gening context. <"
+<< se->cs_vector_combo_gening_it_.for_closure_state_->state_no_
+<< ","
+<< se->cs_vector_combo_gening_it_.gen_vector_
+<< "> goto state: "
+<< se->goto_state_->state_no_
+<< endl;
+ add_state_to_conflict_states_list_if(For_gening_context,*se->goto_state_);
+ bool gen_ok = gen_transitive_states_balance_for_closure_vector(For_gening_context,For_closure_state,*se->goto_state_);
+ @<Decrement Recursion counter@>;
+ return gen_ok;
+ }
+@*4 Create a new state.
+@<create a new state@>=
+ state* s = new state(eno,se->sr_def_element_);
+ s->closure_state_birthing_it_ = For_gening_context.for_closure_state_;
+ s->cs_vector_combo_gening_it_ = For_gening_context;
+ S_VECTOR_ELEMS_ITER_type j = elem_list.begin();
+ S_VECTOR_ELEMS_ITER_type je = elem_list.end();
+
+ bool rt_bnded = s->crt_core_items_of_state(j,je,For_gening_context);
+ if(rt_bnded == true){
+ associated_rt_bnded_cs = For_gening_context;
+ }else{
+ associated_rt_bnded_cs.for_closure_state_=0;
+ associated_rt_bnded_cs.gen_vector_=-1;
+ }
+ s->add_closure_rules_subrules_to_state(associated_rt_bnded_cs,*s);
+ s->create_follow_sets_of_state();
+
+@*4 Can new state be merged into state network? Yes then exit.\fbreak
+Watch for indicator to stop gening the states
+caused by ``not lr1 compatibile'' while gening the closure state network.
+@<can new state be merged into state network? yes erase its existance and exit@>=
+ int compatibility_result = find_2_states_compatible_and_merge(*s);
+ switch(compatibility_result){
+ case MERGED:{
+ delete s;
+ @<Decrement Recursion counter@>;
+ return true;// keep gening
+ }
+ case ABORT_GENING_STATES:{
+ @<Decrement Recursion counter@>;
+ return NOT_LR1_COMPATIBLE;// stop gening
+ }
+ case NOT_MERGED:{
+ break; // continue the |gen_a_state| logic by fall through
+ }
+ }
+
+@*3 |determine_reduced_state_type|.\fbreak
+Determines the ``lrness'' of the state: no conflict --- shift(s) or reduce(s) only,
+conflict: shift / reduce, multiple reduces, shift(s) with mutiple reduces.
+@<Structure implementations@>+=
+int state::determine_reduced_state_type(state* S){
+ // rtned 0 so, 1 ro, 2 s/r, 3 r2 , 4 s/r2
+ using namespace NS_yacco2_T_enum;
+ int no_reduces(0);
+ int no_reduce_types(0);
+ S_VECTORS_ITER_type svi = S->state_s_vector_.begin();
+ S_VECTORS_ITER_type svie = S->state_s_vector_.end();
+ S_VECTORS_ITER_type tvi = S->state_s_vector_.find(-T_Enum::T_T_eosubrule_);
+ if(tvi != svie){
+ no_reduces += tvi->second.size();
+ ++no_reduce_types;
+ }
+ tvi = S->state_s_vector_.find(-T_Enum::T_T_called_thread_eosubrule_);
+ if(tvi != svie){
+ no_reduces += tvi->second.size();
+ ++no_reduce_types;
+ }
+ tvi = S->state_s_vector_.find(-T_Enum::T_T_null_call_thread_eosubrule_);
+ if(tvi != svie){
+ no_reduces += tvi->second.size();
+ ++no_reduce_types;
+ }
+ if(no_reduces > 1) no_reduces = 3;
+ if(S->state_s_vector_.size()>no_reduce_types){// shift present
+ if(no_reduce_types > 0){// combo
+ ++no_reduces;// combo shift / reduce
+ }
+ }
+ return no_reduces;
+}
+
+@*3 |add_state_to_gbl_lr1_state_tbls|.\fbreak
+@<Structure implementations@>+=
+void state::add_state_to_gbl_lr1_state_tbls(state* State){
+ ++NO_LR1_STATES;
+ State->state_no_ = NO_LR1_STATES;
+ LR1_STATES.push_back(State);
+ Voc_ENO eno = State->vectored_into_by_elem_;
+ LR1_STATES_ITER_type i = LR1_COMMON_STATES.find(eno);
+ if(i == LR1_COMMON_STATES.end()){
+ LR1_COMMON_STATES[eno] = STATES_type();
+ i = LR1_COMMON_STATES.find(eno);
+ }
+ i->second.push_back(State);
+ }
+
+@*3 |add_state_to_conflict_states_list_if|.\fbreak
+If newly created state has ``eosubrule'' in its vector map,
+there are 2 possibilities that make it a conflict state:\fbreak
+\ptindent{1) reduce / reduce --- more than 1 production whose string is consumned}
+\ptindent{2) shift / reduce --- one reduce with a shift}
+@<Structure implementations@>+=
+void state::add_state_to_conflict_states_list_if(gen_context& Gening_context,state& State){
+ S_VECTORS_ITER_type i = State.state_s_vector_.find(-T_Enum::T_T_eosubrule_);
+ if(i != State.state_s_vector_.end()) goto reduce_fnd;
+ return;
+ reduce_fnd:;
+ if(i->second.size() > 1){// reduce / reduce
+ Gening_context.for_closure_state_->state_s_conflict_state_list_.push_back(&State);
+ return;
+ }
+ if(State.state_s_vector_.size() < 2) return;
+ Gening_context.for_closure_state_->state_s_conflict_state_list_.push_back(&State);
+}
+
+@*1 {\bf{General routines on state compatibilities}}.
+
+@*2 Determining if 2 states are equivalent?.\fbreak
+As an aid to quickly determine whether 2 states are equal,
+each state except the ``closure-state''
+has an element going into it: proxies ``rule-ref'' or ``T-ref''
+are references to their definitions. They are general classifications
+of the items whose contents
+refer to the specific definition. ``eosubrule'' is excluded from this as it
+does not generate any states.
+Why use the definitions? I need a unique identifier and this only comes from the definition.
+The ``closure-only'' (start) state has no entry.
+
+State equivalence is arrived at by:\fbreak
+\ptindent{1) the ``entered into'' element generating each state must be identical}
+\ptindent{2) State's A ``to vector'' map must be the same size as B}
+\ptindent{3) A's ``to vector''\ 's keys must be the same as B}
+\ptindent{4) A's ``to vector''\ 's state element list's contents must be the same as B}
+Point 4: why the state's element list ordered? One can have a state whereby
+its elements order are not the same but the ``to vector'' result is.
+Give me a real example
+as i'm a doubter.\fbreak
+\settabs\+\indent&1in\qquad&\qquad&\qquad&\cr
+\+&\it Rule&&{\it subrule's symbols}\cr
+\+&Rab &$\rightarrow$ &a b\cr
+\+&Rac &$\rightarrow$ &a c\cr
+\+&Rad &$\rightarrow$ &Rab\cr
+\+&&$\rightarrow$ &Rac\cr
+\+&Rae &$\rightarrow$ &Rac\cr
+\+&&$\rightarrow$ &Rab\cr
+
+Rad or Rae inside other productions should allow the merge of Rab, Rac.\fbreak
+\fbreak
+Constraints:\fbreak
+\ptindent{1) state's vector is a map ordered by Voc\_ENO}
+\ptindent{2) state elements list ordered by tree address}
+@<Structure implementations@>+=
+bool state::are_states_equivalent(state& Merge_into_state,state& To_merge_state){
+ if(Merge_into_state.vectored_into_by_elem_ != To_merge_state.vectored_into_by_elem_){
+ return false;
+ }
+ if(Merge_into_state.state_s_vector_.size() != To_merge_state.state_s_vector_.size()){
+ return false;
+ }
+ S_VECTORS_ITER_type i = Merge_into_state.state_s_vector_.begin();
+ S_VECTORS_ITER_type ie = Merge_into_state.state_s_vector_.end();
+ S_VECTORS_ITER_type j = To_merge_state.state_s_vector_.begin();
+ S_VECTORS_ITER_type je = To_merge_state.state_s_vector_.end();
+ for(;i!=ie;++i,++j){
+ Voc_ENO ieno = i->first;
+ Voc_ENO jeno = j->first;
+ if(ieno != jeno) {
+ return false;
+ }
+ if(i->second.size() != j->second.size()){
+ return false;
+ }
+ S_VECTOR_ELEMS_ITER_type l = i->second.begin();
+ S_VECTOR_ELEMS_ITER_type le = i->second.end();
+ S_VECTOR_ELEMS_ITER_type m = j->second.begin();
+ S_VECTOR_ELEMS_ITER_type me = j->second.end();
+ for(;l!=le;++l,++m){
+ state_element* ls = *l;
+ state_element* ms = *m;
+ if(ls->sr_element_ != ms->sr_element_){
+ return false;
+ }
+ }
+ }
+ return true;
+}
+
+@*2 |is_state_lr1_compatible|.\fbreak
+\ptindent{0) check if it's a s/r or r/r type state no exit as compatible}
+\ptindent{1) Fill in its lookahead per reducing subrule}
+\ptindent{1.5) make sure that its reducing set is not empty! or not lr1 compatible}
+\ptindent{2) calculate state's T shift set}
+\ptindent{3) do a set intersection on all these sets}
+The resulting set must be empty to be LR1 compatible.
+To be more efficient i use a T count as i do not have to report on
+what type of non compatibility produced it nor between whom: reduce / reduce or shift /reduce.
+The cost is to read each set while being gened and add up each item's referenced count:
+not the combinatorics between each set.
+
+Add check on eolr presence:
+Eg, eolr in la expression only, it is not exploded.
+This leads to the bug that a shift/reduce is incompatible.
+Somehow i must have optimized this out from |la_expr| grammar.
+So if there are 2 or more reduces taking place and eolr is present -> not lr1.
+Same goes for shift/reduce condition.
+@<Structure implementations@>+=
+bool state::is_state_lr1_compatible(state& State_to_eval){
+ T_COUNT_type t_cnt(START_OF_RULES_ENUM);
+ for(int x=0;x<START_OF_RULES_ENUM;++x) t_cnt[x] = 0;
+ S_VECTORS_ITER_type i;
+ i = State_to_eval.state_s_vector_.find(-T_Enum::T_T_eosubrule_);
+ if(i!=State_to_eval.state_s_vector_.end()){
+ goto assess_state;
+ }
+ i = State_to_eval.state_s_vector_.find(-T_Enum::T_T_called_thread_eosubrule_);
+ if(i!=State_to_eval.state_s_vector_.end()){
+ goto assess_state;
+ }
+ i = State_to_eval.state_s_vector_.find(-T_Enum::T_T_null_call_thread_eosubrule_);
+ if(i!=State_to_eval.state_s_vector_.end()){
+ goto assess_state;
+ }
+ return LR1_COMPATIBLE;
+assess_state:@/
+ int no_reduces = 0;
+ S_VECTOR_ELEMS_ITER_type j = i->second.begin();
+ S_VECTOR_ELEMS_ITER_type je = i->second.end();
+bool T_not_meta(false);
+ for(;j!=je;++j){// fill in lookahead per reducing subrule
+ ++no_reduces;
+ state_element* se = *j;
+ if (se->calc_la(*se) == false){
+ return NOT_LR1_COMPATIBLE;
+ }
+ LA_SET_ITER_type k = se->la_set_->begin();
+ LA_SET_ITER_type ke = se->la_set_->end();
+ for(;k!=ke;++k){
+ T_in_stbl* tintbl = *k;
+ T_ENO teno = tintbl->t_def()->enum_id();// T of new alphabet
+ if(teno <= END_OF_LR1_DEFS){
+ if(teno == LR1_EOG){
+ T_not_meta = true;
+ }
+ }else{
+ T_not_meta = true;
+ }
+ ++t_cnt[teno];
+ if(t_cnt[teno] > 1) return NOT_LR1_COMPATIBLE;
+ }
+ }
+ if(no_reduces > 1){// reduces > 1 where eolr super set to others
+ if(T_not_meta == true){
+ if(t_cnt[LR1_EOLR] > 0) return NOT_LR1_COMPATIBLE;
+ }
+ }
+ // shift / reduce evaluation
+ // shift type not of meta Tes \QUEshift, \ALLshift etc
+ S_VECTORS_ITER_type l = State_to_eval.state_s_vector_.begin();
+ S_VECTORS_ITER_type le = State_to_eval.state_s_vector_.end();
+ for(;l!=le;++l){// T shift set of state
+ Voc_ENO t = l->first;
+ if(t == -T_Enum::T_T_eosubrule_) continue;
+ if(t == -T_Enum::T_T_null_call_thread_eosubrule_) continue;
+ if(t == -T_Enum::T_T_called_thread_eosubrule_) continue;
+ if(t == T_Enum::T_refered_rule_) continue;
+ S_VECTOR_ELEMS_ITER_type m = l->second.begin();
+ state_element* se = *m;
+ CAbs_lr1_sym* sym = AST::content(*se->sr_element_);
+ T_ENO tid = sym->enumerated_id__;
+ switch(tid){
+ case T_Enum::T_refered_T_:{
+ @<get cast referenced T@>;
+ T_in_stbl* tintbl = rt->t_in_stbl();
+ T_ENO teno = tintbl->t_def()->enum_id();// T of new alphabet
+ if(teno <= END_OF_LR1_DEFS){
+ if(teno != LR1_EOG){
+ continue; // bypass the meta Tes
+ }
+ }
+ ++t_cnt[teno];
+ if(t_cnt[teno] > 1) return NOT_LR1_COMPATIBLE;
+if(teno>END_OF_LR1_DEFS){// specific shift against eolr usuage
+ if(t_cnt[LR1_EOLR]> 0)return NOT_LR1_COMPATIBLE;
+}
+ }
+ }
+ }
+ return LR1_COMPATIBLE;
+}
+
+@*2 |are_2_states_compatible_yes_merge|.\fbreak
+Is it LR1 compatible?
+If |To_merge_into_state|'s closured-generating
+state has no conflict states then it's straight sailing.
+To determine if the mariage is compatible, the conflict states
+must be checked with the new follow set info supplied
+by |State_for_merging| birthing ``closured context''.
+Let's review the LR1 conditions:\fbreak
+\ptindent{1) a conflict state has at least a reduce / reduce or reduce / shift condition}
+\ptindent{2) reduced lookaheads must be regened with the new closured follow set context}
+Point 2's ``new closured follow set'' context comes from the closured states
+of |State_for_merging|'s productions.
+To do the check i must merge the new follow set contexts of |To_merge_into_state|'s
+birth state per transitive
+production.
+Why? These are the potential follow set contexts where each production was born.
+Now generate the lookahead for each conflict state's reduces and
+then see whether all the conflict states are kosher.
+An incompatibility just requires rolling back the new follow set context
+from each of the proposed production's birthing states of |To_merge_into_state|.
+
+A kosher merge requires that the spawning state must unlink each of its
+spawned productions
+to the new state's
+``goto'' and ``reduce''
+links and latch into the merged state's productions linkages.
+\fbreak
+\fbreak
+A caveat: {\bf {infinite states gened when a merge into its own closure state network is not lr(1)}}.\fbreak
+Spector's {\bf {/usr/local/yacco2/qa/lr1\_sp2.lex}} grammar illustrates when
+the closure state 2's start gening vector:{\bf{x}} produces its own states.
+Now state 2's brethern vector: {\bf{y}} gets gened and has the potential
+to merge into one of x's states but the potential merge is not lr(1).
+Cuz state's 2 two closure state's vectors are different(x,y), this
+means that their gened states can be separate as long as the lr(1) constraint is respected.
+So y's states are
+separate from vectored:x and not merged into x's states due to lr(1) constraint.
+So continue gening closure state 2's y's states.
+If down the road gening y's states are not lr(1) then abort the generation
+and issue such a message.
+The not lr(1) condition is specific to the closure state's gening vector and not due to a merge into another's
+state network that is kosher.
+
+What happens when a closure state's vector is gened and one of its states is not
+lr(1) whether being merged into or not within itsself states network?
+{\bf{/usr/local/yacc2/qa/knu1\_sick.lex}} grammar illustrates this situation.
+Have a read of its pdf document, as it talks about the situation and how it came about.
+This situation is a legitimate non lr(1) grammar and so put on the brakes to generating
+its states.
+Another example is: {\bf{lr1\_sp6.lex}} where the start rule has a subrule (production)
+and it is epsilonable. Ditto on the reading.\fbreak
+\fbreak
+So the terminating condition is:\fbreak
+1) not lr(1) within its own closure state's vector generated states\fbreak
+
+@<Structure implementations@>+=
+int
+state::
+are_2_states_compatible_yes_merge(state& To_merge_into_state,state& State_for_merging){
+ state* cs_To_merge_into = To_merge_into_state.closure_state_birthing_it_;
+ state* cs_for_merging = State_for_merging.closure_state_birthing_it_;
+
+ @<add potential follow set context per production@>;
+ bool compatible(false);
+ if(cs_To_merge_into->state_s_conflict_state_list_.empty() == true) goto merged;
+lr1_test:@/
+{
+ S_CONFLICT_STATES_ITER_type k = cs_To_merge_into->state_s_conflict_state_list_.begin();
+ S_CONFLICT_STATES_ITER_type ke = cs_To_merge_into->state_s_conflict_state_list_.end();
+ for(;k!=ke;++k){// evaluate lr1 compatibility
+ state* s = *k;
+
+ compatible = s->is_state_lr1_compatible(*s);
+
+ if(compatible == NOT_LR1_COMPATIBLE) goto unwind_merge;
+ }
+}
+merged:@/
+{
+ @<relink spawning state of merged state@>;
+ return MERGED;
+}
+
+unwind_merge:{@/
+
+unwind:;@/
+ @<unwind potential merge@>;
+ return NOT_MERGED;
+}
+ return NOT_MERGED;
+}
+
+@*4 Add potential follow set context per production.\fbreak
+Only work with the core items.
+@<add potential follow set context per production@>=
+ RULE_NOS_SET_type rules_to_add;
+ S_VECTORS_ITER_type sfmi = To_merge_into_state.state_s_vector_.begin();
+ S_VECTORS_ITER_type sfmie = To_merge_into_state.state_s_vector_.end();
+ S_VECTORS_ITER_type msfmi = State_for_merging.state_s_vector_.begin();
+ for(;sfmi!=sfmie;++sfmi,++msfmi){
+ S_VECTOR_ELEMS_ITER_type rri = sfmi->second.begin();
+ S_VECTOR_ELEMS_ITER_type mrri = msfmi->second.begin();
+ S_VECTOR_ELEMS_ITER_type rrie = sfmi->second.end();
+ for(;rri!=rrie;++rri,++mrri){
+ state_element* re = *rri;
+ state_element* mre = *mrri;
+ if(re->closure_state_ == re->self_state_) continue;// not a core item
+ RULE_ENO ruleno = re->find_state_element_s_rule_no();
+ S_FOLLOW_SETS_ITER_type j = re->closure_state_->state_s_follow_set_map_.find(ruleno);
+ follow_element* fe = j->second;
+ RULE_NOS_SET_ITER_type rni = rules_to_add.find(ruleno);
+ if(rni == rules_to_add.end()){
+ fe->add_merge_closure_info(*mre->closure_state_);
+ rules_to_add.insert(ruleno);
+ }
+ }
+ }
+@*4 Relink spawning state of merged state.
+@<relink spawning state of merged state@>=
+ S_VECTORS_ITER_type ri = State_for_merging.state_s_vector_.begin();
+ S_VECTORS_ITER_type rie = State_for_merging.state_s_vector_.end();
+ S_VECTORS_ITER_type si = To_merge_into_state.state_s_vector_.begin();
+ for(;ri!=rie;++ri,++si){
+ S_VECTOR_ELEMS_ITER_type rri = ri->second.begin();
+ S_VECTOR_ELEMS_ITER_type rrie = ri->second.end();
+ S_VECTOR_ELEMS_ITER_type ssi = si->second.begin();
+ for(;rri!=rrie;++rri,++ssi){
+ state_element* re = *rri;
+ state_element* se = *ssi;
+ if(re->previous_state_element_ == 0) continue;
+ state_element* prev_re = re->previous_state_element_;
+ prev_re->goto_state_ = se->self_state_;
+ prev_re->reduced_state_ = se->reduced_state_;
+ prev_re->next_state_element_ = se;
+ // walk thru the rhs backwards laying those reduce eggs
+ for(prev_re = prev_re->previous_state_element_;
+ prev_re != 0;prev_re = prev_re->previous_state_element_){// deposit reducing state
+ prev_re->reduced_state_ = se->reduced_state_;
+ }
+ }
+ }
+ @<add conflict states to to merge network@>;
+
+@*4 Add conflict states to merge network.\fbreak
+For now add all the conflict states until i refine a map of states
+that derives each specific conflict state.
+
+If the merged state is part of the current network being gened then bypass.
+Why? The conflict states are already registered that appliy to this merged state
+cuz its part of this closured generating state containing the conflist state list.
+@<add conflict states to to merge network@>=
+ if(cs_for_merging->cs_vector_combo_gening_it_.for_closure_state_
+ != cs_To_merge_into->cs_vector_combo_gening_it_.for_closure_state_){
+ S_CONFLICT_STATES_ITER_type k = cs_To_merge_into->state_s_conflict_state_list_.begin();
+ S_CONFLICT_STATES_ITER_type ke = cs_To_merge_into->state_s_conflict_state_list_.end();
+ for(;k!=ke;++k){
+ state* s = *k;
+ cs_for_merging->state_s_conflict_state_list_.push_back(s);
+ }
+ }
+
+ @*4 Unwind potential merge.
+ @<unwind potential merge@>=
+ RULE_NOS_SET_type rules_to_add;
+ S_VECTORS_ITER_type sfmi = To_merge_into_state.state_s_vector_.begin();
+ S_VECTORS_ITER_type sfmie = To_merge_into_state.state_s_vector_.end();
+ for(;sfmi!=sfmie;++sfmi){
+ S_VECTOR_ELEMS_ITER_type rri = sfmi->second.begin();
+ S_VECTOR_ELEMS_ITER_type rrie = sfmi->second.end();
+ for(;rri!=rrie;++rri){
+ state_element* re = *rri;
+ if(re->closure_state_ == re->self_state_) continue;// not a core item
+ RULE_ENO ruleno = re->find_state_element_s_rule_no();
+ S_FOLLOW_SETS_ITER_type j = re->closure_state_->state_s_follow_set_map_.find(ruleno);
+ follow_element* fe = j->second;
+ RULE_NOS_SET_ITER_type rni = rules_to_add.find(ruleno);
+ if(rni == rules_to_add.end()){
+ fe->remove_merge_closure_info();
+ rules_to_add.insert(ruleno);
+ }
+ }
+ }
+
+@*2 |find_2_states_compatible_and_merge|.\fbreak
+Read the |LR1_COMMON_STATES| table looking for states with
+the same enumerate and same state core items.
+@<Structure implementations@>+=
+int state::find_2_states_compatible_and_merge(state& State_for_merging){
+ Voc_ENO eno = State_for_merging.vectored_into_by_elem_;
+ LR1_STATES_ITER_type i = LR1_COMMON_STATES.find(eno);
+ if(i == LR1_COMMON_STATES.end()){
+ return NOT_MERGED;
+ }
+ STATES_ITER_type j = i->second.begin();
+ STATES_ITER_type je = i->second.end();
+ for(;j!=je;++j){
+ state* s = *j;
+ bool equivalent = are_states_equivalent(State_for_merging,*s);
+ if(equivalent == false) continue;
+ int compatible = are_2_states_compatible_yes_merge(*s,State_for_merging);
+ if(compatible == LR1_COMPATIBLE) return MERGED;
+ if(compatible == ABORT_GENING_STATES) return ABORT_GENING_STATES;
+ }
+ return NOT_MERGED;
+}
+
+@*2 |are_gened_states_lr1_compatible|.\fbreak
+Read gening state's conflict states for lr1 health check.
+@<Structure implementations@>+=
+ bool state::are_gened_states_lr1_compatible(){
+ S_CONFLICT_STATES_ITER_type i = state_s_conflict_state_list_.begin();
+ S_CONFLICT_STATES_ITER_type ie = state_s_conflict_state_list_.end();
+ if(i == ie) return LR1_COMPATIBLE;
+ for(;i!=ie;++i){
+ state* s = *i;
+ if(is_state_lr1_compatible(*s) == NOT_LR1_COMPATIBLE) return NOT_LR1_COMPATIBLE;
+ }
+ return LR1_COMPATIBLE;
+ }
+
+@*2 |is_str_rt_bnded|.\fbreak
+Determine if the production's lookahead transitions thru
+other closured state's follow sets.\fbreak
+Read the production's string positioned by it's passed parameter.
+The right bounded condition is whether the last symbol in the string is a rule
+before the ``eosubrule''. This demands that the closure productions caused by this rule
+within the state
+must also be generated as part of the being gened closure state.
+
+A subtle condition arises when the string's balance of symbols contains only rules
+that are all epsilonable. This moves the right bounded condition
+into the interior of the production currently positioned.
+Why? Epsilon is a window that allows one to see past its contents into the next adjacent
+symbol. This is inductive as it moves right thru all the epsilon rules to
+ the end-of-string.
+ Thus each rule's follow set strings transitizes rightward along
+ the production's string to its end and then up the follow sets of its spawning
+ closure rule's environment.\fbreak
+ \fbreak
+ Please note, the thread call variants do not support right-bounded expressions.
+ U'll never have a rule following the thread call prase --- this is a parsing error.
+@<Structure implementations@>+=
+bool state::is_str_rt_bnded(AST* Str){
+ AST* rstr_t = AST::brother(*Str);// get next node
+ if(rstr_t == 0) return false;// eosubule passed in for verification
+ CAbs_lr1_sym* sym = AST::content(*rstr_t);
+ Voc_ENO id = sym->enumerated_id__;
+ if(id == T_Enum::T_T_eosubrule_){
+ CAbs_lr1_sym* rsym = AST::content(*Str);
+ if(rsym->enumerated_id__ == T_Enum::T_refered_rule_){
+ return true;
+ }
+ }
+ return is_str_epsilonable(rstr_t);
+}
+@*2 |is_str_epsilonable|.\fbreak
+The symbol string passed is one to the right
+of the current item within the state called the ``follow string''.
+From this point within the production string,
+ the balance of the symbols must be composed of
+ ``refered-rule'' having the epsilon attribute.
+Remember: the grammar is internally represented by a tree where
+each node of a production contains a ``refered-rule'', ``refered-T'', or an ``eosubrule''.
+Thread calls is not applicable. It is never epsilonable.
+@<Structure implementations@>+=
+bool state::is_str_epsilonable(AST* Str){
+ AST* str_t = Str;
+ for(;str_t != 0;str_t = AST::brother(*str_t)){
+ CAbs_lr1_sym* sym = AST::content(*str_t);
+ Voc_ENO id = sym->enumerated_id__;
+ @<is str's element epsilon@>;
+ }
+ return true;
+}
+
+@*3 Is str's element epsilon?.\fbreak
+The tree node's symbol must be a rule or ``eosubrule''.
+``eosubrule'' indicates
+either the empty string (epsilon) where it is the only symbol within
+the production
+or the end of the production's string of symbols.
+@<is str's element epsilon@>=
+ switch(id){
+ case T_Enum::T_refered_rule_:{
+ @<get cast referenced rule@>;
+ rule_def* rd = rr->its_rule_def();
+ if(rd->epsilon() != true) return false;
+ break;
+ }
+ case T_Enum::T_T_eosubrule_:{
+ return true;
+ }
+ case T_Enum::T_refered_T_:{
+ return false;
+ }
+ }
+
+@*1 {\bf{Follow set routines}}.
+@*2 |add_rule_to_follow_list|.
+@<Structure implementations@>+=
+ void state::add_rule_to_follow_list(RULE_ENO Refered_rule){
+ FOLLOW_RULES_ITER_type i = follow_rule_list_.find(Refered_rule);
+ if(i == follow_rule_list_.end()){
+ follow_rule_list_.insert(Refered_rule);
+ }
+}
+
+@*2 |create_follow_sets_of_state|.\fbreak
+The list contains the rule's enumerate value.
+This is used to get the |state_s_vector_[rule no]| context
+that makes up the state.
+ It supplies the context in the subrule(s) where it resides.
+The follow set is
+calculated from the symbol string(s) to the right of these subrule context.
+@<Structure implementations@>+=
+void state::create_follow_sets_of_state(){
+ if(follow_rule_list_.empty() == true) return;
+ RULE_ENO eno(-1);
+ FOLLOW_RULES_ITER_type i = follow_rule_list_.begin();
+ FOLLOW_RULES_ITER_type ie = follow_rule_list_.end();
+ for(;i!=ie;++i){// create initial follow set map entries
+ follow_element* fe = new follow_element(this);
+ eno = *i;
+ fe->rule_no_ = eno;
+ state_s_follow_set_map_[eno] = fe;
+ }
+
+ i = follow_rule_list_.begin();
+ for(;i!=ie;++i){// read rules
+ eno = *i;
+ S_VECTORS_ITER_type j = state_s_vector_.find(eno);
+ S_FOLLOW_SETS_ITER_type fsi = state_s_follow_set_map_.find(eno);
+ follow_element* fe = fsi->second;
+
+ S_VECTOR_ELEMS_ITER_type k = j->second.begin();
+ S_VECTOR_ELEMS_ITER_type ke = j->second.end();
+ for(;k!=ke;++k){// read subrule context
+ state_element* se = *k;
+ @<get subrule's referenced rule in follow string@>;
+ AST* follow_str_t = AST::brother(*se->sr_element_);
+ deal_with_follow_str_sym:;
+ fe->rule_def_t_ = rr->its_rule_def()->rule_s_tree();
+ fe->add_follow_set_contributor(follow_str_t);
+ CAbs_lr1_sym* sym = AST::content(*follow_str_t);
+ Voc_ENO id = sym->enumerated_id__;
+ @<deal with current follow string element@>;
+ }
+ }
+}
+@
+@<deal with current follow string element@>=
+ switch(id){
+ case T_Enum::T_refered_rule_:{
+ @<get cast referenced rule@>;
+ rule_def* rd = rr->its_rule_def();
+ if(rd->first_set()->empty() != true){
+ FIRST_SET_ITER_type a = rd->first_set()->begin();
+ FIRST_SET_ITER_type ae = rd->first_set()->end();
+ for(;a!=ae;++a){
+ T_in_stbl* t = *a;
+ if(fe->follow_set_.find(t)== fe->follow_set_.end()){
+ fe->follow_set_.insert(t);
+ }
+ }
+ }
+ if(rd->epsilon() == true){// next follow str symbol
+ follow_str_t = AST::brother(*follow_str_t);
+ goto deal_with_follow_str_sym;
+ }
+ break;
+ }
+ case T_Enum::T_T_eosubrule_:{
+ @<get cast referenced eosubrule@>;
+ fe->add_follow_set_transition(*se,*eos);
+ break;
+ }
+ case T_Enum::T_T_null_call_thread_eosubrule_:{
+ break;
+ }
+ case T_Enum::T_T_called_thread_eosubrule_:{
+ break;
+ }
+ case T_Enum::T_refered_T_:{
+ @<get cast referenced T@>;
+ fe->follow_set_.insert(rt->t_in_stbl());
+ break;
+ }
+ }
+
+@
+@<get subrule's referenced rule in follow string@>=
+ @=refered_rule* rr = (refered_rule*)AST::content(*se->sr_element_);@>@/
+@
+@<get cast referenced rule@>=
+ @=refered_rule* rr = (refered_rule*)sym;@>@/
+
+@
+@<get cast referenced T@>=
+ @=refered_T* rt = (refered_T*)sym;@>@/
+
+@
+@<get cast referenced eosubrule@>=
+ @=T_eosubrule* eos = (T_eosubrule*)sym;@>@/
+@
+@<get cast referenced null called thread eosubrule@>=
+ @=T_null_call_thread_eosubrule* eos = (T_null_call_thread_eosubrule*)sym;@>@/
+@
+@<get cast referenced called thread eosubrule@>=
+ @=T_called_thread_eosubrule* eos = (T_called_thread_eosubrule*)sym;@>@/
+
+@*2 |crt_start_rule_s_follow_set|.\fbreak
+What is the follow set for the Start rule and should there be one anyway?
+There is only the empty string so what's it follow string? Empty?
+Here's the scoop. A monolithic grammar force an ``eolr'' terminal. This covers
+the end-of-the grammar process and homogenizes it in the same manner as threaded grammars.
+For the thread grammar
+use its calculated ``parallel-la-boundary'' expression.
+This is its follow set.
+The second question raised allows the Start rule's productions to
+reduce as accepted.
+@<Structure implementations@>+=
+ void state::crt_start_rule_s_follow_set(AST& Start_rule){
+ CAbs_lr1_sym* sym = AST::content(Start_rule);
+ @=rule_def* rd = (rule_def*)sym;@>;
+ RULE_ENO rno = rd->enum_id();
+ follow_element* fe = new follow_element(this);
+ fe->rule_no_ = rno;
+ state_s_follow_set_map_[rno] = fe;
+ fe->rule_def_t_ = rd->rule_s_tree();
+ if(O2_PP_PHASE == 0){// monolithic: use eolr not eog
+ fe->follow_set_.insert(STBL_T_ITEMS[LR1_EOLR]);
+ }else{// thread: use calculate lookahead expression
+ T_parallel_parser_phrase* pp_ph = O2_PP_PHASE;
+ T_parallel_la_boundary* la = pp_ph->la_bndry();
+ LA_SET_ITER_type i = la->la_first_set()->begin();
+ LA_SET_ITER_type ie = la->la_first_set()->end();
+ for(;i!=ie;++i){
+ T_in_stbl* t = *i;
+ FOLLOW_SETS_ITER_type j = fe->follow_set_.find(t);
+ if(j == fe->follow_set_.end()){
+ fe->follow_set_.insert(t);
+ }
+ }
+ }
+
+ }
+
+@*1 {\bf{For tracing facilities}}.
+@*2 |entry_symbol_literal|.\fbreak
+@<Structure implementations@>+=
+ const char* state::entry_symbol_literal(){
+ if(vectored_into_by_elem_sym_ == 0) return " No symbol";
+ @<return entry symbol literal@>;
+ }
+
+@*3 Return entry symbol literal.\fbreak
+Eases tracing of lr states easier instead of just displaying its enumerated value.
+@<return entry symbol literal@>=
+ Voc_ENO id = vectored_into_by_elem_sym_->enumerated_id__;
+ CAbs_lr1_sym* sym = vectored_into_by_elem_sym_;
+ switch(id){
+ case T_Enum::T_rule_def_:{
+ @=rule_def* rd = (rule_def*)sym;@>@/
+ return rd->rule_name()->c_str();
+ }
+ case T_Enum::T_T_eosubrule_:{
+ return "eos";
+ break;
+ }
+ case T_Enum::T_T_null_call_thread_eosubrule_:{
+ return "null-eos";
+ break;
+ }
+ case T_Enum::T_T_called_thread_eosubrule_:{
+ return "called-thd-eos";
+ break;
+ }
+ case T_Enum::T_T_terminal_def_:{
+ @=T_terminal_def* td = (T_terminal_def*)sym;@>@/
+ return td->t_name()->c_str();
+ }
+ default:{// cuz apple's latest compiler: symantic analysis error-never reached
+ return "null-eos";
+ break;
+ }
+ }
+
+@** Emit FSA, FSC, and Documents of grammar.\fbreak
+Finally.
+This is a hodge/podge of routines to emit the ``cpp'' code,
+``first set control'' file for \o2{}linker, and
+various documents to be run thru the ``mpost, cweave, and pdftex' stages.
+A caution, under my Sun Solaris system, the ``Adobe 3rd party Readers'' like
+``gpdf and xpdf'' occassionally throw tantrums.
+I'll look into these after finishing \O2.
+
+
+@*3 Output enumeration header file.
+@<output enumeration header file@>=
+ lrclog << "Output enumeration header file " << endl;
+ OP_ENUMERATION_HEADER(Error_queue);
+ @<if error queue not empty then deal with posted errors@>;
+
+@*3 Output Errors file.
+@<output Errors files@>=
+if(ERR_SW == 'y'){
+ lrclog << "Output Errors vocabulary files " << endl;
+ OP_ERRORS_HEADER(Error_queue);
+ OP_ERRORS_CPP(Error_queue);
+ @<if error queue not empty then deal with posted errors@>;
+}
+
+@*3 Output User Terminals files.
+@<output User Terminals files@>=
+if(T_SW == 'y'){
+ lrclog << "Output User Terminal vocabulary files " << endl;
+ OP_USER_T_HEADER(Error_queue);
+ OP_USER_T_CPP(Error_queue);
+ @<if error queue not empty then deal with posted errors@>;
+}
+
+@*3 Output grammar header file.
+ @<output grammar header file@>=
+ lrclog << "Output grammar header file " << endl;
+ OP_GRAMMAR_HEADER(Error_queue);
+ @<if error queue not empty then deal with posted errors@>;
+
+@*3 Output grammar cpp file.
+ @<output grammar cpp file@>=
+ lrclog << "Output grammar cpp file " << endl;
+ OP_GRAMMAR_CPP(Error_queue);
+ @<if error queue not empty then deal with posted errors@>;
+@*3 Output grammar sym file.
+ @<output grammar sym file@>=
+ lrclog << "Output grammar sym file " << endl;
+ OP_GRAMMAR_SYM(Error_queue);
+ @<if error queue not empty then deal with posted errors@>;
+@*3 Output grammar tbl file.
+ @<output grammar tbl file@>=
+ lrclog << "Output grammar tbl file " << endl;
+ OP_GRAMMAR_TBL(Error_queue);
+ @<if error queue not empty then deal with posted errors@>;
+
+@*3 Output T-alphabet file.
+@<output T-alphabet file@>=
+if(T_SW == 'y' || ERR_SW == 'y'){
+ lrclog << "Output User Terminal vocabulary files " << endl;
+ OP_T_Alphabet(Error_queue);
+ @<if error queue not empty then deal with posted errors@>;
+}
+
+@*3 Documents --- Grammar's Cweb and Mpost diagrams, and Cross references.\fbreak
+@<emit documents@>=
+if(PRT_SW == 'y'){
+ @<emit Cweb and Mpost files@>
+ @<print out xref docs@>
+}
+@*4 Emit Cweb and Mpost diagrams.\fbreak
+This is my attempt at producing grammar reports by |mpost| diagrams and |cweave|.
+Of course, this is recursive in that cweb uses |cweave| to generate code
+with a simple attempt at grammar's railroad diagrams.
+To do this,
+a new comment type was created --- ``/@@'' -- ``@@/'' to include
+the |cweb| directives declaring how the
+document's formatting will look like with its table of contents.
+The comment is a play on |cweave|'s directives.
+They can be sprinkled thru out the grammar except
+within the syntax-directed code constructs as
+u know, this is a character at a time lex crawler with little
+knowledge of c$++$ syntax apart from comments, literals, and strings.
+Once u become familiar with |cweave|,
+u'll never go back to base comments --- aka c$++$.
+The files emitted take on the file naming format of:\fbreak
+\ptindent{1) grammar name without its extension ``.lex'' for the filename body}
+\ptindent{2) ``.mp'' mpost extension}
+\ptindent{3) ``.w''cweb extension}
+
+As an example, a grammar of ``eol.lex'' would produce the |mpost| file 'eol.mp'
+and |cweb| file `eol.w'.
+These files are run thru |mpost| and |cweave| followed by |pdftex|
+to produce the 'pdf' grammar document.
+|mpost| generates from 'eol.mp' its figure files with numeric extensions like 'eol.1'
+that are referenced in the |cweb| file `eol.w' using the |convertMPtoPDF| macro.
+
+@<emit Cweb and Mpost files@>=
+ using namespace yacco2;
+ using namespace NS_yacco2_k_symbols;@/
+ using namespace NS_mpost_output;@/
+ lrclog << "Emit grammar's railroad diagrams for Mpost" << endl;@/
+ set<int> cweb_k_filter;@/
+ cweb_k_filter.insert(T_Enum::T_T_cweb_comment_);
+ tok_can_ast_functor mpost_just_walk_functr;
+ ast_prefix mpost_rule_walk(*GRAMMAR_TREE,&mpost_just_walk_functr,&cweb_k_filter,BYPASS_FILTER);
+ tok_can<AST*> mpost_rules_can(mpost_rule_walk);
+ Cmpost_output mpost_fsm;
+ T_fsm_phrase* fsm_ph = O2_FSM_PHASE;
+ mpost_fsm.grammar_filename_prefix_ += fsm_ph->filename_id()->identifier()->c_str();
+ mpost_fsm.fq_filename_noext_ += o2_fq_fn_noext.c_str();
+
+ Parser mpost_rules(mpost_fsm,&mpost_rules_can,0,0,&Error_queue);
+ mpost_rules.parse();
+
+@*4 Print out xref docs.\fbreak
+\ptindent{1) cross reference of used symbols: grammar's vocabulary}
+\ptindent{2) grammar's rules first sets}
+@<print out xref docs@>=
+ using namespace NS_prt_xrefs_docs;
+ yacco2::lrclog << "----- Print xref docs -----" << std::endl;
+ @=set<int> prt_xrefs_docs_filter;@>@/
+ prt_xrefs_docs_filter.insert(T_Enum::T_rule_def_);
+ prt_xrefs_docs_filter.insert(T_Enum::T_T_subrule_def_);
+ prt_xrefs_docs_filter.insert(T_Enum::T_refered_T_);
+ prt_xrefs_docs_filter.insert(T_Enum::T_refered_rule_);
+ prt_xrefs_docs_filter.insert(T_Enum::T_T_called_thread_eosubrule_);
+ prt_xrefs_docs_filter.insert(T_Enum::T_T_null_call_thread_eosubrule_);
+ prt_xrefs_docs_filter.insert(T_Enum::T_T_eosubrule_);
+
+ tok_can_ast_functor xrefs_docs_walk_functr;
+ ast_prefix prt_xrefs_docs_walk(*rules_tree
+ ,&xrefs_docs_walk_functr,&prt_xrefs_docs_filter,ACCEPT_FILTER);@/
+ tok_can<AST*> prt_xrefs_docs_can(prt_xrefs_docs_walk);
+ Cprt_xrefs_docs prt_xrefs_docs_fsm;
+ prt_xrefs_docs_fsm.grammar_filename_prefix_ += mpost_fsm.grammar_filename_prefix_;
+ prt_xrefs_docs_fsm.fq_filename_noext_ += o2_fq_fn_noext.c_str();
+ Parser prt_xrefs_docs(prt_xrefs_docs_fsm,&prt_xrefs_docs_can,0,0,&Error_queue);
+ prt_xrefs_docs.parse();
+
+@*3 Emit FSC file.\fbreak
+Let the linker know what's happening with the grammar's first set
+for the linker.
+@<emit fsc file@>=
+ OP_FSC_FILE(Error_queue);
+
+@*2 Driver to emit FSA, FSC, and Documents of grammar.
+@<emit FSA, FSC, and Documents of grammar@>=
+//|@<print grammar tree@>;|
+@<output enumeration header file@>;
+@<output Errors files@>;
+@<output User Terminals files@>;
+@<output T-alphabet file@>;
+@<output grammar header file@>;
+@<output grammar cpp file@>;
+@<output grammar sym file@>;
+@<output grammar tbl file@>;
+@<emit fsc file@>;
+@<emit documents@>;
+
+@** Print routines.
+@*2 Print tree structure of rules.
+@<print tree@>=
+ yacco2::lrclog << "Tree dump of grammar" << std::endl;
+ prt_ast_functor prt_functr(&PRINT_RULES_TREE_STRUCTURE);
+ ast_prefix pre(*GRAMMAR_TREE,&prt_functr);
+ while (pre.base_stk_.cur_stk_rec() != 0){
+ pre.exec();
+ }
+
+@*2 Print grammar tree.
+@<print grammar tree@>=
+ yacco2::lrclog << "Grammar Tree dump" << std::endl;
+ prt_ast_functor prt_grammar_functr(&PRINT_GRAMMAR_TREE);
+ ast_prefix prefix_grammar(*GRAMMAR_TREE,&prt_grammar_functr);
+ tok_can<AST*> pt_can(prefix_grammar);
+ int n(-1);
+ for(;pt_can[++n] != NS_yacco2_k_symbols::PTR_LR1_eog__;);
+
+@*2 Print dump common states.
+@<print dump common states@>=
+LR1_STATES_ITER_type ci = LR1_COMMON_STATES.begin();
+LR1_STATES_ITER_type cie = LR1_COMMON_STATES.end();
+yacco2::lrclog << "Common States dump" << std::endl;
+int cstate_no(0);
+for(;ci!=cie;++ci){
+ ++cstate_no;
+ STATES_ITER_type si = ci->second.begin();
+ STATES_ITER_type sie = ci->second.end();
+ bool pre = false;
+ for(;si!=sie;++si){
+ state* cstate = *si;
+ if(pre == false){
+ pre = true;
+ yacco2::lrclog << cstate_no << "::Common State: " << cstate->vectored_into_by_elem_;
+ if(cstate->vectored_into_by_elem_sym_ == 0){
+ yacco2::lrclog << " Entry Symbol: No symbol" << std::endl;
+ }else{
+ yacco2::lrclog << " Entry Symbol: " << cstate->entry_symbol_literal() << std::endl;
+ }
+ }
+ yacco2::lrclog << "\tstate no: " << cstate->state_no_ << std::endl;
+ }
+ yacco2::lrclog << std::endl;
+}
+
+
+@*2 Print dump state.
+@<print dump state@>=
+const char* literal_name;
+yacco2::lrclog << std::endl;
+yacco2::lrclog << "State dump" << std::endl;
+si = LR1_STATES.begin();
+sie = LR1_STATES.end();
+for(;si!=sie;++si){
+ state* cur_state = *si;
+ Print_dump_state(cur_state);
+}
+
+@*2 Some tracing facilities.
+@*3 Increment and printout Recursion counter.
+@<Increment and printout Recursion counter@>=
+@<Increment Recursion counter@>;
+@<Printout Recursion counter@>;
+
+@*3 Increment Recursion counter.
+@<Increment Recursion counter@>=
+++RECURSION_INDEX__;
+@*3 Printout Recursion counter.
+@<Printout Recursion counter@>=
+for(int y__(1);y__<=RECURSION_INDEX__;++y__) lrclog << '.';
+@*3 Decrement Recursion counter.
+@<Decrement Recursion counter@>=
+--RECURSION_INDEX__;
+
+@** Write out |o2_defs.cpp| Structure implementations.\fbreak
+@(o2_defs.cpp@>=
+#include "o2.h"
+@<Structure implementations@>;
diff --git a/web/yacco2/compiler/o2/o2_externs.cpp b/web/yacco2/compiler/o2/o2_externs.cpp
new file mode 100644
index 0000000000..1011632ec6
--- /dev/null
+++ b/web/yacco2/compiler/o2/o2_externs.cpp
@@ -0,0 +1,7278 @@
+/*7:*/
+//line 178 "./o2externs.w"
+
+/*6:*/
+//line 175 "./o2externs.w"
+
+#include "o2_externs.h"
+/*:6*/
+//line 179 "./o2externs.w"
+
+/*8:*/
+//line 184 "./o2externs.w"
+
+RULES_HAVING_AR_type RULES_HAVING_AR;
+COMMON_LA_SETS_type COMMON_LA_SETS;
+T_fsm_phrase*O2_FSM_PHASE(0);
+T_parallel_parser_phrase*O2_PP_PHASE(0);
+T_enum_phrase*O2_T_ENUM_PHASE(0);
+T_lr1_k_phrase*O2_LRK_PHASE(0);
+T_rc_phrase*O2_RC_PHASE(0);
+T_error_symbols_phrase*O2_ERROR_PHASE(0);
+T_terminals_phrase*O2_T_PHASE(0);
+T_rules_phrase*O2_RULES_PHASE(0);
+
+yacco2::AST*CWEB_MARKER(0);
+yacco2::AST*GRAMMAR_TREE(0);
+RULE_ENO START_OF_RULES_ENUM(-1);
+extern STBL_T_ITEMS_type STBL_T_ITEMS;
+/*:8*//*10:*/
+//line 204 "./o2externs.w"
+
+void prescan_mpname_for_cweb(std::string&In,std::string&Out){
+int len= In.length();
+for(int x= 0;x<len;++x){
+switch(In[x]){
+case' ':{
+Out+= '.';
+break;
+}
+case'\\':{
+if(x+1<len){
+if(In[x+1]=='\\'){
+Out+= In[x];
+++x;
+break;
+}
+Out+= In[x];
+break;
+}else{
+Out+= In[x];
+break;
+}
+}
+default:{
+Out+= In[x];
+break;
+}
+}
+}
+}
+
+/*:10*//*11:*/
+//line 236 "./o2externs.w"
+
+extern void Print_dump_state(state*State){
+/*12:*/
+//line 240 "./o2externs.w"
+
+const char*literal_name;
+yacco2::lrclog<<std::endl;
+yacco2::lrclog<<"->State: ";
+state*cur_state= State;
+literal_name= cur_state->entry_symbol_literal();
+
+yacco2::lrclog<<cur_state->state_no_<<" Entry: "<<
+cur_state->vectored_into_by_elem_
+<<" Symbol: "
+<<literal_name;
+if(cur_state->closure_state_birthing_it_!=0){
+yacco2::lrclog<<" Birthing closure state: "
+<<cur_state->closure_state_birthing_it_->state_no_;
+}
+yacco2::lrclog<<std::endl;
+yacco2::lrclog<<" Follow set:"<<std::endl;
+S_FOLLOW_SETS_ITER_type sfi= cur_state->state_s_follow_set_map_.begin();
+S_FOLLOW_SETS_ITER_type sfie= cur_state->state_s_follow_set_map_.end();
+for(;sfi!=sfie;++sfi){
+follow_element*fe= sfi->second;
+rule_def* rd = (rule_def*)AST::content(*fe->rule_def_t_);
+yacco2::lrclog<<" Rule no: "<<fe->rule_no_
+<<" Name: "<<rd->rule_name()->c_str()<<std::endl;
+
+FOLLOW_SETS_ITER_type i= fe->follow_set_.begin();
+FOLLOW_SETS_ITER_type ie= fe->follow_set_.end();
+if(i!=ie){
+yacco2::lrclog<<" follow set:"<<endl;
+yacco2::lrclog<<" ";
+}
+int nos(1);
+for(;i!=ie;++i){
+T_in_stbl*tit= *i;
+++nos;
+if(nos> 15){
+yacco2::lrclog<<endl;
+yacco2::lrclog<<"\t\t";
+nos= 1;
+}
+yacco2::lrclog<<tit->t_def()->t_name()->c_str()<<" ";
+}
+
+TRANSITIONS_ITER_type j= fe->transitions_.begin();
+TRANSITIONS_ITER_type je= fe->transitions_.end();
+if(j!=je){
+yacco2::lrclog<<" transitions"<<endl;
+}
+for(;j!=je;++j){
+follow_element*tfe= *j;
+rule_def* rd = (rule_def*)AST::content(*tfe->rule_def_t_);
+yacco2::lrclog<<" S"<<tfe->its_state_->state_no_
+<<"x"<<rd->rule_name()->c_str()<<endl;
+}
+MERGES_ITER_type k= fe->merges_.begin();
+MERGES_ITER_type ke= fe->merges_.end();
+if(k!=ke){
+yacco2::lrclog<<" merges"<<endl;
+}
+for(;k!=ke;++k){
+state*s= *k;
+yacco2::lrclog<<" S"<<s->state_no_<<" ";
+}
+yacco2::lrclog<<endl;
+}
+yacco2::lrclog<<" Vectors:"<<std::endl;
+S_VECTORS_ITER_type svi= cur_state->state_s_vector_.begin();
+S_VECTORS_ITER_type svie= cur_state->state_s_vector_.end();
+for(;svi!=svie;++svi){
+yacco2::lrclog<<" Symbol no: "<<svi->first;
+
+int first_time(0);
+S_VECTOR_ELEMS_ITER_type seli= svi->second.begin();
+S_VECTOR_ELEMS_ITER_type selie= svi->second.end();
+for(;seli!=selie;++seli){
+state_element*se= *seli;
+if(first_time==0){
+first_time= 1;
+CAbs_lr1_sym*sym= AST::content(*se->sr_element_);
+yacco2::lrclog<<" Symbol: ";
+switch(sym->enumerated_id__){
+case T_Enum::T_refered_rule_:{
+/*16:*/
+//line 484 "./o2externs.w"
+
+refered_rule* rr = (refered_rule*)sym;
+/*:16*/
+//line 322 "./o2externs.w"
+
+rule_def*rd= rr->its_rule_def();
+yacco2::lrclog<<rd->rule_name()->c_str()<<endl;
+break;
+}
+case T_Enum::T_refered_T_:{
+/*17:*/
+//line 487 "./o2externs.w"
+
+refered_T* rt = (refered_T*)sym;
+
+/*:17*/
+//line 328 "./o2externs.w"
+
+T_terminal_def*td= rt->its_t_def();
+yacco2::lrclog<<td->t_name()->c_str()<<endl;
+break;
+}
+default:{
+yacco2::lrclog<<sym->id()<<endl;
+break;
+}
+
+}
+
+}
+/*13:*/
+//line 356 "./o2externs.w"
+
+CAbs_lr1_sym*sym= AST::content(*se->sr_element_);
+Voc_ENO id= sym->enumerated_id__;
+/*14:*/
+//line 362 "./o2externs.w"
+
+switch(id){
+case T_Enum::T_refered_rule_:{
+/*16:*/
+//line 484 "./o2externs.w"
+
+refered_rule* rr = (refered_rule*)sym;
+/*:16*/
+//line 365 "./o2externs.w"
+
+yacco2::lrclog<<" RxSRxPos: "<<rr->grammar_s_enumerate()->c_str();
+rule_def*rd= rr->its_rule_def();
+yacco2::lrclog<<" "<<rd->rule_name()->c_str();
+break;
+}
+case T_Enum::T_T_eosubrule_:{
+/*18:*/
+//line 491 "./o2externs.w"
+
+T_eosubrule* eos = (T_eosubrule*)sym;
+/*:18*/
+//line 372 "./o2externs.w"
+
+if(se->la_set_!=0){
+LA_SET_ITER_type i= se->la_set_->begin();
+LA_SET_ITER_type ie= se->la_set_->end();
+int nos(1);
+if(i!=ie){
+yacco2::lrclog<<" reduce set #: "<<se->common_la_set_idx_<<endl;
+yacco2::lrclog<<" ";
+for(;i!=ie;++i){
+T_in_stbl*tit= *i;
+++nos;
+if(nos> 15){
+yacco2::lrclog<<endl;
+yacco2::lrclog<<" ";
+nos= 1;
+}
+yacco2::lrclog<<tit->t_def()->t_name()->c_str()<<" ";
+}
+yacco2::lrclog<<endl;}else{
+yacco2::lrclog<<" reduce set #: Empty see following transition"<<endl;
+}
+}
+yacco2::lrclog<<" RxSRxPos: "<<eos->grammar_s_enumerate()->c_str();
+rule_def*rd= eos->its_rule_def();
+yacco2::lrclog<<" Eos of "<<rd->rule_name()->c_str();
+break;
+}
+case T_Enum::T_T_null_call_thread_eosubrule_:{
+/*19:*/
+//line 494 "./o2externs.w"
+
+T_null_call_thread_eosubrule* eos = (T_null_call_thread_eosubrule*)sym;
+/*:19*/
+//line 400 "./o2externs.w"
+
+if(se->la_set_!=0){
+LA_SET_ITER_type i= se->la_set_->begin();
+LA_SET_ITER_type ie= se->la_set_->end();
+int nos(1);
+if(i!=ie){
+yacco2::lrclog<<" reduce set #: "<<se->common_la_set_idx_<<endl;
+yacco2::lrclog<<" ";
+for(;i!=ie;++i){
+T_in_stbl*tit= *i;
+++nos;
+if(nos> 15){
+yacco2::lrclog<<endl;
+yacco2::lrclog<<" ";
+nos= 1;
+}
+yacco2::lrclog<<tit->t_def()->t_name()->c_str()<<" ";
+}
+yacco2::lrclog<<endl;
+}else{
+yacco2::lrclog<<" reduce set #: Empty see following transition"<<endl;
+}
+}
+yacco2::lrclog<<" RxSRxPos: "<<eos->grammar_s_enumerate()->c_str();
+rule_def*rd= eos->its_rule_def();
+yacco2::lrclog<<" Eos of "<<rd->rule_name()->c_str();
+break;
+}
+case T_Enum::T_T_called_thread_eosubrule_:{
+/*20:*/
+//line 497 "./o2externs.w"
+
+T_called_thread_eosubrule* eos = (T_called_thread_eosubrule*)sym;
+
+
+/*:20*/
+//line 429 "./o2externs.w"
+
+if(se->la_set_!=0){
+LA_SET_ITER_type i= se->la_set_->begin();
+LA_SET_ITER_type ie= se->la_set_->end();
+int nos(1);
+if(i!=ie){
+yacco2::lrclog<<" reduce set #: "<<se->common_la_set_idx_<<endl;
+yacco2::lrclog<<" ";
+for(;i!=ie;++i){
+T_in_stbl*tit= *i;
+++nos;
+if(nos> 15){
+yacco2::lrclog<<endl;
+yacco2::lrclog<<" ";
+nos= 1;
+}
+yacco2::lrclog<<tit->t_def()->t_name()->c_str()<<" ";
+}
+yacco2::lrclog<<endl;
+}else{
+yacco2::lrclog<<" reduce set #: Empty see following transition"<<endl;
+}
+}
+yacco2::lrclog<<" RxSRxPos: "<<eos->grammar_s_enumerate()->c_str();
+rule_def*rd= eos->its_rule_def();
+yacco2::lrclog<<" Eos of "<<rd->rule_name()->c_str();
+break;
+}
+case T_Enum::T_refered_T_:{
+/*17:*/
+//line 487 "./o2externs.w"
+
+refered_T* rt = (refered_T*)sym;
+
+/*:17*/
+//line 458 "./o2externs.w"
+
+yacco2::lrclog<<" RxSRxPos: "<<rt->grammar_s_enumerate()->c_str();
+T_terminal_def*td= rt->its_t_def();
+yacco2::lrclog<<" "<<td->t_name()->c_str();
+break;
+}
+}
+yacco2::lrclog<<" Closured S"<<se->closure_state_->state_no_;
+yacco2::lrclog<<" CS-gening-it S"<<se->closured_state_gening_it_->state_no_;
+if(se->closure_state_->state_no_!=se->closured_state_gening_it_->state_no_){
+yacco2::lrclog<<" due to rt bnd ";
+}
+if(se->goto_state_!=0){
+yacco2::lrclog<<" goto S"<<se->goto_state_->state_no_;
+}
+if(se->reduced_state_!=0){
+yacco2::lrclog<<" reduced S"<<se->reduced_state_->state_no_;
+yacco2::lrclog<<std::endl;
+}else{
+yacco2::lrclog<<" reduced S"<<"????";
+yacco2::lrclog<<std::endl;
+}
+/*:14*/
+//line 359 "./o2externs.w"
+
+
+/*:13*/
+//line 341 "./o2externs.w"
+
+}
+}
+if(cur_state->state_s_conflict_state_list_.empty()!=true){
+yacco2::lrclog<<" ===>Conflict states:"<<std::endl;
+S_CONFLICT_STATES_ITER_type csi= cur_state->state_s_conflict_state_list_.begin();
+S_CONFLICT_STATES_ITER_type csie= cur_state->state_s_conflict_state_list_.end();
+for(;csi!=csie;++csi){
+state*cstate= *csi;
+yacco2::lrclog<<" State no: "<<cstate->state_no_<<endl;
+}
+}
+yacco2::lrclog<<"End of state"<<std::endl;
+
+/*:12*/
+//line 238 "./o2externs.w"
+
+}
+/*:11*//*21:*/
+//line 571 "./o2externs.w"
+
+bool
+process_fsm_phrase
+(yacco2::Parser&Calling_parser
+,NS_yacco2_terminals::T_fsm&Phrase_to_parse
+,yacco2::CAbs_lr1_sym**Cont_tok
+,yacco2::INT*Cont_pos)
+{
+using namespace NS_yacco2_terminals;
+using namespace yacco2;
+TOKEN_GAGGLE op1;
+yacco2::INT start_pos= Calling_parser.current_token_pos__;
+token_container_type*ip1= Calling_parser.token_supplier();
+TOKEN_GAGGLE*er1= (TOKEN_GAGGLE*)Calling_parser.error_queue();
+
+using namespace NS_fsm_phrase;
+Cfsm_phrase fsm;
+Parser p1(fsm,ip1,&op1,start_pos,er1);
+p1.parse();
+
+if(er1->empty()==YES){
+*Cont_pos= p1.current_token_pos__;
+*Cont_tok= p1.current_token();
+TOKEN_GAGGLE_ITER i= op1.begin();
+CAbs_lr1_sym*sym= *i;
+T_fsm_phrase* t = (T_fsm_phrase*)sym;
+Phrase_to_parse.fsm_phrase(t);
+if(O2_FSM_PHASE!=0){
+CAbs_lr1_sym*sym= new Err_already_processed_fsm_phase;
+sym->set_rc(Phrase_to_parse);
+p1.add_token_to_error_queue(*sym);
+goto error_exit;
+}
+O2_FSM_PHASE= t;
+AST*gt= t->phrase_tree();
+BUILD_GRAMMAR_TREE(*gt);
+return Success;
+}
+error_exit:
+lrclog<<"error in fsm-phrase"<<std::endl;
+return Failure;
+}
+
+/*:21*//*22:*/
+//line 615 "./o2externs.w"
+
+void output_cweb_macros_and_banner(
+NS_mpost_output::Cmpost_output*Fsm
+,std::ofstream&Ofile
+,yacco2::KCHARP Banner
+,const char*Date
+,string*Grammar_name
+,string*Name_space
+,int No_t){
+using namespace NS_mpost_output;
+KCHARP macros=
+"\\input%s \"supp-pdf\"\n"
+"\\input \"/usr/local/yacco2/diagrams/o2mac.tex\"\n";
+int x= sprintf(Fsm->big_buf_,macros," ");
+Ofile.write(Fsm->big_buf_,x);
+KCHARP banner=
+"\\DOCtitle{%s}{%s}%\n"
+"{%s}{%i}\n";
+char fname[Max_cweb_item_size];
+XLATE_SYMBOLS_FOR_cweave(Grammar_name->c_str(),fname);
+char ns_name[Max_cweb_item_size];
+XLATE_SYMBOLS_FOR_cweave(Name_space->c_str(),ns_name);
+
+x= sprintf(Fsm->big_buf_,banner
+,Banner
+,fname,ns_name,No_t);
+Ofile.write(Fsm->big_buf_,x);
+}
+
+/*:22*//*23:*/
+//line 685 "./o2externs.w"
+
+bool
+process_parallel_parser_phrase
+(yacco2::Parser&Calling_parser
+,NS_yacco2_terminals::T_parallel_parser&Phrase_to_parse
+,yacco2::CAbs_lr1_sym**Cont_tok
+,yacco2::INT*Cont_pos)
+{
+using namespace NS_yacco2_terminals;
+using namespace yacco2;
+
+using namespace NS_parallel_parser_phrase;
+TOKEN_GAGGLE op1;
+yacco2::INT start_pos= Calling_parser.current_token_pos__;
+token_container_type*ip1= Calling_parser.token_supplier();
+TOKEN_GAGGLE*er1= (TOKEN_GAGGLE*)Calling_parser.error_queue();
+Cparallel_parser_phrase pparser;
+Parser p1(pparser,ip1,&op1,start_pos,er1);
+p1.parse();
+if(er1->empty()==YES){
+*Cont_pos= p1.current_token_pos__;
+*Cont_tok= p1.current_token();
+TOKEN_GAGGLE_ITER i= op1.begin();
+CAbs_lr1_sym*sym= *i;
+T_parallel_parser_phrase* t = (T_parallel_parser_phrase*)sym;
+Phrase_to_parse.parallel_parser_phrase(t);
+if(O2_PP_PHASE!=0){
+CAbs_lr1_sym*sym= new Err_already_processed_pp_phase;
+sym->set_rc(Phrase_to_parse);
+p1.add_token_to_error_queue(*sym);
+goto error_exit;
+}
+O2_PP_PHASE= t;
+AST*gt= t->phrase_tree();
+BUILD_GRAMMAR_TREE(*gt);
+return Success;
+}
+error_exit:
+lrclog<<"error in parallel-parser-phrase"<<std::endl;
+return Failure;
+}
+
+
+/*:23*//*24:*/
+//line 748 "./o2externs.w"
+
+bool
+process_T_enum_phrase
+(yacco2::Parser&Calling_parser
+,NS_yacco2_terminals::T_enumeration&Phrase_to_parse
+,yacco2::CAbs_lr1_sym**Cont_tok
+,yacco2::INT*Cont_pos)
+{
+using namespace NS_yacco2_terminals;
+using namespace yacco2;
+
+using namespace NS_T_enum_phrase;
+TOKEN_GAGGLE op1;
+yacco2::INT start_pos= Calling_parser.current_token_pos__;
+token_container_type*ip1= Calling_parser.token_supplier();
+TOKEN_GAGGLE*er1= (TOKEN_GAGGLE*)Calling_parser.error_queue();
+CT_enum_phrase enum_ph;
+Parser p1(enum_ph,ip1,&op1,start_pos,er1);
+p1.parse();
+if(er1->empty()==YES){
+*Cont_pos= p1.current_token_pos__;
+*Cont_tok= p1.current_token();
+TOKEN_GAGGLE_ITER i= op1.begin();
+CAbs_lr1_sym*sym= *i;
+T_enum_phrase* t = (T_enum_phrase*)sym;
+Phrase_to_parse.enum_phrase(t);
+if(O2_T_ENUM_PHASE!=0){
+CAbs_lr1_sym*sym= new Err_already_processed_T_enum_phase;
+sym->set_rc(Phrase_to_parse);
+p1.add_token_to_error_queue(*sym);
+goto error_exit;
+}
+O2_T_ENUM_PHASE= t;
+AST*gt= t->phrase_tree();
+BUILD_GRAMMAR_TREE(*gt);
+return Success;
+}
+error_exit:
+lrclog<<"error in t-enum-phrase"<<std::endl;
+return Failure;
+}
+
+/*:24*//*25:*/
+//line 811 "./o2externs.w"
+
+bool
+process_error_symbols_phrase
+(yacco2::Parser&Calling_parser
+,NS_yacco2_terminals::T_error_symbols&Phrase_to_parse
+,yacco2::CAbs_lr1_sym**Cont_tok
+,yacco2::INT*Cont_pos)
+{
+using namespace NS_yacco2_terminals;
+using namespace yacco2;
+
+using namespace NS_err_symbols_ph;
+TOKEN_GAGGLE op1;
+yacco2::INT start_pos= Calling_parser.current_token_pos__;
+token_container_type*ip1= Calling_parser.token_supplier();
+TOKEN_GAGGLE*er1= (TOKEN_GAGGLE*)Calling_parser.error_queue();
+Cerr_symbols_ph err_ph;
+Parser p1(err_ph,ip1,&op1,start_pos,er1);
+p1.parse();
+if(er1->empty()==YES){
+*Cont_pos= p1.current_token_pos__;
+*Cont_tok= p1.current_token();
+TOKEN_GAGGLE_ITER i= op1.begin();
+CAbs_lr1_sym*sym= *i;
+T_error_symbols_phrase* t = (T_error_symbols_phrase*)sym;
+Phrase_to_parse.error_symbols_phrase(t);
+if(O2_ERROR_PHASE!=0){
+CAbs_lr1_sym*sym= new Err_already_processed_error_phase;
+sym->set_rc(Phrase_to_parse);
+p1.add_token_to_error_queue(*sym);
+goto error_exit;
+}
+O2_ERROR_PHASE= t;
+AST*gt= t->phrase_tree();
+BUILD_GRAMMAR_TREE(*gt);
+return Success;
+}
+error_exit:
+lrclog<<"error in error-symbols-phrase"<<std::endl;
+return Failure;
+}
+
+
+/*:25*//*26:*/
+//line 873 "./o2externs.w"
+
+bool
+process_rc_phrase
+(yacco2::Parser&Calling_parser
+,NS_yacco2_terminals::T_raw_characters&Phrase_to_parse
+,yacco2::CAbs_lr1_sym**Cont_tok
+,yacco2::INT*Cont_pos)
+{
+using namespace NS_yacco2_terminals;
+using namespace yacco2;
+
+using namespace NS_rc_phrase;
+TOKEN_GAGGLE op1;
+yacco2::INT start_pos= Calling_parser.current_token_pos__;
+token_container_type*ip1= Calling_parser.token_supplier();
+TOKEN_GAGGLE*er1= (TOKEN_GAGGLE*)Calling_parser.error_queue();
+Crc_phrase rc_ph;
+Parser p1(rc_ph,ip1,&op1,start_pos,er1);
+p1.parse();
+if(er1->empty()==YES){
+*Cont_pos= p1.current_token_pos__;
+*Cont_tok= p1.current_token();
+TOKEN_GAGGLE_ITER i= op1.begin();
+CAbs_lr1_sym*sym= *i;
+T_rc_phrase* t = (T_rc_phrase*)sym;
+Phrase_to_parse.rc_phrase(t);
+if(O2_RC_PHASE!=0){
+CAbs_lr1_sym*sym= new Err_already_processed_rc_phase;
+sym->set_rc(Phrase_to_parse);
+p1.add_token_to_error_queue(*sym);
+goto error_exit;
+}
+O2_RC_PHASE= t;
+AST*gt= t->phrase_tree();
+BUILD_GRAMMAR_TREE(*gt);
+return Success;
+}
+error_exit:
+lrclog<<"error in rc-phrase"<<std::endl;
+return Failure;
+}
+
+
+/*:26*//*27:*/
+//line 935 "./o2externs.w"
+
+bool
+process_lr1_k_phrase
+(yacco2::Parser&Calling_parser
+,NS_yacco2_terminals::T_lr1_constant_symbols&Phrase_to_parse
+,yacco2::CAbs_lr1_sym**Cont_tok
+,yacco2::INT*Cont_pos)
+{
+using namespace NS_yacco2_terminals;
+using namespace yacco2;
+
+using namespace NS_lr1_k_phrase;
+TOKEN_GAGGLE op1;
+yacco2::INT start_pos= Calling_parser.current_token_pos__;
+token_container_type*ip1= Calling_parser.token_supplier();
+TOKEN_GAGGLE*er1= (TOKEN_GAGGLE*)Calling_parser.error_queue();
+Clr1_k_phrase lr_ph;
+Parser p1(lr_ph,ip1,&op1,start_pos,er1);
+p1.parse();
+if(er1->empty()==YES){
+*Cont_pos= p1.current_token_pos__;
+*Cont_tok= p1.current_token();
+TOKEN_GAGGLE_ITER i= op1.begin();
+CAbs_lr1_sym*sym= *i;
+T_lr1_k_phrase* t = (T_lr1_k_phrase*)sym;
+Phrase_to_parse.lr1_k_phrase(t);
+if(O2_LRK_PHASE!=0){
+CAbs_lr1_sym*sym= new Err_already_processed_lrk_phase;
+sym->set_rc(Phrase_to_parse);
+p1.add_token_to_error_queue(*sym);
+goto error_exit;
+}
+O2_LRK_PHASE= t;
+AST*gt= t->phrase_tree();
+BUILD_GRAMMAR_TREE(*gt);
+return Success;
+}
+error_exit:
+lrclog<<"error in lr1-k-phrase"<<std::endl;
+return Failure;
+}
+
+
+/*:27*//*28:*/
+//line 999 "./o2externs.w"
+
+bool
+process_terminals_phrase
+(yacco2::Parser&Calling_parser
+,NS_yacco2_terminals::T_terminals&Phrase_to_parse
+,yacco2::CAbs_lr1_sym**Cont_tok
+,yacco2::INT*Cont_pos)
+{
+using namespace NS_yacco2_terminals;
+using namespace yacco2;
+
+using namespace NS_terminals_phrase;
+TOKEN_GAGGLE op1;
+yacco2::INT start_pos= Calling_parser.current_token_pos__;
+token_container_type*ip1= Calling_parser.token_supplier();
+TOKEN_GAGGLE*er1= (TOKEN_GAGGLE*)Calling_parser.error_queue();
+Cterminals_phrase term_ph;
+Parser p1(term_ph,ip1,&op1,start_pos,er1);
+p1.parse();
+if(er1->empty()==YES){
+*Cont_pos= p1.current_token_pos__;
+*Cont_tok= p1.current_token();
+TOKEN_GAGGLE_ITER i= op1.begin();
+CAbs_lr1_sym*sym= *i;
+T_terminals_phrase* t = (T_terminals_phrase*)sym;
+Phrase_to_parse.terminals_phrase(t);
+if(O2_T_PHASE!=0){
+CAbs_lr1_sym*sym= new Err_already_processed_T_phase;
+sym->set_rc(Phrase_to_parse);
+p1.add_token_to_error_queue(*sym);
+goto error_exit;
+}
+O2_T_PHASE= t;
+AST*gt= t->phrase_tree();
+BUILD_GRAMMAR_TREE(*gt);
+return Success;
+}
+error_exit:
+lrclog<<"error in terminals-phrase"<<std::endl;
+return Failure;
+}
+
+
+/*:28*//*32:*/
+//line 1171 "./o2externs.w"
+
+bool
+process_rules_phrase
+(yacco2::Parser&Calling_parser
+,NS_yacco2_terminals::T_rules&Phrase_to_parse
+,yacco2::CAbs_lr1_sym**Cont_tok
+,yacco2::INT*Cont_pos)
+{
+/*30:*/
+//line 1138 "./o2externs.w"
+
+lrclog<<"Enumerate T alphabet"<<endl;
+using namespace NS_enumerate_T_alphabet;
+Cenumerate_T_alphabet enum_syms_fsm;
+Parser enum_syms(enum_syms_fsm,0,0,0,Calling_parser.error_queue(),0,0);
+enum_syms.parse();
+if(Calling_parser.error_queue()->empty()!=true)return Failure;
+
+/*:30*/
+//line 1179 "./o2externs.w"
+
+using namespace NS_yacco2_terminals;
+using namespace yacco2;
+
+using namespace NS_rules_phrase;
+TOKEN_GAGGLE op1;
+yacco2::INT start_pos= Calling_parser.current_token_pos__;
+token_container_type*ip1= Calling_parser.token_supplier();
+TOKEN_GAGGLE*er1= (TOKEN_GAGGLE*)Calling_parser.error_queue();
+Crules_phrase rule_ph;
+Parser p1(rule_ph,ip1,&op1,start_pos,er1);
+p1.parse();
+if(er1->empty()==YES){
+*Cont_pos= p1.current_token_pos__;
+*Cont_tok= p1.current_token();
+TOKEN_GAGGLE_ITER i= op1.begin();
+CAbs_lr1_sym*sym= *i;
+T_rules_phrase* t = (T_rules_phrase*)sym;
+Phrase_to_parse.rules_phrase(t);
+if(O2_RULES_PHASE!=0){
+CAbs_lr1_sym*sym= new Err_already_processed_rule_phase;
+sym->set_rc(Phrase_to_parse);
+p1.add_token_to_error_queue(*sym);
+goto error_exit;
+}
+O2_RULES_PHASE= t;
+AST*gt= t->phrase_tree();
+BUILD_GRAMMAR_TREE(*gt);
+/*31:*/
+//line 1157 "./o2externs.w"
+
+lrclog<<"Enumerate Rule alphabet"<<endl;
+int Rules_enum= START_OF_RULES_ENUM;
+RULE_DEFS_TBL_ITER_type ri= t->crt_order()->begin();
+RULE_DEFS_TBL_ITER_type rie= t->crt_order()->end();
+int rule_no(0);
+for(;ri!=rie;++ri,++Rules_enum){
+rule_def*rd= *ri;
+++rule_no;
+rd->enum_id(Rules_enum);
+rd->rule_no(rule_no);
+}
+
+/*:31*/
+//line 1207 "./o2externs.w"
+
+return Success;
+}
+error_exit:
+lrclog<<"error in rules-phrase"<<std::endl;
+return Failure;
+}
+
+/*:32*//*34:*/
+//line 1232 "./o2externs.w"
+
+extern void
+YACCO2_PARSE_CMD_LINE
+(yacco2::CHAR&T_sw,yacco2::CHAR&ERR_sw
+,yacco2::CHAR&PRT_sw
+,std::string&Grammar_to_compile
+,yacco2::TOKEN_GAGGLE&Error_queue)
+{
+using namespace NS_yacco2_err_symbols;
+using namespace yacco2;
+tok_can<std::ifstream> Cmd1_tokens(Yacco2_holding_file);
+if(Cmd1_tokens.file_ok()==NO){
+yacco2::Delete_tokens(Cmd1_tokens.container());
+CAbs_lr1_sym*sym= new Err_bad_filename(Yacco2_holding_file);
+sym->set_external_file_id(1);
+sym->set_line_no(1);
+sym->set_pos_in_line(1);
+Error_queue.push_back(*sym);
+return;
+}
+
+using namespace NS_o2_lcl_opts;
+TOKEN_GAGGLE lcl_options_tokens;
+Co2_lcl_opts opts_fsm;
+Parser options(opts_fsm,&Cmd1_tokens,&lcl_options_tokens,0,&Error_queue,0,0);
+options.parse();
+yacco2::Delete_tokens(Cmd1_tokens.container());
+if(Error_queue.empty()!=YES)return;
+T_sw= opts_fsm.t_sw_;ERR_sw= opts_fsm.err_sw_;
+PRT_sw= opts_fsm.prt_sw_;
+Grammar_to_compile+= opts_fsm.file_to_compile_;
+}
+
+/*:34*//*35:*/
+//line 1285 "./o2externs.w"
+
+extern void
+BUILD_GRAMMAR_TREE(yacco2::AST&Item)
+{
+using namespace NS_yacco2_T_enum;
+using namespace NS_yacco2_terminals;
+using namespace yacco2;
+CAbs_lr1_sym*sym= AST::content(Item);
+static AST*cur_node(0);
+static AST*holding_kcweb(0);
+static AST*end_holding_kcweb(0);
+static bool rules_phrase_seen(false);
+if(sym->enumerated_id__==T_Enum::T_T_cweb_marker_){
+if(rules_phrase_seen==true){
+AST::join_sts(*cur_node,Item);
+cur_node= &Item;
+return;
+}
+if(holding_kcweb==0){
+holding_kcweb= &Item;
+}else{
+if(end_holding_kcweb==0){
+end_holding_kcweb= &Item;
+AST::join_sts(*holding_kcweb,*end_holding_kcweb);
+}else{
+AST::join_sts(*end_holding_kcweb,Item);
+end_holding_kcweb= &Item;
+}
+}
+return;
+}
+if(cur_node==0){
+CAbs_lr1_sym*gp= new T_grammar_phrase();
+gp->set_line_no_and_pos_in_line(*sym);
+gp->set_external_file_id(sym->tok_co_ords__.external_file_id__);
+GRAMMAR_TREE= new AST(*gp);
+AST::crt_tree_of_1son(*GRAMMAR_TREE,Item);
+cur_node= &Item;
+}else{
+AST::join_sts(*cur_node,Item);
+cur_node= &Item;
+}
+if(sym->enumerated_id__==T_Enum::T_T_rules_phrase_){
+rules_phrase_seen= true;
+}
+/*36:*/
+//line 1338 "./o2externs.w"
+
+if(holding_kcweb==0)return;
+tok_can_ast_functor just_walk_functr;
+ast_prefix_1forest element_walk(Item,&just_walk_functr);
+tok_can<AST*> phrase_can(element_walk);
+using namespace NS_cweb_put_k_into_ph;
+Ccweb_put_k_into_ph cweb_k_fsm;
+cweb_k_fsm.initialize(holding_kcweb,&rules_phrase_seen);
+Parser cweb_k(cweb_k_fsm,&phrase_can,0);
+cweb_k.parse();
+holding_kcweb= 0;
+end_holding_kcweb= 0;
+
+/*:36*/
+//line 1330 "./o2externs.w"
+
+}
+
+/*:35*//*37:*/
+//line 1376 "./o2externs.w"
+
+void load_kw_into_tbl(yacco2::CAbs_lr1_sym*Kw){
+using namespace yacco2_stbl;
+T_sym_tbl_report_card report_card;
+const char*kwkey= Kw->id__;
+if(*kwkey=='#')++kwkey;
+kw_in_stbl*kw= new kw_in_stbl(Kw);
+add_sym_to_stbl(report_card,*kwkey,*kw,table_entry::defed,table_entry::keyword);
+kw->stbl_idx(report_card.pos_);
+}
+
+extern void LOAD_YACCO2_KEYWORDS_INTO_STBL()
+{
+using namespace yacco2_stbl;
+load_kw_into_tbl(new T_raw_characters);
+load_kw_into_tbl(new T_lr1_constant_symbols);
+load_kw_into_tbl(new T_error_symbols);
+load_kw_into_tbl(new T_eocode);
+load_kw_into_tbl(new T_AD);
+load_kw_into_tbl(new T_AB);
+load_kw_into_tbl(new T_parallel_la_boundary);
+load_kw_into_tbl(new T_arbitrator_code);
+load_kw_into_tbl(new T_parallel_parser);
+load_kw_into_tbl(new T_parallel_thread_function);
+load_kw_into_tbl(new T_parallel_control_monitor);
+load_kw_into_tbl(new T_fsm);
+load_kw_into_tbl(new T_fsm_id);
+load_kw_into_tbl(new T_fsm_filename);
+load_kw_into_tbl(new T_fsm_namespace);
+load_kw_into_tbl(new T_fsm_class);
+load_kw_into_tbl(new T_fsm_version);
+load_kw_into_tbl(new T_fsm_date);
+load_kw_into_tbl(new T_fsm_debug);
+load_kw_into_tbl(new T_fsm_comments);
+load_kw_into_tbl(new T_terminals);
+load_kw_into_tbl(new T_enumeration);
+load_kw_into_tbl(new T_file_name);
+load_kw_into_tbl(new T_name_space);
+load_kw_into_tbl(new T_sym_class);
+load_kw_into_tbl(new T_rules);
+load_kw_into_tbl(new T_lhs);
+load_kw_into_tbl(new T_user_declaration);
+load_kw_into_tbl(new T_user_prefix_declaration);
+load_kw_into_tbl(new T_user_suffix_declaration);
+load_kw_into_tbl(new T_constructor);
+load_kw_into_tbl(new T_destructor);
+load_kw_into_tbl(new T_op);
+load_kw_into_tbl(new T_failed);
+load_kw_into_tbl(new T_user_implementation);
+load_kw_into_tbl(new T_user_imp_tbl);
+load_kw_into_tbl(new T_user_imp_sym);
+load_kw_into_tbl(new T_constant_defs);
+load_kw_into_tbl(new T_terminals_refs);
+load_kw_into_tbl(new T_terminals_sufx);
+load_kw_into_tbl(new T_lrk_sufx);
+load_kw_into_tbl(new T_NULL);
+}
+
+/*:37*//*38:*/
+//line 1440 "./o2externs.w"
+
+extern void PRINT_RULES_TREE_STRUCTURE(AST*Node)
+{
+using namespace NS_yacco2_T_enum;
+using namespace NS_yacco2_terminals;
+if(Node==0)return;
+CAbs_lr1_sym*sym= AST::content(*Node);
+if(sym==0){
+yacco2::lrclog<<" SYMBOL IN AST CONTENT NULL"
+<<" Node*: "<<Node<<endl;
+return;
+}
+yacco2::lrclog<<sym->id__<<' ';
+
+switch(sym->enumerated_id__){
+case T_Enum::T_refered_T_:{
+refered_T* sym1 = (refered_T*)sym;
+T_in_stbl*T= sym1->t_in_stbl();
+yacco2::lrclog<<T->t_def()->t_name()->c_str();
+break;
+}
+case T_Enum::T_refered_rule_:{
+refered_rule* sym1 = (refered_rule*)sym;
+rule_in_stbl*R= sym1->Rule_in_stbl();
+yacco2::lrclog<<R->r_def()->rule_name()->c_str();
+break;
+}
+case T_Enum::T_T_identifier_:{
+T_identifier* sym1 = (T_identifier*)sym;
+yacco2::lrclog<<sym1->identifier()->c_str();
+break;
+}
+case T_Enum::T_rule_def_:{
+rule_def* sym1 = (rule_def*)sym;
+yacco2::lrclog<<sym1->rule_name()->c_str();
+yacco2::lrclog<<" epsilon: ";
+if(sym1->epsilon()==true){
+yacco2::lrclog<<" Y ";
+}else{
+yacco2::lrclog<<" N ";
+}
+break;
+}
+case T_Enum::T_T_terminal_def_:{
+T_terminal_def* sym1 = (T_terminal_def*)sym;
+yacco2::lrclog<<sym1->t_name()->c_str();
+break;
+}
+case T_Enum::T_T_subrule_def_:{
+T_subrule_def* sym1 = (T_subrule_def*)sym;
+yacco2::lrclog<<" epsilon: ";
+if(sym1->epsilon()==true){
+yacco2::lrclog<<" Y ";
+}else{
+yacco2::lrclog<<" N ";
+}
+break;
+}
+case T_Enum::T_T_eosubrule_:{
+break;
+}
+case T_Enum::T_T_NULL_:{
+break;
+}
+case T_Enum::T_T_2colon_:{
+break;
+}
+
+default:{
+yacco2::lrclog<<sym->id__;
+}
+}
+
+yacco2::lrclog<<" file# "<<sym->tok_co_ords__.external_file_id__
+<<':'<<sym->tok_co_ords__.rc_pos__<<':';
+yacco2::lrclog<<" line# "<<sym->tok_co_ords__.line_no__
+<<':'<<sym->tok_co_ords__.pos_in_line__<<':';
+yacco2::lrclog<<" sym*: "<<sym<<' ';
+yacco2::lrclog<<endl;
+}
+
+/*:38*//*39:*/
+//line 1524 "./o2externs.w"
+
+extern void WRT_CWEB_MARKER(std::ofstream*Wfile,yacco2::AST*Cweb_marker){
+using namespace NS_yacco2_T_enum;
+using namespace NS_yacco2_terminals;
+using namespace yacco2;
+INT_SET_type filter;
+filter.insert(T_Enum::T_T_cweb_comment_);
+tok_can_ast_functor just_walk_functr;
+ast_prefix_1forest rule_walk(*Cweb_marker,&just_walk_functr,&filter,ACCEPT_FILTER);
+tok_can<AST*> comments_can(rule_walk);
+for(int x(0);comments_can[x]!=yacco2::PTR_LR1_eog__;++x){
+T_cweb_comment*k= (T_cweb_comment*)comments_can[x];
+(*Wfile)<<k->comment_data()->c_str()<<endl;
+}
+}
+
+/*:39*//*40:*/
+//line 1547 "./o2externs.w"
+
+extern void PRINT_GRAMMAR_TREE(AST*Node)
+{
+using namespace NS_yacco2_T_enum;
+using namespace NS_yacco2_terminals;
+if(Node==0)return;
+CAbs_lr1_sym*sym= AST::content(*Node);
+if(sym==0){
+yacco2::lrclog<<" SYMBOL IN AST CONTENT NULL"
+<<" Node*: "<<Node
+<<" lt*: "<<Node->lt_<<" rt*: "<<Node->rt_
+<<std::endl;
+return;
+}
+yacco2::lrclog<<sym->id__<<' ';
+
+switch(sym->enumerated_id__){
+case T_Enum::T_T_cweb_comment_:{
+T_cweb_comment* sym1 = (T_cweb_comment*)sym;
+yacco2::lrclog<<sym1->comment_data()->c_str();
+break;
+}
+}
+
+yacco2::lrclog<<" file# "<<sym->tok_co_ords__.external_file_id__
+<<':'<<sym->tok_co_ords__.rc_pos__<<':';
+yacco2::lrclog<<" line# "<<sym->tok_co_ords__.line_no__
+<<':'<<sym->tok_co_ords__.pos_in_line__<<':';
+yacco2::lrclog<<" sym*: "<<sym<<' ';
+yacco2::lrclog<<" Node*: "<<Node
+<<" lt*: "<<Node->lt_<<" rt*: "<<Node->rt_
+<<std::endl;
+}
+
+/*:40*//*41:*/
+//line 1627 "./o2externs.w"
+
+extern
+bool
+PROCESS_INCLUDE_FILE
+(yacco2::Parser&Calling_parser
+,NS_yacco2_terminals::T_file_inclusion&File_include
+,yacco2::token_container_type&T2)
+{
+using namespace NS_yacco2_terminals;
+using namespace NS_yacco2_err_symbols;
+using namespace yacco2;
+std::string*ps_fn= File_include.file_name()->c_string();
+lrclog<<"Pre-process file: "<<ps_fn->c_str()<<std::endl;
+if(yacco2::STK_FILE_NOS__.size()>=Nested_file_cnt_limit){
+CAbs_lr1_sym*s= new Err_nested_files_exceeded(Nested_file_cnt_limit,*ps_fn);
+s->set_line_no_and_pos_in_line(File_include);
+s->set_external_file_id(File_include.tok_co_ords__.external_file_id__);
+Calling_parser.add_token_to_error_queue(*s);
+Calling_parser.abort_parse__;
+return Failure;
+}
+
+tok_can<std::ifstream> p1_tokens(ps_fn->c_str());
+if(p1_tokens.file_ok()==NO){
+yacco2::Delete_tokens(p1_tokens.container());
+CAbs_lr1_sym*sym= new NS_yacco2_err_symbols::Err_bad_filename(*ps_fn);
+sym->set_external_file_id(File_include.tok_co_ords__.external_file_id__);
+sym->set_line_no_and_pos_in_line(File_include);
+Calling_parser.add_token_to_error_queue(*sym);
+Calling_parser.abort_parse__;
+return Failure;
+}
+using namespace NS_pass3;
+Cpass3 p3_fsm;
+Parser pass3(p3_fsm,&p1_tokens,&T2,0,Calling_parser.error_queue(),Calling_parser.recycle_bin__);
+pass3.parse();
+yacco2::Delete_tokens(p1_tokens.container());
+
+if(pass3.error_queue()->empty()!=YES){
+Calling_parser.abort_parse__;
+return Failure;
+}
+
+yacco2::STK_FILE_NOS__.pop_back();
+return Success;
+}
+
+/*:41*//*42:*/
+//line 1709 "./o2externs.w"
+
+extern
+bool
+PROCESS_KEYWORD_FOR_SYNTAX_CODE
+(yacco2::Parser&Parser
+,yacco2::CAbs_lr1_sym*Keyword
+,yacco2::CAbs_lr1_sym**Cont_tok
+,yacco2::INT*Cont_pos)
+{
+using namespace NS_yacco2_T_enum;
+using namespace NS_yacco2_terminals;
+using namespace yacco2;
+switch(Keyword->enumerated_id__){
+case T_Enum::T_T_fsm_:{
+T_fsm* fsm = (T_fsm*)Keyword;
+return process_fsm_phrase(Parser,*fsm,Cont_tok,Cont_pos);
+}
+case T_Enum::T_T_parallel_parser_:{
+T_parallel_parser* pparser = (T_parallel_parser*)Keyword;
+return process_parallel_parser_phrase(Parser,*pparser,Cont_tok,Cont_pos);
+}
+case T_Enum::T_T_enumeration_:{
+T_enumeration* enumer = (T_enumeration*)Keyword;
+return process_T_enum_phrase(Parser,*enumer,Cont_tok,Cont_pos);
+}
+case T_Enum::T_T_error_symbols_:{
+T_error_symbols* err = (T_error_symbols*)Keyword;
+return process_error_symbols_phrase(Parser,*err,Cont_tok,Cont_pos);
+}
+case T_Enum::T_T_raw_characters_:{
+T_raw_characters* rc = (T_raw_characters*)Keyword;
+return process_rc_phrase(Parser,*rc,Cont_tok,Cont_pos);
+}
+case T_Enum::T_T_lr1_constant_symbols_:{
+T_lr1_constant_symbols* lr = (T_lr1_constant_symbols*)Keyword;
+return process_lr1_k_phrase(Parser,*lr,Cont_tok,Cont_pos);
+}
+case T_Enum::T_T_terminals_:{
+T_terminals* term = (T_terminals*)Keyword;
+return process_terminals_phrase(Parser,*term,Cont_tok,Cont_pos);
+}
+case T_Enum::T_T_rules_:{
+T_rules* rule = (T_rules*)Keyword;
+return process_rules_phrase(Parser,*rule,Cont_tok,Cont_pos);
+}
+default:{
+CAbs_lr1_sym*sym= new Err_not_kw_defining_grammar_construct;
+sym->set_rc(*Keyword);
+Parser.add_token_to_error_queue(*sym);
+return Failure;
+}
+}
+return Success;
+}
+
+/*:42*//*44:*/
+//line 1781 "./o2externs.w"
+
+void
+NS_mpost_output::
+Cmpost_output::
+MPOST_CWEB_LOAD_XLATE_CHRS
+(NS_mpost_output::Cmpost_output*Fsm)
+{
+Fsm->xlated_names_[T_Enum::T_raw_exclam_]= "exclamation mark";
+Fsm->xlated_names_[T_Enum::T_raw_dbl_quote_]= "dbl quote";
+Fsm->xlated_names_[T_Enum::T_raw_no_sign_]= "no sign";
+Fsm->xlated_names_[T_Enum::T_raw_dollar_sign_]= "dollar sign";
+Fsm->xlated_names_[T_Enum::T_raw_percent_]= "percent";
+Fsm->xlated_names_[T_Enum::T_raw_ampersign_]= "ampersand";
+Fsm->xlated_names_[T_Enum::T_raw_right_quote_]= "rt quote";
+Fsm->xlated_names_[T_Enum::T_raw_open_bracket_]= "open bracket";
+Fsm->xlated_names_[T_Enum::T_raw_close_bracket_]= "close bracket";
+Fsm->xlated_names_[T_Enum::T_raw_asteric_]= "asterisk";
+Fsm->xlated_names_[T_Enum::T_raw_plus_]= "plus";
+Fsm->xlated_names_[T_Enum::T_raw_comma_]= "comma";
+Fsm->xlated_names_[T_Enum::T_raw_minus_]= "minus";
+Fsm->xlated_names_[T_Enum::T_raw_period_]= "period";
+Fsm->xlated_names_[T_Enum::T_raw_slash_]= "slash";
+Fsm->xlated_names_[T_Enum::T_raw_colon_]= "colon";
+Fsm->xlated_names_[T_Enum::T_raw_semi_colon_]= "semi colon";
+Fsm->xlated_names_[T_Enum::T_raw_less_than_]= "less than";
+Fsm->xlated_names_[T_Enum::T_raw_eq_]= "eq";
+Fsm->xlated_names_[T_Enum::T_raw_gt_than_]= "gt than";
+Fsm->xlated_names_[T_Enum::T_raw_question_mark_]= "question mark";
+Fsm->xlated_names_[T_Enum::T_raw_at_sign_]= "at sign";
+Fsm->xlated_names_[T_Enum::T_raw_open_sq_bracket_]= "open sq bracket";
+Fsm->xlated_names_[T_Enum::T_raw_back_slash_]= "back slash";
+Fsm->xlated_names_[T_Enum::T_raw_close_sq_bracket_]= "close sq bracket";
+Fsm->xlated_names_[T_Enum::T_raw_up_arrow_]= "up arrow";
+Fsm->xlated_names_[T_Enum::T_raw_under_score_]= "under score";
+Fsm->xlated_names_[T_Enum::T_raw_left_quote_]= "left quote";
+Fsm->xlated_names_[T_Enum::T_raw_open_brace_]= "open brace";
+Fsm->xlated_names_[T_Enum::T_raw_vertical_line_]= "vertical line";
+Fsm->xlated_names_[T_Enum::T_raw_close_brace_]= "close brace";
+Fsm->xlated_names_[T_Enum::T_raw_tilde_]= "tilde";
+Fsm->xlated_names_[T_Enum::T_raw_del_]= "del";
+Fsm->xlated_names_[T_Enum::T_LR1_invisible_shift_operator_]= "\\invisibleshift";
+Fsm->xlated_names_[T_Enum::T_LR1_all_shift_operator_]= "\\allshift";
+Fsm->xlated_names_[T_Enum::T_LR1_reduce_operator_]= "\\reduceoperator";
+Fsm->xlated_names_[T_Enum::T_LR1_fset_transience_operator_]= "\\transienceoperator";
+Fsm->xlated_names_[T_Enum::T_LR1_questionable_shift_operator_]= "\\questionableoperator";
+}
+
+/*:44*//*48:*/
+//line 1884 "./o2externs.w"
+
+void
+NS_mpost_output::
+Cmpost_output::
+MPOST_CWEB_EMIT_PREFIX_CODE
+(NS_mpost_output::Cmpost_output*Fsm)
+{
+/*46:*/
+//line 1834 "./o2externs.w"
+
+
+KCHARP mp_prefix_file= "% file: ";
+Fsm->omp_file_<<mp_prefix_file;
+KCHARP mp_prefix_file_value=
+"%s - grammar railroad diagrams for mpost program\n";
+int x= sprintf(Fsm->big_buf_,mp_prefix_file_value,Fsm->mp_filename_.c_str());
+Fsm->omp_file_.write(Fsm->big_buf_,x);
+Fsm->omp_file_<<endl;
+
+KCHARP mp_prefix_date= "% date: ";
+Fsm->omp_file_<<mp_prefix_date;
+KCHARP mp_prefix_date_value=
+"%s\n"
+"input \"/usr/local/yacco2/diagrams/o2diag.mp\"\n"
+"numeric no_of_rules,Box_solid,Box_dotted,Circle_solid,Circle_dotted;\n"
+"Box_solid:=1;Box_dotted:=2;Circle_solid:=3;Circle_dotted:=4;\n"
+"string rule_names[].literal;\n"
+"string rule_names[].vname;\n"
+"numeric rule_s_no_rhs[];\n"
+"string rhs_elems[][][].literal;\n"
+"string rhs_elems[][][].vname;\n"
+"numeric rhs_elems[][][].Drw_how;\n"
+"numeric rule_s_subrule_no_elems[][];\n";
+x= sprintf(Fsm->big_buf_,mp_prefix_date_value,Fsm->gened_date_time_.c_str());
+Fsm->omp_file_.write(Fsm->big_buf_,x);
+
+
+/*:46*/
+//line 1891 "./o2externs.w"
+
+/*47:*/
+//line 1863 "./o2externs.w"
+
+KCHARP w_prefix_file= "% file: ";
+Fsm->ow_file_<<w_prefix_file;
+KCHARP w_prefix_filename_value= "%s - cweb grammar\n";
+x= sprintf(Fsm->big_buf_,w_prefix_filename_value,Fsm->w_filename_.c_str());
+Fsm->ow_file_.write(Fsm->big_buf_,x);
+
+KCHARP w_prefix_date= "%Date: ";
+Fsm->ow_file_<<w_prefix_date;
+KCHARP w_prefix_date_value= "%s\n";
+x= sprintf(Fsm->big_buf_,w_prefix_date_value,Fsm->gened_date_time_.c_str());
+Fsm->ow_file_.write(Fsm->big_buf_,x);
+
+
+KCHARP macros=
+"\\input%s \"supp-pdf\"\n"
+"\\input \"/usr/local/yacco2/diagrams/o2mac.tex\"\n";
+x= sprintf(Fsm->big_buf_,macros," ");
+Fsm->ow_file_.write(Fsm->big_buf_,x);
+
+/*:47*/
+//line 1892 "./o2externs.w"
+
+}
+
+
+/*:48*//*49:*/
+//line 1905 "./o2externs.w"
+
+void
+NS_mpost_output::
+Cmpost_output::
+MPOST_CWEB_gen_dimension_name
+(Cmpost_output*Fsm,std::string&Mp_obj_name,int Dimension){
+int R,Q;
+R= Dimension%27;
+Q= Dimension/27;
+++Q;
+Mp_obj_name+= Fsm->mp_dimension_[Q];
+Mp_obj_name+= Fsm->mp_dimension_[R];
+}
+
+/*:49*//*50:*/
+//line 1921 "./o2externs.w"
+
+void
+NS_mpost_output::
+Cmpost_output::
+MPOST_CWEB_calc_mp_obj_name
+(Cmpost_output*Fsm,std::string&Mp_obj_name,int Elem_no){
+Fsm->MPOST_CWEB_gen_dimension_name(Fsm,Mp_obj_name,Fsm->rule_no_);
+Fsm->MPOST_CWEB_gen_dimension_name(Fsm,Mp_obj_name,Fsm->subrule_no_);
+Fsm->MPOST_CWEB_gen_dimension_name(Fsm,Mp_obj_name,Elem_no);
+}
+
+/*:50*//*51:*/
+//line 1938 "./o2externs.w"
+
+void
+NS_mpost_output::
+Cmpost_output::
+MPOST_CWEB_wrt_mp_rhs_elem
+(Cmpost_output*Fsm,std::string&Elem_name,std::string&Drw_how){
+std::string mp_xlate_name;
+prescan_mpname_for_cweb(Elem_name,mp_xlate_name);
+std::string mp_obj_name;
+KCHARP mp_subrule_elems_literal= "rhs_elems[%i][%i][%i].literal := \"%s\";";
+int x= sprintf(Fsm->big_buf_,mp_subrule_elems_literal
+,Fsm->rule_no_,Fsm->subrule_no_,Fsm->elem_no_
+,mp_xlate_name.c_str());
+Fsm->omp_file_.write(Fsm->big_buf_,x);
+Fsm->omp_file_<<endl;
+KCHARP mp_subrule_elems_RorT= "rhs_elems[%i][%i][%i].Drw_how := %s;";
+x= sprintf(Fsm->big_buf_,mp_subrule_elems_RorT,Fsm->rule_no_,Fsm->subrule_no_,Fsm->elem_no_
+,Drw_how.c_str());
+Fsm->omp_file_.write(Fsm->big_buf_,x);
+Fsm->omp_file_<<endl;
+KCHARP mp_subrule_elems_vname= "rhs_elems[%i][%i][%i].vname := \"%s\";";
+Fsm->MPOST_CWEB_calc_mp_obj_name(Fsm,mp_obj_name,Fsm->elem_no_);
+x= sprintf(Fsm->big_buf_,mp_subrule_elems_vname,Fsm->rule_no_,Fsm->subrule_no_,Fsm->elem_no_
+,mp_obj_name.c_str());
+Fsm->omp_file_.write(Fsm->big_buf_,x);
+Fsm->omp_file_<<endl;
+}
+
+/*:51*//*55:*/
+//line 2060 "./o2externs.w"
+
+void
+NS_mpost_output::
+Cmpost_output::
+MPOST_CWEB_gen_sr_elem_xrefs
+(Cmpost_output*Fsm,AST*Subrule_tree){
+/*53:*/
+//line 1979 "./o2externs.w"
+
+using namespace yacco2;
+using namespace NS_yacco2_T_enum;
+using namespace NS_yacco2_terminals;
+KCHARP xref= "@.%s@>\n";
+INT_SET_type filter;
+filter.insert(T_Enum::T_refered_T_);
+filter.insert(T_Enum::T_refered_rule_);
+filter.insert(T_Enum::T_T_eosubrule_);
+filter.insert(T_Enum::T_T_called_thread_eosubrule_);
+filter.insert(T_Enum::T_T_null_call_thread_eosubrule_);
+filter.insert(T_Enum::T_LR1_parallel_operator_);
+filter.insert(T_Enum::T_LR1_fset_transience_operator_);
+
+tok_can_ast_functor just_walk_functr;
+ast_prefix_1forest element_walk(*Subrule_tree,&just_walk_functr,&filter,ACCEPT_FILTER);
+tok_can<AST*> elements_can(element_walk);
+
+
+/*:53*/
+//line 2066 "./o2externs.w"
+
+int elem_cnt(0);
+string th_name;
+/*54:*/
+//line 1999 "./o2externs.w"
+
+for(int x(0);elements_can[x]!=yacco2::PTR_LR1_eog__;++x){
+++elem_cnt;
+CAbs_lr1_sym*sym= elements_can[x];
+switch(sym->enumerated_id__){
+case T_Enum::T_LR1_parallel_operator_:{
+int x= sprintf(Fsm->big_buf_,xref,"\\paralleloperator");
+Fsm->ow_file_.write(Fsm->big_buf_,x);
+break;
+}
+case T_Enum::T_LR1_fset_transience_operator_:{
+int x= sprintf(Fsm->big_buf_,xref,"\\transienceoperator");
+Fsm->ow_file_.write(Fsm->big_buf_,x);
+break;
+}
+case T_Enum::T_refered_T_:{
+refered_T* rt = (refered_T*)sym;
+Fsm->MPOST_CWEB_xref_refered_T(Fsm,rt);
+break;
+}
+case T_Enum::T_refered_rule_:{
+refered_rule* rr = (refered_rule*)sym;
+Fsm->MPOST_CWEB_xref_refered_rule(Fsm,rr);
+break;
+}
+case T_Enum::T_T_eosubrule_:{
+if(elem_cnt==1){
+int x= sprintf(Fsm->big_buf_,xref,"\\emptyrule");
+Fsm->ow_file_.write(Fsm->big_buf_,x);
+}
+break;
+}
+case T_Enum::T_T_called_thread_eosubrule_:{
+T_called_thread_eosubrule* id = (T_called_thread_eosubrule*)sym;
+if(id->ns()!=0){
+th_name+= id->ns()->identifier()->c_str();
+th_name+= "::";
+}
+th_name+= id->called_thread_name()->identifier()->c_str();
+string name_with_bkslash;
+int len= th_name.length();
+for(int x= 0;x<len;++x){
+char c= th_name[x];
+if(c=='_'){
+name_with_bkslash+= '\\';
+}
+name_with_bkslash+= c;
+}
+int x= sprintf(Fsm->big_buf_,xref,name_with_bkslash.c_str());
+Fsm->ow_file_.write(Fsm->big_buf_,x);
+break;
+}
+case T_Enum::T_T_null_call_thread_eosubrule_:{
+int x= sprintf(Fsm->big_buf_,xref,"NULL");
+Fsm->ow_file_.write(Fsm->big_buf_,x);
+break;
+}
+}
+}
+
+/*:54*/
+//line 2069 "./o2externs.w"
+
+}
+
+/*:55*//*56:*/
+//line 2073 "./o2externs.w"
+
+extern int
+MPOST_CWEB_xlated_symbol(AST*Sym_t,char*Xlated_sym){
+CAbs_lr1_sym*Sym= AST::content(*Sym_t);
+int Enum= Sym->enumerated_id();
+Xlated_sym[0]= (char)0;
+const char*xsym= "%s";
+switch(Enum){
+case T_Enum::T_LR1_parallel_operator_:{
+sprintf(Xlated_sym,xsym,"\\paralleloperator");
+return 1;
+}
+case T_Enum::T_LR1_fset_transience_operator_:{
+sprintf(Xlated_sym,xsym,"\\transienceoperator");
+return 1;
+}
+case T_Enum::T_refered_T_:{
+refered_T* rt = (refered_T*)Sym;
+XLATE_SYMBOLS_FOR_cweave(rt->its_t_def()->t_name()->c_str(),Xlated_sym);
+return rt->element_pos();
+}
+case T_Enum::T_refered_rule_:{
+refered_rule* rr = (refered_rule*)Sym;
+XLATE_SYMBOLS_FOR_cweave(rr->its_rule_def()->rule_name()->c_str(),Xlated_sym);
+return rr->element_pos();
+}
+case T_Enum::T_T_eosubrule_:{
+T_eosubrule* eos = (T_eosubrule*)Sym;
+AST*prev_t= Sym_t->pr_;
+if(eos->element_pos()==1){
+sprintf(Xlated_sym,xsym,"\\emptyrule");
+return eos->element_pos();
+}else{
+sprintf(Xlated_sym,xsym,"");
+}
+CAbs_lr1_sym*sym= AST::content(*prev_t);
+switch(sym->enumerated_id()){
+case T_Enum::T_T_called_thread_eosubrule_:{
+return eos->element_pos()-1;
+}
+case T_Enum::T_T_null_call_thread_eosubrule_:{
+return eos->element_pos()-1;
+}
+default:{
+return eos->element_pos();
+}
+}
+}
+case T_Enum::T_T_called_thread_eosubrule_:{
+T_called_thread_eosubrule* id = (T_called_thread_eosubrule*)Sym;
+string th_name;
+if(id->ns()!=0){
+th_name+= id->ns()->identifier()->c_str();
+th_name+= "::";
+}
+th_name+= id->called_thread_name()->identifier()->c_str();
+XLATE_SYMBOLS_FOR_cweave(th_name.c_str(),Xlated_sym);
+return id->element_pos();
+}
+case T_Enum::T_T_null_call_thread_eosubrule_:{
+T_null_call_thread_eosubrule* id = (T_null_call_thread_eosubrule*)Sym;
+sprintf(Xlated_sym,xsym,"NULL");
+return id->element_pos();
+}
+}
+return 0;
+}
+/*:56*//*57:*/
+//line 2150 "./o2externs.w"
+
+void
+NS_mpost_output::
+Cmpost_output::
+MPOST_CWEB_crt_rhs_sym_str
+(state_element*se,std::string*Xlated_str){
+char a[BUFFER_SIZE];
+char cur_sym[Max_cweb_item_size];
+char nxtsym_1[Max_cweb_item_size];
+char nxtsym_2[Max_cweb_item_size];
+KCHARP thread_expr_string_template=
+"{%s} {%s} {%s}";
+KCHARP underline_symbol= "{$\\underline{%s}$} \n";
+KCHARP underline_symbol_wepsilon= "{$\\underline{%s^{\\emptyrule}}$} \n";
+KCHARP not_underline_symbol= "{%s} \n";
+state_element*nxt1_se= 0;
+state_element*nxt2_se= 0;
+state_element*nxt3_se= 0;
+int pp= MPOST_CWEB_xlated_symbol(se->sr_element_,cur_sym);
+
+if(
+(se->its_enum_id_==T_Enum::T_LR1_parallel_operator_)
+||
+(se->its_enum_id_==T_Enum::T_LR1_fset_transience_operator_)
+){
+nxt1_se= se->next_state_element_;
+AST*nxt2_se= se->sr_element_->rt_->rt_;
+pp= MPOST_CWEB_xlated_symbol(nxt1_se->sr_element_,nxtsym_1);
+pp= MPOST_CWEB_xlated_symbol(nxt2_se,nxtsym_2);
+sprintf(a,thread_expr_string_template,cur_sym,nxtsym_1,nxtsym_2);
+(*Xlated_str)+= a;
+return;
+}
+sprintf(a,not_underline_symbol,cur_sym);
+(*Xlated_str)+= a;
+if(se->sr_def_element_->enumerated_id__!=T_Enum::T_rule_def_){
+return;
+}
+
+nxt1_se= se->next_state_element_;
+if(nxt1_se==0)return;
+if(nxt1_se->its_enum_id_==T_Enum::T_T_eosubrule_)return;
+pp= MPOST_CWEB_xlated_symbol(nxt1_se->sr_element_,nxtsym_1);
+if(nxt1_se->sr_def_element_->enumerated_id__!=T_Enum::T_rule_def_){
+sprintf(a,underline_symbol,nxtsym_1);
+}else{
+rule_def*rd= (rule_def*)nxt1_se->sr_def_element_;
+if(rd->epsilon()==YES){
+sprintf(a,underline_symbol_wepsilon,nxtsym_1);
+nxt2_se= nxt1_se->next_state_element_;
+}else{
+sprintf(a,underline_symbol,nxtsym_1);
+nxt2_se= 0;
+}
+}
+(*Xlated_str)+= a;
+
+if(nxt2_se!=0){
+if(nxt2_se->its_enum_id_==T_Enum::T_T_eosubrule_)return;
+pp= MPOST_CWEB_xlated_symbol(nxt2_se->sr_element_,nxtsym_2);
+if(nxt2_se->sr_def_element_->enumerated_id__!=T_Enum::T_rule_def_){
+sprintf(a,underline_symbol,nxtsym_2);
+}else{
+rule_def*rd= (rule_def*)nxt2_se->sr_def_element_;
+if(rd->epsilon()==YES){
+sprintf(a,underline_symbol_wepsilon,nxtsym_2);
+nxt3_se= nxt1_se->next_state_element_;
+if(nxt3_se->its_enum_id_==T_Enum::T_T_eosubrule_){
+nxt3_se= 0;
+}
+}else{
+sprintf(a,underline_symbol,nxtsym_2);
+nxt3_se= 0;
+}
+}
+(*Xlated_str)+= a;
+}
+if(nxt3_se!=0){
+sprintf(a,not_underline_symbol,"...");
+(*Xlated_str)+= a;
+}
+}
+
+/*:57*//*58:*/
+//line 2236 "./o2externs.w"
+
+void
+NS_mpost_output::
+Cmpost_output::
+MPOST_CWEB_woutput_sr_sdcode
+(Cmpost_output*Fsm,T_subrule_def*Subrule_def){
+SDC_MAP_type*sr_dirs= Subrule_def->subrule_directives();
+SDC_MAP_ITER_type i= sr_dirs->begin();
+SDC_MAP_ITER_type ie= sr_dirs->end();
+TOKEN_GAGGLE dirs_tokens;
+for(;i!=ie;++i){
+CAbs_lr1_sym*sym= i->second;
+dirs_tokens.push_back(*sym);
+}
+
+using namespace NS_cweave_sdc;
+Ccweave_sdc sdc_fsm;
+sdc_fsm.initialize(&Fsm->ow_file_,Fsm->subrule_def_,Fsm->subrule_no_);
+Parser sdc_emit(sdc_fsm,&dirs_tokens,0);
+sdc_emit.parse();
+}
+
+/*:58*//*62:*/
+//line 2291 "./o2externs.w"
+
+void
+NS_mpost_output::
+Cmpost_output::
+MPOST_CWEB_wrt_fsm
+(Cmpost_output*Fsm,T_fsm_phrase*Fsm_phrase){
+KCHARP banner=
+"\\GRAMMARtitle{%s}\n{%s}{%s}%\n"
+"{%s}{%s}%\n"
+"{%s}\n";
+
+KCHARP banner_of_thread=
+"\\THREADtitle{%s}%\n"
+"{%s}{%s}%\n"
+"{%s}{%s}{%s}{%i}%\n"
+"{%s}\n";
+char fname[Max_cweb_item_size];
+XLATE_SYMBOLS_FOR_cweave(Fsm->grammar_filename_prefix_.c_str(),fname);
+char ns_name[Max_cweb_item_size];
+XLATE_SYMBOLS_FOR_cweave(Fsm_phrase->namespace_id()->identifier()->c_str(),ns_name);
+char fsm_name[Max_cweb_item_size];
+XLATE_SYMBOLS_FOR_cweave(Fsm_phrase->fsm_id()->c_string()->c_str(),fsm_name);
+char k_cweb[Max_cweb_item_size];
+XLATE_SYMBOLS_FOR_cweave(Fsm_phrase->comment()->c_string()->c_str(),k_cweb);
+
+if(O2_PP_PHASE!=0){
+T_parallel_parser_phrase*la_ph= O2_PP_PHASE;
+T_parallel_la_boundary*la= la_ph->la_bndry();
+
+char expr_prescan_cweb[Max_cweb_item_size];
+int x= sprintf(Fsm->big_buf_
+,banner_of_thread
+,fname
+,fsm_name
+,ns_name
+,Fsm_phrase->version()->c_string()->c_str()
+,Fsm_phrase->debug()->c_string()->c_str()
+,k_cweb
+,la->la_first_set()->size()
+
+,la->cweb_la_srce_expr()->c_str()
+);
+Fsm->ow_file_.write(Fsm->big_buf_,x);
+Fsm->ow_file_<<endl;
+}else{
+int x= sprintf(Fsm->big_buf_
+,banner
+,fname
+,fsm_name
+,ns_name
+,Fsm_phrase->version()->c_string()->c_str()
+,Fsm_phrase->debug()->c_string()->c_str()
+,k_cweb
+);
+Fsm->ow_file_.write(Fsm->big_buf_,x);
+Fsm->ow_file_<<endl;
+}
+
+if(Fsm_phrase->cweb_marker()!=0){
+WRT_CWEB_MARKER(&Fsm->ow_file_,Fsm_phrase->cweb_marker());
+}
+
+/*60:*/
+//line 2262 "./o2externs.w"
+
+char xa[Max_cweb_item_size];
+XLATE_SYMBOLS_FOR_cweave
+(Fsm_phrase->fsm_class_phrase()->identifier()->identifier()->c_str()
+,xa);
+
+KCHARP fsm_class=
+"@*2 Fsm %s class.\n";
+int x= sprintf(Fsm->big_buf_
+,fsm_class
+,xa
+);
+Fsm->ow_file_.write(Fsm->big_buf_,x);
+Fsm->ow_file_<<endl;
+
+/*:60*/
+//line 2353 "./o2externs.w"
+
+/*61:*/
+//line 2278 "./o2externs.w"
+
+T_fsm_class_phrase*fcp= Fsm_phrase->fsm_class_phrase();
+SDC_MAP_type*sr_dirs= fcp->directives_map();
+SDC_MAP_ITER_type i= sr_dirs->begin();
+SDC_MAP_ITER_type ie= sr_dirs->end();
+TOKEN_GAGGLE dirs_tokens;
+for(;i!=ie;++i){
+CAbs_lr1_sym*sym= i->second;
+dirs_tokens.push_back(*sym);
+}
+
+
+/*:61*/
+//line 2354 "./o2externs.w"
+
+
+using namespace NS_cweave_fsm_sdc;
+Ccweave_fsm_sdc sdc_fsm;
+sdc_fsm.initialize(&Fsm->ow_file_,Fsm_phrase);
+Parser sdc_emit(sdc_fsm,&dirs_tokens,0);
+sdc_emit.parse();
+}
+
+
+/*:62*//*70:*/
+//line 2483 "./o2externs.w"
+
+void
+NS_mpost_output::
+Cmpost_output::
+MPOST_CWEB_wrt_T
+(Cmpost_output*Fsm,T_terminals_phrase*T_phrase){
+/*64:*/
+//line 2368 "./o2externs.w"
+
+output_cweb_macros_and_banner(
+Fsm,Fsm->ow_t_file_,"Terminal Vocabulary",Fsm->gened_date_time_.c_str()
+,T_phrase->filename_id()->identifier()
+,T_phrase->namespace_id()->identifier()
+,T_phrase->alphabet()->size());
+
+/*:64*/
+//line 2489 "./o2externs.w"
+
+if(T_phrase->cweb_marker()!=0){
+WRT_CWEB_MARKER(&Fsm->ow_t_file_,T_phrase->cweb_marker());
+}
+
+/*67:*/
+//line 2424 "./o2externs.w"
+
+if(T_phrase->terminals_refs_code()!=0){
+KCHARP tref=
+"@*2 {\\bf Terminals-refs} directive.\\fbreak\n";
+Fsm->ow_t_file_<<tref;
+
+T_syntax_code*stc= T_phrase->terminals_refs_code();
+if(stc->cweb_marker()!=0){
+WRT_CWEB_MARKER(&Fsm->ow_t_file_,stc->cweb_marker());
+}
+KCHARP tref_code=
+"@<terminals-refs directive@>=\n"
+"%s"
+"\n";
+
+int x= sprintf(Fsm->big_buf_
+,tref_code
+,T_phrase->terminals_refs_code()->syntax_code()->c_str()
+);
+Fsm->ow_t_file_.write(Fsm->big_buf_,x);
+Fsm->ow_t_file_<<endl;
+}
+
+/*:67*/
+//line 2494 "./o2externs.w"
+
+T_DEF_MAP_ITER_type a= T_phrase->alphabet()->begin();
+T_DEF_MAP_ITER_type ae= T_phrase->alphabet()->end();
+char term_name[Max_cweb_item_size];
+for(;a!=ae;++a){
+T_terminal_def*tdef= a->second;
+/*66:*/
+//line 2386 "./o2externs.w"
+
+char ab[]= "Y";
+if(tdef->autoabort()==true)ab[0]= 'Y';
+else ab[0]= 'N';
+char ad[]= "Y";
+if(tdef->autodelete()==true)ad[0]= 'Y';
+else ad[0]= 'N';
+
+char name[Max_cweb_item_size];
+
+XLATE_SYMBOLS_FOR_cweave(tdef->t_name()->c_str(),name);
+char class_name[Max_cweb_item_size];
+XLATE_SYMBOLS_FOR_cweave(tdef->classsym()->c_str(),class_name);
+
+const char*enum_name_for_format=
+"T\\_%s\\_";
+char a[SMALL_BUFFER_4K];
+sprintf(a,enum_name_for_format,class_name);
+
+KCHARP t_entry= "@*2 {\\bf %s}.\\fbreak\n"
+"Enum: %s\n\\fbreak\n"
+"\\line{Class: %s \\hfil AB: %s \\hfil AD: %s}\n";
+int x= sprintf(Fsm->big_buf_
+,t_entry
+,name
+,a
+,class_name
+,ab
+,ad
+);
+Fsm->ow_t_file_.write(Fsm->big_buf_,x);
+Fsm->ow_t_file_<<endl;
+if(tdef->cweb_marker()!=0){
+WRT_CWEB_MARKER(&Fsm->ow_t_file_,tdef->cweb_marker());
+}
+/*65:*/
+//line 2376 "./o2externs.w"
+
+KCHARP rule_it=
+"\\fbreak%s\n"
+"\\hrule\n";
+x= sprintf(Fsm->big_buf_,rule_it," ");
+Fsm->ow_t_file_.write(Fsm->big_buf_,x);
+
+/*:65*/
+//line 2421 "./o2externs.w"
+
+
+/*:66*/
+//line 2500 "./o2externs.w"
+
+/*69:*/
+//line 2472 "./o2externs.w"
+
+SDC_MAP_type*sr_dirs= tdef->directives_map();
+SDC_MAP_ITER_type i= sr_dirs->begin();
+SDC_MAP_ITER_type ie= sr_dirs->end();
+TOKEN_GAGGLE dirs_tokens;
+for(;i!=ie;++i){
+CAbs_lr1_sym*sym= i->second;
+dirs_tokens.push_back(*sym);
+}
+
+/*:69*/
+//line 2501 "./o2externs.w"
+
+using namespace NS_cweave_T_sdc;
+Ccweave_T_sdc sdc_fsm;
+XLATE_SYMBOLS_FOR_cweave(tdef->t_name()->c_str(),term_name);
+sdc_fsm.initialize(&Fsm->ow_t_file_,term_name);
+Parser sdc_emit(sdc_fsm,&dirs_tokens,0);
+sdc_emit.parse();
+}
+/*68:*/
+//line 2448 "./o2externs.w"
+
+if(T_phrase->terminals_sufx_code()!=0){
+KCHARP tsuf=
+"@*1 {\\bf Terminals-sufx} directive.\\fbreak\n";
+Fsm->ow_t_file_<<tsuf;
+
+T_syntax_code*stc= T_phrase->terminals_sufx_code();
+if(stc->cweb_marker()!=0){
+WRT_CWEB_MARKER(&Fsm->ow_t_file_,stc->cweb_marker());
+}
+KCHARP tsuf_code=
+"@<terminals-sufx directive@>=\n"
+"%s"
+"\n";
+
+int x= sprintf(Fsm->big_buf_
+,tsuf_code
+,T_phrase->terminals_sufx_code()->syntax_code()->c_str()
+);
+Fsm->ow_t_file_.write(Fsm->big_buf_,x);
+Fsm->ow_t_file_<<endl;
+}
+
+/*:68*/
+//line 2509 "./o2externs.w"
+
+Fsm->ow_t_file_<<"@** Index.\n";
+}
+
+/*:70*//*75:*/
+//line 2577 "./o2externs.w"
+
+void
+NS_mpost_output::
+Cmpost_output::
+MPOST_CWEB_wrt_Err
+(Cmpost_output*Fsm,T_error_symbols_phrase*Err_phrase){
+/*72:*/
+//line 2517 "./o2externs.w"
+
+output_cweb_macros_and_banner(
+Fsm,Fsm->ow_err_file_,"Error Vocabulary",Fsm->gened_date_time_.c_str()
+,Err_phrase->filename_id()->identifier()
+,Err_phrase->namespace_id()->identifier()
+,Err_phrase->alphabet()->size());
+
+/*:72*/
+//line 2583 "./o2externs.w"
+
+if(Err_phrase->cweb_marker()!=0){
+WRT_CWEB_MARKER(&Fsm->ow_err_file_,Err_phrase->cweb_marker());
+}
+
+T_DEF_MAP_ITER_type a= Err_phrase->alphabet()->begin();
+T_DEF_MAP_ITER_type ae= Err_phrase->alphabet()->end();
+char term_name[Max_cweb_item_size];
+for(;a!=ae;++a){
+T_terminal_def*tdef= a->second;
+/*74:*/
+//line 2541 "./o2externs.w"
+
+char ab[]= "Y";
+if(tdef->autoabort()==true)ab[0]= 'Y';
+else ab[0]= 'N';
+char ad[]= "Y";
+if(tdef->autodelete()==true)ad[0]= 'Y';
+else ad[0]= 'N';
+char name[Max_cweb_item_size];
+XLATE_SYMBOLS_FOR_cweave(tdef->t_name()->c_str(),name);
+char class_name[Max_cweb_item_size];
+XLATE_SYMBOLS_FOR_cweave(tdef->classsym()->c_str(),class_name);
+const char*enum_name_for_format=
+"T\\_%s\\_";
+char enum_name[Max_cweb_item_size];
+XLATE_SYMBOLS_FOR_cweave(tdef->classsym()->c_str(),enum_name);
+char a[SMALL_BUFFER_4K];
+sprintf(a,enum_name_for_format,enum_name);
+KCHARP t_entry= "@*2 {\\bf %s}.\\fbreak\n"
+"Enum: %s\n\\fbreak\n"
+"\\line{Class: %s \\hfil AB: %s \\hfil AD: %s}\n";
+int x= sprintf(Fsm->big_buf_
+,t_entry
+,name
+,a
+,class_name
+,ab
+,ad
+);
+Fsm->ow_err_file_.write(Fsm->big_buf_,x);
+Fsm->ow_err_file_<<endl;
+if(tdef->cweb_marker()!=0){
+WRT_CWEB_MARKER(&Fsm->ow_err_file_,tdef->cweb_marker());
+}
+/*73:*/
+//line 2525 "./o2externs.w"
+
+KCHARP rule_it=
+"\\fbreak%s\n"
+"\\hrule\n";
+x= sprintf(Fsm->big_buf_,rule_it," ");
+Fsm->ow_err_file_.write(Fsm->big_buf_,x);
+
+/*:73*/
+//line 2574 "./o2externs.w"
+
+
+/*:74*/
+//line 2593 "./o2externs.w"
+
+/*69:*/
+//line 2472 "./o2externs.w"
+
+SDC_MAP_type*sr_dirs= tdef->directives_map();
+SDC_MAP_ITER_type i= sr_dirs->begin();
+SDC_MAP_ITER_type ie= sr_dirs->end();
+TOKEN_GAGGLE dirs_tokens;
+for(;i!=ie;++i){
+CAbs_lr1_sym*sym= i->second;
+dirs_tokens.push_back(*sym);
+}
+
+/*:69*/
+//line 2594 "./o2externs.w"
+
+using namespace NS_cweave_T_sdc;
+Ccweave_T_sdc sdc_fsm;
+XLATE_SYMBOLS_FOR_cweave(tdef->t_name()->c_str(),term_name);
+sdc_fsm.initialize(&Fsm->ow_err_file_,term_name);
+Parser sdc_emit(sdc_fsm,&dirs_tokens,0);
+sdc_emit.parse();
+}
+Fsm->ow_err_file_<<"@** Index.\n";
+}
+
+
+/*:75*//*81:*/
+//line 2722 "./o2externs.w"
+
+void
+NS_mpost_output::
+Cmpost_output::
+MPOST_CWEB_wrt_Lrk
+(Cmpost_output*Fsm,T_lr1_k_phrase*Lrk_phrase){
+/*77:*/
+//line 2610 "./o2externs.w"
+
+output_cweb_macros_and_banner(
+Fsm,Fsm->ow_lrk_file_,"Lr K Vocabulary",Fsm->gened_date_time_.c_str()
+,Lrk_phrase->filename_id()->identifier()
+,Lrk_phrase->namespace_id()->identifier()
+,Lrk_phrase->alphabet()->size()
+);
+
+/*:77*/
+//line 2728 "./o2externs.w"
+
+if(Lrk_phrase->cweb_marker()!=0){
+WRT_CWEB_MARKER(&Fsm->ow_lrk_file_,Lrk_phrase->cweb_marker());
+}
+char term_name[Max_cweb_item_size];
+char name[Max_cweb_item_size];
+
+T_DEF_MAP_ITER_type a= Lrk_phrase->alphabet()->begin();
+T_DEF_MAP_ITER_type ae= Lrk_phrase->alphabet()->end();
+for(;a!=ae;++a){
+T_terminal_def*tdef= a->second;
+/*79:*/
+//line 2633 "./o2externs.w"
+
+char ab[]= "Y";
+if(tdef->autoabort()==true)ab[0]= 'Y';
+else ab[0]= 'N';
+char ad[]= "Y";
+
+if(tdef->autodelete()==true)ad[0]= 'Y';
+else ad[0]= 'N';
+switch(tdef->enumerated_id__){
+case T_Enum::T_LR1_parallel_operator_:{
+strcpy(name,"\\paralleloperator");
+strcpy(term_name,"|parallel_operator|");
+break;
+}
+case T_Enum::T_LR1_all_shift_operator_:{
+strcpy(name,"\\allshift");
+strcpy(term_name,"|all_shift|");
+break;
+}
+case T_Enum::T_LR1_invisible_shift_operator_:{
+strcpy(name,"\\invisibleshift");
+strcpy(term_name,"|invisible_shift|");
+break;
+}
+case T_Enum::T_LR1_fset_transience_operator_:{
+strcpy(name,"\\transienceoperator");
+strcpy(term_name,"|transience_operator|");
+break;
+}
+case T_Enum::T_LR1_questionable_shift_operator_:{
+strcpy(name,"\\questionableoperator");
+strcpy(term_name,"|questionable_operator|");
+break;
+}
+default:{
+XLATE_SYMBOLS_FOR_cweave(tdef->t_name()->c_str(),name);
+XLATE_SYMBOLS_FOR_cweave(tdef->t_name()->c_str(),term_name);
+break;
+}
+}
+const char*enum_class_name_format= "T\\_%s\\_";
+char class_name[Max_cweb_item_size];
+XLATE_SYMBOLS_FOR_cweave(tdef->classsym()->c_str(),class_name);
+char a[SMALL_BUFFER_4K];
+sprintf(a,enum_class_name_format,class_name);
+
+KCHARP t_entry= "@*2 {\\bf %s}.\\fbreak\n"
+"Enum: %s\n\\fbreak\n"
+"\\line{Class: %s \\hfil AB: %s \\hfil AD: %s}\n";
+int x= sprintf(Fsm->big_buf_
+,t_entry
+,name
+,a
+,class_name
+,ab
+,ad
+);
+Fsm->ow_lrk_file_.write(Fsm->big_buf_,x);
+Fsm->ow_lrk_file_<<endl;
+if(tdef->cweb_marker()!=0){
+WRT_CWEB_MARKER(&Fsm->ow_lrk_file_,tdef->cweb_marker());
+}
+/*78:*/
+//line 2619 "./o2externs.w"
+
+KCHARP rule_it=
+"\\fbreak%s\n"
+"\\hrule\n";
+x= sprintf(Fsm->big_buf_,rule_it," ");
+Fsm->ow_lrk_file_.write(Fsm->big_buf_,x);
+
+/*:78*/
+//line 2695 "./o2externs.w"
+
+
+/*:79*/
+//line 2739 "./o2externs.w"
+
+/*69:*/
+//line 2472 "./o2externs.w"
+
+SDC_MAP_type*sr_dirs= tdef->directives_map();
+SDC_MAP_ITER_type i= sr_dirs->begin();
+SDC_MAP_ITER_type ie= sr_dirs->end();
+TOKEN_GAGGLE dirs_tokens;
+for(;i!=ie;++i){
+CAbs_lr1_sym*sym= i->second;
+dirs_tokens.push_back(*sym);
+}
+
+/*:69*/
+//line 2740 "./o2externs.w"
+
+using namespace NS_cweave_T_sdc;
+Ccweave_T_sdc sdc_fsm;
+sdc_fsm.initialize(&Fsm->ow_lrk_file_,term_name);
+Parser sdc_emit(sdc_fsm,&dirs_tokens,0);
+sdc_emit.parse();
+}
+/*80:*/
+//line 2698 "./o2externs.w"
+
+if(Lrk_phrase->lrk_sufx_code()!=0){
+KCHARP tsuf=
+"@*1 {\\bf lrk-sufx} directive.\\fbreak\n";
+Fsm->ow_lrk_file_<<tsuf;
+
+T_syntax_code*stc= Lrk_phrase->lrk_sufx_code();
+if(stc->cweb_marker()!=0){
+WRT_CWEB_MARKER(&Fsm->ow_lrk_file_,stc->cweb_marker());
+}
+KCHARP tsuf_code=
+"@<lrk-sufx directive@>=\n"
+"%s"
+"\n";
+int x= sprintf(Fsm->big_buf_
+,tsuf_code
+,Lrk_phrase->lrk_sufx_code()->syntax_code()->c_str()
+);
+Fsm->ow_lrk_file_.write(Fsm->big_buf_,x);
+Fsm->ow_lrk_file_<<endl;
+}
+
+
+/*:80*/
+//line 2747 "./o2externs.w"
+
+Fsm->ow_lrk_file_<<"@** Index.\n";
+}
+
+/*:81*//*82:*/
+//line 2754 "./o2externs.w"
+
+void
+NS_mpost_output::
+Cmpost_output::
+MPOST_CWEB_wrt_rule_s_lhs_sdc
+(Cmpost_output*Fsm,rule_def*Rule_def){
+T_rule_lhs_phrase*rlp= Rule_def->rule_lhs();
+if(rlp==0)return;
+SDC_MAP_type*sr_dirs= rlp->lhs_directives_map();
+SDC_MAP_ITER_type i= sr_dirs->begin();
+SDC_MAP_ITER_type ie= sr_dirs->end();
+TOKEN_GAGGLE dirs_tokens;
+for(;i!=ie;++i){
+CAbs_lr1_sym*sym= i->second;
+dirs_tokens.push_back(*sym);
+}
+T_parallel_monitor_phrase*ppm= Rule_def->parallel_mntr();
+if(ppm!=0){
+sr_dirs= ppm->mntr_directives_map();
+i= sr_dirs->begin();
+ie= sr_dirs->end();
+for(;i!=ie;++i){
+CAbs_lr1_sym*sym= i->second;
+dirs_tokens.push_back(*sym);
+}
+}
+using namespace NS_cweave_lhs_sdc;
+Ccweave_lhs_sdc lhs_sdc_fsm;
+lhs_sdc_fsm.initialize(&Fsm->ow_file_,Rule_def->rule_name()->c_str());
+Parser lhs_sdc_emit(lhs_sdc_fsm,&dirs_tokens,0);
+lhs_sdc_emit.parse();
+}
+
+/*:82*//*83:*/
+//line 2791 "./o2externs.w"
+
+bool
+NS_mpost_output::
+Cmpost_output::
+MPOST_CWEB_should_subrule_be_printed
+(Cmpost_output*Fsm,T_subrule_def*Subrule_def){
+if(Subrule_def->cweb_marker()!=0)return true;
+SDC_MAP_type*sr_dirs= Subrule_def->subrule_directives();
+if(sr_dirs->empty()==true)return false;
+return true;
+}
+/*:83*//*85:*/
+//line 2852 "./o2externs.w"
+
+void
+NS_mpost_output::
+Cmpost_output::
+MPOST_CWEB_xref_refered_T
+(Cmpost_output*Fsm,refered_T*R_T){
+T_in_stbl*t= R_T->t_in_stbl();
+T_terminal_def*td= t->t_def();
+
+KCHARP xref= "@.%s@>\n";
+
+char name[Max_cweb_item_size];
+XLATE_SYMBOLS_FOR_cweave(td->t_name()->c_str(),name);
+/*84:*/
+//line 2804 "./o2externs.w"
+
+switch(td->classification()){
+case T_terminal_def::err:{
+int x= sprintf(Fsm->big_buf_,xref,name);
+Fsm->ow_file_.write(Fsm->big_buf_,x);
+break;
+}
+case T_terminal_def::rc:{
+break;
+INT_STR_MAP_ITER_type i= Fsm->xlated_names_.find(td->enumerated_id__);
+if(i!=Fsm->xlated_names_.end()){
+int x= sprintf(Fsm->big_buf_,xref,i->second.c_str());
+Fsm->ow_file_.write(Fsm->big_buf_,x);
+}else{
+int x= sprintf(Fsm->big_buf_,xref,name);
+Fsm->ow_file_.write(Fsm->big_buf_,x);
+}
+break;
+}
+case T_terminal_def::lrk:{
+INT_STR_MAP_ITER_type i= Fsm->xlated_names_.find(td->enumerated_id__);
+if(i!=Fsm->xlated_names_.end()){
+int x= sprintf(Fsm->big_buf_,xref,i->second.c_str());
+Fsm->ow_file_.write(Fsm->big_buf_,x);
+}else{
+int x= sprintf(Fsm->big_buf_,xref,name);
+Fsm->ow_file_.write(Fsm->big_buf_,x);
+}
+break;
+}
+case T_terminal_def::t:{
+INT_STR_MAP_ITER_type i= Fsm->xlated_names_.find(td->enumerated_id__);
+if(i!=Fsm->xlated_names_.end()){
+int x= sprintf(Fsm->big_buf_,xref,i->second.c_str());
+Fsm->ow_file_.write(Fsm->big_buf_,x);
+}else{
+int x= sprintf(Fsm->big_buf_,xref,name);
+Fsm->ow_file_.write(Fsm->big_buf_,x);
+}
+break;
+}
+}
+
+/*:84*/
+//line 2865 "./o2externs.w"
+
+}
+
+/*:85*//*86:*/
+//line 2871 "./o2externs.w"
+
+void
+NS_mpost_output::
+Cmpost_output::
+MPOST_CWEB_xref_refered_rule
+(Cmpost_output*Fsm,refered_rule*R_rule){
+rule_in_stbl*r= R_rule->Rule_in_stbl();
+rule_def*rd= r->r_def();
+KCHARP xref= "@.%s@>\n";
+string name_with_bkslash;
+int len= rd->rule_name()->length();
+for(int x= 0;x<len;++x){
+char c= (*rd->rule_name())[x];
+if(c=='_'){
+name_with_bkslash+= '\\';
+}
+name_with_bkslash+= c;
+}
+int x= sprintf(Fsm->big_buf_,xref,name_with_bkslash.c_str());
+Fsm->ow_file_.write(Fsm->big_buf_,x);
+}
+
+/*:86*//*93:*/
+//line 3044 "./o2externs.w"
+
+AST*elem_space[Max_no_subrules];
+void GEN_CALLED_THREADS_FS_OF_RULE(rule_def*Start_rule){
+using namespace NS_yacco2_T_enum;
+using namespace std;
+std::set<rule_def*> rules_in_elem_space;
+std::set<rule_def*> ::iterator i;
+INT_SET_type sr_filter;
+sr_filter.insert(T_Enum::T_T_subrule_def_);
+tok_can_ast_functor just_walk_functr;
+T_enum_phrase*enum_ph= O2_T_ENUM_PHASE;
+int cc(0);
+int nc(-1);
+AST*cur_elem_t(0);
+CAbs_lr1_sym*cur_elem(0);
+/*89:*/
+//line 2968 "./o2externs.w"
+
+{
+AST*rtree= Start_rule->rule_s_tree();
+ast_prefix_1forest subrule_walk(*rtree,&just_walk_functr,&sr_filter,ACCEPT_FILTER);
+tok_can<AST*> subrules_can(subrule_walk);
+yacco2::UINT xxx(0);
+for(;subrules_can.operator[](xxx)!=yacco2::PTR_LR1_eog__;++xxx);
+/*88:*/
+//line 2955 "./o2externs.w"
+
+vector<AST*> ::iterator ti= subrules_can.nodes_visited()->begin();
+vector<AST*> ::iterator tie= subrules_can.nodes_visited()->end();
+for(;ti!=tie;++ti){
+AST*srdef_t= *ti;
+T_subrule_def* sr_def = (T_subrule_def*)AST::content(*srdef_t);
+AST*sr_t= sr_def->subrule_s_tree();
+AST*et= AST::get_spec_child(*sr_t,1);
+++nc;
+elem_space[nc]= et;
+}
+
+/*:88*/
+//line 2975 "./o2externs.w"
+
+}
+
+/*:89*/
+//line 3059 "./o2externs.w"
+
+while(cc<=nc){
+cur_elem_t= elem_space[cc];
+cur_elem= AST::content(*cur_elem_t);
+/*91:*/
+//line 2996 "./o2externs.w"
+
+switch(cur_elem->enumerated_id__){
+case T_Enum::T_T_eosubrule_:{
+++cc;
+continue;
+}
+case T_Enum::T_refered_T_:{
+refered_T* rt = (refered_T*)cur_elem;
+T_terminal_def*td= rt->its_t_def();
+if(td->enum_id()!=LR1_PARALLEL_OPERATOR){
+++cc;
+continue;
+}
+/*92:*/
+//line 3032 "./o2externs.w"
+
+AST*first_el_t= cur_elem_t;
+AST*third_el_t= AST::get_younger_sibling(*first_el_t,2);
+CAbs_lr1_sym*sym= AST::content(*third_el_t);
+if(sym->enumerated_id__==T_Enum::T_T_called_thread_eosubrule_){
+T_called_thread_eosubrule*ct= (T_called_thread_eosubrule*)sym;
+Start_rule->add_to_called_thread_first_set(ct);
+}
+
+/*:92*/
+//line 3009 "./o2externs.w"
+
+++cc;
+continue;
+}
+case T_Enum::T_refered_rule_:{
+refered_rule* rr = (refered_rule*)cur_elem;
+rule_def*rdef= rr->its_rule_def();
+/*90:*/
+//line 2979 "./o2externs.w"
+
+{
+i= rules_in_elem_space.find(rdef);
+if(i==rules_in_elem_space.end()){
+rules_in_elem_space.insert(rdef);
+AST*rtree= rdef->rule_s_tree();
+ast_prefix_1forest subrule_walk(*rtree,&just_walk_functr,&sr_filter,ACCEPT_FILTER);
+tok_can<AST*> subrules_can(subrule_walk);
+yacco2::UINT xxx(0);
+for(;subrules_can.operator[](xxx)!=yacco2::PTR_LR1_eog__;++xxx);
+/*88:*/
+//line 2955 "./o2externs.w"
+
+vector<AST*> ::iterator ti= subrules_can.nodes_visited()->begin();
+vector<AST*> ::iterator tie= subrules_can.nodes_visited()->end();
+for(;ti!=tie;++ti){
+AST*srdef_t= *ti;
+T_subrule_def* sr_def = (T_subrule_def*)AST::content(*srdef_t);
+AST*sr_t= sr_def->subrule_s_tree();
+AST*et= AST::get_spec_child(*sr_t,1);
+++nc;
+elem_space[nc]= et;
+}
+
+/*:88*/
+//line 2989 "./o2externs.w"
+
+}
+}
+
+/*:90*/
+//line 3016 "./o2externs.w"
+
+if(rdef->epsilon()==YES){
+AST*et= AST::brother(*cur_elem_t);
+elem_space[cc]= et;
+continue;
+}else{
+++cc;
+continue;
+}
+}
+}
+/*:91*/
+//line 3063 "./o2externs.w"
+
+}
+}
+
+/*:93*//*98:*/
+//line 3145 "./o2externs.w"
+
+void GEN_FS_OF_RULE(rule_def*Rule_def){
+using namespace NS_yacco2_T_enum;
+using namespace std;
+std::set<rule_def*> rules_in_elem_space;
+std::set<rule_def*> ::iterator i;
+INT_SET_type sr_filter;
+sr_filter.insert(T_Enum::T_T_subrule_def_);
+tok_can_ast_functor just_walk_functr;
+
+T_enum_phrase*enum_ph= O2_T_ENUM_PHASE;
+int cc(0);
+int nc(-1);
+AST*cur_elem_t(0);
+CAbs_lr1_sym*cur_elem(0);
+/*95:*/
+//line 3075 "./o2externs.w"
+
+{
+AST*rtree= Rule_def->rule_s_tree();
+ast_prefix_1forest subrule_walk(*rtree,&just_walk_functr,&sr_filter,ACCEPT_FILTER);
+tok_can<AST*> subrules_can(subrule_walk);
+yacco2::UINT xxx(0);
+for(;subrules_can.operator[](xxx)!=yacco2::PTR_LR1_eog__;++xxx);
+/*88:*/
+//line 2955 "./o2externs.w"
+
+vector<AST*> ::iterator ti= subrules_can.nodes_visited()->begin();
+vector<AST*> ::iterator tie= subrules_can.nodes_visited()->end();
+for(;ti!=tie;++ti){
+AST*srdef_t= *ti;
+T_subrule_def* sr_def = (T_subrule_def*)AST::content(*srdef_t);
+AST*sr_t= sr_def->subrule_s_tree();
+AST*et= AST::get_spec_child(*sr_t,1);
+++nc;
+elem_space[nc]= et;
+}
+
+/*:88*/
+//line 3082 "./o2externs.w"
+
+}
+
+/*:95*/
+//line 3160 "./o2externs.w"
+
+/*97:*/
+//line 3126 "./o2externs.w"
+
+if(Rule_def->rule_no()!=1)goto not_start_rule;
+if(O2_PP_PHASE==0)goto not_start_rule;
+if(Rule_def->epsilon()==NO)goto not_start_rule;
+{
+T_parallel_la_boundary*la= O2_PP_PHASE->la_bndry();
+set<T_in_stbl*> ::iterator lai= la->la_first_set()->begin();
+set<T_in_stbl*> ::iterator laie= la->la_first_set()->end();
+for(;lai!=laie;++lai){
+T_in_stbl*tstbl= *lai;
+Rule_def->add_to_first_set(*tstbl);
+}
+}
+not_start_rule:;
+
+/*:97*/
+//line 3161 "./o2externs.w"
+
+while(cc<=nc){
+cur_elem_t= elem_space[cc];
+cur_elem= AST::content(*cur_elem_t);
+/*96:*/
+//line 3086 "./o2externs.w"
+
+switch(cur_elem->enumerated_id__){
+case T_Enum::T_T_eosubrule_:{
+++cc;
+continue;
+}
+case T_Enum::T_refered_T_:{
+refered_T* rt = (refered_T*)cur_elem;
+T_in_stbl*tstbl= rt->t_in_stbl();
+Rule_def->add_to_first_set(*tstbl);
+Rule_def->add_rule_adding_T_in_first_set(tstbl,rt->grammar_s_enumerate());
+++cc;
+continue;
+}
+case T_Enum::T_refered_rule_:{
+refered_rule* rr = (refered_rule*)cur_elem;
+rule_def*rdef= rr->its_rule_def();
+/*90:*/
+//line 2979 "./o2externs.w"
+
+{
+i= rules_in_elem_space.find(rdef);
+if(i==rules_in_elem_space.end()){
+rules_in_elem_space.insert(rdef);
+AST*rtree= rdef->rule_s_tree();
+ast_prefix_1forest subrule_walk(*rtree,&just_walk_functr,&sr_filter,ACCEPT_FILTER);
+tok_can<AST*> subrules_can(subrule_walk);
+yacco2::UINT xxx(0);
+for(;subrules_can.operator[](xxx)!=yacco2::PTR_LR1_eog__;++xxx);
+/*88:*/
+//line 2955 "./o2externs.w"
+
+vector<AST*> ::iterator ti= subrules_can.nodes_visited()->begin();
+vector<AST*> ::iterator tie= subrules_can.nodes_visited()->end();
+for(;ti!=tie;++ti){
+AST*srdef_t= *ti;
+T_subrule_def* sr_def = (T_subrule_def*)AST::content(*srdef_t);
+AST*sr_t= sr_def->subrule_s_tree();
+AST*et= AST::get_spec_child(*sr_t,1);
+++nc;
+elem_space[nc]= et;
+}
+
+/*:88*/
+//line 2989 "./o2externs.w"
+
+}
+}
+
+/*:90*/
+//line 3103 "./o2externs.w"
+
+if(rdef->epsilon()==YES){
+AST*et= AST::brother(*cur_elem_t);
+elem_space[cc]= et;
+continue;
+}else{
+++cc;
+continue;
+}
+}
+}
+
+/*:96*/
+//line 3165 "./o2externs.w"
+
+}
+}
+
+/*:98*//*102:*/
+//line 3207 "./o2externs.w"
+
+bool
+fs_sort_criteria(const NS_yacco2_terminals::T_in_stbl*E1,const NS_yacco2_terminals::T_in_stbl*E2){
+T_in_stbl* e1 = (T_in_stbl*)E1;
+T_in_stbl* e2 = (T_in_stbl*)E2;
+T_terminal_def*e1_t_def= e1->t_def();
+T_terminal_def*e2_t_def= e2->t_def();
+string*e1s= e1_t_def->t_name();
+string*e2s= e2_t_def->t_name();
+if(*e1s<*e2s)return true;
+return false;
+}
+void PRT_RULE_S_FIRST_SET(std::ofstream&Ofile,NS_yacco2_terminals::rule_def*Rule_def){
+/*100:*/
+//line 3178 "./o2externs.w"
+
+T_IN_STBL_SET_type*fs= Rule_def->first_set();
+Ofile<<"@*2 |"<<Rule_def->rule_name()->c_str()<<"|";
+if(Rule_def->epsilon()==true){
+Ofile<<"{$^\\emptyrule$}";
+}
+Ofile<<" \\# in set: "<<fs->size()<<".\\fbreak"<<std::endl;
+T_IN_STBL_SORTED_SET_type ran_array;
+ran_array.reserve(fs->size());
+T_IN_STBL_SET_ITER_type ii= fs->begin();
+T_IN_STBL_SET_ITER_type iie= fs->end();
+for(;ii!=iie;++ii){
+ran_array.push_back(*ii);
+}
+stable_sort(ran_array.begin(),ran_array.end(),fs_sort_criteria);
+
+/*:100*/
+//line 3220 "./o2externs.w"
+
+/*101:*/
+//line 3195 "./o2externs.w"
+
+char xlate[Max_cweb_item_size];
+T_IN_STBL_SORTED_SET_ITER_type i= ran_array.begin();
+T_IN_STBL_SORTED_SET_ITER_type ie= ran_array.end();
+for(;i!=ie;++i){
+T_in_stbl*el= *i;
+Ofile<<" ";
+XLATE_SYMBOLS_FOR_cweave(el->t_def()->t_name()->c_str(),xlate);
+Ofile<<xlate<<"\\ \\ "<<std::endl;
+}
+
+/*:101*/
+//line 3221 "./o2externs.w"
+
+}
+
+/*:102*//*104:*/
+//line 3234 "./o2externs.w"
+
+LA_SET_type*make_copy_of_la_set(LA_SET_type*Set1){
+LA_SET_type*copy_set= new LA_SET_type;
+using namespace yacco2_stbl;
+T_sym_tbl_report_card report_card;
+find_sym_in_stbl(report_card,*LR1_EOLR_LITERAL);
+T_in_stbl* td = (T_in_stbl*)report_card.tbl_entry_->symbol_;
+LA_SET_ITER_type f= Set1->find(td);
+if(f!=Set1->end()){
+copy_set->insert(td);
+return copy_set;
+}
+LA_SET_ITER_type i= Set1->begin();
+LA_SET_ITER_type ie= Set1->end();
+for(;i!=ie;++i){
+copy_set->insert(*i);
+}
+return copy_set;
+}
+
+/*:104*//*105:*/
+//line 3256 "./o2externs.w"
+
+bool are_2_la_sets_equal(LA_SET_type*Common_set1,LA_SET_type*Set2){
+LA_SET_type*la_set_to_compare_against= Set2;
+using namespace yacco2_stbl;
+T_sym_tbl_report_card report_card;
+find_sym_in_stbl(report_card,*LR1_EOLR_LITERAL);
+T_in_stbl* td = (T_in_stbl*)report_card.tbl_entry_->symbol_;
+LA_SET_type*eolr_set(0);
+LA_SET_ITER_type f= Set2->find(td);
+if(f!=Set2->end()){
+eolr_set= new LA_SET_type;
+eolr_set->insert(td);
+la_set_to_compare_against= eolr_set;
+}
+
+if(Common_set1->size()!=la_set_to_compare_against->size()){
+if(eolr_set!=0)delete eolr_set;
+return false;
+}
+LA_SET_ITER_type set1i= Common_set1->begin();
+LA_SET_ITER_type set1ie= Common_set1->end();
+LA_SET_ITER_type set2i= la_set_to_compare_against->begin();
+LA_SET_ITER_type set2ie= la_set_to_compare_against->end();
+for(;set1i!=set1ie;){
+T_in_stbl*set1T= *set1i;
+T_in_stbl*set2T= *set2i;
+if(set1T!=set2T)
+return false;
+++set1i;
+++set2i;
+}
+if(eolr_set!=0)delete eolr_set;
+return true;
+}
+
+/*:105*//*106:*/
+//line 3292 "./o2externs.w"
+
+int find_common_la_set_idx(LA_SET_type*La_){
+if(COMMON_LA_SETS.empty()==true){
+LA_SET_type*copy_set= make_copy_of_la_set(La_);
+COMMON_LA_SETS.push_back(copy_set);
+return 0;
+}
+COMMON_LA_SETS_ITER_type i= COMMON_LA_SETS.begin();
+COMMON_LA_SETS_ITER_type ie= COMMON_LA_SETS.end();
+int idx(0);
+for(;i!=ie;++i,++idx){
+LA_SET_type*st1= *i;
+bool result= are_2_la_sets_equal(st1,La_);
+if(result==true){
+return idx;
+}
+}
+LA_SET_type*copy_set= make_copy_of_la_set(La_);
+COMMON_LA_SETS.push_back(copy_set);
+return idx;
+}
+
+
+/*:106*//*107:*/
+//line 3321 "./o2externs.w"
+
+void COMMONIZE_LA_SETS(){
+STATES_ITER_type si= LR1_STATES.begin();
+STATES_ITER_type sie= LR1_STATES.end();
+for(;si!=sie;++si){
+state*cur_state= *si;
+S_VECTORS_ITER_type svi= cur_state->state_s_vector_.begin();
+S_VECTORS_ITER_type svie= cur_state->state_s_vector_.end();
+for(;svi!=svie;++svi){
+S_VECTOR_ELEMS_ITER_type seli= svi->second.begin();
+S_VECTOR_ELEMS_ITER_type selie= svi->second.end();
+for(;seli!=selie;++seli){
+state_element*se= *seli;
+if(se->goto_state_!=0)continue;
+bool set_ok= se->calc_la(*se);
+if(set_ok==false){
+return;
+}
+se->common_la_set_idx_= find_common_la_set_idx(se->la_set_);
+}
+}
+}
+}
+
+/*:107*//*109:*/
+//line 3367 "./o2externs.w"
+
+int calc_cyclic_key
+(NS_yacco2_terminals::rule_def*Rule_use,NS_yacco2_terminals::rule_def*Against_rule){
+using namespace NS_yacco2_T_enum;
+static int no_of_rules(0);
+static int start_of_rules(0);
+if(no_of_rules==0){
+start_of_rules= O2_T_ENUM_PHASE->total_enumerate();
+no_of_rules= O2_RULES_PHASE->rules_alphabet()->size();
+}
+int rule_use_enum_rel0= Rule_use->enum_id()-start_of_rules;
+int part1_key_of_rule_use= rule_use_enum_rel0*no_of_rules;
+int against_rule_enum_rel0= Against_rule->enum_id()-start_of_rules;
+int part2_key_of_against_rule= against_rule_enum_rel0;
+int key= part1_key_of_rule_use+part2_key_of_against_rule;
+return key;
+}
+
+/*:109*//*110:*/
+//line 3392 "./o2externs.w"
+
+void determine_rhs_indirect_use_cnt
+(NS_yacco2_terminals::rule_def*Use_for_rule,yacco2::AST*SRule_t
+,NS_yacco2_terminals::rule_def*Against_rule){
+using namespace NS_yacco2_T_enum;
+SET_FILTER_type filter;
+filter.insert(T_Enum::T_refered_rule_);
+
+tok_can_ast_functor walk_functr;
+ast_prefix_1forest walk(*SRule_t,&walk_functr,&filter,ACCEPT_FILTER);
+TOK_CAN_TREE_type rules_use_can(walk);
+int indirect_use_cnt(0);
+int direct_use_cnt(0);
+int x(0);
+CAbs_lr1_sym*sym= rules_use_can[x];
+for(;sym->enumerated_id()!=LR1_Eog;++x,sym= rules_use_can[x]){
+refered_rule* rr = (refered_rule*)sym;
+rule_def*its_rd= rr->its_rule_def();
+if(its_rd==Use_for_rule){
+continue;
+}
+int idc= MAX_USE_CNT_RxR(Use_for_rule,its_rd);
+}
+}
+
+/*:110*//*111:*/
+//line 3423 "./o2externs.w"
+
+int determine_rhs_max_use_cnt
+(NS_yacco2_terminals::rule_def*Use_for_rule,yacco2::AST*SRule_t
+,NS_yacco2_terminals::rule_def*Against_rule){
+using namespace NS_yacco2_T_enum;
+SET_FILTER_type filter;
+filter.insert(T_Enum::T_refered_rule_);
+
+tok_can_ast_functor walk_functr;
+ast_prefix_1forest walk(*SRule_t,&walk_functr,&filter,ACCEPT_FILTER);
+TOK_CAN_TREE_type rules_use_can(walk);
+int running_indirect_use_cnt(0);
+int running_direct_use_cnt(0);
+int x(0);
+CAbs_lr1_sym*sym= rules_use_can[x];
+rule_def*its_rd(0);
+for(;sym->enumerated_id()!=LR1_Eog;++x,sym= rules_use_can[x]){
+refered_rule* rr = (refered_rule*)sym;
+its_rd= rr->its_rule_def();
+if(its_rd==Against_rule)Against_rule->recursive(YES);
+if(its_rd==Use_for_rule){
+++running_direct_use_cnt;
+continue;
+}else{
+use_cnt_type rule_use_key(Use_for_rule,its_rd);
+int use_cnt_key= calc_cyclic_key(Use_for_rule,its_rd);
+CYCLIC_USE_TBL_ITER_type i= CYCLIC_USE_TABLE.find(use_cnt_key);
+use_cnt_type&uc= i->second;
+int idc= uc.use_cnt_;
+int potential_idc_cnt= idc+running_direct_use_cnt;
+if(potential_idc_cnt> running_indirect_use_cnt){
+running_indirect_use_cnt= potential_idc_cnt;
+}
+}
+}
+if(running_direct_use_cnt> running_indirect_use_cnt){
+return running_direct_use_cnt;
+}
+return running_indirect_use_cnt;
+}
+
+/*:111*//*112:*/
+//line 3466 "./o2externs.w"
+
+int MAX_USE_CNT_RxR
+(NS_yacco2_terminals::rule_def*Rule_use,NS_yacco2_terminals::rule_def*Against_rule){
+use_cnt_type rule_use_key(Rule_use,Against_rule);
+int use_cnt_key= calc_cyclic_key(Rule_use,Against_rule);
+CYCLIC_USE_TBL_ITER_type i= CYCLIC_USE_TABLE.find(use_cnt_key);
+if(i!=CYCLIC_USE_TABLE.end()){
+return i->second.use_cnt_;
+}
+CYCLIC_USE_TABLE.insert(make_pair(use_cnt_key,rule_use_key));
+using namespace NS_yacco2_T_enum;
+if(Against_rule->rule_use_skeleton()==0){
+i= CYCLIC_USE_TABLE.find(use_cnt_key);
+use_cnt_type&uc= i->second;
+uc.use_cnt_= 0;
+return 0;
+}
+SET_FILTER_type filter;
+filter.insert(T_Enum::T_T_subrule_def_);
+tok_can_ast_functor walk_functr;
+ast_prefix walk(*Against_rule->rule_use_skeleton(),&walk_functr
+,&filter,ACCEPT_FILTER);
+TOK_CAN_TREE_type rules_use_can(walk);
+int use_cnt(0);
+int x(0);
+CAbs_lr1_sym*sym= rules_use_can[x];
+for(;sym->enumerated_id()!=LR1_Eog;++x,sym= rules_use_can[x]){
+AST*sr_t= rules_use_can.ast(x);
+determine_rhs_indirect_use_cnt(Rule_use,sr_t,Against_rule);
+int rhs_uc= determine_rhs_max_use_cnt(Rule_use,sr_t,Against_rule);
+if(use_cnt<rhs_uc){
+use_cnt= rhs_uc;
+}
+}
+i= CYCLIC_USE_TABLE.find(use_cnt_key);
+use_cnt_type&uc= i->second;
+if((Against_rule->recursive()==YES)
+&&(Rule_use!=Against_rule))use_cnt= 2*use_cnt;
+uc.use_cnt_= use_cnt;
+return use_cnt;
+}
+
+
+/*:112*//*115:*/
+//line 3610 "./o2externs.w"
+
+void intro_comment
+(std::ofstream&Op_str,const char*File_name){
+char big_buf_[BIG_BUFFER_32K];
+KCHARP op_template=
+"/*\n"
+" File: %s\n"
+" Date and Time: %s\n"
+"*/";
+
+int x= sprintf(big_buf_
+,op_template
+,File_name
+,DATE_AND_TIME()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+/*:115*//*116:*/
+//line 3638 "./o2externs.w"
+
+void grammar_header_includes
+(std::ofstream&Op_str){
+T_fsm_phrase*fsm_ph= O2_FSM_PHASE;
+T_enum_phrase*enum_ph= O2_T_ENUM_PHASE;
+T_lr1_k_phrase*lrk_ph= O2_LRK_PHASE;
+T_rc_phrase*rc_ph= O2_RC_PHASE;
+T_error_symbols_phrase*err_ph= O2_ERROR_PHASE;
+T_terminals_phrase*t_ph= O2_T_PHASE;
+char big_buf_[BIG_BUFFER_32K];
+KCHARP include_list=
+"#include \"%s\"\n"
+"#include \"%s.h\"\n"
+"#include \"%s.h\"\n"
+"#include \"%s.h\"\n"
+"#include \"%s.h\"\n"
+"#include \"%s.h\"";
+
+int x= sprintf(big_buf_
+,include_list
+,O2_library_file
+,enum_ph->filename_id()->identifier()->c_str()
+,lrk_ph->filename_id()->identifier()->c_str()
+,err_ph->filename_id()->identifier()->c_str()
+,t_ph->filename_id()->identifier()->c_str()
+,rc_ph->filename_id()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+/*:116*//*117:*/
+//line 3671 "./o2externs.w"
+
+void user_prefix_declaration_for_header
+(std::ofstream&Op_str){
+T_fsm_phrase*fsm_ph= O2_FSM_PHASE;
+char big_buf_[BIG_BUFFER_32K];
+KCHARP upd_code= "%s";
+
+T_fsm_class_phrase*fsm_class= fsm_ph->fsm_class_phrase();
+SDC_MAP_type*dir_map= fsm_class->directives_map();
+SDC_MAP_ITER_type i= dir_map->find(SDC_user_prefix_declaration);
+if(i==dir_map->end())return;
+T_user_prefix_declaration* upd = (T_user_prefix_declaration*)i->second;
+int x= sprintf(big_buf_
+,upd_code
+,upd->syntax_code()->syntax_code()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+
+/*:117*//*118:*/
+//line 3696 "./o2externs.w"
+
+void thread_entry_extern_for_header
+(std::ofstream&Op_str){
+T_parallel_parser_phrase*pp_ph= O2_PP_PHASE;
+if(pp_ph==0){
+Op_str<<"// monolithic grammar: no thread"<<endl;
+return;
+}
+char big_buf_[BIG_BUFFER_32K];
+KCHARP th_extern= "extern yacco2::Thread_entry I%s;\n";
+
+int x= sprintf(big_buf_
+,th_extern
+,pp_ph->pp_funct()->identifier()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+/*:118*//*119:*/
+//line 3716 "./o2externs.w"
+
+void using_ns_for_header
+(std::ofstream&Op_str){
+T_enum_phrase*enum_ph= O2_T_ENUM_PHASE;
+char big_buf_[BIG_BUFFER_32K];
+
+KCHARP default_ns_use=
+"using namespace %s;// enumerate\n"
+"using namespace yacco2;";
+
+int x= sprintf(big_buf_
+,default_ns_use
+,enum_ph->namespace_id()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+/*:119*//*120:*/
+//line 3739 "./o2externs.w"
+
+void fsm_enum_rules_subrules_for_header
+(std::ofstream&Op_str){
+T_fsm_phrase*fsm_ph= O2_FSM_PHASE;
+T_fsm_class_phrase*fsm_class= fsm_ph->fsm_class_phrase();
+T_enum_phrase*enum_ph= O2_T_ENUM_PHASE;
+char big_buf_[BIG_BUFFER_32K];
+
+KCHARP enumeration_of_rules_sbrules=
+" enum rules_and_subrules{\n"
+" start_of_rule_list = %s::T_Enum::sum_total_T";
+int x= sprintf(big_buf_
+,enumeration_of_rules_sbrules
+,enum_ph->namespace_id()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+
+
+T_rules_phrase*rules_ph= O2_RULES_PHASE;
+
+RULE_DEFS_TBL_ITER_type i= rules_ph->crt_order()->begin();
+RULE_DEFS_TBL_ITER_type ie= rules_ph->crt_order()->end();
+int overall_subrules_nos(0);
+int current_rule_no(-1);
+int no_rules= rules_ph->rules_alphabet()->size();
+KCHARP rule_enum=
+" ,R_%s_ = %i//start_of_rule_list + %i";
+for(;i!=ie;++i){
+++current_rule_no;
+rule_def*rd= *i;
+x= sprintf(big_buf_
+,rule_enum
+,rd->rule_name()->c_str()
+,rd->enum_id()
+,current_rule_no++
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+T_subrules_phrase*sr_ph= rd->subrules();
+SUBRULE_DEFS_ITER_type j= sr_ph->subrules()->begin();
+SUBRULE_DEFS_ITER_type je= sr_ph->subrules()->end();
+KCHARP subrule_enum=
+" ,rhs%i_%s_ = %i";
+for(;j!=je;++j){
+T_subrule_def*srd= *j;
+++overall_subrules_nos;
+int x= sprintf(big_buf_
+,subrule_enum
+,srd->subrule_no_of_rule()
+,rd->rule_name()->c_str()
+,overall_subrules_nos
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+}
+KCHARP end_enumeration_of_rules_sbrules=
+" };";
+Op_str<<end_enumeration_of_rules_sbrules<<endl;
+}
+
+/*:120*//*121:*/
+//line 3807 "./o2externs.w"
+
+void fsm_map_subrules_to_rules_for_header
+(std::ofstream&Op_str){
+T_fsm_phrase*fsm_ph= O2_FSM_PHASE;
+T_fsm_class_phrase*fsm_class= fsm_ph->fsm_class_phrase();
+T_enum_phrase*enum_ph= O2_T_ENUM_PHASE;
+char big_buf_[BIG_BUFFER_32K];
+
+KCHARP array_of_subrules_to_rules_mapping=
+" fsm_rules_reuse_table_type fsm_rules_reuse_table;\n"
+" static int rhs_to_rules_mapping_[%i];";
+
+
+T_rules_phrase*rules_ph= O2_RULES_PHASE;
+
+RULE_DEFS_TBL_ITER_type i= rules_ph->crt_order()->begin();
+RULE_DEFS_TBL_ITER_type ie= rules_ph->crt_order()->end();
+int overall_subrules_nos(0);
+for(;i!=ie;++i){
+rule_def*rd= *i;
+T_subrules_phrase*sr_ph= rd->subrules();
+SUBRULE_DEFS_ITER_type j= sr_ph->subrules()->begin();
+SUBRULE_DEFS_ITER_type je= sr_ph->subrules()->end();
+for(;j!=je;++j){
+++overall_subrules_nos;
+}
+}
+++overall_subrules_nos;
+int x= sprintf(big_buf_
+,array_of_subrules_to_rules_mapping
+,overall_subrules_nos
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+/*:121*//*122:*/
+//line 3844 "./o2externs.w"
+
+void fsm_comments_about_la_sets_and_states
+(std::ofstream&Op_str){
+T_fsm_phrase*fsm_ph= O2_FSM_PHASE;
+T_fsm_class_phrase*fsm_class= fsm_ph->fsm_class_phrase();
+T_enum_phrase*enum_ph= O2_T_ENUM_PHASE;
+char big_buf_[BIG_BUFFER_32K];
+KCHARP no_of_la_sets_and_states=
+" //no of la sets = %i\n"
+" //no of states = %i";
+int x= sprintf(big_buf_
+,no_of_la_sets_and_states
+,COMMON_LA_SETS.size()
+,NO_LR1_STATES
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+/*:122*//*123:*/
+//line 3866 "./o2externs.w"
+
+void fsm_class_declaration_for_header
+(std::ofstream&Op_str){
+T_fsm_phrase*fsm_ph= O2_FSM_PHASE;
+T_fsm_class_phrase*fsm_class= fsm_ph->fsm_class_phrase();
+T_enum_phrase*enum_ph= O2_T_ENUM_PHASE;
+char big_buf_[BIG_BUFFER_32K];
+KCHARP class_fsm=
+"class %s: public yacco2::CAbs_fsm {\n"
+" public:";
+int x= sprintf(big_buf_
+,class_fsm
+,fsm_class->identifier()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+
+fsm_enum_rules_subrules_for_header(Op_str);
+fsm_comments_about_la_sets_and_states(Op_str);
+
+KCHARP ctor_fsm=
+" %s();";
+
+x= sprintf(big_buf_
+,ctor_fsm
+,fsm_class->identifier()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+
+KCHARP dtor_fsm=
+" ~%s();";
+x= sprintf(big_buf_
+,dtor_fsm
+,fsm_class->identifier()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+
+KCHARP op_failed=
+" void op();\n"
+" bool failed();";
+Op_str<<op_failed<<endl;
+
+
+KCHARP reduce_rhs=
+" void reduce_rhs_of_rule\n"
+" (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);";
+Op_str<<reduce_rhs<<endl;
+fsm_map_subrules_to_rules_for_header(Op_str);
+KCHARP user_declaration=
+" %s";
+
+SDC_MAP_type*dir_map= fsm_class->directives_map();
+SDC_MAP_ITER_type i= dir_map->find(SDC_user_declaration);
+if(i!=dir_map->end()){
+T_user_declaration* ud = (T_user_declaration*)i->second;
+int x= sprintf(big_buf_
+,user_declaration
+,ud->syntax_code()->syntax_code()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+KCHARP end_class_fsm=
+" };";
+Op_str<<end_class_fsm<<endl;
+
+}
+/*:123*//*124:*/
+//line 3937 "./o2externs.w"
+
+void forward_refs_of_rules_declarations_for_header
+(std::ofstream&Op_str){
+T_rules_phrase*rules_ph= O2_RULES_PHASE;
+char big_buf_[BIG_BUFFER_32K];
+KCHARP forward_ref=
+"struct %s;";
+
+RULE_DEFS_TBL_ITER_type i= rules_ph->crt_order()->begin();
+RULE_DEFS_TBL_ITER_type ie= rules_ph->crt_order()->end();
+for(;i!=ie;++i){
+rule_def*rd= *i;
+int x= sprintf(big_buf_
+,forward_ref
+,rd->rule_name()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+}
+
+/*:124*//*125:*/
+//line 3959 "./o2externs.w"
+
+void rules_class_defs_for_header
+(std::ofstream&Op_str){
+T_rules_phrase*rules_ph= O2_RULES_PHASE;
+char big_buf_[BIG_BUFFER_32K];
+KCHARP end_rule_def=
+"};\n";
+/*126:*/
+//line 3970 "./o2externs.w"
+
+RULE_DEFS_TBL_ITER_type i= rules_ph->crt_order()->begin();
+RULE_DEFS_TBL_ITER_type ie= rules_ph->crt_order()->end();
+KCHARP start_rule_def=
+"struct %s:public yacco2::CAbs_lr1_sym {\n"
+" %s(yacco2::Parser* P);";
+for(;i!=ie;++i){
+rule_def*rd= *i;
+/*127:*/
+//line 4024 "./o2externs.w"
+
+if(rd->parallel_mntr()!=0){
+T_parallel_monitor_phrase*pp_phrase= rd->parallel_mntr();
+if(rd->parallel_mntr()->mntr_directives_map()->empty()!=true){
+SDC_MAP_type*dir_map= pp_phrase->mntr_directives_map();
+SDC_MAP_ITER_type i= dir_map->find(SDC_arbitrator_code);
+if(i!=dir_map->end()){
+T_arbitrator_code* ac = (T_arbitrator_code*)i->second;
+string::size_type idx=
+ac->syntax_code()->syntax_code()->find(CODE_PRESENCE_IN_ARBITRATOR_CODE);
+if(idx!=string::npos){
+KCHARP rule_s_arbitrator=
+"yacco2::THR _YACCO2_CALL_TYPE\n"
+"AR_%s(yacco2::Parser* Caller_pp);// rule's arbitrator";
+
+int x= sprintf(big_buf_
+,rule_s_arbitrator
+,rd->rule_name()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+RULES_HAVING_AR.insert(rd);
+}
+}
+}
+}
+
+
+/*:127*/
+//line 3978 "./o2externs.w"
+
+int x= sprintf(big_buf_
+,start_rule_def
+,rd->rule_name()->c_str()
+,rd->rule_name()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+T_rule_lhs_phrase*rlhs= rd->rule_lhs();
+if(rlhs!=0){
+SDC_MAP_type*dir_map= rlhs->lhs_directives_map();
+SDC_MAP_ITER_type i= dir_map->find(SDC_destructor);
+if(i!=dir_map->end()){
+KCHARP rule_def_dtor=
+" static void dtor_%s(yacco2::VOIDP This,yacco2::VOIDP P);";
+int x= sprintf(big_buf_
+,rule_def_dtor
+,rd->rule_name()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+i= dir_map->find(SDC_op);
+if(i!=dir_map->end()){
+KCHARP rule_def_op=
+" void op();";
+Op_str<<rule_def_op<<endl;
+}
+i= dir_map->find(SDC_constructor);
+if(i!=dir_map->end()){
+KCHARP rule_def_ctor=
+" void ctor();";
+Op_str<<rule_def_ctor<<endl;
+}
+i= dir_map->find(SDC_user_declaration);
+if(i!=dir_map->end()){
+T_user_declaration* ud = (T_user_declaration*)i->second;
+Op_str<<ud->syntax_code()->syntax_code()->c_str()<<endl;
+}
+}
+/*128:*/
+//line 4054 "./o2externs.w"
+
+KCHARP sub_rule_def_public=
+" public:";
+Op_str<<sub_rule_def_public<<endl;
+KCHARP sub_rule_def=
+" void sr%i();";
+T_subrules_phrase*sr_ph= rd->subrules();
+SUBRULE_DEFS_ITER_type j= sr_ph->subrules()->begin();
+SUBRULE_DEFS_ITER_type je= sr_ph->subrules()->end();
+for(int xx= 1;j!=je;++j,++xx){
+T_subrule_def*srd= *j;
+SDC_MAP_type*sdrmap= srd->subrule_directives();
+if(!sdrmap->empty()){
+int x= sprintf(big_buf_
+,sub_rule_def
+,xx
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+}
+Op_str<<end_rule_def<<endl;
+
+/*:128*/
+//line 4018 "./o2externs.w"
+
+
+}
+/*:126*/
+//line 3966 "./o2externs.w"
+
+}
+
+/*:125*//*129:*/
+//line 4088 "./o2externs.w"
+
+void possible_thread_procedure_declaration
+(std::ofstream&Op_str){
+if(O2_PP_PHASE==0)return;
+T_parallel_parser_phrase*pp_ph= O2_PP_PHASE;
+char big_buf_[BIG_BUFFER_32K];
+KCHARP thd_proc=
+"yacco2::THR _YACCO2_CALL_TYPE\n"
+"%s(yacco2::Parser* Caller);// called thread\n"
+"yacco2::THR_result _YACCO2_CALL_TYPE\n"
+"PROC_%s(yacco2::Parser* Caller);// called thread's twin the procedure";
+int x= sprintf(big_buf_
+,thd_proc
+,pp_ph->pp_funct()->identifier()->identifier()->c_str()
+,pp_ph->pp_funct()->identifier()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+/*:129*//*130:*/
+//line 4112 "./o2externs.w"
+
+void rules_reuse_table_declaration
+(std::ofstream&Op_str){
+T_fsm_phrase*fsm_ph= O2_FSM_PHASE;
+T_fsm_class_phrase*fsm_class= fsm_ph->fsm_class_phrase();
+T_rules_phrase*rules_ph= O2_RULES_PHASE;
+int no_rules= rules_ph->rules_alphabet()->size();
+char big_buf_[BIG_BUFFER_32K];
+KCHARP rules_recycled_table_type=
+"struct fsm_rules_reuse_table_type{\n"
+" fsm_rules_reuse_table_type();\n"
+" int no_rules_entries_;\n"
+" Per_rule_s_reuse_table* per_rule_s_table_[%i];\n"
+"};";
+int x= sprintf(big_buf_
+,rules_recycled_table_type
+,no_rules
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+/*:130*//*131:*/
+//line 4135 "./o2externs.w"
+
+void namespace_for_header
+(std::ofstream&Op_str){
+T_fsm_phrase*fsm_ph= O2_FSM_PHASE;
+char big_buf_[BIG_BUFFER_32K];
+KCHARP ns_of_grammar_start=
+"namespace %s {";
+int x= sprintf(big_buf_
+,ns_of_grammar_start
+,fsm_ph->namespace_id()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+possible_thread_procedure_declaration(Op_str);
+using_ns_for_header(Op_str);
+rules_reuse_table_declaration(Op_str);
+fsm_class_declaration_for_header(Op_str);
+forward_refs_of_rules_declarations_for_header(Op_str);
+rules_class_defs_for_header(Op_str);
+KCHARP ns_of_grammar_end=
+"} // end of namespace\n";
+Op_str<<ns_of_grammar_end<<endl;
+}
+
+/*:131*//*132:*/
+//line 4160 "./o2externs.w"
+
+void state_1_extern
+(std::ofstream&Op_str){
+T_fsm_phrase*fsm_ph= O2_FSM_PHASE;
+T_fsm_class_phrase*fsm_class= fsm_ph->fsm_class_phrase();
+char big_buf_[BIG_BUFFER_32K];
+KCHARP state_extern=
+"extern yacco2::State S1_%s;";
+int x= sprintf(big_buf_
+,state_extern
+,fsm_class->identifier()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+/*:132*//*133:*/
+//line 4176 "./o2externs.w"
+
+void grammar_include_guard_for_header
+(std::ofstream&Op_str){
+T_fsm_phrase*fsm_ph= O2_FSM_PHASE;
+T_fsm_class_phrase*fsm_class= fsm_ph->fsm_class_phrase();
+char big_buf_[BIG_BUFFER_32K];
+KCHARP signal_guard_start=
+"#ifndef __%s_h__\n"
+"#define __%s_h__ 1";
+int x= sprintf(big_buf_
+,signal_guard_start
+,fsm_ph->filename_id()->identifier()->c_str()
+,fsm_ph->filename_id()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+grammar_header_includes(Op_str);
+user_prefix_declaration_for_header(Op_str);
+thread_entry_extern_for_header(Op_str);
+state_1_extern(Op_str);
+namespace_for_header(Op_str);
+KCHARP signal_guard_end=
+"#endif";
+Op_str<<signal_guard_end<<endl;
+}
+/*:133*//*134:*/
+//line 4204 "./o2externs.w"
+
+void user_suffix_declaration_for_header
+(std::ofstream&Op_str){
+T_fsm_phrase*fsm_ph= O2_FSM_PHASE;
+char big_buf_[BIG_BUFFER_32K];
+
+T_fsm_class_phrase*fsm_class= fsm_ph->fsm_class_phrase();
+SDC_MAP_type*dir_map= fsm_class->directives_map();
+SDC_MAP_ITER_type i= dir_map->find(SDC_user_suffix_declaration);
+if(i==dir_map->end())return;
+T_user_suffix_declaration* upd = (T_user_suffix_declaration*)i->second;
+KCHARP upd_code= "%s";
+int x= sprintf(big_buf_
+,upd_code
+,upd->syntax_code()->syntax_code()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+/*:134*//*135:*/
+//line 4225 "./o2externs.w"
+
+void OP_GRAMMAR_HEADER(TOKEN_GAGGLE&Error_queue){
+T_fsm_phrase*fsm_ph= O2_FSM_PHASE;
+string fn(fsm_ph->filename_id()->identifier()->c_str());
+fn+= Suffix_fsmheader;
+std::ofstream Op_file;
+Op_file.open(fn.c_str(),ios_base::out|ios::trunc);
+if(!Op_file){
+CAbs_lr1_sym*sym= new Err_bad_fsmheader_filename(fn.c_str());
+sym->set_line_no_and_pos_in_line(*fsm_ph->filename_id());
+sym->set_who_created("o2externs.w - OP_GRAMMAR_HEADER",__LINE__);
+Error_queue.push_back(*sym);
+return;
+}
+
+intro_comment(Op_file,fn.c_str());
+grammar_include_guard_for_header(Op_file);
+user_suffix_declaration_for_header(Op_file);
+Op_file.close();
+}
+
+/*:135*//*137:*/
+//line 4255 "./o2externs.w"
+
+void fsm_cpp_includes
+(std::ofstream&Op_str){
+T_fsm_phrase*fsm_ph= O2_FSM_PHASE;
+char big_buf_[BIG_BUFFER_32K];
+KCHARP include_list=
+"#include \"%s.h\"";
+
+int x= sprintf(big_buf_
+,include_list
+,fsm_ph->filename_id()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+/*:137*//*138:*/
+//line 4272 "./o2externs.w"
+
+void using_ns_for_fsm_cpp
+(std::ofstream&Op_str){
+T_fsm_phrase*fsm_ph= O2_FSM_PHASE;
+T_enum_phrase*enum_ph= O2_T_ENUM_PHASE;
+T_lr1_k_phrase*lrk_ph= O2_LRK_PHASE;
+T_rc_phrase*rc_ph= O2_RC_PHASE;
+T_error_symbols_phrase*err_ph= O2_ERROR_PHASE;
+T_terminals_phrase*t_ph= O2_T_PHASE;
+
+char big_buf_[BIG_BUFFER_32K];
+
+KCHARP default_ns_use=
+"using namespace %s;// enumerate\n"
+"using namespace %s;// error symbols\n"
+"using namespace %s;// lrk \n"
+"using namespace %s;// terminals\n"
+"using namespace %s;// rc \n"
+"using namespace %s;// yacco2 library\n"
+"using namespace %s;// grammar's ns\n"
+"// first set terminals";
+
+int x= sprintf(big_buf_
+,default_ns_use
+,enum_ph->namespace_id()->identifier()->c_str()
+,err_ph->namespace_id()->identifier()->c_str()
+,lrk_ph->namespace_id()->identifier()->c_str()
+,t_ph->namespace_id()->identifier()->c_str()
+,rc_ph->namespace_id()->identifier()->c_str()
+,"yacco2"
+,fsm_ph->namespace_id()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+/*:138*//*139:*/
+//line 4310 "./o2externs.w"
+
+void rules_reuse_table_implementation
+(std::ofstream&Op_str){
+T_fsm_phrase*fsm_ph= O2_FSM_PHASE;
+T_rules_phrase*rules_ph= O2_RULES_PHASE;
+int no_rules= rules_ph->rules_alphabet()->size();
+char big_buf_[BIG_BUFFER_32K];
+
+KCHARP rules_recycled_table_type=
+"fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){\n"
+" no_rules_entries_ = %i;";
+int x= sprintf(big_buf_
+,rules_recycled_table_type
+,no_rules
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+KCHARP per_rule_s_table_ref_type=
+" per_rule_s_table_[%i] = new Per_rule_s_reuse_table();";
+
+for(int xx= 1;xx<=no_rules;++xx){
+int x0= xx-1;
+x= sprintf(big_buf_
+,per_rule_s_table_ref_type
+,x0
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+Op_str<<"}"<<endl;
+}
+
+/*:139*//*140:*/
+//line 4344 "./o2externs.w"
+
+void fsm_map_subrules_to_rules_table_imp
+(std::ofstream&Op_str){
+T_fsm_phrase*fsm_ph= O2_FSM_PHASE;
+T_fsm_class_phrase*fsm_class= fsm_ph->fsm_class_phrase();
+T_enum_phrase*enum_ph= O2_T_ENUM_PHASE;
+T_rules_phrase*rules_ph= O2_RULES_PHASE;
+char big_buf_[BIG_BUFFER_32K];
+RULE_DEFS_TBL_ITER_type i= rules_ph->crt_order()->begin();
+RULE_DEFS_TBL_ITER_type ie= rules_ph->crt_order()->end();
+int overall_subrules_nos(0);
+for(;i!=ie;++i){
+rule_def*rd= *i;
+T_subrules_phrase*sr_ph= rd->subrules();
+SUBRULE_DEFS_ITER_type j= sr_ph->subrules()->begin();
+SUBRULE_DEFS_ITER_type je= sr_ph->subrules()->end();
+for(;j!=je;++j){
+++overall_subrules_nos;
+}
+}
+++overall_subrules_nos;
+
+KCHARP array_of_subrules_to_rules_mapping_start=
+"int %s::rhs_to_rules_mapping_[%i] = {\n"
+" -1";
+int x= sprintf(big_buf_
+,array_of_subrules_to_rules_mapping_start
+,fsm_class->identifier()->identifier()->c_str()
+,overall_subrules_nos
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+
+KCHARP subrules_to_rule_mapping=
+" ,%i // subrule %i for rule %i";
+
+KCHARP array_of_subrules_to_rules_mapping_end=
+"};%s";
+
+
+
+i= rules_ph->crt_order()->begin();
+ie= rules_ph->crt_order()->end();
+overall_subrules_nos= 0;
+for(;i!=ie;++i){
+rule_def*rd= *i;
+T_subrules_phrase*sr_ph= rd->subrules();
+SUBRULE_DEFS_ITER_type j= sr_ph->subrules()->begin();
+SUBRULE_DEFS_ITER_type je= sr_ph->subrules()->end();
+for(;j!=je;++j){
+++overall_subrules_nos;
+int x= sprintf(big_buf_
+,subrules_to_rule_mapping
+,rd->rule_no()-1
+,overall_subrules_nos
+,rd->rule_no()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+}
+x= sprintf(big_buf_
+,array_of_subrules_to_rules_mapping_end," "
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+enum_ph->total_no_subrules(overall_subrules_nos);
+}
+
+/*:140*//*141:*/
+//line 4426 "./o2externs.w"
+
+void fsm_class_implementation
+(std::ofstream&Op_str){
+T_fsm_phrase*fsm_ph= O2_FSM_PHASE;
+T_fsm_class_phrase*fsm_class= fsm_ph->fsm_class_phrase();
+T_enum_phrase*enum_ph= O2_T_ENUM_PHASE;
+char big_buf_[BIG_BUFFER_32K];
+KCHARP ctor_fsm=
+" %s::\n"
+" %s()\n"
+" :yacco2::CAbs_fsm\n"
+" (\"%s\"\n"
+" ,\"%s\"\n"
+" ,\"%s\"\n"
+" ,%s\n"
+" ,\"%s\"\n"
+" ,\"%s\"\n"
+" ,S1_%s){\n"
+" %s\n"
+" }";
+SDC_MAP_type*dir_map= fsm_class->directives_map();
+SDC_MAP_ITER_type i= dir_map->find(SDC_constructor);
+const char*cc_str(0);
+if(i!=dir_map->end()){
+T_constructor* cc = (T_constructor*)i->second;
+cc_str= cc->syntax_code()->syntax_code()->c_str();
+}else{
+cc_str= "";
+}
+
+int x= sprintf(big_buf_
+,ctor_fsm
+,fsm_class->identifier()->identifier()->c_str()
+,fsm_class->identifier()->identifier()->c_str()
+,fsm_ph->fsm_id()->c_string()->c_str()
+,fsm_ph->version()->c_string()->c_str()
+,fsm_ph->date()->c_string()->c_str()
+,fsm_ph->debug()->c_string()->c_str()
+,fsm_ph->comment()->c_string()->c_str()
+,DATE_AND_TIME()
+,fsm_class->identifier()->identifier()->c_str()
+,cc_str
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+
+KCHARP dtor_rtn_start=
+" \n"
+"%s::~%s(){\n"
+"%s";
+i= dir_map->find(SDC_destructor);
+const char*dc_str(0);
+if(i!=dir_map->end()){
+T_destructor* dc = (T_destructor*)i->second;
+dc_str= dc->syntax_code()->syntax_code()->c_str();
+}else{
+dc_str= "";
+}
+x= sprintf(big_buf_
+,dtor_rtn_start
+,fsm_class->identifier()->identifier()->c_str()
+,fsm_class->identifier()->identifier()->c_str()
+,dc_str
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+
+
+T_rules_phrase*rules_ph= O2_RULES_PHASE;
+int no_rules= rules_ph->rules_alphabet()->size();
+KCHARP delete_recycled_rules=
+" for(int x = 0;x < %i;++x){\n"
+" ///delete fsm_rules_reuse_table.per_rule_s_table_[x];\n"
+" }";
+
+x= sprintf(big_buf_
+,delete_recycled_rules
+,no_rules
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+KCHARP dtor_rtn_end=
+"}%s\n"
+"";
+x= sprintf(big_buf_
+,dtor_rtn_end," "
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+
+KCHARP failed_rtn=
+" bool %s::failed(){\n"
+" %s\n"
+" }";
+
+i= dir_map->find(SDC_failed);
+const char*fc_str(0);
+if(i!=dir_map->end()){
+T_failed* fc = (T_failed*)i->second;
+fc_str= fc->syntax_code()->syntax_code()->c_str();
+}else{
+fc_str= " return false;";
+}
+x= sprintf(big_buf_
+,failed_rtn
+,fsm_class->identifier()->identifier()->c_str()
+,fc_str
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+KCHARP op_rtn=
+" void %s::op(){%s\n}";
+i= dir_map->find(SDC_op);
+const char*oc_str(0);
+if(i!=dir_map->end()){
+T_op* oc = (T_op*)i->second;
+oc_str= oc->syntax_code()->syntax_code()->c_str();
+}else{
+oc_str= "";
+}
+x= sprintf(big_buf_
+,op_rtn
+,fsm_class->identifier()->identifier()->c_str()
+,oc_str
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+fsm_map_subrules_to_rules_table_imp(Op_str);
+dir_map= fsm_class->directives_map();
+i= dir_map->find(SDC_user_implementation);
+if(i!=dir_map->end()){
+T_user_implementation* ui = (T_user_implementation*)i->second;
+Op_str<<ui->syntax_code()->syntax_code()->c_str()<<endl;
+}
+}
+
+/*:141*//*142:*/
+//line 4569 "./o2externs.w"
+
+void rules_subrules_implementations
+(std::ofstream&Op_str){
+T_fsm_phrase*fsm_ph= O2_FSM_PHASE;
+T_fsm_class_phrase*fsm_class= fsm_ph->fsm_class_phrase();
+T_rules_phrase*rules_ph= O2_RULES_PHASE;
+char big_buf_[BIG_BUFFER_32K];
+/*143:*/
+//line 4579 "./o2externs.w"
+
+RULE_DEFS_TBL_ITER_type i= rules_ph->crt_order()->begin();
+RULE_DEFS_TBL_ITER_type ie= rules_ph->crt_order()->end();
+for(;i!=ie;++i){
+rule_def*rd= *i;
+/*144:*/
+//line 4730 "./o2externs.w"
+
+if(rd->parallel_mntr()!=0){
+T_parallel_monitor_phrase* pp_phrase = rd->parallel_mntr();
+/*145:*/
+//line 4736 "./o2externs.w"
+
+if(pp_phrase->mntr_directives_map()->empty()!=true){
+SDC_MAP_type*pp_map= pp_phrase->mntr_directives_map();
+SDC_MAP_ITER_type p= pp_map->find(SDC_arbitrator_code);
+if(p!=pp_map->end()){
+T_arbitrator_code* ac = (T_arbitrator_code*)p->second;
+string::size_type idx=
+ac->syntax_code()->syntax_code()->find(CODE_PRESENCE_IN_ARBITRATOR_CODE);
+if(idx!=string::npos){
+KCHARP rule_s_arbitrator_imp=
+"yacco2::THR _YACCO2_CALL_TYPE\n"
+"%s::AR_%s(yacco2::Parser* Caller_pp){\n"
+" yacco2::KCHARP ar_name = \"AR_%s\";\n"
+"#include \"war_begin_code.h\"\n"
+" %s\n"
+"#include \"war_end_code.h\"\n"
+"}\n";
+int x= sprintf(big_buf_
+,rule_s_arbitrator_imp
+,fsm_ph->namespace_id()->identifier()->c_str()
+,rd->rule_name()->c_str()
+,rd->rule_name()->c_str()
+,ac->syntax_code()->syntax_code()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+}
+}
+
+/*:145*/
+//line 4733 "./o2externs.w"
+
+}
+/*:144*/
+//line 4584 "./o2externs.w"
+
+T_rule_lhs_phrase*rlhs= rd->rule_lhs();
+const char*ctor_code(0);
+const char*dtor_code(0);
+string dtor_name("0");
+const char*op_code(0);
+const char*user_imp_code(0);
+T_destructor*dtor(0);
+if(rlhs!=0){
+SDC_MAP_type*dir_map= rlhs->lhs_directives_map();
+SDC_MAP_ITER_type i= dir_map->find(SDC_constructor);
+if(i!=dir_map->end()){
+T_constructor* ctor = (T_constructor*)i->second;
+ctor_code= ctor->syntax_code()->syntax_code()->c_str();
+}
+i= dir_map->find(SDC_destructor);
+if(i!=dir_map->end()){
+dtor = (T_destructor*)i->second;
+dtor_code= dtor->syntax_code()->syntax_code()->c_str();
+KCHARP dtor_nm=
+"&dtor_%s";
+sprintf(big_buf_
+,dtor_nm
+,rd->rule_name()->c_str()
+);
+dtor_name.clear();
+dtor_name+= big_buf_;
+}
+i= dir_map->find(SDC_op);
+if(i!=dir_map->end()){
+T_op* op = (T_op*)i->second;
+op_code= op->syntax_code()->syntax_code()->c_str();
+}
+
+i= dir_map->find(SDC_user_implementation);
+if(i!=dir_map->end()){
+T_user_implementation* uimp= (T_user_implementation*)i->second;
+user_imp_code= uimp->syntax_code()->syntax_code()->c_str();
+}
+}
+
+KCHARP rule_def_imp=
+"%s::%s(yacco2::Parser* P)\n"
+" :CAbs_lr1_sym\n"
+" (\"%s\",%s,%s::R_%s_,P,%s,%s){\n"
+"}\n";
+string ad;
+if(rd->autodelete()==true){
+ad+= "true";
+}else{
+ad+= "false";
+}
+string ab;
+if(rd->autoabort()==true){
+ab+= "true";
+}else{
+ab+= "false";
+}
+int x= sprintf(big_buf_
+,rule_def_imp
+,rd->rule_name()->c_str()
+,rd->rule_name()->c_str()
+,rd->rule_name()->c_str()
+,dtor_name.c_str()
+,fsm_class->identifier()->identifier()->c_str()
+,rd->rule_name()->c_str()
+,ad.c_str()
+,ab.c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+
+
+if(dtor_code!=0){
+std::string::size_type r=
+dtor->syntax_code()->syntax_code()->find("ABORT_STATUS");
+KCHARP rule_def_dtor=
+"void %s::dtor_%s(yacco2::VOIDP This,yacco2::VOIDP P){\n"
+" bool ABORT_STATUS = ((yacco2::Parser*)P)->top_stack_record()->aborted__;\n"
+" %s* R = (%s*)(This);\n"
+" %s\n"
+"}";
+KCHARP rule_def_dtor_noabort=
+"void %s::dtor_%s(yacco2::VOIDP This,yacco2::VOIDP P){\n"
+" %s* R = (%s*)(This);\n"
+" %s\n"
+"}";
+int x;
+if(r!=std::string::npos){
+x= sprintf(big_buf_
+,rule_def_dtor
+,rd->rule_name()->c_str()
+,rd->rule_name()->c_str()
+,rd->rule_name()->c_str()
+,rd->rule_name()->c_str()
+,dtor_code
+);
+}else{
+x= sprintf(big_buf_
+,rule_def_dtor_noabort
+,rd->rule_name()->c_str()
+,rd->rule_name()->c_str()
+,rd->rule_name()->c_str()
+,rd->rule_name()->c_str()
+,dtor_code
+);
+}
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+if(op_code!=0){
+KCHARP rule_def_op=
+"void %s::op(){\n"
+" sstrace_rulesss\n"
+" %s\n"
+"}";
+int x= sprintf(big_buf_
+,rule_def_op
+,rd->rule_name()->c_str()
+,op_code
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+if(ctor_code!=0){
+KCHARP rule_def_ctor=
+"void %s::ctor(){\n"
+" %s\n"
+"}";
+int x= sprintf(big_buf_
+,rule_def_ctor
+,rd->rule_name()->c_str()
+,ctor_code
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+if(user_imp_code!=0){
+Op_str<<user_imp_code<<endl;
+}
+/*146:*/
+//line 4779 "./o2externs.w"
+
+T_subrules_phrase*sr_ph= rd->subrules();
+SUBRULE_DEFS_ITER_type j= sr_ph->subrules()->begin();
+SUBRULE_DEFS_ITER_type je= sr_ph->subrules()->end();
+int nosrs= sr_ph->no_subrules();
+for(int xx= 1;j!=je;++j,++xx){
+T_subrule_def*srd= *j;
+AST*sr_t= AST::get_spec_child(*srd->subrule_s_tree(),1);
+int no_parms= srd->no_of_elems()-1;
+KCHARP sub_rule_def_imp=
+"void %s::sr%i(){";
+SDC_MAP_type*dir_map= srd->subrule_directives();
+if(dir_map->empty()!=true){
+int x= sprintf(big_buf_
+,sub_rule_def_imp
+,rd->rule_name()->c_str()
+,xx
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+
+SDC_MAP_ITER_type i= dir_map->find(SDC_op);
+if(i!=dir_map->end()){
+T_op* rhsc = (T_op*)i->second;
+std::string::size_type idx;
+idx= rhsc->syntax_code()->syntax_code()->find("sf->p");
+
+if(idx==std::string::npos)goto write_out_op_code;
+/*147:*/
+//line 4847 "./o2externs.w"
+
+for(int y= 1;y<=no_parms;++y){
+bool eos_thd_or_proc(false);
+CAbs_lr1_sym*sym= AST::content(*sr_t);
+const char*parm_name(0);
+switch(sym->enumerated_id__){
+case T_Enum::T_refered_rule_:{
+refered_rule* rr = (refered_rule*)sym;
+parm_name= rr->its_rule_def()->rule_name()->c_str();
+break;
+}
+case T_Enum::T_refered_T_:{
+refered_T* rt = (refered_T*)sym;
+T_terminal_def*td= rt->its_t_def();
+if(td->enum_id()==LR1_ALL_SHIFT_OPERATOR){
+parm_name= "CAbs_lr1_sym";
+break;
+}
+if(td->enum_id()==LR1_QUESTIONABLE_SHIFT_OPERATOR){
+parm_name= "CAbs_lr1_sym";
+break;
+}
+if(td->enum_id()==LR1_INVISIBLE_SHIFT_OPERATOR){
+parm_name= "CAbs_lr1_sym";
+break;
+}
+parm_name= td->classsym()->c_str();
+break;
+}
+case T_Enum::T_T_identifier_:{
+parm_name= "T_identifier";
+break;
+}
+case T_Enum::T_T_NULL_:{
+parm_name= "T_NULL";
+break;
+}
+case T_Enum::T_T_2colon_:{
+parm_name= "T_2colon";
+break;
+}
+case T_Enum::T_T_called_thread_eosubrule_:{
+eos_thd_or_proc= true;
+--no_parms;
+--y;
+break;
+}
+case T_Enum::T_T_null_call_thread_eosubrule_:{
+eos_thd_or_proc= true;
+--no_parms;
+--y;
+break;
+}
+}
+
+
+if(y==1){
+KCHARP sub_rule_stk_parms_begin=
+" struct SF{";
+Op_str<<sub_rule_stk_parms_begin<<endl;
+}
+KCHARP sub_rule_stk_parm=
+" %s* p%i__;\n"
+" State* s%i__;\n"
+" bool abort%i__;\n"
+" Rule_s_reuse_entry* rule_s_reuse_entry%i__;";
+if(eos_thd_or_proc==false){
+int x= sprintf(big_buf_
+,sub_rule_stk_parm
+,parm_name
+,y
+,y
+,y
+,y
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+sr_t= AST::brother(*sr_t);
+}
+if(no_parms> 0){
+KCHARP sub_rule_stk_parms_end=
+" };";
+Op_str<<sub_rule_stk_parms_end<<endl;
+KCHARP stk_frame_equate=
+" SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(%i);";
+
+int x= sprintf(big_buf_
+,stk_frame_equate
+,no_parms
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+/*:147*/
+//line 4807 "./o2externs.w"
+
+write_out_op_code:;
+KCHARP sub_rule_def_op_code=
+" %s";
+int x= sprintf(big_buf_
+,sub_rule_def_op_code
+,rhsc->syntax_code()->syntax_code()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+KCHARP sub_rule_def_end=
+"}\n";
+Op_str<<sub_rule_def_end<<endl;
+}
+}
+/*:146*/
+//line 4726 "./o2externs.w"
+
+}
+
+/*:143*/
+//line 4576 "./o2externs.w"
+
+}
+/*:142*//*148:*/
+//line 4943 "./o2externs.w"
+
+void OP_GRAMMAR_CPP(TOKEN_GAGGLE&Error_queue){
+T_fsm_phrase*fsm_ph= O2_FSM_PHASE;
+string fn(fsm_ph->filename_id()->identifier()->c_str());
+fn+= Suffix_fsmimp;
+std::ofstream Op_file;
+Op_file.open(fn.c_str(),ios_base::out|ios::trunc);
+if(!Op_file){
+CAbs_lr1_sym*sym= new Err_bad_fsmcpp_filename(fn.c_str());
+sym->set_line_no_and_pos_in_line(*fsm_ph->filename_id());
+sym->set_who_created("o2externs.w - OP_GRAMMAR_CPP",__LINE__);
+Error_queue.push_back(*sym);
+return;
+}
+
+intro_comment(Op_file,fn.c_str());
+fsm_cpp_includes(Op_file);
+using_ns_for_fsm_cpp(Op_file);
+rules_reuse_table_implementation(Op_file);
+fsm_class_implementation(Op_file);
+rules_subrules_implementations(Op_file);
+Op_file.close();
+}
+
+/*:148*//*150:*/
+//line 4987 "./o2externs.w"
+
+void user_imp_sym
+(std::ofstream&Op_str){
+T_fsm_phrase*fsm_ph= O2_FSM_PHASE;
+T_fsm_class_phrase*fsm_class= fsm_ph->fsm_class_phrase();
+SDC_MAP_type*dir_map= fsm_class->directives_map();
+SDC_MAP_ITER_type i= dir_map->find(SDC_user_imp_sym);
+if(i!=dir_map->end()){
+T_user_imp_sym* ui = (T_user_imp_sym*)i->second;
+Op_str<<ui->syntax_code()->syntax_code()->c_str();
+Op_str<<endl;
+}
+}
+/*:150*//*151:*/
+//line 5004 "./o2externs.w"
+
+void thread_implementation
+(std::ofstream&Op_str){
+T_parallel_parser_phrase*pp_ph= O2_PP_PHASE;
+if(pp_ph==0){
+Op_str<<"// monolithic grammar --- no thread"<<endl;
+return;
+}
+T_fsm_phrase*fsm_ph= O2_FSM_PHASE;
+T_fsm_class_phrase*fsm_class= fsm_ph->fsm_class_phrase();
+T_rules_phrase*rules_ph= O2_RULES_PHASE;
+T_enum_phrase*enum_ph= O2_T_ENUM_PHASE;
+char big_buf_[BIG_BUFFER_32K];
+KCHARP thread_definition=
+"yacco2::THR _YACCO2_CALL_TYPE\n"
+"%s::%s(yacco2::Parser* Caller_pp){\n"
+" yacco2::Thread_entry& pp_thread_entry = I%s;\n"
+" %s::%s %s_;// parallel-parser's parse table\n"
+"#define ssPARSE_TABLE %s_\n"
+"#include \"wpp_core.h\"\n"
+"}";
+
+int x= sprintf(big_buf_
+,thread_definition
+,fsm_ph->namespace_id()->identifier()->c_str()
+,pp_ph->pp_funct()->identifier()->identifier()->c_str()
+,pp_ph->pp_funct()->identifier()->identifier()->c_str()
+,fsm_ph->namespace_id()->identifier()->c_str()
+,fsm_class->identifier()->identifier()->c_str()
+,fsm_class->identifier()->identifier()->c_str()
+,fsm_class->identifier()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+
+KCHARP proc_thread_definition=
+"THR_result _YACCO2_CALL_TYPE\n"
+"%s::PROC_%s(yacco2::Parser* Caller_pp){\n"
+" char called_proc_name[] = \"PROC_%s\";\n"
+" static bool one_time(false);\n"
+" static %s::%s* %s_%s_(0);// parallel-parser's fsm table\n"
+" static Parser* %s_%s_parser(0);\n"
+" Parser* proc_parser(0);\n"
+" if(one_time == false){\n"
+" one_time = true;\n"
+" %s_%s_ = new %s::%s();// parallel-parser's fsm table\n"
+" %s_%s_parser = new Parser(*%s_%s_,Caller_pp);\n"
+" }\n"
+" proc_parser = %s_%s_parser;\n"
+"#include \"wproc_pp_core.h\"\n"
+"}";
+
+x= sprintf(big_buf_
+,proc_thread_definition
+,fsm_ph->namespace_id()->identifier()->c_str()
+,pp_ph->pp_funct()->identifier()->identifier()->c_str()
+,pp_ph->pp_funct()->identifier()->identifier()->c_str()
+,fsm_ph->namespace_id()->identifier()->c_str()
+,fsm_class->identifier()->identifier()->c_str()
+,fsm_ph->namespace_id()->identifier()->c_str()
+,fsm_class->identifier()->identifier()->c_str()
+
+,fsm_ph->namespace_id()->identifier()->c_str()
+,fsm_class->identifier()->identifier()->c_str()
+
+,fsm_ph->namespace_id()->identifier()->c_str()
+,fsm_class->identifier()->identifier()->c_str()
+,fsm_ph->namespace_id()->identifier()->c_str()
+,fsm_class->identifier()->identifier()->c_str()
+
+,fsm_ph->namespace_id()->identifier()->c_str()
+,fsm_class->identifier()->identifier()->c_str()
+,fsm_ph->namespace_id()->identifier()->c_str()
+,fsm_class->identifier()->identifier()->c_str()
+
+,fsm_ph->namespace_id()->identifier()->c_str()
+,fsm_class->identifier()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+/*:151*//*152:*/
+//line 5087 "./o2externs.w"
+
+void fsm_reduce_rhs_of_rule_implementation
+(std::ofstream&Op_str){
+T_fsm_phrase*fsm_ph= O2_FSM_PHASE;
+T_fsm_class_phrase*fsm_class= fsm_ph->fsm_class_phrase();
+T_rules_phrase*rules_ph= O2_RULES_PHASE;
+char big_buf_[BIG_BUFFER_32K];
+
+KCHARP reduce_rhs_of_rule_hdr=
+"void \n"
+"%s::reduce_rhs_of_rule\n"
+" (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){\n"
+" int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];\n"
+" Per_rule_s_reuse_table* rule_reuse_tbl_ptr = \n"
+" fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];\n"
+" Rule_s_reuse_entry* re(0);\n"
+" find_a_recycled_rule(rule_reuse_tbl_ptr,&re);\n"
+" (*Recycled_rule) = re;\n"
+" fnd_re: switch (Sub_rule_no){";
+int x= sprintf(big_buf_
+,reduce_rhs_of_rule_hdr
+,fsm_class->identifier()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+/*153:*/
+//line 5116 "./o2externs.w"
+
+RULE_DEFS_TBL_ITER_type i= rules_ph->crt_order()->begin();
+RULE_DEFS_TBL_ITER_type ie= rules_ph->crt_order()->end();
+for(;i!=ie;++i){
+rule_def*rd= *i;
+/*154:*/
+//line 5170 "./o2externs.w"
+
+const char*rule_s_ctor= "// no rule's constructor directive";
+T_rule_lhs_phrase*rlhs= rd->rule_lhs();
+if(rlhs!=0){
+SDC_MAP_type*rdlhs_map= rlhs->lhs_directives_map();
+if(rdlhs_map!=0){
+SDC_MAP_ITER_type kkk= rdlhs_map->find(SDC_constructor);
+if(kkk!=rdlhs_map->end()){
+T_constructor* cc = (T_constructor*)kkk->second;
+rule_s_ctor= "sym->ctor();\n";
+}
+}
+}
+
+T_subrules_phrase*sr_ph= rd->subrules();
+SUBRULE_DEFS_ITER_type j= sr_ph->subrules()->begin();
+SUBRULE_DEFS_ITER_type je= sr_ph->subrules()->end();
+KCHARP case_stmt_parta=
+" case rhs%i_%s_:{\n"
+" %s* sym;\n"
+" if(re->rule_ == 0){\n"
+" sym = new %s(parser__);\n"
+" re->rule_ = sym;\n"
+" }else{\n"
+" sym = (%s*)re->rule_;\n"
+" }\n"
+" %s\n"
+" (*Recycled_rule)->rule_ = sym;\n"
+" sym->rule_info__.rhs_no_of_parms__ = %i;\n"
+" \n";
+KCHARP case_stmt_partb= " sym->sr%i();";
+KCHARP case_stmt_partc= " return;}";
+for(;j!=je;++j){
+T_subrule_def*srd= *j;
+
+int no_parms= srd->no_of_elems()-1;
+
+AST*sr_t= srd->subrule_s_tree();
+set<int> eos_filter;
+eos_filter.insert(T_Enum::T_T_called_thread_eosubrule_);
+eos_filter.insert(T_Enum::T_T_null_call_thread_eosubrule_);
+tok_can_ast_functor walk_the_plank_mate;
+ast_prefix_1forest eos_walk
+(*sr_t,&walk_the_plank_mate,&eos_filter,ACCEPT_FILTER);
+tok_can<AST*> eos_can(eos_walk);
+for(int xxx= 0;eos_can.operator[](xxx)!=yacco2::PTR_LR1_eog__;++xxx);
+if(eos_can.empty()==false)--no_parms;
+
+int x= sprintf(big_buf_
+,case_stmt_parta
+,srd->subrule_no_of_rule()
+,rd->rule_name()->c_str()
+,rd->rule_name()->c_str()
+,rd->rule_name()->c_str()
+,rd->rule_name()->c_str()
+,rule_s_ctor
+,no_parms);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+
+SDC_MAP_type*sdrmap= srd->subrule_directives();
+
+if(!sdrmap->empty()){
+int x= sprintf(big_buf_,case_stmt_partb,srd->subrule_no_of_rule());
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+
+if(rd->rule_lhs()!=0){
+SDC_MAP_type*xxrdmap= rd->rule_lhs()->lhs_directives_map();
+if(xxrdmap!=0){
+SDC_MAP_ITER_type kkk= xxrdmap->find(SDC_op);
+if(kkk!=xxrdmap->end()){
+Op_str<<" sym->op();"<<endl;
+}
+}
+}
+Op_str<<case_stmt_partc<<endl;
+}
+
+
+
+/*:154*/
+//line 5121 "./o2externs.w"
+
+}
+KCHARP default_case_and_end_sw=
+" default: return;\n"
+" }";
+Op_str<<default_case_and_end_sw<<endl;
+
+KCHARP end_rtn=
+"}";
+Op_str<<end_rtn<<endl;
+
+/*:153*/
+//line 5112 "./o2externs.w"
+
+}
+
+/*:152*//*155:*/
+//line 5254 "./o2externs.w"
+
+void OP_GRAMMAR_SYM(TOKEN_GAGGLE&Error_queue){
+T_fsm_phrase*fsm_ph= O2_FSM_PHASE;
+string fn(fsm_ph->filename_id()->identifier()->c_str());
+fn+= Suffix_fsmsym;
+std::ofstream Op_file;
+Op_file.open(fn.c_str(),ios_base::out|ios::trunc);
+if(!Op_file){
+CAbs_lr1_sym*sym= new Err_bad_fsmsym_filename(fn.c_str());
+sym->set_line_no_and_pos_in_line(*fsm_ph->filename_id());
+sym->set_who_created("o2externs.w - OP_GRAMMAR_CPP",__LINE__);
+Error_queue.push_back(*sym);
+return;
+}
+
+intro_comment(Op_file,fn.c_str());
+user_imp_sym(Op_file);
+fsm_cpp_includes(Op_file);
+using_ns_for_fsm_cpp(Op_file);
+thread_implementation(Op_file);
+
+fsm_reduce_rhs_of_rule_implementation(Op_file);
+Op_file.close();
+}
+
+/*:155*//*157:*/
+//line 5303 "./o2externs.w"
+
+void user_imp_tbl
+(std::ofstream&Op_str){
+T_fsm_phrase*fsm_ph= O2_FSM_PHASE;
+T_fsm_class_phrase*fsm_class= fsm_ph->fsm_class_phrase();
+SDC_MAP_type*dir_map= fsm_class->directives_map();
+SDC_MAP_ITER_type i= dir_map->find(SDC_user_imp_tbl);
+if(i!=dir_map->end()){
+T_user_imp_tbl* ui = (T_user_imp_tbl*)i->second;
+Op_str<<ui->syntax_code()->syntax_code()->c_str();
+Op_str<<endl;
+}
+}
+
+/*:157*//*158:*/
+//line 5318 "./o2externs.w"
+
+void output_la_sets
+(std::ofstream&Op_str){
+T_fsm_phrase*fsm_ph= O2_FSM_PHASE;
+T_fsm_class_phrase*fsm_class= fsm_ph->fsm_class_phrase();
+char big_buf_[BIG_BUFFER_32K];
+
+COMMON_LA_SETS_ITER_type i= COMMON_LA_SETS.begin();
+COMMON_LA_SETS_ITER_type ie= COMMON_LA_SETS.end();
+for(int idx= 0;i!=ie;++i,++idx){
+LA_SET_type*la_set= *i;
+/*159:*/
+//line 5335 "./o2externs.w"
+
+KCHARP la_set_entry_literal=
+"// %s";
+LA_SET_ITER_type j= la_set->begin();
+LA_SET_ITER_type je= la_set->end();
+for(;j!=je;++j){
+T_in_stbl*tsym= *j;
+int x= sprintf(big_buf_
+,la_set_entry_literal
+,tsym->t_def()->classsym()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+/*:159*/
+//line 5329 "./o2externs.w"
+
+/*160:*/
+//line 5359 "./o2externs.w"
+
+KCHARP la_set_hdr=
+"yacco2::UCHAR LA%i_%s[] ={";
+int x= sprintf(big_buf_
+,la_set_hdr
+,idx+1
+,fsm_class->identifier()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+/*161:*/
+//line 5373 "./o2externs.w"
+
+BIT_MAP_type paired_set;
+LA_SET_ITER_type k= la_set->begin();
+LA_SET_ITER_type ke= la_set->end();
+int en_no(-1);
+for(;k!=ke;++k){
+T_in_stbl*T= *k;
+en_no= T->t_def()->enum_id();
+
+int Q= en_no/NO_BITS_PER_SET_PARTITION;
+int R= en_no%NO_BITS_PER_SET_PARTITION;
+int One(1);
+int E_v= One<<R;
+BIT_MAP_ITER_type e= paired_set.find(Q);
+if(e==paired_set.end()){
+paired_set[Q]= E_v;
+}else{
+int se= e->second;
+int v= se+E_v;
+e->second= v;
+}
+}
+
+/*:161*/
+//line 5369 "./o2externs.w"
+
+/*162:*/
+//line 5397 "./o2externs.w"
+
+KCHARP no_la_set_entries=
+"%i";
+x= sprintf(big_buf_
+,no_la_set_entries
+,paired_set.size()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+BIT_MAP_ITER_type kl= paired_set.begin();
+BIT_MAP_ITER_type kle= paired_set.end();
+for(;kl!=kle;++kl){
+int part_no= kl->first;
+int e_v= kl->second;
+KCHARP la_set_entry=
+",%i,%i";
+x= sprintf(big_buf_
+,la_set_entry
+,part_no
+,e_v
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+KCHARP la_set_hdr_end=
+"};";
+Op_str<<la_set_hdr_end<<endl;
+
+
+/*:162*/
+//line 5370 "./o2externs.w"
+
+
+/*:160*/
+//line 5330 "./o2externs.w"
+
+}
+}
+/*:158*//*163:*/
+//line 5427 "./o2externs.w"
+
+void externs_and_thread_tbl_defs
+(std::ofstream&Op_str){
+T_fsm_phrase*fsm_ph= O2_FSM_PHASE;
+T_fsm_class_phrase*fsm_class= fsm_ph->fsm_class_phrase();
+
+char big_buf_[BIG_BUFFER_32K];
+STATES_ITER_type i= LR1_STATES.begin();
+STATES_ITER_type ie= LR1_STATES.end();
+int state_cnt(0);
+for(;i!=ie;++i){
+state*s= *i;
+++state_cnt;
+KCHARP state_extern=
+"extern yacco2::State S%i_%s;";
+int x= sprintf(big_buf_
+,state_extern
+,state_cnt
+,fsm_class->identifier()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+/*164:*/
+//line 5455 "./o2externs.w"
+
+using namespace NS_yacco2_T_enum;
+if(s->vectored_into_by_elem_sym_==0)continue;
+switch(s->vectored_into_by_elem_){
+case LR1_PARALLEL_OPERATOR:{
+/*165:*/
+//line 5472 "./o2externs.w"
+
+string ar_name;
+rule_def*ar_s_rule_s_name(0);
+int no_of_threads(0);
+S_VECTORS_ITER_type j= s->state_s_vector_.begin();
+S_VECTORS_ITER_type je= s->state_s_vector_.end();
+for(;j!=je;++j){
+S_VECTOR_ELEMS_type&elem_list= j->second;
+S_VECTOR_ELEMS_ITER_type k= elem_list.begin();
+S_VECTOR_ELEMS_ITER_type ke= elem_list.end();
+for(;k!=ke;++k){
+state_element*se= *k;
+
+if(se->next_state_element_==0)continue;
+CAbs_lr1_sym*sym= AST::content(*AST::brother(*se->sr_element_));
+if(sym->enumerated_id__!=T_Enum::T_T_called_thread_eosubrule_)continue;
+rule_def*rd= se->subrule_def_->its_rule_def();
+RULES_HAVING_AR_ITER_type ai= RULES_HAVING_AR.find(rd);
+if(ai!=RULES_HAVING_AR.end()){
+ar_s_rule_s_name= rd;
+}
+++no_of_threads;
+}
+}
+if(ar_s_rule_s_name!=0){
+ar_name+= "AR_";
+ar_name+= ar_s_rule_s_name->rule_name()->c_str();
+s->arbitrator_name_= new string(ar_name);
+}
+
+/*:165*/
+//line 5460 "./o2externs.w"
+
+/*166:*/
+//line 5509 "./o2externs.w"
+
+if(no_of_threads> 0){
+KCHARP state_s_thread_tbl_def=
+"struct S%ittd_%s{\n"
+" yacco2::USINT no_entries_;\n"
+" yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;\n"
+" yacco2::ULINT (*thd_id_bit_map_ptr__)[];\n"
+" yacco2::Thread_entry* thread_entries_[%i];\n"
+"};";
+int x= sprintf(big_buf_
+,state_s_thread_tbl_def
+,state_cnt
+,fsm_class->identifier()->identifier()->c_str()
+,no_of_threads
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+/*168:*/
+//line 5609 "./o2externs.w"
+
+if(ar_name.empty()==true)
+ar_name+= "0";
+
+
+/*:168*/
+//line 5526 "./o2externs.w"
+
+KCHARP state_s_thread_tbl_imp=
+"S%ittd_%s S%itt_%s = {\n"
+" %i // no of threads\n"
+" ,%s //AR_rulename or 0\n"
+" ,0// ptr to thread id bit map";
+x= sprintf(big_buf_
+,state_s_thread_tbl_imp
+,state_cnt
+,fsm_class->identifier()->identifier()->c_str()
+,state_cnt
+,fsm_class->identifier()->identifier()->c_str()
+,no_of_threads
+,ar_name.c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+j= s->state_s_vector_.begin();
+je= s->state_s_vector_.end();
+for(;j!=je;++j){
+S_VECTOR_ELEMS_type&elem_list= j->second;
+S_VECTOR_ELEMS_ITER_type k= elem_list.begin();
+S_VECTOR_ELEMS_ITER_type ke= elem_list.end();
+for(;k!=ke;++k){
+state_element*se= *k;
+if(se->next_state_element_==0)continue;
+CAbs_lr1_sym*sym= AST::content(*AST::brother(*se->sr_element_));
+if(sym->enumerated_id__==T_Enum::T_T_called_thread_eosubrule_){
+T_called_thread_eosubrule* called_th = (T_called_thread_eosubrule*)sym;
+KCHARP state_s_thread_tbl_entry=
+" ,(yacco2::Thread_entry*)&I%s";
+int x= sprintf(big_buf_
+,state_s_thread_tbl_entry
+,called_th->called_thread_name()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+}
+}
+KCHARP state_s_thread_tbl_end=
+"};";
+Op_str<<state_s_thread_tbl_end<<endl;
+}
+/*:166*/
+//line 5461 "./o2externs.w"
+
+break;
+}
+default:continue;
+}
+
+/*:164*/
+//line 5449 "./o2externs.w"
+
+}
+}
+/*:163*//*169:*/
+//line 5616 "./o2externs.w"
+
+const char*determine_shift_element_name(CAbs_lr1_sym*Sym){
+switch(Sym->enumerated_id__){
+case T_Enum::T_T_terminal_def_:{
+T_terminal_def* td = (T_terminal_def*)Sym;
+return td->classsym()->c_str();
+}
+case T_Enum::T_rule_def_:{
+rule_def* rd = (rule_def*)Sym;
+return rd->rule_name()->c_str();
+}
+}
+return"element not found";
+}
+
+/*:169*//*170:*/
+//line 5638 "./o2externs.w"
+
+void output_1st_state_s_shift_table(std::ofstream&Op_str,state&State){
+T_fsm_phrase*fsm_ph= O2_FSM_PHASE;
+T_fsm_class_phrase*fsm_class= fsm_ph->fsm_class_phrase();
+T_rules_phrase*rules_ph= O2_RULES_PHASE;
+rule_def*s_rule= (*rules_ph->crt_order())[0];
+int s_rule_enum_no= s_rule->enum_id();
+char big_buf_[BIG_BUFFER_32K];
+S_VECTORS_ITER_type svi;
+S_VECTORS_ITER_type svie;
+/*176:*/
+//line 5806 "./o2externs.w"
+
+int no_of_shift_items(0);
+svi= State.state_s_vector_.begin();
+svie= State.state_s_vector_.end();
+for(;svi!=svie;++svi){
+S_VECTOR_ELEMS_ITER_type seli= svi->second.begin();
+state_element*se= *seli;
+int cur_se_enum_no= svi->first;
+/*178:*/
+//line 5878 "./o2externs.w"
+
+if(cur_se_enum_no>=0){
+}else{
+switch(cur_se_enum_no){
+case-T_Enum::T_T_eosubrule_:{
+if(se->next_state_element_==0)continue;
+if(se->previous_state_element_==0)continue;
+break;
+}
+default:{
+break;
+}
+}
+}
+
+/*:178*/
+//line 5814 "./o2externs.w"
+
+++no_of_shift_items;
+}
+
+/*:176*/
+//line 5648 "./o2externs.w"
+
+++no_of_shift_items;
+bool first_or_2nd_prt(false);
+bool accept_prted(false);
+/*173:*/
+//line 5741 "./o2externs.w"
+
+KCHARP def_of_state_s_shift_entries=
+"struct S%istd_%s{\n"
+" yacco2::USINT no_entries_;\n"
+" yacco2::Shift_entry shift_entries_[%i];\n"
+"};";
+int x= sprintf(big_buf_
+,def_of_state_s_shift_entries
+,State.state_no_
+,fsm_class->identifier()->identifier()->c_str()
+,no_of_shift_items
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+KCHARP imp_of_state_s_shift_entries_begin=
+"S%istd_%s S%ist_%s = {\n"
+" %i\n"
+" ,\n"
+" {// start of table";
+x= sprintf(big_buf_
+,imp_of_state_s_shift_entries_begin
+,State.state_no_
+,fsm_class->identifier()->identifier()->c_str()
+,State.state_no_
+,fsm_class->identifier()->identifier()->c_str()
+,no_of_shift_items
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+
+/*:173*/
+//line 5652 "./o2externs.w"
+
+svi= State.state_s_vector_.begin();
+svie= State.state_s_vector_.end();
+for(;svi!=svie;++svi){
+S_VECTOR_ELEMS_ITER_type seli= svi->second.begin();
+state_element*se= *seli;
+int cur_se_enum_no= svi->first;
+/*178:*/
+//line 5878 "./o2externs.w"
+
+if(cur_se_enum_no>=0){
+}else{
+switch(cur_se_enum_no){
+case-T_Enum::T_T_eosubrule_:{
+if(se->next_state_element_==0)continue;
+if(se->previous_state_element_==0)continue;
+break;
+}
+default:{
+break;
+}
+}
+}
+
+/*:178*/
+//line 5659 "./o2externs.w"
+
+int goto_state_no= se->goto_state_->state_no_;
+const char*shift_elem_literal= determine_shift_element_name(se->sr_def_element_);
+if(cur_se_enum_no<s_rule_enum_no){
+/*171:*/
+//line 5680 "./o2externs.w"
+
+if(first_or_2nd_prt==false){
+first_or_2nd_prt= true;
+KCHARP imp_of_state_s_shift_1st_entry=
+" {%i,(State*)&S%i_%s} // shift sym: %s";
+int x= sprintf(big_buf_
+,imp_of_state_s_shift_1st_entry
+,cur_se_enum_no
+,goto_state_no
+,fsm_class->identifier()->identifier()->c_str()
+,shift_elem_literal
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+else{
+KCHARP imp_of_state_s_shift_2nd_entry=
+" ,{%i,(State*)&S%i_%s} // shift sym: %s";
+int x= sprintf(big_buf_
+,imp_of_state_s_shift_2nd_entry
+,cur_se_enum_no
+,goto_state_no
+,fsm_class->identifier()->identifier()->c_str()
+,shift_elem_literal
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+/*:171*/
+//line 5663 "./o2externs.w"
+
+}else{
+if(accept_prted==false){
+accept_prted= true;
+/*172:*/
+//line 5711 "./o2externs.w"
+
+if(first_or_2nd_prt==false){
+first_or_2nd_prt= true;
+KCHARP imp_of_state_s_shift_1st_entry=
+" {%i,(State*)&S%i_%s} // accept sym: %s";
+int x= sprintf(big_buf_
+,imp_of_state_s_shift_1st_entry
+,s_rule_enum_no
+,1
+,fsm_class->identifier()->identifier()->c_str()
+,s_rule->rule_name()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+else{
+KCHARP imp_of_state_s_shift_1st_entry=
+" ,{%i,(State*)&S%i_%s} // accept sym: %s";
+int x= sprintf(big_buf_
+,imp_of_state_s_shift_1st_entry
+,s_rule_enum_no
+,1
+,fsm_class->identifier()->identifier()->c_str()
+,s_rule->rule_name()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+/*:172*/
+//line 5667 "./o2externs.w"
+
+}
+/*171:*/
+//line 5680 "./o2externs.w"
+
+if(first_or_2nd_prt==false){
+first_or_2nd_prt= true;
+KCHARP imp_of_state_s_shift_1st_entry=
+" {%i,(State*)&S%i_%s} // shift sym: %s";
+int x= sprintf(big_buf_
+,imp_of_state_s_shift_1st_entry
+,cur_se_enum_no
+,goto_state_no
+,fsm_class->identifier()->identifier()->c_str()
+,shift_elem_literal
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+else{
+KCHARP imp_of_state_s_shift_2nd_entry=
+" ,{%i,(State*)&S%i_%s} // shift sym: %s";
+int x= sprintf(big_buf_
+,imp_of_state_s_shift_2nd_entry
+,cur_se_enum_no
+,goto_state_no
+,fsm_class->identifier()->identifier()->c_str()
+,shift_elem_literal
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+/*:171*/
+//line 5669 "./o2externs.w"
+
+}
+}
+if(accept_prted==false){
+accept_prted= true;
+/*172:*/
+//line 5711 "./o2externs.w"
+
+if(first_or_2nd_prt==false){
+first_or_2nd_prt= true;
+KCHARP imp_of_state_s_shift_1st_entry=
+" {%i,(State*)&S%i_%s} // accept sym: %s";
+int x= sprintf(big_buf_
+,imp_of_state_s_shift_1st_entry
+,s_rule_enum_no
+,1
+,fsm_class->identifier()->identifier()->c_str()
+,s_rule->rule_name()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+else{
+KCHARP imp_of_state_s_shift_1st_entry=
+" ,{%i,(State*)&S%i_%s} // accept sym: %s";
+int x= sprintf(big_buf_
+,imp_of_state_s_shift_1st_entry
+,s_rule_enum_no
+,1
+,fsm_class->identifier()->identifier()->c_str()
+,s_rule->rule_name()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+/*:172*/
+//line 5674 "./o2externs.w"
+
+}
+/*174:*/
+//line 5772 "./o2externs.w"
+
+KCHARP imp_of_shift_entries_end=
+" }// end of shift table\n"
+"};";
+Op_str<<imp_of_shift_entries_end<<endl;
+
+/*:174*/
+//line 5676 "./o2externs.w"
+
+}
+
+/*:170*//*175:*/
+//line 5779 "./o2externs.w"
+
+void output_all_others_state_s_shift_table(std::ofstream&Op_str,state&State){
+T_fsm_phrase*fsm_ph= O2_FSM_PHASE;
+T_fsm_class_phrase*fsm_class= fsm_ph->fsm_class_phrase();
+char big_buf_[BIG_BUFFER_32K];
+bool first_or_2nd_prt(false);
+S_VECTORS_ITER_type svi;
+S_VECTORS_ITER_type svie;
+/*176:*/
+//line 5806 "./o2externs.w"
+
+int no_of_shift_items(0);
+svi= State.state_s_vector_.begin();
+svie= State.state_s_vector_.end();
+for(;svi!=svie;++svi){
+S_VECTOR_ELEMS_ITER_type seli= svi->second.begin();
+state_element*se= *seli;
+int cur_se_enum_no= svi->first;
+/*178:*/
+//line 5878 "./o2externs.w"
+
+if(cur_se_enum_no>=0){
+}else{
+switch(cur_se_enum_no){
+case-T_Enum::T_T_eosubrule_:{
+if(se->next_state_element_==0)continue;
+if(se->previous_state_element_==0)continue;
+break;
+}
+default:{
+break;
+}
+}
+}
+
+/*:178*/
+//line 5814 "./o2externs.w"
+
+++no_of_shift_items;
+}
+
+/*:176*/
+//line 5787 "./o2externs.w"
+
+if(no_of_shift_items){
+/*173:*/
+//line 5741 "./o2externs.w"
+
+KCHARP def_of_state_s_shift_entries=
+"struct S%istd_%s{\n"
+" yacco2::USINT no_entries_;\n"
+" yacco2::Shift_entry shift_entries_[%i];\n"
+"};";
+int x= sprintf(big_buf_
+,def_of_state_s_shift_entries
+,State.state_no_
+,fsm_class->identifier()->identifier()->c_str()
+,no_of_shift_items
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+KCHARP imp_of_state_s_shift_entries_begin=
+"S%istd_%s S%ist_%s = {\n"
+" %i\n"
+" ,\n"
+" {// start of table";
+x= sprintf(big_buf_
+,imp_of_state_s_shift_entries_begin
+,State.state_no_
+,fsm_class->identifier()->identifier()->c_str()
+,State.state_no_
+,fsm_class->identifier()->identifier()->c_str()
+,no_of_shift_items
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+
+/*:173*/
+//line 5789 "./o2externs.w"
+
+S_VECTORS_ITER_type svi= State.state_s_vector_.begin();
+S_VECTORS_ITER_type svie= State.state_s_vector_.end();
+for(;svi!=svie;++svi){
+S_VECTOR_ELEMS_ITER_type seli= svi->second.begin();
+state_element*se= *seli;
+int cur_se_enum_no= svi->first;
+/*178:*/
+//line 5878 "./o2externs.w"
+
+if(cur_se_enum_no>=0){
+}else{
+switch(cur_se_enum_no){
+case-T_Enum::T_T_eosubrule_:{
+if(se->next_state_element_==0)continue;
+if(se->previous_state_element_==0)continue;
+break;
+}
+default:{
+break;
+}
+}
+}
+
+/*:178*/
+//line 5796 "./o2externs.w"
+
+int goto_state_no= se->goto_state_->state_no_;
+const char*shift_elem_literal= determine_shift_element_name(se->sr_def_element_);
+/*171:*/
+//line 5680 "./o2externs.w"
+
+if(first_or_2nd_prt==false){
+first_or_2nd_prt= true;
+KCHARP imp_of_state_s_shift_1st_entry=
+" {%i,(State*)&S%i_%s} // shift sym: %s";
+int x= sprintf(big_buf_
+,imp_of_state_s_shift_1st_entry
+,cur_se_enum_no
+,goto_state_no
+,fsm_class->identifier()->identifier()->c_str()
+,shift_elem_literal
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+else{
+KCHARP imp_of_state_s_shift_2nd_entry=
+" ,{%i,(State*)&S%i_%s} // shift sym: %s";
+int x= sprintf(big_buf_
+,imp_of_state_s_shift_2nd_entry
+,cur_se_enum_no
+,goto_state_no
+,fsm_class->identifier()->identifier()->c_str()
+,shift_elem_literal
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+/*:171*/
+//line 5799 "./o2externs.w"
+
+}
+/*174:*/
+//line 5772 "./o2externs.w"
+
+KCHARP imp_of_shift_entries_end=
+" }// end of shift table\n"
+"};";
+Op_str<<imp_of_shift_entries_end<<endl;
+
+/*:174*/
+//line 5801 "./o2externs.w"
+
+}
+}
+
+/*:175*//*179:*/
+//line 5894 "./o2externs.w"
+
+void output_meta_shifts_separately(std::ofstream&Op_str,state&State){
+T_fsm_phrase*fsm_ph= O2_FSM_PHASE;
+T_fsm_class_phrase*fsm_class= fsm_ph->fsm_class_phrase();
+char big_buf_[BIG_BUFFER_32K];
+S_VECTORS_ITER_type svi= State.state_s_vector_.find(LR1_PARALLEL_OPERATOR);
+S_VECTORS_ITER_type svie= State.state_s_vector_.end();
+if(svi!=svie){
+S_VECTOR_ELEMS_ITER_type seli= svi->second.begin();
+state_element*se= *seli;
+int goto_state_no= se->goto_state_->state_no_;
+KCHARP parallel_entry=
+"yacco2::Shift_entry S%ipse_%s = {%i,(State*)&S%i_%s};";
+int x= sprintf(big_buf_
+,parallel_entry
+,State.state_no_
+,fsm_class->identifier()->identifier()->c_str()
+,LR1_PARALLEL_OPERATOR
+,goto_state_no
+,fsm_class->identifier()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+svi= State.state_s_vector_.find(LR1_INVISIBLE_SHIFT_OPERATOR);
+if(svi!=svie){
+S_VECTOR_ELEMS_ITER_type seli= svi->second.begin();
+state_element*se= *seli;
+int goto_state_no= se->goto_state_->state_no_;
+KCHARP invisible_shift_entry=
+"yacco2::Shift_entry S%iise_%s = {%i,(State*)&S%i_%s};";
+int x= sprintf(big_buf_
+,invisible_shift_entry
+,State.state_no_
+,fsm_class->identifier()->identifier()->c_str()
+,LR1_INVISIBLE_SHIFT_OPERATOR
+,goto_state_no
+,fsm_class->identifier()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+svi= State.state_s_vector_.find(LR1_ALL_SHIFT_OPERATOR);
+if(svi!=svie){
+S_VECTOR_ELEMS_ITER_type seli= svi->second.begin();
+state_element*se= *seli;
+int goto_state_no= se->goto_state_->state_no_;
+KCHARP all_shift_entry=
+"yacco2::Shift_entry S%iase_%s = {%i,(State*)&S%i_%s};";
+int x= sprintf(big_buf_
+,all_shift_entry
+,State.state_no_
+,fsm_class->identifier()->identifier()->c_str()
+,LR1_ALL_SHIFT_OPERATOR
+,goto_state_no
+,fsm_class->identifier()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+svi= State.state_s_vector_.find(LR1_FSET_TRANSIENCE_OPERATOR);
+if(svi!=svie){
+S_VECTOR_ELEMS_ITER_type seli= svi->second.begin();
+state_element*se= *seli;
+int goto_state_no= se->goto_state_->state_no_;
+KCHARP procedure_call_entry=
+"yacco2::Shift_entry S%ipcse_%s = {%i,(State*)&S%i_%s};";
+int x= sprintf(big_buf_
+,procedure_call_entry
+,State.state_no_
+,fsm_class->identifier()->identifier()->c_str()
+,LR1_FSET_TRANSIENCE_OPERATOR
+,goto_state_no
+,fsm_class->identifier()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+svi= State.state_s_vector_.find(LR1_QUESTIONABLE_SHIFT_OPERATOR);
+if(svi!=svie){
+S_VECTOR_ELEMS_ITER_type seli= svi->second.begin();
+state_element*se= *seli;
+int goto_state_no= se->goto_state_->state_no_;
+KCHARP questionable_shift_entry=
+"yacco2::Shift_entry S%iqse_%s = {%i,(State*)&S%i_%s};";
+int x= sprintf(big_buf_
+,questionable_shift_entry
+,State.state_no_
+,fsm_class->identifier()->identifier()->c_str()
+,LR1_QUESTIONABLE_SHIFT_OPERATOR
+,goto_state_no
+,fsm_class->identifier()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+}
+
+/*:179*//*180:*/
+//line 5994 "./o2externs.w"
+
+void output_state_s_reduced_table(std::ofstream&Op_str,state&State){
+T_fsm_phrase*fsm_ph= O2_FSM_PHASE;
+T_fsm_class_phrase*fsm_class= fsm_ph->fsm_class_phrase();
+char big_buf_[BIG_BUFFER_32K];
+/*181:*/
+//line 6013 "./o2externs.w"
+
+int no_of_reduces(0);
+S_VECTORS_ITER_type j= State.state_s_vector_.begin();
+S_VECTORS_ITER_type je= State.state_s_vector_.end();
+for(;j!=je;++j){
+int cur_se_enum_no= j->first;
+S_VECTOR_ELEMS_ITER_type seli= j->second.begin();
+state_element*se= *seli;
+if(cur_se_enum_no>=0)break;
+switch(cur_se_enum_no){
+case-T_Enum::T_T_eosubrule_:{
+if(se->next_state_element_==0){
+no_of_reduces+= j->second.size();
+continue;
+}
+}
+}
+}
+
+/*:181*/
+//line 5999 "./o2externs.w"
+
+/*182:*/
+//line 6033 "./o2externs.w"
+
+if(no_of_reduces> 0){
+KCHARP reduce_def=
+"struct S%irtd_%s{\n"
+" yacco2::USINT no_entries_;\n"
+" yacco2::Reduce_entry reduce_entries_[%i];\n"
+"};";
+int x= sprintf(big_buf_
+,reduce_def
+,State.state_no_
+,fsm_class->identifier()->identifier()->c_str()
+,no_of_reduces
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+KCHARP reduce_imp_begin=
+"S%irtd_%s S%irt_%s = {\n"
+" %i\n"
+" ,\n"
+" {// start of table";
+x= sprintf(big_buf_
+,reduce_imp_begin
+,State.state_no_
+,fsm_class->identifier()->identifier()->c_str()
+,State.state_no_
+,fsm_class->identifier()->identifier()->c_str()
+,no_of_reduces
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+/*183:*/
+//line 6070 "./o2externs.w"
+
+j= State.state_s_vector_.begin();
+je= State.state_s_vector_.end();
+int reduce_no(-1);
+for(;j!=je;++j){
+int cur_se_enum_no= j->first;
+if(cur_se_enum_no>=0)break;
+S_VECTOR_ELEMS_type&elem_list= j->second;
+S_VECTOR_ELEMS_ITER_type k= elem_list.begin();
+S_VECTOR_ELEMS_ITER_type ke= elem_list.end();
+for(;k!=ke;++k){
+++reduce_no;
+state_element*se= *k;
+if(reduce_no==0){
+KCHARP reduce_imp_1st_entry=
+" {(Set_tbl*)&LA%i_%s,%s::rhs%i_%s_}";
+int x= sprintf(big_buf_
+,reduce_imp_1st_entry
+,se->common_la_set_idx_+1
+,fsm_class->identifier()->identifier()->c_str()
+,fsm_class->identifier()->identifier()->c_str()
+,se->subrule_def_->subrule_no_of_rule()
+,se->subrule_def_->its_rule_def()->rule_name()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}else{
+KCHARP reduce_imp_2nd_entry=
+" ,{(Set_tbl*)&LA%i_%s,%s::rhs%i_%s_}";
+int x= sprintf(big_buf_
+,reduce_imp_2nd_entry
+,se->common_la_set_idx_+1
+,fsm_class->identifier()->identifier()->c_str()
+,fsm_class->identifier()->identifier()->c_str()
+,se->subrule_def_->subrule_no_of_rule()
+,se->subrule_def_->its_rule_def()->rule_name()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+}
+}
+
+/*:183*/
+//line 6063 "./o2externs.w"
+
+KCHARP reduce_imp_end=
+" }// end of reduce table\n"
+"};";
+Op_str<<reduce_imp_end<<endl;
+}
+/*:182*/
+//line 6000 "./o2externs.w"
+
+}
+
+/*:180*//*184:*/
+//line 6114 "./o2externs.w"
+
+void output_state_s_called_threads_table(std::ofstream&Op_str,state&State){
+T_fsm_phrase*fsm_ph= O2_FSM_PHASE;
+T_fsm_class_phrase*fsm_class= fsm_ph->fsm_class_phrase();
+char big_buf_[BIG_BUFFER_32K];
+KCHARP call_thread_table_imp=
+"yacco2::Shift_entry S%ipse_%s = \n"
+"{%i,(State*)&S%i_%s};\n";
+}
+
+/*:184*//*185:*/
+//line 6125 "./o2externs.w"
+
+void output_state_s_called_procedure_table(std::ofstream&Op_str,state&State){
+T_fsm_phrase*fsm_ph= O2_FSM_PHASE;
+T_fsm_class_phrase*fsm_class= fsm_ph->fsm_class_phrase();
+char big_buf_[BIG_BUFFER_32K];
+KCHARP call_thread_table_imp=
+"yacco2::Shift_entry S%ipcse_%s = \n"
+"{%i,(State*)&S%i_%s};\n";
+}
+/*:185*//*186:*/
+//line 6135 "./o2externs.w"
+
+void output_questionable_shift(std::ofstream&Op_str,state&State){
+T_fsm_phrase*fsm_ph= O2_FSM_PHASE;
+T_fsm_class_phrase*fsm_class= fsm_ph->fsm_class_phrase();
+char big_buf_[BIG_BUFFER_32K];
+S_VECTORS_ITER_type svi= State.state_s_vector_.find(LR1_PARALLEL_OPERATOR);
+S_VECTORS_ITER_type svie= State.state_s_vector_.end();
+if(svi!=svie){
+S_VECTOR_ELEMS_ITER_type seli= svi->second.begin();
+state_element*se= *seli;
+int goto_state_no= se->goto_state_->state_no_;
+KCHARP parallel_entry=
+"yacco2::Shift_entry S%ipse_%s = {%i,(State*)&S%i_%s};";
+int x= sprintf(big_buf_
+,parallel_entry
+,State.state_no_
+,fsm_class->identifier()->identifier()->c_str()
+,LR1_PARALLEL_OPERATOR
+,goto_state_no
+,fsm_class->identifier()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+svi= State.state_s_vector_.find(LR1_INVISIBLE_SHIFT_OPERATOR);
+if(svi!=svie){
+S_VECTOR_ELEMS_ITER_type seli= svi->second.begin();
+state_element*se= *seli;
+int goto_state_no= se->goto_state_->state_no_;
+KCHARP invisible_shift_entry=
+"yacco2::Shift_entry S%iise_%s = {%i,(State*)&S%i_%s};";
+int x= sprintf(big_buf_
+,invisible_shift_entry
+,State.state_no_
+,fsm_class->identifier()->identifier()->c_str()
+,LR1_INVISIBLE_SHIFT_OPERATOR
+,goto_state_no
+,fsm_class->identifier()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+svi= State.state_s_vector_.find(LR1_ALL_SHIFT_OPERATOR);
+if(svi!=svie){
+S_VECTOR_ELEMS_ITER_type seli= svi->second.begin();
+state_element*se= *seli;
+int goto_state_no= se->goto_state_->state_no_;
+KCHARP all_shift_entry=
+"yacco2::Shift_entry S%iase_%s = {%i,(State*)&S%i_%s};";
+int x= sprintf(big_buf_
+,all_shift_entry
+,State.state_no_
+,fsm_class->identifier()->identifier()->c_str()
+,LR1_ALL_SHIFT_OPERATOR
+,goto_state_no
+,fsm_class->identifier()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+svi= State.state_s_vector_.find(LR1_FSET_TRANSIENCE_OPERATOR);
+if(svi!=svie){
+S_VECTOR_ELEMS_ITER_type seli= svi->second.begin();
+state_element*se= *seli;
+int goto_state_no= se->goto_state_->state_no_;
+KCHARP procedure_call_entry=
+"yacco2::Shift_entry S%ipcse_%s = {%i,(State*)&S%i_%s};";
+int x= sprintf(big_buf_
+,procedure_call_entry
+,State.state_no_
+,fsm_class->identifier()->identifier()->c_str()
+,LR1_FSET_TRANSIENCE_OPERATOR
+,goto_state_no
+,fsm_class->identifier()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+svi= State.state_s_vector_.find(LR1_QUESTIONABLE_SHIFT_OPERATOR);
+if(svi!=svie){
+S_VECTOR_ELEMS_ITER_type seli= svi->second.begin();
+state_element*se= *seli;
+int goto_state_no= se->goto_state_->state_no_;
+KCHARP questionable_shift_entry=
+"yacco2::Shift_entry S%iise_%s = {%i,(State*)&S%i_%s};";
+int x= sprintf(big_buf_
+,questionable_shift_entry
+,State.state_no_
+,fsm_class->identifier()->identifier()->c_str()
+,LR1_QUESTIONABLE_SHIFT_OPERATOR
+,goto_state_no
+,fsm_class->identifier()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+}
+
+/*:186*//*187:*/
+//line 6238 "./o2externs.w"
+
+void output_lr_state(std::ofstream&Op_str,state&State){
+T_fsm_phrase*fsm_ph= O2_FSM_PHASE;
+T_fsm_class_phrase*fsm_class= fsm_ph->fsm_class_phrase();
+char big_buf_[BIG_BUFFER_32K];
+KCHARP state_entry=
+"yacco2::State S%i_%s = //State's vectored into symbol: \"%s\" \n"
+"{%i";
+int x= sprintf(big_buf_
+,state_entry
+,State.state_no_
+,fsm_class->identifier()->identifier()->c_str()
+,State.entry_symbol_literal()
+,State.state_no_
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+
+/*188:*/
+//line 6270 "./o2externs.w"
+
+S_VECTORS_ITER_type svi= State.state_s_vector_.find(LR1_PARALLEL_OPERATOR);
+S_VECTORS_ITER_type svie= State.state_s_vector_.end();
+if(svi!=svie){
+S_VECTOR_ELEMS_ITER_type seli= svi->second.begin();
+state_element*se= *seli;
+int goto_state_no= se->goto_state_->state_no_;
+KCHARP parallel_entry=
+",(Shift_entry*)&S%ipse_%s";
+int x= sprintf(big_buf_
+,parallel_entry
+,State.state_no_
+,fsm_class->identifier()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+}else{
+Op_str<<",0";
+}
+
+/*:188*/
+//line 6256 "./o2externs.w"
+
+/*189:*/
+//line 6290 "./o2externs.w"
+
+svi= State.state_s_vector_.find(LR1_ALL_SHIFT_OPERATOR);
+if(svi!=svie){
+S_VECTOR_ELEMS_ITER_type seli= svi->second.begin();
+state_element*se= *seli;
+int goto_state_no= se->goto_state_->state_no_;
+KCHARP all_shift_entry=
+",(Shift_entry*)&S%iase_%s";
+int x= sprintf(big_buf_
+,all_shift_entry
+,State.state_no_
+,fsm_class->identifier()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}else{
+Op_str<<",0";
+}
+
+/*:189*/
+//line 6257 "./o2externs.w"
+
+/*190:*/
+//line 6310 "./o2externs.w"
+
+svi= State.state_s_vector_.find(LR1_INVISIBLE_SHIFT_OPERATOR);
+if(svi!=svie){
+S_VECTOR_ELEMS_ITER_type seli= svi->second.begin();
+state_element*se= *seli;
+int goto_state_no= se->goto_state_->state_no_;
+KCHARP invisible_shift_entry=
+",(Shift_entry*)&S%iise_%s";
+int x= sprintf(big_buf_
+,invisible_shift_entry
+,State.state_no_
+,fsm_class->identifier()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}else{
+Op_str<<",0";
+}
+
+/*:190*/
+//line 6258 "./o2externs.w"
+
+/*191:*/
+//line 6330 "./o2externs.w"
+
+svi= State.state_s_vector_.find(LR1_FSET_TRANSIENCE_OPERATOR);
+svie= State.state_s_vector_.end();
+if(svi!=svie){
+S_VECTOR_ELEMS_ITER_type seli= svi->second.begin();
+state_element*se= *seli;
+int goto_state_no= se->goto_state_->state_no_;
+KCHARP procedure_call_entry=
+",(Shift_entry*)&S%ipcse_%s";
+int x= sprintf(big_buf_
+,procedure_call_entry
+,State.state_no_
+,fsm_class->identifier()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+}else{
+Op_str<<",0";
+}
+
+/*:191*/
+//line 6259 "./o2externs.w"
+
+/*193:*/
+//line 6371 "./o2externs.w"
+
+/*176:*/
+//line 5806 "./o2externs.w"
+
+int no_of_shift_items(0);
+svi= State.state_s_vector_.begin();
+svie= State.state_s_vector_.end();
+for(;svi!=svie;++svi){
+S_VECTOR_ELEMS_ITER_type seli= svi->second.begin();
+state_element*se= *seli;
+int cur_se_enum_no= svi->first;
+/*178:*/
+//line 5878 "./o2externs.w"
+
+if(cur_se_enum_no>=0){
+}else{
+switch(cur_se_enum_no){
+case-T_Enum::T_T_eosubrule_:{
+if(se->next_state_element_==0)continue;
+if(se->previous_state_element_==0)continue;
+break;
+}
+default:{
+break;
+}
+}
+}
+
+/*:178*/
+//line 5814 "./o2externs.w"
+
+++no_of_shift_items;
+}
+
+/*:176*/
+//line 6372 "./o2externs.w"
+
+if(no_of_shift_items> 0){
+KCHARP shift_entry=
+",(Shift_tbl*)&S%ist_%s";
+int x= sprintf(big_buf_
+,shift_entry
+,State.state_no_
+,fsm_class->identifier()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+}else{
+Op_str<<",0";
+}
+
+
+/*:193*/
+//line 6260 "./o2externs.w"
+
+/*194:*/
+//line 6388 "./o2externs.w"
+
+/*181:*/
+//line 6013 "./o2externs.w"
+
+int no_of_reduces(0);
+S_VECTORS_ITER_type j= State.state_s_vector_.begin();
+S_VECTORS_ITER_type je= State.state_s_vector_.end();
+for(;j!=je;++j){
+int cur_se_enum_no= j->first;
+S_VECTOR_ELEMS_ITER_type seli= j->second.begin();
+state_element*se= *seli;
+if(cur_se_enum_no>=0)break;
+switch(cur_se_enum_no){
+case-T_Enum::T_T_eosubrule_:{
+if(se->next_state_element_==0){
+no_of_reduces+= j->second.size();
+continue;
+}
+}
+}
+}
+
+/*:181*/
+//line 6389 "./o2externs.w"
+
+if(no_of_reduces> 0){
+KCHARP reduce_entry=
+",(Reduce_tbl*)&S%irt_%s";
+int x= sprintf(big_buf_
+,reduce_entry
+,State.state_no_
+,fsm_class->identifier()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+
+}else{
+Op_str<<",0";
+}
+/*:194*/
+//line 6261 "./o2externs.w"
+
+/*195:*/
+//line 6406 "./o2externs.w"
+
+svi= State.state_s_vector_.find(LR1_PARALLEL_OPERATOR);
+if(svi!=svie){
+S_VECTOR_ELEMS_ITER_type seli= svi->second.begin();
+state_element*se= *seli;
+if(se->next_state_element_->goto_state_==0){
+Op_str<<",0";
+}else{
+int goto_state_no= se->goto_state_->state_no_;
+KCHARP thread_calls_entry=
+",(State_s_thread_tbl*)&S%itt_%s";
+int x= sprintf(big_buf_
+,thread_calls_entry
+,goto_state_no
+,fsm_class->identifier()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+
+}
+}else{
+Op_str<<",0";
+}
+
+/*:195*/
+//line 6262 "./o2externs.w"
+
+/*196:*/
+//line 6432 "./o2externs.w"
+
+svi= State.state_s_vector_.find(LR1_FSET_TRANSIENCE_OPERATOR);
+if(svi!=svie){
+S_VECTOR_ELEMS_ITER_type seli= svi->second.begin();
+state_element*se= *seli;
+if(se->next_state_element_->goto_state_==0){
+Op_str<<",0";
+}else{
+/*167:*/
+//line 5578 "./o2externs.w"
+
+S_VECTORS_ITER_type j= se->goto_state_->state_s_vector_.begin();
+S_VECTORS_ITER_type je= se->goto_state_->state_s_vector_.end();
+for(;j!=je;++j){
+S_VECTOR_ELEMS_type&elem_list= j->second;
+S_VECTOR_ELEMS_ITER_type k= elem_list.begin();
+S_VECTOR_ELEMS_ITER_type ke= elem_list.end();
+for(;k!=ke;++k){
+state_element*se= *k;
+if(se->next_state_element_==0)continue;
+AST*bypassed_thd_eos_t= AST::brother(*se->sr_element_);
+CAbs_lr1_sym*sym= AST::content(*bypassed_thd_eos_t);
+if(sym->enumerated_id__==T_Enum::T_T_called_thread_eosubrule_){
+T_called_thread_eosubrule* called_th = (T_called_thread_eosubrule*)sym;
+KCHARP state_s_thread_tbl_entry=
+",(yacco2::Type_pc_fnct_ptr)&%s::%s";
+int x= sprintf(big_buf_
+,state_s_thread_tbl_entry
+,called_th->ns()->identifier()->c_str()
+,called_th->called_thread_name()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+}
+}
+}
+
+/*:167*/
+//line 6440 "./o2externs.w"
+
+}
+}else{
+Op_str<<",0";
+}
+
+/*:196*/
+//line 6263 "./o2externs.w"
+
+/*192:*/
+//line 6350 "./o2externs.w"
+
+svi= State.state_s_vector_.find(LR1_QUESTIONABLE_SHIFT_OPERATOR);
+if(svi!=svie){
+S_VECTOR_ELEMS_ITER_type seli= svi->second.begin();
+state_element*se= *seli;
+int goto_state_no= se->goto_state_->state_no_;
+KCHARP questionable_shift_entry=
+",(Shift_entry*)&S%iqse_%s";
+int x= sprintf(big_buf_
+,questionable_shift_entry
+,State.state_no_
+,fsm_class->identifier()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}else{
+Op_str<<",0";
+}
+
+
+/*:192*/
+//line 6264 "./o2externs.w"
+
+Op_str<<"};"<<endl;
+}
+
+
+/*:187*//*197:*/
+//line 6453 "./o2externs.w"
+
+void emit_each_lr_state_s_tables(std::ofstream&Op_str){
+STATES_ITER_type si= LR1_STATES.begin();
+STATES_ITER_type sie= LR1_STATES.end();
+for(;si!=sie;++si){
+state*cur_state= *si;
+if(cur_state->state_no_==1){
+output_1st_state_s_shift_table(Op_str,*cur_state);
+}else{
+output_all_others_state_s_shift_table(Op_str,*cur_state);
+}
+output_meta_shifts_separately(Op_str,*cur_state);
+output_state_s_reduced_table(Op_str,*cur_state);
+output_state_s_called_threads_table(Op_str,*cur_state);
+output_state_s_called_procedure_table(Op_str,*cur_state);
+output_lr_state(Op_str,*cur_state);
+}
+}
+/*:197*//*198:*/
+//line 6472 "./o2externs.w"
+
+void OP_GRAMMAR_TBL(TOKEN_GAGGLE&Error_queue){
+T_fsm_phrase*fsm_ph= O2_FSM_PHASE;
+string fn(fsm_ph->filename_id()->identifier()->c_str());
+fn+= Suffix_fsmtbl;
+std::ofstream Op_file;
+Op_file.open(fn.c_str(),ios_base::out|ios::trunc);
+if(!Op_file){
+CAbs_lr1_sym*sym= new Err_bad_fsmtbl_filename(fn.c_str());
+sym->set_line_no_and_pos_in_line(*fsm_ph->filename_id());
+sym->set_who_created("o2externs.w - OP_GRAMMAR_CPP",__LINE__);
+Error_queue.push_back(*sym);
+return;
+}
+
+intro_comment(Op_file,fn.c_str());
+user_imp_tbl(Op_file);
+fsm_cpp_includes(Op_file);
+using_ns_for_fsm_cpp(Op_file);
+output_la_sets(Op_file);
+externs_and_thread_tbl_defs(Op_file);
+emit_each_lr_state_s_tables(Op_file);
+Op_file.close();
+}
+
+/*:198*//*200:*/
+//line 6518 "./o2externs.w"
+
+void enumerate_lrk
+(std::ofstream&Op_str){
+T_lr1_k_phrase*ph= O2_LRK_PHASE;
+std::vector<T_terminal_def*> *dictionary= ph->crt_order();
+
+char big_buf_[BIG_BUFFER_32K];
+KCHARP enumerate_item=
+" ,T_%s_ = %i";
+std::vector<T_terminal_def*> ::iterator i= dictionary->begin();
+std::vector<T_terminal_def*> ::iterator ie= dictionary->end();
+for(;i!=ie;++i){
+T_terminal_def*td= *i;
+int x= sprintf(big_buf_
+,enumerate_item
+,td->classsym()->c_str()
+,td->enum_id()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+}
+
+/*:200*//*201:*/
+//line 6545 "./o2externs.w"
+
+void enumerate_rc
+(std::ofstream&Op_str){
+T_rc_phrase*ph= O2_RC_PHASE;
+std::vector<T_terminal_def*> *dictionary= ph->crt_order();
+char big_buf_[BIG_BUFFER_32K];
+KCHARP enumerate_item=
+" ,T_%s_ = %i";
+std::vector<T_terminal_def*> ::iterator i= dictionary->begin();
+std::vector<T_terminal_def*> ::iterator ie= dictionary->end();
+for(;i!=ie;++i){
+T_terminal_def*td= *i;
+int x= sprintf(big_buf_
+,enumerate_item
+,td->classsym()->c_str()
+,td->enum_id()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+}
+
+/*:201*//*202:*/
+//line 6571 "./o2externs.w"
+
+void enumerate_errors
+(std::ofstream&Op_str){
+T_error_symbols_phrase*ph= O2_ERROR_PHASE;
+std::vector<T_terminal_def*> *dictionary= ph->crt_order();
+char big_buf_[BIG_BUFFER_32K];
+KCHARP enumerate_item=
+" ,T_%s_ = %i";
+std::vector<T_terminal_def*> ::iterator i= dictionary->begin();
+std::vector<T_terminal_def*> ::iterator ie= dictionary->end();
+for(;i!=ie;++i){
+T_terminal_def*td= *i;
+
+int x= sprintf(big_buf_
+,enumerate_item
+,td->classsym()->c_str()
+,td->enum_id()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+}
+/*:202*//*203:*/
+//line 6597 "./o2externs.w"
+
+void enumerate_T
+(std::ofstream&Op_str){
+T_terminals_phrase*ph= O2_T_PHASE;
+std::vector<T_terminal_def*> *dictionary= ph->crt_order();
+char big_buf_[BIG_BUFFER_32K];
+KCHARP enumerate_item=
+" ,T_%s_ = %i";
+std::vector<T_terminal_def*> ::iterator i= dictionary->begin();
+std::vector<T_terminal_def*> ::iterator ie= dictionary->end();
+for(;i!=ie;++i){
+T_terminal_def*td= *i;
+int x= sprintf(big_buf_
+,enumerate_item
+,td->classsym()->c_str()
+,td->enum_id()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+}
+
+/*:203*//*204:*/
+//line 6620 "./o2externs.w"
+
+void enumeration_summary_for_struct
+(std::ofstream&Op_str){
+T_enum_phrase*enum_ph= O2_T_ENUM_PHASE;
+char big_buf_[BIG_BUFFER_32K];
+KCHARP summary=
+" sum_total_T = %i\n"
+" ,no_of_terminals = %i\n"
+" ,no_of_raw_chars = %i\n"
+" ,no_of_lr1_constants = %i\n"
+" ,no_of_error_terminals = %i\n"
+" ,start_LRK=%i,end_LRK=%i\n"
+" ,start_RC=%i,end_RC=%i\n"
+" ,start_T=%i,end_T=%i\n"
+" ,start_ERR=%i,end_ERR=%i\n"
+" ,start_R=%i";
+int x= sprintf(big_buf_
+,summary
+,enum_ph->total_enumerate()
+,enum_ph->total_T_enumerate()
+,enum_ph->total_rc_enumerate()
+,enum_ph->total_lrk_enumerate()
+,enum_ph->total_err_enumerate()
+,enum_ph->start_lrk_enumerate(),enum_ph->stop_lrk_enumerate()
+,enum_ph->start_rc_enumerate(),enum_ph->stop_rc_enumerate()
+,enum_ph->start_T_enumerate(),enum_ph->stop_T_enumerate()
+,enum_ph->start_err_enumerate(),enum_ph->stop_err_enumerate()
+,enum_ph->total_enumerate()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+/*:204*//*205:*/
+//line 6654 "./o2externs.w"
+
+void enumeration_define_list
+(std::ofstream&Op_str){
+T_enum_phrase*enum_ph= O2_T_ENUM_PHASE;
+char big_buf_[BIG_BUFFER_32K];
+KCHARP enum_list_start=
+" enum enumerated_terminals%s{";
+int x= sprintf(big_buf_
+,enum_list_start," "
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+
+enumeration_summary_for_struct(Op_str);
+enumerate_lrk(Op_str);
+enumerate_rc(Op_str);
+enumerate_T(Op_str);
+enumerate_errors(Op_str);
+
+KCHARP enum_list_end=
+" }; // close defining enum list";
+Op_str<<enum_list_end<<endl;
+}
+
+/*:205*//*206:*/
+//line 6679 "./o2externs.w"
+
+void enumeration_define_structure
+(std::ofstream&Op_str){
+T_enum_phrase*enum_ph= O2_T_ENUM_PHASE;
+char big_buf_[BIG_BUFFER_32K];
+KCHARP struct_start=
+" struct T_Enum%s{";
+int x= sprintf(big_buf_
+,struct_start," "
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+
+enumeration_define_list(Op_str);
+KCHARP struct_end=
+" }; // close defining T_enum";
+Op_str<<struct_end<<endl;
+}
+/*:206*//*207:*/
+//line 6698 "./o2externs.w"
+
+void enumeration_namespace_for_header
+(std::ofstream&Op_str){
+using namespace NS_yacco2_terminals;
+T_enum_phrase*enum_ph= O2_T_ENUM_PHASE;
+char big_buf_[BIG_BUFFER_32K];
+KCHARP ns_of_enum_start=
+"namespace %s {";
+int x= sprintf(big_buf_
+,ns_of_enum_start
+,enum_ph->namespace_id()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+
+enumeration_define_structure(Op_str);
+KCHARP ns_of_enum_end=
+"} // end of namespace";
+Op_str<<ns_of_enum_end<<endl;
+}
+
+/*:207*//*208:*/
+//line 6720 "./o2externs.w"
+
+void enumeration_include_guard_for_header
+(std::ofstream&Op_str){
+using namespace NS_yacco2_terminals;
+T_enum_phrase*enum_ph= O2_T_ENUM_PHASE;
+char big_buf_[BIG_BUFFER_32K];
+KCHARP signal_guard_start=
+"#ifndef __%s_h__\n"
+"#define __%s_h__ 1";
+int x= sprintf(big_buf_
+,signal_guard_start
+,enum_ph->filename_id()->identifier()->c_str()
+,enum_ph->filename_id()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+enumeration_namespace_for_header(Op_str);
+KCHARP signal_guard_end=
+"#endif";
+Op_str<<signal_guard_end<<endl;
+}
+/*:208*//*209:*/
+//line 6742 "./o2externs.w"
+
+void gen_Tes_literals_per_spec_voc
+(std::ofstream&Op_str
+,std::vector<T_terminal_def*> ::iterator I
+,std::vector<T_terminal_def*> ::iterator IE){
+char big_buf_[BIG_BUFFER_32K];
+
+KCHARP literal=
+"%s";
+for(;I!=IE;++I){
+T_terminal_def*td= *I;
+int x= sprintf(big_buf_
+,literal
+,td->classsym()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+}
+/*:209*//*210:*/
+//line 6762 "./o2externs.w"
+
+void gen_Tes_literals
+(std::ofstream&Op_str){
+T_terminals_phrase*pht= O2_T_PHASE;
+T_rc_phrase*phrc= O2_RC_PHASE;
+T_error_symbols_phrase*phe= O2_ERROR_PHASE;
+T_lr1_k_phrase*phlr= O2_LRK_PHASE;
+
+char big_buf_[BIG_BUFFER_32K];
+KCHARP t_alphabet=
+"T-alphabet%s";
+int x= sprintf(big_buf_,t_alphabet," ");
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+gen_Tes_literals_per_spec_voc(Op_str,phlr->crt_order()->begin(),phlr->crt_order()->end());
+gen_Tes_literals_per_spec_voc(Op_str,phrc->crt_order()->begin(),phrc->crt_order()->end());
+gen_Tes_literals_per_spec_voc(Op_str,pht->crt_order()->begin(),pht->crt_order()->end());
+gen_Tes_literals_per_spec_voc(Op_str,phe->crt_order()->begin(),phe->crt_order()->end());
+KCHARP end_t_alphabet=
+"end-T-alphabet%s";
+x= sprintf(big_buf_,end_t_alphabet," ");
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+/*:210*//*211:*/
+//line 6815 "./o2externs.w"
+
+void OP_ENUMERATION_HEADER(TOKEN_GAGGLE&Error_queue){
+T_enum_phrase*enum_ph= O2_T_ENUM_PHASE;
+string fn(enum_ph->filename_id()->identifier()->c_str());
+fn+= Suffix_enumeration_hdr;
+std::ofstream Op_file;
+Op_file.open(fn.c_str(),ios_base::out|ios::trunc);
+if(!Op_file){
+CAbs_lr1_sym*sym= new Err_bad_enum_filename(fn.c_str());
+sym->set_line_no_and_pos_in_line(*enum_ph->filename_id());
+sym->set_who_created("o2externs.w - OP_ENUMERATION_HEADER_CPP",__LINE__);
+Error_queue.push_back(*sym);
+return;
+}
+
+intro_comment(Op_file,fn.c_str());
+enumeration_include_guard_for_header(Op_file);
+Op_file.close();
+}
+
+/*:211*//*212:*/
+//line 6843 "./o2externs.w"
+
+void OP_T_Alphabet(TOKEN_GAGGLE&Error_queue){
+T_enum_phrase*enum_ph= O2_T_ENUM_PHASE;
+string fn_literal(enum_ph->filename_id()->identifier()->c_str());
+fn_literal+= Suffix_t_alphabet;
+std::ofstream Op_file;
+Op_file.open(fn_literal.c_str(),ios_base::out|ios::trunc);
+if(!Op_file){
+CAbs_lr1_sym*sym= new Err_bad_enum_filename(fn_literal.c_str());
+sym->set_line_no_and_pos_in_line(*enum_ph->filename_id());
+sym->set_who_created("o2externs.w - OP_ENUMERATION_HEADER_CPP",__LINE__);
+Error_queue.push_back(*sym);
+return;
+}
+intro_comment(Op_file,fn_literal.c_str());
+gen_Tes_literals(Op_file);
+Op_file.close();
+}
+
+/*:212*//*214:*/
+//line 6876 "./o2externs.w"
+
+void errors_loop_thru_and_gen_defs_for_header
+(std::ofstream&Op_str){
+T_error_symbols_phrase*errors_ph= O2_ERROR_PHASE;
+
+std::vector<T_terminal_def*> *dictionary= errors_ph->crt_order();
+char big_buf_[BIG_BUFFER_32K];
+KCHARP def_item=
+" struct %s:public yacco2::CAbs_lr1_sym{\n"
+"%s";
+
+std::vector<T_terminal_def*> ::iterator i= dictionary->begin();
+std::vector<T_terminal_def*> ::iterator ie= dictionary->end();
+for(;i!=ie;++i){
+T_terminal_def*td= *i;
+SDC_MAP_type*sdc_map= td->directives_map();
+SDC_MAP_ITER_type j= sdc_map->find(SDC_user_declaration);
+if(j==sdc_map->end()){
+KCHARP shell_of_def_item=
+" struct %s:public yacco2::CAbs_lr1_sym{\n"
+" %s();\n"
+" };";
+int x= sprintf(big_buf_
+,shell_of_def_item
+,td->classsym()->c_str()
+,td->classsym()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}else{
+T_user_declaration*gw_sdc= (T_user_declaration*)j->second;
+int x= sprintf(big_buf_
+,def_item
+,td->classsym()->c_str()
+,gw_sdc->syntax_code()->syntax_code()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+
+j= sdc_map->find(SDC_op);
+if(j!=sdc_map->end()){
+Op_str<<" op();"<<endl;
+}
+j= sdc_map->find(SDC_destructor);
+if(j!=sdc_map->end()){
+KCHARP dtor=
+" static void dtor_%s(yacco2::VOIDP This,yacco2::VOIDP P);\n";
+int x= sprintf(big_buf_
+,dtor
+,td->classsym()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+Op_str<<" };"<<endl;
+}
+}
+}
+
+/*:214*//*215:*/
+//line 6936 "./o2externs.w"
+
+void errors_use_enum_namespace_for_header
+(std::ofstream&Op_str){
+T_error_symbols_phrase*errors_ph= O2_ERROR_PHASE;
+T_enum_phrase*enum_ph= O2_T_ENUM_PHASE;
+
+char big_buf_[BIG_BUFFER_32K];
+KCHARP using_T_namespace=
+" using namespace %s;";
+int x= sprintf(big_buf_
+,using_T_namespace
+,enum_ph->namespace_id()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+/*:215*//*216:*/
+//line 6954 "./o2externs.w"
+
+void errors_namespace_for_header
+(std::ofstream&Op_str){
+T_error_symbols_phrase*errors_ph= O2_ERROR_PHASE;
+
+char big_buf_[BIG_BUFFER_32K];
+KCHARP namespace_start=
+"namespace %s{";
+int x= sprintf(big_buf_
+,namespace_start
+,errors_ph->namespace_id()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+errors_use_enum_namespace_for_header(Op_str);
+errors_loop_thru_and_gen_defs_for_header(Op_str);
+
+KCHARP namespace_end=
+"}//namespace";
+Op_str<<namespace_end<<endl;
+}
+
+/*:216*//*217:*/
+//line 6977 "./o2externs.w"
+
+void errors_include_guard_for_header
+(std::ofstream&Op_str){
+T_error_symbols_phrase*errors_ph= O2_ERROR_PHASE;
+char big_buf_[BIG_BUFFER_32K];
+KCHARP signal_guard_start=
+"#ifndef __%s_h__\n"
+"#define __%s_h__ 1";
+int x= sprintf(big_buf_
+,signal_guard_start
+,errors_ph->filename_id()->identifier()->c_str()
+,errors_ph->filename_id()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+errors_namespace_for_header(Op_str);
+KCHARP signal_guard_end=
+"#endif";
+Op_str<<signal_guard_end<<endl;
+}
+
+/*:217*//*218:*/
+//line 6999 "./o2externs.w"
+
+void errors_include_files_for_header
+(std::ofstream&Op_str){
+T_error_symbols_phrase*errors_ph= O2_ERROR_PHASE;
+T_enum_phrase*enum_ph= O2_T_ENUM_PHASE;
+T_lr1_k_phrase*lr_ph= O2_LRK_PHASE;
+char big_buf_[BIG_BUFFER_32K];
+KCHARP include_files=
+"#include \"%s\"\n"
+"#include \"%s%s\"\n"
+"#include \"%s%s\"";
+int x= sprintf(big_buf_
+,include_files
+,O2_library_file
+,enum_ph->filename_id()->identifier()->c_str()
+,Suffix_enumeration_hdr
+,lr_ph->filename_id()->identifier()->c_str()
+,Suffix_LRK_hdr
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+/*:218*//*219:*/
+//line 7024 "./o2externs.w"
+
+void OP_ERRORS_HEADER(TOKEN_GAGGLE&Error_queue){
+T_error_symbols_phrase*errors_ph= O2_ERROR_PHASE;
+string fn(errors_ph->filename_id()->identifier()->c_str());
+fn+= Suffix_Errors_hdr;
+std::ofstream Op_file;
+Op_file.open(fn.c_str(),ios_base::out|ios::trunc);
+if(!Op_file){
+CAbs_lr1_sym*sym= new Err_bad_errors_hdrfilename(fn.c_str());
+sym->set_line_no_and_pos_in_line(*errors_ph->filename_id());
+sym->set_who_created("o2externs.w - OP_ERRORS_HEADER_CPP",__LINE__);
+Error_queue.push_back(*sym);
+return;
+}
+
+intro_comment(Op_file,fn.c_str());
+errors_include_files_for_header(Op_file);
+errors_include_guard_for_header(Op_file);
+Op_file.close();
+}
+
+/*:219*//*221:*/
+//line 7055 "./o2externs.w"
+
+void errors_imp_dtor
+(std::ofstream&Op_str,T_terminal_def*Td,SDC_MAP_ITER_type&J){
+char big_buf_[BIG_BUFFER_32K];
+T_destructor*dtor_t= (T_destructor*)J->second;
+KCHARP dtor_code=
+"void %s::dtor_%s(yacco2::VOIDP This,yacco2::VOIDP P){\n"
+" bool ABORT_STATUS = ((yacco2::Parser*)P)->top_stack_record()->aborted__;\n"
+" %s* R = (%s*)(This);\n"
+" %s\n"
+"}";
+KCHARP dtor_code_noabort=
+"void %s::dtor_%s(yacco2::VOIDP This,yacco2::VOIDP P){\n"
+" %s* R = (%s*)(This);\n"
+" %s\n"
+"}";
+std::string::size_type r=
+dtor_t->syntax_code()->syntax_code()->find("ABORT_STATUS");
+int x(0);
+if(r!=std::string::npos){
+x= sprintf(big_buf_
+,dtor_code
+,Td->classsym()->c_str()
+,Td->classsym()->c_str()
+,Td->classsym()->c_str()
+,Td->classsym()->c_str()
+,dtor_t->syntax_code()->syntax_code()->c_str()
+);
+}else{
+x= sprintf(big_buf_
+,dtor_code_noabort
+,Td->classsym()->c_str()
+,Td->classsym()->c_str()
+,Td->classsym()->c_str()
+,Td->classsym()->c_str()
+,dtor_t->syntax_code()->syntax_code()->c_str()
+);
+}
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+/*:221*//*222:*/
+//line 7098 "./o2externs.w"
+
+void errors_imp_implementation
+(std::ofstream&Op_str,T_terminal_def*Td,SDC_MAP_ITER_type&J){
+char big_buf_[BIG_BUFFER_32K];
+T_user_implementation*imp_t= (T_user_implementation*)J->second;
+Op_str<<imp_t->syntax_code()->syntax_code()->c_str();
+SDC_MAP_type*sdc_map= Td->directives_map();
+SDC_MAP_ITER_type j= sdc_map->find(SDC_destructor);
+if(j!=sdc_map->end()){
+errors_imp_dtor(Op_str,Td,j);
+}
+}
+
+/*:222*//*223:*/
+//line 7112 "./o2externs.w"
+
+void errors_imp_shellimplementation
+(std::ofstream&Op_str,T_terminal_def*Td,std::string&Autodelete,std::string&Autoabort){
+char big_buf_[BIG_BUFFER_32K];
+KCHARP shell_of_def_item=
+"%s::\n"
+"%s()\n"
+" T_CTOR(\"%s\",T_Enum::T_%s_,%s,%s,%s){}";
+int x= sprintf(big_buf_
+,shell_of_def_item
+,Td->classsym()->c_str()
+,Td->classsym()->c_str()
+,Td->t_name()->c_str()
+,Td->classsym()->c_str()
+,"0"
+,Autodelete.c_str()
+,Autoabort.c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+/*:223*//*224:*/
+//line 7135 "./o2externs.w"
+
+void errors_loop_thru_and_gen_defs_for_imp
+(std::ofstream&Op_str){
+T_error_symbols_phrase*errors_ph= O2_ERROR_PHASE;
+std::vector<T_terminal_def*> *dictionary= errors_ph->crt_order();
+char big_buf_[BIG_BUFFER_32K];
+string auto_delete;
+string auto_abort;
+string dtor_adr;
+
+std::vector<T_terminal_def*> ::iterator i= dictionary->begin();
+std::vector<T_terminal_def*> ::iterator ie= dictionary->end();
+for(;i!=ie;++i){
+T_terminal_def*td= *i;
+SDC_MAP_type*sdc_map= td->directives_map();
+SDC_MAP_ITER_type j= sdc_map->find(SDC_user_implementation);
+if(td->autodelete()==false){
+auto_delete= "false";
+}else{
+auto_delete= "true";
+}
+if(td->autoabort()==false){
+auto_abort= "false";
+}else{
+auto_abort= "true";
+}
+
+if(j==sdc_map->end()){
+errors_imp_shellimplementation(Op_str,td,auto_delete,auto_abort);
+}else{
+errors_imp_implementation(Op_str,td,j);
+}
+}
+}
+
+/*:224*//*225:*/
+//line 7171 "./o2externs.w"
+
+void errors_use_enum_namespace_for_imp
+(std::ofstream&Op_str){
+T_error_symbols_phrase*errors_ph= O2_ERROR_PHASE;
+T_enum_phrase*enum_ph= O2_T_ENUM_PHASE;
+
+char big_buf_[BIG_BUFFER_32K];
+KCHARP using_namespace=
+" using namespace %s;\n"
+" using namespace %s;";
+int x= sprintf(big_buf_
+,using_namespace
+,errors_ph->namespace_id()->identifier()->c_str()
+,enum_ph->namespace_id()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+/*:225*//*226:*/
+//line 7191 "./o2externs.w"
+
+void errors_include_files_for_imp
+(std::ofstream&Op_str){
+T_error_symbols_phrase*errors_ph= O2_ERROR_PHASE;
+T_enum_phrase*enum_ph= O2_T_ENUM_PHASE;
+T_lr1_k_phrase*lr_ph= O2_LRK_PHASE;
+char big_buf_[BIG_BUFFER_32K];
+KCHARP include_files=
+"#include \"%s%s\"";
+int x= sprintf(big_buf_
+,include_files
+,errors_ph->filename_id()->identifier()->c_str()
+,Suffix_Errors_hdr
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+/*:226*//*227:*/
+//line 7211 "./o2externs.w"
+
+void OP_ERRORS_CPP(TOKEN_GAGGLE&Error_queue){
+T_error_symbols_phrase*errors_ph= O2_ERROR_PHASE;
+string fn(errors_ph->filename_id()->identifier()->c_str());
+fn+= Suffix_Errors_imp;
+std::ofstream Op_file;
+Op_file.open(fn.c_str(),ios_base::out|ios::trunc);
+if(!Op_file){
+CAbs_lr1_sym*sym= new Err_bad_errors_impfilename(fn.c_str());
+sym->set_line_no_and_pos_in_line(*errors_ph->filename_id());
+sym->set_who_created("o2externs.w - OP_ERRORS_HEADER_CPP",__LINE__);
+Error_queue.push_back(*sym);
+return;
+}
+
+intro_comment(Op_file,fn.c_str());
+errors_include_files_for_imp(Op_file);
+errors_use_enum_namespace_for_imp(Op_file);
+errors_loop_thru_and_gen_defs_for_imp(Op_file);
+Op_file.close();
+}
+/*:227*//*229:*/
+//line 7246 "./o2externs.w"
+
+void user_t_loop_thru_and_gen_defs_for_header
+(std::ofstream&Op_str){
+T_terminals_phrase*t_ph= O2_T_PHASE;
+
+std::vector<T_terminal_def*> *dictionary= t_ph->crt_order();
+char big_buf_[BIG_BUFFER_32K];
+KCHARP def_item=
+" struct %s:public yacco2::CAbs_lr1_sym{\n"
+"%s";
+
+std::vector<T_terminal_def*> ::iterator i= dictionary->begin();
+std::vector<T_terminal_def*> ::iterator ie= dictionary->end();
+for(;i!=ie;++i){
+T_terminal_def*td= *i;
+SDC_MAP_type*sdc_map= td->directives_map();
+SDC_MAP_ITER_type j= sdc_map->find(SDC_user_declaration);
+if(j==sdc_map->end()){
+KCHARP shell_of_def_item=
+" struct %s:public yacco2::CAbs_lr1_sym{\n"
+" %s();\n"
+" };";
+int x= sprintf(big_buf_
+,shell_of_def_item
+,td->classsym()->c_str()
+,td->classsym()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}else{
+T_user_declaration*gw_sdc= (T_user_declaration*)j->second;
+int x= sprintf(big_buf_
+,def_item
+,td->classsym()->c_str()
+,gw_sdc->syntax_code()->syntax_code()->c_str()
+);
+Op_str.write(big_buf_,x);
+
+
+j= sdc_map->find(SDC_op);
+if(j!=sdc_map->end()){
+Op_str<<" op();"<<endl;
+}
+j= sdc_map->find(SDC_destructor);
+if(j!=sdc_map->end()){
+KCHARP dtor=
+" static void dtor_%s(yacco2::VOIDP This,yacco2::VOIDP P);";
+int x= sprintf(big_buf_
+,dtor
+,td->classsym()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+Op_str<<" };"<<endl;
+}
+}
+}
+
+/*:229*//*230:*/
+//line 7306 "./o2externs.w"
+
+void user_t_use_enum_namespace_for_header
+(std::ofstream&Op_str){
+T_terminals_phrase*t_ph= O2_T_PHASE;
+T_enum_phrase*enum_ph= O2_T_ENUM_PHASE;
+
+char big_buf_[BIG_BUFFER_32K];
+KCHARP using_T_namespace=
+" using namespace %s;";
+int x= sprintf(big_buf_
+,using_T_namespace
+,enum_ph->namespace_id()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+/*:230*//*231:*/
+//line 7324 "./o2externs.w"
+
+void user_t_terminals_refs_for_header
+(std::ofstream&Op_str){
+T_terminals_phrase*t_ph= O2_T_PHASE;
+char big_buf_[BIG_BUFFER_32K];
+if(t_ph->terminals_refs_code()!=0){
+KCHARP t_ref_code=
+" %s";
+int x= sprintf(big_buf_
+,t_ref_code
+,t_ph->terminals_refs_code()->syntax_code()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+}
+
+/*:231*//*232:*/
+//line 7342 "./o2externs.w"
+
+void user_t_terminals_sufx_for_header
+(std::ofstream&Op_str){
+T_terminals_phrase*t_ph= O2_T_PHASE;
+char big_buf_[BIG_BUFFER_32K];
+if(t_ph->terminals_sufx_code()!=0){
+KCHARP t_sufx_code=
+" %s";
+int x= sprintf(big_buf_
+,t_sufx_code
+,t_ph->terminals_sufx_code()->syntax_code()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+}
+
+/*:232*//*233:*/
+//line 7360 "./o2externs.w"
+
+void user_t_namespace_for_header
+(std::ofstream&Op_str){
+T_terminals_phrase*t_ph= O2_T_PHASE;
+
+char big_buf_[BIG_BUFFER_32K];
+KCHARP namespace_start=
+"namespace %s{";
+int x= sprintf(big_buf_
+,namespace_start
+,t_ph->namespace_id()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+user_t_use_enum_namespace_for_header(Op_str);
+user_t_terminals_refs_for_header(Op_str);
+user_t_loop_thru_and_gen_defs_for_header(Op_str);
+user_t_terminals_sufx_for_header(Op_str);
+
+KCHARP namespace_end=
+"}//namespace";
+Op_str<<namespace_end<<endl;
+}
+
+/*:233*//*234:*/
+//line 7385 "./o2externs.w"
+
+void user_t_include_guard_for_header
+(std::ofstream&Op_str){
+T_terminals_phrase*t_ph= O2_T_PHASE;
+char big_buf_[BIG_BUFFER_32K];
+KCHARP signal_guard_start=
+"#ifndef __%s_h__\n"
+"#define __%s_h__ 1";
+int x= sprintf(big_buf_
+,signal_guard_start
+,t_ph->filename_id()->identifier()->c_str()
+,t_ph->filename_id()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+user_t_namespace_for_header(Op_str);
+KCHARP signal_guard_end=
+"#endif";
+Op_str<<signal_guard_end<<endl;
+}
+
+/*:234*//*235:*/
+//line 7407 "./o2externs.w"
+
+void user_t_include_files_for_header
+(std::ofstream&Op_str){
+T_terminals_phrase*t_ph= O2_T_PHASE;
+T_enum_phrase*enum_ph= O2_T_ENUM_PHASE;
+T_lr1_k_phrase*lr_ph= O2_LRK_PHASE;
+T_error_symbols_phrase*errors_ph= O2_ERROR_PHASE;
+
+char big_buf_[BIG_BUFFER_32K];
+KCHARP include_files=
+"#include \"%s\"\n"
+"#include \"%s%s\"\n"
+"#include \"%s%s\"\n"
+"#include \"%s%s\"";
+int x= sprintf(big_buf_
+,include_files
+,O2_library_file
+,enum_ph->filename_id()->identifier()->c_str()
+,Suffix_enumeration_hdr
+,lr_ph->filename_id()->identifier()->c_str()
+,Suffix_LRK_hdr
+,errors_ph->filename_id()->identifier()->c_str()
+,Suffix_Errors_hdr
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+/*:235*//*236:*/
+//line 7437 "./o2externs.w"
+
+void OP_USER_T_HEADER(TOKEN_GAGGLE&Error_queue){
+T_terminals_phrase*t_ph= O2_T_PHASE;
+string fn(t_ph->filename_id()->identifier()->c_str());
+fn+= Suffix_T_hdr;
+std::ofstream Op_file;
+Op_file.open(fn.c_str(),ios_base::out|ios::trunc);
+if(!Op_file){
+CAbs_lr1_sym*sym= new Err_bad_errors_hdrfilename(fn.c_str());
+sym->set_line_no_and_pos_in_line(*t_ph->filename_id());
+sym->set_who_created("o2externs.w - OP_USER_T_HEADER_CPP",__LINE__);
+Error_queue.push_back(*sym);
+return;
+}
+
+intro_comment(Op_file,fn.c_str());
+user_t_include_files_for_header(Op_file);
+user_t_include_guard_for_header(Op_file);
+Op_file.close();
+}
+
+/*:236*//*238:*/
+//line 7470 "./o2externs.w"
+
+void user_t_imp_dtor
+(std::ofstream&Op_str,T_terminal_def*Td,SDC_MAP_ITER_type&J){
+char big_buf_[BIG_BUFFER_32K];
+T_destructor*dtor_t= (T_destructor*)J->second;
+KCHARP dtor_code=
+"void %s::dtor_%s(yacco2::VOIDP This,yacco2::VOIDP P){\n"
+" bool ABORT_STATUS = ((yacco2::Parser*)P)->top_stack_record()->aborted__;\n"
+" %s* R = (%s*)(This);\n"
+" %s\n"
+"}";
+KCHARP dtor_code_noabort=
+"void %s::dtor_%s(yacco2::VOIDP This,yacco2::VOIDP P){\n"
+" %s* R = (%s*)(This);\n"
+" %s\n"
+"}";
+std::string::size_type r=
+dtor_t->syntax_code()->syntax_code()->find("ABORT_STATUS");
+int x(0);
+if(r!=std::string::npos){
+x= sprintf(big_buf_
+,dtor_code
+,Td->classsym()->c_str()
+,Td->classsym()->c_str()
+,Td->classsym()->c_str()
+,Td->classsym()->c_str()
+,dtor_t->syntax_code()->syntax_code()->c_str()
+);
+}else{
+x= sprintf(big_buf_
+,dtor_code_noabort
+,Td->classsym()->c_str()
+,Td->classsym()->c_str()
+,Td->classsym()->c_str()
+,Td->classsym()->c_str()
+,dtor_t->syntax_code()->syntax_code()->c_str()
+);
+}
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+/*:238*//*239:*/
+//line 7513 "./o2externs.w"
+
+void user_t_imp_implementation
+(std::ofstream&Op_str,T_terminal_def*Td,SDC_MAP_ITER_type&J){
+char big_buf_[BIG_BUFFER_32K];
+T_user_implementation*imp_t= (T_user_implementation*)J->second;
+Op_str<<imp_t->syntax_code()->syntax_code()->c_str();
+SDC_MAP_type*sdc_map= Td->directives_map();
+SDC_MAP_ITER_type j= sdc_map->find(SDC_destructor);
+if(j!=sdc_map->end()){
+errors_imp_dtor(Op_str,Td,j);
+}
+}
+
+/*:239*//*240:*/
+//line 7527 "./o2externs.w"
+
+void user_t_imp_shellimplementation
+(std::ofstream&Op_str,T_terminal_def*Td,std::string&Autodelete,std::string&Autoabort){
+char big_buf_[BIG_BUFFER_32K];
+KCHARP shell_of_def_item=
+"%s::\n"
+"%s()\n"
+" T_CTOR(\"%s\",T_Enum::T_%s_,%s,%s,%s){}";
+int x= sprintf(big_buf_
+,shell_of_def_item
+,Td->classsym()->c_str()
+,Td->classsym()->c_str()
+,Td->t_name()->c_str()
+,Td->classsym()->c_str()
+,"0"
+,Autodelete.c_str()
+,Autoabort.c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+/*:240*//*241:*/
+//line 7550 "./o2externs.w"
+
+void user_t_loop_thru_and_gen_defs_for_imp
+(std::ofstream&Op_str){
+T_terminals_phrase*t_ph= O2_T_PHASE;
+
+std::vector<T_terminal_def*> *dictionary= t_ph->crt_order();
+char big_buf_[BIG_BUFFER_32K];
+string auto_delete;
+string auto_abort;
+string dtor_adr;
+
+std::vector<T_terminal_def*> ::iterator i= dictionary->begin();
+std::vector<T_terminal_def*> ::iterator ie= dictionary->end();
+for(;i!=ie;++i){
+T_terminal_def*td= *i;
+SDC_MAP_type*sdc_map= td->directives_map();
+SDC_MAP_ITER_type j= sdc_map->find(SDC_user_implementation);
+if(td->autodelete()==false){
+auto_delete= "false";
+}else{
+auto_delete= "true";
+}
+if(td->autoabort()==false){
+auto_abort= "false";
+}else{
+auto_abort= "true";
+}
+
+if(j==sdc_map->end()){
+user_t_imp_shellimplementation(Op_str,td,auto_delete,auto_abort);
+}else{
+user_t_imp_implementation(Op_str,td,j);
+}
+}
+}
+
+/*:241*//*242:*/
+//line 7587 "./o2externs.w"
+
+void user_t_use_enum_namespace_for_imp
+(std::ofstream&Op_str){
+T_terminals_phrase*t_ph= O2_T_PHASE;
+T_enum_phrase*enum_ph= O2_T_ENUM_PHASE;
+
+char big_buf_[BIG_BUFFER_32K];
+KCHARP using_namespace=
+" using namespace %s;\n"
+" using namespace %s;";
+int x= sprintf(big_buf_
+,using_namespace
+,t_ph->namespace_id()->identifier()->c_str()
+,enum_ph->namespace_id()->identifier()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+/*:242*//*243:*/
+//line 7607 "./o2externs.w"
+
+void user_t_include_files_for_imp
+(std::ofstream&Op_str){
+T_terminals_phrase*t_ph= O2_T_PHASE;
+T_enum_phrase*enum_ph= O2_T_ENUM_PHASE;
+T_lr1_k_phrase*lr_ph= O2_LRK_PHASE;
+char big_buf_[BIG_BUFFER_32K];
+KCHARP include_files=
+"#include \"%s%s\"";
+int x= sprintf(big_buf_
+,include_files
+,t_ph->filename_id()->identifier()->c_str()
+,Suffix_T_hdr
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+/*:243*//*244:*/
+//line 7627 "./o2externs.w"
+
+void OP_USER_T_CPP(TOKEN_GAGGLE&Error_queue){
+T_terminals_phrase*t_ph= O2_T_PHASE;
+string fn(t_ph->filename_id()->identifier()->c_str());
+fn+= Suffix_Errors_imp;
+std::ofstream Op_file;
+Op_file.open(fn.c_str(),ios_base::out|ios::trunc);
+if(!Op_file){
+CAbs_lr1_sym*sym= new Err_bad_errors_impfilename(fn.c_str());
+sym->set_line_no_and_pos_in_line(*t_ph->filename_id());
+sym->set_who_created("o2externs.w - OP_USER_T_CPP",__LINE__);
+Error_queue.push_back(*sym);
+return;
+}
+
+intro_comment(Op_file,fn.c_str());
+user_t_include_files_for_imp(Op_file);
+user_t_use_enum_namespace_for_imp(Op_file);
+user_t_loop_thru_and_gen_defs_for_imp(Op_file);
+Op_file.close();
+}
+
+/*:244*//*246:*/
+//line 7660 "./o2externs.w"
+
+void fsc_prelude_imp
+(std::ofstream&Op_str,std::string&Fn){
+KCHARP pp_thd_nm(0);
+string transitive("n");
+string mono;
+char big_buf_[BIG_BUFFER_32K];
+T_fsm_phrase*fcp= O2_FSM_PHASE;
+T_parallel_parser_phrase*ppp= O2_PP_PHASE;
+T_enum_phrase*enum_ph= O2_T_ENUM_PHASE;
+T_rules_phrase*rules_ph= O2_RULES_PHASE;
+
+RULE_DEFS_TBL_ITER_type i= rules_ph->crt_order()->begin();
+RULE_DEFS_TBL_ITER_type ie= rules_ph->crt_order()->end();
+rule_def*rd= *i;
+FIRST_SET_type*fs= rd->first_set();
+FIRST_SET_ITER_type j= fs->begin();
+FIRST_SET_ITER_type je= fs->end();
+for(;j!=je;++j){
+T_in_stbl*tintbl= *j;
+T_terminal_def*tdef= tintbl->t_def();
+if(tdef->enum_id()==LR1_PARALLEL_OPERATOR){
+transitive[0]= 'y';
+break;
+}
+}
+
+KCHARP fsc_prelude=
+"transitive %s\n"
+"grammar-name \"%s\"\n"
+"name-space \"%s\"\n"
+"thread-name \"%s\"\n"
+"monolithic %s\n"
+"file-name \"%s\"\n"
+"no-of-T %i";
+if(ppp==0){
+pp_thd_nm= fcp->fsm_class_phrase()->identifier()->identifier()->c_str();
+mono+= 'y';
+}else{
+pp_thd_nm= ppp->pp_funct()->identifier()->identifier()->c_str();
+mono+= 'n';
+}
+int x= sprintf(big_buf_
+,fsc_prelude
+,transitive.c_str()
+,fcp->filename_id()->identifier()->c_str()
+,fcp->namespace_id()->identifier()->c_str()
+,pp_thd_nm
+,mono.c_str()
+,Fn.c_str()
+,enum_ph->total_enumerate()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+/*:246*//*248:*/
+//line 7789 "./o2externs.w"
+
+void list_of_native_Tes_in_fs_imp
+(std::ofstream&Op_str){
+char big_buf_[BIG_BUFFER_32K];
+int no_Tes_in_list(0);
+string Tes_in_list;
+
+
+STATES_ITER_type si= LR1_STATES.begin();
+state*cur_state= *si;
+int no_of_Tes_in_fs(0);
+std::set<CAbs_lr1_sym*> fs_set;
+
+T_rules_phrase*rules_ph= O2_RULES_PHASE;
+RULE_DEFS_TBL_ITER_type i= rules_ph->crt_order()->begin();
+RULE_DEFS_TBL_ITER_type ie= rules_ph->crt_order()->end();
+rule_def*rd= *i;
+FIRST_SET_type*fs= rd->first_set();
+FIRST_SET_ITER_type j= fs->begin();
+FIRST_SET_ITER_type je= fs->end();
+for(;j!=je;++j){
+T_in_stbl*tintbl= *j;
+T_terminal_def*tdef= tintbl->t_def();
+if(tdef->enum_id()==LR1_PARALLEL_OPERATOR){
+continue;
+}
+++no_Tes_in_list;
+}
+
+done:;
+KCHARP fs_list_of_Tes=
+"list-of-native-first-set-terminals %i";
+KCHARP fs_T_in_list=
+" %s";
+KCHARP end_fs_list_of_Tes=
+"end-list-of-native-first-set-terminals%s";
+int x= sprintf(big_buf_
+,fs_list_of_Tes
+,no_Tes_in_list
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+
+j= fs->begin();
+for(;j!=je;++j){
+T_in_stbl*tintbl= *j;
+T_terminal_def*tdef= tintbl->t_def();
+if(tdef->enum_id()==LR1_PARALLEL_OPERATOR){
+continue;
+}
+if(tdef->enum_id()==LR1_INVISIBLE_SHIFT_OPERATOR){
+x= sprintf(big_buf_
+,fs_T_in_list
+,LR1_FSET_TRANSIENCE_OPERATOR_LITERAL
+);
+}else{
+x= sprintf(big_buf_
+,fs_T_in_list
+,tdef->classsym()->c_str()
+);
+}
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+x= sprintf(big_buf_,end_fs_list_of_Tes," ");
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+/*:248*//*249:*/
+//line 7859 "./o2externs.w"
+
+void transitive_list_of_threads_in_fs_imp
+(std::ofstream&Op_str){
+char big_buf_[BIG_BUFFER_32K];
+T_rules_phrase*rules_ph= O2_RULES_PHASE;
+AST*rules_tree= rules_ph->phrase_tree();
+AST*start_rule_def_t= AST::get_1st_son(*rules_tree);
+rule_def*rd= (rule_def*)AST::content(*start_rule_def_t);
+
+
+int no_threads_in_list= rd->called_thread_first_set()->size();
+
+KCHARP transitive_thread_list=
+"list-of-transitive-threads %i";
+KCHARP transitive_thread_in_list=
+" %s::%s";
+KCHARP end_transitive_thread_list=
+"end-list-of-transitive-threads%s";
+
+int x= sprintf(big_buf_,transitive_thread_list,no_threads_in_list);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+
+std::set<T_called_thread_eosubrule*> ::iterator e= rd->called_thread_first_set()->begin();
+std::set<T_called_thread_eosubrule*> ::iterator ee= rd->called_thread_first_set()->end();
+for(;e!=ee;++e){
+T_called_thread_eosubrule*called_thd= *e;
+x= sprintf(big_buf_
+,transitive_thread_in_list
+,called_thd->ns()->identifier()->c_str()
+,called_thd->called_thread_name()->identifier()->c_str());
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+x= sprintf
+(big_buf_
+,end_transitive_thread_list," "
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+/*:249*//*250:*/
+//line 7903 "./o2externs.w"
+
+void used_list_of_threads_imp
+(std::ofstream&Op_str){
+char big_buf_[BIG_BUFFER_32K];
+std::set<string> used_threads;
+STATES_ITER_type i= LR1_STATES.begin();
+STATES_ITER_type ie= LR1_STATES.end();
+for(;i!=ie;++i){
+state*start_state= *i;
+S_VECTOR_ELEMS_type*state_elems_wparallelism(0);
+S_VECTORS_type&vect= start_state->state_s_vector_;
+S_VECTORS_ITER_type vi= vect.find(LR1_PARALLEL_OPERATOR);
+if(vi==vect.end())continue;
+state_elems_wparallelism= &vi->second;
+S_VECTOR_ELEMS_ITER_type k= state_elems_wparallelism->begin();
+S_VECTOR_ELEMS_ITER_type ke= state_elems_wparallelism->end();
+for(;k!=ke;++k){
+state_element*thread_1st_elem= *k;
+AST*rtned_T_t= thread_1st_elem->next_state_element_->sr_element_;
+AST*bypassed_thd_eos_t= AST::brother(*rtned_T_t);
+if(bypassed_thd_eos_t==0)continue;
+CAbs_lr1_sym*sym= AST::content(*bypassed_thd_eos_t);
+if(sym->enumerated_id__!=T_Enum::T_T_called_thread_eosubrule_){
+continue;
+}
+T_called_thread_eosubrule*called_thd= (T_called_thread_eosubrule*)sym;
+
+string fqtnm;
+fqtnm+= called_thd->ns()->identifier()->c_str();
+fqtnm+= "::";
+fqtnm+= called_thd->called_thread_name()->identifier()->c_str();
+if(used_threads.find(fqtnm)==used_threads.end())used_threads.insert(fqtnm);
+}
+}
+KCHARP used_thread_list=
+"list-of-used-threads %i";
+KCHARP used_thread_in_list=
+" %s";
+KCHARP end_used_thread_list=
+"end-list-of-used-threads%s";
+
+int x= sprintf(big_buf_,used_thread_list,used_threads.size());
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+
+std::set<string> ::iterator si= used_threads.begin();
+std::set<string> ::iterator sie= used_threads.end();
+for(;si!=sie;++si){
+x= sprintf(big_buf_
+,used_thread_in_list
+,si->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+x= sprintf
+(big_buf_
+,end_used_thread_list," "
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+/*:250*//*251:*/
+//line 7968 "./o2externs.w"
+
+void grammar_s_comments_for_linker_doc_imp
+(std::ofstream&Op_str){
+char big_buf_[BIG_BUFFER_32K];
+T_fsm_phrase*fcp= O2_FSM_PHASE;
+
+KCHARP fsm_comments=
+"fsm-comments\n"
+"\"%s\"";
+int x= sprintf
+(big_buf_
+,fsm_comments
+,fcp->comment()->c_string()->c_str()
+);
+Op_str.write(big_buf_,x);
+Op_str<<endl;
+}
+
+/*:251*//*252:*/
+//line 7988 "./o2externs.w"
+
+void OP_FSC_FILE(TOKEN_GAGGLE&Error_queue){
+T_fsm_phrase*fsm_ph= O2_FSM_PHASE;
+string fn(fsm_ph->filename_id()->identifier()->c_str());
+fn+= Suffix_fsc;
+std::ofstream Op_file;
+Op_file.open(fn.c_str(),ios_base::out|ios::trunc);
+if(!Op_file){
+CAbs_lr1_sym*sym= new Err_bad_fsmtbl_filename(fn.c_str());
+sym->set_line_no_and_pos_in_line(*fsm_ph->filename_id());
+sym->set_who_created("o2externs.w - OP_FSC_FILE",__LINE__);
+Error_queue.push_back(*sym);
+return;
+}
+intro_comment(Op_file,fn.c_str());
+fsc_prelude_imp(Op_file,fn);
+list_of_native_Tes_in_fs_imp(Op_file);
+transitive_list_of_threads_in_fs_imp(Op_file);
+used_list_of_threads_imp(Op_file);
+grammar_s_comments_for_linker_doc_imp(Op_file);
+Op_file.close();
+}
+
+/*:252*/
+//line 180 "./o2externs.w"
+
+
+
+/*:7*/
diff --git a/web/yacco2/compiler/o2/o2_externs.h b/web/yacco2/compiler/o2/o2_externs.h
new file mode 100644
index 0000000000..8e51e87667
--- /dev/null
+++ b/web/yacco2/compiler/o2/o2_externs.h
@@ -0,0 +1,96 @@
+/*4:*/
+//line 86 "./o2externs.w"
+
+#ifndef o2_externs_
+#define o2_externs_ 1
+
+//line 89 "./o2externs.w"
+
+/*5:*/
+//line 94 "./o2externs.w"
+
+#include "globals.h"
+#include "o2_types.h"
+#include "o2_lcl_opts.h"
+#include "o2_lcl_opt.h"
+#include "pass3.h"
+#include "o2_err_hdlr.h"
+#include "fsm_phrase.h"
+#include "parallel_parser_phrase.h"
+#include "T_enum_phrase.h"
+#include "err_symbols_ph.h"
+#include "rc_phrase.h"
+#include "lr1_k_phrase.h"
+#include "terminals_phrase.h"
+#include "rules_phrase.h"
+#include "yacco2_stbl.h"
+#include "enumerate_T_alphabet.h"
+#include "mpost_output.h"
+#include "prt_xrefs_docs.h"
+#include "cweb_put_k_into_ph.h"
+extern CYCLIC_USE_TBL_type CYCLIC_USE_TABLE;
+extern STBL_T_ITEMS_type STBL_T_ITEMS;
+extern int NO_LR1_STATES;
+extern T_fsm_phrase*O2_FSM_PHASE;
+extern T_parallel_parser_phrase*O2_PP_PHASE;
+extern T_enum_phrase*O2_T_ENUM_PHASE;
+extern T_lr1_k_phrase*O2_LRK_PHASE;
+extern T_rc_phrase*O2_RC_PHASE;
+extern T_error_symbols_phrase*O2_ERROR_PHASE;
+extern T_terminals_phrase*O2_T_PHASE;
+extern T_rules_phrase*O2_RULES_PHASE;
+extern STATES_type LR1_STATES;
+extern RULE_ENO START_OF_RULES_ENUM;
+extern STBL_T_ITEMS_type STBL_T_ITEMS;
+extern RULE_ENO START_OF_RULES_ENUM;
+extern yacco2::AST*GRAMMAR_TREE;
+extern yacco2::AST*CWEB_MARKER;
+extern void WRT_CWEB_MARKER(std::ofstream*Wfile,yacco2::AST*Cweb_marker);
+extern void LOAD_YACCO2_KEYWORDS_INTO_STBL();
+extern void GET_CMD_LINE(int argc,char*argv[]
+,const char*File,yacco2::TOKEN_GAGGLE&Errors);
+extern void DUMP_ERROR_QUEUE(yacco2::TOKEN_GAGGLE&Errors);
+extern void PRINT_RULES_TREE_STRUCTURE(AST*Node);
+extern const char*DATE_AND_TIME();
+extern void YACCO2_PARSE_CMD_LINE
+(yacco2::CHAR&T_sw
+,yacco2::CHAR&ERR_sw,yacco2::CHAR&PRT_sw
+,std::string&Grammar_to_compile
+,yacco2::TOKEN_GAGGLE&Error_queue);
+extern bool PROCESS_INCLUDE_FILE
+(yacco2::Parser&Calling_parser
+,NS_yacco2_terminals::T_file_inclusion&File_include
+,yacco2::token_container_type&T2);
+extern bool PROCESS_KEYWORD_FOR_SYNTAX_CODE
+(yacco2::Parser&Parser
+,yacco2::CAbs_lr1_sym*Keyword
+,yacco2::CAbs_lr1_sym**Cont_tok
+,yacco2::INT*Cont_pos);
+extern void BUILD_GRAMMAR_TREE(yacco2::AST&Item);
+extern void PRINT_GRAMMAR_TREE(AST*Node);
+extern void GEN_FS_OF_RULE(NS_yacco2_terminals::rule_def*Rule_def);
+extern void GEN_CALLED_THREADS_FS_OF_RULE
+(NS_yacco2_terminals::rule_def*Start_rule);
+extern int MAX_USE_CNT_RxR
+(NS_yacco2_terminals::rule_def*Rule_use
+,NS_yacco2_terminals::rule_def*Against_rule);
+extern void XLATE_SYMBOLS_FOR_cweave(const char*Sym_to_xlate,char*Xlated_sym);
+extern void PRT_RULE_S_FIRST_SET(NS_yacco2_terminals::rule_def*Rule_def);
+extern void OP_GRAMMAR_HEADER(TOKEN_GAGGLE&Error_queue);
+extern void OP_GRAMMAR_CPP(TOKEN_GAGGLE&Error_queue);
+extern void OP_GRAMMAR_SYM(TOKEN_GAGGLE&Error_queue);
+extern void OP_GRAMMAR_TBL(TOKEN_GAGGLE&Error_queue);
+extern void OP_ENUMERATION_HEADER(TOKEN_GAGGLE&Error_queue);
+extern void OP_T_Alphabet(TOKEN_GAGGLE&Error_queue);
+extern void OP_ERRORS_HEADER(TOKEN_GAGGLE&Error_queue);
+extern void OP_ERRORS_CPP(TOKEN_GAGGLE&Error_queue);
+extern void OP_USER_T_HEADER(TOKEN_GAGGLE&Error_queue);
+extern void OP_USER_T_CPP(TOKEN_GAGGLE&Error_queue);
+extern void OP_FSC_FILE(TOKEN_GAGGLE&Error_queue);
+extern void Print_dump_state(state*State);
+/*:5*/
+//line 90 "./o2externs.w"
+
+#endif
+
+/*:4*/
diff --git a/web/yacco2/compiler/o2/o2_types.h b/web/yacco2/compiler/o2/o2_types.h
new file mode 100644
index 0000000000..37efbae356
--- /dev/null
+++ b/web/yacco2/compiler/o2/o2_types.h
@@ -0,0 +1,537 @@
+/*2:*/
+#line 41 "./o2_types.w"
+
+#ifndef o2_types_
+#define o2_types_ 1
+/*3:*/
+#line 52 "./o2_types.w"
+
+#define NO_BITS_PER_SET_PARTITION 8
+#define CODE_PRESENCE_IN_ARBITRATOR_CODE "pp_accept_queue__"
+#define ACCEPT_FILTER true
+#define BYPASS_FILTER false
+#define Success true
+#define Failure false
+#define Nested_file_cnt_limit 15
+#define O2_library_file "yacco2.h"
+#define Yacco2_holding_file "yacco2cmd.tmp"
+#define Linker_holding_file "linkercmd.tmp"
+#define Max_cweb_item_size 10*1024
+#define Max_buf_size 2*1024
+#define Max_no_subrules 8*1024
+#define EPSILON_YES 0
+#define EPSILON_NO 1
+#define EPSILON_DONT_KNOW 2
+#define EPSILON_MAYBE 3
+#define SDC_user_imp_sym "#user-imp-sym"
+#define SDC_user_imp_tbl "#user-imp-tbl"
+#define SDC_user_prefix_declaration "#user-prefix-declaration"
+#define SDC_user_suffix_declaration "#user-suffix-declaration"
+#define SDC_user_declaration "#user-declaration"
+#define SDC_constructor "#constructor"
+#define SDC_destructor "#destructor"
+#define SDC_op "#op"
+#define SDC_failed "#failed"
+#define SDC_user_implementation "#user-implementation"
+#define SDC_user_imp_implementation "#user-imp-sym"
+#define SDC_user_tbl_implementation "#user-tbl-tbl"
+#define SDC_arbitrator_code "#arbitrator-code"
+#define PP_thread_name "#parallel-thread-function"
+#define Suffix_fsmheader ".h"
+#define Suffix_fsmimp ".cpp"
+#define Suffix_fsmsym "sym.cpp"
+#define Suffix_fsmtbl "tbl.cpp"
+#define Suffix_enumeration_hdr ".h"
+#define Suffix_t_alphabet ".fsc"
+#define Suffix_Errors_hdr ".h"
+#define Suffix_Errors_imp ".cpp"
+#define Suffix_T_hdr ".h"
+#define Suffix_T_imp ".cpp"
+#define Suffix_RC_hdr ".h"
+#define Suffix_RC_imp ".cpp"
+#define Suffix_LRK_hdr ".h"
+#define Suffix_LRK_imp ".cpp"
+#define Suffix_fsc ".fsc"
+#define LR1_COMPATIBLE true
+#define NOT_LR1_COMPATIBLE false
+#define MERGED true
+#define NOT_MERGED false
+#define ABORT_GENING_STATES 2
+#define START_STATE_ENUMERATE -1
+
+#define LR1_QUESTIONABLE_SHIFT_OPERATOR 0
+#define LR1_QUESTIONABLE_SHIFT_OPERATOR_LITERAL "|?|"
+#define LR1_EOG 1
+#define LR1_EOLR 2
+#define LR1_EOLR_LITERAL "eolr"
+#define LR1_PARALLEL_OPERATOR 3
+#define LR1_REDUCE_OPERATOR 4
+#define LR1_REDUCE_OPERATOR_LITERAL "|r|"
+#define LR1_INVISIBLE_SHIFT_OPERATOR 5
+#define LR1_ALL_SHIFT_OPERATOR 6
+#define LR1_FSET_TRANSIENCE_OPERATOR 7
+#define LR1_FSET_TRANSIENCE_OPERATOR_LITERAL "LR1_fset_transience_operator"
+#define LR1_PROCEDURE_CALL_OPERATOR 7
+#define LR1_PROCEDURE_CALL_OPERATOR_LITERAL "|p|"
+#define END_OF_LR1_DEFS 7
+
+#define SMALL_BUFFER_4K 1024*4
+#define BIG_BUFFER_32K 1024*32
+#define THREAD_CALL 0
+#define PROCEDURE_CALL 1
+#define MICROSOFT_THREAD_LIBRARY 1
+#define PTHREAD_LIBRARY 0
+/*:3*/
+#line 44 "./o2_types.w"
+;
+/*4:*/
+#line 129 "./o2_types.w"
+
+typedef int Voc_ENO;
+typedef int RULE_ENO;
+struct state;
+struct state_element;
+struct follow_element;
+/*:4*//*5:*/
+#line 135 "./o2_types.w"
+
+typedef std::map<std::string,yacco2::CAbs_lr1_sym*> SDC_MAP_type;
+/*:5*//*6:*/
+#line 137 "./o2_types.w"
+
+typedef SDC_MAP_type::iterator SDC_MAP_ITER_type;
+/*:6*//*7:*/
+#line 139 "./o2_types.w"
+
+typedef std::vector<NS_yacco2_terminals::T_in_stbl*> STBL_T_ITEMS_type;
+/*:7*//*8:*/
+#line 141 "./o2_types.w"
+
+typedef std::set<NS_yacco2_terminals::T_in_stbl*> T_IN_STBL_SET_type;
+/*:8*//*9:*/
+#line 143 "./o2_types.w"
+
+typedef T_IN_STBL_SET_type::iterator T_IN_STBL_SET_ITER_type;
+/*:9*//*10:*/
+#line 145 "./o2_types.w"
+
+typedef std::vector<NS_yacco2_terminals::T_in_stbl*> T_IN_STBL_SORTED_SET_type;
+/*:10*//*11:*/
+#line 147 "./o2_types.w"
+
+typedef T_IN_STBL_SORTED_SET_type::iterator T_IN_STBL_SORTED_SET_ITER_type;
+/*:11*//*12:*/
+#line 149 "./o2_types.w"
+
+typedef std::set<NS_yacco2_terminals::rule_in_stbl*> RULE_IN_STBL_SET_type;
+/*:12*//*13:*/
+#line 151 "./o2_types.w"
+
+typedef RULE_IN_STBL_SET_type::iterator RULE_IN_STBL_SET_ITER_type;
+/*:13*//*14:*/
+#line 153 "./o2_types.w"
+
+typedef std::vector<yacco2::CAbs_lr1_sym*> O2_PHRASE_TBL_type;
+/*:14*//*15:*/
+#line 155 "./o2_types.w"
+
+typedef O2_PHRASE_TBL_type::iterator O2_PHRASE_TBL_ITER_type;
+/*:15*//*16:*/
+#line 157 "./o2_types.w"
+
+typedef std::set<NS_yacco2_terminals::rule_in_stbl*> RULES_IN_FS_SET_type;
+/*:16*//*17:*/
+#line 159 "./o2_types.w"
+
+typedef RULES_IN_FS_SET_type::iterator RULES_IN_FS_SET_ITER_type;
+/*:17*//*18:*/
+#line 161 "./o2_types.w"
+
+typedef std::vector<NS_yacco2_terminals::rule_def*> RULE_DEFS_TBL_type;
+/*:18*//*19:*/
+#line 163 "./o2_types.w"
+
+typedef RULE_DEFS_TBL_type::iterator RULE_DEFS_TBL_ITER_type;
+/*:19*//*20:*/
+#line 165 "./o2_types.w"
+
+typedef std::vector<NS_yacco2_terminals::T_subrule_def*> SUBRULE_DEFS_type;
+/*:20*//*21:*/
+#line 167 "./o2_types.w"
+
+typedef SUBRULE_DEFS_type::iterator SUBRULE_DEFS_ITER_type;
+/*:21*//*22:*/
+#line 169 "./o2_types.w"
+
+typedef std::map<std::string,NS_yacco2_terminals::T_terminal_def*> T_DEF_MAP_type;
+/*:22*//*23:*/
+#line 171 "./o2_types.w"
+
+typedef T_DEF_MAP_type::iterator T_DEF_MAP_ITER_type;
+/*:23*//*24:*/
+#line 173 "./o2_types.w"
+
+typedef std::set<int> INT_SET_type;
+/*:24*//*25:*/
+#line 175 "./o2_types.w"
+
+typedef INT_SET_type::iterator INT_SET_ITER_type;
+/*:25*//*26:*/
+#line 177 "./o2_types.w"
+
+typedef std::map<int,std::string> INT_STR_MAP_type;
+/*:26*//*27:*/
+#line 179 "./o2_types.w"
+
+typedef INT_STR_MAP_type::iterator INT_STR_MAP_ITER_type;
+/*:27*//*28:*/
+#line 181 "./o2_types.w"
+
+typedef std::set<std::string*> STR_SET_type;
+/*:28*//*29:*/
+#line 183 "./o2_types.w"
+
+typedef STR_SET_type::iterator STR_SET_ITER_type;
+/*:29*//*30:*/
+#line 185 "./o2_types.w"
+
+typedef std::map<NS_yacco2_terminals::T_in_stbl*,STR_SET_type> T_IN_STBL_SET_STR_MAP_type;
+/*:30*//*31:*/
+#line 187 "./o2_types.w"
+
+typedef T_IN_STBL_SET_STR_MAP_type::iterator T_IN_STBL_SET_STR_MAP_ITER_type;
+/*:31*//*32:*/
+#line 189 "./o2_types.w"
+
+typedef std::list<state*> STATES_type;
+/*:32*//*33:*/
+#line 191 "./o2_types.w"
+
+typedef STATES_type::iterator STATES_ITER_type;
+/*:33*//*34:*/
+#line 193 "./o2_types.w"
+
+typedef int Voc_ENO;
+/*:34*//*35:*/
+#line 195 "./o2_types.w"
+
+typedef int RULE_ENO;
+/*:35*//*36:*/
+#line 197 "./o2_types.w"
+
+typedef int T_ENO;
+/*:36*//*37:*/
+#line 200 "./o2_types.w"
+
+typedef std::set<RULE_ENO> RULE_NOS_SET_type;
+/*:37*//*38:*/
+#line 203 "./o2_types.w"
+
+typedef RULE_NOS_SET_type::iterator RULE_NOS_SET_ITER_type;
+/*:38*//*39:*/
+#line 206 "./o2_types.w"
+
+typedef std::set<state*> STATES_SET_type;
+/*:39*//*40:*/
+#line 209 "./o2_types.w"
+
+typedef STATES_SET_type::iterator STATES_SET_ITER_type;
+/*:40*//*41:*/
+#line 212 "./o2_types.w"
+
+typedef std::map<Voc_ENO,STATES_type> LR1_STATES_type;
+/*:41*//*42:*/
+#line 215 "./o2_types.w"
+
+typedef LR1_STATES_type::iterator LR1_STATES_ITER_type;
+/*:42*//*43:*/
+#line 218 "./o2_types.w"
+
+typedef std::list<state_element*> S_VECTOR_ELEMS_type;
+/*:43*//*44:*/
+#line 221 "./o2_types.w"
+
+typedef S_VECTOR_ELEMS_type::iterator S_VECTOR_ELEMS_ITER_type;
+/*:44*//*45:*/
+#line 231 "./o2_types.w"
+
+typedef std::map<Voc_ENO,S_VECTOR_ELEMS_type> S_VECTORS_type;
+/*:45*//*46:*/
+#line 233 "./o2_types.w"
+
+typedef S_VECTORS_type::iterator S_VECTORS_ITER_type;
+/*:46*//*47:*/
+#line 235 "./o2_types.w"
+
+typedef std::set<T_in_stbl*> FOLLOW_SETS_type;
+/*:47*//*48:*/
+#line 237 "./o2_types.w"
+
+typedef FOLLOW_SETS_type::iterator FOLLOW_SETS_ITER_type;
+/*:48*//*49:*/
+#line 239 "./o2_types.w"
+
+typedef std::set<T_in_stbl*> LA_SET_type;
+/*:49*//*50:*/
+#line 241 "./o2_types.w"
+
+typedef LA_SET_type::iterator LA_SET_ITER_type;
+/*:50*//*51:*/
+#line 243 "./o2_types.w"
+
+typedef std::set<T_in_stbl*> SHIFT_SET_type;
+/*:51*//*52:*/
+#line 245 "./o2_types.w"
+
+typedef SHIFT_SET_type::iterator SHIFT_SET_ITER_type;
+/*:52*//*53:*/
+#line 247 "./o2_types.w"
+
+typedef std::list<follow_element*> TRANSITIONS_type;
+/*:53*//*54:*/
+#line 249 "./o2_types.w"
+
+typedef TRANSITIONS_type::iterator TRANSITIONS_ITER_type;
+/*:54*//*55:*/
+#line 251 "./o2_types.w"
+
+typedef std::list<state*> MERGES_type;
+/*:55*//*56:*/
+#line 253 "./o2_types.w"
+
+typedef MERGES_type::iterator MERGES_ITER_type;
+/*:56*//*57:*/
+#line 259 "./o2_types.w"
+
+typedef std::list<AST*> SR_ELEMENTS_type;
+/*:57*//*58:*/
+#line 264 "./o2_types.w"
+
+typedef std::map<RULE_ENO,follow_element*> S_FOLLOW_SETS_type;
+/*:58*//*59:*/
+#line 267 "./o2_types.w"
+
+typedef S_FOLLOW_SETS_type::iterator S_FOLLOW_SETS_ITER_type;
+/*:59*//*60:*/
+#line 276 "./o2_types.w"
+
+typedef std::list<state*> S_CONFLICT_STATES_type;
+/*:60*//*61:*/
+#line 279 "./o2_types.w"
+
+typedef S_CONFLICT_STATES_type::iterator S_CONFLICT_STATES_ITER_type;
+/*:61*//*62:*/
+#line 282 "./o2_types.w"
+
+typedef std::set<rule_in_stbl*> CLOSURE_RULES_type;
+/*:62*//*63:*/
+#line 285 "./o2_types.w"
+
+typedef CLOSURE_RULES_type::iterator CLOSURE_RULES_ITER_type;
+/*:63*//*64:*/
+#line 288 "./o2_types.w"
+
+typedef std::set<T_ENO> FOLLOW_RULES_type;
+/*:64*//*65:*/
+#line 291 "./o2_types.w"
+
+typedef FOLLOW_RULES_type::iterator FOLLOW_RULES_ITER_type;
+/*:65*//*66:*/
+#line 294 "./o2_types.w"
+
+typedef std::set<T_in_stbl*> FIRST_SET_type;
+/*:66*//*67:*/
+#line 297 "./o2_types.w"
+
+typedef FIRST_SET_type::iterator FIRST_SET_ITER_type;
+/*:67*//*68:*/
+#line 299 "./o2_types.w"
+
+typedef vector<T_ENO> T_COUNT_type;
+/*:68*//*69:*/
+#line 301 "./o2_types.w"
+
+typedef T_COUNT_type::iterator T_COUNT_ITER_type;
+/*:69*//*70:*/
+#line 303 "./o2_types.w"
+
+typedef vector<T_in_stbl*> STBL_T_ITEMS_type;
+/*:70*//*71:*/
+#line 305 "./o2_types.w"
+
+typedef STBL_T_ITEMS_type::iterator STBL_T_ITEMS_ITER_type;
+/*:71*//*72:*/
+#line 307 "./o2_types.w"
+
+typedef std::set<rule_def*> RULES_HAVING_AR_type;
+/*:72*//*73:*/
+#line 309 "./o2_types.w"
+
+typedef RULES_HAVING_AR_type::iterator RULES_HAVING_AR_ITER_type;
+/*:73*//*74:*/
+#line 311 "./o2_types.w"
+
+typedef std::vector<LA_SET_type*> COMMON_LA_SETS_type;
+/*:74*//*75:*/
+#line 313 "./o2_types.w"
+
+typedef COMMON_LA_SETS_type::iterator COMMON_LA_SETS_ITER_type;
+/*:75*//*76:*/
+#line 315 "./o2_types.w"
+
+typedef std::map<int,int> BIT_MAP_type;
+/*:76*//*77:*/
+#line 317 "./o2_types.w"
+
+typedef BIT_MAP_type::iterator BIT_MAP_ITER_type;
+
+/*:77*//*78:*/
+#line 320 "./o2_types.w"
+
+struct use_cnt_type{
+rule_def*for_rule_use_cnt_;
+rule_def*against_rule_;
+int use_cnt_;
+use_cnt_type(rule_def*R,rule_def*S):for_rule_use_cnt_(R),against_rule_(S),use_cnt_(0){};
+use_cnt_type(const use_cnt_type&C):for_rule_use_cnt_(C.for_rule_use_cnt_)
+,against_rule_(C.against_rule_),use_cnt_(C.use_cnt_){};
+};
+typedef std::map<int,use_cnt_type> CYCLIC_USE_TBL_type;
+typedef CYCLIC_USE_TBL_type::iterator CYCLIC_USE_TBL_ITER_type;
+/*:78*//*79:*/
+#line 331 "./o2_types.w"
+
+typedef std::set<int> SET_FILTER_type;
+/*:79*//*80:*/
+#line 333 "./o2_types.w"
+
+typedef tok_can<AST*> TOK_CAN_TREE_type;
+
+/*:80*/
+#line 45 "./o2_types.w"
+;
+/*82:*/
+#line 567 "./o2_types.w"
+
+struct gen_context{
+state*for_closure_state_;
+Voc_ENO gen_vector_;
+gen_context(state*S,Voc_ENO Ve);
+};
+
+/*:82*//*83:*/
+#line 587 "./o2_types.w"
+
+struct state_element{
+gen_context cs_vector_combo_gening_it_;
+LA_SET_type*la_set_;
+state*closure_state_;
+state*goto_state_;
+state*reduced_state_;
+state*previous_state_;
+state*self_state_;
+state*closured_state_gening_it_;
+state_element*previous_state_element_;
+state_element*next_state_element_;
+AST*sr_element_;
+CAbs_lr1_sym*sr_def_element_;
+T_subrule_def*subrule_def_;
+int common_la_set_idx_;
+int its_enum_id_;
+state_element(AST*Elem);
+~state_element();
+void fill_la_from_merge(state_element&La_to_fill_in,MERGES_type&Merge,RULE_ENO Rule_no);
+void fill_la_from_transition(state_element&La_to_fill_in,TRANSITIONS_type&Transition);
+bool calc_la(state_element&La_to_fill_in);
+void add_fs_setA_to_LA(follow_element&Fe,LA_SET_type&La_to_fill_in);
+RULE_ENO find_state_element_s_rule_no();
+};
+
+/*:83*//*84:*/
+#line 625 "./o2_types.w"
+
+struct follow_element{
+RULE_ENO rule_no_;
+AST*rule_def_t_;
+state*its_state_;
+FOLLOW_SETS_type follow_set_;
+TRANSITIONS_type transitions_;
+MERGES_type merges_;
+SR_ELEMENTS_type sr_elements_;
+void add_T_to_follow_set(AST*T_element);
+void add_follow_set_contributor(AST*SR_element);
+void add_follow_set_transition(state_element&State_elem,T_eosubrule&Eos);
+void add_follow_set_transition(state_element&State_elem,T_called_thread_eosubrule&Eos);
+void add_follow_set_transition(state_element&State_elem,T_null_call_thread_eosubrule&Eos);
+AST*rule_def_t();
+state*its_state();
+follow_element(RULE_ENO Rule_no,state_element&State_elem,AST&Rule_def_t);
+follow_element(state*State);
+void remove_merge_closure_info();
+void add_merge_closure_info(state&To_merge_closure_state);
+};
+
+/*:84*//*85:*/
+#line 677 "./o2_types.w"
+
+struct state{
+gen_context cs_vector_combo_gening_it_;
+Voc_ENO vectored_into_by_elem_;
+CAbs_lr1_sym*vectored_into_by_elem_sym_;
+int state_no_;
+CLOSURE_RULES_type closure_rule_list_;
+CLOSURE_RULES_type derives_closure_rule_list_;
+FOLLOW_RULES_type follow_rule_list_;
+void add_closure_rules_subrules_to_state(gen_context&Possible_gen_context,state&Closure_state);
+void add_rule_s_subrules_to_state(AST&Start_Rule_def_t,gen_context&Possible_gen_context,state&Closure_state_associate_with);
+bool crt_core_items_of_state
+(S_VECTOR_ELEMS_ITER_type&Iter_begin
+,S_VECTOR_ELEMS_ITER_type&Iter_end
+,gen_context&Gening_context);
+S_VECTORS_type state_s_vector_;
+S_FOLLOW_SETS_type state_s_follow_set_map_;
+S_CONFLICT_STATES_type state_s_conflict_state_list_;
+void add_element_to_state_vector(Voc_ENO Elem_id,state_element&Elem);
+void add_rule_to_closure_list(rule_in_stbl*Rule_in_stbl);
+void add_rule_to_follow_list(RULE_ENO Refered_rule);
+void create_follow_sets_of_state();
+void create_start_state(AST&Start_rule_t);
+bool gen_transitive_states_for_closure_context(gen_context&For_gening_context,state&For_closure_state,state&State);
+
+bool gen_transitive_states_balance_for_closure_vector(gen_context&Gen_context,state&For_closure_state,state&Goto_state);
+
+
+state(Voc_ENO Eno,CAbs_lr1_sym*Entry_sym);
+state(AST*Start_rule_t);
+
+bool gen_a_state
+(gen_context&For_gening_context
+,state&For_closure_state
+,state&Requesting_state,S_VECTORS_ITER_type&Elem_iter);
+
+const char*entry_symbol_literal();
+void add_state_to_gbl_lr1_state_tbls(state*State);
+void add_state_to_conflict_states_list_if(gen_context&Gening_context,state&State);
+state*closure_state_birthing_it_;
+bool is_state_lr1_compatible(state&State_to_eval);
+int are_2_states_compatible_yes_merge(state&To_merge_into_state,state&State_for_merging);
+void merge_state(state&To_merge_into_state,state&State_for_merging);
+int find_2_states_compatible_and_merge(state&State_for_merging);
+bool are_states_equivalent(state&Merge_into_state,state&To_merge_state);
+bool are_gened_states_lr1_compatible();
+bool is_str_rt_bnded(AST*Str);
+bool is_str_epsilonable(AST*Str);
+void crt_start_rule_s_follow_set(AST&Str);
+state();
+void closure_only_derives(AST*Rule_tree);
+int determine_reduced_state_type(state*S);
+int state_type_;
+string*arbitrator_name_;
+};
+
+/*:85*/
+#line 46 "./o2_types.w"
+;
+#endif
+
+/*:2*/
diff --git a/web/yacco2/compiler/o2/o2_types.w b/web/yacco2/compiler/o2/o2_types.w
new file mode 100644
index 0000000000..332946a0ee
--- /dev/null
+++ b/web/yacco2/compiler/o2/o2_types.w
@@ -0,0 +1,789 @@
+@q file: o2_types.w@>
+@q% Copyright Dave Bone 1998 - 2015@>
+@q% /*@>
+@q% This Source Code Form is subject to the terms of the Mozilla Public@>
+@q% License, v. 2.0. If a copy of the MPL was not distributed with this@>
+@q% file, You can obtain one at http://mozilla.org/MPL/2.0/.@>
+@q% */@>
+O\input "eplain"
+\input "supp-pdf"
+\input"/usr/local/yacco2/diagrams/o2mac.tex"
+@*1 Global definitions and files.\fbreak
+Basic preamble include files used by all others.
+@(globals.h@>=
+// file: globals.h
+// prelude files using yacco2: for o2, o2linker utilities
+#ifndef globals_h__
+#define globals_h__ 1
+#include <stdarg.h>
+#include <stdlib.h>
+#include <string.h>
+#include <limits.h>
+
+#include "yacco2.h"
+#include "yacco2_T_enumeration.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_characters.h"
+#include "yacco2_k_symbols.h"
+#include "yacco2_terminals.h"
+using namespace std;
+using namespace NS_yacco2_T_enum;
+using namespace NS_yacco2_k_symbols;
+using namespace NS_yacco2_terminals;
+using namespace yacco2;
+#endif
+
+@*3 ``o2\_types'' header file of common set of definitions and structures.\fbreak
+``o2\_types.h'' file is a common set of definitions
+and structures used by ``o2externs.w''
+external routines.
+Contains definitions and type-defs.
+@(o2_types.h@>=
+#ifndef o2_types_
+#define o2_types_ 1
+@<defines@>;
+@<Type defs@>;
+@<Structure defs@>;
+#endif
+
+@ Definitions for O2 and my external routines --- ``o2externs.w''.\fbreak
+As i'm writing directly out to a file, the use of the ctangle macro directive
+displays its displeasure so i'm using the direct c code route.
+@<defines@>=
+#define NO_BITS_PER_SET_PARTITION 8
+#define CODE_PRESENCE_IN_ARBITRATOR_CODE "pp_accept_queue__"
+#define ACCEPT_FILTER true
+#define BYPASS_FILTER false
+#define Success true
+#define Failure false
+#define Nested_file_cnt_limit 15
+#define O2_library_file "yacco2.h"
+#define Yacco2_holding_file "yacco2cmd.tmp"
+#define Linker_holding_file "linkercmd.tmp"
+#define Max_cweb_item_size 10*1024
+#define Max_buf_size 2*1024
+#define Max_no_subrules 8*1024
+#define EPSILON_YES 0
+#define EPSILON_NO 1
+#define EPSILON_DONT_KNOW 2
+#define EPSILON_MAYBE 3
+#define SDC_user_imp_sym "#user-imp-sym"
+#define SDC_user_imp_tbl "#user-imp-tbl"
+#define SDC_user_prefix_declaration "#user-prefix-declaration"
+#define SDC_user_suffix_declaration "#user-suffix-declaration"
+#define SDC_user_declaration "#user-declaration"
+#define SDC_constructor "#constructor"
+#define SDC_destructor "#destructor"
+#define SDC_op "#op"
+#define SDC_failed "#failed"
+#define SDC_user_implementation "#user-implementation"
+#define SDC_user_imp_implementation "#user-imp-sym"
+#define SDC_user_tbl_implementation "#user-tbl-tbl"
+#define SDC_arbitrator_code "#arbitrator-code"
+#define PP_thread_name "#parallel-thread-function"
+#define Suffix_fsmheader ".h"
+#define Suffix_fsmimp ".cpp"
+#define Suffix_fsmsym "sym.cpp"
+#define Suffix_fsmtbl "tbl.cpp"
+#define Suffix_enumeration_hdr ".h"
+#define Suffix_t_alphabet ".fsc"
+#define Suffix_Errors_hdr ".h"
+#define Suffix_Errors_imp ".cpp"
+#define Suffix_T_hdr ".h"
+#define Suffix_T_imp ".cpp"
+#define Suffix_RC_hdr ".h"
+#define Suffix_RC_imp ".cpp"
+#define Suffix_LRK_hdr ".h"
+#define Suffix_LRK_imp ".cpp"
+#define Suffix_fsc ".fsc"
+#define LR1_COMPATIBLE true
+#define NOT_LR1_COMPATIBLE false
+#define MERGED true
+#define NOT_MERGED false
+#define ABORT_GENING_STATES 2
+#define START_STATE_ENUMERATE -1
+
+#define LR1_QUESTIONABLE_SHIFT_OPERATOR 0
+#define LR1_QUESTIONABLE_SHIFT_OPERATOR_LITERAL "|?|"
+#define LR1_EOG 1
+#define LR1_EOLR 2
+#define LR1_EOLR_LITERAL "eolr"
+#define LR1_PARALLEL_OPERATOR 3
+#define LR1_REDUCE_OPERATOR 4
+#define LR1_REDUCE_OPERATOR_LITERAL "|r|"
+#define LR1_INVISIBLE_SHIFT_OPERATOR 5
+#define LR1_ALL_SHIFT_OPERATOR 6
+#define LR1_FSET_TRANSIENCE_OPERATOR 7
+#define LR1_FSET_TRANSIENCE_OPERATOR_LITERAL "LR1_fset_transience_operator"
+#define LR1_PROCEDURE_CALL_OPERATOR 7
+#define LR1_PROCEDURE_CALL_OPERATOR_LITERAL "|p|"
+#define END_OF_LR1_DEFS 7
+
+#define SMALL_BUFFER_4K 1024*4
+#define BIG_BUFFER_32K 1024*32
+#define THREAD_CALL 0
+#define PROCEDURE_CALL 1
+#define MICROSOFT_THREAD_LIBRARY 1
+#define PTHREAD_LIBRARY 0
+@ Typedef definitions.
+@<Type defs@>=
+typedef int Voc_ENO;
+typedef int RULE_ENO;
+struct state;
+struct state_element;
+struct follow_element;
+@ @<Type defs@>+=
+typedef std::map<std::string,yacco2::CAbs_lr1_sym*> SDC_MAP_type;
+@ @<Type defs@>+=
+typedef SDC_MAP_type::iterator SDC_MAP_ITER_type;
+@ @<Type defs@>+=
+typedef std::vector<NS_yacco2_terminals::T_in_stbl*> STBL_T_ITEMS_type;
+@ @<Type defs@>+=
+typedef std::set<NS_yacco2_terminals::T_in_stbl*> T_IN_STBL_SET_type;
+@ @<Type defs@>+=
+typedef T_IN_STBL_SET_type::iterator T_IN_STBL_SET_ITER_type;
+@ @<Type defs@>+=
+typedef std::vector<NS_yacco2_terminals::T_in_stbl*> T_IN_STBL_SORTED_SET_type;
+@ @<Type defs@>+=
+typedef T_IN_STBL_SORTED_SET_type::iterator T_IN_STBL_SORTED_SET_ITER_type;
+@ @<Type defs@>+=
+typedef std::set<NS_yacco2_terminals::rule_in_stbl*> RULE_IN_STBL_SET_type;
+@ @<Type defs@>+=
+typedef RULE_IN_STBL_SET_type::iterator RULE_IN_STBL_SET_ITER_type;
+@ @<Type defs@>+=
+typedef std::vector<yacco2::CAbs_lr1_sym*> O2_PHRASE_TBL_type;
+@ @<Type defs@>+=
+typedef O2_PHRASE_TBL_type::iterator O2_PHRASE_TBL_ITER_type;
+@ @<Type defs@>+=
+typedef std::set<NS_yacco2_terminals::rule_in_stbl* > RULES_IN_FS_SET_type;
+@ @<Type defs@>+=
+typedef RULES_IN_FS_SET_type::iterator RULES_IN_FS_SET_ITER_type;
+@ @<Type defs@>+=
+typedef std::vector<NS_yacco2_terminals::rule_def* > RULE_DEFS_TBL_type;
+@ @<Type defs@>+=
+typedef RULE_DEFS_TBL_type::iterator RULE_DEFS_TBL_ITER_type;
+@ @<Type defs@>+=
+typedef std::vector<NS_yacco2_terminals::T_subrule_def* > SUBRULE_DEFS_type;
+@ @<Type defs@>+=
+typedef SUBRULE_DEFS_type::iterator SUBRULE_DEFS_ITER_type;
+@ @<Type defs@>+=
+typedef std::map<std::string,NS_yacco2_terminals::T_terminal_def*> T_DEF_MAP_type;
+@ @<Type defs@>+=
+typedef T_DEF_MAP_type::iterator T_DEF_MAP_ITER_type;
+@ @<Type defs@>+=
+typedef std::set<int> INT_SET_type;
+@ @<Type defs@>+=
+typedef INT_SET_type::iterator INT_SET_ITER_type;
+@ @<Type defs@>+=
+typedef std::map<int,std::string> INT_STR_MAP_type;
+@ @<Type defs@>+=
+typedef INT_STR_MAP_type::iterator INT_STR_MAP_ITER_type;
+@ @<Type defs@>+=
+typedef std::set<std::string*> STR_SET_type;
+@ @<Type defs@>+=
+typedef STR_SET_type::iterator STR_SET_ITER_type;
+@ @<Type defs@>+=
+typedef std::map<NS_yacco2_terminals::T_in_stbl*,STR_SET_type > T_IN_STBL_SET_STR_MAP_type;
+@ @<Type defs@>+=
+typedef T_IN_STBL_SET_STR_MAP_type::iterator T_IN_STBL_SET_STR_MAP_ITER_type;
+@ @<Type defs@>+=
+typedef std::list<state*> STATES_type;
+@ @<Type defs@>+=
+typedef STATES_type::iterator STATES_ITER_type;
+@ @<Type defs@>+=
+typedef int Voc_ENO;
+@ @<Type defs@>+=
+typedef int RULE_ENO;
+@ @<Type defs@>+=
+typedef int T_ENO;
+@
+@<Type defs@>+=
+typedef std::set<RULE_ENO> RULE_NOS_SET_type;
+@
+@<Type defs@>+=
+typedef RULE_NOS_SET_type::iterator RULE_NOS_SET_ITER_type;
+@
+@<Type defs@>+=
+typedef std::set<state*> STATES_SET_type;
+@
+@<Type defs@>+=
+typedef STATES_SET_type::iterator STATES_SET_ITER_type;
+@ Map of lr1 states used for potential state merge.
+@<Type defs@>+=
+typedef std::map<Voc_ENO,STATES_type > LR1_STATES_type;
+@
+@<Type defs@>+=
+typedef LR1_STATES_type::iterator LR1_STATES_ITER_type;
+@
+@<Type defs@>+=
+typedef std::list<state_element*> S_VECTOR_ELEMS_type;
+@
+@<Type defs@>+=
+typedef S_VECTOR_ELEMS_type::iterator S_VECTOR_ELEMS_ITER_type;
+@
+This supplies all GPS positions within each subrule string of symbols
+to generate the lr states for the state
+and it also supplies all the follow set GPS contributors for each
+referenced rules.
+All strings to the right of these referenced rules
+become the follow set strings of symbols
+ to calculate the follow set.
+@<Type defs@>+=
+typedef std::map<Voc_ENO,S_VECTOR_ELEMS_type > S_VECTORS_type;
+@ @<Type defs@>+=
+typedef S_VECTORS_type::iterator S_VECTORS_ITER_type;
+@ @<Type defs@>+=
+typedef std::set<T_in_stbl*> FOLLOW_SETS_type;
+@ @<Type defs@>+=
+typedef FOLLOW_SETS_type::iterator FOLLOW_SETS_ITER_type;
+@ @<Type defs@>+=
+typedef std::set<T_in_stbl*> LA_SET_type;
+@ @<Type defs@>+=
+typedef LA_SET_type::iterator LA_SET_ITER_type;
+@ @<Type defs@>+=
+typedef std::set<T_in_stbl*> SHIFT_SET_type;
+@ @<Type defs@>+=
+typedef SHIFT_SET_type::iterator SHIFT_SET_ITER_type;
+@ @<Type defs@>+=
+typedef std::list<follow_element*> TRANSITIONS_type;
+@ @<Type defs@>+=
+typedef TRANSITIONS_type::iterator TRANSITIONS_ITER_type;
+@ @<Type defs@>+=
+typedef std::list<state*> MERGES_type;
+@ @<Type defs@>+=
+typedef MERGES_type::iterator MERGES_ITER_type;
+@
+List of subrules elements that require follow set calculation.
+This is the contributors list that allows me to debug my code.
+A contributor is the grammar node of the subrule element.
+@<Type defs@>+=
+typedef std::list<AST*> SR_ELEMENTS_type;
+@
+State's follow sets of referenced rules making up its ``closure-only'' core.
+The rule definition enumerate value is the map's key.
+@<Type defs@>+=
+typedef std::map<RULE_ENO,follow_element*> S_FOLLOW_SETS_type;
+@
+@<Type defs@>+=
+typedef S_FOLLOW_SETS_type::iterator S_FOLLOW_SETS_ITER_type;
+@
+Closure state's conflict list from its ``closure-part'' gened state network.
+These are the lr1 states that
+have a reduce configuration (subrule's string of symbols consumed or epsilon)
+with other reduce or shift subrule configurations that are checked for lr1 compatibility.
+The list allows one to pretest the merge potential of a newly being gened
+ state into an already gened lr1 state network.
+@<Type defs@>+=
+typedef std::list<state*> S_CONFLICT_STATES_type;
+@
+@<Type defs@>+=
+typedef S_CONFLICT_STATES_type::iterator S_CONFLICT_STATES_ITER_type;
+@
+@<Type defs@>+=
+typedef std::set< rule_in_stbl* > CLOSURE_RULES_type;
+@
+@<Type defs@>+=
+typedef CLOSURE_RULES_type::iterator CLOSURE_RULES_ITER_type;
+@
+@<Type defs@>+=
+typedef std::set< T_ENO > FOLLOW_RULES_type;
+@
+@<Type defs@>+=
+typedef FOLLOW_RULES_type::iterator FOLLOW_RULES_ITER_type;
+@
+@<Type defs@>+=
+typedef std::set<T_in_stbl*> FIRST_SET_type;
+@
+@<Type defs@>+=
+typedef FIRST_SET_type::iterator FIRST_SET_ITER_type;
+@ @<Type defs@>+=
+typedef vector<T_ENO> T_COUNT_type;
+@ @<Type defs@>+=
+typedef T_COUNT_type::iterator T_COUNT_ITER_type;
+@ @<Type defs@>+=
+typedef vector<T_in_stbl*> STBL_T_ITEMS_type;
+@ @<Type defs@>+=
+typedef STBL_T_ITEMS_type::iterator STBL_T_ITEMS_ITER_type;
+@ @<Type defs@>+=
+typedef std::set<rule_def* > RULES_HAVING_AR_type;
+@ @<Type defs@>+=
+typedef RULES_HAVING_AR_type::iterator RULES_HAVING_AR_ITER_type;
+@ @<Type defs@>+=
+typedef std::vector<LA_SET_type* > COMMON_LA_SETS_type;
+@ @<Type defs@>+=
+typedef COMMON_LA_SETS_type::iterator COMMON_LA_SETS_ITER_type;
+@ @<Type defs@>+=
+typedef std::map<int,int> BIT_MAP_type;
+@ @<Type defs@>+=
+typedef BIT_MAP_type::iterator BIT_MAP_ITER_type;
+
+@ @<Type defs@>+=
+struct use_cnt_type {
+ rule_def* for_rule_use_cnt_;
+ rule_def* against_rule_;
+ int use_cnt_;
+ use_cnt_type(rule_def* R,rule_def* S):for_rule_use_cnt_(R),against_rule_(S),use_cnt_(0){};
+ use_cnt_type(const use_cnt_type& C):for_rule_use_cnt_(C.for_rule_use_cnt_)
+,against_rule_(C.against_rule_),use_cnt_(C.use_cnt_){};
+};
+typedef std::map<int,use_cnt_type> CYCLIC_USE_TBL_type;
+typedef CYCLIC_USE_TBL_type::iterator CYCLIC_USE_TBL_ITER_type;
+@ @<Type defs@>+=
+typedef std::set<int> SET_FILTER_type;
+@ @<Type defs@>+=
+typedef tok_can<AST*> TOK_CAN_TREE_type;
+
+@*1 LR1 definitions.\fbreak
+\fbreak
+\convertMPtoPDF{"/usr/local/yacco2/diagrams/o2_structures.1"}{1}{1}
+\fbreak
+\fbreak
+\convertMPtoPDF{"/usr/local/yacco2/diagrams/o2_structures.2"}{1}{1}
+\fbreak
+\fbreak
+Let's review what makes up a state:\fbreak
+\ptindent{1) subrules's specific element --- state's to gen vectors}
+\ptindent{2) rules's follow set}
+\ptindent{3) state's entry symbol --- Start state has no entry symbol}
+\ptindent{4) state's list of conflict states}
+A state is a set of productions (subrules) where each production's current symbol
+being worked on
+is some position along its string.
+A state from the arithmetic grammar discussed earlier
+ could be represented by the following example where the ``.'' indicates
+the position within the production's
+string being worked on in the state:\fbreak
+\ptindent{S $\rightarrow$ E \ . \ $\bot$}
+\ptindent{E $\rightarrow$ E \ . \ $+$ T}
+The above state has 2 productions
+where each symbol being worked on is in position 2 of their respective strings.
+These are items in the state having their production configuration of
+subrule $\otimes$ string position.
+Sometimes I shall call each entry a {\bf state element} rather than an item.
+A rule's follow set gets created when it is present in point 1: ie, the state's element is a rule
+and its follow set is the string to its right that generates teminals.
+Please see at the beginning of this document the ``follow set'' definition.
+Point 3's entry symbol identifies the symbol used to gen the state
+and to quickly help in determining whether two states
+are equivalent for potential state merging.
+Point 4 is a requirement to support merging of states from 2 different
+closured-part state networks.
+It supplies the lr1 states that have reduce / reduce or shift conditions
+that
+require the lr1 compatibility check.
+When there is a proposed merger from 2 different closured-part contexts,
+it is the union of their follow sets that gives the reducing subrules their lookahead sets.
+Consequently the lr1 conflict states of the ``merged into context''
+must be evaluated for lr1 compatibility.
+\fbreak
+\fbreak
+Parts of a state:\fbreak
+\ptindent{1) Closured }
+\ptindent{2) Transitive }
+A closured part are all the state's items whose elements start their strings.
+They have been brought into the state by the ``closure'' operation
+caused by a state's element being a rule.
+A transitive part are those productions whose elements are to
+the right of the start element.
+Items used to generate a new state are called {\bf ``core items''}.
+\fbreak
+\fbreak
+State generation:\fbreak
+All states are generated from a closured part of a state.
+Its productions are walked along their strings producing transitive states
+until their strings are completely consumed.
+This holds for the ``Start state'' that starts things off by
+generating all it transitive children.
+Thereafter each transitive state is visited and assessed for its closured components
+that then generates its own transitive states.
+This goes on until all the generated states have been visited.
+\fbreak
+\fbreak
+Contexts:\fbreak
+\ptindent{1) follow sets}
+\ptindent{2) production's reduced lookahead set}
+A production's reduction occurs when all its string has been recognized.
+For it to reduce, it depends on the context of its follow set within
+its birthing closured state:
+This is the lr1 compatibility context that is refered to as {\bf lookahead}.
+When there is no
+conflict of interest between competing productions (reduces with possibly shifts)
+within the state,
+this becomes a lr(0) situation.
+Without regard for the lookahead context this now shifts the error
+detection to the state that must deal with the lookahead as the current terminal for shifting.
+This strategy is used when state merges takes place.
+Instead of exploding the number of states sensitive to only its own
+lookahead context, mergers combine the follow set contexts as long as there is no
+state incompatibilities created.
+2 or more competing reducing productions
+requires their follow set contexts to resolve the reducing conflict:
+reduce / reduce or reduce / shift.
+Shifts of symbols are local to the reducing state.
+
+Of course lookaheads are context sensitive according to
+each productions birthing states. In LR(1) terms, the lookahead is
+deterministic and provided by the
+follow sets having only 1 symbol string as lookahead.
+\fbreak
+\fbreak
+Follow set and right bounded condition:\fbreak
+This condition is where a rule is the last symbol in its production string.
+Its closured productions inherit the follow set
+ of the production string(s) that closured it.
+These follow sets are found in the gening closured
+state environment.
+Consequently right bounded closured productions must be gened
+in case it could produce a conflict state.
+Why? Merges taking place above this to-be-gened production from a different closured state
+generation could produce a conflict as
+the merger is not aware that one
+of its transitive states has a future conflict condition
+dependent on these merged follow set contexts.\fbreak
+As an example please see David Spector from ``SIGPLAN VOL 23 DEC/88''
+where my gened ``lr1\_sp5.lex'' grammar illustrates this condition.
+\fbreak
+\fbreak
+Epsilon rules and right bounded condition:\fbreak
+If the last symbol is a rule and is epsilonable, then the right bounded condition
+moves left inwards from the end of the symbol string to the next right-to-left symbol.
+Now if that symbol is a rule it is considered a right bounded requiring
+generation within the current closured
+state environment. This is a recursive definition: right bounded condition gens closures
+having the right bounded condition that also requires immediate generation.
+When it comes time to gen the closured-part
+state of the right bounded components,
+they will have been already gened
+and their conflict states
+entered against their gening closured-part state environment.
+\fbreak
+\fbreak
+Significance of right bounded condition:\fbreak
+It demands that its future closured state generation be associated with the
+ generating closured state that created it.
+Restated: It must be generated prematurely by its spawning
+closured state.
+This way any of its transitive states that have the lr1 conflict condition will
+get placed in the
+conflict state list of the generating closured state so
+that a proposed merger relative to the original closured state
+is aware of the potential conflict and checked accordingly.
+\fbreak
+\fbreak
+Some synonyms:\fbreak
+``Closure-only'' state:\fbreak
+ A state where all its state elements are configurations with their start symbol.
+ This is your one and only Start state.\fbreak
+\fbreak
+``Transitive'' state:\fbreak
+ A state where at least one state element
+ is not the starting symbol of a production's string.
+ \fbreak
+\fbreak
+``Closured-only-part'' of a state:\fbreak
+ All state's elements whose symbols start the subrule string.
+ Synonym: ``closured state''.\fbreak
+\fbreak
+``Closured-only-subrules'' of a state:\fbreak
+ Productions's symbol strings brought into the state by the closure operation
+ caused by a state's element being a rule.
+ The ``closured-only'' part are those subrules birthed within this state
+ to
+ generate all its ``closured-only'' subrules transitive states.
+ \fbreak
+ \fbreak
+``Conflict state'':\fbreak
+ A state having at least 2 items where at least one of the productions
+ is reducing.
+\fbreak
+\fbreak
+Building a state core:\fbreak
+There are only 2 contexts that provide the generation fodder for a state:\fbreak
+\ptindent{1) Start (closure-only) state --- Start rule's grammar tree definition}
+\ptindent{2) Transitive states --- generated from a closured state}
+The ``closured-part'' of a state generates all its transitive states from its closure subrules
+regardless of the type of state --- Start or transitive.
+Point 1 starts things off. It generates all its transitive states.
+Point 2 deals with transitive states from point 1 that have closured-only residues
+that need generating.
+Of course these newly generated transitive states
+could be merged into the existing lr1 state network if they meet
+the lr1 compatibility criteria.
+Eventually the newly added transitive states
+will be assessed for their ``closured-part'' generation.
+\fbreak
+\fbreak
+Some Merge points:\fbreak
+First, only conflict states are tested.
+They are supplied by their associated closured generating state.
+When a merge takes place, the state being absorbed by the older closured network
+deposits its follow set info against the merged into state.
+
+Second, the conflict states of the ``merged into'' state network must also
+be added to the gening closured state's conflict state list.
+Why?
+If the state was not merged, eventually all its gened states would have
+the equivalent conflict states as the proposed merger.
+The only refinement to this is conflict states should only be added that are
+eventually generated from the ``merged into'' state.
+Now if future mergers are proposed into this newly closured state's network,
+the conflict states of the absorbing network will also be there for the testing.
+\fbreak
+\fbreak
+In summary, Lr1 state generation is discrete in its generation passes.
+Pass one: generate all the states
+for the start state from its ``closured-only'' subrules.
+Pass two and greater deals with ``closured-only'' parts of transitive states that
+have not been completely gened. Remember a subrule is associated with its
+birth state that brought it into existance.
+These transitive states
+are of previous passes.
+Each transitive pass looks for the next transitive state
+to generate
+until
+all its lr state network have been built.
+The ``transitive state pass'' generates all its ``closured-only''
+subrules independently of the past generations.
+\fbreak
+\fbreak
+Now the state implementation bedevils this definition as does Goethic churches ---
+one usually does not see the infrastructure required to build it
+unless the project ran out of money
+and
+stands unfinished but open to its engineering secrets.
+So here's the scaffolding for my sanity.
+A note on the following type defs sections: to make ``cweave'' behave in
+formatting its the document --- a slight ahem until i debug / correct ``cweave''.
+The cause is templates that came after the original program was written.
+
+@*2 |gen_context| definition.\fbreak
+The context identifying the closure state and vector combo gening its states.
+This context is needed to prevent same closure state merges whose
+vectors are different but generate common states having different follow sets.
+If merged the contributing contexts could make it non lr1.
+See David Spector's paper ``Efficicent Full Lr1 Parser Generators'': G2 example.
+The context is maintained per state that gened it and per state's
+ subrules vectors: |state_element|.
+@<Structure defs@>+=
+struct gen_context{
+ state* for_closure_state_;
+ Voc_ENO gen_vector_;
+ gen_context(state* S,Voc_ENO Ve);
+};
+
+@*2 |state_element| definition.\fbreak
+Basic building block of a state's set of subrules'
+string symbols.
+Laced throughout |state_element| are linkages between the
+past, present, and future of its lr1 state generation.
+This is the scaffolding to build the state network.
+|sr_def_element_| {\bf is for tracing purposes only}.
+I could have gone the long way by getting the tree node's content and then
+fetch its definition
+but this makes life easier when truth telling takes place --- {\bf terminal-def or rule-def}.
+
+The |la_set_| only gets created at the end-of-string point.
+It's a fast way to scratch-pad potential merges and the lr1 breathalyzer test.\fbreak
+@<Structure defs@>+=
+struct state_element{
+gen_context cs_vector_combo_gening_it_;
+LA_SET_type* la_set_;
+state* closure_state_;
+state* goto_state_;
+state* reduced_state_;
+state* previous_state_;
+state* self_state_;
+state* closured_state_gening_it_;
+state_element* previous_state_element_;
+state_element* next_state_element_;
+AST* sr_element_; // grammar tree node
+CAbs_lr1_sym* sr_def_element_; // 1 of terminal-def or rule-def
+T_subrule_def* subrule_def_;
+int common_la_set_idx_;
+int its_enum_id_; // grammar's enumerated value of terminal-def or rule-def
+state_element(AST* Elem);
+~state_element();
+ void fill_la_from_merge(state_element& La_to_fill_in,MERGES_type& Merge,RULE_ENO Rule_no);
+ void fill_la_from_transition(state_element& La_to_fill_in,TRANSITIONS_type& Transition);
+ bool calc_la(state_element& La_to_fill_in);
+ void add_fs_setA_to_LA(follow_element& Fe,LA_SET_type& La_to_fill_in);
+ RULE_ENO find_state_element_s_rule_no();
+};
+
+@*2 |follow_element| Follow set definition for a rule.\fbreak
+The input set of strings for the rule's follow set are
+provided by the state's |S_VECTORS_type| that is
+a map of 3 generic enumerate types --- ``rule-defs'', ``T-defs'', and ``eosubrule'' variants.
+Of particular interest in this map are the ``rule-def''s.
+The |state_element|s associated with the rule are the GPS into each subrule's symbol
+string. One can view this as the state's contributors list to generate
+both its lr states and
+the referenced rules' follow sets for this state.
+Now these input follow set strings are
+ the strings to its right of its GPS.
+This is supplied thru the symbol's grammar next brother tree node.
+@<Structure defs@>+=
+struct follow_element{
+ RULE_ENO rule_no_;
+ AST* rule_def_t_;
+ state* its_state_;
+ FOLLOW_SETS_type follow_set_;
+ TRANSITIONS_type transitions_;
+ MERGES_type merges_;
+ SR_ELEMENTS_type sr_elements_;
+ void add_T_to_follow_set(AST* T_element);
+ void add_follow_set_contributor(AST* SR_element);
+ void add_follow_set_transition(state_element& State_elem,T_eosubrule& Eos);
+ void add_follow_set_transition(state_element& State_elem,T_called_thread_eosubrule& Eos);
+ void add_follow_set_transition(state_element& State_elem,T_null_call_thread_eosubrule& Eos);
+ AST* rule_def_t();
+ state* its_state();
+ follow_element(RULE_ENO Rule_no,state_element& State_elem,AST& Rule_def_t);
+ follow_element(state* State);
+ void remove_merge_closure_info();
+ void add_merge_closure_info(state& To_merge_closure_state);
+};
+
+@*2 |state| definition.\fbreak
+|vectored_into_by_elem_| is the goto element from the spawning state that
+ enters this state.
+The ``xxx-def'' symbol is provided by |vectored_into_by_elem_sym_|
+that is used for tracing purposes.
+It is one of the elements in determining whether 2 states are equal.
+I use the symbol's defining enumerate value which was enumerated across all the
+Grammar's vocabulary: Rules and Terminals.
+|START_STATE_ENUMERATE| symbol representing -1
+is used to accommodate a ``closure only'' state where there is no
+symbol entering the start state as a Grammar's vocabulary enumeration begins at 0.
+
+|closure_rule_list_| provides referenced rules in the state to complete the state's
+elements.
+|follow_rule_list_| is a fast way to deal with building follow sets for the state
+as it is a list of rule numbers that are keys into |state_s_to_vector|
+that indirectly supplies the follow string contexts.
+
+To support rules recycling optimization, a quasi
+closure state for any rule of the grammar has been added.
+Why the addition?
+Recycling of rules requires a use count derived from
+recursion and subrules references to the rule.
+My first attempt was wrong as i did not take into account
+that a rhs subrule could have a referenced rule that
+could be indirectly referenced by (derived by) a suffixed referenced rule.
+So i need to derive the state containing the closured items
+and them analyse its content to see whether
+indirect referencing is taking place.
+So create ctor of state with no tree and a |closure_only_derives| method.
+@<Structure defs@>+=
+struct state{
+ gen_context cs_vector_combo_gening_it_;
+ Voc_ENO vectored_into_by_elem_; // enumerate from N or T vocabulary: -1= closure-only state
+ CAbs_lr1_sym* vectored_into_by_elem_sym_; // |rule_def|,|T_def|,0=closure-only state
+ int state_no_;
+ CLOSURE_RULES_type closure_rule_list_;
+ CLOSURE_RULES_type derives_closure_rule_list_;// only for: rule recycling optimization
+ FOLLOW_RULES_type follow_rule_list_;
+ void add_closure_rules_subrules_to_state(gen_context& Possible_gen_context,state& Closure_state);
+ void add_rule_s_subrules_to_state(AST&Start_Rule_def_t,gen_context&Possible_gen_context,state&Closure_state_associate_with);
+ bool crt_core_items_of_state
+ (S_VECTOR_ELEMS_ITER_type& Iter_begin
+ ,S_VECTOR_ELEMS_ITER_type& Iter_end
+ ,gen_context& Gening_context);
+ S_VECTORS_type state_s_vector_;
+ S_FOLLOW_SETS_type state_s_follow_set_map_;
+ S_CONFLICT_STATES_type state_s_conflict_state_list_;
+ void add_element_to_state_vector(Voc_ENO Elem_id,state_element& Elem);
+ void add_rule_to_closure_list(rule_in_stbl* Rule_in_stbl);
+ void add_rule_to_follow_list(RULE_ENO Refered_rule);
+ void create_follow_sets_of_state();
+ void create_start_state(AST& Start_rule_t);
+ bool gen_transitive_states_for_closure_context(gen_context& For_gening_context,state& For_closure_state,state& State);
+
+ bool gen_transitive_states_balance_for_closure_vector(gen_context& Gen_context,state& For_closure_state,state& Goto_state);
+
+
+ state(Voc_ENO Eno,CAbs_lr1_sym* Entry_sym);
+ state(AST* Start_rule_t);
+
+ bool gen_a_state
+ (gen_context& For_gening_context
+ ,state& For_closure_state
+ ,state& Requesting_state,S_VECTORS_ITER_type& Elem_iter);
+
+ const char* entry_symbol_literal();
+ void add_state_to_gbl_lr1_state_tbls(state* State);
+ void add_state_to_conflict_states_list_if(gen_context& Gening_context,state& State);
+ state* closure_state_birthing_it_;
+ bool is_state_lr1_compatible(state& State_to_eval);
+ int are_2_states_compatible_yes_merge(state& To_merge_into_state,state& State_for_merging);
+ void merge_state(state& To_merge_into_state,state& State_for_merging);
+ int find_2_states_compatible_and_merge(state& State_for_merging);
+ bool are_states_equivalent(state& Merge_into_state,state& To_merge_state);
+ bool are_gened_states_lr1_compatible();
+ bool is_str_rt_bnded(AST* Str);
+ bool is_str_epsilonable(AST* Str);
+ void crt_start_rule_s_follow_set(AST& Str);
+ state();// for closure only derives
+ void closure_only_derives(AST* Rule_tree);
+ int determine_reduced_state_type(state* S);
+ int state_type_;
+ string* arbitrator_name_;
+};
+
+@*3 State's map of ``to vector'' elements.\fbreak
+|S_VECTORS_type| is the state's map of ``to vector'' elements
+of ``rule-ref'', ``T-ref'', and |eosubrule|.
+These elements produce the ``goto'' state eminating out of the lr1 state.
+This is a white lie as the |eosubrule| eminates nothing.
+It
+represents either the epsilon condition if its the first element of a subrule
+or a fully consumed subrule: its string of symbols has been consumed and so
+to be reduced.
+``rule-ref'', ``T-ref'' are proxies to their definitions whereby their enumerated values
+are unique.
+
+The second part of the map is the list of {\bf same state elements} having identical
+enumerated keys. These vectors are the fodder to generate the
+next set of states eminating from this state and all the ``closured-only part'' states progeny.
+The list is sorted by the AST address inside the state's emlement
+so that state equivalences can be determined.
+U might raise the point: doesn't it matter what order the elements are placed inside the
+state to generate the lr1 state network: FIFO?
+NO!
+Let's review why.\fbreak
+\ptindent{1) ``closured only'' state composed of 1st position only subrules' elements.}
+\ptindent{2) this state's follow sets are static: first set from strings to rt of refered rules.}
+\ptindent{3) only the closured-only subrules are fully generated at the same time.}
+\ptindent{4) transitive states only continue gening their subrules from the closured state.}
+\ptindent{5) the resulting lr1 states are evaluated for lr1 conflicts.}
+\ptindent{6) apply the logic above to gened states having incomplete gened closured-only parts.}
+\fbreak
+It is point 2 that is interesting: the birthing closured states
+ of its reducing subrules supplies their lookahead.
+ This means the closured state is
+ generated completely before an assessment needs to take place.
+ The lr1 assessment determines whether the gened states are lr(1) compatible.
+ This check goes only against states that have reducing subrules so that the reduce / reduce
+ and shift / reduce conditions can be verified.
+
+ How is the lr1 condition evaluated?
+ Easy, the reducing subrule's rule within its birthing closured state contains its follow set:
+ ie its lookahead terminals.
+ All it takes is to make sure that the intersection
+ of all the reducing subrules' follow sets
+ is empty and that the state's shift terminals are
+ not in any of the reducing subrules' follow sets.
+ This shift set can be considered an invisible follow set that is applied at
+ the same time to the other reducing follow sets.
+ Keeping a list of conflicting states within the ``closure-only or part'' state
+ when a state merge is proposed allows one to
+ apply this lr1 condition for compatibility against the potential merged follow sets.
+ Remember a gened state is produced out of its closured state.
+ Thus mergers mean use the follow sets of each closure state. The
+ ``state to merge into'' already has it list of lr1 conflict states
+ in its associated gening closured state that need checking
+ before Mr. Goodwrench nods. \fbreak
+ \fbreak
+ Key: element's enumerate: ``rule-def'', ``T-def'', and ``eosubrule'' \fbreak
+ Elements in list: state's elements that contain a grammar's tree node address \fbreak
+
diff --git a/web/yacco2/compiler/o2/o2externs.w b/web/yacco2/compiler/o2/o2externs.w
new file mode 100644
index 0000000000..61fc6a5a7a
--- /dev/null
+++ b/web/yacco2/compiler/o2/o2externs.w
@@ -0,0 +1,8194 @@
+@q file: o2externs.w@>
+@q% Copyright Dave Bone 1998 - 2015@>
+@q% /*@>
+@q% This Source Code Form is subject to the terms of the Mozilla Public@>
+@q% License, v. 2.0. If a copy of the MPL was not distributed with this@>
+@q% file, You can obtain one at http://mozilla.org/MPL/2.0/.@>
+@q% */@>
+@q% This file is part of YACC02 compiler/compiler project.@>
+
+\input "eplain"
+\input "supp-pdf"
+\input "/usr/local/yacco2/diagrams/o2mac.tex"
+%\tracingall=1
+%\tracingall=1
+%\tracingmacros=1
+%\tracingcommands=2
+@i "/usr/local/yacco2/license.w"
+
+@** Summary of \O2 External parse routines.\fbreak
+These are the various procedures that parse \Yacco2's grammar language
+and emit the grammar's c++ code
+and tex document with mpost generated diagrams.
+Each language construct has its appropriate external procedure that houses
+the monolithic grammar to start the parse.
+There is no namespace used to contain these routines as I felt that this was overkill.
+As this is a closed system, their grammars are not universal and
+cannot be re-cycled for others.
+Their only outside value are in teaching examples on ``how to skin a cat'' or is it
+``how to parse a lion?''...
+
+External routines ratatouille:\fbreak
+\ptindent{|o2externs.w| - cweb generator file}
+\ptindent{|o2_externs.h| - header file}
+\ptindent{|o2_externs.cpp| - implementation}
+
+Dependency files from other Yacco2 sub-systems:\fbreak
+\ptindent{|yacco2.h| - basic definitions used by Yacco2}
+\ptindent{|yacco2_T_enumeration.h| - terminal enumeration for Yacco2's terminal grammar alphabet}
+\ptindent{|yacco2_err_symbols.h| - error terminal definitions from Yacco2's grammar alphabet}
+\ptindent{|yacco2_characters.h| - raw character definitions from Yacco2's grammar alphabet}
+\ptindent{|yacco2_k_symbols.h| - constant meta terminal defs from Yacco2's grammar alphabet}
+\ptindent{|yacco2_terminals.h| - regular terminal definitions from Yacco2's grammar alphabet}
+\ptindent{|*.h| - assorted grammar definitions for Yacco2's parsing}
+\ptindent{|yacco2_stbl.h| - symbol table defnitions}
+
+External procedures and other globals:\fbreak
+\ptindent{|YACCO2_PARSE_CMD_LINE|}
+\ptindent{|PROCESS_INCLUDE_FILE|}
+\ptindent{|PROCESS_KEYWORD_FOR_SYNTAX_CODE|}
+\ptindent{|O2_xxx| phases --- terminals per distinct parse phrase}
+\ptindent{|PRINT_RULES_TREE_STRUCTURE|}
+\ptindent{|WRT_CWEB_MARKER|}
+\ptindent{|GEN_FS_OF_RULE|}
+\ptindent{|PRT_RULE_S_FIRST_SET|}
+\ptindent{|OP_GRAMMAR_HEADER|}
+\ptindent{|OP_ERRORS_HEADER|}
+\ptindent{|OP_USER_T_HEADER|}
+\ptindent{|DATE_AND_TIME|}
+\ptindent{|MAX_USE_CNT_RxSkeletion| --- rule recyling}
+\ptindent{|XLATE_SYMBOLS_FOR_cweave|}
+Internal procedures:\fbreak
+\ptindent{|process_fsm_phrase|}
+\ptindent{|process_parallel_parser_phrase|}
+\ptindent{|process_T_enum_phrase|}
+\ptindent{|process_error_symbols_phrase|}
+\ptindent{|process_rc_phrase|}
+\ptindent{|process_lr1_k_phrase|}
+\ptindent{|process_terminals_phrase|}
+\ptindent{|process_rules_phrase|}
+\ptindent{|Print_dump_state|}
+
+
+@** Global definitions, External parse routines for Yacco2.\fbreak
+Why |CWEB_MARKER| external?
+It holds the |T_cweb_marker| tree containing |cweb| comments.
+Why? It is a holding pointer that allows |cweb| comments
+to be processed before
+the appropriate parse phrases like |process_xxx_phrase|
+that are triggered by |PROCESS_KEYWORD_FOR_SYNTAX_CODE|.
+\def\ptindent#1{\line{\hskip.5in{#1}\hfill}}
+\def\fbreak{\hfill\break}
+\def\wildcard{$\vert$+$\vert$}
+\def\parallelop{$\vert\vert\vert$}
+
+@ Create header file.
+@(o2_externs.h@>=
+#ifndef o2_externs_
+#define o2_externs_ 1
+@h
+@<Files for header@>;
+#endif
+
+@*2 Files for header.
+@<Files for header@>=
+#include "globals.h"
+#include "o2_types.h"
+#include "o2_lcl_opts.h"
+#include "o2_lcl_opt.h"
+#include "pass3.h"
+#include "o2_err_hdlr.h"
+#include "fsm_phrase.h"
+#include "parallel_parser_phrase.h"
+#include "T_enum_phrase.h"
+#include "err_symbols_ph.h"
+#include "rc_phrase.h"
+#include "lr1_k_phrase.h"
+#include "terminals_phrase.h"
+#include "rules_phrase.h"
+#include "yacco2_stbl.h"
+#include "enumerate_T_alphabet.h"
+#include "mpost_output.h"
+#include "prt_xrefs_docs.h"
+#include "cweb_put_k_into_ph.h"
+extern CYCLIC_USE_TBL_type CYCLIC_USE_TABLE;
+extern STBL_T_ITEMS_type STBL_T_ITEMS;
+extern int NO_LR1_STATES;
+extern T_fsm_phrase*O2_FSM_PHASE;
+extern T_parallel_parser_phrase*O2_PP_PHASE;
+extern T_enum_phrase*O2_T_ENUM_PHASE;
+extern T_lr1_k_phrase*O2_LRK_PHASE;
+extern T_rc_phrase*O2_RC_PHASE;
+extern T_error_symbols_phrase*O2_ERROR_PHASE;
+extern T_terminals_phrase*O2_T_PHASE;
+extern T_rules_phrase*O2_RULES_PHASE;
+extern STATES_type LR1_STATES;
+extern RULE_ENO START_OF_RULES_ENUM;
+extern STBL_T_ITEMS_type STBL_T_ITEMS;
+extern RULE_ENO START_OF_RULES_ENUM;
+extern yacco2::AST* GRAMMAR_TREE;
+extern yacco2::AST* CWEB_MARKER;
+extern void WRT_CWEB_MARKER(std::ofstream* Wfile,yacco2::AST* Cweb_marker);
+extern void LOAD_YACCO2_KEYWORDS_INTO_STBL();
+extern void GET_CMD_LINE(int argc, char* argv[]
+ ,const char* File,yacco2::TOKEN_GAGGLE& Errors);
+extern void DUMP_ERROR_QUEUE(yacco2::TOKEN_GAGGLE& Errors);
+extern void PRINT_RULES_TREE_STRUCTURE(AST* Node);
+extern const char* DATE_AND_TIME();
+extern void YACCO2_PARSE_CMD_LINE@/
+ (yacco2::CHAR& T_sw@/
+ ,yacco2::CHAR& ERR_sw,yacco2::CHAR& PRT_sw@/
+ ,std::string& Grammar_to_compile@/
+ ,yacco2::TOKEN_GAGGLE& Error_queue);
+extern bool PROCESS_INCLUDE_FILE@/
+ (yacco2::Parser& Calling_parser@/
+ ,NS_yacco2_terminals::T_file_inclusion& File_include@/
+ ,yacco2::token_container_type& T2);
+extern bool PROCESS_KEYWORD_FOR_SYNTAX_CODE@/
+ (yacco2::Parser& Parser@/
+ ,yacco2::CAbs_lr1_sym* Keyword@/
+ ,yacco2::CAbs_lr1_sym** Cont_tok@/
+ ,yacco2::INT* Cont_pos);
+extern void BUILD_GRAMMAR_TREE(yacco2::AST& Item);
+extern void PRINT_GRAMMAR_TREE(AST* Node);
+extern void GEN_FS_OF_RULE(NS_yacco2_terminals::rule_def* Rule_def);
+extern void GEN_CALLED_THREADS_FS_OF_RULE@/
+ (NS_yacco2_terminals::rule_def* Start_rule);
+extern int MAX_USE_CNT_RxR@/
+ (NS_yacco2_terminals::rule_def* Rule_use
+ ,NS_yacco2_terminals::rule_def* Against_rule);
+extern void XLATE_SYMBOLS_FOR_cweave(const char* Sym_to_xlate,char* Xlated_sym);
+extern void PRT_RULE_S_FIRST_SET(NS_yacco2_terminals::rule_def* Rule_def);
+extern void OP_GRAMMAR_HEADER(TOKEN_GAGGLE& Error_queue);
+extern void OP_GRAMMAR_CPP(TOKEN_GAGGLE& Error_queue);
+extern void OP_GRAMMAR_SYM(TOKEN_GAGGLE& Error_queue);
+extern void OP_GRAMMAR_TBL(TOKEN_GAGGLE& Error_queue);
+extern void OP_ENUMERATION_HEADER(TOKEN_GAGGLE& Error_queue);
+extern void OP_T_Alphabet(TOKEN_GAGGLE& Error_queue);
+extern void OP_ERRORS_HEADER(TOKEN_GAGGLE& Error_queue);
+extern void OP_ERRORS_CPP(TOKEN_GAGGLE& Error_queue);
+extern void OP_USER_T_HEADER(TOKEN_GAGGLE& Error_queue);
+extern void OP_USER_T_CPP(TOKEN_GAGGLE& Error_queue);
+extern void OP_FSC_FILE(TOKEN_GAGGLE& Error_queue);
+extern void Print_dump_state(state* State);
+@ Include Header file.
+@<Include Header file@>=
+#include "o2_externs.h"
+@ Yacco2 external routines blueprint. Output of the code.
+@(o2_externs.cpp@>=
+@<Include Header file@>;
+@<accrue source for emit@>;
+
+
+@ Accrue source for emit.
+@<accrue source for emit@>=
+RULES_HAVING_AR_type RULES_HAVING_AR;
+COMMON_LA_SETS_type COMMON_LA_SETS;
+T_fsm_phrase*O2_FSM_PHASE(0);
+T_parallel_parser_phrase*O2_PP_PHASE(0);
+T_enum_phrase*O2_T_ENUM_PHASE(0);
+T_lr1_k_phrase*O2_LRK_PHASE(0);
+T_rc_phrase*O2_RC_PHASE(0);
+T_error_symbols_phrase*O2_ERROR_PHASE(0);
+T_terminals_phrase*O2_T_PHASE(0);
+T_rules_phrase*O2_RULES_PHASE(0);
+
+yacco2::AST* CWEB_MARKER(0);
+yacco2::AST* GRAMMAR_TREE(0);
+RULE_ENO START_OF_RULES_ENUM(-1);
+extern STBL_T_ITEMS_type STBL_T_ITEMS;
+@** Local Yacco2 routines.\fbreak
+@ Prescan literal names within |mpost|.
+Due to a bug in the ``convertMPtoPDF'' macro,
+spaces are edited.
+@<accrue source for emit@>+=
+void prescan_mpname_for_cweb(std::string& In,std::string& Out){
+ int len = In.length();
+ for(int x=0;x<len;++x){
+ switch(In[x]){
+ case ' ':{// substitute for epsilon
+ Out += '.';
+ break;
+ }
+ case '\\':{// if esc seq on self just op
+ if(x+1 < len){// are there lookahead chars
+ if(In[x+1] == '\\'){// is it on self
+ Out += In[x];
+ ++x; // bypass the 2nd esc
+ break;
+ }
+ Out += In[x];// nope so mpost the full expression
+ break;
+ }else{
+ Out += In[x];
+ break;
+ }
+ }
+ default:{
+ Out += In[x];
+ break;
+ }
+ }
+ }
+}
+
+@*2 |Print_dump_state|.\fbreak
+@<accrue source for emit@>+=
+extern void Print_dump_state(state* State){
+ @<print dump state@>;
+}
+@ @<print dump state@>=
+const char* literal_name;
+yacco2::lrclog << std::endl;
+yacco2::lrclog << "->State: ";
+ state* cur_state = State;
+ literal_name = cur_state->entry_symbol_literal();
+
+ yacco2::lrclog << cur_state->state_no_ << " Entry: " <<
+ cur_state->vectored_into_by_elem_
+ << " Symbol: "
+ << literal_name;
+ if(cur_state->closure_state_birthing_it_!=0){
+ yacco2::lrclog << " Birthing closure state: "
+ << cur_state->closure_state_birthing_it_->state_no_;
+ }
+ yacco2::lrclog<< std::endl;
+ yacco2::lrclog << " Follow set:" << std::endl;
+ S_FOLLOW_SETS_ITER_type sfi = cur_state->state_s_follow_set_map_.begin();
+ S_FOLLOW_SETS_ITER_type sfie = cur_state->state_s_follow_set_map_.end();
+ for(;sfi!=sfie;++sfi){
+ follow_element* fe = sfi->second;
+ @=rule_def* rd = (rule_def*)AST::content(*fe->rule_def_t_);@>@/
+ yacco2::lrclog << " Rule no: " << fe->rule_no_
+ << " Name: " << rd->rule_name()->c_str() << std::endl;
+
+ FOLLOW_SETS_ITER_type i = fe->follow_set_.begin();
+ FOLLOW_SETS_ITER_type ie = fe->follow_set_.end();
+ if(i!=ie){
+ yacco2::lrclog<<" follow set:"<<endl;
+ yacco2::lrclog<<" ";
+ }
+ int nos(1);
+ for(;i!=ie;++i){
+ T_in_stbl* tit = *i;
+ ++nos;
+ if(nos > 15) {
+ yacco2::lrclog << endl;
+ yacco2::lrclog << "\t\t";
+ nos = 1;
+ }
+ yacco2::lrclog << tit->t_def()->t_name()->c_str() << " ";
+ }
+
+ TRANSITIONS_ITER_type j = fe->transitions_.begin();
+ TRANSITIONS_ITER_type je = fe->transitions_.end();
+ if(j!=je){
+ yacco2::lrclog<<" transitions"<<endl;
+ }
+ for(;j!=je;++j){
+ follow_element* tfe = *j;
+ @=rule_def* rd = (rule_def*)AST::content(*tfe->rule_def_t_);@>@/
+ yacco2::lrclog << " S" << tfe->its_state_->state_no_
+ << "x" << rd->rule_name()->c_str() << endl;
+ }
+ MERGES_ITER_type k = fe->merges_.begin();
+ MERGES_ITER_type ke = fe->merges_.end();
+ if(k!=ke){
+ yacco2::lrclog<<" merges"<<endl;
+ }
+ for(;k!=ke;++k){
+ state* s = *k;
+ yacco2::lrclog << " S" << s->state_no_ << " " ;
+ }
+ yacco2::lrclog << endl;
+ }
+ yacco2::lrclog << " Vectors:" << std::endl;
+ S_VECTORS_ITER_type svi = cur_state->state_s_vector_.begin();
+ S_VECTORS_ITER_type svie = cur_state->state_s_vector_.end();
+ for(;svi!=svie;++svi){
+ yacco2::lrclog << " Symbol no: " << svi->first;
+
+ int first_time(0);
+ S_VECTOR_ELEMS_ITER_type seli = svi->second.begin();
+ S_VECTOR_ELEMS_ITER_type selie = svi->second.end();
+ for(;seli!=selie;++seli){
+ state_element* se = *seli;
+if(first_time == 0){
+ first_time = 1;
+ CAbs_lr1_sym* sym = AST::content(*se->sr_element_);
+ yacco2::lrclog << " Symbol: ";
+ switch(sym->enumerated_id__){
+case T_Enum::T_refered_rule_:{
+@<get cast referenced rule@>;
+rule_def* rd = rr->its_rule_def();
+ yacco2::lrclog << rd->rule_name()->c_str() << endl;
+break;
+}
+case T_Enum::T_refered_T_:{
+@<get cast referenced T@>;
+T_terminal_def* td = rt->its_t_def();
+ yacco2::lrclog << td->t_name()->c_str() << endl;
+break;
+}
+default:{
+ yacco2::lrclog << sym->id() << endl;
+break;
+}
+
+ }
+
+}
+ @<dump se element@>;
+ }
+ }
+ if(cur_state->state_s_conflict_state_list_.empty() != true){
+ yacco2::lrclog << " ===>Conflict states:" << std::endl;
+ S_CONFLICT_STATES_ITER_type csi = cur_state->state_s_conflict_state_list_.begin();
+ S_CONFLICT_STATES_ITER_type csie = cur_state->state_s_conflict_state_list_.end();
+ for(;csi!=csie;++csi){
+ state* cstate = *csi;
+ yacco2::lrclog << " State no: " << cstate->state_no_ << endl;
+ }
+ }
+ yacco2::lrclog << "End of state" << std::endl;
+
+@
+@<dump se element@>=
+ CAbs_lr1_sym* sym = AST::content(*se->sr_element_);
+Voc_ENO id = sym->enumerated_id__;
+@<dump sr element@>;
+
+@
+@<dump sr element@>=
+ switch(id){
+ case T_Enum::T_refered_rule_:{
+ @<get cast referenced rule@>;
+ yacco2::lrclog << " RxSRxPos: " << rr->grammar_s_enumerate()->c_str();
+ rule_def* rd = rr->its_rule_def();
+ yacco2::lrclog << " " << rd->rule_name()->c_str();
+ break;
+ }
+ case T_Enum::T_T_eosubrule_:{
+ @<get cast referenced eosubrule@>;
+if(se->la_set_!=0){
+LA_SET_ITER_type i= se->la_set_->begin();
+LA_SET_ITER_type ie= se->la_set_->end();
+int nos(1);
+ if(i != ie){
+ yacco2::lrclog << " reduce set #: "<< se->common_la_set_idx_<< endl;
+ yacco2::lrclog << " ";
+for(;i!=ie;++i){
+T_in_stbl*tit= *i;
+++nos;
+if(nos> 15){
+yacco2::lrclog<<endl;
+yacco2::lrclog<<" ";
+nos= 1;
+}
+yacco2::lrclog<<tit->t_def()->t_name()->c_str()<<" ";
+}
+yacco2::lrclog<<endl; }else{
+ yacco2::lrclog << " reduce set #: Empty see following transition"<< endl;
+ }
+}
+ yacco2::lrclog << " RxSRxPos: " << eos->grammar_s_enumerate()->c_str() ;
+ rule_def* rd = eos->its_rule_def();
+ yacco2::lrclog << " Eos of " << rd->rule_name()->c_str();
+ break;
+ }
+ case T_Enum::T_T_null_call_thread_eosubrule_:{
+ @<get cast referenced null called thread eosubrule@>;
+if(se->la_set_!=0){
+LA_SET_ITER_type i= se->la_set_->begin();
+LA_SET_ITER_type ie= se->la_set_->end();
+int nos(1);
+ if(i != ie){
+ yacco2::lrclog << " reduce set #: "<< se->common_la_set_idx_<< endl;
+ yacco2::lrclog << " ";
+for(;i!=ie;++i){
+T_in_stbl*tit= *i;
+++nos;
+if(nos> 15){
+yacco2::lrclog<<endl;
+yacco2::lrclog<<" ";
+nos= 1;
+}
+yacco2::lrclog<<tit->t_def()->t_name()->c_str()<<" ";
+}
+yacco2::lrclog<<endl;
+ }else{
+ yacco2::lrclog << " reduce set #: Empty see following transition"<< endl;
+ }
+}
+ yacco2::lrclog << " RxSRxPos: " << eos->grammar_s_enumerate()->c_str() ;
+ rule_def* rd = eos->its_rule_def();
+ yacco2::lrclog << " Eos of " << rd->rule_name()->c_str();
+ break;
+ }
+ case T_Enum::T_T_called_thread_eosubrule_:{
+ @<get cast referenced called thread eosubrule@>;
+ if(se->la_set_!=0){
+ LA_SET_ITER_type i= se->la_set_->begin();
+ LA_SET_ITER_type ie= se->la_set_->end();
+ int nos(1);
+ if(i != ie){
+ yacco2::lrclog << " reduce set #: "<< se->common_la_set_idx_<< endl;
+ yacco2::lrclog << " ";
+ for(;i!=ie;++i){
+ T_in_stbl*tit= *i;
+ ++nos;
+ if(nos> 15){
+ yacco2::lrclog<<endl;
+ yacco2::lrclog<<" ";
+ nos= 1;
+ }
+ yacco2::lrclog<<tit->t_def()->t_name()->c_str()<<" ";
+ }
+ yacco2::lrclog<<endl;
+ }else{
+ yacco2::lrclog << " reduce set #: Empty see following transition"<< endl;
+ }
+ }
+ yacco2::lrclog << " RxSRxPos: " << eos->grammar_s_enumerate()->c_str() ;
+ rule_def* rd = eos->its_rule_def();
+ yacco2::lrclog << " Eos of " << rd->rule_name()->c_str();
+ break;
+ }
+ case T_Enum::T_refered_T_:{
+ @<get cast referenced T@>;
+ yacco2::lrclog << " RxSRxPos: " << rt->grammar_s_enumerate()->c_str();
+ T_terminal_def* td = rt->its_t_def();
+ yacco2::lrclog << " " << td->t_name()->c_str();
+ break;
+ }
+ }
+ yacco2::lrclog << " Closured S" << se->closure_state_->state_no_;
+ yacco2::lrclog << " CS-gening-it S" << se->closured_state_gening_it_->state_no_;
+ if(se->closure_state_->state_no_ != se->closured_state_gening_it_->state_no_){
+ yacco2::lrclog << " due to rt bnd " ;
+ }
+ if(se->goto_state_ != 0){
+ yacco2::lrclog << " goto S" << se->goto_state_->state_no_;
+ }
+ if(se->reduced_state_ != 0){
+ yacco2::lrclog << " reduced S" << se->reduced_state_->state_no_;
+ yacco2::lrclog << std::endl;
+ }else{
+ yacco2::lrclog << " reduced S" << "????";
+ yacco2::lrclog << std::endl;
+ }
+@
+@<get subrule's referenced rule in follow string@>=
+ @=refered_rule* rr = (refered_rule*)AST::content(*se->sr_element_);@>@/
+@
+@<get cast referenced rule@>=
+ @=refered_rule* rr = (refered_rule*)sym;@>@/
+@
+@<get cast referenced T@>=
+ @=refered_T* rt = (refered_T*)sym;@>@/
+
+@
+@<get cast referenced eosubrule@>=
+ @=T_eosubrule* eos = (T_eosubrule*)sym;@>@/
+@
+@<get cast referenced null called thread eosubrule@>=
+ @=T_null_call_thread_eosubrule* eos = (T_null_call_thread_eosubrule*)sym;@>@/
+@
+@<get cast referenced called thread eosubrule@>=
+ @=T_called_thread_eosubrule* eos = (T_called_thread_eosubrule*)sym;@>@/
+
+
+@*2 |process_fsm_phrase|.\fbreak
+This process demonstrates quasi
+recursive descent and bottom-up grammar parsing.
+There is no recursion taking place: just a single call to get things going.
+The procedure is a packaging agent
+that houses a monolithic grammar |Cfsm_phrase| which then uses
+parallel parsing threads to do its deeds.
+The grammars parse a stream of characters which get turned into the
+appropriate tokens.
+This is an inbetween style of parsing of the lexical and syntax phrases interweaving
+ together.
+This is due to the c++ syntax directed code being just a stream of characters
+where a lookahead in the character stream for `***' is done to close the code directive.
+Of course,
+this code directive is parsed in parallel for literal and comment tokens which can subsume this.
+The reason for this skip across the characters to end
+the c++ code approach was laziness!
+I did not want to develop a c++ suite of grammars to deal with the syntax directed code.
+The risk in this current approach is to misprogram the end-of-code indicator `***'.
+This could lead to grammar stream overrun (end-of-file reached) while thinking that one is still
+in the syntax directed code stream.
+It also passes the buck to the c++ compiler to deal
+with any c++ syntax directed code errors.
+At least this run-away type error is guarded against in the grammars.
+
+The other potential problem is the perverse pointer to a pointer to a pointer buried
+in the syntax directed code: ``***''. I thought of this situation and how to resolve
+it by use of a different character set: for example 3 pound signs.
+I nixed it as I felt it ulgy in aesthetics and as a highlighter of code boundaries.
+{\bf So heed the warnin}.
+
+The other interesting part to this family of grammars is in the use
+of the wild card facility to trap errors and how the subordinate grammars
+issue errors as normal tokens.
+This allows for a cleaner way to
+deal with error handling within a grammar's subrule phrase and
+associated syntax directed code.
+This is achieved by
+ writing explicit production subrules using these error terminals
+or to program the wild card catch all facility.
+Take a look in the grammars at how \wildcard{} is used.
+
+The last note is how the newly generated tokens are dealt with when an error occurs.
+This is rather easy, the holding token |T_fsm_phrase| is deleted.
+It contains all the important tokens created in its parse.
+Hence when there is a ruptured grammar sequence, the accumulated tokens
+are deleted by |T_fsm_phrase| destructor.
+Throw away tokens like white space and comments that are part of the
+fsm phrase are
+auto deleted when popped from the parse stack.
+Comments and white space within the syntax directed code
+are kept.
+This is why the output token container's contents are not deleted.
+There is no |yacco2::Delete_tokens(...);| statement in this procedure.
+The holding token is deposited in the passed |T_fsm| parameter.
+|O2_FSM_PHASE| holds the |T_fsm_phrase| terminal.
+Please see its family of grammars:\fbreak
+ \ptindent{|fsm_phrase|.lex - monolithic grammar}
+ \ptindent{|fsm_phrase_th|.lex - parse fsm phrase}
+ \ptindent{|fsm_attributes|.lex - fsm keywords recognizer}
+ \ptindent{|fsm_class_directives|.lex - fsm syntax code directives}
+ \ptindent{|fsm_class_phrase_th|.lex - parse fsm-class phrase containing c++ code snippets}
+
+ @^\PB{fsm\_phrase.lex}@>
+ @^\PB{fsm\_phrase\_th.lex}@>
+ @^\PB{fsm\_attributes.lex}@>
+ @^\PB{fsm\_class\_directives.lex}@>
+ @^\PB{fsm\_class\_phrase\_th.lex}@>
+
+
+@<accrue source for emit@>+=
+bool
+process_fsm_phrase@/
+ (yacco2::Parser& Calling_parser@/
+ ,NS_yacco2_terminals::T_fsm& Phrase_to_parse@/
+ ,yacco2::CAbs_lr1_sym** Cont_tok@/
+ ,yacco2::INT* Cont_pos)@/
+{
+ using namespace NS_yacco2_terminals;
+ using namespace yacco2;
+ TOKEN_GAGGLE op1;
+ yacco2::INT start_pos = Calling_parser.current_token_pos__;
+ token_container_type* ip1 = Calling_parser.token_supplier();
+ TOKEN_GAGGLE*er1= (TOKEN_GAGGLE*)Calling_parser.error_queue();
+
+ using namespace NS_fsm_phrase;
+ Cfsm_phrase fsm;
+ Parser p1(fsm,ip1,&op1,start_pos,er1);
+ p1.parse();
+
+ if(er1->empty() == YES){
+ *Cont_pos = p1.current_token_pos__;
+ *Cont_tok = p1.current_token();
+ TOKEN_GAGGLE_ITER i = op1.begin();
+ CAbs_lr1_sym* sym = *i;
+ @=T_fsm_phrase* t = (T_fsm_phrase*)sym@>;
+ Phrase_to_parse.fsm_phrase(t);
+ if(O2_FSM_PHASE != 0){
+ CAbs_lr1_sym* sym = new Err_already_processed_fsm_phase;
+ sym->set_rc(Phrase_to_parse);
+ p1.add_token_to_error_queue(*sym);
+ goto error_exit;
+ }
+ O2_FSM_PHASE= t;
+ AST* gt = t->phrase_tree();
+ BUILD_GRAMMAR_TREE(*gt);
+ return Success;
+ }
+error_exit:
+ lrclog << "error in fsm-phrase" << std::endl;
+ return Failure;// error placed in |error_queue| by called thread
+}
+
+@*2 Output macros and banner.
+@<accrue source for emit@>+=
+void output_cweb_macros_and_banner(
+NS_mpost_output::Cmpost_output* Fsm
+,std::ofstream& Ofile
+,yacco2::KCHARP Banner
+,const char* Date
+,string* Grammar_name
+,string* Name_space
+,int No_t){
+using namespace NS_mpost_output;
+ KCHARP macros =
+ "\\input%s \"supp-pdf\"\n"@/
+ "\\input \"/usr/local/yacco2/diagrams/o2mac.tex\"\n";
+ int x = sprintf(Fsm->big_buf_,macros," ");
+ Ofile.write(Fsm->big_buf_,x);
+ KCHARP banner =
+ "\\DOCtitle{%s}{%s}%\n"
+ "{%s}{%i}\n";
+ char fname[Max_cweb_item_size];
+ XLATE_SYMBOLS_FOR_cweave(Grammar_name->c_str(),fname);
+ char ns_name[Max_cweb_item_size];
+ XLATE_SYMBOLS_FOR_cweave(Name_space->c_str(),ns_name);
+
+ x = sprintf(Fsm->big_buf_,banner
+ ,Banner
+ ,fname,ns_name,No_t);
+ Ofile.write(Fsm->big_buf_,x);
+}
+
+@*2 |process_parallel_parser_phrase|.\fbreak
+This parses the parallel component of a grammar.
+It supplies the threading components and lookahead expression for a threaded grammar.
+One thing of note, the lookahead expression is held as a character stream
+which gets parsed after the complete grammar has been recognized.
+The reason for this is in the lookahead expression's potential
+ use of productions (rules).
+Rules are packaging agents to haul in terminals as elements for the first set.
+As the production name used has not yet been defined,
+one must wait until
+the complete production section has been parsed
+before obtaining its FIRST SET of terminals for
+the thread's lookahead expression.
+Only then can the lookahead character stream be parsed in
+terms of ``rule-in-stbl'' and ``T-in-stbl'' tokens. From
+these tokens, the expression set will be calculated
+from their terminals.
+The production declaration is not restricted to use within
+the grammar's grammatical phrases though a check will be done with an appropriate warning
+if the production has not been used somewhere within the grammar or
+parallel parser lookahead expression.
+
+The lookahead expression uses addition and subtraction of
+terminal terms to arrive at the lookahead set. The |eolr|
+terminal has the meaning of ``use all terminals defined including self''.
+The advantage is two fold: its supplies all the terminals thus
+shrinking substantially the lookahead set's size --- only one
+terminal in its set, and two it eases the grammar writer's fingers
+ in that the expression is much shorter to express.
+|O2_PP_PHASE| holds the |T_parallel_parser_phrase|
+terminal.
+
+Its family of grammars are:\fbreak
+ \ptindent{|parallel_parser_phrase|.lex - monolithic grammar}
+ \ptindent{|parallel_parser_phrase_th|.lex - parse parallel parser construct}
+ \ptindent{|parallel_parser_attributes|.lex - parallel parser keywords recognizer}
+
+ @^\PB{parallel\_parser\_phrase.lex}@>
+ @^\PB{parallel\_parser\_phrase\_th.lex}@>
+ @^\PB{parallel\_parser\_attributes.lex}@>
+
+@<accrue source for emit@>+=
+bool
+process_parallel_parser_phrase@/
+ (yacco2::Parser& Calling_parser@/
+ ,NS_yacco2_terminals::T_parallel_parser& Phrase_to_parse@/
+ ,yacco2::CAbs_lr1_sym** Cont_tok@/
+ ,yacco2::INT* Cont_pos)@/
+{
+ using namespace NS_yacco2_terminals;
+ using namespace yacco2;
+
+ using namespace NS_parallel_parser_phrase;
+ TOKEN_GAGGLE op1;
+ yacco2::INT start_pos = Calling_parser.current_token_pos__;
+ token_container_type* ip1 = Calling_parser.token_supplier();
+ TOKEN_GAGGLE*er1= (TOKEN_GAGGLE*)Calling_parser.error_queue();
+ Cparallel_parser_phrase pparser;
+ Parser p1(pparser,ip1,&op1,start_pos,er1);
+ p1.parse();
+ if(er1->empty() == YES){
+ *Cont_pos = p1.current_token_pos__;
+ *Cont_tok = p1.current_token();
+ TOKEN_GAGGLE_ITER i = op1.begin();
+ CAbs_lr1_sym* sym = *i;
+ @=T_parallel_parser_phrase* t = (T_parallel_parser_phrase*)sym@>;
+ Phrase_to_parse.parallel_parser_phrase(t);
+ if(O2_PP_PHASE != 0){
+ CAbs_lr1_sym* sym = new Err_already_processed_pp_phase;
+ sym->set_rc(Phrase_to_parse);
+ p1.add_token_to_error_queue(*sym);
+ goto error_exit;
+ }
+ O2_PP_PHASE= t;
+ AST* gt = t->phrase_tree();
+ BUILD_GRAMMAR_TREE(*gt);
+ return Success;
+ }
+error_exit:
+ lrclog << "error in parallel-parser-phrase" << std::endl;
+ return Failure;// error placed in |error_queue| by called thread
+}
+
+
+@*2 |process_T_enum_phrase|.\fbreak
+Its use is in housing all the enumerated
+terminals from the generated alphabets and possible user included constant definitions
+that are needed outside the grammars. These span the spectrums of errors, raw characters,
+LR constants, and finally the pedestrian terminals.
+
+The enumeration is lr k starting at 0 $<$ raw characters $<$ error $<$ regular terminals.
+As raw chars and ``lr k'' terminals are constant, the other two
+alphabets grow outwards in the right direction as new members are defined.
+|O2_T_ENUM_PHASE| holds the |T_enum_phrase| terminal.
+
+Its family of grammars are:\fbreak
+ \ptindent{|T_enum_phrase|.lex - monolithic grammar}
+ \ptindent{|T_enum_phrase_th|.lex - parse |T_enumeration| construct}
+ \ptindent{|T_enum_attributes|.lex - |T_enumeration| keywords recognizer}
+
+ @^\PB{T\_enum\_phrase.lex}@>
+ @^\PB{T\_enum\_phrase\_th.lex}@>
+ @^\PB{T\_enum\_attributes.lex}@>
+
+@<accrue source for emit@>+=
+bool
+process_T_enum_phrase@/
+ (yacco2::Parser& Calling_parser@/
+ ,NS_yacco2_terminals::T_enumeration& Phrase_to_parse@/
+ ,yacco2::CAbs_lr1_sym** Cont_tok@/
+ ,yacco2::INT* Cont_pos)@/
+{
+ using namespace NS_yacco2_terminals;
+ using namespace yacco2;
+
+ using namespace NS_T_enum_phrase;
+ TOKEN_GAGGLE op1;
+ yacco2::INT start_pos = Calling_parser.current_token_pos__;
+ token_container_type* ip1 = Calling_parser.token_supplier();
+ TOKEN_GAGGLE*er1= (TOKEN_GAGGLE*)Calling_parser.error_queue();
+ CT_enum_phrase enum_ph;
+ Parser p1(enum_ph,ip1,&op1,start_pos,er1);
+ p1.parse();
+ if(er1->empty() == YES){
+ *Cont_pos = p1.current_token_pos__;
+ *Cont_tok = p1.current_token();
+ TOKEN_GAGGLE_ITER i = op1.begin();
+ CAbs_lr1_sym* sym = *i;
+ @=T_enum_phrase* t = (T_enum_phrase*)sym@>;
+ Phrase_to_parse.enum_phrase(t);
+ if(O2_T_ENUM_PHASE != 0){
+ CAbs_lr1_sym* sym = new Err_already_processed_T_enum_phase;
+ sym->set_rc(Phrase_to_parse);
+ p1.add_token_to_error_queue(*sym);
+ goto error_exit;
+ }
+ O2_T_ENUM_PHASE= t;
+ AST* gt = t->phrase_tree();
+ BUILD_GRAMMAR_TREE(*gt);
+ return Success;
+ }
+error_exit:
+ lrclog << "error in t-enum-phrase" << std::endl;
+ return Failure;// error placed in |error_queue| by called thread
+}
+
+@*2 |process_error_symbols_phrase|.\fbreak
+This handles the error
+alphabet introduced to the grammar.
+It is normally placed into its own file and brought into the grammar
+by way of the grammar's include file facility.
+It was designed this way to segregate the terminal symbols
+ both in definition and
+own namespace enclosure.
+The same holds for the other terminal types: raw characters, LR constants,
+and the regular terminals.
+|O2_ERROR_PHASE| holds the |T_error_symbols_phrase| terminal.
+
+Its family of grammars are:\fbreak
+ \ptindent{|err_symbols_ph|.lex - monolithic grammar}
+ \ptindent{|err_symbols_ph_th|.lex - parse error symbols construct}
+ \ptindent{|error_symbols_attributes|.lex - error symbols keywords recognizer}
+
+ @^\PB{error\_symbols\_phrase.lex}@>
+ @^\PB{error\_symbols\_phrase\_th.lex}@>
+ @^\PB{error\_symbols\_attributes.lex}@>
+
+@<accrue source for emit@>+=
+bool
+process_error_symbols_phrase@/
+ (yacco2::Parser& Calling_parser@/
+ ,NS_yacco2_terminals::T_error_symbols& Phrase_to_parse@/
+ ,yacco2::CAbs_lr1_sym** Cont_tok@/
+ ,yacco2::INT* Cont_pos)@/
+{
+ using namespace NS_yacco2_terminals;
+ using namespace yacco2;
+
+ using namespace NS_err_symbols_ph;
+ TOKEN_GAGGLE op1;
+ yacco2::INT start_pos = Calling_parser.current_token_pos__;
+ token_container_type* ip1 = Calling_parser.token_supplier();
+ TOKEN_GAGGLE*er1= (TOKEN_GAGGLE*)Calling_parser.error_queue();
+ Cerr_symbols_ph err_ph;
+ Parser p1(err_ph,ip1,&op1,start_pos,er1);
+ p1.parse();
+ if(er1->empty() == YES){
+ *Cont_pos = p1.current_token_pos__;
+ *Cont_tok = p1.current_token();
+ TOKEN_GAGGLE_ITER i = op1.begin();
+ CAbs_lr1_sym* sym = *i;
+ @=T_error_symbols_phrase* t = (T_error_symbols_phrase*)sym@>;
+ Phrase_to_parse.error_symbols_phrase(t);
+ if(O2_ERROR_PHASE != 0){
+ CAbs_lr1_sym* sym = new Err_already_processed_error_phase;
+ sym->set_rc(Phrase_to_parse);
+ p1.add_token_to_error_queue(*sym);
+ goto error_exit;
+ }
+ O2_ERROR_PHASE= t;
+ AST* gt = t->phrase_tree();
+ BUILD_GRAMMAR_TREE(*gt);
+ return Success;
+ }
+error_exit:
+ lrclog << "error in error-symbols-phrase" << std::endl;
+ return Failure;// error placed in |error_queue| by called thread
+}
+
+
+@*2 |process_rc_phrase|.\fbreak
+This handles the raw character terminals.
+This is the alphabet of raw character terminals introduced to the grammar.
+It is normally placed into its own file and brought into the grammar
+by way of the grammar's include file facility.
+It was designed this way to segregate the terminal symbols
+ both in definition and
+own namespace enclosure.
+|O2_RC_PHASE| holds the |T_rc_phrase| terminal.
+
+Its family of grammars are:\fbreak
+ \ptindent{|rc_phrase|.lex - monolithic grammar}
+ \ptindent{|rc_phrase_th|.lex - parse error symbols construct}
+ \ptindent{|rc_attributes|.lex - raw character symbols keywords recognizer}
+
+ @^\PB{rc\_symbols\_phrase.lex}@>
+ @^\PB{rc\_phrase\_th.lex}@>
+ @^\PB{rc\_attributes.lex}@>
+
+@<accrue source for emit@>+=
+bool
+process_rc_phrase@/
+ (yacco2::Parser& Calling_parser@/
+ ,NS_yacco2_terminals::T_raw_characters& Phrase_to_parse@/
+ ,yacco2::CAbs_lr1_sym** Cont_tok@/
+ ,yacco2::INT* Cont_pos)@/
+{
+ using namespace NS_yacco2_terminals;
+ using namespace yacco2;
+
+ using namespace NS_rc_phrase;
+ TOKEN_GAGGLE op1;
+ yacco2::INT start_pos = Calling_parser.current_token_pos__;
+ token_container_type* ip1 = Calling_parser.token_supplier();
+ TOKEN_GAGGLE*er1= (TOKEN_GAGGLE*)Calling_parser.error_queue();
+ Crc_phrase rc_ph;
+ Parser p1(rc_ph,ip1,&op1,start_pos,er1);
+ p1.parse();
+ if(er1->empty() == YES){
+ *Cont_pos = p1.current_token_pos__;
+ *Cont_tok = p1.current_token();
+ TOKEN_GAGGLE_ITER i = op1.begin();
+ CAbs_lr1_sym* sym = *i;
+ @=T_rc_phrase* t = (T_rc_phrase*)sym@>;
+ Phrase_to_parse.rc_phrase(t);
+ if(O2_RC_PHASE != 0){
+ CAbs_lr1_sym* sym = new Err_already_processed_rc_phase;
+ sym->set_rc(Phrase_to_parse);
+ p1.add_token_to_error_queue(*sym);
+ goto error_exit;
+ }
+ O2_RC_PHASE= t;
+ AST* gt = t->phrase_tree();
+ BUILD_GRAMMAR_TREE(*gt);
+ return Success;
+ }
+error_exit:
+ lrclog << "error in rc-phrase" << std::endl;
+ return Failure;// error placed in |error_queue| by called thread
+}
+
+
+@*2 |process_lr1_k_phrase|.\fbreak
+This handles the |lr_k|
+of constants used throughout the grammars:
+for example, end-of-grammar, parallel operators and the like.
+It is normally placed into its own file and brought into the grammar
+by way of the grammar's include file facility.
+It was designed this way to segregate the terminal symbols
+ both in definition and own namespace enclosure.
+|O2_LRK_PHASE| holds the |T_lr1_k_phrase| terminal.
+
+Its family of grammars are:\fbreak
+ \ptindent{|lr1_k_phrase|.lex - monolithic grammar}
+ \ptindent{|lr1_k_phrase_th|.lex - parse lr1 k symbols construct}
+ \ptindent{|lr1_k_attributes|.lex - lr1 k symbols keywords recognizer}
+
+ @^\PB{lr1\_k\_phrase.lex}@>
+ @^\PB{lr1\_k\_phrase\_th.lex}@>
+ @^\PB{lr1\_k\_attributes.lex}@>
+
+@<accrue source for emit@>+=
+bool
+process_lr1_k_phrase@/
+ (yacco2::Parser& Calling_parser@/
+ ,NS_yacco2_terminals::T_lr1_constant_symbols& Phrase_to_parse@/
+ ,yacco2::CAbs_lr1_sym** Cont_tok@/
+ ,yacco2::INT* Cont_pos)@/
+{
+ using namespace NS_yacco2_terminals;
+ using namespace yacco2;
+
+ using namespace NS_lr1_k_phrase;
+ TOKEN_GAGGLE op1;
+ yacco2::INT start_pos = Calling_parser.current_token_pos__;
+ token_container_type* ip1 = Calling_parser.token_supplier();
+ TOKEN_GAGGLE*er1= (TOKEN_GAGGLE*)Calling_parser.error_queue();
+ Clr1_k_phrase lr_ph;
+ Parser p1(lr_ph,ip1,&op1,start_pos,er1);
+ p1.parse();
+ if(er1->empty() == YES){
+ *Cont_pos = p1.current_token_pos__;
+ *Cont_tok = p1.current_token();
+ TOKEN_GAGGLE_ITER i = op1.begin();
+ CAbs_lr1_sym* sym = *i;
+ @=T_lr1_k_phrase* t = (T_lr1_k_phrase*)sym@>;
+ Phrase_to_parse.lr1_k_phrase(t);
+ if(O2_LRK_PHASE != 0){
+ CAbs_lr1_sym* sym = new Err_already_processed_lrk_phase;
+ sym->set_rc(Phrase_to_parse);
+ p1.add_token_to_error_queue(*sym);
+ goto error_exit;
+ }
+ O2_LRK_PHASE= t;
+ AST* gt = t->phrase_tree();
+ BUILD_GRAMMAR_TREE(*gt);
+ return Success;
+ }
+error_exit:
+ lrclog << "error in lr1-k-phrase" << std::endl;
+ return Failure;// error placed in |error_queue| by called thread
+}
+
+
+@*2 |process_terminals_phrase|.\fbreak
+This handles the
+regular terminals alphabet introduced to the grammar.
+It is normally placed into its own file and brought into the grammar
+by way of the grammar's include file facility.
+It was designed this way to segregate the terminal symbols
+ both in definition and
+own namespace enclosure.
+This is the grammar writer's stable of terminals used by the grammars to process
+the specific language.
+|O2_T_PHASE| holds the |T_terminals_phrase| terminal.
+
+Its family of grammars are:\fbreak
+ \ptindent{|terminals_phrase|.lex - monolithic grammar}
+ \ptindent{|terminals_phrase_th|.lex - parse terminal symbols construct}
+ \ptindent{|terminals_attributes|.lex - terminal symbols keywords recognizer}
+
+ @^\PB{terminals\_phrase.lex}@>
+ @^\PB{terminals\_phrase\_th.lex}@>
+ @^\PB{terminals\_attributes.lex}@>
+
+@<accrue source for emit@>+=
+bool
+process_terminals_phrase@/
+ (yacco2::Parser& Calling_parser@/
+ ,NS_yacco2_terminals::T_terminals& Phrase_to_parse@/
+ ,yacco2::CAbs_lr1_sym** Cont_tok@/
+ ,yacco2::INT* Cont_pos)@/
+{
+ using namespace NS_yacco2_terminals;
+ using namespace yacco2;
+
+ using namespace NS_terminals_phrase;
+ TOKEN_GAGGLE op1;
+ yacco2::INT start_pos = Calling_parser.current_token_pos__;
+ token_container_type* ip1 = Calling_parser.token_supplier();
+ TOKEN_GAGGLE*er1= (TOKEN_GAGGLE*)Calling_parser.error_queue();
+ Cterminals_phrase term_ph;
+ Parser p1(term_ph,ip1,&op1,start_pos,er1);
+ p1.parse();
+ if(er1->empty() == YES){
+ *Cont_pos = p1.current_token_pos__;
+ *Cont_tok = p1.current_token();
+ TOKEN_GAGGLE_ITER i = op1.begin();
+ CAbs_lr1_sym* sym = *i;
+ @=T_terminals_phrase* t = (T_terminals_phrase*)sym@>;
+ Phrase_to_parse.terminals_phrase(t);
+ if(O2_T_PHASE != 0){
+ CAbs_lr1_sym* sym = new Err_already_processed_T_phase;
+ sym->set_rc(Phrase_to_parse);
+ p1.add_token_to_error_queue(*sym);
+ goto error_exit;
+ }
+ O2_T_PHASE= t;
+ AST* gt = t->phrase_tree();
+ BUILD_GRAMMAR_TREE(*gt);
+ return Success;
+ }
+error_exit:
+ lrclog << "error in terminals-phrase" << std::endl;
+ return Failure;// error placed in |error_queue| by called thread
+}
+
+
+@*2 |process_rules_phrase|.\fbreak
+This parses the rule's alphabet of the grammar.
+In grammar parlance, this is the |productions| and |rules| rolled into one.
+The rule names are local to the grammar. They do not
+use global space allowing the grammar writer to assign meaningful rule names
+of reuse patterns expressed throughout each grammar.
+
+The `fsm' structure of the grammar has a namespace property that
+allows each grammar to be mixed in global space.
+|O2_RULES_PHASE| holds the |T_rules_phrase| terminal.
+
+Why the enumeration of the Terminal alphabet before processing rules?
+I wanted it as a discrete process
+rather than distributed throughout pieces of grammars,
+ and to improve rule parsing, and i
+reference the parallel operator terminal ``\parallelop'' \ specifically for clarity in
+the sub-rule parsing.
+How so clarity?
+I felt dividing a grammar's productions into thread expressions or
+standard symbol strings made the subrule grammar more
+readable.
+It sharpened the distinction between the 2 types of grammars: monolithic and thread.
+Due to this, the \parallelop was explicitly programmed
+and its presence tested for
+using a fixed enumeration value rather
+than its literal string name.
+
+
+Its family of grammars are:\fbreak
+ \ptindent{|rules_phrase|.lex - monolithic grammar}
+ \ptindent{|rules_phrase_th|.lex - parse terminal symbols construct}
+ \ptindent{|terminals_attributes|.lex - terminal symbols keywords recognizer}
+ \ptindent{|rule_def_phrase|.lex - parse rule's definition construct}
+ \ptindent{|rule_lhs_phrase|.lex - parse rule's lhs construct}
+ \ptindent{|parallel_monitor_phrase|.lex - parse rule's arbitration construct}
+ \ptindent{|subrules_phrase|.lex - parse subrule's definition construct}
+ \ptindent{|subrule_def|.lex - parse a subrule's rhs expression}
+
+ @^\PB{terminals\_phrase.lex}@>
+ @^\PB{terminals\_phrase\_th.lex}@>
+ @^\PB{terminals\_attributes.lex}@>
+
+
+@*4 Enumerate Terminal alphabet.\fbreak
+Each terminal phase contains its mapped symbols and ``create order'' list.
+The implied enumeration starts with the lrk symbols followed by
+raw characters, errors, and finally the terminals.
+The rank order is 0..n-1 where n is the total number of terminals in the alphabet.
+The ``create order'' list provides the symbol order.
+As i rant on relative zero from previous writings regarding vector access etc,
+why not here regarding the rank assignment from 0?
+Modulo arithmetic is used on
+the register's number of bits to calculate a specific element in the first set:
+a divisional way of doing things.
+
+To traverse the terminal symbols, |O2_xxx_PHASE|
+per phases.
+Each specific terminal phrase will
+be accessed and its symbols traversed by ``create order'' to assign their
+appropriate enumerate value.
+Each phase derives from the same
+base class :\fbreak
+\ptindent{0 - |O2_FSM_PHASE| : |T_fsm_phrase|*}
+\ptindent{1 - |O2_PP_PHASE| : |T_parallel_parser_phrase|*}
+\ptindent{2 - |O2_T_ENUM_PHASE| : |T_enum_phrase|*}
+\ptindent{3 - |O2_LRK_PHASE| : |T_lr1_k_phrase|*}
+\ptindent{4 - |O2_RC_PHASE| : |T_rc_phrase|*}
+\ptindent{5 - |O2_ERROR_PHASE| : |T_error_symbols_phrase|*}
+\ptindent{6 - |O2_T_PHASE| : |T_terminals_phrase|*}
+\ptindent{7 - |O2_RULES_PHASE| : |T_rules_phrase|*}
+
+
+Why use a grammar anyway when straight procedure calls would do the trick?
+ Good question as the token stream is not even being consumed!
+ This is my experiment in using grammars as a descriptor of software events ---
+ not as efficient as in procedure calls but the intentions are explicit.
+ Is not the procedure call explicit in intent? Yes it is within a
+ no token consumption context.
+ So, does this grammar approach look like an inefficient
+ double indirection to achieve the same result. Yup. But i also use a sentence
+ approach within the grammar of right-hand-side left-hand-side recognition
+ to calculate the overall total of symbols enumerated. This processing model
+ is a mainstay to pre-post event evaluation. Also, my grammars have automatic
+ flow control tracing facility that comes out-of-the-box.
+
+ Now consider when other events are surrounding a software process. Grammars
+ are explicit finite state automata with ambiguity verification. I could have
+ created behavioural terminals to explicitly express execution by the
+ ``shift operation'' but this is overkill
+ in this situation. For now this grammar has implicit behaviours using epsilon.
+
+ It is interesting to reflect on how epsilon with
+ no terminals can be used as an operation sequencer.
+ Only the ``error'' container is passed to the parser.
+ The i/o token containers are not supplied.
+
+@<enumerate Terminal alphabet@>=
+lrclog << "Enumerate T alphabet" << endl;
+ using namespace NS_enumerate_T_alphabet;
+ Cenumerate_T_alphabet enum_syms_fsm;
+ Parser enum_syms(enum_syms_fsm,0,0,0,Calling_parser.error_queue(),0,0);
+ enum_syms.parse();
+ if(Calling_parser.error_queue()->empty() != true) return Failure;
+
+@*4 Enumerate Rule alphabet.\fbreak
+Enumeration starts after the errors vocabulary.
+The |START_OF_RULES_ENUM| global now registers the rules' enumerate
+ boundary. To speed up the LR1 compatibilty check,
+ this boundary becomes the cut off point in shift / reduce evaluations.
+ |eosubrule| enumerate is excluded in the Terminals shift set of
+ the state as it represents the
+ ``end-of-subrule'' string condition: reduce.\fbreak
+ \fbreak
+ To speed up the pushdown automata, rules are recyclesd for re-use.
+ To do this each rule needs a rule no relative to its create order starting from 1.
+@<enumerate Rule alphabet@>=
+lrclog << "Enumerate Rule alphabet" << endl;
+int Rules_enum = START_OF_RULES_ENUM;
+RULE_DEFS_TBL_ITER_type ri = t->crt_order()->begin();
+RULE_DEFS_TBL_ITER_type rie = t->crt_order()->end();
+int rule_no(0);
+for(;ri != rie;++ri,++Rules_enum){
+ rule_def* rd = *ri;
+ ++rule_no;
+ rd->enum_id(Rules_enum);
+ rd->rule_no(rule_no);
+}
+
+@*3 Driver of |process_rules_phrase|.
+@<accrue source for emit@>+=
+bool
+process_rules_phrase@/
+ (yacco2::Parser& Calling_parser@/
+ ,NS_yacco2_terminals::T_rules& Phrase_to_parse@/
+ ,yacco2::CAbs_lr1_sym** Cont_tok@/
+ ,yacco2::INT* Cont_pos)@/
+{
+ @<enumerate Terminal alphabet@>;
+ using namespace NS_yacco2_terminals;
+ using namespace yacco2;
+
+ using namespace NS_rules_phrase;
+ TOKEN_GAGGLE op1;
+ yacco2::INT start_pos = Calling_parser.current_token_pos__;
+ token_container_type* ip1 = Calling_parser.token_supplier();
+ TOKEN_GAGGLE*er1= (TOKEN_GAGGLE*)Calling_parser.error_queue();
+ Crules_phrase rule_ph;
+ Parser p1(rule_ph,ip1,&op1,start_pos,er1);
+ p1.parse();
+ if(er1->empty() == YES){
+ *Cont_pos = p1.current_token_pos__;
+ *Cont_tok = p1.current_token();
+ TOKEN_GAGGLE_ITER i = op1.begin();
+ CAbs_lr1_sym* sym = *i;
+ @=T_rules_phrase* t = (T_rules_phrase*)sym@>;
+ Phrase_to_parse.rules_phrase(t);
+ if(O2_RULES_PHASE != 0){
+ CAbs_lr1_sym* sym = new Err_already_processed_rule_phase;
+ sym->set_rc(Phrase_to_parse);
+ p1.add_token_to_error_queue(*sym);
+ goto error_exit;
+ }
+ O2_RULES_PHASE= t;
+ AST* gt = t->phrase_tree();
+ BUILD_GRAMMAR_TREE(*gt);
+ @<enumerate Rule alphabet@>;
+ return Success;
+ }
+error_exit:
+ lrclog << "error in rules-phrase" << std::endl;
+ return Failure;// error placed in |error_queue| by called thread
+}
+
+@** External routines.
+
+@*2 Yacco2 Parse command line: |YACCO2_PARSE_CMD_LINE|.\fbreak
+The parameters have been extracted from the program
+run environment and placed into Yacco2's holding file which is hardwired
+by |Yacco2_holding_file| definition.
+Now it's time to parse them for kosherness.
+
+Constraints:\fbreak
+ \ptindent{ip1-4: switches used to compile grammar}
+ \ptindent{ip8: To compile grammar name extracted from parameters}
+ \ptindent{ip9: Error token container for generated error token}
+
+Errors:\fbreak
+\ptindent{1) bad filename}
+\ptindent{2) parameters errors}
+
+@<accrue source for emit@>+=
+extern void
+YACCO2_PARSE_CMD_LINE@/
+ (yacco2::CHAR& T_sw,yacco2::CHAR& ERR_sw@/
+ ,yacco2::CHAR& PRT_sw@/
+ ,std::string& Grammar_to_compile@/
+ ,yacco2::TOKEN_GAGGLE& Error_queue)@/
+{
+ using namespace NS_yacco2_err_symbols;
+ using namespace yacco2;
+ tok_can<std::ifstream> Cmd1_tokens(Yacco2_holding_file);
+ if(Cmd1_tokens.file_ok() == NO){
+ yacco2::Delete_tokens(Cmd1_tokens.container());
+ CAbs_lr1_sym* sym = new Err_bad_filename(Yacco2_holding_file);
+ sym->set_external_file_id(1);
+ sym->set_line_no(1);
+ sym->set_pos_in_line(1);
+ Error_queue.push_back(*sym);
+ return;
+ }
+
+ using namespace NS_o2_lcl_opts;
+ TOKEN_GAGGLE lcl_options_tokens;
+ Co2_lcl_opts opts_fsm;
+ Parser options(opts_fsm,&Cmd1_tokens,&lcl_options_tokens,0,&Error_queue,0,0);
+ options.parse();
+ yacco2::Delete_tokens(Cmd1_tokens.container());
+ if(Error_queue.empty() != YES) return;
+ T_sw = opts_fsm.t_sw_;ERR_sw = opts_fsm.err_sw_;
+ PRT_sw = opts_fsm.prt_sw_;
+ Grammar_to_compile += opts_fsm.file_to_compile_;
+}
+
+@*2 |BUILD_GRAMMAR_TREE| while parsing grammar.\fbreak
+Builds a single level tree having the following forests:
+all the parse phrases: for example |FSM_PHASE| etc.
+With the introduction of |cweb| comments,
+a |cweb| holding queue of comments is kept
+so that the comments can placed into the following phrase.
+Why?
+For example, a series of |cweb| comments
+could act as an introduction before the ``fsm'' phrase
+is detected by the lexical grammar |pass3| by its ``fsm'' keyword.
+So what do u do with the orphaned |cweb| comments recognized
+by |pass3| before the ``fsm'' phrase parse?
+Well call |BUILD_GRAMMAR_TREE| and
+discriminate what is passed to it.
+If it's a |cweb| comment put it into a holding list.
+When |BUILD_GRAMMAR_TREE| is called by a phrase process,
+only then graft it into the passed phrase terminal.
+The only exception to this is |cweb| comments
+after the end of the grammar's phrases have been parsed.
+This comment is then placed as the last node in the grammar tree.
+@<accrue source for emit@>+=
+extern void
+BUILD_GRAMMAR_TREE(yacco2::AST& Item)@/
+{
+ using namespace NS_yacco2_T_enum;
+ using namespace NS_yacco2_terminals;
+ using namespace yacco2;
+ CAbs_lr1_sym* sym = AST::content(Item);
+ static AST* cur_node(0);
+ static AST* holding_kcweb(0);
+ static AST* end_holding_kcweb(0);
+ static bool rules_phrase_seen(false);
+ if(sym->enumerated_id__ == T_Enum::T_T_cweb_marker_){
+ if(rules_phrase_seen == true){
+ AST::join_sts(*cur_node,Item);
+ cur_node = &Item;
+ return;
+ }
+ if(holding_kcweb == 0){
+ holding_kcweb = &Item;
+ }else{
+ if(end_holding_kcweb == 0){
+ end_holding_kcweb = &Item;
+ AST::join_sts(*holding_kcweb,*end_holding_kcweb);
+ }else{
+ AST::join_sts(*end_holding_kcweb,Item);
+ end_holding_kcweb = &Item;
+ }
+ }
+ return;
+ }
+ if(cur_node == 0) {
+ CAbs_lr1_sym* gp = new T_grammar_phrase();
+ gp->set_line_no_and_pos_in_line(*sym);
+ gp->set_external_file_id(sym->tok_co_ords__.external_file_id__);
+ GRAMMAR_TREE = new AST(*gp);
+ AST::crt_tree_of_1son(*GRAMMAR_TREE,Item);
+ cur_node = &Item;
+ }else{
+ AST::join_sts(*cur_node,Item);
+ cur_node = &Item;
+ }
+ if(sym->enumerated_id__ == T_Enum::T_T_rules_phrase_){
+ rules_phrase_seen = true;
+ }
+ @<handle the |cweb| comments that prefix phrases@>;
+}
+
+@ Handle the |cweb| comments that prefix phrases.\fbreak
+|cweb| comments are chained forests where the first comment
+will get placed into the calling phrase.
+i use the grammar to elegantly handle the the various phrase
+rather than casing them.
+@<handle the |cweb| comments that prefix phrases@>=
+if(holding_kcweb == 0) return;
+ tok_can_ast_functor just_walk_functr;
+ ast_prefix_1forest element_walk(Item,&just_walk_functr);
+ tok_can<AST*> phrase_can(element_walk);
+ using namespace NS_cweb_put_k_into_ph;
+ Ccweb_put_k_into_ph cweb_k_fsm;
+ cweb_k_fsm.initialize(holding_kcweb,&rules_phrase_seen);
+ Parser cweb_k(cweb_k_fsm,&phrase_can,0);
+ cweb_k.parse();
+ holding_kcweb = 0;
+ end_holding_kcweb = 0;
+
+@*2 |LOAD_YACCO2_KEYWORDS_INTO_STBL|.\fbreak
+Basic housekeeping. Originally a grammar recognized keywords
+by being in competition with the Identifier thread.
+Keyword thread only ran if its first set matched the starting character
+making up an identifier and keyword.
+Now it's blended into Identifier using the symbol table lookup that
+returns not only the identifier terminal but all other keyword entries put into
+the symbol table.
+
+For now, only the keywords are cloned off as unique entities whilst all other
+entries are
+passed back from their symbol table with its source co-ordinates being overriden.
+Why cloning of keywords?
+Cuz of their containment properties --- e.g., syntax code directives.
+
+Why the kludge in |load_kw_into_tbl|? The problem
+is a keyword like ``fsm'' cannot be represented as a terminal
+with the same literal name ``fsm''. So i prefixed the terminal's literal name
+as ``$\#$fsm'' allowing the T alphabet parse to go thru.
+Without this change, the symbol table would return the
+terminal's literal name as the keyword ``fsm'' which is a parse error.
+The symbol table contains the real literal name
+whilst the terminal has its symbolic name sake.
+To condense the loading of the table code, i use the terminal's
+literal name and guard against its symbolic name.
+@<accrue source for emit@>+=
+void load_kw_into_tbl(yacco2::CAbs_lr1_sym* Kw){
+ using namespace yacco2_stbl;
+ T_sym_tbl_report_card report_card;
+ const char* kwkey = Kw->id__;
+ if(*kwkey == '#')++kwkey;// kludge: bypass 1st char eg "$\#$fsm"
+ kw_in_stbl* kw = new kw_in_stbl(Kw);
+ add_sym_to_stbl(report_card,*kwkey,*kw,table_entry::defed,table_entry::keyword);
+ kw->stbl_idx(report_card.pos_);
+}
+
+extern void LOAD_YACCO2_KEYWORDS_INTO_STBL()@/
+{
+using namespace yacco2_stbl;
+ load_kw_into_tbl(new T_raw_characters);
+ load_kw_into_tbl(new T_lr1_constant_symbols);
+ load_kw_into_tbl(new T_error_symbols);
+ load_kw_into_tbl(new T_eocode);
+ load_kw_into_tbl(new T_AD);
+ load_kw_into_tbl(new T_AB);
+ load_kw_into_tbl(new T_parallel_la_boundary);
+ load_kw_into_tbl(new T_arbitrator_code);
+ load_kw_into_tbl(new T_parallel_parser);
+ load_kw_into_tbl(new T_parallel_thread_function);
+ load_kw_into_tbl(new T_parallel_control_monitor);
+ load_kw_into_tbl(new T_fsm);
+ load_kw_into_tbl(new T_fsm_id);
+ load_kw_into_tbl(new T_fsm_filename);
+ load_kw_into_tbl(new T_fsm_namespace);
+ load_kw_into_tbl(new T_fsm_class);
+ load_kw_into_tbl(new T_fsm_version);
+ load_kw_into_tbl(new T_fsm_date);
+ load_kw_into_tbl(new T_fsm_debug);
+ load_kw_into_tbl(new T_fsm_comments);
+ load_kw_into_tbl(new T_terminals);
+ load_kw_into_tbl(new T_enumeration);
+ load_kw_into_tbl(new T_file_name);
+ load_kw_into_tbl(new T_name_space);
+ load_kw_into_tbl(new T_sym_class);
+ load_kw_into_tbl(new T_rules);
+ load_kw_into_tbl(new T_lhs);
+ load_kw_into_tbl(new T_user_declaration);
+ load_kw_into_tbl(new T_user_prefix_declaration);
+ load_kw_into_tbl(new T_user_suffix_declaration);
+ load_kw_into_tbl(new T_constructor);
+ load_kw_into_tbl(new T_destructor);
+ load_kw_into_tbl(new T_op);
+ load_kw_into_tbl(new T_failed);
+ load_kw_into_tbl(new T_user_implementation);
+ load_kw_into_tbl(new T_user_imp_tbl);
+ load_kw_into_tbl(new T_user_imp_sym);
+ load_kw_into_tbl(new T_constant_defs);
+ load_kw_into_tbl(new T_terminals_refs);
+ load_kw_into_tbl(new T_terminals_sufx);
+ load_kw_into_tbl(new T_lrk_sufx);
+ load_kw_into_tbl(new T_NULL);
+}
+
+@*2 Beauty and the tree: |PRINT_RULES_TREE_STRUCTURE|.\fbreak
+Print out the tree's contents.
+It is a function that works with \Yacco2's |prt_ast_functor|
+and a tree walker like |ast_prefix|.
+See \O2 documentation for an example of use
+and \Yacco2 documentation on functors and tree traversals --- good stuff.
+@<accrue source for emit@>+=
+extern void PRINT_RULES_TREE_STRUCTURE(AST* Node)@/
+{
+ using namespace NS_yacco2_T_enum;
+ using namespace NS_yacco2_terminals;
+ if(Node == 0) return;
+ CAbs_lr1_sym* sym = AST::content(*Node);
+ if(sym == 0) {
+ yacco2::lrclog << " SYMBOL IN AST CONTENT NULL"
+ << " Node*: " << Node << endl;
+ return;
+ }
+ yacco2::lrclog << sym->id__ << ' ';
+
+ switch (sym->enumerated_id__){
+ case T_Enum::T_refered_T_:{@/
+ @=refered_T* sym1 = (refered_T*)sym;@>@/
+ T_in_stbl* T = sym1->t_in_stbl();
+ yacco2::lrclog << T->t_def()->t_name()->c_str();
+ break;
+ }
+ case T_Enum::T_refered_rule_:{@/
+ @=refered_rule* sym1 = (refered_rule*)sym;@>@/
+ rule_in_stbl* R = sym1->Rule_in_stbl();
+ yacco2::lrclog << R->r_def()->rule_name()->c_str();
+ break;
+ }
+ case T_Enum::T_T_identifier_:{@/
+ @=T_identifier* sym1 = (T_identifier*)sym;@>@/
+ yacco2::lrclog << sym1->identifier()->c_str();
+ break;
+ }
+ case T_Enum::T_rule_def_:{@/
+ @=rule_def* sym1 = (rule_def*)sym;@>@/
+ yacco2::lrclog << sym1->rule_name()->c_str();
+ yacco2::lrclog << " epsilon: ";
+ if(sym1->epsilon() == true){
+ yacco2::lrclog << " Y " ;
+ }else{
+ yacco2::lrclog << " N " ;
+ }
+ break;
+ }
+ case T_Enum::T_T_terminal_def_:{@/
+ @=T_terminal_def* sym1 = (T_terminal_def*)sym;@>@/
+ yacco2::lrclog << sym1->t_name()->c_str();
+ break;
+ }
+ case T_Enum::T_T_subrule_def_:{@/
+ @=T_subrule_def* sym1 = (T_subrule_def*)sym;@>@/
+ yacco2::lrclog << " epsilon: ";
+ if(sym1->epsilon() == true){
+ yacco2::lrclog << " Y " ;
+ }else{
+ yacco2::lrclog << " N " ;
+ }
+ break;
+ }
+ case T_Enum::T_T_eosubrule_:{@/
+ break;
+ }
+ case T_Enum::T_T_NULL_:{@/
+ break;
+ }
+ case T_Enum::T_T_2colon_:{@/
+ break;
+ }
+
+ default:{
+ yacco2::lrclog << sym->id__;
+ }
+ }
+
+ yacco2::lrclog << " file# " << sym->tok_co_ords__.external_file_id__
+ << ':' << sym->tok_co_ords__.rc_pos__ << ':';
+ yacco2::lrclog << " line# " << sym->tok_co_ords__.line_no__
+ << ':' << sym->tok_co_ords__.pos_in_line__ << ':';
+ yacco2::lrclog << " sym*: " << sym << ' ';
+ yacco2::lrclog << endl;
+}
+
+@*2 |WRT_CWEB_MARKER|.\fbreak
+Just write out to a cweave file the cweb comments.
+
+@<accrue source for emit@>+=
+extern void WRT_CWEB_MARKER(std::ofstream* Wfile,yacco2::AST* Cweb_marker){
+ using namespace NS_yacco2_T_enum;
+ using namespace NS_yacco2_terminals;
+ using namespace yacco2;
+ INT_SET_type filter;
+ filter.insert(T_Enum::T_T_cweb_comment_);
+ tok_can_ast_functor just_walk_functr;
+ ast_prefix_1forest rule_walk(*Cweb_marker,&just_walk_functr,&filter,ACCEPT_FILTER);
+ tok_can<AST*> comments_can(rule_walk);
+ for(int x(0);comments_can[x] != yacco2::PTR_LR1_eog__;++x){
+ T_cweb_comment* k = (T_cweb_comment*)comments_can[x];
+ (*Wfile) << k->comment_data()->c_str() << endl;
+ }
+}
+
+@*2 ?Beauty and the tree: |PRINT_GRAMMAR_TREE|.\fbreak
+Print out the grammar's contents.
+This includes the |cweb| contents.
+It is a function that works with \Yacco2's |prt_ast_functor|
+and a tree walker like |ast_prefix|.
+See \O2 documentation for an example of use
+and \Yacco2 documentation on functors and tree traversals --- good stuff.
+@<accrue source for emit@>+=
+extern void PRINT_GRAMMAR_TREE(AST* Node)@/
+{
+ using namespace NS_yacco2_T_enum;
+ using namespace NS_yacco2_terminals;
+ if(Node == 0) return;
+ CAbs_lr1_sym* sym = AST::content(*Node);
+ if(sym == 0) {
+ yacco2::lrclog << " SYMBOL IN AST CONTENT NULL"
+ << " Node*: " << Node
+ << " lt*: " << Node->lt_ << " rt*: " << Node->rt_
+ << std::endl;
+ return;
+ }
+ yacco2::lrclog << sym->id__ << ' ';
+
+ switch (sym->enumerated_id__){
+ case T_Enum::T_T_cweb_comment_:{@/
+ @=T_cweb_comment* sym1 = (T_cweb_comment*)sym;@>@/
+ yacco2::lrclog << sym1->comment_data()->c_str();
+ break;
+ }
+ }
+
+ yacco2::lrclog << " file# " << sym->tok_co_ords__.external_file_id__
+ << ':' << sym->tok_co_ords__.rc_pos__ << ':';
+ yacco2::lrclog << " line# " << sym->tok_co_ords__.line_no__
+ << ':' << sym->tok_co_ords__.pos_in_line__ << ':';
+ yacco2::lrclog << " sym*: " << sym << ' ';
+ yacco2::lrclog << " Node*: " << Node
+ << " lt*: " << Node->lt_ << " rt*: " << Node->rt_
+ << std::endl;
+}
+
+@*2 Process Nested include files: |PROCESS_INCLUDE_FILE|.\fbreak
+This routine gets called from the |pass3| grammar
+when Yacco2's include file expression has been parsed.
+It uses the hardwired definition |Nested_file_cnt_limit|.
+The one important point is how it appends
+the newly processed include tokens to the calling parser's
+producer container. |pass3| has a global variable to ensure that
+only 2 |PTR_LR1_eog__| tokens are emitted to the producer container
+from the first |pass3| invocation. All other recursively invoked
+|pass3| guard against these extra end-of-grammar tokens when they finish
+parsing.
+
+The global |yacco2::FILE_CNT__| is incremented within the
+|tok_can<std::ifstream>| container.
+This global is just a file counter of files opened by the template container.
+To cope with recursion, there is the global |yacco2::STK_FILE_NOS__|.
+This ``call stack'' global maintains the currently opened files
+ so that tokens generated are associated with the top file.
+Error reporting then GPSs to the source
+line and character position within this tagged file
+when an error token is created using this source file coordinates
+taken from the faulty T token.
+It's depth is tested for file recursion overrun.
+
+Constraints:\fbreak
+ \ptindent{ip1: Calling parser environment}
+ \ptindent{ip2: include token to process}
+ \ptindent{ip3: Token container to append to}
+Note: The filename to process has already had its existence check done
+by the |T_file_inclusion| token.
+
+Why the passing of the |Calling_parser|? There are 2 reasons all
+related to error processing. Firstly, the error queue is needed and
+secondly to abort the |Calling_parser|. Though the returned
+result also indicates success or failure, I thought that
+it was better to indicate by action rather than intent
+what should be done. This is a little draconian but...
+
+Error processing:\fbreak
+ \ptindent{op1: nested file limit is exceeded}
+ \ptindent{op2: bad file name}
+
+Note: if an error occurs, the calling parser is aborted.
+No error correction is done.
+It stops the processing immediately so that the error can be reported back to the grammar writer.
+
+@<accrue source for emit@>+=
+extern
+bool
+PROCESS_INCLUDE_FILE@/
+ (yacco2::Parser& Calling_parser@/
+ ,NS_yacco2_terminals::T_file_inclusion& File_include@/
+ ,yacco2::token_container_type& T2)@/
+{
+ using namespace NS_yacco2_terminals;
+ using namespace NS_yacco2_err_symbols;
+ using namespace yacco2;
+ std::string* ps_fn = File_include.file_name()->c_string();
+ lrclog << "Pre-process file: " << ps_fn->c_str() << std::endl;
+ if(yacco2::STK_FILE_NOS__.size() >= Nested_file_cnt_limit){
+ CAbs_lr1_sym* s = new Err_nested_files_exceeded(Nested_file_cnt_limit,*ps_fn);
+ s->set_line_no_and_pos_in_line(File_include);
+ s->set_external_file_id(File_include.tok_co_ords__.external_file_id__);
+ Calling_parser.add_token_to_error_queue(*s);
+ Calling_parser.abort_parse__;
+ return Failure;
+ }
+
+ tok_can<std::ifstream> p1_tokens(ps_fn->c_str());
+ if(p1_tokens.file_ok() == NO){
+ yacco2::Delete_tokens(p1_tokens.container());
+ CAbs_lr1_sym* sym = new NS_yacco2_err_symbols::Err_bad_filename(*ps_fn);
+ sym->set_external_file_id(File_include.tok_co_ords__.external_file_id__);
+ sym->set_line_no_and_pos_in_line(File_include);
+ Calling_parser.add_token_to_error_queue(*sym);
+ Calling_parser.abort_parse__;
+ return Failure;
+ }
+ using namespace NS_pass3;
+ Cpass3 p3_fsm;
+ Parser pass3(p3_fsm,&p1_tokens,&T2,0,Calling_parser.error_queue(),Calling_parser.recycle_bin__);
+ pass3.parse();
+ yacco2::Delete_tokens(p1_tokens.container());
+
+ if(pass3.error_queue()->empty() != YES){
+ Calling_parser.abort_parse__;
+ return Failure;
+ }
+
+ yacco2::STK_FILE_NOS__.pop_back();
+ return Success;
+}
+
+@*2 Process syntax code: |PROCESS_KEYWORD_FOR_SYNTAX_CODE|.\fbreak
+This is the dispatch routine called
+from the |pass3| grammar per phase to parse.
+What you will see within the |pass3.lex|
+grammar is a subrule with the appropriate keyword.
+Reality is the grammar thread |identifier| returns a
+carrier terminal called |keyword|.
+Inside it is the individual keyword recognized that must be extracted
+by the syntax directed code.
+This was done to lower the amount of subrules within |pass3|.
+This is the partial truth; evolution in the wild card facility also
+lowers the explicit programming of subrules.
+The extracted keyword is passed to this routine for processing.
+If a success is returned, the extracted keyword is put into
+the output container
+while an error stops the parse with the error placed
+into the `error queue'.
+The carrier terminal |keyword| has the `AD' auto
+delete attribute defined
+so |keyword| is deleted when it is popped from the parse stack.
+
+This is a simple way to deal with individual components.
+Within each of the to-be-parsed phases, their
+syntax is gramatically verified.
+As it comes out of a lexical grammar, down the road, the
+syntactic part must
+ check for the proper sequencing of these phases.
+For example, the production component cannot come
+before the LRk phase etc.
+Due to a fixed ordering of T vocabulary components enumeration,
+T's components must be
+in lrk,rc,user, and error terminals parse order as
+i add their forests to the grammar tree while they are being build!
+Out of order will violate the T vocabulary's enumeration
+as i walk the tree as created when enumerating.
+@<accrue source for emit@>+=
+extern
+bool
+PROCESS_KEYWORD_FOR_SYNTAX_CODE@/
+ (yacco2::Parser& Parser@/
+ ,yacco2::CAbs_lr1_sym* Keyword@/
+ ,yacco2::CAbs_lr1_sym** Cont_tok@/
+ ,yacco2::INT* Cont_pos)@/
+{
+ using namespace NS_yacco2_T_enum;
+ using namespace NS_yacco2_terminals;
+ using namespace yacco2;
+ switch (Keyword->enumerated_id__){
+ case T_Enum::T_T_fsm_ :{
+ @=T_fsm* fsm = (T_fsm*)Keyword@>;
+ return process_fsm_phrase(Parser,*fsm,Cont_tok,Cont_pos);
+ }
+ case T_Enum::T_T_parallel_parser_ :{
+ @=T_parallel_parser* pparser = (T_parallel_parser*)Keyword@>;
+ return process_parallel_parser_phrase(Parser,*pparser,Cont_tok,Cont_pos);
+ }
+ case T_Enum::T_T_enumeration_ :{
+ @=T_enumeration* enumer = (T_enumeration*)Keyword@>;
+ return process_T_enum_phrase(Parser,*enumer,Cont_tok,Cont_pos);
+ }
+ case T_Enum::T_T_error_symbols_ :{
+ @=T_error_symbols* err = (T_error_symbols*)Keyword@>;
+ return process_error_symbols_phrase(Parser,*err,Cont_tok,Cont_pos);
+ }
+ case T_Enum::T_T_raw_characters_ :{
+ @=T_raw_characters* rc = (T_raw_characters*)Keyword@>;
+ return process_rc_phrase(Parser,*rc,Cont_tok,Cont_pos);
+ }
+ case T_Enum::T_T_lr1_constant_symbols_ :{
+ @=T_lr1_constant_symbols* lr = (T_lr1_constant_symbols*)Keyword@>;
+ return process_lr1_k_phrase(Parser,*lr,Cont_tok,Cont_pos);
+ }
+ case T_Enum::T_T_terminals_ :{
+ @=T_terminals* term = (T_terminals*)Keyword@>;
+ return process_terminals_phrase(Parser,*term,Cont_tok,Cont_pos);
+ }
+ case T_Enum::T_T_rules_ :{
+ @=T_rules* rule = (T_rules*)Keyword@>;
+ return process_rules_phrase(Parser,*rule,Cont_tok,Cont_pos);
+ }
+ default: {
+CAbs_lr1_sym* sym = new Err_not_kw_defining_grammar_construct;
+sym->set_rc(*Keyword);
+Parser.add_token_to_error_queue(*sym);
+ return Failure;
+ }
+ }
+ return Success;
+}
+
+@** Mpost and Cweb Routines.\fbreak
+These external routines simplify the |cweave| code generated
+for the |mpost_output| grammar.
+As i do not parse the syntax code into appropriate
+structures but build up strings of characters,
+at least i can beautify the emitted |cweave| grammar code by
+use of external rountines that
+are under |cweb|'s generation.
+
+@*2 |MPOST_CWEB_LOAD_XLATE_CHRS|.\fbreak
+These are the raw characters whose values are
+given a literal title. Why?
+Some raw characters will cause |cweave| to cough.
+So i'm attempting to avoid this clearing of the throat
+by character translation
+as I'm not wanting to parse formally the syntax code
+and to emit yet another properly formed language.
+@<accrue source for emit@>+=
+void
+NS_mpost_output::
+Cmpost_output::
+MPOST_CWEB_LOAD_XLATE_CHRS@/
+(NS_mpost_output::Cmpost_output* Fsm)@/
+{
+ Fsm->xlated_names_[T_Enum::T_raw_exclam_] = "exclamation mark";
+ Fsm->xlated_names_[T_Enum::T_raw_dbl_quote_] = "dbl quote";
+ Fsm->xlated_names_[T_Enum::T_raw_no_sign_] = "no sign";
+ Fsm->xlated_names_[T_Enum::T_raw_dollar_sign_] = "dollar sign";
+ Fsm->xlated_names_[T_Enum::T_raw_percent_] = "percent";
+ Fsm->xlated_names_[T_Enum::T_raw_ampersign_] = "ampersand";
+ Fsm->xlated_names_[T_Enum::T_raw_right_quote_] = "rt quote";
+ Fsm->xlated_names_[T_Enum::T_raw_open_bracket_] = "open bracket";
+ Fsm->xlated_names_[T_Enum::T_raw_close_bracket_] = "close bracket";
+ Fsm->xlated_names_[T_Enum::T_raw_asteric_] = "asterisk";
+ Fsm->xlated_names_[T_Enum::T_raw_plus_] = "plus";
+ Fsm->xlated_names_[T_Enum::T_raw_comma_] = "comma";
+ Fsm->xlated_names_[T_Enum::T_raw_minus_] = "minus";
+ Fsm->xlated_names_[T_Enum::T_raw_period_] = "period";
+ Fsm->xlated_names_[T_Enum::T_raw_slash_] = "slash";
+ Fsm->xlated_names_[T_Enum::T_raw_colon_] = "colon";
+ Fsm->xlated_names_[T_Enum::T_raw_semi_colon_] = "semi colon";
+ Fsm->xlated_names_[T_Enum::T_raw_less_than_] = "less than";
+ Fsm->xlated_names_[T_Enum::T_raw_eq_] = "eq";
+ Fsm->xlated_names_[T_Enum::T_raw_gt_than_] = "gt than";
+ Fsm->xlated_names_[T_Enum::T_raw_question_mark_] = "question mark";
+ Fsm->xlated_names_[T_Enum::T_raw_at_sign_] = "at sign";
+ Fsm->xlated_names_[T_Enum::T_raw_open_sq_bracket_] = "open sq bracket";
+ Fsm->xlated_names_[T_Enum::T_raw_back_slash_] = "back slash";
+ Fsm->xlated_names_[T_Enum::T_raw_close_sq_bracket_] = "close sq bracket";
+ Fsm->xlated_names_[T_Enum::T_raw_up_arrow_] = "up arrow";
+ Fsm->xlated_names_[T_Enum::T_raw_under_score_] = "under score";
+ Fsm->xlated_names_[T_Enum::T_raw_left_quote_] = "left quote";
+ Fsm->xlated_names_[T_Enum::T_raw_open_brace_] = "open brace";
+ Fsm->xlated_names_[T_Enum::T_raw_vertical_line_] = "vertical line";
+ Fsm->xlated_names_[T_Enum::T_raw_close_brace_] = "close brace";
+ Fsm->xlated_names_[T_Enum::T_raw_tilde_] = "tilde";
+ Fsm->xlated_names_[T_Enum::T_raw_del_] = "del";
+ Fsm->xlated_names_[T_Enum::T_LR1_invisible_shift_operator_] = "\\invisibleshift";
+ Fsm->xlated_names_[T_Enum::T_LR1_all_shift_operator_] = "\\allshift";
+ Fsm->xlated_names_[T_Enum::T_LR1_reduce_operator_] = "\\reduceoperator";
+ Fsm->xlated_names_[T_Enum::T_LR1_fset_transience_operator_] = "\\transienceoperator";
+ Fsm->xlated_names_[T_Enum::T_LR1_questionable_shift_operator_] = "\\questionableoperator";
+}
+
+@*2 |MPOST_CWEB_EMIT_PREFIX_CODE|.\fbreak
+Output prelude statements for |cweave| and |mpost| files.
+|cweave| contains basic packages and macros whilest
+|mpost| contains its grammar drawing macros and basic
+array of variables.
+@*3 Setup |mpost| macros and variable arrays.
+@<setup |mpost| macros and variable arrays@>=
+
+ KCHARP mp_prefix_file = "% file: ";
+ Fsm->omp_file_ << mp_prefix_file;
+ KCHARP mp_prefix_file_value =
+ "%s - grammar railroad diagrams for mpost program\n";
+ int x = sprintf(Fsm->big_buf_,mp_prefix_file_value,Fsm->mp_filename_.c_str());
+ Fsm->omp_file_.write(Fsm->big_buf_,x);
+ Fsm->omp_file_ << endl;
+
+ KCHARP mp_prefix_date = "% date: ";
+ Fsm->omp_file_ << mp_prefix_date;
+ KCHARP mp_prefix_date_value =@/
+ "%s\n"@/
+ "input \"/usr/local/yacco2/diagrams/o2diag.mp\"\n"@/
+ "numeric no_of_rules,Box_solid,Box_dotted,Circle_solid,Circle_dotted;\n"@/
+ "Box_solid:=1;Box_dotted:=2;Circle_solid:=3;Circle_dotted:=4;\n"@/
+ "string rule_names[].literal;\n"@/
+ "string rule_names[].vname;\n"@/
+ "numeric rule_s_no_rhs[];\n"@/
+ "string rhs_elems[][][].literal;\n"@/
+ "string rhs_elems[][][].vname;\n"@/
+ "numeric rhs_elems[][][].Drw_how;\n"@/
+ "numeric rule_s_subrule_no_elems[][];\n";
+ x = sprintf(Fsm->big_buf_,mp_prefix_date_value,Fsm->gened_date_time_.c_str());
+ Fsm->omp_file_.write(Fsm->big_buf_,x);
+
+
+@*3 Setup |cweave| macros and odds and ends.
+@<setup |cweave| macros and odds and ends@>=
+ KCHARP w_prefix_file = "% file: ";
+ Fsm->ow_file_ << w_prefix_file;
+ KCHARP w_prefix_filename_value = "%s - cweb grammar\n";
+ x = sprintf(Fsm->big_buf_,w_prefix_filename_value,Fsm->w_filename_.c_str());
+ Fsm->ow_file_.write(Fsm->big_buf_,x);
+
+ KCHARP w_prefix_date = "%Date: ";
+ Fsm->ow_file_ << w_prefix_date;
+ KCHARP w_prefix_date_value = "%s\n";
+ x = sprintf(Fsm->big_buf_,w_prefix_date_value,Fsm->gened_date_time_.c_str());
+ Fsm->ow_file_.write(Fsm->big_buf_,x);
+
+
+ KCHARP macros =
+ "\\input%s \"supp-pdf\"\n"@/
+ "\\input \"/usr/local/yacco2/diagrams/o2mac.tex\"\n";
+ x = sprintf(Fsm->big_buf_,macros," ");
+ Fsm->ow_file_.write(Fsm->big_buf_,x);
+
+@*2 Driver of |MPOST_CWEB_EMIT_PREFIX_CODE|.
+@<accrue source for emit@>+=
+void
+NS_mpost_output::
+Cmpost_output::
+MPOST_CWEB_EMIT_PREFIX_CODE@/
+(NS_mpost_output::Cmpost_output* Fsm)@/
+{
+ @<setup |mpost| macros and variable arrays@>;
+ @<setup |cweave| macros and odds and ends@>;
+}
+
+
+@*2 |MPOST_CWEB_gen_dimension_name|.\fbreak
+Generates the string literal for a dimension ---
+rule no, subrule no, or element no.
+It's out string is used to build up the
+|mpost|'s variable object literal name.
+The base number is 27 but as the elements are 1 and greater
+the outputed string is ${26^2}$ of 2 digits.
+So rule 27, subrule 3, element 5 produces 3
+strings of ``ba'', ``ac'', and ``ae''.
+@<accrue source for emit@>+=
+void
+NS_mpost_output::
+Cmpost_output::
+MPOST_CWEB_gen_dimension_name@/
+ (Cmpost_output* Fsm,std::string& Mp_obj_name,int Dimension){@/
+ int R,Q;
+ R = Dimension%27;
+ Q = Dimension/27;
+ ++Q;
+ Mp_obj_name += Fsm->mp_dimension_[Q];
+ Mp_obj_name += Fsm->mp_dimension_[R];
+}
+
+@*2 |MPOST_CWEB_calc_mp_obj_name|.\fbreak
+Build up the 3 dimension name for |mpost|'s object name.
+@<accrue source for emit@>+=
+void
+NS_mpost_output::
+Cmpost_output::
+MPOST_CWEB_calc_mp_obj_name@/
+ (Cmpost_output* Fsm,std::string& Mp_obj_name,int Elem_no){@/
+ Fsm->MPOST_CWEB_gen_dimension_name(Fsm,Mp_obj_name,Fsm->rule_no_);
+ Fsm->MPOST_CWEB_gen_dimension_name(Fsm,Mp_obj_name,Fsm->subrule_no_);
+ Fsm->MPOST_CWEB_gen_dimension_name(Fsm,Mp_obj_name,Elem_no);
+}
+
+@*2 |MPOST_CWEB_wrt_mp_rhs_elem|.\fbreak
+Output |mpost|'s statements for a subrule's element.
+Due to the |convertMPtoPDF| marco
+having problems with embedded space within literal names,
+i do a substitution on spaces for ``.'' to keep
+the \TeX flowing.
+@<accrue source for emit@>+=
+void
+NS_mpost_output::
+Cmpost_output::
+MPOST_CWEB_wrt_mp_rhs_elem@/
+ (Cmpost_output* Fsm,std::string& Elem_name,std::string& Drw_how){@/
+ std::string mp_xlate_name;
+ prescan_mpname_for_cweb(Elem_name,mp_xlate_name);
+ std::string mp_obj_name;
+ KCHARP mp_subrule_elems_literal = "rhs_elems[%i][%i][%i].literal := \"%s\";";
+ int x = sprintf(Fsm->big_buf_,mp_subrule_elems_literal
+ ,Fsm->rule_no_,Fsm->subrule_no_,Fsm->elem_no_
+ ,mp_xlate_name.c_str());
+ Fsm->omp_file_.write(Fsm->big_buf_,x);
+ Fsm->omp_file_<< endl;
+ KCHARP mp_subrule_elems_RorT = "rhs_elems[%i][%i][%i].Drw_how := %s;";
+ x = sprintf(Fsm->big_buf_,mp_subrule_elems_RorT,Fsm->rule_no_,Fsm->subrule_no_,Fsm->elem_no_
+ ,Drw_how.c_str());
+ Fsm->omp_file_.write(Fsm->big_buf_,x);
+ Fsm->omp_file_<< endl;
+ KCHARP mp_subrule_elems_vname = "rhs_elems[%i][%i][%i].vname := \"%s\";";
+ Fsm->MPOST_CWEB_calc_mp_obj_name(Fsm,mp_obj_name,Fsm->elem_no_);
+ x = sprintf(Fsm->big_buf_,mp_subrule_elems_vname,Fsm->rule_no_,Fsm->subrule_no_,Fsm->elem_no_
+ ,mp_obj_name.c_str());
+ Fsm->omp_file_.write(Fsm->big_buf_,x);
+ Fsm->omp_file_<< endl;
+}
+
+@*2 |MPOST_CWEB_gen_sr_elem_xrefs|.\fbreak
+To aid the grammar writer, all vocubulary symbols are cross referencesd
+using |cweave|'s directive.
+Originally each subrule was redrawn having the cross reference
+specific to the subrule. As there was too much
+spam being generated for aireous subrules with no syntax directed code,
+i decided to redraw subrules only having code.
+Consequently the cross references go against the rule definition rather than
+its specific subrules.\fbreak
+\fbreak
+|cweave| doesn't xref the 1 characters so i bypass them as i do not want to change
+the characteristics of it... for now ...
+@*4 Establish tree container with appropriate element filters.
+@<establish tree container with appropriate element filters@>=
+ using namespace yacco2;
+ using namespace NS_yacco2_T_enum;
+ using namespace NS_yacco2_terminals;
+ KCHARP xref = "@@.%s@@>\n";
+ INT_SET_type filter;
+ filter.insert(T_Enum::T_refered_T_);
+ filter.insert(T_Enum::T_refered_rule_);
+ filter.insert(T_Enum::T_T_eosubrule_);
+ filter.insert(T_Enum::T_T_called_thread_eosubrule_);
+ filter.insert(T_Enum::T_T_null_call_thread_eosubrule_);
+ filter.insert(T_Enum::T_LR1_parallel_operator_);
+ filter.insert(T_Enum::T_LR1_fset_transience_operator_);
+
+ tok_can_ast_functor just_walk_functr;
+ ast_prefix_1forest element_walk(*Subrule_tree,&just_walk_functr,&filter,ACCEPT_FILTER);
+ tok_can<AST*> elements_can(element_walk);
+
+
+@*4 Walk the container and produce the elements' cross references.
+@<walk the container and produce the elements' cross references@>=
+ for(int x(0);elements_can[x] != yacco2::PTR_LR1_eog__;++x){
+ ++elem_cnt;
+ CAbs_lr1_sym* sym = elements_can[x];
+ switch (sym->enumerated_id__){
+ case T_Enum::T_LR1_parallel_operator_: {
+ int x = sprintf(Fsm->big_buf_,xref,"\\paralleloperator");
+ Fsm->ow_file_.write(Fsm->big_buf_,x);
+ break;
+ }
+ case T_Enum::T_LR1_fset_transience_operator_: {
+ int x = sprintf(Fsm->big_buf_,xref,"\\transienceoperator");
+ Fsm->ow_file_.write(Fsm->big_buf_,x);
+ break;
+ }
+ case T_Enum::T_refered_T_: {
+ @=refered_T* rt = (refered_T*)sym@>;
+ Fsm->MPOST_CWEB_xref_refered_T(Fsm,rt);
+ break;
+ }
+ case T_Enum::T_refered_rule_: {
+ @=refered_rule* rr = (refered_rule*)sym@>;
+ Fsm->MPOST_CWEB_xref_refered_rule(Fsm,rr);
+ break;
+ }
+ case T_Enum::T_T_eosubrule_: {
+ if(elem_cnt == 1){
+ int x = sprintf(Fsm->big_buf_,xref,"\\emptyrule");
+ Fsm->ow_file_.write(Fsm->big_buf_,x);
+ }
+ break;
+ }
+ case T_Enum::T_T_called_thread_eosubrule_: {
+ @=T_called_thread_eosubrule* id = (T_called_thread_eosubrule*)sym@>;
+ if(id->ns() !=0){// \\TRAshift call has no namespace :: qualifiers
+ th_name += id->ns()->identifier()->c_str();
+ th_name+= "::";
+ }
+ th_name += id->called_thread_name()->identifier()->c_str();
+ string name_with_bkslash;
+ int len = th_name.length();
+ for(int x=0;x<len;++x){
+ char c = th_name[x];
+ if(c == '_'){
+ name_with_bkslash += '\\';
+ }
+ name_with_bkslash += c;
+ }
+ int x = sprintf(Fsm->big_buf_,xref,name_with_bkslash.c_str());
+ Fsm->ow_file_.write(Fsm->big_buf_,x);
+ break;
+ }
+ case T_Enum::T_T_null_call_thread_eosubrule_: {
+ int x = sprintf(Fsm->big_buf_,xref,"NULL");
+ Fsm->ow_file_.write(Fsm->big_buf_,x);
+ break;
+ }
+ }
+ }
+
+@*3 Driver of |MPOST_CWEB_gen_sr_elem_xrefs|.
+@<accrue source for emit@>+=
+void
+NS_mpost_output::
+Cmpost_output::
+MPOST_CWEB_gen_sr_elem_xrefs@/
+ (Cmpost_output* Fsm,AST* Subrule_tree){@/
+ @<establish tree container with appropriate element filters@>;
+ int elem_cnt(0);
+ string th_name;
+@<walk the container and produce the elements' cross references@>;
+}
+
+@*2 |MPOST_CWEB_xlated_symbol|.\fbreak
+@<accrue source for emit@>+=
+extern int
+MPOST_CWEB_xlated_symbol(AST* Sym_t,char* Xlated_sym){@/
+ CAbs_lr1_sym* Sym = AST::content(*Sym_t);
+ int Enum = Sym->enumerated_id();
+ Xlated_sym[0] = (char)0;
+ const char* xsym = "%s";
+ switch (Enum){
+ case T_Enum::T_LR1_parallel_operator_: {
+ sprintf(Xlated_sym,xsym,"\\paralleloperator");
+ return 1;
+ }
+ case T_Enum::T_LR1_fset_transience_operator_: {
+ sprintf(Xlated_sym,xsym,"\\transienceoperator");
+ return 1;
+ }
+ case T_Enum::T_refered_T_: {
+ @=refered_T* rt = (refered_T*)Sym@>;
+ XLATE_SYMBOLS_FOR_cweave(rt->its_t_def()->t_name()->c_str(),Xlated_sym);
+ return rt->element_pos();
+ }
+ case T_Enum::T_refered_rule_: {
+ @=refered_rule* rr = (refered_rule*)Sym@>;
+ XLATE_SYMBOLS_FOR_cweave(rr->its_rule_def()->rule_name()->c_str(),Xlated_sym);
+ return rr->element_pos();
+ }
+ case T_Enum::T_T_eosubrule_: {// if parallel expr then use eosurule of thread
+ @=T_eosubrule* eos = (T_eosubrule*)Sym@>;
+ AST* prev_t = Sym_t->pr_;
+ if(eos->element_pos() == 1){
+ sprintf(Xlated_sym,xsym,"\\emptyrule");
+ return eos->element_pos();
+ }else{
+ sprintf(Xlated_sym,xsym,"");
+ }
+ CAbs_lr1_sym* sym = AST::content(*prev_t);
+ switch (sym->enumerated_id()){
+ case T_Enum::T_T_called_thread_eosubrule_:{
+ return eos->element_pos() -1;
+ }
+ case T_Enum::T_T_null_call_thread_eosubrule_:{
+ return eos->element_pos() -1;
+ }
+ default:{
+ return eos->element_pos();
+ }
+ }
+ }
+ case T_Enum::T_T_called_thread_eosubrule_: {
+ @=T_called_thread_eosubrule* id = (T_called_thread_eosubrule*)Sym@>;
+ string th_name;
+ if(id->ns() !=0){// \\TRAshift call has no namespace :: qualifiers
+ th_name += id->ns()->identifier()->c_str();
+ th_name+= "::";
+ }
+ th_name += id->called_thread_name()->identifier()->c_str();
+ XLATE_SYMBOLS_FOR_cweave(th_name.c_str(),Xlated_sym);
+ return id->element_pos();
+ }
+ case T_Enum::T_T_null_call_thread_eosubrule_: {
+ @=T_null_call_thread_eosubrule* id = (T_null_call_thread_eosubrule*)Sym@>;
+ sprintf(Xlated_sym,xsym,"NULL");
+ return id->element_pos();
+ }
+ }
+return 0;// fake it: cuz apple's latest compiler: symantic error-never reached!
+}
+@*2 |MPOST_CWEB_crt_rhs_sym_str| - follow set contributing symbols.\fbreak
+Generate the state's subrule symbols in for cweave to digest.
+If the first symbol in the string is a rule, this rule's
+follow set string gets highlighted by underlining
+the symbols that contribute to it.
+It will transient walk though these follow symbols
+if they are epsilonabe rules.
+This underline string of symbols will use the ``...''' symbol
+to indicate more symbols contribute but due
+to the report's space constrains are not reported.
+@<accrue source for emit@>+=
+void
+NS_mpost_output::
+Cmpost_output::
+MPOST_CWEB_crt_rhs_sym_str@/
+(state_element* se,std::string* Xlated_str){
+ char a[BUFFER_SIZE];
+ char cur_sym[Max_cweb_item_size];
+ char nxtsym_1[Max_cweb_item_size];
+ char nxtsym_2[Max_cweb_item_size];
+ KCHARP thread_expr_string_template =
+ "{%s} {%s} {%s}";// 3 symbols: current and 2 la
+ KCHARP underline_symbol = "{$\\underline{%s}$} \n";
+ KCHARP underline_symbol_wepsilon = "{$\\underline{%s^{\\emptyrule}}$} \n";
+ KCHARP not_underline_symbol = "{%s} \n";
+ state_element* nxt1_se = 0;
+ state_element* nxt2_se = 0;
+ state_element* nxt3_se = 0;
+ int pp = MPOST_CWEB_xlated_symbol(se->sr_element_,cur_sym);
+
+ if(// chained or thread call expression
+ (se->its_enum_id_ == T_Enum::T_LR1_parallel_operator_)
+ ||
+ (se->its_enum_id_ == T_Enum::T_LR1_fset_transience_operator_)
+ ){
+ nxt1_se = se->next_state_element_;
+ AST* nxt2_se= se->sr_element_->rt_->rt_;// thread eos for called thd nm
+ pp = MPOST_CWEB_xlated_symbol(nxt1_se->sr_element_,nxtsym_1);
+ pp = MPOST_CWEB_xlated_symbol(nxt2_se,nxtsym_2);
+ sprintf(a,thread_expr_string_template,cur_sym,nxtsym_1,nxtsym_2);
+ (*Xlated_str) += a;
+ return;
+ }
+ sprintf(a,not_underline_symbol,cur_sym);
+ (*Xlated_str) += a;
+ if(se->sr_def_element_->enumerated_id__ != T_Enum::T_rule_def_){ // T
+ return;
+ }
+
+ nxt1_se = se->next_state_element_;
+ if(nxt1_se==0) return;
+ if(nxt1_se->its_enum_id_ == T_Enum::T_T_eosubrule_) return;
+ pp = MPOST_CWEB_xlated_symbol(nxt1_se->sr_element_,nxtsym_1);
+ if(nxt1_se->sr_def_element_->enumerated_id__ != T_Enum::T_rule_def_){
+ sprintf(a,underline_symbol,nxtsym_1);
+ }else{
+ rule_def* rd = (rule_def*)nxt1_se->sr_def_element_;
+ if(rd->epsilon() == YES){
+ sprintf(a,underline_symbol_wepsilon,nxtsym_1);
+ nxt2_se = nxt1_se->next_state_element_;
+ }else{
+ sprintf(a,underline_symbol,nxtsym_1);
+ nxt2_se = 0;
+ }
+ }
+ (*Xlated_str) += a;
+
+ if(nxt2_se != 0){// 2nd follow set sym due to epsilon rule
+ if(nxt2_se->its_enum_id_ == T_Enum::T_T_eosubrule_) return;
+ pp = MPOST_CWEB_xlated_symbol(nxt2_se->sr_element_,nxtsym_2);
+ if(nxt2_se->sr_def_element_->enumerated_id__ != T_Enum::T_rule_def_){ // T
+ sprintf(a,underline_symbol,nxtsym_2);
+ }else{
+ rule_def* rd = (rule_def*)nxt2_se->sr_def_element_;
+ if(rd->epsilon() == YES){
+ sprintf(a,underline_symbol_wepsilon,nxtsym_2);
+ nxt3_se = nxt1_se->next_state_element_;
+ if(nxt3_se->its_enum_id_ == T_Enum::T_T_eosubrule_){
+ nxt3_se = 0;
+ }
+ }else{
+ sprintf(a,underline_symbol,nxtsym_2);
+ nxt3_se = 0;
+ }
+ }
+ (*Xlated_str) += a;
+ }
+ if(nxt3_se != 0){// ... all others due to 2nd epsilon follow symbol rule
+ sprintf(a,not_underline_symbol,"...");
+ (*Xlated_str) += a;
+ }
+}
+
+@*2 |MPOST_CWEB_woutput_sr_sdcode|.\fbreak
+|cweave|'s statements for a subrule having syntax directed code.
+Note: the use of a grammar to generate it.
+@<accrue source for emit@>+=
+void
+NS_mpost_output::
+Cmpost_output::
+MPOST_CWEB_woutput_sr_sdcode@/
+(Cmpost_output* Fsm,T_subrule_def* Subrule_def){@/
+ SDC_MAP_type* sr_dirs = Subrule_def->subrule_directives();
+ SDC_MAP_ITER_type i = sr_dirs->begin();
+ SDC_MAP_ITER_type ie = sr_dirs->end();
+ TOKEN_GAGGLE dirs_tokens;
+ for(;i!=ie;++i){
+ CAbs_lr1_sym* sym = i->second;
+ dirs_tokens.push_back(*sym);
+ }
+
+ using namespace NS_cweave_sdc;
+ Ccweave_sdc sdc_fsm;
+ sdc_fsm.initialize(&Fsm->ow_file_,Fsm->subrule_def_,Fsm->subrule_no_);
+ Parser sdc_emit(sdc_fsm,&dirs_tokens,0);
+ sdc_emit.parse();
+}
+
+@*2 |MPOST_CWEB_wrt_fsm|.\fbreak
+|cweave|'s |fsm| part of the grammar.
+Not much but there's that grammar use to generate the output.
+@*4 Output |fsm|'s class section.
+@<output |fsm|'s class section@>=
+char xa[Max_cweb_item_size];
+XLATE_SYMBOLS_FOR_cweave
+ (Fsm_phrase->fsm_class_phrase()->identifier()->identifier()->c_str()
+ ,xa);
+
+ KCHARP fsm_class =
+ "@@*2 Fsm %s class.\n";
+ int x = sprintf(Fsm->big_buf_
+ ,fsm_class
+ ,xa
+ );
+ Fsm->ow_file_.write(Fsm->big_buf_,x);
+ Fsm->ow_file_<< endl;
+
+@*4 Ready those |fsm| syntax directed code jelly beans for consumption.
+@<ready those |fsm| sdcode class jelly beans for consumption@>=
+ T_fsm_class_phrase* fcp = Fsm_phrase->fsm_class_phrase();
+ SDC_MAP_type* sr_dirs = fcp->directives_map();
+ SDC_MAP_ITER_type i = sr_dirs->begin();
+ SDC_MAP_ITER_type ie = sr_dirs->end();
+ TOKEN_GAGGLE dirs_tokens;
+ for(;i!=ie;++i){
+ CAbs_lr1_sym* sym = i->second;
+ dirs_tokens.push_back(*sym);
+ }
+
+
+@*3 Driver of |MPOST_CWEB_wrt_fs|.
+@<accrue source for emit@>+=
+void
+NS_mpost_output::
+Cmpost_output::
+MPOST_CWEB_wrt_fsm@/
+(Cmpost_output* Fsm,T_fsm_phrase* Fsm_phrase){@/
+ KCHARP banner =
+ "\\GRAMMARtitle{%s}\n{%s}{%s}%\n"
+ "{%s}{%s}%\n"
+ "{%s}\n";
+
+ KCHARP banner_of_thread =
+ "\\THREADtitle{%s}%\n"
+ "{%s}{%s}%\n"
+ "{%s}{%s}{%s}{%i}%\n"
+ "{%s}\n";
+ char fname[Max_cweb_item_size];
+ XLATE_SYMBOLS_FOR_cweave(Fsm->grammar_filename_prefix_.c_str(),fname);
+ char ns_name[Max_cweb_item_size];
+ XLATE_SYMBOLS_FOR_cweave(Fsm_phrase->namespace_id()->identifier()->c_str(),ns_name);
+ char fsm_name[Max_cweb_item_size];
+ XLATE_SYMBOLS_FOR_cweave(Fsm_phrase->fsm_id()->c_string()->c_str(),fsm_name);
+ char k_cweb[Max_cweb_item_size];
+ XLATE_SYMBOLS_FOR_cweave(Fsm_phrase->comment()->c_string()->c_str(),k_cweb);
+
+ if(O2_PP_PHASE != 0){
+ T_parallel_parser_phrase* la_ph = O2_PP_PHASE;
+ T_parallel_la_boundary* la = la_ph->la_bndry();
+ // build srce expr
+ char expr_prescan_cweb[Max_cweb_item_size];
+ int x = sprintf(Fsm->big_buf_
+ ,banner_of_thread
+ ,fname
+ ,fsm_name
+ ,ns_name
+ ,Fsm_phrase->version()->c_string()->c_str()
+ ,Fsm_phrase->debug()->c_string()->c_str()
+ ,k_cweb
+ ,la->la_first_set()->size()
+ //,expr\_prescan\_cweb
+ ,la->cweb_la_srce_expr()->c_str()
+ );
+ Fsm->ow_file_.write(Fsm->big_buf_,x);
+ Fsm->ow_file_ << endl;
+ }else{
+ int x = sprintf(Fsm->big_buf_
+ ,banner
+ ,fname
+ ,fsm_name
+ ,ns_name
+ ,Fsm_phrase->version()->c_string()->c_str()
+ ,Fsm_phrase->debug()->c_string()->c_str()
+ ,k_cweb
+ );
+ Fsm->ow_file_.write(Fsm->big_buf_,x);
+ Fsm->ow_file_ << endl;
+ }
+
+ if(Fsm_phrase->cweb_marker() != 0){
+ WRT_CWEB_MARKER(&Fsm->ow_file_,Fsm_phrase->cweb_marker());
+ }
+
+ @<output |fsm|'s class section@>;
+ @<ready those |fsm| sdcode class jelly beans for consumption@>;
+
+ using namespace NS_cweave_fsm_sdc;
+ Ccweave_fsm_sdc sdc_fsm;
+ sdc_fsm.initialize(&Fsm->ow_file_,Fsm_phrase);
+ Parser sdc_emit(sdc_fsm,&dirs_tokens,0);
+ sdc_emit.parse();
+}
+
+
+@*2 |MPOST_CWEB_wrt_T|.\fbreak
+|cweave|'s |T| portion of grammar vocabulary.
+
+@*4 Output |T| macros and files.
+@<output |T| macros and files@>=
+output_cweb_macros_and_banner(
+Fsm,Fsm->ow_t_file_,"Terminal Vocabulary",Fsm->gened_date_time_.c_str()
+,T_phrase->filename_id()->identifier()
+,T_phrase->namespace_id()->identifier()
+,T_phrase->alphabet()->size());
+
+@*5 hrule to end T entry.\fbreak
+@<rule-it@>=
+ KCHARP rule_it =
+ "\\fbreak%s\n"@/
+ "\\hrule\n";
+ x = sprintf(Fsm->big_buf_,rule_it," ");
+ Fsm->ow_t_file_.write(Fsm->big_buf_,x);
+
+@*4 Output |T|'s entry.\fbreak
+For now i hardwire the enumeration label here.
+It will be deposited in the enumeration grammar for me to fetch.
+@<output |T|'s entry@>=
+char ab[] = "Y";
+if(tdef->autoabort() == true) ab[0] = 'Y';
+else ab[0] = 'N';
+char ad[] = "Y";
+if(tdef->autodelete() == true) ad[0]='Y';
+else ad[0] = 'N';
+
+char name[Max_cweb_item_size];
+
+XLATE_SYMBOLS_FOR_cweave(tdef->t_name()->c_str(),name);
+char class_name[Max_cweb_item_size];
+XLATE_SYMBOLS_FOR_cweave(tdef->classsym()->c_str(),class_name);
+
+const char* enum_name_for_format =
+ "T\\_%s\\_";
+char a[SMALL_BUFFER_4K];
+ sprintf(a,enum_name_for_format,class_name);
+
+ KCHARP t_entry = "@@*2 {\\bf %s}.\\fbreak\n"@/
+ "Enum: %s\n\\fbreak\n"@/
+ "\\line{Class: %s \\hfil AB: %s \\hfil AD: %s}\n";
+ int x = sprintf(Fsm->big_buf_
+ ,t_entry
+ ,name
+ ,a
+ ,class_name
+ ,ab
+ ,ad
+ );
+ Fsm->ow_t_file_.write(Fsm->big_buf_,x);
+ Fsm->ow_t_file_<< endl;
+ if(tdef->cweb_marker() != 0){
+ WRT_CWEB_MARKER(&Fsm->ow_t_file_,tdef->cweb_marker());
+ }
+ @<rule-it@>;
+
+@*4 Output prefix code if present.\fbreak
+@<output prefix code if present@>=
+ if(T_phrase->terminals_refs_code() != 0){
+ KCHARP tref =
+ "@@*2 {\\bf Terminals-refs} directive.\\fbreak\n";
+ Fsm->ow_t_file_ << tref;
+
+ T_syntax_code* stc = T_phrase->terminals_refs_code();
+ if(stc->cweb_marker() != 0){
+ WRT_CWEB_MARKER(&Fsm->ow_t_file_,stc->cweb_marker());
+ }
+ KCHARP tref_code =@/
+ "@@<terminals-refs directive@@>=\n"
+ "%s"@/
+ "\n";
+
+ int x = sprintf(Fsm->big_buf_
+ ,tref_code
+ ,T_phrase->terminals_refs_code()->syntax_code()->c_str()
+ );
+ Fsm->ow_t_file_.write(Fsm->big_buf_,x);
+ Fsm->ow_t_file_ << endl;
+ }
+
+@*4 Output suffix code if present.\fbreak
+@<output suffix code if present@>=
+ if(T_phrase->terminals_sufx_code() != 0){
+ KCHARP tsuf =
+ "@@*1 {\\bf Terminals-sufx} directive.\\fbreak\n";
+ Fsm->ow_t_file_ << tsuf;
+
+ T_syntax_code* stc = T_phrase->terminals_sufx_code();
+ if(stc->cweb_marker() != 0){
+ WRT_CWEB_MARKER(&Fsm->ow_t_file_,stc->cweb_marker());
+ }
+ KCHARP tsuf_code =
+ "@@<terminals-sufx directive@@>=\n"@/
+ "%s"@/
+ "\n";
+
+ int x = sprintf(Fsm->big_buf_
+ ,tsuf_code
+ ,T_phrase->terminals_sufx_code()->syntax_code()->c_str()
+ );
+ Fsm->ow_t_file_.write(Fsm->big_buf_,x);
+ Fsm->ow_t_file_<< endl;
+ }
+
+@*4 Get those |T| syntax directed code jelly beans ready for consumption.
+@<get those |T| sdcode class jelly beans ready for consumption@>=
+ SDC_MAP_type* sr_dirs = tdef->directives_map();
+ SDC_MAP_ITER_type i = sr_dirs->begin();
+ SDC_MAP_ITER_type ie = sr_dirs->end();
+ TOKEN_GAGGLE dirs_tokens;
+ for(;i!=ie;++i){
+ CAbs_lr1_sym* sym = i->second;
+ dirs_tokens.push_back(*sym);
+ }
+
+@*3 Driver of |MPOST_CWEB_wrt_T|.
+@<accrue source for emit@>+=
+void
+NS_mpost_output::
+Cmpost_output::
+MPOST_CWEB_wrt_T@/
+(Cmpost_output* Fsm,T_terminals_phrase* T_phrase){@/
+ @<output |T| macros and files@>;
+ if(T_phrase->cweb_marker() != 0){
+ WRT_CWEB_MARKER(&Fsm->ow_t_file_,T_phrase->cweb_marker());
+ }
+
+ @<output prefix code if present@>;
+ T_DEF_MAP_ITER_type a = T_phrase->alphabet()->begin();
+ T_DEF_MAP_ITER_type ae = T_phrase->alphabet()->end();
+ char term_name[Max_cweb_item_size];
+ for(;a!=ae;++a){
+ T_terminal_def* tdef = a->second;
+ @<output |T|'s entry@>;
+ @<get those |T| sdcode class jelly beans ready for consumption@>;
+ using namespace NS_cweave_T_sdc;
+ Ccweave_T_sdc sdc_fsm;
+ XLATE_SYMBOLS_FOR_cweave(tdef->t_name()->c_str(),term_name);
+ sdc_fsm.initialize(&Fsm->ow_t_file_,term_name);
+ Parser sdc_emit(sdc_fsm,&dirs_tokens,0);
+ sdc_emit.parse();
+ }
+ @<output suffix code if present@>;
+ Fsm->ow_t_file_ << "@@** Index.\n";
+}
+
+@*2 |MPOST_CWEB_wrt_Err|.\fbreak
+|cweave|'s |Err| portion of grammar vocabulary.
+
+@*4 Output |err| macros and files.
+@<output |err| macros and files@>=
+output_cweb_macros_and_banner(
+Fsm,Fsm->ow_err_file_,"Error Vocabulary",Fsm->gened_date_time_.c_str()
+,Err_phrase->filename_id()->identifier()
+,Err_phrase->namespace_id()->identifier()
+,Err_phrase->alphabet()->size());
+
+@*5 Err hrule to end T entry.\fbreak
+@<err rule-it@>=
+ KCHARP rule_it =
+ "\\fbreak%s\n"@/
+ "\\hrule\n";
+ x = sprintf(Fsm->big_buf_,rule_it," ");
+ Fsm->ow_err_file_.write(Fsm->big_buf_,x);
+
+@*4 Output |err|'s entry.\fbreak
+Due to my verbosity and the black slug outputted
+from |cweave| / \TeX, i removed the emitting of the enumeration
+symbol as part of the index.
+For now i have not tested against the
+enumeration symbol.
+i explicitly reference it by its key from a returned thread call
+ or i use the \ALLshift to catch it.
+ Time may squelch my decision.
+@<output |err|'s entry@>=
+char ab[] = "Y";
+if(tdef->autoabort() == true) ab[0] = 'Y';
+else ab[0] = 'N';
+char ad[] = "Y";
+if(tdef->autodelete() == true) ad[0] = 'Y';
+else ad[0] = 'N';
+char name[Max_cweb_item_size];
+XLATE_SYMBOLS_FOR_cweave(tdef->t_name()->c_str(),name);
+char class_name[Max_cweb_item_size];
+XLATE_SYMBOLS_FOR_cweave(tdef->classsym()->c_str(),class_name);
+const char* enum_name_for_format =
+ "T\\_%s\\_";
+char enum_name[Max_cweb_item_size];
+XLATE_SYMBOLS_FOR_cweave(tdef->classsym()->c_str(),enum_name);
+char a[SMALL_BUFFER_4K];
+ sprintf(a,enum_name_for_format,enum_name);
+ KCHARP t_entry = "@@*2 {\\bf %s}.\\fbreak\n"@/
+ "Enum: %s\n\\fbreak\n"@/
+ "\\line{Class: %s \\hfil AB: %s \\hfil AD: %s}\n";
+ int x = sprintf(Fsm->big_buf_
+ ,t_entry
+ ,name
+ ,a
+ ,class_name
+ ,ab
+ ,ad
+ );
+ Fsm->ow_err_file_.write(Fsm->big_buf_,x);
+ Fsm->ow_err_file_ << endl;
+ if(tdef->cweb_marker() != 0){
+ WRT_CWEB_MARKER(&Fsm->ow_err_file_,tdef->cweb_marker());
+ }
+ @<err rule-it@>;
+
+@*3 Driver of |MPOST_CWEB_wrt_Err|.
+@<accrue source for emit@>+=
+void
+NS_mpost_output::
+Cmpost_output::
+MPOST_CWEB_wrt_Err@/
+(Cmpost_output* Fsm,T_error_symbols_phrase* Err_phrase){@/
+ @<output |err| macros and files@>;
+ if(Err_phrase->cweb_marker() != 0){
+ WRT_CWEB_MARKER(&Fsm->ow_err_file_,Err_phrase->cweb_marker());
+ }
+
+ T_DEF_MAP_ITER_type a = Err_phrase->alphabet()->begin();
+ T_DEF_MAP_ITER_type ae = Err_phrase->alphabet()->end();
+ char term_name[Max_cweb_item_size];
+ for(;a!=ae;++a){
+ T_terminal_def* tdef = a->second;
+ @<output |err|'s entry@>;
+ @<get those |T| sdcode class jelly beans ready for consumption@>;
+ using namespace NS_cweave_T_sdc;
+ Ccweave_T_sdc sdc_fsm;
+ XLATE_SYMBOLS_FOR_cweave(tdef->t_name()->c_str(),term_name);
+ sdc_fsm.initialize(&Fsm->ow_err_file_,term_name);
+ Parser sdc_emit(sdc_fsm,&dirs_tokens,0);
+ sdc_emit.parse();
+ }
+ Fsm->ow_err_file_ << "@@** Index.\n";
+}
+
+
+@*2 |MPOST_CWEB_wrt_lrk|.\fbreak
+|cweave|'s |lrk| portion of grammar vocabulary.
+
+@*4 Output |lrk| macros and files.
+@<output |lrk| macros and files@>=
+output_cweb_macros_and_banner(
+Fsm,Fsm->ow_lrk_file_,"Lr K Vocabulary",Fsm->gened_date_time_.c_str()
+,Lrk_phrase->filename_id()->identifier()
+,Lrk_phrase->namespace_id()->identifier()
+,Lrk_phrase->alphabet()->size()
+);
+
+@*5 Lrk hrule to end T entry.\fbreak
+@<lrk rule-it@>=
+ KCHARP rule_it =
+ "\\fbreak%s\n"@/
+ "\\hrule\n";
+ x = sprintf(Fsm->big_buf_,rule_it," ");
+ Fsm->ow_lrk_file_.write(Fsm->big_buf_,x);
+
+@*4 Output |lrk|'s entry.\fbreak
+For now i hardwire the enumeration label here.
+It will be deposited in the enumeration grammar for me to fetch.
+
+Note: why the problem with |reduce operator|?
+The index part of pdftex honks when it uses the \TeX macro
+ |reduce_operator| so i renamed it to |rrrr| to give the proper effect \rrrr.
+@<output |lrk|'s entry@>=
+char ab[] = "Y";
+if(tdef->autoabort() == true) ab[0] = 'Y';
+else ab[0]= 'N';
+char ad[] = "Y";
+
+if(tdef->autodelete() == true) ad[0] = 'Y';
+else ad[0] = 'N';
+switch(tdef->enumerated_id__){
+ case T_Enum::T_LR1_parallel_operator_:{
+ strcpy(name,"\\paralleloperator");
+ strcpy(term_name,"|parallel_operator|");
+ break;
+ }
+ case T_Enum::T_LR1_all_shift_operator_:{
+ strcpy(name,"\\allshift");
+ strcpy(term_name,"|all_shift|");
+ break;
+ }
+ case T_Enum::T_LR1_invisible_shift_operator_:{
+ strcpy(name,"\\invisibleshift");
+ strcpy(term_name,"|invisible_shift|");
+ break;
+ }
+ case T_Enum::T_LR1_fset_transience_operator_:{
+ strcpy(name,"\\transienceoperator");
+ strcpy(term_name,"|transience_operator|");
+ break;
+ }
+ case T_Enum::T_LR1_questionable_shift_operator_:{
+ strcpy(name,"\\questionableoperator");
+ strcpy(term_name,"|questionable_operator|");
+ break;
+ }
+ default: {
+ XLATE_SYMBOLS_FOR_cweave(tdef->t_name()->c_str(),name);
+ XLATE_SYMBOLS_FOR_cweave(tdef->t_name()->c_str(),term_name);
+ break;
+ }
+}
+const char* enum_class_name_format = "T\\_%s\\_";
+char class_name[Max_cweb_item_size];
+XLATE_SYMBOLS_FOR_cweave(tdef->classsym()->c_str(),class_name);
+char a[SMALL_BUFFER_4K];
+ sprintf(a,enum_class_name_format,class_name);
+
+ KCHARP t_entry = "@@*2 {\\bf %s}.\\fbreak\n"@/
+ "Enum: %s\n\\fbreak\n"@/
+ "\\line{Class: %s \\hfil AB: %s \\hfil AD: %s}\n";
+ int x = sprintf(Fsm->big_buf_
+ ,t_entry
+ ,name
+ ,a
+ ,class_name
+ ,ab
+ ,ad
+ );
+ Fsm->ow_lrk_file_.write(Fsm->big_buf_,x);
+ Fsm->ow_lrk_file_<< endl;
+ if(tdef->cweb_marker() != 0){
+ WRT_CWEB_MARKER(&Fsm->ow_lrk_file_,tdef->cweb_marker());
+ }
+ @<lrk rule-it@>;
+
+@*4 Output lrk suffix code if present.\fbreak
+@<output lrk suffix code if present@>=
+ if(Lrk_phrase->lrk_sufx_code() != 0){
+ KCHARP tsuf =
+ "@@*1 {\\bf lrk-sufx} directive.\\fbreak\n";
+ Fsm->ow_lrk_file_ << tsuf;
+
+ T_syntax_code* stc = Lrk_phrase->lrk_sufx_code();
+ if(stc->cweb_marker() != 0){
+ WRT_CWEB_MARKER(&Fsm->ow_lrk_file_,stc->cweb_marker());
+ }
+ KCHARP tsuf_code =
+ "@@<lrk-sufx directive@@>=\n"
+ "%s"
+ "\n";
+ int x = sprintf(Fsm->big_buf_
+ ,tsuf_code
+ ,Lrk_phrase->lrk_sufx_code()->syntax_code()->c_str()
+ );
+ Fsm->ow_lrk_file_.write(Fsm->big_buf_,x);
+ Fsm->ow_lrk_file_<< endl;
+ }
+
+
+@*3 Driver of |MPOST_CWEB_wrt_Lrk|.
+@<accrue source for emit@>+=
+void
+NS_mpost_output::
+Cmpost_output::
+MPOST_CWEB_wrt_Lrk@/
+(Cmpost_output* Fsm,T_lr1_k_phrase* Lrk_phrase){@/
+ @<output |lrk| macros and files@>;
+ if(Lrk_phrase->cweb_marker() != 0){
+ WRT_CWEB_MARKER(&Fsm->ow_lrk_file_,Lrk_phrase->cweb_marker());
+ }
+ char term_name[Max_cweb_item_size];
+ char name[Max_cweb_item_size];
+
+ T_DEF_MAP_ITER_type a = Lrk_phrase->alphabet()->begin();
+ T_DEF_MAP_ITER_type ae = Lrk_phrase->alphabet()->end();
+ for(;a!=ae;++a){
+ T_terminal_def* tdef = a->second;
+ @<output |lrk|'s entry@>;
+ @<get those |T| sdcode class jelly beans ready for consumption@>;
+ using namespace NS_cweave_T_sdc;
+ Ccweave_T_sdc sdc_fsm;
+ sdc_fsm.initialize(&Fsm->ow_lrk_file_,term_name);
+ Parser sdc_emit(sdc_fsm,&dirs_tokens,0);
+ sdc_emit.parse();
+ }
+ @<output lrk suffix code if present@>;
+ Fsm->ow_lrk_file_ << "@@** Index.\n";
+}
+
+@*2 |MPOST_CWEB_wrt_rule_s_lhs_sdc|.\fbreak
+|cweave|'s statements for a rule's ``lhs'' syntax directed code.
+Go to it grammar.
+@<accrue source for emit@>+=
+void
+NS_mpost_output::
+Cmpost_output::
+MPOST_CWEB_wrt_rule_s_lhs_sdc@/
+(Cmpost_output* Fsm,rule_def* Rule_def){@/
+ T_rule_lhs_phrase* rlp = Rule_def->rule_lhs();
+ if(rlp == 0) return;
+ SDC_MAP_type* sr_dirs = rlp->lhs_directives_map();
+ SDC_MAP_ITER_type i = sr_dirs->begin();
+ SDC_MAP_ITER_type ie = sr_dirs->end();
+ TOKEN_GAGGLE dirs_tokens;
+ for(;i!=ie;++i){
+ CAbs_lr1_sym* sym = i->second;
+ dirs_tokens.push_back(*sym);
+ }
+ T_parallel_monitor_phrase* ppm = Rule_def->parallel_mntr();
+ if(ppm != 0){
+ sr_dirs = ppm->mntr_directives_map();
+ i = sr_dirs->begin();
+ ie = sr_dirs->end();
+ for(;i!=ie;++i){
+ CAbs_lr1_sym* sym = i->second;
+ dirs_tokens.push_back(*sym);
+ }
+ }
+ using namespace NS_cweave_lhs_sdc;
+ Ccweave_lhs_sdc lhs_sdc_fsm;
+ lhs_sdc_fsm.initialize(&Fsm->ow_file_,Rule_def->rule_name()->c_str());
+ Parser lhs_sdc_emit(lhs_sdc_fsm,&dirs_tokens,0);
+ lhs_sdc_emit.parse();
+}
+
+@*2 |MPOST_CWEB_should_subrule_be_printed|.\fbreak
+Check whether the subrule should be |cweave|ed.
+If there is no syntax directed code, then bypass diagramming
+it as its rule already does the big picture --- forest.
+@<accrue source for emit@>+=
+bool
+NS_mpost_output::
+Cmpost_output::
+MPOST_CWEB_should_subrule_be_printed@/
+(Cmpost_output* Fsm,T_subrule_def* Subrule_def){@/
+ if(Subrule_def->cweb_marker() != 0) return true;
+ SDC_MAP_type* sr_dirs = Subrule_def->subrule_directives();
+ if(sr_dirs->empty() == true) return false;
+ return true;
+}
+@*3 Deal with T's classifications.
+@!To do: emit single character references; adjust |cweave|?@>;
+@<deal with T's classifications@>=
+ switch(td->classification()){
+ case T_terminal_def::err:{
+ int x = sprintf(Fsm->big_buf_,xref,name);
+ Fsm->ow_file_.write(Fsm->big_buf_,x);
+ break;
+ }
+ case T_terminal_def::rc:{
+break;
+ INT_STR_MAP_ITER_type i = Fsm->xlated_names_.find(td->enumerated_id__);
+ if(i != Fsm->xlated_names_.end()){
+ int x = sprintf(Fsm->big_buf_,xref,i->second.c_str());
+ Fsm->ow_file_.write(Fsm->big_buf_,x);
+ }else{
+ int x = sprintf(Fsm->big_buf_,xref,name);
+ Fsm->ow_file_.write(Fsm->big_buf_,x);
+ }
+ break;
+ }
+ case T_terminal_def::lrk:{
+ INT_STR_MAP_ITER_type i = Fsm->xlated_names_.find(td->enumerated_id__);
+ if(i != Fsm->xlated_names_.end()){
+ int x = sprintf(Fsm->big_buf_,xref,i->second.c_str());
+ Fsm->ow_file_.write(Fsm->big_buf_,x);
+ }else{
+ int x = sprintf(Fsm->big_buf_,xref,name);
+ Fsm->ow_file_.write(Fsm->big_buf_,x);
+ }
+ break;
+ }
+ case T_terminal_def::t:{
+ INT_STR_MAP_ITER_type i = Fsm->xlated_names_.find(td->enumerated_id__);
+ if(i != Fsm->xlated_names_.end()){
+ int x = sprintf(Fsm->big_buf_,xref,i->second.c_str());
+ Fsm->ow_file_.write(Fsm->big_buf_,x);
+ }else{
+ int x = sprintf(Fsm->big_buf_,xref,name);
+ Fsm->ow_file_.write(Fsm->big_buf_,x);
+ }
+ break;
+ }
+ }
+
+@*2 |MPOST_CWEB_xref_refered_T|.\fbreak
+Don't emit single characters as |pdftex| honks in the index section as
+this was a decision to not clutter temporary variables.
+Until i get more intimate with its code i check
+to this limitation and my ignorance.
+@<accrue source for emit@>+=
+void
+NS_mpost_output::
+Cmpost_output::
+MPOST_CWEB_xref_refered_T@/
+(Cmpost_output* Fsm,refered_T* R_T){@/
+ T_in_stbl* t = R_T->t_in_stbl();
+ T_terminal_def* td = t->t_def();
+
+ KCHARP xref = "@@.%s@@>\n";
+
+char name[Max_cweb_item_size];
+ XLATE_SYMBOLS_FOR_cweave(td->t_name()->c_str(),name);
+@<deal with T's classifications@>;
+}
+
+@*2 |MPOST_CWEB_xref_refered_rule|.\fbreak
+Watch for underscore in rule's name. So makesure that |cweave|'s
+directive backslash underscore is part of the name.
+@<accrue source for emit@>+=
+void
+NS_mpost_output::
+Cmpost_output::
+MPOST_CWEB_xref_refered_rule@/
+(Cmpost_output* Fsm,refered_rule* R_rule){@/
+ rule_in_stbl* r = R_rule->Rule_in_stbl();
+ rule_def* rd = r->r_def();
+ KCHARP xref = "@@.%s@@>\n";
+ string name_with_bkslash;
+ int len = rd->rule_name()->length();
+ for(int x=0;x<len;++x){
+ char c = (*rd->rule_name())[x];
+ if(c == '_'){
+ name_with_bkslash += '\\';
+ }
+ name_with_bkslash += c;
+ }
+ int x = sprintf(Fsm->big_buf_,xref,name_with_bkslash.c_str());
+ Fsm->ow_file_.write(Fsm->big_buf_,x);
+}
+
+@** Grammar's ``Called threads'' First Set Calculation.\fbreak
+What is it? Similar to a terminal first set definition, it is the list of
+``called thread'' expressions in the ``Start Rule''
+arrived at from rule closures.
+Why is it needed?
+It is the content of the ``list-of-transitive-threads'' construct
+emitted in the grammar's ``fsc'' file for \olinker to
+resolve into T first sets per thread.
+These first sets are what determines whether a thread should be called.
+\fbreak
+\fbreak
+The Algorithm:\fbreak
+\INDENT{.1in}{add start rule's subrules to the element space}
+\INDENT{.1in}{walk the element space}
+\INDENT{.2in}{Element assessment:}
+\INDENT{.3in}{a) eosubrule: advance to next point in space}
+\INDENT{.3in}{b) referenced rule:}
+\INDENT{.4in}{determine if referenced rule already contributed}
+\INDENT{.5in}{no --- add rule to contributed closure rules set}
+\INDENT{.7in}{add its subrules to the element space}
+\INDENT{.4in}{is ``referenced rule'' epsilonable?}
+\INDENT{.5in}{yes --- overlay current element with its right neighbour}
+\INDENT{.5in}{no --- advance to next subrule in element space}
+\INDENT{.3in}{c) \PARshift rtn-T NSa::THa type expression?}
+\INDENT{.5in}{no --- advance to next subrule point in space}
+\INDENT{.5in}{yes --- add called thread to ``called thread first set'}
+\INDENT{.7in}{advance to next subrule in element space}
+\INDENT{.1in}{until all entries in element space stomped on}
+\fbreak
+The algorithm uses a 1 dimensional space of subrules.
+Each point represents a subrule's element position within its rhs.
+As the subrule's current element is being evaluated, if the next element
+in the subrule is needed due to the current element being an epsilonable rule
+ it overlays the being assessed element.
+Effectively the subrule being processed is a fishing line that
+reels in its next element ontop of the current element.
+It tap dances ontop of the element point
+until the subrule's elements assessment is
+ exhausted before advancing to the next subrule.
+After, the subrules residues are their last
+element that exhausted its assessment.
+The element space is
+ fixed in size: just the ``total number of subrules''.
+\fbreak
+\settabs\+\indent&1in\qquad&\qquad&{\it subrule's symbols}&\qquad&\qquad&\cr
+\+&\it Rule&&{\it subrule's symbols}&&{residue sym}\cr
+\+&St &$\rightarrow$ &$ $ S $\bot$&&S\cr
+\+&S &$\rightarrow$ &$ $ $R_a^{\epsilon}$ $R_b^{\epsilon}$ $R_c$&&$R_c$\cr
+\+& &$\rightarrow$ &$ $ $R_a^{\epsilon}$ $R_d^{\epsilon}$ $R_e$&&$R_e$\cr
+\+&$R_a^{\epsilon}$ &$\rightarrow$ &&& \cr
+\+&&$\rightarrow$ &$ $ \PARshift $ a$ NSa::THa&&\PARshift\cr
+\+&$R_b^{\epsilon}$ &$\rightarrow$ &&& \cr
+\+&&$\rightarrow$ &$ $ \PARshift $ b$ NSb::THb&&\PARshift\cr
+\+&$R_c$ &$\rightarrow$ &$ $ c&&c\cr
+\+&$R_d^{\epsilon}$ &$\rightarrow$ &&& \cr
+\+&&$\rightarrow$ &$ $ \PARshift $ d$ NSd::THd&&\PARshift\cr
+\+&$R_e$ &$\rightarrow$ &$ $ e&&e\cr
+\fbreak
+\hbox{\hskip.5in Above grammar's called thread's first set: FS(Tha)+FS(Thb)+FS(THd)}\fbreak
+\hbox{\hskip.7in "/usr/local/yacco2/qa/test\_called\_thd\_fs.lex" grammar exercises algorithm}\fbreak
+
+@*4 Add subrule's 1st element to element space.
+@<add subrule's 1st element to element space@>=
+ vector<AST*>::iterator ti = subrules_can.nodes_visited()->begin();
+ vector<AST*>::iterator tie = subrules_can.nodes_visited()->end();
+ for(;ti!=tie;++ti){@/
+ AST* srdef_t = *ti;
+ @=T_subrule_def* sr_def = (T_subrule_def*)AST::content(*srdef_t);@>@/
+ AST* sr_t = sr_def->subrule_s_tree();
+ AST* et = AST::get_spec_child(*sr_t,1);
+ ++nc;
+ elem_space[nc]=et;
+ }
+
+@*3 Add Start rule's subrules to element space.\fbreak
+@<add Start rule's subrules to element space@>=
+{
+ AST* rtree = Start_rule->rule_s_tree();
+ ast_prefix_1forest subrule_walk(*rtree,&just_walk_functr,&sr_filter,ACCEPT_FILTER);
+ tok_can<AST*> subrules_can(subrule_walk);
+ yacco2::UINT xxx(0);
+ for(;subrules_can.operator[](xxx) != yacco2::PTR_LR1_eog__;++xxx) ;
+ @<add subrule's 1st element to element space@>;
+}
+
+@*3 Add referenced rule to element space.\fbreak
+ @<add referenced rule to element space@>=
+{
+ i = rules_in_elem_space.find(rdef);
+ if(i == rules_in_elem_space.end()){// rule not dealt with so add it
+ rules_in_elem_space.insert(rdef);
+ AST* rtree = rdef->rule_s_tree();
+ ast_prefix_1forest subrule_walk(*rtree,&just_walk_functr,&sr_filter,ACCEPT_FILTER);
+ tok_can<AST*> subrules_can(subrule_walk);
+ yacco2::UINT xxx(0);
+ for (;subrules_can.operator[](xxx) != yacco2::PTR_LR1_eog__;++xxx) ;
+ @<add subrule's 1st element to element space@>;
+ }
+}
+
+@*3 Assess element type.\fbreak
+Handles ``called thread'' expression.
+All other types are thrown out.
+@<deal with thread called element type@>=
+switch(cur_elem->enumerated_id__){
+ case T_Enum::T_T_eosubrule_:{
+ ++cc;//finished with subrule, so adv to next subrule
+ continue;
+ }
+ case T_Enum::T_refered_T_:{
+ @=refered_T* rt = (refered_T*)cur_elem;@>@/
+ T_terminal_def* td = rt->its_t_def();
+ if(td->enum_id() != LR1_PARALLEL_OPERATOR){
+ ++cc;//finished with subrule, so adv to next subrule
+ continue;
+ }
+ @<deal with thread call expression@>;
+ ++cc;//finished with called expr, so adv to next subrule
+ continue;
+ }
+ case T_Enum::T_refered_rule_:{
+ @=refered_rule* rr = (refered_rule*)cur_elem;@>@/
+ rule_def* rdef = rr->its_rule_def();
+ @<add referenced rule to element space@>;
+ if(rdef->epsilon() == YES){
+ AST* et = AST::brother(*cur_elem_t);
+ elem_space[cc]=et;//overlay
+ continue;
+ }else{// finished with subrule
+ ++cc;//adv to next subrule
+ continue;
+ }
+ }
+ }
+@*4 Deal with ``thread call'' expression.\fbreak
+Get the ``called-thread-eosubrule'' terminal in the 3rd tree position.
+Only add it and not the ``null-called-thread-eosubrule''
+as it indicates that one of the called threads will
+return its stated ``return T''.
+@<deal with thread call expression@>=
+ AST* first_el_t = cur_elem_t;
+ AST* third_el_t = AST::get_younger_sibling(*first_el_t,2);
+ CAbs_lr1_sym* sym = AST::content(*third_el_t);
+ if(sym->enumerated_id__ == T_Enum::T_T_called_thread_eosubrule_){
+ T_called_thread_eosubrule* ct = (T_called_thread_eosubrule*)sym;
+ Start_rule->add_to_called_thread_first_set(ct);
+ }
+
+@*2 |GEN_CALLED_THREADS_FS_OF_RULE|.\fbreak
+Make |elem_space| local to the translation unit instead of
+the local to the function for efficiecy reasons.
+@<accrue source for emit@>+=
+AST* elem_space[Max_no_subrules];
+void GEN_CALLED_THREADS_FS_OF_RULE(rule_def* Start_rule){@/
+ using namespace NS_yacco2_T_enum;
+ using namespace std;
+ std::set<rule_def*> rules_in_elem_space;
+ std::set<rule_def*>::iterator i;
+ INT_SET_type sr_filter;
+ sr_filter.insert(T_Enum::T_T_subrule_def_);
+ tok_can_ast_functor just_walk_functr;
+ T_enum_phrase* enum_ph = O2_T_ENUM_PHASE;
+ int cc(0); // cur cell
+ int nc(-1); // next cell
+ AST* cur_elem_t(0);
+ CAbs_lr1_sym* cur_elem(0);
+ @<add Start rule's subrules to element space@>;
+ while(cc <=nc){
+ cur_elem_t = elem_space[cc];
+ cur_elem = AST::content(*cur_elem_t);
+ @<deal with thread called element type@>;
+ }
+}
+
+@** First set calculations.\fbreak
+Raison d'\^etre: ugly formatted code by cweave.
+This code should reside in |first_set_rules| grammar.
+There are 2 things being done.
+Calculate the first set and record the closure only rules
+for the state used to generate the follow sets.
+
+@*3 Add Defined rule's subrules to element space.
+@<add Defined rule's subrules to element space@>=
+{
+ AST* rtree = Rule_def->rule_s_tree();
+ ast_prefix_1forest subrule_walk(*rtree,&just_walk_functr,&sr_filter,ACCEPT_FILTER);
+ tok_can<AST*> subrules_can(subrule_walk);
+ yacco2::UINT xxx(0);
+ for(;subrules_can.operator[](xxx) != yacco2::PTR_LR1_eog__;++xxx) ;
+ @<add subrule's 1st element to element space@>;
+}
+
+@*3 Assess element type.
+@<deal with element type@>=
+switch(cur_elem->enumerated_id__){
+ case T_Enum::T_T_eosubrule_:{
+ ++cc;//finished with subrule, so adv to next subrule
+ continue;
+ }
+ case T_Enum::T_refered_T_:{
+ @=refered_T* rt = (refered_T*)cur_elem;@>@/
+ T_in_stbl* tstbl = rt->t_in_stbl();
+ Rule_def->add_to_first_set(*tstbl);
+Rule_def->add_rule_adding_T_in_first_set(tstbl,rt->grammar_s_enumerate());
+ ++cc;//finished subrule, so adv to next subrule
+ continue;
+ }
+ case T_Enum::T_refered_rule_:{
+ @=refered_rule* rr = (refered_rule*)cur_elem;@>@/
+ rule_def* rdef = rr->its_rule_def();
+ @<add referenced rule to element space@>;
+ if(rdef->epsilon() == YES){
+ AST* et = AST::brother(*cur_elem_t);
+ elem_space[cc]=et;//overlay
+ continue;
+ }else{// finished with subrule
+ ++cc;//adv to next subrule
+ continue;
+ }
+ }
+ }
+
+@*3 Check Start rule for \emptyrule{ }condition.\fbreak
+This deals with thread only grammars. Their first sets determine
+whether they get called.
+So why the check?
+What does it mean when the Start rule is \emptyrule{ }for a thread?
+The backstop is its lookahead that normally becomes
+the reducing T set to accept the grammar.
+I choose to call it just in case the thread is a logic sequencer
+of \emptyrule{ }rules.
+The consequence is just an abort blip by the called thread.
+If the grammar writer doesn't like it, remove the Start rule \emptyrule{ }condition.
+@<is Start rule \emptyrule if yes add LA expression to first set@>=
+if(Rule_def->rule_no() != 1) goto not_start_rule;
+if(O2_PP_PHASE == 0) goto not_start_rule;// not a thread grammar
+if(Rule_def->epsilon() == NO) goto not_start_rule;// LA not needed
+{
+ T_parallel_la_boundary* la = O2_PP_PHASE->la_bndry();
+ set<T_in_stbl*>::iterator lai = la->la_first_set()->begin();
+ set<T_in_stbl*>::iterator laie = la->la_first_set()->end();
+ for(;lai!=laie;++lai){
+ T_in_stbl* tstbl = *lai;
+ Rule_def->add_to_first_set(*tstbl);
+ }
+}
+not_start_rule:;
+
+@*2 |GEN_FS_OF_RULE|.\fbreak
+The only wrinkle is the Start rule. What do u do
+when the grammar is a thread and the Start rule is \emptyrule?
+Well add the ``lookahead expression'' to its first set.
+@<accrue source for emit@>+=
+void GEN_FS_OF_RULE(rule_def* Rule_def){@/
+ using namespace NS_yacco2_T_enum;
+ using namespace std;
+ std::set<rule_def*> rules_in_elem_space;
+ std::set<rule_def*>::iterator i;
+ INT_SET_type sr_filter;
+ sr_filter.insert(T_Enum::T_T_subrule_def_);
+ tok_can_ast_functor just_walk_functr;
+
+ T_enum_phrase* enum_ph = O2_T_ENUM_PHASE;
+ int cc(0); // cur cell
+ int nc(-1); // next cell
+ AST* cur_elem_t(0);
+ CAbs_lr1_sym* cur_elem(0);
+ @<add Defined rule's subrules to element space@>;
+ @<is Start rule \emptyrule if yes add LA expression to first set@>;
+ while(cc <=nc){
+ cur_elem_t = elem_space[cc];
+ cur_elem = AST::content(*cur_elem_t);
+ @<deal with element type@>;
+ }
+}
+
+@** Print out Rule's First Set.\fbreak
+The rule's first set elements are sorted in lexicographical order.
+@*4 Set up first set sort.\fbreak
+Why your own copy into a ``random iterator'' container?
+Glad u asked dave, MS ``copy'' template algorithm aborts and
+``stable\_sort'' requires a ``random iterator'' or it will give u a compile
+time error on non Microsoft platforms.
+|copy(fs->begin(),fs->end(),ran_array.begin());| works properly on Sun.
+
+ @<set up first set sort@>=
+ T_IN_STBL_SET_type* fs = Rule_def->first_set();
+ Ofile << "@@*2 |" << Rule_def->rule_name()->c_str() << "|";
+ if(Rule_def->epsilon() == true){
+ Ofile << "{$^\\emptyrule$}";
+ }
+ Ofile << " \\# in set: " << fs->size() << ".\\fbreak"<< std::endl;
+ T_IN_STBL_SORTED_SET_type ran_array;
+ ran_array.reserve(fs->size());
+T_IN_STBL_SET_ITER_type ii= fs->begin();
+T_IN_STBL_SET_ITER_type iie= fs->end();
+for(;ii != iie;++ii){
+ ran_array.push_back(*ii);
+}
+ stable_sort(ran_array.begin(),ran_array.end(),fs_sort_criteria);
+
+@*3 Print out the sorted first set elements.
+@<print out the sorted first set elements@>=
+ char xlate[Max_cweb_item_size];
+ T_IN_STBL_SORTED_SET_ITER_type i = ran_array.begin();
+ T_IN_STBL_SORTED_SET_ITER_type ie = ran_array.end();
+ for(;i!=ie;++i){
+ T_in_stbl* el = *i;
+ Ofile<<" ";
+ XLATE_SYMBOLS_FOR_cweave(el->t_def()->t_name()->c_str(),xlate);
+ Ofile << xlate <<"\\ \\ "<<std::endl;
+ }
+
+@*2 Driver of |PRT_RULE_S_FIRST_SET|.
+ @<accrue source for emit@>+=
+bool
+fs_sort_criteria(const NS_yacco2_terminals::T_in_stbl*E1,const NS_yacco2_terminals::T_in_stbl*E2){
+ @=T_in_stbl* e1 = (T_in_stbl*)E1;@>@/
+ @=T_in_stbl* e2 = (T_in_stbl*)E2;@>@/
+ T_terminal_def* e1_t_def = e1->t_def();
+ T_terminal_def* e2_t_def = e2->t_def();
+ string* e1s = e1_t_def->t_name();
+ string* e2s = e2_t_def->t_name();
+ if(*e1s < *e2s)return true;
+ return false;
+}
+ void PRT_RULE_S_FIRST_SET(std::ofstream& Ofile,NS_yacco2_terminals::rule_def* Rule_def){
+ @<set up first set sort@>;
+ @<print out the sorted first set elements@>;
+ }
+
+@** Commonize LA sets.\fbreak
+@*3 |find_common_la_set_idx|.\fbreak
+Reduce the number of lookahead sets by keeping a global registry.
+The index returned is the vector's index.
+This value is deposited in the state element's reducing configuration.
+It is is used in manufacturing the common la set's name.\fbreak
+\fbreak
+Some optimizations:\fbreak
+If |eolr| is in set, as it represents all terminals, just keep
+it as the other terminals are ch ch chatter.
+@<accrue source for emit@>+=
+LA_SET_type* make_copy_of_la_set(LA_SET_type* Set1){
+ LA_SET_type* copy_set = new LA_SET_type;
+ using namespace yacco2_stbl;
+ T_sym_tbl_report_card report_card;
+ find_sym_in_stbl(report_card,*LR1_EOLR_LITERAL);
+ @=T_in_stbl* td = (T_in_stbl*)report_card.tbl_entry_->symbol_;@>@/
+ LA_SET_ITER_type f = Set1->find(td);
+ if(f != Set1->end()){
+ copy_set->insert(td);
+ return copy_set;
+ }
+ LA_SET_ITER_type i = Set1->begin();
+ LA_SET_ITER_type ie = Set1->end();
+ for(;i!=ie;++i){
+ copy_set->insert(*i);
+ }
+ return copy_set;
+}
+
+@*3 |are_2_la_sets_equal|.\fbreak
+See bugs as to why i roll my own.
+@<accrue source for emit@>+=
+bool are_2_la_sets_equal(LA_SET_type* Common_set1,LA_SET_type* Set2){
+ LA_SET_type* la_set_to_compare_against = Set2;
+ using namespace yacco2_stbl;
+ T_sym_tbl_report_card report_card;
+ find_sym_in_stbl(report_card,*LR1_EOLR_LITERAL);
+ @=T_in_stbl* td = (T_in_stbl*)report_card.tbl_entry_->symbol_;@>@/
+ LA_SET_type* eolr_set(0);
+ LA_SET_ITER_type f = Set2->find(td);
+ if(f != Set2->end()){
+ eolr_set = new LA_SET_type;
+ eolr_set->insert(td);
+ la_set_to_compare_against = eolr_set;
+ }
+
+ if(Common_set1->size() != la_set_to_compare_against->size()){
+ if(eolr_set !=0) delete eolr_set;
+ return false;
+ }
+ LA_SET_ITER_type set1i = Common_set1->begin();
+ LA_SET_ITER_type set1ie = Common_set1->end();
+ LA_SET_ITER_type set2i = la_set_to_compare_against->begin();
+ LA_SET_ITER_type set2ie = la_set_to_compare_against->end();
+ for(;set1i != set1ie;){
+ T_in_stbl* set1T = *set1i;
+ T_in_stbl* set2T = *set2i;
+ if(set1T != set2T)
+ return false;
+ ++set1i;
+ ++set2i;
+ }
+ if(eolr_set != 0) delete eolr_set;
+ return true;
+}
+
+@*3 |find_common_la_set_idx|.\fbreak
+@<accrue source for emit@>+=
+int find_common_la_set_idx(LA_SET_type* La_){
+ if(COMMON_LA_SETS.empty() == true){
+ LA_SET_type* copy_set = make_copy_of_la_set(La_);
+ COMMON_LA_SETS.push_back(copy_set);
+ return 0;
+ }
+ COMMON_LA_SETS_ITER_type i = COMMON_LA_SETS.begin();
+ COMMON_LA_SETS_ITER_type ie = COMMON_LA_SETS.end();
+ int idx(0);
+ for(;i!=ie;++i,++idx){
+ LA_SET_type* st1 = *i;
+ bool result = are_2_la_sets_equal(st1,La_);
+ if(result == true){
+ return idx;
+ }
+ }
+ LA_SET_type* copy_set = make_copy_of_la_set(La_);
+ COMMON_LA_SETS.push_back(copy_set);
+ return idx;
+}
+
+
+@*2 |COMMONIZE_LA_SETS|.\fbreak
+Reduce the number of lookahead sets by keeping a global registry.
+The index returned is the COMMON\_LA\_SETS index.
+This value is deposited in the state element's reducing configuration.
+It is used in the manufacturing of the common la set's name referenced
+from the emitted tables.
+@<accrue source for emit@>+=
+void COMMONIZE_LA_SETS(){
+ STATES_ITER_type si = LR1_STATES.begin();
+ STATES_ITER_type sie = LR1_STATES.end();
+ for(;si!=sie;++si){
+ state* cur_state = *si;
+ S_VECTORS_ITER_type svi = cur_state->state_s_vector_.begin();
+ S_VECTORS_ITER_type svie = cur_state->state_s_vector_.end();
+ for(;svi!=svie;++svi){
+ S_VECTOR_ELEMS_ITER_type seli = svi->second.begin();
+ S_VECTOR_ELEMS_ITER_type selie = svi->second.end();
+ for(;seli!=selie;++seli){
+ state_element* se = *seli;
+ if(se->goto_state_ != 0) continue;
+ bool set_ok = se->calc_la(*se);// make sure it is filled directly
+ if (set_ok == false){// la set is empty so get out
+ return;
+ }
+ se->common_la_set_idx_ = find_common_la_set_idx(se->la_set_);
+ }
+ }
+ }
+}
+
+@** Calculate recycling rule's use count.\fbreak
+This is external as my cweave documentation approach to grammars is rudimentary.
+It tag teams with |rules_use_cnt.lex|
+grammar who drives the overall evaluation and use count posting per
+defined rule.\fbreak
+\INDENT{.1in}{1) if RxSkeleton exists in cyclic table then return its use value}
+\INDENT{.1in}{2) add RxSkeleton to cyclic table}
+\INDENT{.1in}{3) evaluate each skeleton's rhs for rule's use cnt}
+\INDENT{.2in}{a) determine indirect use count for rhs}
+\INDENT{.2in}{b) determine rhs's max use cnt from direct and indirect use cnts}
+@*3 |calc_cyclic_key|.\fbreak
+Compound keys for a c++ map template are a nuisance
+due to the support operators required for key ordering etc.
+So i'll use a unique key of int and let the map deal well
+with an integer key.
+
+The 2 parts of the key are the rule defs using their enumerated values.
+So i'll make the 2 parts of the key as a number system of base ``number of rules''.
+Part 1 is the 2nd digit position and part 2 is the units digit.
+As the rule's enumeration starts after the T vocabulary, i must
+remove the relative ranking of the T vocabulary.
+This way i'm only dealing with base number of rules.
+@<accrue source for emit@>+=
+int calc_cyclic_key@/
+(NS_yacco2_terminals::rule_def* Rule_use,NS_yacco2_terminals::rule_def* Against_rule){@/
+ using namespace NS_yacco2_T_enum;
+ static int no_of_rules(0);
+ static int start_of_rules(0);
+ if(no_of_rules == 0){
+ start_of_rules = O2_T_ENUM_PHASE->total_enumerate();
+ no_of_rules = O2_RULES_PHASE->rules_alphabet()->size();
+ }
+ int rule_use_enum_rel0 = Rule_use->enum_id() - start_of_rules;
+ int part1_key_of_rule_use = rule_use_enum_rel0 * no_of_rules;
+ int against_rule_enum_rel0 = Against_rule->enum_id() - start_of_rules;
+ int part2_key_of_against_rule = against_rule_enum_rel0;
+ int key = part1_key_of_rule_use + part2_key_of_against_rule;
+ return key;
+}
+
+@*3 |determine_rhs_indirect_use_cnt|.\fbreak
+The subrule forest is passed in. Just walk its rhs's elements.
+Indirect count comes from rules who reference the ``use cnt'' rule.
+The assessment is from its maximum derives count determined
+against all its rhses.
+Note the recursion on a referenced rule within its rhs that can derive
+another rule that can reference the ``use cnt'' rule.
+@<accrue source for emit@>+=
+void determine_rhs_indirect_use_cnt@/
+(NS_yacco2_terminals::rule_def* Use_for_rule,yacco2::AST* SRule_t
+,NS_yacco2_terminals::rule_def* Against_rule){@/
+ using namespace NS_yacco2_T_enum;
+ SET_FILTER_type filter;
+ filter.insert(T_Enum::T_refered_rule_);
+
+ tok_can_ast_functor walk_functr;
+ ast_prefix_1forest walk(*SRule_t,&walk_functr,&filter,ACCEPT_FILTER);
+ TOK_CAN_TREE_type rules_use_can(walk);
+ int indirect_use_cnt(0);
+ int direct_use_cnt(0);
+ int x(0);
+ CAbs_lr1_sym* sym=rules_use_can[x];
+ for(;sym->enumerated_id() != LR1_Eog;++x,sym=rules_use_can[x]){
+ @=refered_rule* rr = (refered_rule*)sym;@>@/
+ rule_def* its_rd = rr->its_rule_def();
+ if(its_rd == Use_for_rule){
+ continue;// direct cnt
+ }
+ int idc = MAX_USE_CNT_RxR(Use_for_rule,its_rd);
+ }
+}
+
+@*3 |determine_rhs_max_use_cnt|.\fbreak
+The interesting part is to determine the
+the use count from direct and derived rules.
+A derived rule in the rhs must exercise its rhs elements before it
+reduces. This is like a lookahead of ``used rules''.
+Once it reduces to self, it frees up its ``used rules''.
+@<accrue source for emit@>+=
+int determine_rhs_max_use_cnt@/
+(NS_yacco2_terminals::rule_def* Use_for_rule,yacco2::AST* SRule_t
+,NS_yacco2_terminals::rule_def* Against_rule){@/
+ using namespace NS_yacco2_T_enum;
+ SET_FILTER_type filter;
+ filter.insert(T_Enum::T_refered_rule_);
+
+ tok_can_ast_functor walk_functr;
+ ast_prefix_1forest walk(*SRule_t,&walk_functr,&filter,ACCEPT_FILTER);
+ TOK_CAN_TREE_type rules_use_can(walk);
+ int running_indirect_use_cnt(0);
+ int running_direct_use_cnt(0);
+ int x(0);
+ CAbs_lr1_sym* sym=rules_use_can[x];
+ rule_def* its_rd(0);
+ for(;sym->enumerated_id() != LR1_Eog;++x,sym=rules_use_can[x]){
+ @=refered_rule* rr = (refered_rule*)sym;@>@/
+ its_rd = rr->its_rule_def();
+ if(its_rd == Against_rule) Against_rule->recursive(YES);
+ if(its_rd == Use_for_rule){
+ ++running_direct_use_cnt;
+ continue;// direct cnt
+ }else{
+ use_cnt_type rule_use_key(Use_for_rule,its_rd);
+ int use_cnt_key = calc_cyclic_key(Use_for_rule,its_rd);
+ CYCLIC_USE_TBL_ITER_type i = CYCLIC_USE_TABLE.find(use_cnt_key);
+ use_cnt_type& uc = i->second;
+ int idc = uc.use_cnt_;// use cnt
+ int potential_idc_cnt = idc + running_direct_use_cnt;
+ if(potential_idc_cnt > running_indirect_use_cnt){
+ running_indirect_use_cnt = potential_idc_cnt;
+ }
+ }
+ }
+ if(running_direct_use_cnt > running_indirect_use_cnt){
+ return running_direct_use_cnt;
+ }
+ return running_indirect_use_cnt;
+}
+
+@*2 |MAX_USE_CNT_RxR|: called by |rules_use_cnt.lex| grammar.\fbreak
+Watch for cycling. It is initially called from |rules_use_cnt.lex| grammar.
+@<accrue source for emit@>+=
+int MAX_USE_CNT_RxR@/
+ (NS_yacco2_terminals::rule_def* Rule_use,NS_yacco2_terminals::rule_def* Against_rule){
+ use_cnt_type rule_use_key(Rule_use,Against_rule);
+ int use_cnt_key = calc_cyclic_key(Rule_use,Against_rule);
+ CYCLIC_USE_TBL_ITER_type i = CYCLIC_USE_TABLE.find(use_cnt_key);
+ if(i != CYCLIC_USE_TABLE.end()){
+ return i->second.use_cnt_;
+ }
+ CYCLIC_USE_TABLE.insert(make_pair(use_cnt_key,rule_use_key));
+ using namespace NS_yacco2_T_enum;
+ if(Against_rule->rule_use_skeleton() == 0){// no rules used in its rhses
+ i = CYCLIC_USE_TABLE.find(use_cnt_key);
+ use_cnt_type& uc = i->second;
+ uc.use_cnt_ = 0;
+ return 0;
+ }
+ SET_FILTER_type filter;
+ filter.insert(T_Enum::T_T_subrule_def_);
+ tok_can_ast_functor walk_functr;
+ ast_prefix walk(*Against_rule->rule_use_skeleton(),&walk_functr
+ ,&filter,ACCEPT_FILTER);
+ TOK_CAN_TREE_type rules_use_can(walk);
+ int use_cnt(0);
+ int x(0);
+ CAbs_lr1_sym* sym=rules_use_can[x];
+ for(;sym->enumerated_id() != LR1_Eog;++x,sym=rules_use_can[x]){// walk rhses
+ AST* sr_t = rules_use_can.ast(x);
+ determine_rhs_indirect_use_cnt(Rule_use,sr_t,Against_rule);
+ int rhs_uc = determine_rhs_max_use_cnt(Rule_use,sr_t,Against_rule);
+ if(use_cnt < rhs_uc){
+ use_cnt = rhs_uc;
+ }
+ }
+ i = CYCLIC_USE_TABLE.find(use_cnt_key);
+ use_cnt_type& uc = i->second;
+ if((Against_rule->recursive() == YES) // eliminate self recursion
+ && (Rule_use != Against_rule)) use_cnt = 2*use_cnt;
+ uc.use_cnt_ = use_cnt;
+ return use_cnt;
+}
+
+
+@** Emit Grammar by External procedures.\fbreak
+I choose this route to make life easy for me.
+A table of contents outlines the activities.
+Each specificly outputted component will be done by an external routine.
+Some calls could be nested within other external procedures.
+Local scope uses lower case letters for procedure names whilst global scope
+uses capital letters.\fbreak
+
+This approach isolates the variable scoping per
+routine where software responsibilities are self contained per module and not distributed!
+It would be nice if c++ could have nested procedure definitions but...
+\fbreak
+\fbreak
+State name convention:\fbreak
+fsm class name both for monolithic and thread grammars. An example:\fbreak
+Format: Sxxx\_yyy where xxx is the state number starting from 1 and
+yyy is the fsm class name : Ceol.\fbreak
+S1\_Ceol is the starting state for the Ceol grammar.\fbreak
+\fbreak
+Thread convention:\fbreak
+There are 2 thread name contexts ---
+the thread name to call and the thread entry reference:\fbreak
+Thread name procedure:\fbreak
+Name supplied by the ``parallel-thread-function'' construct.\fbreak
+Eample of a thread procedure from the ``eol.lex'' grammar:\fbreak
+yacco2::THR \_YACCO2\_CALL\_TYPE NS\_eol::TH\_eol(yacco2::Parser* To\_judge);\fbreak
+Notice that it is caccooned by its namespace supplied by its ``parallel-parser''
+grammar contruct.
+\fbreak
+\fbreak
+\INDENT{.3in}{parallel-parser}
+\INDENT{.3in}{(}
+\INDENT{.4in}{parallel-thread-function}
+\INDENT{.5in}{TH\_angled\_string}
+\INDENT{.4in}{***}
+\INDENT{.4in}{parallel-la-boundary}
+\INDENT{.5in}{eolr}
+\INDENT{.4in}{***}
+\INDENT{.3in}{)}
+\fbreak
+\fbreak
+Thread entry Format: Iyyy where yyy is the thread entry name
+gened from \O2{}linker: Ixxx where xxx is thread name
+supplied by the ``parallel-thread-function'' construct.\fbreak
+Ex: ITH\_eol where eol grammar has ``parallel-thread-function'' as TH\_eol \fbreak
+\fbreak
+\fbreak
+Thread dispatch tables:\fbreak
+These are arrays sprinkled thru out the LR1 states.
+They provide the list of thread entries within the state
+of the threads to be dispatched.
+Their referenced names use the thread entry ``ITH\_eol'' format.
+\fbreak
+Within the lr1 state, any called threads will contain a dispatch
+array of thread procedure addresses. \fbreak
+\fbreak
+Arbitrators name convention:\fbreak
+Format: AR\_yyy where yyy is the rule name containing thread use.
+A lr state calling threads could have an arbitrator.
+This depends whether a rule that closured the called threads into the state has
+c++ code inside the
+``arbitrator-code'' contruct. This contruct can be empty signifying that the
+called threads are deterministic: possibly only
+one of the called threads will return a terminal and no arbritation required to
+choose between 2 or more returned terminals.
+\fbreak
+\fbreak
+
+@* Template of Grammar's header file declaration: |OP_GRAMMAR_HEADER|.\fbreak
+\INDENT{.1in}{1) Comments --- file name, time and date info}
+\INDENT{.1in}{2) Includes of \O2 library and grammar vocabulary}
+\INDENT{.1in}{3) User-prefix-declaration directive from grammar}
+\INDENT{.1in}{4) grammar include guard declaration}
+\INDENT{.2in}{4.1) namespace declaration of grammar}
+\INDENT{.3in}{4.1.0) fsm's rules reuse table extern}
+\INDENT{.3in}{4.1.1) Possible thread entry extern if it's thread grammar}
+\INDENT{.3in}{4.1.2) fsm's 1st state extern reference}
+\INDENT{.3in}{4.1.3) Using \O2 and enumerate namespaces}
+\INDENT{.3in}{4.1.4) Fsm class declaration}
+\INDENT{.4in}{4.1.4.1) Enumeration of grammar's rules and subrules}
+\INDENT{.4in}{4.1.4.2) comments about number of la sets and states}
+\INDENT{.4in}{4.1.4.3) ctor of fsm --- constructor directive is implementation only}
+\INDENT{.4in}{4.1.4.4) dtor of fsm --- destructor directive is implementation only}
+\INDENT{.4in}{4.1.4.5) op and failed directives --- directives are implementation only}
+\INDENT{.4in}{4.1.4.6) user-declaration}
+\INDENT{.4in}{4.1.4.7) Create subrules to rules mapping}
+\INDENT{.3in}{4.1.5) grammar's rules declarations for forward references}
+\INDENT{.3in}{4.1.6) grammar's rules class definitions}
+\INDENT{.1in}{5) User-suffix-declaration directive from grammar}
+@*3 |intro_comment| --- Intro comments for emitted files.\fbreak
+A fixed format C++ comment describing the outputted file name
+with date / time stamp occurance.
+Used for all grammar's emitted files:\fbreak
+\INDENT{.2in}{1) xxx.h fsm header file with rule declarations}
+\INDENT{.2in}{2) xxx.cpp fsm class and rules implementation}
+\INDENT{.2in}{3) xxxsym.cpp reduce\_rhs\_of\_rule procedure and perchance to thread imps}
+\INDENT{.2in}{4) xxxtbl.cpp finite automaton --- the lr1 state network implementation}
+\fbreak
+Ip:\fbreak
+\INDENT{.4in}{1) output string}
+\INDENT{.4in}{2) file name suffix : 1 of .h, .cpp, sym.cpp, tbl.cpp}
+@<accrue source for emit@>+=
+void intro_comment
+(std::ofstream& Op_str,const char* File_name){@/
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP op_template =
+ "/*\n"@/
+ " File: %s\n"@/
+ " Date and Time: %s\n"@/
+ "*/";
+
+ int x = sprintf(big_buf_
+ ,op_template
+ ,File_name
+ ,DATE_AND_TIME()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+}
+
+@*3 |grammar_header_includes|.\fbreak
+Get those include files from \O2 library --- the
+canned \O2 library header, LRk and Rc vocabularies
+normally come from the \O2 library,
+along with the grammar's local enumeration header,
+Error and Terminal vocabularies.
+The libraries order is important as
+the Errors vocabulary can be used by the Terminals and Rc
+vocabularies.
+@<accrue source for emit@>+=
+void grammar_header_includes
+(std::ofstream& Op_str){@/
+ T_fsm_phrase* fsm_ph = O2_FSM_PHASE;
+ T_enum_phrase* enum_ph = O2_T_ENUM_PHASE;
+ T_lr1_k_phrase* lrk_ph = O2_LRK_PHASE;
+ T_rc_phrase* rc_ph = O2_RC_PHASE;
+ T_error_symbols_phrase* err_ph = O2_ERROR_PHASE;
+ T_terminals_phrase* t_ph = O2_T_PHASE;
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP include_list =
+ "#include \"%s\"\n" // yacco2 library HWired
+ "#include \"%s.h\"\n" // enumeration
+ "#include \"%s.h\"\n" // lrk symbols vocabulary
+ "#include \"%s.h\"\n" // Errors vocabulary
+ "#include \"%s.h\"\n" // Terminal vocabulary
+ "#include \"%s.h\""; // raw characters vocabulary
+
+ int x = sprintf(big_buf_@/
+ ,include_list@/
+ ,O2_library_file@/
+ ,enum_ph->filename_id()->identifier()->c_str()@/
+ ,lrk_ph->filename_id()->identifier()->c_str()@/
+ ,err_ph->filename_id()->identifier()->c_str()@/
+ ,t_ph->filename_id()->identifier()->c_str()@/
+ ,rc_ph->filename_id()->identifier()->c_str()@/
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+}
+@*3 |user_prefix_declaration_for_header|.\fbreak
+Grammar writer supplied code thru the ``user-prefix-declaration''
+directive to be added to the grammar's header file.
+@<accrue source for emit@>+=
+void user_prefix_declaration_for_header
+(std::ofstream& Op_str){@/
+ T_fsm_phrase* fsm_ph = O2_FSM_PHASE;
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP upd_code = "%s";
+
+T_fsm_class_phrase* fsm_class = fsm_ph->fsm_class_phrase();
+SDC_MAP_type* dir_map = fsm_class->directives_map();
+SDC_MAP_ITER_type i = dir_map->find(SDC_user_prefix_declaration);
+if(i == dir_map->end()) return;
+@=T_user_prefix_declaration* upd = (T_user_prefix_declaration*)i->second;@>@/
+ int x = sprintf(big_buf_
+ ,upd_code
+ ,upd->syntax_code()->syntax_code()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+}
+
+
+@*3 |thread_entry_extern_for_header|.\fbreak
+If the grammar is a thread then
+its extern reference must be declared in the header.
+I fetch ``parallel-thread-function'''s thread name.
+@<accrue source for emit@>+=
+void thread_entry_extern_for_header
+(std::ofstream& Op_str){@/
+T_parallel_parser_phrase* pp_ph = O2_PP_PHASE;
+if(pp_ph == 0){
+ Op_str << "// monolithic grammar: no thread" << endl;
+ return;
+}
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP th_extern = "extern yacco2::Thread_entry I%s;\n";
+
+ int x = sprintf(big_buf_
+ ,th_extern
+ ,pp_ph->pp_funct()->identifier()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+}
+
+@*3 |using_ns_for_header|.\fbreak
+@<accrue source for emit@>+=
+void using_ns_for_header
+(std::ofstream& Op_str){@/
+ T_enum_phrase* enum_ph = O2_T_ENUM_PHASE;
+ char big_buf_[BIG_BUFFER_32K];
+
+ KCHARP default_ns_use = @/
+ "using namespace %s;// enumerate\n"@/
+ "using namespace yacco2;";
+
+ int x = sprintf(big_buf_
+ ,default_ns_use
+ ,enum_ph->namespace_id()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+}
+
+@*3 |fsm_enum_rules_subrules_for_header|.\fbreak
+Enumerates used by |reduce_rhs_of_rule|.
+The enumerate values for the rules begin after the grammar's terminal vocabularies.
+The subrules range is 1..n where n is the total numder of all subrules
+supplied by the rules.
+@<accrue source for emit@>+=
+void fsm_enum_rules_subrules_for_header
+(std::ofstream& Op_str){@/
+ T_fsm_phrase* fsm_ph = O2_FSM_PHASE;
+ T_fsm_class_phrase* fsm_class = fsm_ph->fsm_class_phrase();
+ T_enum_phrase* enum_ph = O2_T_ENUM_PHASE;
+ char big_buf_[BIG_BUFFER_32K];
+
+ KCHARP enumeration_of_rules_sbrules = @/
+ " enum rules_and_subrules{\n"@/
+ " start_of_rule_list = %s::T_Enum::sum_total_T";
+ int x = sprintf(big_buf_
+ ,enumeration_of_rules_sbrules
+ ,enum_ph->namespace_id()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+
+
+ T_rules_phrase* rules_ph = O2_RULES_PHASE;
+ // loop thru the rules
+ RULE_DEFS_TBL_ITER_type i = rules_ph->crt_order()->begin();
+ RULE_DEFS_TBL_ITER_type ie = rules_ph->crt_order()->end();
+ int overall_subrules_nos(0);
+ int current_rule_no(-1);// rel to zero
+ int no_rules = rules_ph->rules_alphabet()->size();
+ KCHARP rule_enum = @/
+ " ,R_%s_ = %i//start_of_rule_list + %i";
+ for(;i!=ie;++i){
+ ++current_rule_no;
+ rule_def* rd = *i;
+ x = sprintf(big_buf_
+ ,rule_enum
+ ,rd->rule_name()->c_str()
+ ,rd->enum_id()
+ ,current_rule_no++
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ T_subrules_phrase* sr_ph = rd->subrules();
+ SUBRULE_DEFS_ITER_type j = sr_ph->subrules()->begin();
+ SUBRULE_DEFS_ITER_type je = sr_ph->subrules()->end();
+ KCHARP subrule_enum = @/
+ " ,rhs%i_%s_ = %i";
+ for(;j != je;++j){
+ T_subrule_def* srd = *j;
+ ++overall_subrules_nos;
+ int x = sprintf(big_buf_
+ ,subrule_enum
+ ,srd->subrule_no_of_rule()
+ ,rd->rule_name()->c_str()
+ ,overall_subrules_nos
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+ }
+ KCHARP end_enumeration_of_rules_sbrules = @/
+ " };";
+ Op_str << end_enumeration_of_rules_sbrules<<endl;
+}
+
+@*3 |fsm_map_subrules_to_rules_for_header| --- Optimization.\fbreak
+Create the array to map the subrules into their rules.
+This is used to optimize rule crete-run-delete cylce by recycling.
+Note, the subrules enumerate is 1..x and
+ the rule's enumerate must be remapped to 0..number of rules-1.
+To handle array accessing to 0, an extra entry for 0 is generated.
+@<accrue source for emit@>+=
+void fsm_map_subrules_to_rules_for_header
+(std::ofstream& Op_str){@/
+ T_fsm_phrase* fsm_ph = O2_FSM_PHASE;
+ T_fsm_class_phrase* fsm_class = fsm_ph->fsm_class_phrase();
+ T_enum_phrase* enum_ph = O2_T_ENUM_PHASE;
+ char big_buf_[BIG_BUFFER_32K];
+
+ KCHARP array_of_subrules_to_rules_mapping = @/
+ " fsm_rules_reuse_table_type fsm_rules_reuse_table;\n"
+ " static int rhs_to_rules_mapping_[%i];";
+
+
+ T_rules_phrase* rules_ph = O2_RULES_PHASE;
+ // loop thru the rules
+ RULE_DEFS_TBL_ITER_type i = rules_ph->crt_order()->begin();
+ RULE_DEFS_TBL_ITER_type ie = rules_ph->crt_order()->end();
+ int overall_subrules_nos(0);
+ for(;i!=ie;++i){
+ rule_def* rd = *i;
+ T_subrules_phrase* sr_ph = rd->subrules();
+ SUBRULE_DEFS_ITER_type j = sr_ph->subrules()->begin();
+ SUBRULE_DEFS_ITER_type je = sr_ph->subrules()->end();
+ for(;j != je;++j){
+ ++overall_subrules_nos;
+ }
+ }
+ ++overall_subrules_nos;// extra subrule due to [0] needed
+ int x = sprintf(big_buf_
+ ,array_of_subrules_to_rules_mapping
+ ,overall_subrules_nos
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+}
+
+@*3 |fsm_comments_about_la_sets_and_states|.\fbreak
+@<accrue source for emit@>+=
+void fsm_comments_about_la_sets_and_states
+(std::ofstream& Op_str){@/
+ T_fsm_phrase* fsm_ph = O2_FSM_PHASE;
+ T_fsm_class_phrase* fsm_class = fsm_ph->fsm_class_phrase();
+ T_enum_phrase* enum_ph = O2_T_ENUM_PHASE;
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP no_of_la_sets_and_states = @/
+ " //no of la sets = %i\n"@/
+ " //no of states = %i";
+ int x = sprintf(big_buf_
+ ,no_of_la_sets_and_states
+ ,COMMON_LA_SETS.size()
+ ,NO_LR1_STATES
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+}
+
+@*3 |fsm_class_declaration_for_header|.\fbreak
+The dtor, ``op'', and ``user-declaration'' procedures are gened when their
+directives present.
+@<accrue source for emit@>+=
+void fsm_class_declaration_for_header
+(std::ofstream& Op_str){@/
+ T_fsm_phrase* fsm_ph = O2_FSM_PHASE;
+ T_fsm_class_phrase* fsm_class = fsm_ph->fsm_class_phrase();
+ T_enum_phrase* enum_ph = O2_T_ENUM_PHASE;
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP class_fsm = @/
+ "class %s: public yacco2::CAbs_fsm {\n"@/
+ " public:";
+ int x = sprintf(big_buf_
+ ,class_fsm
+ ,fsm_class->identifier()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+
+ fsm_enum_rules_subrules_for_header(Op_str);
+ fsm_comments_about_la_sets_and_states(Op_str);
+
+ KCHARP ctor_fsm = @/
+ " %s();";
+
+ x = sprintf(big_buf_
+ ,ctor_fsm
+ ,fsm_class->identifier()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+
+ KCHARP dtor_fsm = @/
+ " ~%s();";
+ x = sprintf(big_buf_
+ ,dtor_fsm
+ ,fsm_class->identifier()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+
+ KCHARP op_failed = @/
+ " void op();\n"@/
+ " bool failed();";
+ Op_str << op_failed<<endl;
+
+
+ KCHARP reduce_rhs = @/
+ " void reduce_rhs_of_rule\n"@/
+ " (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule);";
+ Op_str << reduce_rhs<<endl;
+ fsm_map_subrules_to_rules_for_header(Op_str);
+ KCHARP user_declaration = @/
+ " %s";
+
+ SDC_MAP_type* dir_map = fsm_class->directives_map();
+ SDC_MAP_ITER_type i = dir_map->find(SDC_user_declaration);
+ if(i != dir_map->end()){
+ @=T_user_declaration* ud = (T_user_declaration*)i->second;@>@/
+ int x = sprintf(big_buf_
+ ,user_declaration
+ ,ud->syntax_code()->syntax_code()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+
+ KCHARP end_class_fsm = @/
+ " };";
+ Op_str << end_class_fsm<<endl;
+
+}
+@*3 |forward_refs_of_rules_declarations_for_header|.\fbreak
+@<accrue source for emit@>+=
+void forward_refs_of_rules_declarations_for_header
+(std::ofstream& Op_str){@/
+ T_rules_phrase* rules_ph = O2_RULES_PHASE;
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP forward_ref = @/
+ "struct %s;";
+ // loop thru the rules
+ RULE_DEFS_TBL_ITER_type i = rules_ph->crt_order()->begin();
+ RULE_DEFS_TBL_ITER_type ie = rules_ph->crt_order()->end();
+ for(;i!=ie;++i){
+ rule_def* rd = *i;
+ int x = sprintf(big_buf_
+ ,forward_ref
+ ,rd->rule_name()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+}
+
+@*3 |rules_class_defs_for_header|.\fbreak
+@<accrue source for emit@>+=
+void rules_class_defs_for_header
+(std::ofstream& Op_str){@/
+ T_rules_phrase* rules_ph = O2_RULES_PHASE;
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP end_rule_def = @/
+ "};\n";
+ @<gen fsm rules declarations@>;
+}
+
+@
+@<gen fsm rules declarations@>=
+ RULE_DEFS_TBL_ITER_type i = rules_ph->crt_order()->begin();
+ RULE_DEFS_TBL_ITER_type ie = rules_ph->crt_order()->end();
+ KCHARP start_rule_def = @/
+ "struct %s:public yacco2::CAbs_lr1_sym {\n"@/
+ " %s(yacco2::Parser* P);";
+ for(;i!=ie;++i){
+ rule_def* rd = *i;
+@<gen rule's arbitrator procedure declaration@>;
+ int x = sprintf(big_buf_
+ ,start_rule_def
+ ,rd->rule_name()->c_str()
+ ,rd->rule_name()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ T_rule_lhs_phrase* rlhs = rd->rule_lhs();
+ if(rlhs != 0){
+ SDC_MAP_type* dir_map = rlhs->lhs_directives_map();
+ SDC_MAP_ITER_type i = dir_map->find(SDC_destructor);
+ if(i != dir_map->end()){
+ KCHARP rule_def_dtor = @/
+ " static void dtor_%s(yacco2::VOIDP This,yacco2::VOIDP P);";
+ int x = sprintf(big_buf_
+ ,rule_def_dtor
+ ,rd->rule_name()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+ i = dir_map->find(SDC_op);
+ if(i != dir_map->end()){
+ KCHARP rule_def_op = @/
+ " void op();";
+ Op_str << rule_def_op<<endl;
+ }
+ i = dir_map->find(SDC_constructor);
+ if(i != dir_map->end()){
+ KCHARP rule_def_ctor = @/
+ " void ctor();";
+ Op_str << rule_def_ctor<<endl;
+ }
+ i = dir_map->find(SDC_user_declaration);
+ if(i != dir_map->end()){
+ @=T_user_declaration* ud = (T_user_declaration*)i->second;@>@/
+ Op_str << ud->syntax_code()->syntax_code()->c_str() <<endl;
+ }
+ }
+ @<gen fsm subrules declarations@>;
+
+ }
+@*3 Gen rule's arbitrator procedure declaration.\fbreak
+It is declared outside of the rule making its call easier from
+the generated lr1 tables.
+@<gen rule's arbitrator procedure declaration@>=
+ if(rd->parallel_mntr() != 0){
+ T_parallel_monitor_phrase* pp_phrase = rd->parallel_mntr();
+ if(rd->parallel_mntr()->mntr_directives_map()->empty() != true){
+ SDC_MAP_type* dir_map = pp_phrase->mntr_directives_map();
+ SDC_MAP_ITER_type i = dir_map->find(SDC_arbitrator_code);
+ if(i !=dir_map->end()){
+ @=T_arbitrator_code* ac = (T_arbitrator_code*)i->second;@>@/
+ string::size_type idx =
+ ac->syntax_code()->syntax_code()->find(CODE_PRESENCE_IN_ARBITRATOR_CODE);
+ if(idx != string::npos){
+ KCHARP rule_s_arbitrator =@/
+ "yacco2::THR _YACCO2_CALL_TYPE\n"@/
+ "AR_%s(yacco2::Parser* Caller_pp);// rule's arbitrator";
+
+ int x = sprintf(big_buf_
+ ,rule_s_arbitrator
+ ,rd->rule_name()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ RULES_HAVING_AR.insert(rd);
+ }
+ }
+ }
+ }
+
+
+@*3 Gen fsm subrules declarations.\fbreak
+Optimization: only gen definition if there is syntax directed code.
+@<gen fsm subrules declarations@>=
+ KCHARP sub_rule_def_public = @/
+ " public:";
+ Op_str << sub_rule_def_public<<endl;
+ KCHARP sub_rule_def = @/
+ " void sr%i();";
+ T_subrules_phrase* sr_ph = rd->subrules();
+ SUBRULE_DEFS_ITER_type j = sr_ph->subrules()->begin();
+ SUBRULE_DEFS_ITER_type je = sr_ph->subrules()->end();
+ for(int xx = 1;j != je;++j,++xx){
+ T_subrule_def* srd = *j;
+ SDC_MAP_type* sdrmap = srd->subrule_directives();
+ if(!sdrmap->empty()){ // any syntax directed code, call it
+ int x = sprintf(big_buf_
+ ,sub_rule_def
+ ,xx
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+ }
+ Op_str << end_rule_def<<endl;
+
+@*3 |possible_thread_procedure_declaration|.\fbreak
+2 parts:
+\item{1)} the thread declaration
+\item{2)} the procedure twin to thread declaration: an experiment
+in trying to improve threading overhead with all
+its mutex paraphernalia. Only happens when
+only 1 thread can run to call it as a local procedure.
+The part needed improving is in the ctor/use/dtor action
+caused by the localness of Parser and the fsm table.
+Now it will be newed when first called.
+
+@<accrue source for emit@>+=
+void possible_thread_procedure_declaration
+(std::ofstream& Op_str){@/
+ if(O2_PP_PHASE == 0)return;
+ T_parallel_parser_phrase* pp_ph = O2_PP_PHASE;
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP thd_proc = @/
+ "yacco2::THR _YACCO2_CALL_TYPE\n"@/
+ "%s(yacco2::Parser* Caller);// called thread\n"
+ "yacco2::THR_result _YACCO2_CALL_TYPE\n"@/
+ "PROC_%s(yacco2::Parser* Caller);// called thread's twin the procedure";
+ int x = sprintf(big_buf_
+ ,thd_proc
+ ,pp_ph->pp_funct()->identifier()->identifier()->c_str()
+ ,pp_ph->pp_funct()->identifier()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+}
+
+@*3 |rules_reuse_table_declaration| --- Optimization.\fbreak
+Table definition supporting recycled rules.
+Gen specifically per rule from the findings determined by
+|rules_use_cnt.lex| grammar;
+@<accrue source for emit@>+=
+void rules_reuse_table_declaration
+(std::ofstream& Op_str){@/
+ T_fsm_phrase* fsm_ph = O2_FSM_PHASE;
+ T_fsm_class_phrase* fsm_class = fsm_ph->fsm_class_phrase();
+ T_rules_phrase* rules_ph = O2_RULES_PHASE;
+ int no_rules = rules_ph->rules_alphabet()->size();
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP rules_recycled_table_type = @/
+ "struct fsm_rules_reuse_table_type{\n"@/
+ " fsm_rules_reuse_table_type();\n"@/
+ " int no_rules_entries_;\n"@/
+ " Per_rule_s_reuse_table* per_rule_s_table_[%i];\n"@/
+ "};";
+ int x = sprintf(big_buf_
+ ,rules_recycled_table_type
+ ,no_rules
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+}
+
+@*3 |namespace_for_header|.\fbreak
+@<accrue source for emit@>+=
+void namespace_for_header
+(std::ofstream& Op_str){@/
+ T_fsm_phrase* fsm_ph = O2_FSM_PHASE;
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP ns_of_grammar_start = @/
+ "namespace %s {";
+ int x = sprintf(big_buf_
+ ,ns_of_grammar_start
+ ,fsm_ph->namespace_id()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ possible_thread_procedure_declaration(Op_str);
+ using_ns_for_header(Op_str);
+ rules_reuse_table_declaration(Op_str);
+ fsm_class_declaration_for_header(Op_str);
+ forward_refs_of_rules_declarations_for_header(Op_str);
+ rules_class_defs_for_header(Op_str);
+ KCHARP ns_of_grammar_end = @/
+ "} // end of namespace\n";
+ Op_str << ns_of_grammar_end<<endl;
+}
+
+@*3 |state_1_extern|.\fbreak
+@<accrue source for emit@>+=
+void state_1_extern
+(std::ofstream& Op_str){@/
+ T_fsm_phrase* fsm_ph = O2_FSM_PHASE;
+ T_fsm_class_phrase* fsm_class = fsm_ph->fsm_class_phrase();
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP state_extern = @/
+ "extern yacco2::State S1_%s;";
+ int x = sprintf(big_buf_
+ ,state_extern
+ ,fsm_class->identifier()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+}
+@*3 |grammar_include_guard_for_header|.\fbreak
+@<accrue source for emit@>+=
+void grammar_include_guard_for_header
+(std::ofstream& Op_str){@/
+ T_fsm_phrase* fsm_ph = O2_FSM_PHASE;
+ T_fsm_class_phrase* fsm_class = fsm_ph->fsm_class_phrase();
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP signal_guard_start = @/
+ "#ifndef __%s_h__\n"@/
+ "#define __%s_h__ 1";
+ int x = sprintf(big_buf_
+ ,signal_guard_start
+ ,fsm_ph->filename_id()->identifier()->c_str()
+ ,fsm_ph->filename_id()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ grammar_header_includes(Op_str);
+ user_prefix_declaration_for_header(Op_str);
+ thread_entry_extern_for_header(Op_str);
+ state_1_extern(Op_str);
+ namespace_for_header(Op_str);
+ KCHARP signal_guard_end = @/
+ "#endif";
+ Op_str << signal_guard_end<<endl;
+}
+@*3 |user_suffix_declaration_for_header|.\fbreak
+Grammar writer supplied code thru the ``user-suffix-declaration''
+directive to be added to the grammar's header file.
+@<accrue source for emit@>+=
+void user_suffix_declaration_for_header
+(std::ofstream& Op_str){@/
+ T_fsm_phrase* fsm_ph = O2_FSM_PHASE;
+ char big_buf_[BIG_BUFFER_32K];
+
+T_fsm_class_phrase* fsm_class = fsm_ph->fsm_class_phrase();
+SDC_MAP_type* dir_map = fsm_class->directives_map();
+SDC_MAP_ITER_type i = dir_map->find(SDC_user_suffix_declaration);
+if(i == dir_map->end()) return;
+@=T_user_suffix_declaration* upd = (T_user_suffix_declaration*)i->second;@>@/
+ KCHARP upd_code = "%s";
+ int x = sprintf(big_buf_
+ ,upd_code
+ ,upd->syntax_code()->syntax_code()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+}
+
+@*2 |OP_GRAMMAR_HEADER| implementation.\fbreak
+@<accrue source for emit@>+=
+void OP_GRAMMAR_HEADER(TOKEN_GAGGLE& Error_queue){@/
+ T_fsm_phrase* fsm_ph = O2_FSM_PHASE;
+ string fn(fsm_ph->filename_id()->identifier()->c_str());
+ fn += Suffix_fsmheader;
+ std::ofstream Op_file;
+ Op_file.open(fn.c_str(),ios_base::out|ios::trunc);
+ if(!Op_file){
+ CAbs_lr1_sym* sym = new Err_bad_fsmheader_filename(fn.c_str());
+ sym->set_line_no_and_pos_in_line(*fsm_ph->filename_id());
+ sym->set_who_created("o2externs.w - OP_GRAMMAR_HEADER",__LINE__);
+ Error_queue.push_back(*sym);
+ return;
+ }
+
+ intro_comment(Op_file,fn.c_str());
+ grammar_include_guard_for_header(Op_file);
+ user_suffix_declaration_for_header(Op_file);
+ Op_file.close();
+}
+
+@* Template of Grammar's fsm file implementation: |OP_GRAMMAR_CPP|.\fbreak
+\INDENT{.1in}{1) Comments --- file name, time and date info}
+\INDENT{.1in}{2) Include of grammar's header}
+\INDENT{.1in}{3) using namespaces}
+\INDENT{.1in}{4) fill in rules reuse table}
+\INDENT{.1in}{5) Fsm class implementation}
+\INDENT{.1in}{6) grammar's rules / subrules implementations}
+@*3 |fsm_cpp_includes|.\fbreak
+Get grammar's include file.
+@<accrue source for emit@>+=
+void fsm_cpp_includes
+(std::ofstream& Op_str){@/
+ T_fsm_phrase* fsm_ph = O2_FSM_PHASE;
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP include_list =
+ "#include \"%s.h\""; // grammar's header
+
+ int x = sprintf(big_buf_
+ ,include_list
+ ,fsm_ph->filename_id()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+}
+
+@*3 |using_ns_for_fsm_cpp|.\fbreak
+@<accrue source for emit@>+=
+void using_ns_for_fsm_cpp
+(std::ofstream& Op_str){@/
+ T_fsm_phrase* fsm_ph = O2_FSM_PHASE;
+ T_enum_phrase* enum_ph = O2_T_ENUM_PHASE;
+ T_lr1_k_phrase* lrk_ph = O2_LRK_PHASE;
+ T_rc_phrase* rc_ph = O2_RC_PHASE;
+ T_error_symbols_phrase* err_ph = O2_ERROR_PHASE;
+ T_terminals_phrase* t_ph = O2_T_PHASE;
+
+ char big_buf_[BIG_BUFFER_32K];
+
+ KCHARP default_ns_use = @/
+ "using namespace %s;// enumerate\n"@/
+ "using namespace %s;// error symbols\n"@/
+ "using namespace %s;// lrk \n"@/
+ "using namespace %s;// terminals\n"@/
+ "using namespace %s;// rc \n"@/
+ "using namespace %s;// yacco2 library\n"@/
+ "using namespace %s;// grammar's ns\n"@/
+ "// first set terminals";
+
+ int x = sprintf(big_buf_
+ ,default_ns_use
+ ,enum_ph->namespace_id()->identifier()->c_str()
+ ,err_ph->namespace_id()->identifier()->c_str()@/
+ ,lrk_ph->namespace_id()->identifier()->c_str()@/
+ ,t_ph->namespace_id()->identifier()->c_str()@/
+ ,rc_ph->namespace_id()->identifier()->c_str()@/
+ ,"yacco2"@/
+ ,fsm_ph->namespace_id()->identifier()->c_str()@/
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+}
+@*3 |rules_reuse_table_implementation| --- Optimization.\fbreak
+Table definition supporting recycled rules.
+Use count per rule garnered from the |rules_use_cnt.lex| grammar.
+@<accrue source for emit@>+=
+void rules_reuse_table_implementation
+(std::ofstream& Op_str){@/
+ T_fsm_phrase* fsm_ph = O2_FSM_PHASE;
+ T_rules_phrase* rules_ph = O2_RULES_PHASE;
+ int no_rules= rules_ph->rules_alphabet()->size();
+ char big_buf_[BIG_BUFFER_32K];
+
+ KCHARP rules_recycled_table_type = @/
+ "fsm_rules_reuse_table_type::fsm_rules_reuse_table_type(){\n"
+ " no_rules_entries_ = %i;";
+ int x = sprintf(big_buf_
+ ,rules_recycled_table_type
+ ,no_rules
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ KCHARP per_rule_s_table_ref_type = @/
+ " per_rule_s_table_[%i] = new Per_rule_s_reuse_table();";
+
+ for(int xx = 1;xx <= no_rules;++xx){
+ int x0 = xx - 1;
+ x = sprintf(big_buf_
+ ,per_rule_s_table_ref_type
+ ,x0
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+ Op_str <<"}"<<endl;
+}
+
+@*3 |fsm_map_subrules_to_rules_table_imp| --- Optimization.\fbreak
+Load up the table to map subrules into their rules numeration.
+@<accrue source for emit@>+=
+void fsm_map_subrules_to_rules_table_imp
+(std::ofstream& Op_str){@/
+ T_fsm_phrase* fsm_ph = O2_FSM_PHASE;
+ T_fsm_class_phrase* fsm_class = fsm_ph->fsm_class_phrase();
+ T_enum_phrase* enum_ph = O2_T_ENUM_PHASE;
+ T_rules_phrase* rules_ph = O2_RULES_PHASE;
+ char big_buf_[BIG_BUFFER_32K];
+ RULE_DEFS_TBL_ITER_type i = rules_ph->crt_order()->begin();
+ RULE_DEFS_TBL_ITER_type ie = rules_ph->crt_order()->end();
+ int overall_subrules_nos(0);
+ for(;i!=ie;++i){
+ rule_def* rd = *i;
+ T_subrules_phrase* sr_ph = rd->subrules();
+ SUBRULE_DEFS_ITER_type j = sr_ph->subrules()->begin();
+ SUBRULE_DEFS_ITER_type je = sr_ph->subrules()->end();
+ for(;j != je;++j){
+ ++overall_subrules_nos;
+ }
+ }
+ ++overall_subrules_nos;// extra subrule due to [0] needed
+
+ KCHARP array_of_subrules_to_rules_mapping_start = @/
+ "int %s::rhs_to_rules_mapping_[%i] = {\n"@/
+ " -1";// make room for false [0] entry
+ int x = sprintf(big_buf_
+ ,array_of_subrules_to_rules_mapping_start
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,overall_subrules_nos
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+
+ KCHARP subrules_to_rule_mapping = @/
+ " ,%i // subrule %i for rule %i";
+
+ KCHARP array_of_subrules_to_rules_mapping_end = @/
+ "};%s";
+
+
+ // loop thru the rules
+ i = rules_ph->crt_order()->begin();
+ ie = rules_ph->crt_order()->end();
+ overall_subrules_nos = 0;
+ for(;i!=ie;++i){
+ rule_def* rd = *i;
+ T_subrules_phrase* sr_ph = rd->subrules();
+ SUBRULE_DEFS_ITER_type j = sr_ph->subrules()->begin();
+ SUBRULE_DEFS_ITER_type je = sr_ph->subrules()->end();
+ for(;j != je;++j){
+ ++overall_subrules_nos;
+ int x = sprintf(big_buf_
+ ,subrules_to_rule_mapping
+ ,rd->rule_no()-1
+ ,overall_subrules_nos
+ ,rd->rule_no()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+ }
+ x = sprintf(big_buf_
+ ,array_of_subrules_to_rules_mapping_end," "
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ enum_ph->total_no_subrules(overall_subrules_nos);
+}
+
+@*3 |fsm_class_implementation|.\fbreak
+Directives: --- see |fsm_class_phrase_th| grammar\fbreak
+\INDENT{.3in}{1) constructor}
+\INDENT{.3in}{2) destructor}
+\INDENT{.3in}{3) failed}
+\INDENT{.3in}{4) op}
+\INDENT{.3in}{5) load up subrles mapping into rules}
+\INDENT{.3in}{6) user-implementation roll your own code if present}
+\INDENT{.3in}{7) user-imp-tbl --- injection code for xxxtbl.cpp where xxx is grammar name}
+\INDENT{.3in}{8) user-imp-sym --- injection code for xxxsym.cpp where xxx is grammar name}
+\fbreak
+Points 6 and 7 will be dealt with in their own ``cpp'' implementations.
+Note: added deletion of each ``recycling table'' per rule within the dtor.
+@<accrue source for emit@>+=
+void fsm_class_implementation
+(std::ofstream& Op_str){@/
+ T_fsm_phrase* fsm_ph = O2_FSM_PHASE;
+ T_fsm_class_phrase* fsm_class = fsm_ph->fsm_class_phrase();
+ T_enum_phrase* enum_ph = O2_T_ENUM_PHASE;
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP ctor_fsm = @/
+ " %s::\n"@/
+ " %s()\n"@/
+ " :yacco2::CAbs_fsm\n"@/
+ " (\"%s\"\n"@/
+ " ,\"%s\"\n"@/
+ " ,\"%s\"\n"@/
+ " ,%s\n"@/
+ " ,\"%s\"\n"@/
+ " ,\"%s\"\n"@/
+ " ,S1_%s){\n"@/
+ " %s\n"@/
+ " }";
+ SDC_MAP_type* dir_map = fsm_class->directives_map();
+ SDC_MAP_ITER_type i = dir_map->find(SDC_constructor);
+ const char* cc_str(0);
+ if(i != dir_map->end()){
+ @=T_constructor* cc = (T_constructor*)i->second;@>@/
+ cc_str = cc->syntax_code()->syntax_code()->c_str();
+ }else{
+ cc_str = "";
+ }
+
+ int x = sprintf(big_buf_
+ ,ctor_fsm
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,fsm_ph->fsm_id()->c_string()->c_str()
+ ,fsm_ph->version()->c_string()->c_str()
+ ,fsm_ph->date()->c_string()->c_str()
+ ,fsm_ph->debug()->c_string()->c_str()
+ ,fsm_ph->comment()->c_string()->c_str()
+ ,DATE_AND_TIME()
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,cc_str
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+
+ KCHARP dtor_rtn_start = @/
+ " \n"@/
+ "%s::~%s(){\n"@/
+ "%s";
+ i = dir_map->find(SDC_destructor);
+ const char* dc_str(0);
+ if(i != dir_map->end()){
+ @=T_destructor* dc = (T_destructor*)i->second;@>@/
+ dc_str = dc->syntax_code()->syntax_code()->c_str();
+ }else{
+ dc_str = "";
+ }
+ x = sprintf(big_buf_
+ ,dtor_rtn_start
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,dc_str
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+
+// delete those recycled rules
+ T_rules_phrase* rules_ph = O2_RULES_PHASE;
+ int no_rules= rules_ph->rules_alphabet()->size();
+ KCHARP delete_recycled_rules = @/
+ " for(int x = 0;x < %i;++x){\n"@/
+ " ///delete fsm_rules_reuse_table.per_rule_s_table_[x];\n"@/
+ " }";
+
+ x = sprintf(big_buf_
+ ,delete_recycled_rules
+ ,no_rules
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ KCHARP dtor_rtn_end = @/
+ "}%s\n"
+ "";
+ x = sprintf(big_buf_
+ ,dtor_rtn_end," "
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+
+ KCHARP failed_rtn = @/
+ " bool %s::failed(){\n"@/
+ " %s\n"@/
+ " }";
+
+ i = dir_map->find(SDC_failed);
+ const char* fc_str(0);
+ if(i != dir_map->end()){
+ @=T_failed* fc = (T_failed*)i->second;@>@/
+ fc_str = fc->syntax_code()->syntax_code()->c_str();
+ }else{
+ fc_str = " return false;";
+ }
+ x = sprintf(big_buf_
+ ,failed_rtn
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,fc_str
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ KCHARP op_rtn = @/
+ " void %s::op(){%s\n}";
+ i = dir_map->find(SDC_op);
+ const char* oc_str(0);
+ if(i != dir_map->end()){
+ @=T_op* oc = (T_op*)i->second;@>@/
+ oc_str = oc->syntax_code()->syntax_code()->c_str();
+ }else{
+ oc_str = "";
+ }
+ x = sprintf(big_buf_
+ ,op_rtn
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,oc_str
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ fsm_map_subrules_to_rules_table_imp(Op_str);
+ dir_map = fsm_class->directives_map();
+ i = dir_map->find(SDC_user_implementation);
+ if(i != dir_map->end()){
+ @=T_user_implementation* ui = (T_user_implementation*)i->second;@>@/
+ Op_str << ui->syntax_code()->syntax_code()->c_str()<<endl;
+ }
+}
+
+@*3 |rules_subrules_implementations|.\fbreak
+Rule directives: See |rule_lhs_phrase| grammar\fbreak
+\INDENT{.3in}{1) constructor 2) destructor}
+\INDENT{.3in}{3) op 4) user-implementation}
+\fbreak
+Subrule directive: See |subrule_def| grammar\fbreak
+\INDENT{.3in}{1) op}
+@<accrue source for emit@>+=
+void rules_subrules_implementations
+(std::ofstream& Op_str){@/
+ T_fsm_phrase* fsm_ph = O2_FSM_PHASE;
+ T_fsm_class_phrase* fsm_class = fsm_ph->fsm_class_phrase();
+ T_rules_phrase* rules_ph = O2_RULES_PHASE;
+ char big_buf_[BIG_BUFFER_32K];
+ @<loop thru the rules@>;
+}
+@*4 Go thru rules.
+@<loop thru the rules@>=
+ RULE_DEFS_TBL_ITER_type i = rules_ph->crt_order()->begin();
+ RULE_DEFS_TBL_ITER_type ie = rules_ph->crt_order()->end();
+ for(;i!=ie;++i){
+ rule_def* rd = *i;
+ @<deal with arbitrator code@>;
+ T_rule_lhs_phrase* rlhs = rd->rule_lhs();
+ const char* ctor_code(0);
+ const char* dtor_code(0);
+ string dtor_name("0");
+ const char* op_code(0);
+ const char* user_imp_code(0);
+ T_destructor* dtor(0);
+ if(rlhs != 0){
+ SDC_MAP_type* dir_map = rlhs->lhs_directives_map();
+ SDC_MAP_ITER_type i = dir_map->find(SDC_constructor);
+ if(i != dir_map->end()){
+ @=T_constructor* ctor = (T_constructor*)i->second;@>@/
+ ctor_code = ctor->syntax_code()->syntax_code()->c_str();
+ }
+ i = dir_map->find(SDC_destructor);
+ if(i != dir_map->end()){
+ @=dtor = (T_destructor*)i->second;@>@/
+ dtor_code = dtor->syntax_code()->syntax_code()->c_str();
+ KCHARP dtor_nm = @/
+ "&dtor_%s";
+ sprintf(big_buf_
+ ,dtor_nm
+ ,rd->rule_name()->c_str()
+ );
+ dtor_name.clear();
+ dtor_name += big_buf_;
+ }
+ i = dir_map->find(SDC_op);
+ if(i != dir_map->end()){
+ @=T_op* op = (T_op*)i->second;@>@/
+ op_code = op->syntax_code()->syntax_code()->c_str();
+ }
+
+ i = dir_map->find(SDC_user_implementation);
+ if(i != dir_map->end()){
+ @=T_user_implementation* uimp= (T_user_implementation*)i->second;@>@/
+ user_imp_code = uimp->syntax_code()->syntax_code()->c_str();
+ }
+ }
+
+ KCHARP rule_def_imp = @/
+ "%s::%s(yacco2::Parser* P)\n"@/
+ " :CAbs_lr1_sym\n"@/
+ " (\"%s\",%s,%s::R_%s_,P,%s,%s){\n"@/
+ "}\n";
+ string ad;
+ if(rd->autodelete() == true){
+ ad += "true";
+ }else{
+ ad += "false";
+ }
+ string ab;
+ if(rd->autoabort() == true){
+ ab += "true";
+ }else{
+ ab += "false";
+ }
+ int x = sprintf(big_buf_
+ ,rule_def_imp
+ ,rd->rule_name()->c_str()
+ ,rd->rule_name()->c_str()
+ ,rd->rule_name()->c_str()
+ ,dtor_name.c_str()
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,rd->rule_name()->c_str()
+ ,ad.c_str()
+ ,ab.c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+
+
+ if(dtor_code != 0){
+ std::string::size_type r =
+ dtor->syntax_code()->syntax_code()->find("ABORT_STATUS");
+ KCHARP rule_def_dtor = @/
+ "void %s::dtor_%s(yacco2::VOIDP This,yacco2::VOIDP P){\n"@/
+ " bool ABORT_STATUS = ((yacco2::Parser*)P)->top_stack_record()->aborted__;\n"@/
+ " %s* R = (%s*)(This);\n"@/
+ " %s\n"@/
+ "}";
+ KCHARP rule_def_dtor_noabort = @/
+ "void %s::dtor_%s(yacco2::VOIDP This,yacco2::VOIDP P){\n"@/
+ " %s* R = (%s*)(This);\n"@/
+ " %s\n"@/
+ "}";
+ int x;
+ if(r != std::string::npos){ // using abort status
+ x = sprintf(big_buf_
+ ,rule_def_dtor
+ ,rd->rule_name()->c_str()
+ ,rd->rule_name()->c_str()
+ ,rd->rule_name()->c_str()
+ ,rd->rule_name()->c_str()
+ ,dtor_code
+ );
+ }else{
+ x = sprintf(big_buf_
+ ,rule_def_dtor_noabort
+ ,rd->rule_name()->c_str()
+ ,rd->rule_name()->c_str()
+ ,rd->rule_name()->c_str()
+ ,rd->rule_name()->c_str()
+ ,dtor_code
+ );
+ }
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+ if(op_code != 0){
+ KCHARP rule_def_op = @/
+ "void %s::op(){\n"@/
+ " sstrace_rulesss\n"@/
+ " %s\n"@/
+ "}";
+ int x = sprintf(big_buf_
+ ,rule_def_op
+ ,rd->rule_name()->c_str()
+ ,op_code
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+
+ if(ctor_code != 0){
+ KCHARP rule_def_ctor = @/
+ "void %s::ctor(){\n"@/
+ " %s\n"@/
+ "}";
+ int x = sprintf(big_buf_
+ ,rule_def_ctor
+ ,rd->rule_name()->c_str()
+ ,ctor_code
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+
+ if(user_imp_code != 0){
+ Op_str << user_imp_code<<endl;
+ }
+ @<loop thru the subrules@>;
+ }
+
+@*4 Deal with arbitrator code.\fbreak
+@<deal with arbitrator code@>=
+ if(rd->parallel_mntr() != 0){
+ @=T_parallel_monitor_phrase* pp_phrase = rd->parallel_mntr();@>@/
+ @<is there arbitration code? --- yes output@>;
+ }
+ @
+ @<is there arbitration code? --- yes output@>=
+ if(pp_phrase->mntr_directives_map()->empty() != true){
+ SDC_MAP_type* pp_map = pp_phrase->mntr_directives_map();
+ SDC_MAP_ITER_type p = pp_map->find(SDC_arbitrator_code);
+ if(p != pp_map->end()){
+ @=T_arbitrator_code* ac = (T_arbitrator_code*)p->second;@>@/
+ string::size_type idx =
+ ac->syntax_code()->syntax_code()->find(CODE_PRESENCE_IN_ARBITRATOR_CODE);
+ if(idx != string::npos){
+ KCHARP rule_s_arbitrator_imp =@/
+ "yacco2::THR _YACCO2_CALL_TYPE\n"@/
+ "%s::AR_%s(yacco2::Parser* Caller_pp){\n"@/
+ " yacco2::KCHARP ar_name = \"AR_%s\";\n"@/
+ "#include \"war_begin_code.h\"\n"@/
+ " %s\n"@/
+ "#include \"war_end_code.h\"\n"@/
+ "}\n";
+ int x = sprintf(big_buf_
+ ,rule_s_arbitrator_imp
+ ,fsm_ph->namespace_id()->identifier()->c_str()
+ ,rd->rule_name()->c_str()
+ ,rd->rule_name()->c_str()
+ ,ac->syntax_code()->syntax_code()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+ }
+ }
+
+@*4 Emit the syntax directed code(sdc).\fbreak
+2 optimizations are done: gen the definition if there is syntax directed code,
+and the second optimization gens the
+ stack frame when it is referenced within the syntax directed code.
+It is crude in determining whether the sdc uses it:
+see if there is a reference to
+the local stack frame variable ``sf'' searched within the code string.
+The stack frame variable contains the subrule's items having each parameter start with ``p''.
+To reference a subrule's item, one uses the |sf->px__| whereby the stacked item is
+x starting from 1. |p10__| would reference the tenth item on the stack.
+The parameter count starts from the left of the subrule.
+An epsilon subrule has no parameters. There is no c++ sdc validity check done here.
+It leaves it to the c++ compiler to digest \O2's code.
+@<loop thru the subrules@>=
+ T_subrules_phrase* sr_ph = rd->subrules();
+ SUBRULE_DEFS_ITER_type j = sr_ph->subrules()->begin();
+ SUBRULE_DEFS_ITER_type je = sr_ph->subrules()->end();
+ int nosrs = sr_ph->no_subrules();
+ for(int xx = 1;j != je;++j,++xx){
+ T_subrule_def* srd = *j;
+ AST* sr_t = AST::get_spec_child(*srd->subrule_s_tree(),1);
+ int no_parms = srd->no_of_elems() - 1;// remove eos
+ KCHARP sub_rule_def_imp = @/
+ "void %s::sr%i(){";
+ SDC_MAP_type* dir_map = srd->subrule_directives();
+ if(dir_map->empty() != true){ // gen if there is syntax directed code
+ int x = sprintf(big_buf_
+ ,sub_rule_def_imp
+ ,rd->rule_name()->c_str()
+ ,xx
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+
+ SDC_MAP_ITER_type i = dir_map->find(SDC_op);
+ if(i != dir_map->end()){
+ @=T_op* rhsc = (T_op*)i->second;@>@/
+ std::string::size_type idx;
+ idx = rhsc->syntax_code()->syntax_code()->find("sf->p");
+// any reference to the stack frame within the sdc?
+ if(idx == std::string::npos) goto write_out_op_code;
+ @<gen stack frame def and equate it to the parse stack@>;
+ write_out_op_code:;
+ KCHARP sub_rule_def_op_code = @/
+ " %s";// rhs op
+ int x =sprintf(big_buf_
+ ,sub_rule_def_op_code
+ ,rhsc->syntax_code()->syntax_code()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+ KCHARP sub_rule_def_end = @/
+ "}\n";
+ Op_str << sub_rule_def_end<<endl;
+ }
+ }
+@*4 Gen stack frame definition and equate it to the parse stack.\fbreak
+There are 3 conditions that need explanation:\fbreak
+\INDENT{.2in}{1) LR1\_ALL\_SHIFT\_OPERATOR --- \ALLshift}
+\INDENT{.2in}{2) LR1\_INVISIBLE\_SHIFT\_OPERATOR --- \INVshift}
+\INDENT{.2in}{2) LR1\_QUESTIONABLE\_SHIFT\_OPERATOR --- \QUEshift}
+\fbreak
+The ``all shift'' operator is a proxy that represents
+ a wild terminal on the stack.
+It has no specific representation! This is why the
+terminal has to be represented by the abstract terminal ``CAbs\_lr1\_sym''.
+To get its specifics, testing of its enumerate coupled with the cast statement
+now turns it into a somebody.
+
+The ``invisible shift'' operator is a proxy epsilon.
+It does not need to reference the parse stack frame so optimize it out.
+The ``questionable shift'' operator is
+handles error setection points within the grammar.
+It does not need to reference the parse stack frame so optimize it out.
+
+To introduce chained-called-procedures, the ``eosubrule'' was attached to
+the thread call expressions and their variants.
+To note the called thread or procedure is not part of the
+parse stack so drop it and re-align the number of subrule
+parameters.
+@<gen stack frame def and equate it to the parse stack@>=
+ for(int y=1;y<=no_parms;++y){// gen stack frame items
+ bool eos_thd_or_proc(false);
+ CAbs_lr1_sym* sym = AST::content(*sr_t);
+ const char* parm_name(0);
+ switch (sym->enumerated_id__){
+ case T_Enum::T_refered_rule_:{
+ @=refered_rule* rr = (refered_rule*)sym;@>@/
+ parm_name = rr->its_rule_def()->rule_name()->c_str();
+ break;
+ }
+ case T_Enum::T_refered_T_:{
+ @=refered_T* rt = (refered_T*)sym;@>@/
+ T_terminal_def* td = rt->its_t_def();
+ if(td->enum_id() == LR1_ALL_SHIFT_OPERATOR){
+ parm_name = "CAbs_lr1_sym";
+ break;
+ }
+ if(td->enum_id() == LR1_QUESTIONABLE_SHIFT_OPERATOR){
+ parm_name = "CAbs_lr1_sym";
+ break;
+ }
+ if(td->enum_id() == LR1_INVISIBLE_SHIFT_OPERATOR){
+ parm_name = "CAbs_lr1_sym";
+ break;
+ }
+ parm_name = td->classsym()->c_str();
+ break;
+ }
+ case T_Enum::T_T_identifier_:{
+ parm_name = "T_identifier";
+ break;
+ }
+ case T_Enum::T_T_NULL_:{
+ parm_name = "T_NULL";
+ break;
+ }
+ case T_Enum::T_T_2colon_:{
+ parm_name = "T_2colon";
+ break;
+ }
+ case T_Enum::T_T_called_thread_eosubrule_:{
+ eos_thd_or_proc = true;
+ --no_parms;
+ --y;
+ break;
+ }
+ case T_Enum::T_T_null_call_thread_eosubrule_:{
+ eos_thd_or_proc = true;
+ --no_parms;
+ --y;
+ break;
+ }
+ }
+
+
+ if(y == 1){// stk frame
+ KCHARP sub_rule_stk_parms_begin = @/
+ " struct SF{";
+ Op_str << sub_rule_stk_parms_begin<<endl;
+ }
+ KCHARP sub_rule_stk_parm = @/
+ " %s* p%i__;\n"@/
+ " State* s%i__;\n"@/
+ " bool abort%i__;\n"
+ " Rule_s_reuse_entry* rule_s_reuse_entry%i__;";
+ if(eos_thd_or_proc == false){
+ int x =sprintf(big_buf_
+ ,sub_rule_stk_parm
+ ,parm_name
+ ,y
+ ,y
+ ,y
+ ,y
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+ sr_t = AST::brother(*sr_t);
+ }
+ if(no_parms > 0){
+ KCHARP sub_rule_stk_parms_end = @/
+ " };";
+ Op_str << sub_rule_stk_parms_end<<endl;
+ KCHARP stk_frame_equate = @/
+ " SF* sf = (SF*)rule_info__.parser__->parse_stack__.sf_by_top(%i);";
+
+ int x = sprintf(big_buf_
+ ,stk_frame_equate
+ ,no_parms
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+
+@*2 |OP_GRAMMAR_CPP| implementation.\fbreak
+@<accrue source for emit@>+=
+void OP_GRAMMAR_CPP(TOKEN_GAGGLE& Error_queue){@/
+ T_fsm_phrase* fsm_ph = O2_FSM_PHASE;
+ string fn(fsm_ph->filename_id()->identifier()->c_str());
+ fn += Suffix_fsmimp;
+ std::ofstream Op_file;
+ Op_file.open(fn.c_str(),ios_base::out|ios::trunc);
+ if(!Op_file){
+ CAbs_lr1_sym* sym = new Err_bad_fsmcpp_filename(fn.c_str());
+ sym->set_line_no_and_pos_in_line(*fsm_ph->filename_id());
+ sym->set_who_created("o2externs.w - OP_GRAMMAR_CPP",__LINE__);
+ Error_queue.push_back(*sym);
+ return;
+ }
+
+ intro_comment(Op_file,fn.c_str());
+ fsm_cpp_includes(Op_file);
+ using_ns_for_fsm_cpp(Op_file);
+ rules_reuse_table_implementation(Op_file);
+ fsm_class_implementation(Op_file);
+ rules_subrules_implementations(Op_file);
+ Op_file.close();
+}
+
+@* Template of fsm sym file implementation: |OP_GRAMMAR_SYM|.\fbreak
+|reduce_rhs_of_rule| implementation and possible thread procedure.
+Back in time when c++ compilers were aborting i needed to
+split the size of the emitted grammar's source file
+so that digestion instead of indigestion took place.
+|reduce_rhs_of_rule| should be part of the ``fsm'' cpp file.
+I leave it as is cuz i'm lazy and makes reading of the outfiles easier.
+\fbreak
+\INDENT{.1in}{1) Comments --- file name, time and date info}
+\INDENT{.1in}{2) Include of grammar's header}
+\INDENT{.1in}{3) possible ``user-imp-sym'' code}
+\INDENT{.1in}{4) using namespaces}
+\INDENT{.1in}{5) Possible thread procedure implementation}
+\INDENT{.1in}{6) Fsm class |reduce_rhs_of_rule| implementation}
+\INDENT{.1in}{7) grammar's rules / subrules implementations}
+@*3 |user_imp_sym|.\fbreak
+There are times when circularity hits u in include definitions by the compiler's
+preprocessor. This
+allows the grammar writer to roll-his-own by injection points.\fbreak
+Grammar Directive: ``user-imp-sym'' for the emitted ``xxxsym.cpp'' code module.
+@<accrue source for emit@>+=
+void user_imp_sym
+(std::ofstream& Op_str){@/
+ T_fsm_phrase* fsm_ph = O2_FSM_PHASE;
+ T_fsm_class_phrase* fsm_class = fsm_ph->fsm_class_phrase();
+ SDC_MAP_type* dir_map = fsm_class->directives_map();
+ SDC_MAP_ITER_type i = dir_map->find(SDC_user_imp_sym);
+ if(i != dir_map->end()){
+ @=T_user_imp_sym* ui = (T_user_imp_sym*)i->second;@>@/
+ Op_str << ui->syntax_code()->syntax_code()->c_str();
+ Op_str << endl;
+ }
+}
+@*3 |thread_implementation|.\fbreak
+Some naming conventions:\fbreak
+ssPARSE\_TABLE is referenced out of the "wpp\_core.h" file.
+This was my way to import info into a canned thread code body.\fbreak
+@<accrue source for emit@>+=
+void thread_implementation
+(std::ofstream& Op_str){@/
+ T_parallel_parser_phrase* pp_ph = O2_PP_PHASE;
+ if(pp_ph == 0){
+ Op_str <<"// monolithic grammar --- no thread" << endl;
+ return;
+ }
+ T_fsm_phrase* fsm_ph = O2_FSM_PHASE;
+ T_fsm_class_phrase* fsm_class = fsm_ph->fsm_class_phrase();
+ T_rules_phrase* rules_ph = O2_RULES_PHASE;
+ T_enum_phrase* enum_ph = O2_T_ENUM_PHASE;
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP thread_definition = @/
+ "yacco2::THR _YACCO2_CALL_TYPE\n"@/
+ "%s::%s(yacco2::Parser* Caller_pp){\n"@/
+ " yacco2::Thread_entry& pp_thread_entry = I%s;\n"@/
+ " %s::%s %s_;// parallel-parser's parse table\n"
+ "#define ssPARSE_TABLE %s_\n"@/
+ "#include \"wpp_core.h\"\n"@/
+ "}";
+
+ int x = sprintf(big_buf_
+ ,thread_definition
+ ,fsm_ph->namespace_id()->identifier()->c_str()
+ ,pp_ph->pp_funct()->identifier()->identifier()->c_str()
+ ,pp_ph->pp_funct()->identifier()->identifier()->c_str()
+ ,fsm_ph->namespace_id()->identifier()->c_str()
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,fsm_class->identifier()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+
+ KCHARP proc_thread_definition = @/
+ "THR_result _YACCO2_CALL_TYPE\n"@/
+ "%s::PROC_%s(yacco2::Parser* Caller_pp){\n"@/
+ " char called_proc_name[] = \"PROC_%s\";\n"
+ " static bool one_time(false);\n"@/
+ " static %s::%s* %s_%s_(0);// parallel-parser's fsm table\n"@/
+ " static Parser* %s_%s_parser(0);\n"@/
+ " Parser* proc_parser(0);\n"@/
+ " if(one_time == false){\n"
+ " one_time = true;\n"@/
+ " %s_%s_ = new %s::%s();// parallel-parser's fsm table\n"
+ " %s_%s_parser = new Parser(*%s_%s_,Caller_pp);\n"@/
+ " }\n"@/
+ " proc_parser = %s_%s_parser;\n"@/
+ "#include \"wproc_pp_core.h\"\n"@/
+ "}";
+
+ x = sprintf(big_buf_
+ ,proc_thread_definition
+ ,fsm_ph->namespace_id()->identifier()->c_str()
+ ,pp_ph->pp_funct()->identifier()->identifier()->c_str()
+ ,pp_ph->pp_funct()->identifier()->identifier()->c_str() // called proc name
+ ,fsm_ph->namespace_id()->identifier()->c_str()
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,fsm_ph->namespace_id()->identifier()->c_str()
+ ,fsm_class->identifier()->identifier()->c_str()// static fsm
+
+ ,fsm_ph->namespace_id()->identifier()->c_str()
+ ,fsm_class->identifier()->identifier()->c_str() // static parser
+
+ ,fsm_ph->namespace_id()->identifier()->c_str()
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,fsm_ph->namespace_id()->identifier()->c_str()
+ ,fsm_class->identifier()->identifier()->c_str()// new fsm
+
+ ,fsm_ph->namespace_id()->identifier()->c_str()
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,fsm_ph->namespace_id()->identifier()->c_str()
+ ,fsm_class->identifier()->identifier()->c_str()// new parser
+
+ ,fsm_ph->namespace_id()->identifier()->c_str()
+ ,fsm_class->identifier()->identifier()->c_str() // set as proc\_parser
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+}
+
+@*3 |fsm_reduce_rhs_of_rule_implementation|.\fbreak
+@<accrue source for emit@>+=
+void fsm_reduce_rhs_of_rule_implementation
+(std::ofstream& Op_str){@/
+ T_fsm_phrase* fsm_ph = O2_FSM_PHASE;
+ T_fsm_class_phrase* fsm_class = fsm_ph->fsm_class_phrase();
+ T_rules_phrase* rules_ph = O2_RULES_PHASE;
+ char big_buf_[BIG_BUFFER_32K];
+
+ KCHARP reduce_rhs_of_rule_hdr = @/
+ "void \n"@/
+ "%s::reduce_rhs_of_rule\n"@/
+ " (yacco2::UINT Sub_rule_no,yacco2::Rule_s_reuse_entry** Recycled_rule){\n"@/
+ " int reducing_rule = rhs_to_rules_mapping_[Sub_rule_no];\n"@/
+ " Per_rule_s_reuse_table* rule_reuse_tbl_ptr = \n"@/
+ " fsm_rules_reuse_table.per_rule_s_table_[reducing_rule];\n"@/
+ " Rule_s_reuse_entry* re(0);\n"@/
+ " find_a_recycled_rule(rule_reuse_tbl_ptr,&re);\n"
+ " (*Recycled_rule) = re;\n"
+ " fnd_re: switch (Sub_rule_no){";
+ int x = sprintf(big_buf_
+ ,reduce_rhs_of_rule_hdr
+ ,fsm_class->identifier()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ @<gen rules's subrules case stmts@>;
+}
+
+@*3 Gen rules's subrules case statements.
+@<gen rules's subrules case stmts@>=
+ RULE_DEFS_TBL_ITER_type i = rules_ph->crt_order()->begin();
+ RULE_DEFS_TBL_ITER_type ie = rules_ph->crt_order()->end();
+ for(;i!=ie;++i){
+ rule_def* rd = *i;
+ @<gen subrule case stmt@>;
+ }
+ KCHARP default_case_and_end_sw = @/
+ " default: return;\n"@/
+ " }";
+ Op_str << default_case_and_end_sw<<endl;
+
+ KCHARP end_rtn = @/
+ "}";
+ Op_str << end_rtn<<endl;
+
+@*3 Gen subrule case statement.\fbreak
+Optimization: Place the subrule's number of
+elements within the ``xxxsym'' module instead of
+within its subrule.
+This allows the saving of a procedure call if there is no syntax directed code for
+ the subrule procedure.
+ Now for the rule optimization:\fbreak
+ 1) the case statement determines whether the rule should be
+ created or use the recycled one from a
+ previous invocation. The wrinkle is to determine whether a ctor
+ type call is needed to re-initialize the recycled rule.
+ This depends on whether a ``constructor'' directive is present
+ in the rule's definition.
+ If so, then call a pseudo ctor initialization procedure or just include the
+ ``constructor code'' in the commented ``if ctor present commented below''.
+
+ Review of Rule's emit code:\fbreak
+ The parser sees a string of symbols and determines
+ that a reduce is to take place.
+ So the subrule to be executed within the rule determines its rule.
+ So the rule is either created by newing for the first time or
+ drawn from its recycled pool.
+
+ Now the interesting sequence:\fbreak
+ 1) Create/Recycled Rule for the subrule to run within\fbreak
+ 2) Execute the Rule's contructor directive if present in the rule definition\fbreak
+ 3) Execute the subrule's code\fbreak
+ 4) Execute the Rule's op directive if present int its definition\fbreak
+ \fbreak
+ The constructor-op-destructor directives sequence of a fsm
+ has a different meaning within a rule's sequence.
+ This is due to a rule can be created many times thru left recursion so what
+ does the constructor directive mean --- run only once?
+ It takes on more of an intialization role to the newly created rule or its recycled ego.
+ The neat thing is the rhs aka subrule to be reduced now becomes the
+ op directive to the rhs of a rule and the
+ op directive of the rule now follows it in execution.
+ This allows one to post evaluate what the subrule was and to react accordingly.
+@<gen subrule case stmt@>=
+ const char* rule_s_ctor = "// no rule's constructor directive";
+ T_rule_lhs_phrase* rlhs = rd->rule_lhs();
+ if (rlhs != 0) {
+ SDC_MAP_type* rdlhs_map = rlhs->lhs_directives_map();
+ if(rdlhs_map != 0){
+ SDC_MAP_ITER_type kkk = rdlhs_map->find(SDC_constructor);
+ if(kkk != rdlhs_map->end()){
+ @=T_constructor* cc = (T_constructor*)kkk->second;@>@/
+ rule_s_ctor = "sym->ctor();\n";
+ }
+ }
+ }
+
+ T_subrules_phrase* sr_ph = rd->subrules();
+ SUBRULE_DEFS_ITER_type j = sr_ph->subrules()->begin();
+ SUBRULE_DEFS_ITER_type je = sr_ph->subrules()->end();
+ KCHARP case_stmt_parta = @/
+ " case rhs%i_%s_:{\n"@/
+ " %s* sym;\n"@/
+ " if(re->rule_ == 0){\n"@/
+ " sym = new %s(parser__);\n"@/
+ " re->rule_ = sym;\n"@/
+ " }else{\n"@/
+ " sym = (%s*)re->rule_;\n"@/
+ " }\n"@/
+ " %s\n"@/
+ " (*Recycled_rule)->rule_ = sym;\n"@/
+ " sym->rule_info__.rhs_no_of_parms__ = %i;\n"@/
+ " \n";
+ KCHARP case_stmt_partb = " sym->sr%i();";
+ KCHARP case_stmt_partc = " return;}";
+ for(;j != je;++j){
+ T_subrule_def* srd = *j;
+
+ int no_parms = srd->no_of_elems() - 1;// remove eos
+ // see if subrule is a thread or proc call so also remove its eos
+ AST* sr_t = srd->subrule_s_tree();
+ @=set<int> eos_filter;@>@/
+ eos_filter.insert(T_Enum::T_T_called_thread_eosubrule_);
+ eos_filter.insert(T_Enum::T_T_null_call_thread_eosubrule_);
+ tok_can_ast_functor walk_the_plank_mate;
+ ast_prefix_1forest eos_walk
+ (*sr_t,&walk_the_plank_mate,&eos_filter,ACCEPT_FILTER);@/
+ tok_can<AST*> eos_can(eos_walk);
+ for (int xxx = 0;eos_can.operator[](xxx) != yacco2::PTR_LR1_eog__;++xxx);
+ if(eos_can.empty() ==false) --no_parms;
+
+ int x = sprintf(big_buf_
+ ,case_stmt_parta
+ ,srd->subrule_no_of_rule()
+ ,rd->rule_name()->c_str()
+ ,rd->rule_name()->c_str()
+ ,rd->rule_name()->c_str()
+ ,rd->rule_name()->c_str()
+ ,rule_s_ctor
+ ,no_parms);
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+
+ SDC_MAP_type* sdrmap = srd->subrule_directives();
+
+ if(!sdrmap->empty()){ // any syntax directed code, call it
+ int x = sprintf(big_buf_,case_stmt_partb,srd->subrule_no_of_rule());
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+
+
+ if(rd->rule_lhs() != 0){
+ SDC_MAP_type* xxrdmap = rd->rule_lhs()->lhs_directives_map();
+ if(xxrdmap != 0){
+ SDC_MAP_ITER_type kkk = xxrdmap->find(SDC_op);
+ if(kkk != xxrdmap->end()){
+ Op_str << " sym->op();"<<endl;
+ }
+ }
+ }
+ Op_str << case_stmt_partc<<endl;
+ }
+
+
+
+@*2 |OP_GRAMMAR_SYM| implementation.\fbreak
+@<accrue source for emit@>+=
+void OP_GRAMMAR_SYM(TOKEN_GAGGLE& Error_queue){
+ T_fsm_phrase* fsm_ph = O2_FSM_PHASE;
+ string fn(fsm_ph->filename_id()->identifier()->c_str());
+ fn += Suffix_fsmsym;
+ std::ofstream Op_file;
+ Op_file.open(fn.c_str(),ios_base::out|ios::trunc);
+ if(!Op_file){
+ CAbs_lr1_sym* sym = new Err_bad_fsmsym_filename(fn.c_str());
+ sym->set_line_no_and_pos_in_line(*fsm_ph->filename_id());
+ sym->set_who_created("o2externs.w - OP_GRAMMAR_CPP",__LINE__);
+ Error_queue.push_back(*sym);
+ return;
+ }
+
+ intro_comment(Op_file,fn.c_str());
+ user_imp_sym(Op_file);
+ fsm_cpp_includes(Op_file);
+ using_ns_for_fsm_cpp(Op_file);
+ thread_implementation(Op_file);
+
+ fsm_reduce_rhs_of_rule_implementation(Op_file);
+ Op_file.close();
+}
+
+@* Template of fsm tbl file implementation: |OP_GRAMMAR_TBL|.\fbreak
+Emit the grammar's lr1 states tables, and threads
+for dispatch tables along with their arbitrators.
+\fbreak
+\INDENT{.1in}{1) Comments --- file name, time and date info}
+\INDENT{.1in}{2) Include of grammar's header}
+\INDENT{.1in}{3) possible ``user-imp-tbl'' code}
+\INDENT{.1in}{4) using namespaces}
+\INDENT{.1in}{5) lookahead sets}
+\INDENT{.1in}{6) lr states externs and thread table definitions / implementations}
+\INDENT{.1in}{7) lr states definitions / implementations}
+\fbreak
+Please see \O2{}'s documentation describing
+the following tables and their layouts:\fbreak
+\INDENT{.2in}{1) State}
+\INDENT{.2in}{2) Shift\_entry}
+\INDENT{.2in}{3) Reduce\_tbl}
+\INDENT{.2in}{4) State\_s\_thread\_tbl}
+\INDENT{.2in}{5) Thread\_entry}
+@*3 |user_imp_tbl|.\fbreak
+There are times when circularity hits u in include definitions by the compiler's
+preprocessor. This
+allows the grammar writer to roll-his-own by injection points.\fbreak
+Grammar Directive: ``user-imp-tbl'' for the emitted ``xxxtbl.cpp'' code module.
+@<accrue source for emit@>+=
+void user_imp_tbl
+(std::ofstream& Op_str){@/
+ T_fsm_phrase* fsm_ph = O2_FSM_PHASE;
+ T_fsm_class_phrase* fsm_class = fsm_ph->fsm_class_phrase();
+ SDC_MAP_type* dir_map = fsm_class->directives_map();
+ SDC_MAP_ITER_type i = dir_map->find(SDC_user_imp_tbl);
+ if(i != dir_map->end()){
+ @=T_user_imp_tbl* ui = (T_user_imp_tbl*)i->second;@>@/
+ Op_str << ui->syntax_code()->syntax_code()->c_str();
+ Op_str << endl;
+ }
+}
+
+@*3 |output_la_sets|.\fbreak
+@<accrue source for emit@>+=
+void output_la_sets
+(std::ofstream& Op_str){@/
+ T_fsm_phrase* fsm_ph = O2_FSM_PHASE;
+ T_fsm_class_phrase* fsm_class = fsm_ph->fsm_class_phrase();
+ char big_buf_[BIG_BUFFER_32K];
+
+ COMMON_LA_SETS_ITER_type i = COMMON_LA_SETS.begin();
+ COMMON_LA_SETS_ITER_type ie = COMMON_LA_SETS.end();
+ for(int idx=0;i!=ie;++i,++idx){
+ LA_SET_type* la_set = *i;
+ @<list literal entries of la set@>;
+ @<emit la set@>;
+ }
+}
+@*3 List literal entries of la set.\fbreak
+Leave T traces of what makes up the compressed bit table.
+@<list literal entries of la set@>=
+ KCHARP la_set_entry_literal =@/
+ "// %s";
+ LA_SET_ITER_type j = la_set->begin();
+ LA_SET_ITER_type je = la_set->end();
+ for(;j!=je;++j){
+ T_in_stbl* tsym = *j;
+ int x = sprintf(big_buf_
+ ,la_set_entry_literal
+ ,tsym->t_def()->classsym()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+@*3 Emit la set.\fbreak
+Sets are structured as a balanced table in bit partitions ascending order.
+Each record is a paired structure of partition number with its bits
+sized by |NO_BITS_PER_SET_PARTITION|.
+The overall table contains the number of entries so that
+a ``bsearch' can take place.
+Remember each T is ordered by its enumerate from 0..x
+and due to modulo arithmetic each bit entry is
+positioned
+in right-to-left order within the bit entry.
+@<emit la set@>=
+ KCHARP la_set_hdr =@/
+ "yacco2::UCHAR LA%i_%s[] ={";
+ int x = sprintf(big_buf_
+ ,la_set_hdr
+ ,idx + 1 // name given to la set uses the set no relative to 1
+ ,fsm_class->identifier()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+@<build la set's bit table@>;
+@<output the la set's compressed bits@>;
+
+@*4 Build la set's bit table.\fbreak
+@<build la set's bit table@>=
+ BIT_MAP_type paired_set;
+ LA_SET_ITER_type k = la_set->begin();
+ LA_SET_ITER_type ke = la_set->end();
+ int en_no(-1);
+ for(;k != ke;++k){// walk the items in set
+ T_in_stbl* T = *k;
+ en_no = T->t_def()->enum_id();
+ // calculate partition no and its set of elements
+ int Q = en_no / NO_BITS_PER_SET_PARTITION;
+ int R = en_no % NO_BITS_PER_SET_PARTITION;
+ int One(1);
+ int E_v = One << R;
+ BIT_MAP_ITER_type e = paired_set.find(Q);
+ if(e == paired_set.end()){
+ paired_set[Q] = E_v;
+ }else{
+ int se = e->second;
+ int v = se + E_v;
+ e->second = v;
+ }
+ }
+
+@*4 Output the la set's compressed bits.\fbreak
+@<output the la set's compressed bits@>=
+ KCHARP no_la_set_entries =@/
+ "%i";
+ x = sprintf(big_buf_
+ ,no_la_set_entries
+ ,paired_set.size()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ BIT_MAP_ITER_type kl = paired_set.begin();
+ BIT_MAP_ITER_type kle = paired_set.end();
+ for(;kl != kle;++kl){
+ int part_no = kl->first;
+ int e_v = kl->second;
+ KCHARP la_set_entry =@/
+ ",%i,%i";
+ x = sprintf(big_buf_
+ ,la_set_entry
+ ,part_no
+ ,e_v
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+ KCHARP la_set_hdr_end =@/
+ "};";
+ Op_str <<la_set_hdr_end<<endl;
+
+
+@*3 |externs_and_thread_tbl_defs|.\fbreak
+@<accrue source for emit@>+=
+void externs_and_thread_tbl_defs
+(std::ofstream& Op_str){@/
+ T_fsm_phrase* fsm_ph = O2_FSM_PHASE;
+ T_fsm_class_phrase* fsm_class = fsm_ph->fsm_class_phrase();
+
+ char big_buf_[BIG_BUFFER_32K];
+ STATES_ITER_type i = LR1_STATES.begin();
+ STATES_ITER_type ie = LR1_STATES.end();
+ int state_cnt(0);
+ for(;i!=ie;++i){
+ state* s = *i;
+ ++state_cnt;
+ KCHARP state_extern = @/
+ "extern yacco2::State S%i_%s;";
+ int x = sprintf(big_buf_
+ ,state_extern
+ ,state_cnt
+ ,fsm_class->identifier()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ @<deal with threads in state@>;
+ }
+}
+@*4 Deal with threads in state.\fbreak
+Emit their thread table definitions along with
+arbitrator code.
+@<deal with threads in state@>=
+ using namespace NS_yacco2_T_enum;
+ if(s->vectored_into_by_elem_sym_ == 0) continue;// next state
+switch(s->vectored_into_by_elem_){
+ case LR1_PARALLEL_OPERATOR:{
+ @<determine number of threads to call@>;
+ @<output called threads table def / imp@>;
+ break;
+ }
+ default: continue;// next state
+}
+
+@*5 Determine number of threads to call.\fbreak
+Read the core items of the state. At the same time
+find out the rule that could have arbitration.
+Watch out for $\vert\vert\vert$ being a returned T from a called thread.
+If so this is not your average bear call.
+@<determine number of threads to call@>=
+ string ar_name;
+ rule_def* ar_s_rule_s_name(0);
+ int no_of_threads(0);
+ S_VECTORS_ITER_type j = s->state_s_vector_.begin();// rtn T's from threads
+ S_VECTORS_ITER_type je = s->state_s_vector_.end();
+ for(;j!=je;++j){// read subrules of returned Ts from called threads
+ S_VECTOR_ELEMS_type& elem_list = j->second;
+ S_VECTOR_ELEMS_ITER_type k = elem_list.begin();
+ S_VECTOR_ELEMS_ITER_type ke = elem_list.end();
+ for(;k!=ke;++k){// walk along the call sequence 1st item is T
+ state_element* se = *k;
+
+ if(se->next_state_element_ == 0)continue;// not your thread call but rtned T
+CAbs_lr1_sym*sym= AST::content(*AST::brother(*se->sr_element_));// not part of state: bypassed
+if(sym->enumerated_id__!=T_Enum::T_T_called_thread_eosubrule_)continue;
+ rule_def* rd = se->subrule_def_->its_rule_def();
+ RULES_HAVING_AR_ITER_type ai = RULES_HAVING_AR.find(rd);
+ if(ai != RULES_HAVING_AR.end()){
+ ar_s_rule_s_name = rd;
+ }
+ ++no_of_threads;
+ }
+ }
+ if(ar_s_rule_s_name != 0){
+ ar_name += "AR_";
+ ar_name += ar_s_rule_s_name->rule_name()->c_str();
+ s->arbitrator_name_ = new string(ar_name); // add arbitration code to the state
+ }
+
+@*5 Output called threads table def / imp.\fbreak
+To get the called threads for the dispatch table,
+one must look 1 state ahead cuz this
+state is the returned T from a called thread expression.
+Remember there are 2 types of thread call expressions:\fbreak
+\INDENT{.3in}{1) $\vert\vert\vert$ T NS\_xxx::TH\_eol --- real called thread}
+\INDENT{.3in}{2) $\vert\vert\vert$ T NULL --- expr to field a returned T from 1)}
+@<output called threads table def / imp@>=
+ if(no_of_threads > 0){
+ KCHARP state_s_thread_tbl_def = @/
+ "struct S%ittd_%s{\n"@/
+ " yacco2::USINT no_entries_;\n"@/
+ " yacco2::Type_pp_fnct_ptr ar_fnct_ptr_;\n"@/
+ " yacco2::ULINT (*thd_id_bit_map_ptr__)[];\n"@/
+ " yacco2::Thread_entry* thread_entries_[%i];\n"@/
+ "};";
+ int x = sprintf(big_buf_
+ ,state_s_thread_tbl_def
+ ,state_cnt
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,no_of_threads
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ @<determine if there is a rule's arbitrator to call@>;
+ KCHARP state_s_thread_tbl_imp = @/
+ "S%ittd_%s S%itt_%s = {\n"@/
+ " %i // no of threads\n"@/
+ " ,%s //AR_rulename or 0\n"@/
+ " ,0// ptr to thread id bit map";
+ x = sprintf(big_buf_
+ ,state_s_thread_tbl_imp
+ ,state_cnt
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,state_cnt
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,no_of_threads
+ ,ar_name.c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ j = s->state_s_vector_.begin();// read core items of state
+ je = s->state_s_vector_.end();
+ for(;j!=je;++j){// read subrules of returned Ts from called threads
+ S_VECTOR_ELEMS_type& elem_list = j->second;
+ S_VECTOR_ELEMS_ITER_type k = elem_list.begin();
+ S_VECTOR_ELEMS_ITER_type ke = elem_list.end();
+ for(;k!=ke;++k){// walk along call sequence 1st item is T
+ state_element* se = *k;
+ if(se->next_state_element_ == 0)continue;// not thd call but
+CAbs_lr1_sym*sym= AST::content(*AST::brother(*se->sr_element_));// not part of state: bypassed
+if(sym->enumerated_id__==T_Enum::T_T_called_thread_eosubrule_){
+ @=T_called_thread_eosubrule* called_th = (T_called_thread_eosubrule*)sym;@>@/
+ KCHARP state_s_thread_tbl_entry = @/
+ " ,(yacco2::Thread_entry*)&I%s";
+ int x = sprintf(big_buf_
+ ,state_s_thread_tbl_entry
+ ,called_th->called_thread_name()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+ }
+ }
+ KCHARP state_s_thread_tbl_end = @/
+ "};";
+ Op_str << state_s_thread_tbl_end<<endl;
+ }
+@*5 Output called procedure table def / imp.\fbreak
+To get the called procedure for the dispatch table,
+one must look 2 states ahead cuz this
+state is the \TRAshift{} operator.
+So go to the returned T state and read its core items.
+Remember there are 2 types of thread call expressions:\fbreak
+\INDENT{.3in}{1) \TRAshift T PROC\_TH\_eol --- called procedure}
+\INDENT{.3in}{2) \TRAshift T NULL --- expr to field a returned T from 1)}
+@<output called procedure table def / imp@>=
+ S_VECTORS_ITER_type j = se->goto_state_->state_s_vector_.begin();// rtn T's from threads
+ S_VECTORS_ITER_type je = se->goto_state_->state_s_vector_.end();
+ for(;j!=je;++j){// read subrules of returned Ts from called procedure
+ S_VECTOR_ELEMS_type& elem_list = j->second;
+ S_VECTOR_ELEMS_ITER_type k = elem_list.begin();
+ S_VECTOR_ELEMS_ITER_type ke = elem_list.end();
+ for(;k!=ke;++k){// walk along call sequence 1st item is T
+ state_element* se = *k;
+ if(se->next_state_element_ == 0)continue;// not thd call but
+ AST* bypassed_thd_eos_t = AST::brother(*se->sr_element_);
+ CAbs_lr1_sym* sym = AST::content(*bypassed_thd_eos_t);
+ if(sym->enumerated_id__ == T_Enum::T_T_called_thread_eosubrule_){
+ @=T_called_thread_eosubrule* called_th = (T_called_thread_eosubrule*)sym;@>@/
+ KCHARP state_s_thread_tbl_entry = @/
+ ",(yacco2::Type_pc_fnct_ptr)&%s::%s";
+ int x = sprintf(big_buf_
+ ,state_s_thread_tbl_entry
+ ,called_th->ns()->identifier()->c_str()
+ ,called_th->called_thread_name()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ }
+ }
+ }
+
+@*5 determine if there is a rule's arbitrator to call.\fbreak
+This conditions on whether arbritrator code is present in some spawning rules.
+Backtrack to the calling state to figure out whether there is a rule that contains code.
+If not then set the rule name to``0'' meaning nada to arbitrate.
+If found, the arbitrator's procedure's name is AR\_rulename.
+@<determine if there is a rule's arbitrator to call@>=
+if(ar_name.empty() == true)
+ ar_name += "0";
+
+
+@*5 |determine_shift_element_name|.\fbreak
+For your eyes only...
+@<accrue source for emit@>+=
+const char* determine_shift_element_name(CAbs_lr1_sym* Sym){
+switch(Sym->enumerated_id__){
+ case T_Enum::T_T_terminal_def_:{
+ @=T_terminal_def* td = (T_terminal_def*)Sym;@>@/
+ return td->classsym()->c_str();
+ }
+ case T_Enum::T_rule_def_:{
+ @=rule_def* rd = (rule_def*)Sym;@>@/
+ return rd->rule_name()->c_str();
+ }
+}
+return "element not found";
+}
+
+@*4 Output 1st state's shift table.\fbreak
+Hardwire ``start rule'' accept shift.
+The entries are in ascending order of their enumerates.
+Make sure the hardwired ``start rule'' shift entry comes right after the T vocabulary
+cuz of balanced table requirement.
+One wrinkle is if the 1st state does not contain any rules --- only terminals.
+So check at the end of the generation for this situation to gen the shifted start rule.
+@<accrue source for emit@>+=
+void output_1st_state_s_shift_table(std::ofstream& Op_str,state& State){
+ T_fsm_phrase* fsm_ph = O2_FSM_PHASE;
+ T_fsm_class_phrase* fsm_class = fsm_ph->fsm_class_phrase();
+ T_rules_phrase* rules_ph = O2_RULES_PHASE;
+ rule_def* s_rule = (*rules_ph->crt_order())[0];
+ int s_rule_enum_no = s_rule->enum_id();
+ char big_buf_[BIG_BUFFER_32K];
+ S_VECTORS_ITER_type svi;
+ S_VECTORS_ITER_type svie;
+ @<determine number of shifts@>;
+ ++no_of_shift_items;// add start rule shift
+ bool first_or_2nd_prt(false);
+ bool accept_prted(false);
+ @<output start of shift definition@>;
+ svi = State.state_s_vector_.begin();
+ svie = State.state_s_vector_.end();
+ for(;svi!=svie;++svi){// walk the vectors
+ S_VECTOR_ELEMS_ITER_type seli = svi->second.begin();
+ state_element* se = *seli;
+ int cur_se_enum_no = svi->first;
+ @<bypass reduces@>;
+ int goto_state_no = se->goto_state_->state_no_;
+ const char* shift_elem_literal = determine_shift_element_name(se->sr_def_element_);
+ if(cur_se_enum_no < s_rule_enum_no){
+ @<print 1st or 2nd shift entry@>;
+ }else{
+ if(accept_prted == false){
+ accept_prted = true;
+ @<print shift accept entry@>;
+ }
+ @<print 1st or 2nd shift entry@>;// balance of rules shifted
+ }
+ }
+ if(accept_prted == false){
+ accept_prted = true;
+ @<print shift accept entry@>;
+ }
+ @<output end of shift table entries@>;
+}
+
+@*5 Print 1st or 2nd shift entry.\fbreak
+@<print 1st or 2nd shift entry@>=
+ if (first_or_2nd_prt == false) {
+ first_or_2nd_prt = true;
+ KCHARP imp_of_state_s_shift_1st_entry =@/
+ " {%i,(State*)&S%i_%s} // shift sym: %s";
+ int x = sprintf(big_buf_
+ ,imp_of_state_s_shift_1st_entry
+ ,cur_se_enum_no
+ ,goto_state_no
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,shift_elem_literal
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+ else {
+ KCHARP imp_of_state_s_shift_2nd_entry =@/
+ " ,{%i,(State*)&S%i_%s} // shift sym: %s";
+ int x = sprintf(big_buf_
+ ,imp_of_state_s_shift_2nd_entry
+ ,cur_se_enum_no
+ ,goto_state_no
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,shift_elem_literal
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+
+@*5 Print shift accept entry.\fbreak
+The |first_or_2nd_prt| makes sure the following comma is printed properly.
+@<print shift accept entry@>=
+ if (first_or_2nd_prt == false) {
+ first_or_2nd_prt = true;
+ KCHARP imp_of_state_s_shift_1st_entry =@/
+ " {%i,(State*)&S%i_%s} // accept sym: %s";
+ int x = sprintf(big_buf_
+ ,imp_of_state_s_shift_1st_entry
+ ,s_rule_enum_no
+ ,1
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,s_rule->rule_name()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+ else{
+ KCHARP imp_of_state_s_shift_1st_entry =@/
+ " ,{%i,(State*)&S%i_%s} // accept sym: %s";
+ int x = sprintf(big_buf_
+ ,imp_of_state_s_shift_1st_entry
+ ,s_rule_enum_no
+ ,1
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,s_rule->rule_name()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+
+@*5 Output start of shift definition.\fbreak
+@<output start of shift definition@>=
+ KCHARP def_of_state_s_shift_entries =@/
+ "struct S%istd_%s{\n"@/
+ " yacco2::USINT no_entries_;\n"@/
+ " yacco2::Shift_entry shift_entries_[%i];\n"@/
+ "};";
+ int x = sprintf(big_buf_
+ ,def_of_state_s_shift_entries
+ ,State.state_no_
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,no_of_shift_items
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ KCHARP imp_of_state_s_shift_entries_begin =@/
+ "S%istd_%s S%ist_%s = {\n"@/
+ " %i\n"@/ // no of entries
+ " ,\n"@/
+ " {// start of table";
+ x = sprintf(big_buf_
+ ,imp_of_state_s_shift_entries_begin
+ ,State.state_no_
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,State.state_no_
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,no_of_shift_items
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+
+@*5 Output end of shift table entries.\fbreak
+@<output end of shift table entries@>=
+ KCHARP imp_of_shift_entries_end =@/
+ " }// end of shift table\n"@/
+ "};";
+ Op_str << imp_of_shift_entries_end<<endl;
+
+@*4 Output all others state's shift table.\fbreak
+@<accrue source for emit@>+=
+void output_all_others_state_s_shift_table(std::ofstream& Op_str,state& State){
+ T_fsm_phrase* fsm_ph = O2_FSM_PHASE;
+ T_fsm_class_phrase* fsm_class = fsm_ph->fsm_class_phrase();
+ char big_buf_[BIG_BUFFER_32K];
+ bool first_or_2nd_prt(false);
+ S_VECTORS_ITER_type svi;
+ S_VECTORS_ITER_type svie;
+ @<determine number of shifts@>;
+ if(no_of_shift_items){
+ @<output start of shift definition@>;
+ S_VECTORS_ITER_type svi = State.state_s_vector_.begin();
+ S_VECTORS_ITER_type svie = State.state_s_vector_.end();
+ for(;svi!=svie;++svi){// walk the vectors
+ S_VECTOR_ELEMS_ITER_type seli = svi->second.begin();
+ state_element* se = *seli;
+ int cur_se_enum_no= svi->first;
+ @<bypass reduces@>;
+ int goto_state_no = se->goto_state_->state_no_;
+ const char* shift_elem_literal = determine_shift_element_name(se->sr_def_element_);
+ @<print 1st or 2nd shift entry@>;
+ }
+ @<output end of shift table entries@>;
+ }
+}
+
+@*5 Determine number of shifts.\fbreak
+@<determine number of shifts@>=
+ int no_of_shift_items(0);
+ svi = State.state_s_vector_.begin();
+ svie = State.state_s_vector_.end();
+ for(;svi!=svie;++svi){// walk the vectors
+ S_VECTOR_ELEMS_ITER_type seli = svi->second.begin();
+ state_element* se = *seli;
+ int cur_se_enum_no = svi->first;
+ @<bypass reduces@>;
+ ++no_of_shift_items;
+ }
+
+@*5 Bypass meta T.\fbreak
+The meta T are bypassed as each are implemented separately
+as individual entries within the state table.
+The real truth is the individual entries in the state are for a fast determination
+of their presence to sequentially attempt the fsm's order of operations:
+parallelism --- thread calls by $\vert\vert\vert$ expressions, specific shift on current
+terminal token,
+invisible shift -- $\vert.\vert$ implicit espilon, all-shift $\vert+\vert$, and reduce.
+Their presence in the shift table is
+REQUIRED for the shift operator.
+On 1 hand lookup speed by separate state's entries is fast but when it comes
+to shifting it's slow to sequentially check for
+their individual presence.
+
+So below is my optimized mistake. THIS CODE IS NOW VOID! Only here for removal justifications.
+Meta T returned from a called thread are exempt and
+are part of the shift table.
+Why?
+They are treated like any other T returned from a called thread.
+The returned T is shifted into its reducing state that reduces the called-thread expression.
+@<bypass meta T@>=
+ switch(cur_se_enum_no){
+ case LR1_PARALLEL_OPERATOR:{
+ if(se->previous_state_element_ == 0) continue;//bypass start of call thd expr
+ if(// is $\vert\vert\vert$ returned from thread
+ se->previous_state_element_->its_enum_id_ == LR1_PARALLEL_OPERATOR)
+ break;// do not bypass: part of shift tbl
+ continue;// bypass
+ }
+ case LR1_FSET_TRANSIENCE_OPERATOR:{
+ if(se->previous_state_element_ == 0) continue;//bypass start of call proc expr
+ if(// is \\TRAshift returned from thread
+ se->previous_state_element_->its_enum_id_ == LR1_PARALLEL_OPERATOR)
+ break;// do not bypass: part of shift tbl
+ continue;// bypass
+ }
+ case LR1_INVISIBLE_SHIFT_OPERATOR:{
+ if(se->previous_state_element_ == 0) continue;// bypass dealt a separate state entry
+ if(// is $\vert.\vert$ returned from thread
+ se->previous_state_element_->its_enum_id_ == LR1_PARALLEL_OPERATOR)
+ break;// do not bypass: part of shift tbl
+ continue;// bypass
+ }
+ case LR1_ALL_SHIFT_OPERATOR:{
+ if(se->previous_state_element_ == 0) continue;
+ if(// is $\vert+\vert$ returned from thread
+ se->previous_state_element_->its_enum_id_ == LR1_PARALLEL_OPERATOR)
+ break;// do not bypass: part of shift tbl
+ continue;// bypass
+ }
+ case LR1_QUESTIONABLE_SHIFT_OPERATOR:{
+ if(se->previous_state_element_ == 0) continue;
+ if(// is $\vert?\vert$ returned from thread
+ se->previous_state_element_->its_enum_id_ == LR1_PARALLEL_OPERATOR)
+ break;// do not bypass: part of shift tbl
+ continue;// bypass
+ }
+ }
+
+@*5 Bypass reduces.
+@<bypass reduces@>=
+ if(cur_se_enum_no >=0){ // not a reduce T
+ }else{
+ switch(cur_se_enum_no){
+ case -T_Enum::T_T_eosubrule_: {
+ if(se->next_state_element_ == 0)continue;// real reduce: epsilon so bypass
+ if(se->previous_state_element_ == 0)continue;// real reduce: epsilon so bypass
+ break;
+ }
+ default:{
+ break;//not a reduce
+ }
+ }
+ }
+
+@*4 Output meta shifts separately.\fbreak
+@<accrue source for emit@>+=
+void output_meta_shifts_separately(std::ofstream& Op_str,state& State){
+ T_fsm_phrase* fsm_ph = O2_FSM_PHASE;
+ T_fsm_class_phrase* fsm_class = fsm_ph->fsm_class_phrase();
+ char big_buf_[BIG_BUFFER_32K];
+ S_VECTORS_ITER_type svi = State.state_s_vector_.find(LR1_PARALLEL_OPERATOR);
+ S_VECTORS_ITER_type svie = State.state_s_vector_.end();
+ if(svi != svie){
+ S_VECTOR_ELEMS_ITER_type seli = svi->second.begin();
+ state_element* se = *seli;
+ int goto_state_no = se->goto_state_->state_no_;
+ KCHARP parallel_entry = @/
+ "yacco2::Shift_entry S%ipse_%s = {%i,(State*)&S%i_%s};";
+ int x = sprintf(big_buf_
+ ,parallel_entry
+ ,State.state_no_
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,LR1_PARALLEL_OPERATOR
+ ,goto_state_no
+ ,fsm_class->identifier()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+ svi = State.state_s_vector_.find(LR1_INVISIBLE_SHIFT_OPERATOR);
+ if(svi != svie){
+ S_VECTOR_ELEMS_ITER_type seli = svi->second.begin();
+ state_element* se = *seli;
+ int goto_state_no = se->goto_state_->state_no_;
+ KCHARP invisible_shift_entry = @/
+ "yacco2::Shift_entry S%iise_%s = {%i,(State*)&S%i_%s};";
+ int x = sprintf(big_buf_
+ ,invisible_shift_entry
+ ,State.state_no_
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,LR1_INVISIBLE_SHIFT_OPERATOR
+ ,goto_state_no
+ ,fsm_class->identifier()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+ svi = State.state_s_vector_.find(LR1_ALL_SHIFT_OPERATOR);
+ if(svi != svie){
+ S_VECTOR_ELEMS_ITER_type seli = svi->second.begin();
+ state_element* se = *seli;
+ int goto_state_no = se->goto_state_->state_no_;
+ KCHARP all_shift_entry = @/
+ "yacco2::Shift_entry S%iase_%s = {%i,(State*)&S%i_%s};";
+ int x = sprintf(big_buf_
+ ,all_shift_entry
+ ,State.state_no_
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,LR1_ALL_SHIFT_OPERATOR
+ ,goto_state_no
+ ,fsm_class->identifier()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+ svi = State.state_s_vector_.find(LR1_FSET_TRANSIENCE_OPERATOR);
+ if(svi != svie){
+ S_VECTOR_ELEMS_ITER_type seli = svi->second.begin();
+ state_element* se = *seli;
+ int goto_state_no = se->goto_state_->state_no_;
+ KCHARP procedure_call_entry = @/
+ "yacco2::Shift_entry S%ipcse_%s = {%i,(State*)&S%i_%s};";
+ int x = sprintf(big_buf_
+ ,procedure_call_entry
+ ,State.state_no_
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,LR1_FSET_TRANSIENCE_OPERATOR
+ ,goto_state_no
+ ,fsm_class->identifier()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+ svi = State.state_s_vector_.find(LR1_QUESTIONABLE_SHIFT_OPERATOR);
+ if(svi != svie){
+ S_VECTOR_ELEMS_ITER_type seli = svi->second.begin();
+ state_element* se = *seli;
+ int goto_state_no = se->goto_state_->state_no_;
+ KCHARP questionable_shift_entry = @/
+ "yacco2::Shift_entry S%iqse_%s = {%i,(State*)&S%i_%s};";
+ int x = sprintf(big_buf_
+ ,questionable_shift_entry
+ ,State.state_no_
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,LR1_QUESTIONABLE_SHIFT_OPERATOR
+ ,goto_state_no
+ ,fsm_class->identifier()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+
+}
+
+@*4 Output state's reduced table.\fbreak
+@<accrue source for emit@>+=
+void output_state_s_reduced_table(std::ofstream& Op_str,state& State){
+ T_fsm_phrase* fsm_ph = O2_FSM_PHASE;
+ T_fsm_class_phrase* fsm_class = fsm_ph->fsm_class_phrase();
+ char big_buf_[BIG_BUFFER_32K];
+@<determine number of reduces@>;
+@<output reduced table def / imp@>;
+}
+
+@*5 Determine number of reduces.\fbreak
+Each shift / reduce entry in the state contains
+a list of subrules partaking in the activity.
+For the reduce activity this is why the number of entries in the list is accumulated.
+More than 1 entry indicates a reduce / reduce type conflict.
+As reduced vectors are $<$ 0 and the state's vector is a map ordered on
+the enumerate value, sequentially reading the map is not an inefficient way to
+deal with these items as they are the first to be read.
+The only wrinkle is when a ``eosubrule'' is returned from a called thread.
+This is not an end-of-subrule.
+@<determine number of reduces@>=
+ int no_of_reduces(0);
+ S_VECTORS_ITER_type j = State.state_s_vector_.begin();
+ S_VECTORS_ITER_type je = State.state_s_vector_.end();
+ for(;j!=je;++j){// read list of subrules per vector
+ int cur_se_enum_no = j->first;
+ S_VECTOR_ELEMS_ITER_type seli = j->second.begin();
+ state_element* se = *seli;
+ if(cur_se_enum_no >=0)break;// not a reduce T
+ switch (cur_se_enum_no){
+ case -T_Enum::T_T_eosubrule_:{
+ if(se->next_state_element_ == 0){// real eos
+ no_of_reduces += j->second.size();
+ continue;
+ }
+ }
+ }
+ }
+
+@*5 Output reduced table def / imp.\fbreak
+@<output reduced table def / imp@>=
+ if(no_of_reduces > 0){
+ KCHARP reduce_def = @/
+ "struct S%irtd_%s{\n"@/
+ " yacco2::USINT no_entries_;\n"@/
+ " yacco2::Reduce_entry reduce_entries_[%i];\n"@/
+ "};";
+ int x = sprintf(big_buf_
+ ,reduce_def
+ ,State.state_no_
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,no_of_reduces
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ KCHARP reduce_imp_begin = @/
+ "S%irtd_%s S%irt_%s = {\n"@/
+ " %i\n"@/
+ " ,\n"@/
+ " {// start of table";
+ x = sprintf(big_buf_
+ ,reduce_imp_begin
+ ,State.state_no_
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,State.state_no_
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,no_of_reduces
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+@<output reduce entries@>;
+ KCHARP reduce_imp_end = @/
+ " }// end of reduce table\n"@/
+ "};";
+ Op_str << reduce_imp_end<<endl;
+ }
+@*5 Output reduce entries.
+@<output reduce entries@>=
+ j = State.state_s_vector_.begin();// read core items of state
+ je = State.state_s_vector_.end();
+ int reduce_no(-1);
+ for(;j!=je;++j){
+ int cur_se_enum_no = j->first;
+ if(cur_se_enum_no >=0)break;
+ S_VECTOR_ELEMS_type& elem_list = j->second;
+ S_VECTOR_ELEMS_ITER_type k = elem_list.begin();
+ S_VECTOR_ELEMS_ITER_type ke = elem_list.end();
+ for(;k!=ke;++k){// la sets
+ ++reduce_no;
+ state_element* se = *k;
+ if(reduce_no == 0){
+ KCHARP reduce_imp_1st_entry = @/
+ " {(Set_tbl*)&LA%i_%s,%s::rhs%i_%s_}";
+ int x = sprintf(big_buf_
+ ,reduce_imp_1st_entry
+ ,se->common_la_set_idx_+1
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,se->subrule_def_->subrule_no_of_rule()
+ ,se->subrule_def_->its_rule_def()->rule_name()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }else{
+ KCHARP reduce_imp_2nd_entry = @/
+ " ,{(Set_tbl*)&LA%i_%s,%s::rhs%i_%s_}";
+ int x = sprintf(big_buf_
+ ,reduce_imp_2nd_entry
+ ,se->common_la_set_idx_+1
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,se->subrule_def_->subrule_no_of_rule()
+ ,se->subrule_def_->its_rule_def()->rule_name()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+ }
+ }
+
+@*4 Output state's called threads table.\fbreak
+@<accrue source for emit@>+=
+void output_state_s_called_threads_table(std::ofstream& Op_str,state& State){
+ T_fsm_phrase* fsm_ph = O2_FSM_PHASE;
+ T_fsm_class_phrase* fsm_class = fsm_ph->fsm_class_phrase();
+ char big_buf_[BIG_BUFFER_32K];
+KCHARP call_thread_table_imp = @/
+"yacco2::Shift_entry S%ipse_%s = \n"@/
+"{%i,(State*)&S%i_%s};\n";
+}
+
+@*4 Output state's called procedure table.\fbreak
+@<accrue source for emit@>+=
+void output_state_s_called_procedure_table(std::ofstream& Op_str,state& State){
+ T_fsm_phrase* fsm_ph = O2_FSM_PHASE;
+ T_fsm_class_phrase* fsm_class = fsm_ph->fsm_class_phrase();
+ char big_buf_[BIG_BUFFER_32K];
+KCHARP call_thread_table_imp = @/
+"yacco2::Shift_entry S%ipcse_%s = \n"@/
+"{%i,(State*)&S%i_%s};\n";
+}
+@*4 Output meta shifts separately.\fbreak
+@<accrue source for emit@>+=
+void output_questionable_shift(std::ofstream& Op_str,state& State){
+ T_fsm_phrase* fsm_ph = O2_FSM_PHASE;
+ T_fsm_class_phrase* fsm_class = fsm_ph->fsm_class_phrase();
+ char big_buf_[BIG_BUFFER_32K];
+ S_VECTORS_ITER_type svi = State.state_s_vector_.find(LR1_PARALLEL_OPERATOR);
+ S_VECTORS_ITER_type svie = State.state_s_vector_.end();
+ if(svi != svie){
+ S_VECTOR_ELEMS_ITER_type seli = svi->second.begin();
+ state_element* se = *seli;
+ int goto_state_no = se->goto_state_->state_no_;
+ KCHARP parallel_entry = @/
+ "yacco2::Shift_entry S%ipse_%s = {%i,(State*)&S%i_%s};";
+ int x = sprintf(big_buf_
+ ,parallel_entry
+ ,State.state_no_
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,LR1_PARALLEL_OPERATOR
+ ,goto_state_no
+ ,fsm_class->identifier()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+ svi = State.state_s_vector_.find(LR1_INVISIBLE_SHIFT_OPERATOR);
+ if(svi != svie){
+ S_VECTOR_ELEMS_ITER_type seli = svi->second.begin();
+ state_element* se = *seli;
+ int goto_state_no = se->goto_state_->state_no_;
+ KCHARP invisible_shift_entry = @/
+ "yacco2::Shift_entry S%iise_%s = {%i,(State*)&S%i_%s};";
+ int x = sprintf(big_buf_
+ ,invisible_shift_entry
+ ,State.state_no_
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,LR1_INVISIBLE_SHIFT_OPERATOR
+ ,goto_state_no
+ ,fsm_class->identifier()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+ svi = State.state_s_vector_.find(LR1_ALL_SHIFT_OPERATOR);
+ if(svi != svie){
+ S_VECTOR_ELEMS_ITER_type seli = svi->second.begin();
+ state_element* se = *seli;
+ int goto_state_no = se->goto_state_->state_no_;
+ KCHARP all_shift_entry = @/
+ "yacco2::Shift_entry S%iase_%s = {%i,(State*)&S%i_%s};";
+ int x = sprintf(big_buf_
+ ,all_shift_entry
+ ,State.state_no_
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,LR1_ALL_SHIFT_OPERATOR
+ ,goto_state_no
+ ,fsm_class->identifier()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+ svi = State.state_s_vector_.find(LR1_FSET_TRANSIENCE_OPERATOR);
+ if(svi != svie){
+ S_VECTOR_ELEMS_ITER_type seli = svi->second.begin();
+ state_element* se = *seli;
+ int goto_state_no = se->goto_state_->state_no_;
+ KCHARP procedure_call_entry = @/
+ "yacco2::Shift_entry S%ipcse_%s = {%i,(State*)&S%i_%s};";
+ int x = sprintf(big_buf_
+ ,procedure_call_entry
+ ,State.state_no_
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,LR1_FSET_TRANSIENCE_OPERATOR
+ ,goto_state_no
+ ,fsm_class->identifier()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+ svi = State.state_s_vector_.find(LR1_QUESTIONABLE_SHIFT_OPERATOR);
+ if(svi != svie){
+ S_VECTOR_ELEMS_ITER_type seli = svi->second.begin();
+ state_element* se = *seli;
+ int goto_state_no = se->goto_state_->state_no_;
+ KCHARP questionable_shift_entry = @/
+ "yacco2::Shift_entry S%iise_%s = {%i,(State*)&S%i_%s};";
+ int x = sprintf(big_buf_
+ ,questionable_shift_entry
+ ,State.state_no_
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,LR1_QUESTIONABLE_SHIFT_OPERATOR
+ ,goto_state_no
+ ,fsm_class->identifier()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+}
+
+@*4 Output lr state.\fbreak
+Note, the quotes are needed after the ``State's vectored into symbol: ...'
+cuz the escape `\\' symbol is taken as a macro extension and causes havic
+with the Sun's compiler (corrected with a following space but
+Apple's compile... excuse me gnu's compiler has fits with the correct so let quote it.
+@<accrue source for emit@>+=
+void output_lr_state(std::ofstream& Op_str,state& State){
+ T_fsm_phrase* fsm_ph = O2_FSM_PHASE;
+ T_fsm_class_phrase* fsm_class = fsm_ph->fsm_class_phrase();
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP state_entry = @/
+ "yacco2::State S%i_%s = //State's vectored into symbol: \"%s\" \n"
+ "{%i";
+ int x = sprintf(big_buf_
+ ,state_entry
+ ,State.state_no_
+ ,fsm_class->identifier()->identifier()->c_str()
+ ,State.entry_symbol_literal()
+ ,State.state_no_
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+
+ @<parallel shift entry@>;
+ @<all shift entry@>;
+ @<invisible shift entry@>;
+ @<procedure call shift entry@>;
+ @<shift entry@>;
+ @<reduce entry@>;
+ @<thread call entry@>;
+ @<procedure call function entry@>;
+ @<questionable shift entry@>;
+ Op_str << "};"<<endl;
+}
+
+
+@*5 Parallel shift entry.\fbreak
+@<parallel shift entry@>=
+ S_VECTORS_ITER_type svi = State.state_s_vector_.find(LR1_PARALLEL_OPERATOR);
+ S_VECTORS_ITER_type svie = State.state_s_vector_.end();
+ if(svi != svie){
+ S_VECTOR_ELEMS_ITER_type seli = svi->second.begin();
+ state_element* se = *seli;
+ int goto_state_no = se->goto_state_->state_no_;
+ KCHARP parallel_entry = @/
+ ",(Shift_entry*)&S%ipse_%s";
+ int x = sprintf(big_buf_
+ ,parallel_entry
+ ,State.state_no_
+ ,fsm_class->identifier()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ }else{
+ Op_str << ",0";
+ }
+
+@*5 All shift entry.\fbreak
+@<all shift entry@>=
+ svi = State.state_s_vector_.find(LR1_ALL_SHIFT_OPERATOR);
+ if(svi != svie){
+ S_VECTOR_ELEMS_ITER_type seli = svi->second.begin();
+ state_element* se = *seli;
+ int goto_state_no = se->goto_state_->state_no_;
+ KCHARP all_shift_entry = @/
+ ",(Shift_entry*)&S%iase_%s";
+ int x = sprintf(big_buf_
+ ,all_shift_entry
+ ,State.state_no_
+ ,fsm_class->identifier()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }else{
+ Op_str << ",0";
+ }
+
+@*5 Invisible shift entry.\fbreak
+@<invisible shift entry@>=
+ svi = State.state_s_vector_.find(LR1_INVISIBLE_SHIFT_OPERATOR);
+ if(svi != svie){
+ S_VECTOR_ELEMS_ITER_type seli = svi->second.begin();
+ state_element* se = *seli;
+ int goto_state_no = se->goto_state_->state_no_;
+ KCHARP invisible_shift_entry = @/
+ ",(Shift_entry*)&S%iise_%s";
+ int x = sprintf(big_buf_
+ ,invisible_shift_entry
+ ,State.state_no_
+ ,fsm_class->identifier()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }else{
+ Op_str << ",0";
+ }
+
+@*5 Procedure call shift entry.\fbreak
+@<procedure call shift entry@>=
+ svi = State.state_s_vector_.find(LR1_FSET_TRANSIENCE_OPERATOR);
+ svie = State.state_s_vector_.end();
+ if(svi != svie){
+ S_VECTOR_ELEMS_ITER_type seli = svi->second.begin();
+ state_element* se = *seli;
+ int goto_state_no = se->goto_state_->state_no_;
+ KCHARP procedure_call_entry = @/
+ ",(Shift_entry*)&S%ipcse_%s";
+ int x = sprintf(big_buf_
+ ,procedure_call_entry
+ ,State.state_no_
+ ,fsm_class->identifier()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ }else{
+ Op_str << ",0";
+ }
+
+@*5 Questionable shift entry.\fbreak
+@<questionable shift entry@>=
+ svi = State.state_s_vector_.find(LR1_QUESTIONABLE_SHIFT_OPERATOR);
+ if(svi != svie){
+ S_VECTOR_ELEMS_ITER_type seli = svi->second.begin();
+ state_element* se = *seli;
+ int goto_state_no = se->goto_state_->state_no_;
+ KCHARP questionable_shift_entry = @/
+ ",(Shift_entry*)&S%iqse_%s";
+ int x = sprintf(big_buf_
+ ,questionable_shift_entry
+ ,State.state_no_
+ ,fsm_class->identifier()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }else{
+ Op_str << ",0";
+ }
+
+
+@*5 Shift entry.\fbreak
+@<shift entry@>=
+@<determine number of shifts@>;
+if(no_of_shift_items > 0){
+ KCHARP shift_entry = @/
+ ",(Shift_tbl*)&S%ist_%s";
+ int x = sprintf(big_buf_
+ ,shift_entry
+ ,State.state_no_
+ ,fsm_class->identifier()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ }else{
+ Op_str << ",0";
+ }
+
+
+@*5 Reduce entry.\fbreak
+@<reduce entry@>=
+@<determine number of reduces@>;
+if(no_of_reduces > 0){
+ KCHARP reduce_entry = @/
+ ",(Reduce_tbl*)&S%irt_%s";
+ int x = sprintf(big_buf_
+ ,reduce_entry
+ ,State.state_no_
+ ,fsm_class->identifier()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+
+ }else{
+ Op_str << ",0";
+ }
+@*5 Thread call entry.\fbreak
+Watch out for \PARshift being a returned T from a called thread.
+If so this is not your average bear call.
+@<thread call entry@>=
+ svi = State.state_s_vector_.find(LR1_PARALLEL_OPERATOR);
+ if(svi != svie){
+ S_VECTOR_ELEMS_ITER_type seli = svi->second.begin();
+ state_element* se = *seli;
+ if(se->next_state_element_->goto_state_ == 0){
+ Op_str << ",0";
+ }else{
+ int goto_state_no = se->goto_state_->state_no_;
+ KCHARP thread_calls_entry = @/
+ ",(State_s_thread_tbl*)&S%itt_%s";
+ int x = sprintf(big_buf_
+ ,thread_calls_entry
+ ,goto_state_no
+ ,fsm_class->identifier()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+
+ }
+ }else{
+ Op_str << ",0";
+ }
+
+@*5 Procedure call function entry.\fbreak
+Watch out for \TRAshift being a returned T from a called thread.
+If so this is not your average bear call.
+@<procedure call function entry@>=
+ svi = State.state_s_vector_.find(LR1_FSET_TRANSIENCE_OPERATOR);
+ if(svi != svie){
+ S_VECTOR_ELEMS_ITER_type seli = svi->second.begin();
+ state_element* se = *seli;
+ if(se->next_state_element_->goto_state_ == 0){
+ Op_str << ",0";// rtned \\TRAshift from a \\PARshift
+ }else{
+ @<output called procedure table def / imp@>;
+ }
+ }else{
+ Op_str << ",0"; // no procedure call
+ }
+
+@*3 |emit_each_lr_state_s_tables|.\fbreak
+Actions that can occur within a state:\fbreak
+\INDENT{.3in}{1) shift}
+\INDENT{.3in}{2) reduce}
+\INDENT{.3in}{3) accept}
+\INDENT{.3in}{4) called threads}
+\INDENT{.3in}{5) called procedure}
+@<accrue source for emit@>+=
+void emit_each_lr_state_s_tables(std::ofstream& Op_str){
+ STATES_ITER_type si = LR1_STATES.begin();
+ STATES_ITER_type sie = LR1_STATES.end();
+ for(;si!=sie;++si){// walk the states
+ state* cur_state = *si;
+ if(cur_state->state_no_ == 1){
+ output_1st_state_s_shift_table(Op_str,*cur_state);
+ }else{
+ output_all_others_state_s_shift_table(Op_str,*cur_state);
+ }
+ output_meta_shifts_separately(Op_str,*cur_state);
+ output_state_s_reduced_table(Op_str,*cur_state);
+ output_state_s_called_threads_table(Op_str,*cur_state);
+ output_state_s_called_procedure_table(Op_str,*cur_state);
+ output_lr_state(Op_str,*cur_state);
+ }
+}
+@*2 |OP_GRAMMAR_TBL| implementation.\fbreak
+@<accrue source for emit@>+=
+void OP_GRAMMAR_TBL(TOKEN_GAGGLE& Error_queue){@/
+ T_fsm_phrase* fsm_ph = O2_FSM_PHASE;
+ string fn(fsm_ph->filename_id()->identifier()->c_str());
+ fn += Suffix_fsmtbl;
+ std::ofstream Op_file;
+ Op_file.open(fn.c_str(),ios_base::out|ios::trunc);
+ if(!Op_file){
+ CAbs_lr1_sym* sym = new Err_bad_fsmtbl_filename(fn.c_str());
+ sym->set_line_no_and_pos_in_line(*fsm_ph->filename_id());
+ sym->set_who_created("o2externs.w - OP_GRAMMAR_CPP",__LINE__);
+ Error_queue.push_back(*sym);
+ return;
+ }
+
+ intro_comment(Op_file,fn.c_str());
+ user_imp_tbl(Op_file);
+ fsm_cpp_includes(Op_file);
+ using_ns_for_fsm_cpp(Op_file);
+ output_la_sets(Op_file);
+ externs_and_thread_tbl_defs(Op_file);
+ emit_each_lr_state_s_tables(Op_file);
+ Op_file.close();
+}
+
+@* Template of enumeration header: |OP_ENUMERATION_HEADER|.\fbreak
+Count those terminals.
+\fbreak
+\INDENT{.1in}{1) Comments --- file name, time and date info}
+\INDENT{.1in}{2) enumeration include guard declaration}
+\INDENT{.2in}{2.1) namespace declaration of enumeration scheme}
+\INDENT{.3in}{2.1.1) start definition of T\_enum structure}
+\INDENT{.3in}{2.1.1.1) begin declaration of c enum list}
+\INDENT{.3in}{2.1.1.1.1) summary of vocabulary classes}
+\INDENT{.3in}{2.1.1.1.2) enumerate lrk}
+\INDENT{.3in}{2.1.1.1.3) enumerate raw characters}
+\INDENT{.3in}{2.1.1.1.4) enumerate meta terminals}
+\INDENT{.3in}{2.1.1.1.5) enumerate errors}
+\INDENT{.3in}{2.1.2) close off enum list}
+\INDENT{.3in}{2.1.2) close off T\_enum structure}
+\INDENT{.3in}{2.2) close off namespace definition}
+\INDENT{.1in}{3) close off include guard declaration}
+@*3 Enumerate the LR constants classification: |enumerate_lrk|.\fbreak
+Note that the manufactured enumerate name
+is composed of a prefix ``T\_'', its class name, and
+suffixed with ``\_''.
+@<accrue source for emit@>+=
+void enumerate_lrk
+(std::ofstream& Op_str){@/
+ T_lr1_k_phrase* ph = O2_LRK_PHASE;
+ std::vector<T_terminal_def* >* dictionary = ph->crt_order();
+
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP enumerate_item = @/
+ " ,T_%s_ = %i";
+std::vector<T_terminal_def* >::iterator i = dictionary->begin();
+std::vector<T_terminal_def* >::iterator ie = dictionary->end();
+ for(;i != ie;++i){
+ T_terminal_def* td = *i;
+ int x = sprintf(big_buf_
+ ,enumerate_item
+ ,td->classsym()->c_str()
+ ,td->enum_id()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+}
+
+@*3 Enumerate the Raw Characters classification: |enumerate_rc|.\fbreak
+Note that the manufactured enumerate name
+is composed of a prefix ``T\_'', its class name, and
+suffixed with ``\_''.
+@<accrue source for emit@>+=
+void enumerate_rc
+(std::ofstream& Op_str){@/
+ T_rc_phrase* ph = O2_RC_PHASE;
+ std::vector<T_terminal_def* >* dictionary = ph->crt_order();
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP enumerate_item = @/
+ " ,T_%s_ = %i";
+std::vector<T_terminal_def* >::iterator i = dictionary->begin();
+std::vector<T_terminal_def* >::iterator ie = dictionary->end();
+ for(;i != ie;++i){
+ T_terminal_def* td = *i;
+ int x = sprintf(big_buf_
+ ,enumerate_item
+ ,td->classsym()->c_str()
+ ,td->enum_id()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+}
+
+@*3 Enumerate the Errors classification: |enumerate_errors|.\fbreak
+Note that the manufactured enumerate name
+is composed of a prefix ``T\_'', its class name, and
+suffixed with ``\_''.
+@<accrue source for emit@>+=
+void enumerate_errors
+(std::ofstream& Op_str){@/
+ T_error_symbols_phrase* ph = O2_ERROR_PHASE;
+ std::vector<T_terminal_def* >* dictionary = ph->crt_order();
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP enumerate_item = @/
+ " ,T_%s_ = %i";
+std::vector<T_terminal_def* >::iterator i = dictionary->begin();
+std::vector<T_terminal_def* >::iterator ie = dictionary->end();
+ for(;i != ie;++i){
+ T_terminal_def* td = *i;
+
+ int x = sprintf(big_buf_
+ ,enumerate_item
+ ,td->classsym()->c_str()
+ ,td->enum_id()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+}
+@*3 Enumerate the T classification: |enumerate_T|.\fbreak
+Note that the manufactured enumerate name
+is composed of a prefix ``T\_'', its class name, and
+suffixed with ``\_''.
+@<accrue source for emit@>+=
+void enumerate_T
+(std::ofstream& Op_str){@/
+ T_terminals_phrase* ph = O2_T_PHASE;
+ std::vector<T_terminal_def* >* dictionary = ph->crt_order();
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP enumerate_item = @/
+ " ,T_%s_ = %i";
+std::vector<T_terminal_def* >::iterator i = dictionary->begin();
+std::vector<T_terminal_def* >::iterator ie = dictionary->end();
+ for(;i != ie;++i){
+ T_terminal_def* td = *i;
+ int x = sprintf(big_buf_
+ ,enumerate_item
+ ,td->classsym()->c_str()
+ ,td->enum_id()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+}
+
+@*3 Terminals Enumeration summary: |enumeration_summary_for_struct|.
+@<accrue source for emit@>+=
+void enumeration_summary_for_struct
+(std::ofstream& Op_str){@/
+ T_enum_phrase* enum_ph = O2_T_ENUM_PHASE;
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP summary = @/
+ " sum_total_T = %i\n"@/
+ " ,no_of_terminals = %i\n"@/
+ " ,no_of_raw_chars = %i\n"@/
+ " ,no_of_lr1_constants = %i\n"@/
+ " ,no_of_error_terminals = %i\n"@/
+ " ,start_LRK=%i,end_LRK=%i\n"@/
+ " ,start_RC=%i,end_RC=%i\n"@/
+ " ,start_T=%i,end_T=%i\n"@/
+ " ,start_ERR=%i,end_ERR=%i\n"@/
+ " ,start_R=%i";
+ int x = sprintf(big_buf_
+ ,summary
+ ,enum_ph->total_enumerate()
+ ,enum_ph->total_T_enumerate()
+ ,enum_ph->total_rc_enumerate()
+ ,enum_ph->total_lrk_enumerate()
+ ,enum_ph->total_err_enumerate()
+ ,enum_ph->start_lrk_enumerate(),enum_ph->stop_lrk_enumerate()
+ ,enum_ph->start_rc_enumerate(),enum_ph->stop_rc_enumerate()
+ ,enum_ph->start_T_enumerate(),enum_ph->stop_T_enumerate()
+ ,enum_ph->start_err_enumerate(),enum_ph->stop_err_enumerate()
+ ,enum_ph->total_enumerate()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+}
+
+@*3 |enumeration_define_list|.
+@<accrue source for emit@>+=
+void enumeration_define_list
+(std::ofstream& Op_str){@/
+ T_enum_phrase* enum_ph = O2_T_ENUM_PHASE;
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP enum_list_start = @/
+ " enum enumerated_terminals%s{";
+ int x = sprintf(big_buf_
+ ,enum_list_start," "
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+
+ enumeration_summary_for_struct(Op_str);
+ enumerate_lrk(Op_str);
+ enumerate_rc(Op_str);
+ enumerate_T(Op_str);
+ enumerate_errors(Op_str);
+
+ KCHARP enum_list_end = @/
+ " }; // close defining enum list";
+ Op_str << enum_list_end<<endl;
+}
+
+@*3 |enumeration_define_structure|.
+@<accrue source for emit@>+=
+void enumeration_define_structure
+(std::ofstream& Op_str){@/
+ T_enum_phrase* enum_ph = O2_T_ENUM_PHASE;
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP struct_start = @/
+ " struct T_Enum%s{";
+ int x = sprintf(big_buf_
+ ,struct_start," "
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+
+ enumeration_define_list(Op_str);
+ KCHARP struct_end = @/
+ " }; // close defining T_enum";
+ Op_str << struct_end<<endl;
+}
+@*3 |enumeration_namespace_for_header|.
+@<accrue source for emit@>+=
+void enumeration_namespace_for_header
+(std::ofstream& Op_str){@/
+ using namespace NS_yacco2_terminals;
+ T_enum_phrase* enum_ph = O2_T_ENUM_PHASE;
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP ns_of_enum_start = @/
+ "namespace %s {";
+ int x = sprintf(big_buf_
+ ,ns_of_enum_start
+ ,enum_ph->namespace_id()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+
+ enumeration_define_structure(Op_str);
+ KCHARP ns_of_enum_end = @/
+ "} // end of namespace";
+ Op_str << ns_of_enum_end<<endl;
+}
+
+@*3 |enumeration_include_guard_for_header|.
+@<accrue source for emit@>+=
+void enumeration_include_guard_for_header
+(std::ofstream& Op_str){@/
+ using namespace NS_yacco2_terminals;
+ T_enum_phrase* enum_ph = O2_T_ENUM_PHASE;
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP signal_guard_start = @/
+ "#ifndef __%s_h__\n"@/
+ "#define __%s_h__ 1";
+ int x = sprintf(big_buf_
+ ,signal_guard_start
+ ,enum_ph->filename_id()->identifier()->c_str()
+ ,enum_ph->filename_id()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ enumeration_namespace_for_header(Op_str);
+ KCHARP signal_guard_end = @/
+ "#endif";
+ Op_str << signal_guard_end<<endl;
+}
+@*3 Gen Tes's literal names for specific Tes.\fbreak
+@<accrue source for emit@>+=
+void gen_Tes_literals_per_spec_voc
+(std::ofstream& Op_str@/
+,std::vector<T_terminal_def* >::iterator I
+,std::vector<T_terminal_def* >::iterator IE){@/
+char big_buf_[BIG_BUFFER_32K];
+
+ KCHARP literal = @/
+ "%s";
+ for(;I != IE;++I){
+ T_terminal_def* td = *I;
+ int x = sprintf(big_buf_
+ ,literal
+ ,td->classsym()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+}
+@*3 Gen Tes's literal names for \olinker.\fbreak
+@<accrue source for emit@>+=
+void gen_Tes_literals
+(std::ofstream& Op_str){@/
+ T_terminals_phrase* pht = O2_T_PHASE;
+ T_rc_phrase* phrc = O2_RC_PHASE;
+ T_error_symbols_phrase* phe = O2_ERROR_PHASE;
+ T_lr1_k_phrase* phlr = O2_LRK_PHASE;
+
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP t_alphabet = @/
+ "T-alphabet%s";
+ int x = sprintf(big_buf_,t_alphabet," ");
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ gen_Tes_literals_per_spec_voc(Op_str,phlr->crt_order()->begin(),phlr->crt_order()->end());
+ gen_Tes_literals_per_spec_voc(Op_str,phrc->crt_order()->begin(),phrc->crt_order()->end());
+ gen_Tes_literals_per_spec_voc(Op_str,pht->crt_order()->begin(),pht->crt_order()->end());
+ gen_Tes_literals_per_spec_voc(Op_str,phe->crt_order()->begin(),phe->crt_order()->end());
+ KCHARP end_t_alphabet = @/
+ "end-T-alphabet%s";
+ x = sprintf(big_buf_,end_t_alphabet," ");
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+}
+
+@*2 |OP_ENUMERATION_HEADER| implementation.\fbreak
+This is the counting scheme for the grammar's Terminal Vocabulary for all
+their classifications: LRk, raw characters, errors, and meta-terminals.
+The terminal count starts from 0 going outwards on the positive axis.
+The Terminals are ordered by
+``LRk'' classification and its items with the same count pattern for
+ ``raw characters'', ``error terminals'', and finally
+the meta ``terminals''.
+The ``LRk'' and ``RC'' classifications are constant and fixed.
+Once upon a time an approximate enumeration header and their c++ code was generated
+for the \Yacco2 library placed in ``/yacco2/library'' for the library code to compile.
+The library uses some error terminals. Please see \Yacco2's library documentation.
+
+This header file is the glue for all other generated
+ tables as the enumeration number per terminal
+is rooted in the token symbol used by the parsing tables
+and error reporting facilities.
+To note, each grammar builds on this counting scheme for their production rules
+ordered after the meta-terminals.
+The rules ranking is by order of appearance within the grammar.
+
+I also included the ``T-alphabet'' file containing the literal names of the Tes for
+all vocabularies in create order.
+This is used by \olinker to sprinkle their referenced names throughout
+the lookahead sets gened by it from the ``xxx.fsc'' file.
+Why here, cus i use the enumeration file name prefix
+concatentaed with the ``.fsc'' extension.
+It only gets gened when meta-terminals or error Tes are to be gened.
+@<accrue source for emit@>+=
+void OP_ENUMERATION_HEADER(TOKEN_GAGGLE& Error_queue){@/
+ T_enum_phrase* enum_ph = O2_T_ENUM_PHASE;
+ string fn(enum_ph->filename_id()->identifier()->c_str());
+ fn += Suffix_enumeration_hdr;
+ std::ofstream Op_file;
+ Op_file.open(fn.c_str(),ios_base::out|ios::trunc);
+ if(!Op_file){
+ CAbs_lr1_sym* sym = new Err_bad_enum_filename(fn.c_str());
+ sym->set_line_no_and_pos_in_line(*enum_ph->filename_id());
+ sym->set_who_created("o2externs.w - OP_ENUMERATION_HEADER_CPP",__LINE__);
+ Error_queue.push_back(*sym);
+ return;
+ }
+
+ intro_comment(Op_file,fn.c_str());
+ enumeration_include_guard_for_header(Op_file);
+ Op_file.close();
+}
+
+@*2 |OP_T_Alphabet| implementation.\fbreak
+I also included the ``T-alphabet'' file containing the literal names of the Tes for
+all vocabularies in create order.
+This is used by \olinker to sprinkle their referenced names throughout
+the lookahead sets gened by it from the ``xxx.fsc'' file.
+Why here, cus i use the enumeration file name prefix
+concatentaed with the ``.fsc'' extension.
+It only gets gened when meta-terminals or error Tes are to be gened.
+@<accrue source for emit@>+=
+void OP_T_Alphabet(TOKEN_GAGGLE& Error_queue){@/
+ T_enum_phrase* enum_ph = O2_T_ENUM_PHASE;
+ string fn_literal(enum_ph->filename_id()->identifier()->c_str());
+ fn_literal+= Suffix_t_alphabet;
+ std::ofstream Op_file;
+ Op_file.open(fn_literal.c_str(),ios_base::out|ios::trunc);
+ if(!Op_file){
+ CAbs_lr1_sym* sym = new Err_bad_enum_filename(fn_literal.c_str());
+ sym->set_line_no_and_pos_in_line(*enum_ph->filename_id());
+ sym->set_who_created("o2externs.w - OP_ENUMERATION_HEADER_CPP",__LINE__);
+ Error_queue.push_back(*sym);
+ return;
+ }
+ intro_comment(Op_file,fn_literal.c_str());
+ gen_Tes_literals(Op_file);
+ Op_file.close();
+}
+
+@* Template of Errors vocabulary header: |OP_ERRORS_HEADER|.\fbreak
+Errors vocabulary header generation.
+\fbreak
+\INDENT{.1in}{1) Comments --- file name, time and date info}
+\INDENT{.1in}{2) include files}
+\INDENT{.1in}{3) Errors include guard declaration}
+\INDENT{.2in}{3.1) namespace declaration of Errors}
+\INDENT{.3in}{3.1.1) use terminals enumeration namespace}
+\INDENT{.3in}{3.1.2) loop thru the Errors list to generate their declarations}
+\INDENT{.3in}{3.1.2.1) generate the specific Error terminal definition}
+\INDENT{.3in}{3.1.3) close off namespace definition}
+\INDENT{.1in}{4) close off Errors include guard declaration}
+
+@*3 |errors_loop_thru_and_gen_defs_for_header|.
+@<accrue source for emit@>+=
+void errors_loop_thru_and_gen_defs_for_header
+(std::ofstream& Op_str){@/
+ T_error_symbols_phrase* errors_ph = O2_ERROR_PHASE;
+
+ std::vector<T_terminal_def* >* dictionary = errors_ph->crt_order();
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP def_item = @/
+ " struct %s:public yacco2::CAbs_lr1_sym{\n"
+ "%s";
+
+ std::vector<T_terminal_def* >::iterator i = dictionary->begin();
+ std::vector<T_terminal_def* >::iterator ie = dictionary->end();
+ for(;i != ie;++i){
+ T_terminal_def* td = *i;
+ SDC_MAP_type* sdc_map = td->directives_map();
+ SDC_MAP_ITER_type j = sdc_map->find(SDC_user_declaration);
+ if(j == sdc_map->end()){// shell so gen default
+ KCHARP shell_of_def_item = @/
+ " struct %s:public yacco2::CAbs_lr1_sym{\n"
+ " %s();\n"
+ " };";
+ int x = sprintf(big_buf_
+ ,shell_of_def_item
+ ,td->classsym()->c_str()
+ ,td->classsym()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }else{// grammar writer defined
+ T_user_declaration* gw_sdc = (T_user_declaration*)j->second;
+ int x = sprintf(big_buf_
+ ,def_item
+ ,td->classsym()->c_str()
+ ,gw_sdc->syntax_code()->syntax_code()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+
+ j = sdc_map->find(SDC_op);
+ if(j != sdc_map->end()){// grammar writer code
+ Op_str << " op();" << endl;
+ }
+ j = sdc_map->find(SDC_destructor);
+ if(j != sdc_map->end()){// gw code
+ KCHARP dtor = @/
+ " static void dtor_%s(yacco2::VOIDP This,yacco2::VOIDP P);\n";
+ int x = sprintf(big_buf_
+ ,dtor
+ ,td->classsym()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+ Op_str << " };"<<endl; // close off definition
+ }
+ }
+}
+
+@*3 |errors_use_enum_namespace_for_header|.
+@<accrue source for emit@>+=
+void errors_use_enum_namespace_for_header
+(std::ofstream& Op_str){@/
+ T_error_symbols_phrase* errors_ph = O2_ERROR_PHASE;
+ T_enum_phrase* enum_ph = O2_T_ENUM_PHASE;
+
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP using_T_namespace = @/
+ " using namespace %s;";
+ int x = sprintf(big_buf_
+ ,using_T_namespace
+ ,enum_ph->namespace_id()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+}
+
+@*3 |errors_namespace_for_header|.
+@<accrue source for emit@>+=
+void errors_namespace_for_header
+(std::ofstream& Op_str){@/
+ T_error_symbols_phrase* errors_ph = O2_ERROR_PHASE;
+
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP namespace_start = @/
+ "namespace %s{";
+ int x = sprintf(big_buf_
+ ,namespace_start
+ ,errors_ph->namespace_id()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ errors_use_enum_namespace_for_header(Op_str);
+ errors_loop_thru_and_gen_defs_for_header(Op_str);
+
+ KCHARP namespace_end = @/
+ "}//namespace";
+ Op_str << namespace_end<<endl;
+}
+
+@*3 |errors_include_guard_for_header|.
+@<accrue source for emit@>+=
+void errors_include_guard_for_header
+(std::ofstream& Op_str){@/
+ T_error_symbols_phrase* errors_ph = O2_ERROR_PHASE;
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP signal_guard_start = @/
+ "#ifndef __%s_h__\n"@/
+ "#define __%s_h__ 1";
+ int x = sprintf(big_buf_
+ ,signal_guard_start
+ ,errors_ph->filename_id()->identifier()->c_str()
+ ,errors_ph->filename_id()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ errors_namespace_for_header(Op_str);
+ KCHARP signal_guard_end = @/
+ "#endif";
+ Op_str << signal_guard_end<<endl;
+}
+
+@*3 |errors_include_files_for_header|.
+@<accrue source for emit@>+=
+void errors_include_files_for_header
+(std::ofstream& Op_str){@/
+ T_error_symbols_phrase* errors_ph = O2_ERROR_PHASE;
+ T_enum_phrase* enum_ph = O2_T_ENUM_PHASE;
+ T_lr1_k_phrase* lr_ph = O2_LRK_PHASE;
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP include_files = @/
+ "#include \"%s\"\n"@/
+ "#include \"%s%s\"\n" // T enumeration
+ "#include \"%s%s\"";// lr constants
+ int x = sprintf(big_buf_
+ ,include_files
+ ,O2_library_file
+ ,enum_ph->filename_id()->identifier()->c_str()
+ ,Suffix_enumeration_hdr
+ ,lr_ph->filename_id()->identifier()->c_str()
+ ,Suffix_LRK_hdr
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+}
+
+@*2 |OP_ERRORS_HEADER| implementation.\fbreak
+Bang out those error definitions.
+@<accrue source for emit@>+=
+void OP_ERRORS_HEADER(TOKEN_GAGGLE& Error_queue){@/
+ T_error_symbols_phrase* errors_ph = O2_ERROR_PHASE;
+ string fn(errors_ph->filename_id()->identifier()->c_str());
+ fn += Suffix_Errors_hdr;
+ std::ofstream Op_file;
+ Op_file.open(fn.c_str(),ios_base::out|ios::trunc);
+ if(!Op_file){
+ CAbs_lr1_sym* sym = new Err_bad_errors_hdrfilename(fn.c_str());
+ sym->set_line_no_and_pos_in_line(*errors_ph->filename_id());
+ sym->set_who_created("o2externs.w - OP_ERRORS_HEADER_CPP",__LINE__);
+ Error_queue.push_back(*sym);
+ return;
+ }
+
+ intro_comment(Op_file,fn.c_str());
+ errors_include_files_for_header(Op_file);
+ errors_include_guard_for_header(Op_file);
+ Op_file.close();
+}
+
+@* Template of User Errors vocabulary header: |OP_ERRORS_HEADER|.\fbreak
+Users Errors vocabulary header generation.
+\fbreak
+\INDENT{.1in}{1) Comments --- file name, time and date info}
+\INDENT{.1in}{2) include files}
+\INDENT{.1in}{3) use terminals enumeration namespace}
+\INDENT{.1in}{4) loop thru the T list to generate their implementations}
+\INDENT{.2in}{4.1) generate the specific T's terminal definition}
+
+@*4 |errors_imp_dtor|.
+@<accrue source for emit@>+=
+void errors_imp_dtor
+(std::ofstream& Op_str,T_terminal_def* Td,SDC_MAP_ITER_type& J){@/
+ char big_buf_[BIG_BUFFER_32K];
+ T_destructor* dtor_t = (T_destructor*)J->second;
+ KCHARP dtor_code = @/
+ "void %s::dtor_%s(yacco2::VOIDP This,yacco2::VOIDP P){\n"@/
+ " bool ABORT_STATUS = ((yacco2::Parser*)P)->top_stack_record()->aborted__;\n"@/
+ " %s* R = (%s*)(This);\n"@/
+ " %s\n"@/
+ "}";
+ KCHARP dtor_code_noabort = @/
+ "void %s::dtor_%s(yacco2::VOIDP This,yacco2::VOIDP P){\n"@/
+ " %s* R = (%s*)(This);\n"@/
+ " %s\n"@/
+ "}";
+ std::string::size_type r =
+ dtor_t->syntax_code()->syntax_code()->find("ABORT_STATUS");
+int x(0);
+ if(r != std::string::npos){ // using abort status
+ x = sprintf(big_buf_
+ ,dtor_code
+ ,Td->classsym()->c_str()
+ ,Td->classsym()->c_str()
+ ,Td->classsym()->c_str()
+ ,Td->classsym()->c_str()
+ ,dtor_t->syntax_code()->syntax_code()->c_str()
+ );
+ }else{
+ x = sprintf(big_buf_
+ ,dtor_code_noabort
+ ,Td->classsym()->c_str()
+ ,Td->classsym()->c_str()
+ ,Td->classsym()->c_str()
+ ,Td->classsym()->c_str()
+ ,dtor_t->syntax_code()->syntax_code()->c_str()
+ );
+ }
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+}
+
+@*4 |errors_imp_implementation|.
+@<accrue source for emit@>+=
+void errors_imp_implementation
+(std::ofstream& Op_str,T_terminal_def* Td,SDC_MAP_ITER_type& J){@/
+ char big_buf_[BIG_BUFFER_32K];
+ T_user_implementation* imp_t = (T_user_implementation*)J->second;
+ Op_str << imp_t->syntax_code()->syntax_code()->c_str();
+ SDC_MAP_type* sdc_map = Td->directives_map();
+ SDC_MAP_ITER_type j = sdc_map->find(SDC_destructor);
+ if(j != sdc_map->end()){
+ errors_imp_dtor(Op_str,Td,j);
+ }
+}
+
+@*4 |errors_imp_shellimplementation|.
+@<accrue source for emit@>+=
+void errors_imp_shellimplementation
+(std::ofstream& Op_str,T_terminal_def* Td,std::string& Autodelete,std::string& Autoabort){@/
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP shell_of_def_item = @/
+ "%s::\n"@/
+ "%s()\n"@/
+ " T_CTOR(\"%s\",T_Enum::T_%s_,%s,%s,%s){}";
+ int x = sprintf(big_buf_
+ ,shell_of_def_item
+ ,Td->classsym()->c_str()
+ ,Td->classsym()->c_str()
+ ,Td->t_name()->c_str() // literal
+ ,Td->classsym()->c_str() // enum
+ ,"0"// no dtor
+ ,Autodelete.c_str()
+ ,Autoabort.c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+}
+
+@*3 |errors_loop_thru_and_gen_defs_for_imp|.
+@<accrue source for emit@>+=
+void errors_loop_thru_and_gen_defs_for_imp
+(std::ofstream& Op_str){@/
+ T_error_symbols_phrase* errors_ph = O2_ERROR_PHASE;
+ std::vector<T_terminal_def* >* dictionary = errors_ph->crt_order();
+ char big_buf_[BIG_BUFFER_32K];
+ string auto_delete;
+ string auto_abort;
+ string dtor_adr;
+
+ std::vector<T_terminal_def* >::iterator i = dictionary->begin();
+ std::vector<T_terminal_def* >::iterator ie = dictionary->end();
+ for(;i != ie;++i){
+ T_terminal_def* td = *i;
+ SDC_MAP_type* sdc_map = td->directives_map();
+ SDC_MAP_ITER_type j = sdc_map->find(SDC_user_implementation);
+ if(td->autodelete()==false){
+ auto_delete = "false";
+ }else{
+ auto_delete = "true";
+ }
+ if(td->autoabort()==false){
+ auto_abort = "false";
+ }else{
+ auto_abort = "true";
+ }
+
+ if(j == sdc_map->end()){// shell so gen default
+ errors_imp_shellimplementation(Op_str,td,auto_delete,auto_abort);
+ }else{// grammar writer defined
+ errors_imp_implementation(Op_str,td,j);
+ }
+ }
+}
+
+@*3 |errors_use_enum_namespace_for_imp|.
+@<accrue source for emit@>+=
+void errors_use_enum_namespace_for_imp
+(std::ofstream& Op_str){@/
+ T_error_symbols_phrase* errors_ph = O2_ERROR_PHASE;
+ T_enum_phrase* enum_ph = O2_T_ENUM_PHASE;
+
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP using_namespace = @/
+ " using namespace %s;\n"
+ " using namespace %s;";// |T_enum|
+ int x = sprintf(big_buf_
+ ,using_namespace
+ ,errors_ph->namespace_id()->identifier()->c_str()
+ ,enum_ph->namespace_id()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+}
+
+@*3 |errors_include_files_for_imp|.
+@<accrue source for emit@>+=
+void errors_include_files_for_imp
+(std::ofstream& Op_str){@/
+ T_error_symbols_phrase* errors_ph = O2_ERROR_PHASE;
+ T_enum_phrase* enum_ph = O2_T_ENUM_PHASE;
+ T_lr1_k_phrase* lr_ph = O2_LRK_PHASE;
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP include_files = @/
+ "#include \"%s%s\"";
+ int x = sprintf(big_buf_
+ ,include_files
+ ,errors_ph->filename_id()->identifier()->c_str()
+ ,Suffix_Errors_hdr
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+}
+
+@*2 |OP_ERRORS_CPP| implementation.\fbreak
+Bang out thee implementation of those error definitions.
+@<accrue source for emit@>+=
+void OP_ERRORS_CPP(TOKEN_GAGGLE& Error_queue){@/
+ T_error_symbols_phrase* errors_ph = O2_ERROR_PHASE;
+ string fn(errors_ph->filename_id()->identifier()->c_str());
+ fn += Suffix_Errors_imp;
+ std::ofstream Op_file;
+ Op_file.open(fn.c_str(),ios_base::out|ios::trunc);
+ if(!Op_file){
+ CAbs_lr1_sym* sym = new Err_bad_errors_impfilename(fn.c_str());
+ sym->set_line_no_and_pos_in_line(*errors_ph->filename_id());
+ sym->set_who_created("o2externs.w - OP_ERRORS_HEADER_CPP",__LINE__);
+ Error_queue.push_back(*sym);
+ return;
+ }
+
+ intro_comment(Op_file,fn.c_str());
+ errors_include_files_for_imp(Op_file);
+ errors_use_enum_namespace_for_imp(Op_file);
+ errors_loop_thru_and_gen_defs_for_imp(Op_file);
+ Op_file.close();
+}
+@* Template of USER T vocabulary header: |OP_USER_T_HEADER|.\fbreak
+User terminals vocabulary header generation.
+\fbreak
+\INDENT{.1in}{1) Comments --- file name, time and date info}
+\INDENT{.1in}{2) include files}
+\INDENT{.1in}{3) User T include guard declaration}
+\INDENT{.2in}{3.1) namespace declaration of Errors}
+\INDENT{.3in}{3.1.1) use terminals enumeration namespace}
+\INDENT{.3in}{3.1.2) loop thru the User T list to generate their declarations}
+\INDENT{.3in}{3.1.2.1) generate the specific User T terminal definition}
+\INDENT{.3in}{3.1.3) close off namespace definition}
+\INDENT{.1in}{4) close off User T include guard declaration}
+
+@*3 |user_t_loop_thru_and_gen_defs_for_header|.
+@<accrue source for emit@>+=
+void user_t_loop_thru_and_gen_defs_for_header
+(std::ofstream& Op_str){@/
+ T_terminals_phrase* t_ph = O2_T_PHASE;
+
+ std::vector<T_terminal_def* >* dictionary = t_ph->crt_order();
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP def_item = @/
+ " struct %s:public yacco2::CAbs_lr1_sym{\n"
+ "%s";
+
+ std::vector<T_terminal_def* >::iterator i = dictionary->begin();
+ std::vector<T_terminal_def* >::iterator ie = dictionary->end();
+ for(;i != ie;++i){
+ T_terminal_def* td = *i;
+ SDC_MAP_type* sdc_map = td->directives_map();
+ SDC_MAP_ITER_type j = sdc_map->find(SDC_user_declaration);
+ if(j == sdc_map->end()){// shell so gen default
+ KCHARP shell_of_def_item = @/
+ " struct %s:public yacco2::CAbs_lr1_sym{\n"
+ " %s();\n"
+ " };";
+ int x = sprintf(big_buf_
+ ,shell_of_def_item
+ ,td->classsym()->c_str()
+ ,td->classsym()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }else{// grammar writer defined
+ T_user_declaration* gw_sdc = (T_user_declaration*)j->second;
+ int x = sprintf(big_buf_
+ ,def_item
+ ,td->classsym()->c_str()
+ ,gw_sdc->syntax_code()->syntax_code()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+
+
+ j = sdc_map->find(SDC_op);
+ if(j != sdc_map->end()){// grammar writer code
+ Op_str << " op();" << endl;
+ }
+ j = sdc_map->find(SDC_destructor);
+ if(j != sdc_map->end()){// gw code
+ KCHARP dtor = @/
+ " static void dtor_%s(yacco2::VOIDP This,yacco2::VOIDP P);";
+ int x = sprintf(big_buf_
+ ,dtor
+ ,td->classsym()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+ Op_str << " };"<<endl; // close off definition
+ }
+ }
+}
+
+@*3 |user_t_use_enum_namespace_for_header|.
+@<accrue source for emit@>+=
+void user_t_use_enum_namespace_for_header
+(std::ofstream& Op_str){@/
+ T_terminals_phrase* t_ph = O2_T_PHASE;
+ T_enum_phrase* enum_ph = O2_T_ENUM_PHASE;
+
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP using_T_namespace = @/
+ " using namespace %s;";
+ int x = sprintf(big_buf_
+ ,using_T_namespace
+ ,enum_ph->namespace_id()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+}
+
+@*3 |user_t_terminals_refs_for_header|.
+@<accrue source for emit@>+=
+void user_t_terminals_refs_for_header
+(std::ofstream& Op_str){@/
+ T_terminals_phrase* t_ph = O2_T_PHASE;
+ char big_buf_[BIG_BUFFER_32K];
+ if(t_ph->terminals_refs_code() != 0){
+ KCHARP t_ref_code = @/
+ " %s";
+ int x = sprintf(big_buf_
+ ,t_ref_code
+ ,t_ph->terminals_refs_code()->syntax_code()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+}
+
+@*3 |user_t_terminals_sufx_for_header|.
+@<accrue source for emit@>+=
+void user_t_terminals_sufx_for_header
+(std::ofstream& Op_str){@/
+ T_terminals_phrase* t_ph = O2_T_PHASE;
+ char big_buf_[BIG_BUFFER_32K];
+ if(t_ph->terminals_sufx_code() != 0){
+ KCHARP t_sufx_code = @/
+ " %s";
+ int x = sprintf(big_buf_
+ ,t_sufx_code
+ ,t_ph->terminals_sufx_code()->syntax_code()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+}
+
+@*3 |user_t_namespace_for_header|.
+@<accrue source for emit@>+=
+void user_t_namespace_for_header
+(std::ofstream& Op_str){@/
+ T_terminals_phrase* t_ph = O2_T_PHASE;
+
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP namespace_start = @/
+ "namespace %s{";
+ int x = sprintf(big_buf_
+ ,namespace_start
+ ,t_ph->namespace_id()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ user_t_use_enum_namespace_for_header(Op_str);
+ user_t_terminals_refs_for_header(Op_str);
+ user_t_loop_thru_and_gen_defs_for_header(Op_str);
+ user_t_terminals_sufx_for_header(Op_str);
+
+ KCHARP namespace_end = @/
+ "}//namespace";
+ Op_str << namespace_end<<endl;
+}
+
+@*3 |user_t_include_guard_for_header|.
+@<accrue source for emit@>+=
+void user_t_include_guard_for_header
+(std::ofstream& Op_str){@/
+ T_terminals_phrase* t_ph = O2_T_PHASE;
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP signal_guard_start = @/
+ "#ifndef __%s_h__\n"@/
+ "#define __%s_h__ 1";
+ int x = sprintf(big_buf_
+ ,signal_guard_start
+ ,t_ph->filename_id()->identifier()->c_str()
+ ,t_ph->filename_id()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ user_t_namespace_for_header(Op_str);
+ KCHARP signal_guard_end = @/
+ "#endif";
+ Op_str << signal_guard_end<<endl;
+}
+
+@*3 |user_t_include_files_for_header|.
+@<accrue source for emit@>+=
+void user_t_include_files_for_header
+(std::ofstream& Op_str){@/
+ T_terminals_phrase* t_ph = O2_T_PHASE;
+ T_enum_phrase* enum_ph = O2_T_ENUM_PHASE;
+ T_lr1_k_phrase* lr_ph = O2_LRK_PHASE;
+ T_error_symbols_phrase* errors_ph = O2_ERROR_PHASE;
+
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP include_files = @/
+ "#include \"%s\"\n"@/
+ "#include \"%s%s\"\n" // T enumeration
+ "#include \"%s%s\"\n"// lr constants
+ "#include \"%s%s\"";// errors
+ int x = sprintf(big_buf_
+ ,include_files
+ ,O2_library_file
+ ,enum_ph->filename_id()->identifier()->c_str()
+ ,Suffix_enumeration_hdr
+ ,lr_ph->filename_id()->identifier()->c_str()
+ ,Suffix_LRK_hdr
+ ,errors_ph->filename_id()->identifier()->c_str()
+ ,Suffix_Errors_hdr
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+}
+
+@*2 |OP_USER_T_HEADER| implementation.\fbreak
+Bang out those error definitions.
+@<accrue source for emit@>+=
+void OP_USER_T_HEADER(TOKEN_GAGGLE& Error_queue){@/
+ T_terminals_phrase* t_ph = O2_T_PHASE;
+ string fn(t_ph->filename_id()->identifier()->c_str());
+ fn += Suffix_T_hdr;
+ std::ofstream Op_file;
+ Op_file.open(fn.c_str(),ios_base::out|ios::trunc);
+ if(!Op_file){
+ CAbs_lr1_sym* sym = new Err_bad_errors_hdrfilename(fn.c_str());
+ sym->set_line_no_and_pos_in_line(*t_ph->filename_id());
+ sym->set_who_created("o2externs.w - OP_USER_T_HEADER_CPP",__LINE__);
+ Error_queue.push_back(*sym);
+ return;
+ }
+
+ intro_comment(Op_file,fn.c_str());
+ user_t_include_files_for_header(Op_file);
+ user_t_include_guard_for_header(Op_file);
+ Op_file.close();
+}
+
+@* Template of USER T vocabulary header: |OP_USER_T_HEADER|.\fbreak
+Errors vocabulary header generation.
+\fbreak
+\INDENT{.1in}{1) Comments --- file name, time and date info}
+\INDENT{.1in}{2) include files}
+\INDENT{.1in}{3) use terminals enumeration namespace}
+\INDENT{.1in}{4) terminals-refs code}
+\INDENT{.1in}{5) loop thru the USer T list to generate their implementations}
+\INDENT{.2in}{5.1) generate the specific User T terminal definition}
+\INDENT{.1in}{6) terminals-sufx code}
+
+@*4 |user_t_imp_dtor|.
+@<accrue source for emit@>+=
+void user_t_imp_dtor
+(std::ofstream& Op_str,T_terminal_def* Td,SDC_MAP_ITER_type& J){@/
+ char big_buf_[BIG_BUFFER_32K];
+ T_destructor* dtor_t = (T_destructor*)J->second;
+ KCHARP dtor_code = @/
+ "void %s::dtor_%s(yacco2::VOIDP This,yacco2::VOIDP P){\n"@/
+ " bool ABORT_STATUS = ((yacco2::Parser*)P)->top_stack_record()->aborted__;\n"@/
+ " %s* R = (%s*)(This);\n"@/
+ " %s\n"@/
+ "}";
+ KCHARP dtor_code_noabort = @/
+ "void %s::dtor_%s(yacco2::VOIDP This,yacco2::VOIDP P){\n"@/
+ " %s* R = (%s*)(This);\n"@/
+ " %s\n"@/
+ "}";
+ std::string::size_type r =
+ dtor_t->syntax_code()->syntax_code()->find("ABORT_STATUS");
+int x(0);
+ if(r != std::string::npos){ // using abort status
+ x = sprintf(big_buf_
+ ,dtor_code
+ ,Td->classsym()->c_str()
+ ,Td->classsym()->c_str()
+ ,Td->classsym()->c_str()
+ ,Td->classsym()->c_str()
+ ,dtor_t->syntax_code()->syntax_code()->c_str()
+ );
+ }else{
+ x = sprintf(big_buf_
+ ,dtor_code_noabort
+ ,Td->classsym()->c_str()
+ ,Td->classsym()->c_str()
+ ,Td->classsym()->c_str()
+ ,Td->classsym()->c_str()
+ ,dtor_t->syntax_code()->syntax_code()->c_str()
+ );
+ }
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+}
+
+@*4 |user_t_imp_implementation|.
+@<accrue source for emit@>+=
+void user_t_imp_implementation
+(std::ofstream& Op_str,T_terminal_def* Td,SDC_MAP_ITER_type& J){@/
+ char big_buf_[BIG_BUFFER_32K];
+ T_user_implementation* imp_t = (T_user_implementation*)J->second;
+ Op_str << imp_t->syntax_code()->syntax_code()->c_str();
+ SDC_MAP_type* sdc_map = Td->directives_map();
+ SDC_MAP_ITER_type j = sdc_map->find(SDC_destructor);
+ if(j != sdc_map->end()){
+ errors_imp_dtor(Op_str,Td,j);
+ }
+}
+
+@*4 |user_t_imp_shellimplementation|.
+@<accrue source for emit@>+=
+void user_t_imp_shellimplementation
+(std::ofstream& Op_str,T_terminal_def* Td,std::string& Autodelete,std::string& Autoabort){@/
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP shell_of_def_item = @/
+ "%s::\n"@/
+ "%s()\n"@/
+ " T_CTOR(\"%s\",T_Enum::T_%s_,%s,%s,%s){}";
+ int x = sprintf(big_buf_
+ ,shell_of_def_item
+ ,Td->classsym()->c_str()
+ ,Td->classsym()->c_str()
+ ,Td->t_name()->c_str() // literal
+ ,Td->classsym()->c_str() // enum
+ ,"0"// no dtor
+ ,Autodelete.c_str()
+ ,Autoabort.c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+}
+
+@*3 |user_t_loop_thru_and_gen_defs_for_imp|.
+@<accrue source for emit@>+=
+void user_t_loop_thru_and_gen_defs_for_imp
+(std::ofstream& Op_str){@/
+ T_terminals_phrase* t_ph = O2_T_PHASE;
+
+ std::vector<T_terminal_def* >* dictionary = t_ph->crt_order();
+ char big_buf_[BIG_BUFFER_32K];
+ string auto_delete;
+ string auto_abort;
+ string dtor_adr;
+
+ std::vector<T_terminal_def* >::iterator i = dictionary->begin();
+ std::vector<T_terminal_def* >::iterator ie = dictionary->end();
+ for(;i != ie;++i){
+ T_terminal_def* td = *i;
+ SDC_MAP_type* sdc_map = td->directives_map();
+ SDC_MAP_ITER_type j = sdc_map->find(SDC_user_implementation);
+ if(td->autodelete()==false){
+ auto_delete = "false";
+ }else{
+ auto_delete = "true";
+ }
+ if(td->autoabort()==false){
+ auto_abort = "false";
+ }else{
+ auto_abort = "true";
+ }
+
+ if(j == sdc_map->end()){// shell so gen default
+ user_t_imp_shellimplementation(Op_str,td,auto_delete,auto_abort);
+ }else{// grammar writer defined
+ user_t_imp_implementation(Op_str,td,j);
+ }
+ }
+}
+
+@*3 |user_t_use_enum_namespace_for_imp|.
+@<accrue source for emit@>+=
+void user_t_use_enum_namespace_for_imp
+(std::ofstream& Op_str){@/
+ T_terminals_phrase* t_ph = O2_T_PHASE;
+ T_enum_phrase* enum_ph = O2_T_ENUM_PHASE;
+
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP using_namespace = @/
+ " using namespace %s;\n"
+ " using namespace %s;";// |T_enum|
+ int x = sprintf(big_buf_
+ ,using_namespace
+ ,t_ph->namespace_id()->identifier()->c_str()
+ ,enum_ph->namespace_id()->identifier()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+}
+
+@*3 |user_t_include_files_for_imp|.
+@<accrue source for emit@>+=
+void user_t_include_files_for_imp
+(std::ofstream& Op_str){@/
+ T_terminals_phrase* t_ph = O2_T_PHASE;
+ T_enum_phrase* enum_ph = O2_T_ENUM_PHASE;
+ T_lr1_k_phrase* lr_ph = O2_LRK_PHASE;
+ char big_buf_[BIG_BUFFER_32K];
+ KCHARP include_files = @/
+ "#include \"%s%s\"";
+ int x = sprintf(big_buf_
+ ,include_files
+ ,t_ph->filename_id()->identifier()->c_str()
+ ,Suffix_T_hdr
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+}
+
+@*2 |OP_USER_T_CPP| implementation.\fbreak
+Bang out thee implementation of those error definitions.
+@<accrue source for emit@>+=
+void OP_USER_T_CPP(TOKEN_GAGGLE& Error_queue){@/
+ T_terminals_phrase* t_ph = O2_T_PHASE;
+ string fn(t_ph->filename_id()->identifier()->c_str());
+ fn += Suffix_Errors_imp;
+ std::ofstream Op_file;
+ Op_file.open(fn.c_str(),ios_base::out|ios::trunc);
+ if(!Op_file){
+ CAbs_lr1_sym* sym = new Err_bad_errors_impfilename(fn.c_str());
+ sym->set_line_no_and_pos_in_line(*t_ph->filename_id());
+ sym->set_who_created("o2externs.w - OP_USER_T_CPP",__LINE__);
+ Error_queue.push_back(*sym);
+ return;
+ }
+
+ intro_comment(Op_file,fn.c_str());
+ user_t_include_files_for_imp(Op_file);
+ user_t_use_enum_namespace_for_imp(Op_file);
+ user_t_loop_thru_and_gen_defs_for_imp(Op_file);
+ Op_file.close();
+}
+
+@* Template of FSC File: |OP_FSC_FILE|.\fbreak
+File of grammar's first threads info for \o2{}linker.
+\fbreak
+\INDENT{.1in}{1) Comments --- file name, time and date info}
+\INDENT{.1in}{2) fsc prelude}
+\INDENT{.1in}{3) list of native Tes in grammar's first set}
+\INDENT{.1in}{4) list of directly called threads in its first set}
+\INDENT{.1in}{5) complete list of used threads in grammar for linker document}
+\INDENT{.1in}{6) grammar's comments for linker document}
+
+@*3 |fsc_prelude_imp|.
+@<accrue source for emit@>+=
+void fsc_prelude_imp
+(std::ofstream& Op_str,std::string& Fn){@/
+ KCHARP pp_thd_nm(0);
+ string transitive("n");
+ string mono;
+ char big_buf_[BIG_BUFFER_32K];
+ T_fsm_phrase* fcp = O2_FSM_PHASE;
+ T_parallel_parser_phrase* ppp = O2_PP_PHASE;
+ T_enum_phrase* enum_ph = O2_T_ENUM_PHASE;
+ T_rules_phrase* rules_ph = O2_RULES_PHASE;
+
+ RULE_DEFS_TBL_ITER_type i= rules_ph->crt_order()->begin();
+ RULE_DEFS_TBL_ITER_type ie= rules_ph->crt_order()->end();
+ rule_def*rd= *i;
+ FIRST_SET_type* fs = rd->first_set();
+ FIRST_SET_ITER_type j = fs->begin();
+ FIRST_SET_ITER_type je = fs->end();
+ for(;j!=je;++j){
+ T_in_stbl* tintbl = *j;
+ T_terminal_def* tdef = tintbl->t_def();
+ if(tdef->enum_id() == LR1_PARALLEL_OPERATOR){
+ transitive[0] = 'y';
+ break;
+ }
+ }
+
+ KCHARP fsc_prelude =
+ "transitive %s\n"
+ "grammar-name \"%s\"\n"
+ "name-space \"%s\"\n"
+ "thread-name \"%s\"\n"
+ "monolithic %s\n"
+ "file-name \"%s\"\n"
+ "no-of-T %i";
+ if(ppp == 0){
+ pp_thd_nm = fcp->fsm_class_phrase()->identifier()->identifier()->c_str();
+ mono += 'y';
+ }else{
+ pp_thd_nm = ppp->pp_funct()->identifier()->identifier()->c_str();
+ mono += 'n';
+ }
+ int x = sprintf(big_buf_
+ ,fsc_prelude
+ ,transitive.c_str()
+ ,fcp->filename_id()->identifier()->c_str()
+ ,fcp->namespace_id()->identifier()->c_str()
+ ,pp_thd_nm
+ ,mono.c_str()
+ ,Fn.c_str()
+ ,enum_ph->total_enumerate()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+}
+
+@*3 |list_of_native_Tes_in_fs_imp|.\fbreak
+Create a thread's first set by building a closure-only
+state.
+There are 2 conditions that are different to a
+regular first set calculation:
+\itemitem{1)} an $\epsilon$ start-rule
+\itemitem{2)} rules on the rhs of the start rule that have \INVshift.
+
+Point 1 requires the first set to be the Lookahead expression for the thread.
+Now what does the \INVshift symbol represent
+ within the first set as it is not part
+of the input token stream?
+\INVshift acts like an epsilon rule and therefore u must go through
+the goto states from the closure-only state
+ deriving their concrete first sets.
+This is a recursive situation when \INVshift is present in
+one of these
+shifted states so u keep on being devine...
+If the start-rule has been completely derived (accepted) then
+the thread's ``parallel-la-boundary'' expression
+adds its booty to the first set.
+If the ``eolr'' is present in this booty, then the thread's first set
+is only this symbol as it represents the ``all terminals'' situation.
+
+A cheap way would have been to just make the first set contain the ``eolr''
+symbol if the \INVshift symbol was present. This would work but
+would be inefficient due to the false starts in firing up the thread
+to have it misfire and shut down: a bit of thread farting.
+So lets be efficient by alculating what truely
+represents its thread's first set.
+
+An example of the above situation is a thread
+whose Start-rule contains only rules that are all explicitly or
+implicitely epsilonable (\INVshift is present).
+\fbreak
+\fbreak
+Now for the most efficient and simpliest solution - a bird's view:\fbreak
+As an optimization the current token is used to
+determine whether a thread should fire,
+why not include in this check against the meta \INVshift symbol?
+This way its saves some space as its contains just the threads
+that have it in their first set rather
+than distributing the thread-id-to-run against all its thread first set's concrete Tes.
+Consider the following: if the first set has only the ``all terminal --- eolr'' then
+this is a 1 to 1 relationship but if the lookahead set is volumious
+this becomes a 1 to many situation.
+The 1:m situation becomes less efficient in its set search as
+the current token contains all the possible threads that can
+run. When the running grammar detects threads
+to-be-run against its specific parse state, the first search
+is against the current token, then the secondary
+search for its specific threads takes place.
+So out damn |first_set_for_threads|.
+
+The reason for the remapping of \INVshift into \TRAshift
+ for the thread's first set is the double meaning on \INVshift:
+\itemitem{1)} \INVshift is a conditional meta-terminal
+ used to shift out of ambiguous
+situations. It is checked for its existence after parallelism
+was unsuccessful: no threads to run or an unsuccessful threading parse.
+\itemitem{2)} What does \INVshift mean in thread launching by
+use of the global table of threads per T?
+As the contexts are exclusive, i felt i should still
+not overload its meaning for the 2nd context:
+ie, only use it in the conditional-shift context.
+So \INVshift is renamed to \TRAshift in the global
+T table for wild card thread launches.
+
+Under \o2 there are only 16 threads of this type
+against 2 32 bit words makes for an efficient search against the
+local fsa's state of local threads to possiblely run.
+
+@*4 Driver of |list_of_native_Tes_in_fs_imp|.\fbreak
+@<accrue source for emit@>+=
+void list_of_native_Tes_in_fs_imp
+(std::ofstream& Op_str){@/
+ char big_buf_[BIG_BUFFER_32K];
+ int no_Tes_in_list(0);
+ string Tes_in_list;
+
+
+ STATES_ITER_type si = LR1_STATES.begin();
+ state* cur_state = *si;
+ int no_of_Tes_in_fs(0);
+ std::set<CAbs_lr1_sym*> fs_set;
+
+ T_rules_phrase* rules_ph = O2_RULES_PHASE;
+ RULE_DEFS_TBL_ITER_type i= rules_ph->crt_order()->begin();
+ RULE_DEFS_TBL_ITER_type ie= rules_ph->crt_order()->end();
+ rule_def*rd= *i;
+ FIRST_SET_type* fs = rd->first_set();
+ FIRST_SET_ITER_type j = fs->begin();
+ FIRST_SET_ITER_type je = fs->end();
+ for(;j!=je;++j){
+ T_in_stbl* tintbl = *j;
+ T_terminal_def* tdef = tintbl->t_def();
+ if(tdef->enum_id() == LR1_PARALLEL_OPERATOR){
+ continue;
+ }
+ ++no_Tes_in_list;
+ }
+
+done:;
+ KCHARP fs_list_of_Tes =
+ "list-of-native-first-set-terminals %i";
+ KCHARP fs_T_in_list =
+ " %s";
+ KCHARP end_fs_list_of_Tes =
+ "end-list-of-native-first-set-terminals%s";
+ int x = sprintf(big_buf_
+ ,fs_list_of_Tes
+ ,no_Tes_in_list
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+
+ j = fs->begin();
+ for(;j!=je;++j){
+ T_in_stbl* tintbl = *j;
+ T_terminal_def* tdef = tintbl->t_def();
+ if(tdef->enum_id() == LR1_PARALLEL_OPERATOR){
+ continue;
+ }
+ if(tdef->enum_id() == LR1_INVISIBLE_SHIFT_OPERATOR){// handled by \olinker
+ x = sprintf(big_buf_
+ ,fs_T_in_list
+ ,LR1_FSET_TRANSIENCE_OPERATOR_LITERAL
+ );
+ }else{
+ x = sprintf(big_buf_
+ ,fs_T_in_list
+ ,tdef->classsym()->c_str()
+ );
+ }
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+ x = sprintf(big_buf_,end_fs_list_of_Tes," ");
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+}
+
+@*3 |transitive_list_of_threads_in_fs_imp|.
+@<accrue source for emit@>+=
+void transitive_list_of_threads_in_fs_imp
+(std::ofstream& Op_str){@/
+ char big_buf_[BIG_BUFFER_32K];
+ T_rules_phrase* rules_ph = O2_RULES_PHASE;
+ AST* rules_tree = rules_ph->phrase_tree();
+ AST* start_rule_def_t= AST::get_1st_son(*rules_tree);
+ rule_def* rd = (rule_def*)AST::content(*start_rule_def_t);
+
+
+ int no_threads_in_list = rd->called_thread_first_set()->size();
+
+ KCHARP transitive_thread_list =
+ "list-of-transitive-threads %i";
+ KCHARP transitive_thread_in_list =
+ " %s::%s";
+ KCHARP end_transitive_thread_list =
+ "end-list-of-transitive-threads%s";
+
+ int x = sprintf(big_buf_,transitive_thread_list,no_threads_in_list);
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+
+std::set<T_called_thread_eosubrule*>::iterator e = rd->called_thread_first_set()->begin();
+std::set<T_called_thread_eosubrule*>::iterator ee = rd->called_thread_first_set()->end();
+for(;e!=ee;++e){
+ T_called_thread_eosubrule* called_thd = *e;
+ x = sprintf(big_buf_
+ ,transitive_thread_in_list
+ ,called_thd->ns()->identifier()->c_str()
+ ,called_thd->called_thread_name()->identifier()->c_str());
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+}
+
+ x = sprintf
+ (big_buf_
+ ,end_transitive_thread_list," "
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+}
+
+@*3 |used_list_of_threads_imp|.
+@<accrue source for emit@>+=
+void used_list_of_threads_imp
+(std::ofstream& Op_str){@/
+ char big_buf_[BIG_BUFFER_32K];
+ std::set<string> used_threads;
+ STATES_ITER_type i = LR1_STATES.begin();
+ STATES_ITER_type ie = LR1_STATES.end();
+for(;i!=ie;++i){// extract all the used threads
+ state* start_state = *i;
+ S_VECTOR_ELEMS_type* state_elems_wparallelism(0);
+ S_VECTORS_type& vect = start_state->state_s_vector_;
+ S_VECTORS_ITER_type vi = vect.find(LR1_PARALLEL_OPERATOR);
+ if(vi == vect.end()) continue; //no parallelism in state?
+ state_elems_wparallelism = &vi->second;
+ S_VECTOR_ELEMS_ITER_type k = state_elems_wparallelism->begin();
+ S_VECTOR_ELEMS_ITER_type ke = state_elems_wparallelism->end();
+ for(;k!=ke;++k){
+ state_element* thread_1st_elem = *k;// parallel operator
+ AST* rtned_T_t = thread_1st_elem->next_state_element_->sr_element_;
+ AST* bypassed_thd_eos_t = AST::brother(*rtned_T_t);
+ if(bypassed_thd_eos_t == 0) continue;
+ CAbs_lr1_sym* sym = AST::content(*bypassed_thd_eos_t);
+ if(sym->enumerated_id__ != T_Enum::T_T_called_thread_eosubrule_){
+ continue;
+ }
+ T_called_thread_eosubrule* called_thd = (T_called_thread_eosubrule*)sym;
+ // add to used thread if first time
+ string fqtnm;
+ fqtnm += called_thd->ns()->identifier()->c_str();
+ fqtnm += "::";
+ fqtnm += called_thd->called_thread_name()->identifier()->c_str();
+ if(used_threads.find(fqtnm) == used_threads.end()) used_threads.insert(fqtnm);
+ }
+}
+ KCHARP used_thread_list =
+ "list-of-used-threads %i";
+ KCHARP used_thread_in_list =
+ " %s";
+ KCHARP end_used_thread_list =
+ "end-list-of-used-threads%s";
+
+ int x = sprintf(big_buf_,used_thread_list,used_threads.size());
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+
+ std::set<string>::iterator si = used_threads.begin();
+ std::set<string>::iterator sie = used_threads.end();
+ for(;si!=sie;++si){
+ x = sprintf(big_buf_
+ ,used_thread_in_list
+ ,si->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+ }
+
+ x = sprintf
+ (big_buf_
+ ,end_used_thread_list," "
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+}
+
+@*3 |grammar_s_comments_for_linker_doc_imp|.
+@<accrue source for emit@>+=
+void grammar_s_comments_for_linker_doc_imp
+(std::ofstream& Op_str){@/
+ char big_buf_[BIG_BUFFER_32K];
+ T_fsm_phrase* fcp = O2_FSM_PHASE;
+
+ KCHARP fsm_comments =
+ "fsm-comments\n"
+ "\"%s\"";
+ int x = sprintf
+ (big_buf_
+ ,fsm_comments
+ ,fcp->comment()->c_string()->c_str()
+ );
+ Op_str.write(big_buf_,x);
+ Op_str<<endl;
+}
+
+@*2 |OP_FSC_FILE| implementation.\fbreak
+Okay last of the Moh...
+@<accrue source for emit@>+=
+void OP_FSC_FILE(TOKEN_GAGGLE& Error_queue){@/
+ T_fsm_phrase* fsm_ph = O2_FSM_PHASE;
+ string fn(fsm_ph->filename_id()->identifier()->c_str());
+ fn += Suffix_fsc;
+ std::ofstream Op_file;
+ Op_file.open(fn.c_str(),ios_base::out|ios::trunc);
+ if(!Op_file){
+ CAbs_lr1_sym* sym = new Err_bad_fsmtbl_filename(fn.c_str());
+ sym->set_line_no_and_pos_in_line(*fsm_ph->filename_id());
+ sym->set_who_created("o2externs.w - OP_FSC_FILE",__LINE__);
+ Error_queue.push_back(*sym);
+ return;
+ }
+ intro_comment(Op_file,fn.c_str());
+ fsc_prelude_imp(Op_file,fn);
+ list_of_native_Tes_in_fs_imp(Op_file);
+ transitive_list_of_threads_in_fs_imp(Op_file);
+ used_list_of_threads_imp(Op_file);
+ grammar_s_comments_for_linker_doc_imp(Op_file);
+ Op_file.close();
+}
+
+@** Bric-a-brac.\fbreak
+@ Better coordination between the coordinates.\fbreak
+To improve processing of nested files, a global |yacco2::STK_FILE_NOS__|
+was introduced to swing-and-sway with its partner |yacco2::FILE_CNT__|.
+|yacco2::FILE_CNT__| gets incremented by the |tok_can<std::ifstream>| container
+while |yacco2::STK_FILE_NOS__| pushes and pops |yacco2::FILE_CNT__|.
+The global |yacco2::FILE_TBL__| keeps an array of files processed.
+The importance of |yacco2::STK_FILE_NOS__| and |yacco2::FILE_CNT__| is
+in the assignment of the source file coordinates to the manufactured tokens.
+This allows one to correlate the error token back to
+the source file.
+
+As |yacco2::FILE_CNT__| is an expanding number, the grammar writer
+must properly coordinate when nested files are occurring,
+and to ensure when the file gets closed that the calling file
+number becomes |yacco2::STK_FILE_NOS__| current value.
+A little stacking sir...\fbreak
+\fbreak
+Improvement: 8 Mar. 2005
+
+@ Blending of Yacco2 and Linker externals.\fbreak
+General house cleaning. A one-stop-lollipop-stall of recycled ideas:
+your marche puce. Look at the stalls ... folders.
+Externals folder is now equal to
+Linker, Yacco2, Library. Ahem...\fbreak
+\fbreak
+Improvement: 9 Mar. 2005
+
+@ Remove option /s:xxxx number of source lines to generate.\fbreak
+This was a limitation of Microsoft's c++ compiler circa release 5.xx.
+It honked. Now I'm more optimistic of their current products.
+So I removed the /s:xxxx option from the |Yacco2_lcl_options(s).lex| grammars
+and as a passed in parameter to |YACCO2_PARSE_CMD_LINE|.
+Ah the signs of spring cleaning...\fbreak
+\fbreak
+Improvement: 2 June 2005
+
+
+@ Bug in MS compiler 2005.\fbreak
+To make my |mpost_output|
+grammar more print presentable when emitting itself for
+|mpost|, |cweave|, and |pdftex| consumption, i moved
+most of its class code into static class procedures whereby
+their implementations are within this document.
+Part of the improvement was the
+calling of the static member |MPOST_CWEB_EMIT_PREFIX_CODE|
+after |ctor| creation from the class's ``op'' directive
+ to do
+basic table initialization and to establish the output files
+to be written to.
+The class object's ``this'' was passed
+as a parameter to |MPOST_CWEB_EMIT_PREFIX_CODE|.\fbreak
+
+Well the bug, |@<initialize the |Cmpost_output| class variables@>|
+within |MPOST_CWEB_EMIT_PREFIX_CODE|
+established opening the files. After verifying
+that the file's ``ofstream'' was healthy,
+upon the 1st attempt to write to it
+MS c++ emitted code honked from its mutex handling routine.
+Well at least they are improving in their trappings.\fbreak
+
+Work around, extract from the |MPOST_CWEB_EMIT_PREFIX_CODE|
+procedure the initialization of the class's variables
+and place it in the ``op'' directive of the class before
+the call to |MPOST_CWEB_EMIT_PREFIX_CODE|
+to complete the balance of work.
+Now MS's emitted code doesn't honk
+ when
+ the initialization context is within the class code.\fbreak
+\fbreak\fbreak
+Grrr: 26 Jan. 2006
+\fbreak
+@ Initialize the |Cmpost_output| class variables.
+The initial |push_back| of ``0'' is to register a boggy 0 element as
+i count from 1.
+@<initialize the |Cmpost_output| class variables@>=
+ Fsm->no_subrules_per_rule_.push_back(0);
+ Fsm->gened_date_time_ += DATE_AND_TIME();
+
+ Fsm->mp_dimension_ += " abcdefghijklmnopqrstuvwxyz";
+ Fsm->w_fig_no_ = 0;
+ Fsm->rule_def_ = 0;
+ Fsm->subrule_def_ = 0;
+ Fsm->rule_no_ = 0;
+ Fsm->subrule_no_ = 0;
+ Fsm->elem_no_ = 0;
+ Fsm->no_of_rules_ = 0;
+ Fsm->no_of_subrules_ = 0;
+ Fsm->mp_filename_ += Fsm->grammar_filename_prefix_.c_str();
+ Fsm->mp_filename_ += ".mp";
+ Fsm->omp_file_.open(Fsm->mp_filename_.c_str(),ios_base::out|ios::trunc);
+ if(!Fsm->omp_file_){
+ CAbs_lr1_sym* sym = new Err_bad_filename(Fsm->mp_filename_.c_str());
+ Fsm->parser__->add_token_to_error_queue(*sym);
+ Fsm->parser__->set_stop_parse(true);
+ return;
+ }
+ Fsm->w_filename_ += Fsm->grammar_filename_prefix_.c_str();
+ Fsm->w_filename_ += ".w";
+ Fsm->ow_file_.open(Fsm->w_filename_.c_str(),ios_base::out|ios::trunc);
+ if(!Fsm->ow_file_){
+ CAbs_lr1_sym* sym = new Err_bad_filename(Fsm->w_filename_.c_str());
+ Fsm->parser__->add_token_to_error_queue(*sym);
+ Fsm->parser__->set_stop_parse(true);
+ return;
+ }
+
+
+@ |convertMPtoPDF| macro bug.\fbreak
+Well here's the scoop: my grammar diagrams are smoking
+but when there is a blank (space) in a terminal
+being displayed, the |convertMPtoPDF| macro halts
+saying that the |empty| macro is illegally
+terminated.
+
+Alas, for the moment i substitute a ``.'' in place of the space
+to keep the pictures flowing.\fbreak
+\fbreak
+3 Feb. 2006
+
+@ |cweave| emits bad cross-reference command in o2externs.scn file.\fbreak
+It emits:\fbreak
+ $\backslash${}I$\backslash${}X8, xx , yy, 73:accrue source for emit$\backslash${}X\fbreak
+ $\backslash${}U7.\fbreak
+instead of:\fbreak
+$\backslash${}I$\backslash${}X8:accrue source for emit$\backslash${}X\fbreak
+$\backslash${}Us10, 11, ..., 70$\backslash${}ETs72. This works.
+But checking with other modules like ``wlibrary''
+the code is right so what's making it cough?
+\fbreak
+\fbreak
+Until i fix |cweave| either remove ``\\ind'' line at the end of
+``o2externs.tex'' file
+or ``remove or add'' the offending commands in ``o2externs.scn'' file.
+\fbreak
+\fbreak
+14 June 2006
+
+@ |cweave| emits tab in place of ``open brace''.\fbreak
+The ``ctangle'' emitted cpp code is okay. Shows up when i emit ``cpp'' source code
+implementation procedures for the grammar.
+\fbreak
+\fbreak
+12 Nov 2006
+
+@ Language cleanup.\fbreak
+Removed ``entry and exit'' routines from fsm class definition.
+Fsm's ctor and dtor allow the same points to be tweaked. In \O2's creation days, i was
+over zealous on trigger points --- fsm, push and pop action off the parse stack, and
+subrules being separate classes. all this to leave tracks when needed.\fbreak
+Eliminated the subrule directives as they were needed only when a subrule was designed as
+ a separate class --- now a subrule definition is
+ part of the rule definition: srx() where x is the subrule number.
+Separate subrule definitions really had marginal utility --- euphemism for
+useless and never exploited.\fbreak
+\INDENT{.2in}{1) rhs-op replaced by op directive}
+\INDENT{.2in}{2) rhs-xxx elinimated directives}
+\INDENT{.3in}{ where xxx is constructor, destructor, user-declaration or implementation}
+This my take on gently waff where whiffes linger...
+\fbreak
+\fbreak
+13 Nov 2006
+
+@ Templates and their tantrums.\fbreak
+Due to MS's equal algorithm throwing up, i roll my own set compare ---
+|find_common_la_set_idx|.
+\fbreak
+\fbreak
+20 Nov 2006
+
+@ Rule use count off by nested recursion.\fbreak
+The rule use count algorithm didn't handle the following boiled
+ down example properly:\fbreak
+\ptindent{T $\rightarrow$ Ra T Rb}
+\ptindent{T $\rightarrow$ Ra ...}
+The nested T was recognized but not post evaluated on Ra use.
+It should double its maximun calculated use count after direct and indirect
+rule calculations.\fbreak
+\fbreak
+Nov. 2007
+@** Index.
+
+
+
diff --git a/web/yacco2/compiler/o2/prog.w b/web/yacco2/compiler/o2/prog.w
new file mode 100644
index 0000000000..1bc10d828f
--- /dev/null
+++ b/web/yacco2/compiler/o2/prog.w
@@ -0,0 +1,651 @@
+@q file: prog.w@>
+@q% Copyright Dave Bone 1998 - 2015@>
+@q% /*@>
+@q% This Source Code Form is subject to the terms of the Mozilla Public@>
+@q% License, v. 2.0. If a copy of the MPL was not distributed with this@>
+@q% file, You can obtain one at http://mozilla.org/MPL/2.0/.@>
+@q% */@>
+@** External routines and globals.\fbreak
+General routines to get things going:\fbreak
+\ptindent{1) get control file and put into \O2's holding file}
+\ptindent{2) parse the command line}
+\ptindent{3) format errors}
+\ptindent{4) \O2's parse phrases --- pieces of syntactic structures}
+These are defined by including |o2_externs.h|.
+Item 4 is driven out of the |pass3.lex| grammar.
+It demonstrates a procedural approach similar to recursive descent parsing
+technique.
+
+The globals are:\fbreak
+\ptindent{a) |Error_queue| --- global container of errors passed across all parsings}
+\ptindent{b) Switches from command line parse}
+\ptindent{c) Token containers for the parsing phases}
+
+@<External rtns and variables@>=
+extern int RECURSION_INDEX__;
+extern void COMMONIZE_LA_SETS();
+extern int NO_LR1_STATES;
+extern STATES_SET_type VISITED_MERGE_STATES_IN_LA_CALC;
+extern LR1_STATES_type LR1_COMMON_STATES;
+extern CYCLIC_USE_TBL_type CYCLIC_USE_TABLE;
+extern void Print_dump_state(state* State);
+@** Main line of \O2.
+@<accrue \o2 code@>+=
+
+YACCO2_define_trace_variables();
+//|Recursion_count();|
+int RECURSION_INDEX__(0);
+yacco2::CHAR T_SW('n');
+yacco2::CHAR ERR_SW('n');
+yacco2::CHAR PRT_SW('n');
+
+yacco2::TOKEN_GAGGLE JUNK_tokens;
+yacco2::TOKEN_GAGGLE P3_tokens;
+yacco2::TOKEN_GAGGLE Error_queue;
+char Big_buf[BIG_BUFFER_32K];
+T_sym_tbl_report_card report_card;
+std::string o2_file_to_compile;
+std::string o2_fq_fn_noext;
+STBL_T_ITEMS_type STBL_T_ITEMS;
+STATES_type LR1_STATES;
+LR1_STATES_type LR1_COMMON_STATES;
+bool LR1_HEALTH(LR1_COMPATIBLE);
+int NO_LR1_STATES(0);
+STATES_SET_type VISITED_MERGE_STATES_IN_LA_CALC;
+CYCLIC_USE_TBL_type CYCLIC_USE_TABLE;
+
+
+int main(int argc, char* argv[])
+{
+ cout << yacco2::Lr1_VERSION << std::endl;
+
+@<setup \O2 for parsing@>;
+@<fetch command line info...@>;
+ lrclog << yacco2::Lr1_VERSION << std::endl;
+
+@<are all phases parsed?@>;
+@<epsilon and pathological assessment of Rules@>;
+@<dump aid: enumerate grammar's components@>;
+@<determine if la expression...@>;
+@<get total number of subrules for |elem_space| size check@>;
+@<calculate rules first sets@>;
+@<calculate Start rule called threads first sets@>;
+@<generate grammar's LR1 states@>;
+@<is the grammar unhealthy? yes report the details and exit@>;
+@<determine each rule use count@>;
+@<emit FSA, FSC, and Documents of grammar@>;
+//|@<print tree@>;|
+//|@<shutdown@>;|
+exit:
+lrclog << "Exiting O2" << std::endl;
+ return 0;
+}
+@** Some Programming sections.
+@*2 Shutdown.\fbreak
+Prints out the thread table with their runtime activity, and calls
+each one of them to quitely remove themselves as threads.
+Within Unix this is not needed as the winddown duties of the
+process removes launched threads:
+That is why it is commented out.
+Uncommenting it provides the
+run statistics for the compiler writer to view reality in terms of performance stats.
+@<shutdown@>=
+lrclog << "Before thread shutdown" << std::endl;
+yacco2::Parallel_threads_shutdown(pass3);
+lrclog << "After thread shutdown" << std::endl;
+
+@*2 Setup \O2 for parsing.\fbreak
+@<setup \O2 for parsing@>=
+ @<load \o2's keywords into symbol table@>;
+
+@*2 Load \O2's keywords into symbol table.\fbreak
+Basic housekeeping. Originally a grammar recognized keywords
+by being in competition with the Identifier thread.
+Keyword thread only ran if its first set matched the starting character
+making up an identifier and keyword.
+Now it's blended into Identifier using the symbol table lookup that
+returns not only the identifier terminal but all other keyword entries put into
+the symbol table.
+
+For now, only the keywords are cloned off as unique entities whilst all other
+entries are
+passed back from their symbol table with its source co-ordinates being overriden.
+@<load \o2's keywords into symbol table@>=
+ LOAD_YACCO2_KEYWORDS_INTO_STBL();
+
+@*2 Fetch command line info and parse the 3 languages.\fbreak
+The 3 separate languages to parse are:\fbreak
+\ptindent{1) fetching of the command line to place into a holding file}
+\ptindent{2) the command line in the holding file --- grammar file name and options}
+\ptindent{3) the grammar file's contents}
+Items 1 and 2 are handled by external routines where
+fetching of the command line is crude but all-purpose whilst
+the command line language is specific to \O2.
+@<fetch command line info and parse the 3 languages@>=
+ @<get command line...@>;
+ @<parse command line data placed in holding file@>;
+ @<parse the grammar@>;
+
+@*2 Get command line, parse it, and place contents into a holding file.
+It uses a generic external routine to do this. The parse is very rudimentary.
+The command data is placed into a holding file provided by
+|Yacco2_holding_file| defined in the external library |o2_externs.h|.
+See |cweb| documents mentioned in the introduction regarding other support libraries.
+If the result is okay, set up \O2's library files for tracing.
+ @<get command line, parse it, and place contents into a holding file@>=
+ GET_CMD_LINE(argc,argv,Yacco2_holding_file,Error_queue);
+ @<if error queue not empty then deal with posted errors@>;
+
+
+@*2 Do we have errors?.
+Check that error queue for those errors.
+Note, |DUMP_ERROR_QUEUE| will also flush out
+ any launched threads for the good housekeeping or is it
+housetrained seal
+award? Trying to do my best in the realm of short lived winddowns.
+@<if error queue not empty then deal with posted errors@>=
+if(Error_queue.empty()!=true){
+ DUMP_ERROR_QUEUE(Error_queue);
+ return 1;
+}
+
+@*2 Parse command line data placed in holding file.
+@<parse command line data placed in holding file@>=
+ YACCO2_PARSE_CMD_LINE
+ (T_SW,ERR_SW,PRT_SW,o2_file_to_compile,Error_queue);
+ @<if error queue not empty then deal with posted errors@>;
+ @<display to user options selected@>;
+ @<extract fq name without extension@>;
+ @<set up logging files@>;
+
+@*3 Extract fully qualified file name to compile without its extension.\fbreak
+Used to access the generated first set control file
+for |cweb| documentation and \O2's tracings.
+Simple check, if the grammar file name does not contain
+a ``.extension'' then use the complete file name.
+@<extract fq name without extension@>=
+std::string::size_type pp = o2_file_to_compile.rfind('.');
+if(pp == std::string::npos){
+ o2_fq_fn_noext += o2_file_to_compile;
+}else{
+ o2_fq_fn_noext += o2_file_to_compile.substr(0,pp);
+}
+
+@*2 Set up \O2's logging files local to the parsed grammar.\fbreak
+There are 2 stages.
+Stage 1 logs to ``1lrerrors.log'' and ``1lrtracings''
+as the command line is being parsed --- |o2_lcl_opts| and |o2_lcl_opt| grammars.
+It has no knowledge of the grammar file to parse.
+Stage 2 passed the command line parsing and the
+inputted grammar file name
+can be used to build the grammar's local \O2 tracing files.
+These log files are ``xxx\_tracings.log'' and ``xxx\_errors.log''
+where the ``xxx'' is the grammar's base file name.
+@<set up logging files@>=
+std::string normal_tracing(o2_fq_fn_noext.c_str());
+normal_tracing += "_tracings.log";
+std::string error_logging(o2_fq_fn_noext.c_str());
+error_logging += "_errors.log";
+yacco2::lrclog.close();
+yacco2::lrerrors.close();
+yacco2::lrclog.open(normal_tracing.c_str());
+yacco2::lrerrors.open(error_logging.c_str());
+
+
+@*3 Display to user options selected.
+@<display to user options selected@>=
+ lrclog << "Parse options selected:" << std::endl;
+ lrclog << " Gen T: " << T_SW;
+ lrclog << " Gen Err: " << ERR_SW;
+ lrclog << " Gen RC: " << PRT_SW;
+
+@*2 Parse the grammar.\fbreak
+Due to the syntax directed code not having legitimate grammars to parse it,
+a character-at-a-time parsing approach is used.
+This is a lexical and syntactic mix of parsing instead of your separate
+lexical, syntax parse stages.
+Why?
+I'll use a question as an answer. How do you recognize the
+`***' directive to end a c++ syntax directed code portion that is an
+ unstructured sequence of characters?
+Well crawl at a character's pace per prefix accessment.
+This is why the bluring between lexical and syntatical boundaries.
+So walk-the-walk-and-talk of a lexical parser using recursive descent
+(for its single call of fame containing a bottom-up parse)
+ tripped off by a bottom-up syntax directed code.
+What a mouthfull!
+Should mother use soap and a tooth brush to punish the child?
+Who is this mother anyway?
+
+Within the |pass3.lex| grammar are procedure calls
+containing the parse phases.
+Each phase is called from
+within the syntax-directed-code of the recognized keyword:
+``fsm'',`` rules'', etc.
+This demonstrates a bottom-up / top-down approach to parsing.
+Options are what it's all about. What's your choice?
+@<parse the grammar@>=
+//|yacco2::YACCO2_TH__ = 1;|
+//|yacco2::YACCO2_MSG__ = 1;|
+ using namespace NS_pass3;
+ tok_can<std::ifstream> cmd_line(o2_file_to_compile.c_str());
+ Cpass3 p3_fsm;
+ Parser pass3(p3_fsm,&cmd_line,&P3_tokens,0,&Error_queue,&JUNK_tokens,0);
+ pass3.parse();
+ @<if error queue not empty then deal with posted errors@>;
+ @<dump lexical and syntactic's outputted tokens@>;
+
+
+@*2 Dump lexical and syntactic's outputted tokens.
+@<dump lexical and syntactic's outputted tokens@>=
+ yacco2::TOKEN_GAGGLE_ITER i = P3_tokens.begin();
+ yacco2::TOKEN_GAGGLE_ITER ie = P3_tokens.end();
+ lrclog << "Dump of P3 tokons" << endl;
+ for(int yyy = 1;i != ie;++i){
+ CAbs_lr1_sym* sym = *i;
+ if(sym == yacco2::PTR_LR1_eog__) continue;
+ lrclog << yyy << ":: " << sym->id__
+ << " file no: " << sym->tok_co_ords__.external_file_id__
+ << " line no: " << sym->tok_co_ords__.line_no__
+ << " pos: " << sym->tok_co_ords__.pos_in_line__
+ << endl;
+ ++yyy;
+}
+
+@*2 Dump aid --- Enumerate grammar's components.\fbreak
+As a reference aid to a grammar's components,
+each component has an enumerate value of ``x.y.z'' where
+x stands for the rule number, y is its subrule number, and z is the component
+number.
+The grammar's enumerated elements are ``rule-def'', ``subrule-def'', and components
+``refered-rule'', ``refered-T'', and ``eosubrule''.
+The ``rules-phrase'' is not enumerated as it just ties all the forests together.
+An enumerate example is ``1'' standing for the Start rule.
+``1.2.2'' goes to its 2nd subrule of component 2.
+
+The grammar is read whereby all its forests are enumerated relative to one another.
+@<dump aid: enumerate grammar's components@>=
+@=set<int> enumerate_filter;@>@/
+ enumerate_filter.insert(T_Enum::T_rule_def_);
+ enumerate_filter.insert(T_Enum::T_T_subrule_def_);
+ enumerate_filter.insert(T_Enum::T_refered_T_);
+ enumerate_filter.insert(T_Enum::T_T_eosubrule_);
+ enumerate_filter.insert(T_Enum::T_refered_rule_);
+ enumerate_filter.insert(T_Enum::T_T_called_thread_eosubrule_);
+ enumerate_filter.insert(T_Enum::T_T_null_call_thread_eosubrule_);
+using namespace NS_enumerate_grammar;@/
+
+tok_can_ast_functor walk_the_plank_mate;
+ast_prefix enumerate_grammar_walk
+(*rules_tree,&walk_the_plank_mate,&enumerate_filter,ACCEPT_FILTER);@/
+tok_can<AST*> enumerate_grammar_can(enumerate_grammar_walk);
+Cenumerate_grammar enumerate_grammar_fsm;
+Parser enumerate_grammar(enumerate_grammar_fsm,&enumerate_grammar_can,0,0,&Error_queue);
+enumerate_grammar.parse();
+
+@*2 Epsilon and Pathological assessment of Rules.\fbreak
+Epsilon condition:\fbreak
+Rule contains an empty symbol string in a subrule.
+The only subtlety is when a rule has a subrule(s) containing all rules.
+If all the rules within that subrule are epsiloned, then this
+subrule is an epsilon and so turn on its rule as epsilonable.\fbreak
+\fbreak
+Pathological Rule assessment:\fbreak
+Does a rule derive a terminal string?
+The empty string is included in this assessment.
+|epsilon_rules| grammar tells the whole story.\fbreak
+\fbreak
+Note:\fbreak
+The tree is walked using discrete levels: Rules and Subrules.
+The subrule's elements are filtered out (not included)
+for the discrete rule traversal but is added
+within the rule's syntax directed code logic
+a subrule's element advancement.
+Element advancement bypasses the thread component expression.
+These are neat facilities provided by \O2 using the
+|tok_can| tree traversal containers.
+@<epsilon and pathological assessment of Rules@>=
+using namespace NS_epsilon_rules;@/
+@=set<AST*> yes_pile;@>@/
+@=set<AST*> no_pile;@>@/
+@=list< pair<AST*,AST*> > maybe_list;@>@/
+T_rules_phrase* rules_ph = O2_RULES_PHASE;
+AST* rules_tree = rules_ph->phrase_tree();
+
+@=set<int> filter;@>@/
+filter.insert(T_Enum::T_T_subrule_def_);
+filter.insert(T_Enum::T_rule_def_);
+
+tok_can_ast_functor just_walk_functr;
+ast_prefix rule_walk(*rules_tree,&just_walk_functr,&filter,ACCEPT_FILTER);@/
+tok_can<AST*> rules_can(rule_walk);
+Cepsilon_rules epsilon_fsm;
+Parser epsilon_rules(epsilon_fsm,&rules_can,0,0,&Error_queue);
+epsilon_rules.parse();
+@<Print pathological symptoms but continue@>;
+//|@<print tree@>;|
+
+@ Print pathological symptoms but continue.
+@<Print pathological symptoms but continue@>=
+if(Error_queue.empty()!=true){
+ DUMP_ERROR_QUEUE(Error_queue);
+ Error_queue.clear();
+ return 1;
+}
+
+@*2 Get the total number of subrules.\fbreak
+I'm lazy and don't want to distribute the count as
+the individual rules are being parsed so
+do it via the a tree walk on subrules.
+Why do it anyway?
+I've hardwired the |elem_space| table size against
+a constant |Max_no_subrules|.
+Why not allocate the table size dynamicly?
+Glad u asked as the malloc approach burped.
+Maybe there's mixed metaphores on
+malloc versus how the C++ new / delete allocation is done.
+Anyway this works and is reasonable.
+@<get total number of subrules for |elem_space| size check@>=
+@=set<int> sr_filter;@>@/
+sr_filter.insert(T_Enum::T_T_subrule_def_);
+ast_prefix sr_walk(*rules_tree,&just_walk_functr,&sr_filter,ACCEPT_FILTER);@/
+tok_can<AST*> sr_can(sr_walk);
+for(int xx(0);sr_can[xx] != yacco2::PTR_LR1_eog__;++xx);
+O2_T_ENUM_PHASE->total_no_subrules(sr_can.size());
+if(O2_T_ENUM_PHASE->total_no_subrules() > Max_no_subrules){
+ lrclog << "Grammar's number of subrules: "
+ << O2_T_ENUM_PHASE->total_no_subrules()
+ << " exceeds the allocated space for table elem_space: "
+ << Max_no_subrules << endl;
+ lrclog << "This is a big grammar so please correct the grammar." << std::endl;
+ clog << "Grammar's number of subrules: "
+ << O2_T_ENUM_PHASE->total_no_subrules()
+ << " exceeds the allocated space for table elem_space: "
+ << Max_no_subrules << endl;
+ clog << "This is a big grammar so please correct the grammar." << std::endl;
+ return 1;
+}
+
+@*2 Calculate each rule's first set.\fbreak
+Lov the discrete logic of a grammar to code algorithms.
+See |first_set_rules| grammar as it's really is simple in its logic:
+i'm getting there from all corners of the coding world.
+Not any more as i'm pruning the
+overhead so out my drafty thoughts and this grammar |first_set_rules|.
+Just iterate over the grammar tree for filtered |rule_def| nodes only.
+@<calculate rules first sets@>=
+@=set<int> fs_filter;@>@/
+fs_filter.insert(T_Enum::T_rule_def_);
+ast_prefix fs_rule_walk(*rules_tree,&just_walk_functr,&fs_filter,ACCEPT_FILTER);@/
+tok_can<AST*> fs_rules_can(fs_rule_walk);
+for(int xx(0);fs_rules_can[xx] != yacco2::PTR_LR1_eog__;++xx){
+ @=rule_def* rd = (rule_def*)fs_rules_can[xx];@>@/
+ GEN_FS_OF_RULE(rd);
+}
+
+@*2 Calculate Start rule's called threads first set list.\fbreak
+It calculates the ``called threads'' first set
+for the ``to be emitted xxx.fsc''
+ file. The neat wrinkle is the epsilonable rule that requires
+same transience left-to-right moves thru the subrule expressions.
+This is fodder to
+\olinker that builds each thread's first set
+ from the ``list-of-native-first-set-terminal''
+and ``list-of-transitive-threads'' constructs.
+The final outcome of \olinker is an optimized list of threads per terminal.
+The calculation goes across the Start rule and its closured rules
+to determine the list of called threads. This list can be \emptyrule.
+In the ``Start rule'' is the contents for ``list-of-transitive-threads''.
+@<calculate Start rule called threads first sets@>=
+rule_def* start_rule_def = (rule_def*)fs_rules_can.operator[](0);
+GEN_CALLED_THREADS_FS_OF_RULE(start_rule_def);
+
+@*2 Are all Grammar phases parsed?.\fbreak
+As i parse the individual phrases by their keyword presence
+without using a grammar to sequence each phase,
+now is
+the time to see if all the parts are present in the grammar.
+This is a simple iteration on the posted |O2_PHRASE_TBL|
+to fetch their phrase terminals and to put them
+thru a post grammar sequencer.
+
+I changed how the tokens are fetched from fill the container by
+iterating the |O2_xxx| phases to reading the grammar's tree.
+Why?
+Cuz i implicitly changed to on-the-fly enumeration of their values
+while they were being parsed.
+If their order was changed then their appropriate enumerates are out-of-alignment.
+For example if the raw character classification came before the ``lrk'' definitions,
+this would be catastrophic due to the down stream semantics' dependency on their
+correct enumerates. \fbreak
+A bird's view of \O2's phases: indent shows node's dependency\fbreak
+\ptindent{::1 grammar-phrase grammar-phrase file 2:0: line 24:4: sym*: 0122B598}
+\ptindent{ ::2 fsm-phrase fsm-phrase file 2:766: line 24:4: sym*: 01220BA0}
+\ptindent{ ::3 T-enum-phrase T-enum-phrase file 4:1069: line 32:14: sym*: 01272500}
+\ptindent{ ::4 lr1-k-phrase lr1-k-phrase file 5:1727: line 44:21: sym*: 011F0360}
+\ptindent{ ::5 rc-phrase rc-phrase file 6:303: line 13:15: sym*: 01270C98}
+\ptindent{ ::6 error-symbols-phrase error-symbols-phrase file 7:1026: line 34:14: sym*: 0257F388}
+\ptindent{ ::7 terminals-phrase terminals-phrase file 8:474: line 15:10: sym*: 011F1458}
+\ptindent{ ::8 rules-phrase rules-phrase file 2:1708: line 60:6: sym*: 02FB3AA8}
+Notice i walk the tree by |ast_prefix_wbreadth_only|. This visits the start node
+``grammar-phrase'' and only
+its immediate children by the ``breadth-only'' qualifier.
+@<are all phases parsed?@>=
+@=set<int> phase_order_filter;@>@/
+phase_order_filter.insert(T_Enum::T_T_fsm_phrase_);
+phase_order_filter.insert(T_Enum::T_T_enum_phrase_);
+phase_order_filter.insert(T_Enum::T_T_lr1_k_phrase_);
+phase_order_filter.insert(T_Enum::T_T_rc_phrase_);
+phase_order_filter.insert(T_Enum::T_T_error_symbols_phrase_);
+phase_order_filter.insert(T_Enum::T_T_terminals_phrase_);
+phase_order_filter.insert(T_Enum::T_T_rules_phrase_);
+
+tok_can_ast_functor orderly_walk;
+ast_prefix_wbreadth_only
+evaluate_phase_order(*GRAMMAR_TREE,&orderly_walk,&phase_order_filter,ACCEPT_FILTER);@/
+tok_can<AST*> phrases_can(evaluate_phase_order);
+
+using namespace NS_eval_phrases;
+Ceval_phrases eval_fsm;
+Parser eval_phrases(eval_fsm,&phrases_can,0,0,&Error_queue,0,0);
+eval_phrases.parse();
+@<if error queue not...@>;
+
+@*2 Thread's end-of-token stream: Lookahead expression post evaluation.\fbreak
+If the grammar contains the `parallel-parser' construct, then it is considered
+a thread.
+As a refinement, this construct allows one to
+fine-tune the lookahead boundaries of the grammar in its own contextual way.
+As this construct is declared before the grammar's vocabulary definitions --- rules and terminals,
+the expression must be kept in raw character token
+format with some lexems removed like comments.
+Only after all the grammar has been recognized can the lookahead expression be
+parsed properly: the terms in the expression must
+relate to T-in-stbl, rule-in-stbl, and the $+$ or $-$ expression operators.
+
+Squirrelled away in the `parallel-parser' terminal is the raw token stream
+of the lookahead expression.
+The strategy used is to fetch the appropriate parsed phase token from
+the \O2 phase table and then deal with its locally defined pieces of information.
+Originally these parse phases were kept in the global symbol table but
+now they are contained in its own table. Why? Well
+how do u guard against a grammar writer defining a terminal whose key
+could be a synomyn
+to one of my internal parse phases?
+Regardless of how clever one is to naming keys, separation between my
+internal tables and the global symbol table has a 100\% assurance of no conflict.
+
+First set Criteria:\fbreak
+\ptindent{1) Element is a Terminal, use its calculated enumeration value}
+\ptindent{2) If the element is eolr, then use all calculated enumeration values}
+\ptindent{3) Element is a Rule, use its calculated First set terminals}
+
+Before the Lookahead first set can be calculated, the terminal vocabulary must
+be traversed and assigned an enumeration value per terminal.
+The grammar's rules
+must also have their first sets calculated
+before the lookahead expression can be calculated.
+
+The lookahead logic within its grammar(s) is two fold:\fbreak
+ \ptindent{a) parse the lookahead expression for kosher syntax}
+ \ptindent{b) calculate the lookahead's first set from the expression}
+The error checks are for an ill-formed expressions, and for
+an empty first set calculation: for example, `a' - `a', or `b' - `eolr',
+and epsilon Rules used in the lookahead expression.
+This calculated first set is then
+used down stream in the finite state automata (FSA) generation of the grammar.
+@<determine if la expression present. Yes parse it @>=
+ if(O2_PP_PHASE != 0){
+ @<parse la expression and calculate its first set@>;
+ }
+
+@*3 Parse the la expression and calculate its first set.
+@<parse la expression and calculate its first set@>=
+T_parallel_parser_phrase* pp_ph = O2_PP_PHASE;
+
+if(pp_ph->la_bndry() == 0){
+ CAbs_lr1_sym* sym = new Err_pp_la_boundary_attribute_not_fnd;
+ sym->set_rc(*pp_ph);
+ Error_queue.push_back(*sym);
+ @<if error queue not empty then deal with posted errors@>;
+}
+T_parallel_la_boundary* la_bndry = pp_ph->la_bndry();
+yacco2::TOKEN_GAGGLE* la_srce_tok_can = la_bndry->la_supplier();
+yacco2::TOKEN_GAGGLE la_tok_can_lex;
+yacco2::TOKEN_GAGGLE la_expr_tok_can;
+using namespace NS_la_expr_lexical;
+Cla_expr_lexical la_expr_lex_fsm;
+ Parser la_expr_lex_parse(la_expr_lex_fsm,la_srce_tok_can
+ ,&la_tok_can_lex,0,&Error_queue,&JUNK_tokens,0);
+ la_expr_lex_parse.parse();
+ @<if error queue not empty then deal with posted errors@>;
+using namespace NS_la_expr;
+Cla_expr la_expr_fsm;
+ Parser la_expr_parse(la_expr_fsm,&la_tok_can_lex,&la_expr_tok_can
+ ,0,&Error_queue,&JUNK_tokens,0);
+ la_expr_parse.parse();
+ @<if error queue not empty then deal with posted errors@>;
+
+@*2 Determine rule use count: Optimization.\fbreak
+To improve performance, the rules (Productions) symbols are
+newed once and recycled when needed.
+To ensure that there are enough recycled rules available,
+the gramar is traversed and their uses counted.
+If recursion is present within the rule, this adds one more use.
+The grammar tree is traversed looking only for
+``rule-def'', ``subrule-def'', and ``refered-rule'' tokens.
+@<determine each rule use count@>=
+lrclog << "Evaluate rules count" << endl;
+using namespace NS_rules_use_cnt;
+
+@=set<int> rules_use_cnt_filter;@>@/
+rules_use_cnt_filter.insert(T_Enum::T_T_subrule_def_);
+rules_use_cnt_filter.insert(T_Enum::T_rule_def_);
+rules_use_cnt_filter.insert(T_Enum::T_refered_rule_);
+
+tok_can_ast_functor rules_use_walk_functr;
+ast_prefix rules_use_walk(*GRAMMAR_TREE,&rules_use_walk_functr
+,&rules_use_cnt_filter,ACCEPT_FILTER);
+tok_can<AST*> rules_use_can(rules_use_walk);
+Crules_use_cnt rules_use_cnt_fsm;
+Parser rules_use_cnt(rules_use_cnt_fsm,&rules_use_can,0,0,&Error_queue);
+rules_use_cnt.parse();
+
+
+@*1 Generate grammar's LR1 states.\fbreak
+The global lr states list |LR1_STATES| is added to
+dynamicly as each closure state/vector gens their states.
+|LR1_HEALTH| is the diagnostic of the parsed grammar.
+
+@*2 {\bf {Driver generating lr1 states}}.\fbreak
+Goes thru the lr state list looking for closure states to gen.
+Note: a closure state gens its transitive states.
+A part from the ``closure only'' state (start state), all other states contain
+2 contexts: transitive core items, and possibly added to closured items.
+As the list is read, it evaluates the possible state for gening by
+seeing if there are {\bf {closured}} items needing to be gened.
+There are 3 possible outcomes to this evaluation:\fbreak
+\ptindent{1) items not gened: goto of item is nil.}
+\ptindent{2) items completed due to right boundedness from a previous gen closure state / vector context.}
+\ptindent{3) partially gened items due to common prefix of a previous closure state/vector context.}
+Point 1 + 3 need gening. Point 1 is your regular generation context.
+Point 3 requires walking thru its right side symbols
+to where its goto state needs gening (nil).
+From there its gening proceeds as normal within its own closure state/vector context.
+\fbreak
+
+During each state closure part/vectors pass, lr kosherness is tested within
+each closure state/vector gening context.
+A non lr(1) verdict is returned immediately within
+the gening closure state/vector context.
+The balance of the closure state/vectors to gen are not completed.
+@<generate grammar's LR1 states@>=
+AST* start_rule_def_t = AST::get_1st_son(*rules_tree);
+state* gening_state = new state(start_rule_def_t);
+gen_context gening_context(0,-1);
+STATES_ITER_type si = LR1_STATES.begin();
+STATES_ITER_type sie = LR1_STATES.end();
+
+// list added to dynamicly as each gening context created
+for(;si!=sie;++si){
+ gening_state = *si;
+ gening_context.for_closure_state_ = gening_state;
+ gening_context.gen_vector_ = -1;
+lrclog << "lr state driver considered state: "
+<< gening_context.for_closure_state_->state_no_
+<< " for vector: "
+<< gening_context.gen_vector_
+<< endl;
+
+ LR1_HEALTH = gening_state->gen_transitive_states_for_closure_context(gening_context,*gening_state,*gening_state);
+ if(LR1_HEALTH==NOT_LR1_COMPATIBLE){
+ @<is the grammar unhealthy? yes report the details and exit@>;
+ }
+}
+//|@<print dump state@>;|
+@<commonize la sets@>;
+/* please put back at sign if u want to trace*/
+//|@<print dump state@>;|
+//|@<print dump common states@>;|
+@*3 Is the grammar unhealthy? yes report the details and exit.\fbreak
+@<is the grammar unhealthy? yes report the details and exit@>=
+ if(LR1_HEALTH == NOT_LR1_COMPATIBLE){
+ yacco2::lrclog << "===>Please check Grammar dump file: "
+ << normal_tracing.c_str() << " for Not LR1 details" << endl;
+ std::cout << "===>Please check Grammar dump file: "
+ << normal_tracing.c_str() << " for Not LR1 details" << endl;
+ yacco2::lrclog << "Not LR1 --- check state conflict list of state: "
+ << gening_state->state_no_ << " for details" << endl;
+ @<print dump state@>;
+ @<print dump common states@>;
+ return 1;
+ }
+
+@*3 Commonize LA Sets --- Combine common sets as a space saver.\fbreak
+Go thru the lr states looking for reduced subrules.
+Their lookahead sets have already been calculated so by set equality
+determine common la sets by reading thru the registry for
+its soul mate. This common reference to same sets minimizes space in the emitted lr state tables.
+The index number per set in the |COMMON_LA_SETS| registry will be used
+as part of each generated la set's name.
+This is why the found index number is deposited per reduced subrule.
+When the state tables get emitted, this index number + 1 is used in the gened lookahead's
+name as i prefer its name to be relative to 1.
+ @<commonize la sets@>=
+ COMMONIZE_LA_SETS();
+
+
+@** Overview of \O2's state generated components.\fbreak
+\O2 generates the components making up the automaton and the first set language for \O2{}Linker
+to compile.
+These files are the header definition of the grammar, the ``first set'' file for \O2{}Linker,
+and the implementations of the automata (fsm), it's symbols, and the fsm's states.
+
+Depending on the switches inputted, \O2 can generate the
+Terminal vocubulary defined for the grammar environment:
+the individual terminal classifications of
+errors, lr constants, raw characters, and Terminals.
+As a global reference to all defined terminals,
+an enumeration scheme is emitted.
+
+
diff --git a/web/yacco2/compiler/stbl/yacco2_stbl.w b/web/yacco2/compiler/stbl/yacco2_stbl.w
new file mode 100644
index 0000000000..89ceb72de7
--- /dev/null
+++ b/web/yacco2/compiler/stbl/yacco2_stbl.w
@@ -0,0 +1,860 @@
+@q% file: yacco2_sym_tbl.w@>
+@q% Copyright Dave Bone 1998 - 2015@>
+@q% /*@>
+@q% This Source Code Form is subject to the terms of the Mozilla Public@>
+@q% License, v. 2.0. If a copy of the MPL was not distributed with this@>
+@q% file, You can obtain one at http://mozilla.org/MPL/2.0/.@>
+@q% */@>
+@q% This file is part of YACC02 compiler/compiler project.@>
+
+\input "eplain"
+\input "supp-pdf"
+\input "/usr/local/yacco2/diagrams/o2mac.tex"
+%\tracingall=1
+%\tracingall=1
+%\tracingmacros=1
+%\tracingcommands=2
+@i "/usr/local/yacco2/license.w"
+\def\ptindent#1{\line{\hskip.5in{#1}\hfill}}
+\def\fbreak{\hfill\break}
+
+@** Summary of Yacco2 and Linker's Symbol Table.
+Basic hash table for Yacco2's symbols. It is also used by
+Yacco2's linker companion who deals in the terminal first sets of
+threads.
+
+Yacco2's ratatouille:\fbreak
+\ptindent{$\backslash$yacco2$\backslash$compiler$\backslash$stbl - NT symbol table directory}
+\ptindent{|yacco2stbl.w| - cweb generator file}
+\ptindent{|hash_table_size| - current space allocator}
+\ptindent{|yacco2_stbl.h| - header file}
+\ptindent{|yacco2_stbl.cpp| - implementation}
+\ptindent{|yacco2_stbl| - symbol table namespace}
+\ptindent{|yacco2_stbl::stbl| - global symbol table variable}
+\ptindent{|T_sym_report_card| - defined in Yacco2's terminal alphabet}
+
+Dependency files from other Yacco2 sub-systems:\fbreak
+\ptindent{|yacco2.h| - basic definitions used by Yacco2}
+\ptindent{|yacco2_err_symbols.h| - error definitions from Yacco2's grammar alphabet}
+\ptindent{|yacco2_terminals.h| - regular terminal definitions from Yacco2's grammar alphabet}
+
+Symbol table procedures:\fbreak
+\ptindent{|yacco2::add_sym_to_stbl|}
+\ptindent{|yacco2::find_sym_in_stbl|}
+\ptindent{|yacco2::get_sym_entry_by_sub|}
+\ptindent{|yacco2::test_program| --- see `how to run the test' section}
+
+Note: |yacco2_stbl.cpp| gets compiled with Yacco2 parse library's grammars and
+placed into the runtime library.
+
+@*2 Synopsis of table entries.\fbreak
+Is it a Forest or a tree?\fbreak
+As u the reader are probably IT types and so trees can have a different meaning,
+ the question can be rephrased: is it a group or an individual?
+The symbol table takes a group approach to symbols.
+What does this mean?
+Each specific symbol (tree) is classified as either
+a rule, terminal, keyword, or a thread thus pigeon holeing
+the entry into a forest.
+This generalization makes parsing the grammar
+easier.
+See |rule_in_stbl| and |T_in_stbl| defined in the terminal grammar
+as classified examples.
+
+The weakness in this 1 to 1 relationship is in
+error processing where the point of reference is not
+where the point of entry into the symbol table occured.
+To correct this weakness, the symbol table's entry has 2 parts:
+the symbol that created the definition
+and a cross reference list as referenced within the
+subrule's right-hand-side string of symbols.
+Each symbol in this xref list provides the source file coordinates
+for error processing purposes.
+The referenced symbol is entered in LILO order.
+
+@*2 Special note.\fbreak
+Scratch pad coordinates of |rule_in_stbl| and |T_in_stbl|\fbreak
+When the symbol table is accessed, the current token's coordinates
+overrides the found table entry's original birthings of
+|rule_in_stbl| or |T_in_stbl|.
+The other entries |th_in_stbl| or |kw_in_stbl| are similarly serviced.
+
+Using this returned generalization terminal with its scratch pad
+origins
+ allows the grammar writer to create other tokens like
+|refered_rule| or |refered_T| containing the current coordinates.
+There are 2 create contexts for a symbol table entry:
+at definition time for all terminals
+and sometimes rules, and referenced time for rules of a subrule
+definition. All symbols in a subrule are references but i
+relaxed the requirement that rules must be defined before use as in
+the formal definition of a grammar. The waiving of this formality
+allows Productions to forward reference to-be-defined rules.
+Of course, Yacco2 must post process the declarations of rule use against
+their definitions to report referenced but not defined rules within the Productions.
+
+
+@** Introduction to Yacco2's Symbol Table.
+This is Yacco2's family of symbol table routines.
+It uses the {\it Linear probing and insertion}
+hashing |Algorithm L| from {\it Vol. 3 Sorting and Searcing}
+P. 526 of {\it The Art of Computer Programming}
+by Donald E. Knuth.
+As the symbols from Yacco2 are variable in length,
+the |Hash procedure code| uses a scheme suggested by R. Sedgewick
+from his book Algorithms 2nd edition p. 233 to modulo per character.
+
+A grammar's symbols are the nonterminals and terminals.
+The terminals are constant
+across all grammars being defined as a thread or a stand-alone unit.
+Usually they are
+brought into the grammar by Yacco2's ``@@'' include file operator.
+Nonterminals (rules) are local to the grammar being defined
+ allowing for same name usuage across multiple grammars.
+The only globalness to a grammar's name is its namespace
+ and possibly its thread name.
+All grammar symbols are mutually exclusive to one another: there is no commonness
+across these enities. From a grammar's perspective, |Terminals| are classified into 4
+categories: errors, raw characters, lr constant symbols, and finally the regular terminals.
+It is their literal string that one uses throughout the grammar's productions which
+makes it global in scope.
+From a syntax-directed code perspective, these categories are emitted
+using their namespace qualifiers.
+This decision was made to lower global namespace pollution.
+Hence the syntax-directed c++ code must use their namespace qualifier.
+From a symbol table management point of view, symbol handling is very easy as
+a symbol scoping stack is not required as in the Pascal language.
+
+Using |cweb| allows me to converse with myself on various considerations which
+hopefully is not too verbous or symptoms of paranoia.
+An array of symbol entry records is used.
+Yes I know what is written about the merits of object oriented programming but...
+As a package all-inclusive-deal the class is safe --- no need to remember cleanup duties like
+ routines that are loosely coupled.
+But do I want to include all the other mechanisms
+required like the operator[] or use a type from the Standard Template Library (STL) like Vector?
+No I don't but I want a containment facility of all
+its loosely declared elements.
+So how to do it? Just wrap it in a namespace construct.
+Now the safe way is to not use a pointer mechanism requiring a destructor for cleanup but
+an array of symbol entry records
+which does not grow out the memory dynamically but
+takes the maximum size at startup time.
+No memory leakage can occur and no cleanup required.
+This requires a change to the symbol entry to indicate vacancy which
+had used the null pointer.
+The cost of table initialization should be done at the compiler/linker/startup time.
+Each occupied entry in the table records how
+the symbol has been used and declared with a pointer to the symbol's definition.
+
+As this is the oracle of
+Yacco2's symbol table management, I want it to be safe and fast. It is the safe part that becomes
+intriguing. There are many ways to handle errors:\fbreak
+\ptindent{1) abort}
+\ptindent{2) throw/catch an error using c++ constructs}
+\ptindent{3) return some form of status}
+
+Abort is a drastic last-resort measure.
+Flow control is shutdown with a message directed
+to the user.
+Throw/catch has merit but I'm not wanting to get into it for efficiency purposes.
+The degree of error processing for this family of routines is single level calls: not recursive.
+Typically point 3 is a singular entity: an integer.
+When things evolve, this strategy is too
+simplistic when more points of evidence need reporting.
+So, lets look at a report card approach which must be safe and efficient.
+When I went to school and teachers could write or would take the time to properly evaluate
+the student through comments, the take home bulletin had to be signed by the parent or a
+proxy...
+Now the report card allows multiple statuses to be marked up and returned
+to the caller. It becomes the caller's responsibility to check for irregularities and
+take appropriate action: not like the old days when an unsigned report card meant
+go back home until a signature acknowledges receipt.
+
+So how can efficiency be put into place?
+A globally defined variable accessed by the caller/called routines has no discipline.
+The caller and the called do their thing with the implicit understanding that each routine
+deposits and checks the global variable.
+It is this implicit coupling that makes
+it highly efficient in a one-to-one action/response narration.
+I do not like implicitness as it forces one to build up all
+these untold truths, constraints, pre-post conditions.
+By importing all components via parameters
+to the called routine removes misunderstanding or forgetfullness.
+
+Now how to make the report card approach efficient? Returning a result by use of
+a function call is the usual way of doing things.
+Established between the caller / called routines
+is the explicit relationship that the result is returned.
+Return-by-value depends on the optimization of the compiler regarding efficiency on
+``the copy of objects'' syndrome.
+Return-by-address thrashs the memory heap.
+Both methods leaves one open to not deal with the returned result.
+In fact the function can be called with the returned parameter being dropped:
+the returned parameter is not assigned to a caller's variable though the compiler
+ should shriek at you.
+This form of calling still
+leaves the potential of memory leaks and sloppy programming.
+Elimination of memory leaks can be programmed out but not the sloppy programming;
+you still need to deal with the report card's verdict.
+Well, 50\% improvement is not bad.
+
+So the only alternative is
+to pass the report card as a parameter: either by reference or by pointer.
+My past experience with threads and pass-by-reference have not been good.
+In fact, depending on the compiler used, the program just did not work consistently!
+Passing by address pointer, though it contains the potential of a bad pointer, has
+never failed me. So my leanings are towards the pointer approach.
+Therefore parameter passing makes the global variable
+a local scope issue for the called routine with its parametric pre-conditions forced onto
+the calling routine.
+This pro-con debate is now
+settled for my routines that are multi-dimensional in findings: even
+a singular dimension gives the mechanism to build out extensions
+using new axes for actions, errors, specific results and ...
+In my mind's eye, this concludes how I will continue developing code.
+The hard part is to maintain this discipline.
+
+October 2004 - grumblings from within.
+Optimism leads to re-trying. We'll have again a go of passing parameters by reference.
+I hope the compilers are more reliable this time in a
+multi-threaded environment than in the past.
+It certainly lowers constraint checks.
+Here goes.
+You'll get a post evaluation report if it's not successful.
+
+Now for the good stuff --- the report card.
+It should contain the following items:\fbreak
+\ptindent{1) status indicator --- okay or failure}
+\ptindent{2) action taken --- aborted,not fnd,fnd,inserted}
+\ptindent{3) $\uparrow$ error terminal when an error occured}
+\ptindent{4) $\uparrow$ symbol-table-entry if found or inserted}
+\ptindent{5) subscript value used}
+
+
+The report card is defined in Yacco2's grammar Terminal section
+that acts as a dictionary of terms.
+
+@*2 Namespace sections.
+@<bns@>=
+namespace yacco2_stbl{
+
+@
+@<ens@>=
+}// end of namspace |yacco2_stbl|
+@
+@<uns@>=
+using namespace yacco2_stbl;
+
+@ Yacco2's symbol table blueprint. Output of the code.
+@(yacco2_stbl.cpp@>=
+@<Include...@>;
+using namespace NS_yacco2_err_symbols;
+using namespace NS_yacco2_terminals;
+using namespace yacco2;
+@<Accrue...@>;
+
+
+
+
+@*2 Maintenance.\fbreak
+The following subsections explain what to do in various cases.
+
+@ How to compile the symbol table.
+@^How to compile the symbol table@>
+Originally the project uses Microsoft's Visual Studio c++. Now it's Unix compiled.
+The below notes are in a Microsoft context. U can easily substitute a Unix context.
+In project $\backslash$yacco2$\backslash$compiler$\backslash$grammars,
+the emitted code |yacco2_stbl.cpp| is compiled with
+the grammars used by Yacco2.
+
+@ How to print out |cweave| report.
+@^How to print |cweave| report@>
+
+Fire up the DOS batch command processor
+and set the default directory as follows:\fbreak
+cd $\backslash$yacco2$\backslash$compiler$\backslash$symbol table \fbreak
+
+To produce a PDF document, type in the following at the DOS PROMPT:\fbreak
+pdftex yacco2stbl \fbreak
+
+To produce a postscript document, for the visually impaired like my aging self due
+to the PDF styled greyed section numbers within the table of contents and index,
+type in the following at the DOS PROMPT:\fbreak
+tex yacco2stbl \fbreak
+dvips yacco2stbl \fbreak
+
+Use Ghostscript to print out the yacco2stbl.ps file and Adobe Reader for the \.pdf version.
+
+@*2 Salient Points established.
+@^Salient points @>
+
+Key points concluded:\fbreak
+\ptindent{1) Procedure calls only used. Results are returned thru a passed Report card parameter.}
+\ptindent{2) c++ native types used for efficiency with no memory leaks.}
+\ptindent{3) Namespace eliminates loosely defined entities spread across different spectrums.}
+\ptindent{4) Report card is the scratch pad of evolutionary results used throughout all
+the symbol table phrases.}
+
+@ How to expand the symbol table.
+@^How to expand the symbol table@>
+
+Defined as a cweb macro, |hash_table_size| is the size of the table
+expressed as a prime number.
+If you need to enlarge it, use a Google search on prime number and find
+the Java applelet and run it.
+Adjust this macro definition and re-generate the
+project symbol table in Visual Studio which creates a new
+ctangle |yacco2_stbl.cpp| c++ file.
+This file then needs to be recompiled.
+See |How to compile| @^How to compile the symbol table@> above.
+
+@*2 How to run the test.
+@^How to run the test@>
+
+Create the following DOS batch file:\fbreak
+rem file: t1.bat\fbreak
+@@ECHO OFF\fbreak
+rem testdriver batch harness\fbreak
+rem first parm indicated the option to test\fbreak
+rem 1 - cmd line only\fbreak
+rem 2 - cmd line then P1 lex\fbreak
+rem 3 - cmd line then P3 syntax\fbreak
+rem 4 - runs the symbol table test\fbreak
+echo on\fbreak
+cd $\backslash$yacco2$\backslash$testdriver$\backslash$debug\fbreak
+rem echo Test out symbol table\fbreak
+testdriver 4 $\backslash$yacco2$\backslash$compiler
+$\backslash$grammars$\backslash$fsm\_class\_phrase6.dat\fbreak
+
+Now double click on the batch file created ``t1.bat''.
+NT will launch the batch process and execute the
+``testdriver'' with its passed parameters.
+The appropriate tests are displayed on the
+console of the batch process.
+
+The test run should produce the following approximate facsimile:\fbreak
+C:$\backslash$yacco2$\backslash$testdriver$>$rem file: t1.bat\fbreak
+C:$\backslash$yacco2$\backslash$testdriver$>$
+rem note: remed out lines that have been tested okay\fbreak
+C:$\backslash$yacco2$\backslash$testdriver$>$
+cd $\backslash$yacco2$\backslash$testdriver$\backslash$debug\fbreak
+C:$\backslash$yacco2$\backslash$testdriver$\backslash$Debug$>$
+rem echo test out symbol table\fbreak
+C:$\backslash$yacco2$\backslash$testdriver$\backslash$Debug$>$
+testdriver 4 /yacco2/compiler/grammars/fsm\_class\_phrase6.dat\fbreak
+Prime number used: 20011\fbreak
+Test zero len key\fbreak
+zero\_len\_name: zero-len-symbol\fbreak
+1st entry test\fbreak
+duplicate entry test\fbreak
+Error duplicate entry: dup-entry-in-sym-table\fbreak
+Same key address test\fbreak
+Error same key address: same-address-as-key-in-symbol-table\fbreak
+Fill up balance of table\fbreak
+Overflow test\fbreak
+Error overflow: sym-table-full\fbreak
+Find symbol test\fbreak
+Not found test\fbreak
+Get symbol by subscript test\fbreak
+Error subscript out of range: -1 subscript-out-of-range\fbreak
+Error not found if this message appears more than once: 17482\fbreak
+Remember 1 spot is left vacant in the algorithm!\fbreak
+Error subscript out of range: 20011 subscript-out-of-range\fbreak
+Clean up\fbreak
+enter any key then press Enter: x\fbreak
+
+@*2 Terminology.
+@^Terminology@>
+
+{\bf Symbol's literal} @^Symbol's literal@>
+--- a variable length array of characters delimited by the null character ``00''.
+In c++, it's a |const char*| type. It is the value used to find a
+symbol in Yacco2's symbol table expressed by the string of characters bracketed
+by the double quotes: example is |"#user-declaration"|.
+Go see Yacco2's terminal definitions.
+
+@*2 Facts.
+@^Facts@>
+
+Forget the tabloids and graffitti.
+Here is the gospel truth:\fbreak
+\ptindent{1) |1..prime number| is the total spots in the symbol table}
+\ptindent{2) algorithm leaves 1 spot vacant.}
+\ptindent{3) |prime number-1| is the number of spots for insertion.}
+\ptindent{4) |0..prime number-1| subscript range due to modulo calculation}
+\ptindent{5) Grammar symbols fall into lrk, err, raw character, or terminals}
+\ptindent{6) Each terminal group has its own namespace}
+The vacant spot only surfaces when the table is full
+and is pseudo-random in nature; this is due to value of the keys entered
+and where the hash function @^hash function@> positions them.
+
+@*2 Anatomy of symbol table.
+\fbreak
+\fbreak
+\convertMPtoPDF{"/usr/local/yacco2/diagrams/yacco2_stbl.1"}{1}{1}
+\fbreak
+\fbreak
+The above figure shows the symbol table (stbl)
+as an array of fixed size records of table$\_$entry having
+one entry in it. I use a quasi Pascal definition to describe the stbl
+cuz its more intuitively descriptive than its ``c++'' cousin.
+A hash function on the symbol's literal name is used where
+it stores the key in its own character pool (char$\_$pool).
+Access to the symbol table is thru the hash function or
+by subscript.
+\fbreak
+\fbreak
+Various table entries:\fbreak
+\fbreak
+\convertMPtoPDF{"/usr/local/yacco2/diagrams/yacco2_stbl.2"}{1}{1}
+
+
+@*2 Create header file for symbol table environment.\fbreak
+Please note the appropriate include files that have been generated by other Yacco2's |cweb|
+sub-systems.
+@(yacco2_stbl.h@>=
+@h
+#ifndef yacco2_stbl_
+#define yacco2_stbl_ 0
+#include "yacco2.h"
+#include "yacco2_err_symbols.h"
+#include "yacco2_terminals.h"
+#include <cstring>
+namespace yacco2_stbl{
+using namespace NS_yacco2_terminals;
+using namespace yacco2;
+ extern table_entry stbl[hash_table_size];
+ void hash_fnct(T_sym_tbl_report_card& Report,const char& Key);
+ extern void add_sym_to_stbl@/
+ (T_sym_tbl_report_card& Report
+ ,const char& Name@/
+ ,yacco2::CAbs_lr1_sym& Sym@/
+ ,table_entry::defined_or_used_typ Why@/
+ ,table_entry::entry_typ What);
+ extern void find_sym_in_stbl(T_sym_tbl_report_card& Report,const char& Name);
+ extern void test_program();
+ extern void get_sym_entry_by_sub(T_sym_tbl_report_card& Report,int Sub);
+ extern char char_pool_[char_pool_size];
+ extern int char_pool_idx_;
+};
+#endif
+
+@ Accrue source code.
+@<Accrue source code@>=
+ table_entry yacco2_stbl::stbl[hash_table_size] = {table_entry()};@/
+ char yacco2_stbl::char_pool_[char_pool_size] = {};@/
+ int yacco2_stbl::char_pool_idx_(0);@/
+
+@ @<Hashing@>=
+yacco2_stbl::hash_fnct(Report,Name);
+@ Include header file.
+@<Include header file@>=
+#include "yacco2_stbl.h"
+
+@** Notes regarding hashing.\fbreak
+@^hash function@>
+Due to the variable length of a symbol's name, the hash function
+goes across the character list
+whereby each character's value is added to
+the previous calculated hashed value shifted by some amount
+ and then divided by the |hash_table_size| to get the remainder.
+Moduloing per character prevents a potential overflow.
+
+The reason for not making the hash function external to the world
+ is that its
+output is not universal.
+The calculated value is just the starting seed
+for the |add_sym_to_stbl| to find a vacant spot.
+Hence it is locally accessible by |yacco2_stbl|'s namespace
+procedures.
+
+Constraints:\fbreak
+ \ptindent{ip1: report card to contain the result}
+ \ptindent{ip2: symbol's literal}
+
+Errors:\fbreak
+\ptindent{1) Zero len symbol}
+A potential error could occur if the symbol literal is
+not delimited by a ``00'' the null character.
+This could lead to an address violation.
+As Yacco2 creates this using
+the c++ string facility, this type of error can only
+be caused by the c++ compiler.
+Originally I had programmed an artificial maximun len of
+512 characters but decided that this was overkill.
+
+@d hash_table_size 20011 /* prime of course */
+@d hash_table_full hash_table_size - 1
+@d str_delimiter '\x00'
+@d char_pool_size 100*1024
+@*2 The hash procedure code: |hash_fnct|.
+The length of key includes the delimiter. This allows the complete key to be moved
+into the character pool.
+@<Accrue...@>+=
+void yacco2_stbl::hash_fnct(T_sym_tbl_report_card& Report,const char& Key)
+{
+ Report.pos_ = -1;
+ Report.key_len_ = strlen(&Key);
+ if(Report.key_len_ == 0) {
+ Report.status_ = T_sym_tbl_report_card::failure;
+ Report.err_entry_ = new Err_zero_len_sym;
+ return;
+ }
+ Report.key_len_ += 1;
+ const char* k = &Key;
+ Report.pos_ = *k++;
+ for(;*k != 0;++k) { // walk the plank characters
+ Report.pos_ = ((Report.pos_ *257)+*k) % hash_table_size;
+ }
+ Report.status_ = T_sym_tbl_report_card::okay;
+}
+
+@*2 Add symbol to table routine: |add_sym_to_stbl|.\fbreak
+|Algorithm L|. Watch for the subtlety of the algorithm. It leaves one spot vacant
+so as to not check upfront on every entry whether the table is full.
+This check is done when the item is to be inserted which can produce a table overflow error.
+I was caught by this due to my assumptions going into the reading of the
+algorithm as opposed to
+the remarks on L4 which refines the assumptions to stop the looping due
+to the one spot always left empty.
+Again I prefer the upfront statement of expectations but this was done for teaching purposes.
+As C is not restriced to label length as in MIX, I use the label name to indicate intent
+rather than MIX's letter-number combination.
+The ``leave one spot vacant'' optimization benefits finding an entry.
+
+Constraints:\fbreak
+ \ptindent{ip1: report card to contain the result}
+ \ptindent{ip2: symbol's literal}
+ \ptindent{ip3: symbol object}
+ \ptindent{ip4: reason for entry --- defined or used}
+ \ptindent{ip5: what type of symbol --- terminal or rule}
+
+Errors:\fbreak
+\ptindent{1) duplicate entry}
+\ptindent{3) hash function errors}
+\ptindent{4) same key address between new symbol and item in symbol table}
+
+@<Accrue...@>+=
+void yacco2_stbl::add_sym_to_stbl@/
+ (T_sym_tbl_report_card& Report@/
+ ,const char& Name@/
+ ,yacco2::CAbs_lr1_sym& Sym@/
+ ,table_entry::defined_or_used_typ Why@/
+ ,table_entry::entry_typ What) @/
+{
+ static int guest_cnt(0);
+ hash: @<Hashing@>;
+ @<Handle hash errors@>;
+ compare: @<Compare@>;
+ advance: @<Advance to next@>;
+ insert: @<Insert@>;
+}
+
+
+@ Check the report card for appropriate behavior.
+@<Handle hash errors@>=
+if(Report.status_ == T_sym_tbl_report_card::failure) return;@/
+if(Report.status_ == T_sym_tbl_report_card::fatal) return;@/
+
+
+@ Find a free spot for the symbol.
+@<Compare@>=
+table_entry* te = &yacco2_stbl::stbl[Report.pos_];
+int r(0);
+if(te->vacant_ == true) goto insert;
+
+r = strcmp(te->key_,&Name);
+if(r == 0){
+ Report.status_ = T_sym_tbl_report_card::failure;
+ Report.err_entry_ = new Err_dup_entry_in_sym_table;
+ Report.tbl_entry_ = te;
+ Report.key_len_ = 0;
+ return;
+}
+
+@ Linear probing to find spot.
+@<Advance to next@>=
+--Report.pos_;
+if(Report.pos_ < 0) Report.pos_ += hash_table_size;
+goto compare;
+
+@ Insert the symbol into the table.
+@<Insert@>=
+if(guest_cnt == hash_table_full){@/
+ Report.status_ = T_sym_tbl_report_card::failure;
+ Report.err_entry_ = new Err_sym_tbl_full;
+ return;
+}
+if(char_pool_idx_ + Report.key_len_ > char_pool_size){@/
+ Report.status_ = T_sym_tbl_report_card::failure;
+ Report.err_entry_ = new Err_sym_tbl_char_pool_full;
+ return;
+}
+++guest_cnt;
+te->pos_ = Report.pos_;
+te->vacant_ = false;
+char* key_name = &char_pool_[char_pool_idx_];
+strncpy(key_name,&Name,Report.key_len_);
+te->key_ = key_name;
+te->key_len_ = Report.key_len_;
+char_pool_idx_+=Report.key_len_;
+te->symbol_ = &Sym;
+te->type_ = What;
+if(Why == table_entry::used)
+ te->used_ = true;
+else
+ te->defined_ = true;
+Report.status_ = T_sym_tbl_report_card::okay;
+Report.action_ = T_sym_tbl_report_card::inserted;
+Report.tbl_entry_ = te;
+
+
+
+@*2 Find symbol in table routine: |find_sym_in_stbl|.\fbreak
+This routine's only purpose is to verification
+whether a symbol exists in the symbol table.
+It allows the programmer to be proactive rather than reactive to a
+symbol table problem. How so? Reactive would be when
+ a duplicate error occured when adding a symbol to the table.
+As an error has been posted to the report card, now the programmer
+has to deal with this situation requiring cleanup if
+corrective action is taken that is
+different to the posted error.
+If the error is acceptable, then one can piggy back off the posted error.
+Having options is what it's all about.
+
+Constraints:\fbreak
+ \ptindent{ip1: report card to contain the result}
+ \ptindent{ip2: symbol's literal}
+
+Errors:\fbreak
+\ptindent{1) hash function errors}
+
+@<Accrue...@>+=
+void yacco2_stbl::find_sym_in_stbl(T_sym_tbl_report_card& Report,const char& Name)
+{
+ hash: @<Hashing@>;
+ @<Handle hash errors@>;
+ compare: @<Find Compare@>;
+ advance: @<Find Advance to next@>;
+}
+
+@ Find a free spot for the symbol.
+@<Find Compare@>+=
+Report.tbl_entry_ = &yacco2_stbl::stbl[Report.pos_];
+table_entry* te = Report.tbl_entry_;
+if(te->vacant_ == true) {
+ Report.status_ = T_sym_tbl_report_card::okay;
+ Report.action_ = T_sym_tbl_report_card::not_fnd;
+ return;
+}
+int r = strcmp(te->key_,&Name);
+if(r == 0){
+ Report.status_ = T_sym_tbl_report_card::okay;
+ Report.action_ = T_sym_tbl_report_card::fnd;
+ return;
+}
+
+@ Find Advance to next. Linear probing to find spot.
+@<Find Advance to next@>=
+--Report.pos_;
+if(Report.pos_<0) Report.pos_ += hash_table_size;
+goto compare;
+
+@*2 Get table entry by subscript: |get_sym_entry_by_sub|.
+
+Constraints:\fbreak
+ \ptindent{ip1: report card to contain the result}
+ \ptindent{ip2: subscript where range 0..|hash_table_size| - 1}
+
+Errors:\fbreak
+\ptindent{1) subscript out of range}
+
+@<Accrue...@>+=
+void yacco2_stbl::get_sym_entry_by_sub(T_sym_tbl_report_card& Report,int Sub)
+{
+ Report.pos_ = Sub;
+ if((Sub < 0) || (Sub > hash_table_full)){@/
+ Report.status_ = T_sym_tbl_report_card::failure;
+ Report.err_entry_ = new Err_subscript_out_of_range;
+ return;
+ }
+ Report.tbl_entry_ = &yacco2_stbl::stbl[Sub];
+ Report.status_ = T_sym_tbl_report_card::okay;
+ if(Report.tbl_entry_->vacant_ == false)
+ Report.action_ = T_sym_tbl_report_card::fnd;
+ else
+ Report.action_ = T_sym_tbl_report_card::not_fnd;
+}
+
+
+@** Test program: |test_program|.
+
+A generator manufactures all the symbol literals up to table full.
+The literate routines below describe well each type of test
+ with their appropriate range of errors.
+
+
+
+@<Accrue...@>+=
+void yacco2_stbl::test_program()@/
+{
+@<uns@>;
+ @<Initial var...@>;
+ @<Test 1st entry, duplicate...@>;
+ @<Fill up balance...@>;
+ @<Test table overflow error@>;
+ @<Test find symbol in table@>;
+ @<Test get entry by subscript@>;
+ @<Cleanup@>;
+}
+
+@ Initial variables for test.
+@<Initial variables@>=
+ const char* zero_len_name = "";
+ T_eol* a_good_sym = new T_eol;
+ int cnt(0);
+ T_sym_tbl_report_card report_card;
+ std::cout << "Prime number used: " << hash_table_size << std::endl;
+ std::cout << "Test zero len key" << std::endl;
+ add_sym_to_stbl(report_card,*zero_len_name,*a_good_sym,table_entry::used,table_entry::terminal);
+ if(report_card.status_ == T_sym_tbl_report_card::failure){
+ std::cout << "Error zero_len_name: " << report_card.err_entry_->id__ << std::endl;
+ delete report_card.err_entry_;
+ }else{
+ std::cout << "Should have been a zero_len_name error " << std::endl;
+ }
+
+@ Test 1st entry, duplicate, and same key address.
+@<Test 1st entry, duplicate, and same key address@>=
+ char buf[256];
+ std::string* sbuf[hash_table_size];// |sbuf[0]| symbolic vacant spot
+ sbuf[1] = new string("1");
+ const char* f1st_dup = "1";
+ std::cout << "1st entry test" << std::endl;
+ add_sym_to_stbl(report_card,*sbuf[1]->c_str(),*a_good_sym,table_entry::defed,table_entry::rule);
+ if(report_card.status_ == T_sym_tbl_report_card::failure){
+ std::cout << "Error first entry failed: " << report_card.err_entry_->id__ << std::endl;
+ delete report_card.err_entry_;
+ }
+
+ std::cout << "duplicate entry test" << std::endl;
+ add_sym_to_stbl(report_card,*f1st_dup,*a_good_sym,table_entry::defed,table_entry::rule);
+ if(report_card.status_ == T_sym_tbl_report_card::failure){
+ std::cout << "Error duplicate entry: " << report_card.err_entry_->id__ << std::endl;
+ delete report_card.err_entry_;
+ }else{
+ std::cout << "Should have been a duplicate entry error " << std::endl;
+ }
+
+ cout << "Same key address test " << endl;
+ add_sym_to_stbl(report_card,*sbuf[1]->c_str(),*a_good_sym,table_entry::defed,table_entry::rule);
+ if(report_card.status_ == T_sym_tbl_report_card::failure){
+ std::cout << "Error same key address: " << report_card.err_entry_->id__ << std::endl;
+ delete report_card.err_entry_;
+ }else{
+ std::cout << "Should have been a same key address error " << std::endl;
+ }
+
+@ Fill up balance of table.
+@<Fill up balance of table@>=
+ const char* numeric_key = "%i";
+ std::cout << "Fill up balance of table" << std::endl;
+ for(cnt=2;cnt <= hash_table_full;++cnt){
+ sprintf(buf,numeric_key,cnt);
+ sbuf[cnt] = new string(buf);
+ add_sym_to_stbl(report_card,*sbuf[cnt]->c_str()
+ ,*a_good_sym,table_entry::defed,table_entry::rule);
+ if(report_card.status_ == T_sym_tbl_report_card::failure){
+ std::cout << "Error entry failed: " << cnt << " "
+ << report_card.err_entry_->id__ << std::endl;
+ delete report_card.err_entry_;
+ }
+ }
+
+@ Test table overflow error.
+@<Test table overflow error@>=
+ const char* overflow_key = "overflow";
+ std::cout << "Overflow test" << std::endl;
+ add_sym_to_stbl(report_card,*overflow_key,*a_good_sym,table_entry::defed,table_entry::rule);
+ if(report_card.status_ == T_sym_tbl_report_card::failure){
+ std::cout << "Error overflow: " << report_card.err_entry_->id__ << std::endl;
+ delete report_card.err_entry_;
+ }else{
+ std::cout << "Should be overflow error" << std::endl;
+ }
+
+@ Test find symbol in table.
+It walks all the keys just entered whose range is 1..|hash_table_full|.
+The last test is ``not found'' on the overflow key.
+@<Test find symbol in table@>=
+ std::cout << "Find symbol test" << std::endl;
+ for(cnt=1;cnt <= hash_table_full;++cnt){
+ find_sym_in_stbl(report_card,*sbuf[cnt]->c_str());
+ if(report_card.status_ == T_sym_tbl_report_card::failure){
+ std::cout << "Error Should have been found: " << cnt
+ << " " << report_card.err_entry_->id__ << std::endl;
+ delete report_card.err_entry_;
+ }else{
+ if(report_card.action_ == T_sym_tbl_report_card::not_fnd){
+ std::cout << "Error Action should have been found: " << cnt << std::endl;
+ }
+ }
+ }
+ std::cout << "Not found test" << std::endl;
+ find_sym_in_stbl(report_card,*overflow_key);
+ if(report_card.status_ == T_sym_tbl_report_card::failure){
+ std::cout << "Should not be an error: " << cnt
+ << " " << report_card.err_entry_->id__ << std::endl;
+ delete report_card.err_entry_;
+ }else{
+ if(report_card.action_ == T_sym_tbl_report_card::fnd){
+ std::cout << "Error should be not found: " << std::endl;
+ }
+ }
+
+@ Test get entry by subscript.
+Walk thru -1..|hash_table_size|. This should produce 2 out-of-bound errors:
+one at each end of the spectrum traveled --- -1 and |hash_table_full|.
+The range 0..|hash_table_full| should have all spots occupied except 1
+vacant spot as explained in the @^Facts@> Facts section.
+@<Test get entry by subscript@>=
+ std::cout << "get symbol by subscript test" << std::endl;
+ for(cnt=-1;cnt <= hash_table_size;++cnt){
+ get_sym_entry_by_sub(report_card,cnt);
+ if(report_card.status_ == T_sym_tbl_report_card::failure){
+ std::cout << "Error subscript out of range: "
+ << cnt << " " << report_card.err_entry_->id__ << std::endl;
+ delete report_card.err_entry_;
+ }else{
+ if(report_card.action_ == T_sym_tbl_report_card::not_fnd){
+ std::cout << "Error not found if this message appears more than once: "
+ << cnt << std::endl;
+ std::cout << "Remember 1 spot is left vacant in the algorithm!" << std::endl;
+ }
+ }
+ }
+
+@ Cleanup.
+@<Cleanup@>=
+ std::cout << "Clean up" << std::endl;
+ delete a_good_sym;
+ for(cnt=1;cnt <= hash_table_full;++cnt){
+ delete sbuf[cnt];
+ }
+
+@* Notes: bric-a-brac.
+@ Remove key address dependency and copy key to a global |char_pool_| area.\fbreak
+Originally I used the passed key's address also as storage and
+guarded against the same key address passed by an error.
+Now what if one drains its info from cin into a common storage area?
+So I am more robust but with more overhead.
+
+The symbol table can now be used elsewhere. The |CAbs_lr1_sym| value item would
+be changed to some generic or specific object. Possibly |void*| with type casting
+or adjusted to the local requirements.
+\fbreak
+Improvement: 8 Mar. 2005
+
+@* Index. \ No newline at end of file