diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /web/yacco2/diagrams |
Initial commit
Diffstat (limited to 'web/yacco2/diagrams')
62 files changed, 8854 insertions, 0 deletions
diff --git a/web/yacco2/diagrams/1test.txt b/web/yacco2/diagrams/1test.txt new file mode 100644 index 0000000000..6d57ae2378 --- /dev/null +++ b/web/yacco2/diagrams/1test.txt @@ -0,0 +1,33 @@ +/* FILE: 1test.lex + dates: 17 Apr 2001 + Purpose: see why merge does not work +*/ +fsm +(fsm-id "test.lex",fsm-filename test,fsm-namespace NS_test +,fsm-class Cpas_keyword +,fsm-version "1.0",fsm-date "17 Apr 2001",fsm-debug "true" +,fsm-comments "Merge proplempascal Keyword recognizer") +parallel-parser +( + parallel-thread-function + TH_test + *** + parallel-la-boundary + eolr + *** +) +@"/pascalxlator/pas_include_files.T" +rules{ +Rtest AD AB(){ + -> Rtest_indiv +} + +Rtest_indiv AD AB(){ + -> Ra Rc + -> Rr Ra Rm + -> RE Ra Rt +} + +Ra AD AB(){-> "a" -> "A"} Rc AD AB(){-> "c" } Rr AD AB(){-> "r" } +RE AD AB(){-> "e" } Rt AD AB(){-> "t" } Rm AD AB(){-> "m" } +}// end of rules
\ No newline at end of file diff --git a/web/yacco2/diagrams/TS_la1.mp b/web/yacco2/diagrams/TS_la1.mp new file mode 100644 index 0000000000..0b03dfa6fb --- /dev/null +++ b/web/yacco2/diagrams/TS_la1.mp @@ -0,0 +1,60 @@ +% file: TS_la1.mp - grammar railroad diagrams for mpost program + +% date: Wed Nov 08 16:30:09 2006 +input "/yacco2/library/o2diag.mp" +numeric no_of_rules,Box_solid,Box_dotted,Circle_solid,Circle_dotted; +Box_solid:=1;Box_dotted:=2;Circle_solid:=3;Circle_dotted:=4; +string rule_names[].literal; +string rule_names[].vname; +numeric rule_s_no_rhs[]; +string rhs_elems[][][].literal; +string rhs_elems[][][].vname; +numeric rhs_elems[][][].Drw_how; +numeric rule_s_subrule_no_elems[][]; +no_of_rules := 2; +rule_names[1].literal := "Reol";rule_names[1].vname := "Reol"; +rule_s_no_rhs[1] := 1; +rule_s_subrule_no_elems[1][1]:= 1; +rhs_elems[1][1][1].literal := "Rdelimiters"; +rhs_elems[1][1][1].Drw_how := Box_solid; +rhs_elems[1][1][1].vname := "aaaaaa"; +rule_names[2].literal := "Rdelimiters";rule_names[2].vname := "Rdelimiters"; +rule_s_no_rhs[2] := 3; +rule_s_subrule_no_elems[2][1]:= 1; +rhs_elems[2][1][1].literal := "x0a"; +rhs_elems[2][1][1].Drw_how := Circle_solid; +rhs_elems[2][1][1].vname := "abaaaa"; +rule_s_subrule_no_elems[2][2]:= 2; +rhs_elems[2][2][1].literal := "x0d"; +rhs_elems[2][2][1].Drw_how := Circle_solid; +rhs_elems[2][2][1].vname := "ababaa"; +rhs_elems[2][2][2].literal := "|.|"; +rhs_elems[2][2][2].Drw_how := Circle_solid; +rhs_elems[2][2][2].vname := "ababab"; +rule_s_subrule_no_elems[2][3]:= 2; +rhs_elems[2][3][1].literal := "x0d"; +rhs_elems[2][3][1].Drw_how := Circle_solid; +rhs_elems[2][3][1].vname := "abacaa"; +rhs_elems[2][3][2].literal := "x0a"; +rhs_elems[2][3][2].Drw_how := Circle_solid; +rhs_elems[2][3][2].vname := "abacab"; +init_variables; +beginfig(1); + drw_rule(1); +endfig; +beginfig(2); + drw_rule_a_rhs(1,1); +endfig; +beginfig(3); + drw_rule(2); +endfig; +beginfig(4); + drw_rule_a_rhs(2,1); +endfig; +beginfig(5); + drw_rule_a_rhs(2,2); +endfig; +beginfig(6); + drw_rule_a_rhs(2,3); +endfig; +end; diff --git a/web/yacco2/diagrams/TS_la2.mp b/web/yacco2/diagrams/TS_la2.mp new file mode 100644 index 0000000000..a864b50af7 --- /dev/null +++ b/web/yacco2/diagrams/TS_la2.mp @@ -0,0 +1,60 @@ +% file: TS_la2.mp - grammar railroad diagrams for mpost program + +% date: Wed Nov 08 16:30:19 2006 +input "/yacco2/library/o2diag.mp" +numeric no_of_rules,Box_solid,Box_dotted,Circle_solid,Circle_dotted; +Box_solid:=1;Box_dotted:=2;Circle_solid:=3;Circle_dotted:=4; +string rule_names[].literal; +string rule_names[].vname; +numeric rule_s_no_rhs[]; +string rhs_elems[][][].literal; +string rhs_elems[][][].vname; +numeric rhs_elems[][][].Drw_how; +numeric rule_s_subrule_no_elems[][]; +no_of_rules := 2; +rule_names[1].literal := "Reol";rule_names[1].vname := "Reol"; +rule_s_no_rhs[1] := 1; +rule_s_subrule_no_elems[1][1]:= 1; +rhs_elems[1][1][1].literal := "Rdelimiters"; +rhs_elems[1][1][1].Drw_how := Box_solid; +rhs_elems[1][1][1].vname := "aaaaaa"; +rule_names[2].literal := "Rdelimiters";rule_names[2].vname := "Rdelimiters"; +rule_s_no_rhs[2] := 3; +rule_s_subrule_no_elems[2][1]:= 1; +rhs_elems[2][1][1].literal := "x0a"; +rhs_elems[2][1][1].Drw_how := Circle_solid; +rhs_elems[2][1][1].vname := "abaaaa"; +rule_s_subrule_no_elems[2][2]:= 2; +rhs_elems[2][2][1].literal := "x0d"; +rhs_elems[2][2][1].Drw_how := Circle_solid; +rhs_elems[2][2][1].vname := "ababaa"; +rhs_elems[2][2][2].literal := "|.|"; +rhs_elems[2][2][2].Drw_how := Circle_solid; +rhs_elems[2][2][2].vname := "ababab"; +rule_s_subrule_no_elems[2][3]:= 2; +rhs_elems[2][3][1].literal := "x0d"; +rhs_elems[2][3][1].Drw_how := Circle_solid; +rhs_elems[2][3][1].vname := "abacaa"; +rhs_elems[2][3][2].literal := "x0a"; +rhs_elems[2][3][2].Drw_how := Circle_solid; +rhs_elems[2][3][2].vname := "abacab"; +init_variables; +beginfig(1); + drw_rule(1); +endfig; +beginfig(2); + drw_rule_a_rhs(1,1); +endfig; +beginfig(3); + drw_rule(2); +endfig; +beginfig(4); + drw_rule_a_rhs(2,1); +endfig; +beginfig(5); + drw_rule_a_rhs(2,2); +endfig; +beginfig(6); + drw_rule_a_rhs(2,3); +endfig; +end; diff --git a/web/yacco2/diagrams/TextFile1.txt b/web/yacco2/diagrams/TextFile1.txt new file mode 100644 index 0000000000..d901745014 --- /dev/null +++ b/web/yacco2/diagrams/TextFile1.txt @@ -0,0 +1,690 @@ +C:\yacco2\compiler\grammars\eol.lex(18): *** +C:\yacco2\compiler\grammars\eol.lex(21): *** +C:\yacco2\compiler\grammars\eol.lex(36): *** +C:\yacco2\compiler\grammars\yacco2_err_symbols.lex(30): *** +C:\yacco2\compiler\grammars\yacco2_err_symbols.lex(36): *** +C:\yacco2\compiler\grammars\yacco2_err_symbols.lex(50): *** +C:\yacco2\compiler\grammars\yacco2_err_symbols.lex(56): *** +C:\yacco2\compiler\grammars\yacco2_err_symbols.lex(76): *** +C:\yacco2\compiler\grammars\yacco2_err_symbols.lex(79): *** +C:\yacco2\compiler\grammars\yacco2_err_symbols.lex(86): *** +C:\yacco2\compiler\grammars\yacco2_err_symbols.lex(96): *** +C:\yacco2\compiler\grammars\yacco2_err_symbols.lex(103): *** +C:\yacco2\compiler\grammars\yacco2_T_enumeration.lex(28): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(27): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(45): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(52): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(62): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(69): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(81): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(84): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(92): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(104): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(107): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(115): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(126): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(133): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(144): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(151): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(162): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(168): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(179): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(185): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(197): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(203): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(218): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(233): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(244): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(251): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(262): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(268): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(280): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(288): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(302): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(309): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(312): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(323): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(330): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(333): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(344): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(351): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(354): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(360):"#***" (sym-class T_eocode) +C:\yacco2\compiler\grammars\yacco2_terminals.lex(375): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(386): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(398): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(405): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(416): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(423): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(426): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(438): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(445): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(458): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(465): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(468): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(488): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(495): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(498): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(514): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(521): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(524): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(535): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(542): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(545): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(564): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(571): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(574): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(588): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(595): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(607): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(614): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(626): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(633): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(645): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(652): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(664): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(671): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(683): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(690): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(702): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(709): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(721): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(728): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(740): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(747): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(759): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(766): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(778): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(785): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(797): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(804): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(816): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(823): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(835): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(842): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(865): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(872): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(878): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(889): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(895): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(913): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(952): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(956): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(989): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1022): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1032): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1045): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1072): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1075): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1096): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1114): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1120): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1138): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1155): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1160): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1201): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1264): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1267): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1284): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1297): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1312): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1322): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1349): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1410): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1417): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1438): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1477): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1482): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1506): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1555): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1561): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1582): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1621): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1626): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1640): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1675): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1678): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1692): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1727): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1730): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1767): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1816): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1821): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1836): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1870): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1873): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1894): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1948): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1952): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1967): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1996): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(1999): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(2011): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(2021): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(2033): *** +C:\yacco2\compiler\grammars\yacco2_terminals.lex(2043): *** +C:\yacco2\library\grammars\yacco2_characters.lex(23): *** +C:\yacco2\library\grammars\yacco2_characters.lex(27): *** +C:\yacco2\library\grammars\yacco2_characters.lex(34): *** +C:\yacco2\library\grammars\yacco2_characters.lex(38): *** +C:\yacco2\library\grammars\yacco2_characters.lex(45): *** +C:\yacco2\library\grammars\yacco2_characters.lex(49): *** +C:\yacco2\library\grammars\yacco2_characters.lex(55): *** +C:\yacco2\library\grammars\yacco2_characters.lex(59): *** +C:\yacco2\library\grammars\yacco2_characters.lex(66): *** +C:\yacco2\library\grammars\yacco2_characters.lex(70): *** +C:\yacco2\library\grammars\yacco2_characters.lex(77): *** +C:\yacco2\library\grammars\yacco2_characters.lex(81): *** +C:\yacco2\library\grammars\yacco2_characters.lex(88): *** +C:\yacco2\library\grammars\yacco2_characters.lex(92): *** +C:\yacco2\library\grammars\yacco2_characters.lex(99): *** +C:\yacco2\library\grammars\yacco2_characters.lex(103): *** +C:\yacco2\library\grammars\yacco2_characters.lex(110): *** +C:\yacco2\library\grammars\yacco2_characters.lex(114): *** +C:\yacco2\library\grammars\yacco2_characters.lex(121): *** +C:\yacco2\library\grammars\yacco2_characters.lex(125): *** +C:\yacco2\library\grammars\yacco2_characters.lex(132): *** +C:\yacco2\library\grammars\yacco2_characters.lex(136): *** +C:\yacco2\library\grammars\yacco2_characters.lex(143): *** +C:\yacco2\library\grammars\yacco2_characters.lex(147): *** +C:\yacco2\library\grammars\yacco2_characters.lex(154): *** +C:\yacco2\library\grammars\yacco2_characters.lex(158): *** +C:\yacco2\library\grammars\yacco2_characters.lex(165): *** +C:\yacco2\library\grammars\yacco2_characters.lex(169): *** +C:\yacco2\library\grammars\yacco2_characters.lex(176): *** +C:\yacco2\library\grammars\yacco2_characters.lex(180): *** +C:\yacco2\library\grammars\yacco2_characters.lex(187): *** +C:\yacco2\library\grammars\yacco2_characters.lex(191): *** +C:\yacco2\library\grammars\yacco2_characters.lex(198): *** +C:\yacco2\library\grammars\yacco2_characters.lex(202): *** +C:\yacco2\library\grammars\yacco2_characters.lex(209): *** +C:\yacco2\library\grammars\yacco2_characters.lex(213): *** +C:\yacco2\library\grammars\yacco2_characters.lex(220): *** +C:\yacco2\library\grammars\yacco2_characters.lex(224): *** +C:\yacco2\library\grammars\yacco2_characters.lex(231): *** +C:\yacco2\library\grammars\yacco2_characters.lex(235): *** +C:\yacco2\library\grammars\yacco2_characters.lex(242): *** +C:\yacco2\library\grammars\yacco2_characters.lex(246): *** +C:\yacco2\library\grammars\yacco2_characters.lex(253): *** +C:\yacco2\library\grammars\yacco2_characters.lex(257): *** +C:\yacco2\library\grammars\yacco2_characters.lex(264): *** +C:\yacco2\library\grammars\yacco2_characters.lex(268): *** +C:\yacco2\library\grammars\yacco2_characters.lex(275): *** +C:\yacco2\library\grammars\yacco2_characters.lex(279): *** +C:\yacco2\library\grammars\yacco2_characters.lex(286): *** +C:\yacco2\library\grammars\yacco2_characters.lex(290): *** +C:\yacco2\library\grammars\yacco2_characters.lex(297): *** +C:\yacco2\library\grammars\yacco2_characters.lex(301): *** +C:\yacco2\library\grammars\yacco2_characters.lex(308): *** +C:\yacco2\library\grammars\yacco2_characters.lex(312): *** +C:\yacco2\library\grammars\yacco2_characters.lex(319): *** +C:\yacco2\library\grammars\yacco2_characters.lex(323): *** +C:\yacco2\library\grammars\yacco2_characters.lex(330): *** +C:\yacco2\library\grammars\yacco2_characters.lex(334): *** +C:\yacco2\library\grammars\yacco2_characters.lex(341): *** +C:\yacco2\library\grammars\yacco2_characters.lex(345): *** +C:\yacco2\library\grammars\yacco2_characters.lex(352): *** +C:\yacco2\library\grammars\yacco2_characters.lex(356): *** +C:\yacco2\library\grammars\yacco2_characters.lex(363): *** +C:\yacco2\library\grammars\yacco2_characters.lex(367): *** +C:\yacco2\library\grammars\yacco2_characters.lex(374): *** +C:\yacco2\library\grammars\yacco2_characters.lex(378): *** +C:\yacco2\library\grammars\yacco2_characters.lex(385): *** +C:\yacco2\library\grammars\yacco2_characters.lex(389): *** +C:\yacco2\library\grammars\yacco2_characters.lex(396): *** +C:\yacco2\library\grammars\yacco2_characters.lex(400): *** +C:\yacco2\library\grammars\yacco2_characters.lex(407): *** +C:\yacco2\library\grammars\yacco2_characters.lex(411): *** +C:\yacco2\library\grammars\yacco2_characters.lex(418): *** +C:\yacco2\library\grammars\yacco2_characters.lex(422): *** +C:\yacco2\library\grammars\yacco2_characters.lex(429): *** +C:\yacco2\library\grammars\yacco2_characters.lex(433): *** +C:\yacco2\library\grammars\yacco2_characters.lex(440): *** +C:\yacco2\library\grammars\yacco2_characters.lex(444): *** +C:\yacco2\library\grammars\yacco2_characters.lex(451): *** +C:\yacco2\library\grammars\yacco2_characters.lex(455): *** +C:\yacco2\library\grammars\yacco2_characters.lex(462): *** +C:\yacco2\library\grammars\yacco2_characters.lex(466): *** +C:\yacco2\library\grammars\yacco2_characters.lex(473): *** +C:\yacco2\library\grammars\yacco2_characters.lex(477): *** +C:\yacco2\library\grammars\yacco2_characters.lex(484): *** +C:\yacco2\library\grammars\yacco2_characters.lex(488): *** +C:\yacco2\library\grammars\yacco2_characters.lex(495): *** +C:\yacco2\library\grammars\yacco2_characters.lex(499): *** +C:\yacco2\library\grammars\yacco2_characters.lex(506): *** +C:\yacco2\library\grammars\yacco2_characters.lex(510): *** +C:\yacco2\library\grammars\yacco2_characters.lex(517): *** +C:\yacco2\library\grammars\yacco2_characters.lex(521): *** +C:\yacco2\library\grammars\yacco2_characters.lex(528): *** +C:\yacco2\library\grammars\yacco2_characters.lex(532): *** +C:\yacco2\library\grammars\yacco2_characters.lex(539): *** +C:\yacco2\library\grammars\yacco2_characters.lex(543): *** +C:\yacco2\library\grammars\yacco2_characters.lex(550): *** +C:\yacco2\library\grammars\yacco2_characters.lex(554): *** +C:\yacco2\library\grammars\yacco2_characters.lex(561): *** +C:\yacco2\library\grammars\yacco2_characters.lex(565): *** +C:\yacco2\library\grammars\yacco2_characters.lex(572): *** +C:\yacco2\library\grammars\yacco2_characters.lex(576): *** +C:\yacco2\library\grammars\yacco2_characters.lex(583): *** +C:\yacco2\library\grammars\yacco2_characters.lex(587): *** +C:\yacco2\library\grammars\yacco2_characters.lex(594): *** +C:\yacco2\library\grammars\yacco2_characters.lex(598): *** +C:\yacco2\library\grammars\yacco2_characters.lex(605): *** +C:\yacco2\library\grammars\yacco2_characters.lex(609): *** +C:\yacco2\library\grammars\yacco2_characters.lex(616): *** +C:\yacco2\library\grammars\yacco2_characters.lex(620): *** +C:\yacco2\library\grammars\yacco2_characters.lex(627): *** +C:\yacco2\library\grammars\yacco2_characters.lex(631): *** +C:\yacco2\library\grammars\yacco2_characters.lex(638): *** +C:\yacco2\library\grammars\yacco2_characters.lex(642): *** +C:\yacco2\library\grammars\yacco2_characters.lex(649): *** +C:\yacco2\library\grammars\yacco2_characters.lex(653): *** +C:\yacco2\library\grammars\yacco2_characters.lex(660): *** +C:\yacco2\library\grammars\yacco2_characters.lex(664): *** +C:\yacco2\library\grammars\yacco2_characters.lex(671): *** +C:\yacco2\library\grammars\yacco2_characters.lex(675): *** +C:\yacco2\library\grammars\yacco2_characters.lex(682): *** +C:\yacco2\library\grammars\yacco2_characters.lex(686): *** +C:\yacco2\library\grammars\yacco2_characters.lex(693): *** +C:\yacco2\library\grammars\yacco2_characters.lex(697): *** +C:\yacco2\library\grammars\yacco2_characters.lex(704): *** +C:\yacco2\library\grammars\yacco2_characters.lex(708): *** +C:\yacco2\library\grammars\yacco2_characters.lex(715): *** +C:\yacco2\library\grammars\yacco2_characters.lex(719): *** +C:\yacco2\library\grammars\yacco2_characters.lex(726): *** +C:\yacco2\library\grammars\yacco2_characters.lex(730): *** +C:\yacco2\library\grammars\yacco2_characters.lex(738): *** +C:\yacco2\library\grammars\yacco2_characters.lex(742): *** +C:\yacco2\library\grammars\yacco2_characters.lex(749): *** +C:\yacco2\library\grammars\yacco2_characters.lex(753): *** +C:\yacco2\library\grammars\yacco2_characters.lex(760): *** +C:\yacco2\library\grammars\yacco2_characters.lex(764): *** +C:\yacco2\library\grammars\yacco2_characters.lex(771): *** +C:\yacco2\library\grammars\yacco2_characters.lex(775): *** +C:\yacco2\library\grammars\yacco2_characters.lex(782): *** +C:\yacco2\library\grammars\yacco2_characters.lex(786): *** +C:\yacco2\library\grammars\yacco2_characters.lex(793): *** +C:\yacco2\library\grammars\yacco2_characters.lex(797): *** +C:\yacco2\library\grammars\yacco2_characters.lex(804): *** +C:\yacco2\library\grammars\yacco2_characters.lex(808): *** +C:\yacco2\library\grammars\yacco2_characters.lex(815): *** +C:\yacco2\library\grammars\yacco2_characters.lex(819): *** +C:\yacco2\library\grammars\yacco2_characters.lex(826): *** +C:\yacco2\library\grammars\yacco2_characters.lex(830): *** +C:\yacco2\library\grammars\yacco2_characters.lex(837): *** +C:\yacco2\library\grammars\yacco2_characters.lex(841): *** +C:\yacco2\library\grammars\yacco2_characters.lex(848): *** +C:\yacco2\library\grammars\yacco2_characters.lex(852): *** +C:\yacco2\library\grammars\yacco2_characters.lex(859): *** +C:\yacco2\library\grammars\yacco2_characters.lex(863): *** +C:\yacco2\library\grammars\yacco2_characters.lex(870): *** +C:\yacco2\library\grammars\yacco2_characters.lex(874): *** +C:\yacco2\library\grammars\yacco2_characters.lex(881): *** +C:\yacco2\library\grammars\yacco2_characters.lex(885): *** +C:\yacco2\library\grammars\yacco2_characters.lex(892): *** +C:\yacco2\library\grammars\yacco2_characters.lex(896): *** +C:\yacco2\library\grammars\yacco2_characters.lex(903): *** +C:\yacco2\library\grammars\yacco2_characters.lex(907): *** +C:\yacco2\library\grammars\yacco2_characters.lex(914): *** +C:\yacco2\library\grammars\yacco2_characters.lex(918): *** +C:\yacco2\library\grammars\yacco2_characters.lex(925): *** +C:\yacco2\library\grammars\yacco2_characters.lex(929): *** +C:\yacco2\library\grammars\yacco2_characters.lex(936): *** +C:\yacco2\library\grammars\yacco2_characters.lex(940): *** +C:\yacco2\library\grammars\yacco2_characters.lex(947): *** +C:\yacco2\library\grammars\yacco2_characters.lex(951): *** +C:\yacco2\library\grammars\yacco2_characters.lex(958): *** +C:\yacco2\library\grammars\yacco2_characters.lex(962): *** +C:\yacco2\library\grammars\yacco2_characters.lex(969): *** +C:\yacco2\library\grammars\yacco2_characters.lex(973): *** +C:\yacco2\library\grammars\yacco2_characters.lex(980): *** +C:\yacco2\library\grammars\yacco2_characters.lex(984): *** +C:\yacco2\library\grammars\yacco2_characters.lex(991): *** +C:\yacco2\library\grammars\yacco2_characters.lex(995): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1002): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1006): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1013): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1017): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1024): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1028): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1035): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1039): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1046): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1050): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1057): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1061): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1068): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1072): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1079): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1083): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1091): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1095): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1102): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1106): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1113): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1117): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1124): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1128): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1135): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1139): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1146): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1150): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1157): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1161): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1168): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1172): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1179): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1183): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1190): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1194): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1201): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1205): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1212): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1216): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1223): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1227): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1234): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1238): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1245): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1249): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1256): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1260): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1267): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1271): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1278): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1282): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1289): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1293): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1300): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1304): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1311): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1315): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1322): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1326): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1333): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1337): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1344): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1348): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1355): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1359): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1366): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1370): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1377): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1381): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1388): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1392): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1399): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1403): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1410): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1414): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1421): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1425): *** +C:\yacco2\library\grammars\yacco2_characters.lex(1435):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1439):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1446):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1450):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1457):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1461):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1468):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1472):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1479):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1483):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1490):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1494):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1501):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1505):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1512):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1516):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1523):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1527):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1534):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1538):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1545):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1549):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1556):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1560):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1567):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1571):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1578):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1582):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1589):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1593):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1600):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1604):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1611):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1615):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1622):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1626):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1633):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1637):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1644):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1648):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1655):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1659):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1666):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1670):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1677):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1681):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1688):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1692):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1699):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1703):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1710):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1714):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1721):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1725):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1732):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1736):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1743):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1747):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1754):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1758):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1765):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1769):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1776):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1780):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1787):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1791):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1798):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1802):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1809):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1813):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1820):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1824):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1831):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1835):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1842):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1846):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1853):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1857):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1864):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1868):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1875):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1879):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1886):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1890):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1897):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1901):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1908):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1912):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1919):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1923):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1930):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1934):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1941):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1945):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1952):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1956):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1963):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1967):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1974):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1978):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1985):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1989):*** +C:\yacco2\library\grammars\yacco2_characters.lex(1996):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2000):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2007):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2011):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2018):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2022):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2029):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2033):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2040):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2044):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2051):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2055):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2062):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2066):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2073):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2077):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2084):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2088):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2095):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2099):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2106):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2110):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2117):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2121):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2128):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2132):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2139):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2143):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2150):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2154):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2161):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2165):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2172):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2176):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2183):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2187):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2194):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2198):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2205):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2209):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2216):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2220):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2227):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2231):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2238):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2242):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2249):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2253):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2260):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2264):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2271):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2275):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2282):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2286):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2293):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2297):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2304):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2308):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2315):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2319):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2326):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2330):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2337):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2341):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2348):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2352):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2359):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2363):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2370):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2374):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2381):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2385):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2392):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2396):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2403):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2407):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2414):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2418):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2425):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2429):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2436):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2440):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2447):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2451):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2458):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2462):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2469):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2473):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2480):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2484):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2491):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2495):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2502):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2506):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2513):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2517):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2524):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2528):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2535):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2539):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2546):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2550):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2557):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2561):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2568):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2572):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2579):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2583):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2590):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2594):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2601):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2605):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2612):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2616):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2623):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2627):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2634):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2638):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2645):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2649):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2656):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2660):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2667):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2671):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2678):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2682):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2689):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2693):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2700):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2704):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2711):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2715):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2722):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2726):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2733):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2737):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2744):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2748):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2755):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2759):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2766):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2770):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2777):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2781):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2788):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2792):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2799):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2803):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2810):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2814):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2821):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2825):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2832):*** +C:\yacco2\library\grammars\yacco2_characters.lex(2836):*** +C:\yacco2\library\grammars\yacco2_k_symbols.lex(24): *** +C:\yacco2\library\grammars\yacco2_k_symbols.lex(31): *** +C:\yacco2\library\grammars\yacco2_k_symbols.lex(38): *** +C:\yacco2\library\grammars\yacco2_k_symbols.lex(45): *** +C:\yacco2\library\grammars\yacco2_k_symbols.lex(52): *** +C:\yacco2\library\grammars\yacco2_k_symbols.lex(59): *** +C:\yacco2\library\grammars\yacco2_k_symbols.lex(66): *** +C:\yacco2\library\grammars\yacco2_k_symbols.lex(73): *** +C:\yacco2\library\grammars\yacco2_k_symbols.lex(82): *** +C:\yacco2\library\grammars\yacco2_k_symbols.lex(89): *** +C:\yacco2\library\grammars\yacco2_k_symbols.lex(96): *** +C:\yacco2\library\grammars\yacco2_k_symbols.lex(103): *** +C:\yacco2\library\grammars\yacco2_k_symbols.lex(115):*** diff --git a/web/yacco2/diagrams/Tsym.txt b/web/yacco2/diagrams/Tsym.txt new file mode 100644 index 0000000000..23bcb3ba3b --- /dev/null +++ b/web/yacco2/diagrams/Tsym.txt @@ -0,0 +1,30 @@ +/* +file: Tsym.txt +Why: terminals symbols vocabulary to parse. +Note: terminals is shown for clarity. It is the keyword trigger + that calls this grammar. Parsed is comments onwards. +*/ +terminals +// comments +(file-name o2_terminals,name-space NS_o2_terminals){ +/@ +Makesure c++ forward references compile. +@/ + terminals-refs + using namespace std; + struct T_c_literal; + .... + struct refered_T; + *** +"option-t" AD + /@ + Command line option for \O2 indicating generate T vocabulary code. + Returned from |yacco2_lcl_option| thread. + @/ + (sym-class T_option_t) + .... + "lint" (sym-class T_lint) + terminals-sufx + static int* NS_o2_terminals::example_(0); + *** +}
\ No newline at end of file diff --git a/web/yacco2/diagrams/arbitrator.txt b/web/yacco2/diagrams/arbitrator.txt new file mode 100644 index 0000000000..5a24b1fa9a --- /dev/null +++ b/web/yacco2/diagrams/arbitrator.txt @@ -0,0 +1,25 @@ +,parallel-control-monitor{ + arbitrator-code + // arbitration + // between + // x y winner + // identifier keyword keyword + // fp no integer fp no + // + using namespace NS_pas_T_enum; + { + for(i=1;i<=ie;++i){ + if(To_judge->pp_accept_queue__[i].accept_token__->enumerated_id__ + == NS_pas_T_enum::T_Enum::T_T_keyword_){ + goto arbitrated_parameter; + } + } + for(i=1;i<=ie;++i){ + if(To_judge->pp_accept_queue__[i].accept_token__->enumerated_id__ + == NS_pas_T_enum::T_Enum::T_T_fp_pt_no_){ + goto arbitrated_parameter; + } + } + } + *** + } diff --git a/web/yacco2/diagrams/array_def.txt b/web/yacco2/diagrams/array_def.txt new file mode 100644 index 0000000000..18b3ca07b4 --- /dev/null +++ b/web/yacco2/diagrams/array_def.txt @@ -0,0 +1,5 @@ +// array_def.txt solution to open-ended array definition +struct Shift_tbl { + yacco2::USINT no_entries__; + yacco2::Shift_entry first_entry__[1]; +}; diff --git a/web/yacco2/diagrams/bug1.txt b/web/yacco2/diagrams/bug1.txt new file mode 100644 index 0000000000..91dc7eb1ba --- /dev/null +++ b/web/yacco2/diagrams/bug1.txt @@ -0,0 +1,8 @@ +std::set<state*> VISITED_MERGE_STATES_IN_LA_CALC; +int main(int argc,char*argv[]){ + VISITED_MERGE_STATES_IN_LA_CALC.clear();} + if(VISITED_MERGE_STATES_IN_LA_CALC.empty() == true){ + cout << "===========its empty" << endl; + } + return 0; +} diff --git a/web/yacco2/diagrams/docgeneration.1 b/web/yacco2/diagrams/docgeneration.1 new file mode 100644 index 0000000000..ed767bd060 --- /dev/null +++ b/web/yacco2/diagrams/docgeneration.1 @@ -0,0 +1,193 @@ +%!PS +%%BoundingBox: -37 -114 307 11 +%%HiResBoundingBox: -36.5142 -113.62396 306.92596 10.16852 +%%Creator: MetaPost 0.993 +%%CreationDate: 2007.04.02:0933 +%%Pages: 1 +%*Font: cmr10 9.96265 9.96265 22:80080000000000217d36ee +%*Font: cmex10 9.96265 9.96265 50:8 +%%BeginProlog +%%EndProlog +%%Page: 1 1 + 0 0 0 setrgbcolor +0 0 moveto +(xxx.mp) cmr10 9.96265 fshow +35.6996 0 moveto +(for) cmr10 9.96265 fshow +50.948 0 moveto +(mp) cmr10 9.96265 fshow +65.0618 0 moveto +(ost) cmr10 9.96265 fshow + 0 0.5 dtransform truncate idtransform setlinewidth pop [] 0 setdash + 1 setlinejoin 10 setmiterlimit +newpath -3 -4.9372 moveto +80.8472 -4.9372 lineto +80.8472 9.91852 lineto +-3 9.91852 lineto + closepath stroke +25.474 -26.85715 moveto +(mp) cmr10 9.96265 fshow +39.5878 -26.85715 moveto +(ost) cmr10 9.96265 fshow +newpath 22.474 -31.79436 moveto +55.3732 -31.79436 lineto +55.3732 -17.72932 lineto +22.474 -17.72932 lineto + closepath stroke +-33.2642 -47.58649 moveto +(P) cmex10 9.96265 fshow +-19.4272 -55.05849 moveto +(railroad) cmr10 9.96265 fshow +17.7114 -55.05849 moveto +(diagrams) cmr10 9.96265 fshow +60.41249 -55.05849 moveto +(of) cmr10 9.96265 fshow +71.7589 -55.05849 moveto +(grammar) cmr10 9.96265 fshow +newpath -36.2642 -60.5492 moveto +114.1114 -60.5492 lineto +114.1114 -44.58649 lineto +-36.2642 -44.58649 lineto + closepath stroke +160.59998 -0.9686 moveto +(xxx.w) cmr10 9.96265 fshow +189.65778 -0.9686 moveto +(for) cmr10 9.96265 fshow +204.90617 -0.9686 moveto +(cw) cmr10 9.96265 fshow +216.25247 -0.9686 moveto +(ea) cmr10 9.96265 fshow +225.38487 -0.9686 moveto +(v) cmr10 9.96265 fshow +230.36627 -0.9686 moveto +(e) cmr10 9.96265 fshow +newpath 157.59998 -4.9372 moveto +237.7941 -4.9372 lineto +237.7941 9.91852 lineto +157.59998 9.91852 lineto + closepath stroke +182.75308 -26.9066 moveto +(cw) cmr10 9.96265 fshow +194.09938 -26.9066 moveto +(ea) cmr10 9.96265 fshow +203.23189 -26.9066 moveto +(v) cmr10 9.96265 fshow +208.21318 -26.9066 moveto +(e) cmr10 9.96265 fshow +newpath 179.75308 -31.79436 moveto +215.64099 -31.79436 lineto +215.64099 -17.72932 lineto +179.75308 -17.72932 lineto + closepath stroke +181.64603 -53.7143 moveto +(xxx.tex) cmr10 9.96265 fshow +newpath 178.64603 -56.7143 moveto +216.74805 -56.7143 lineto +216.74805 -44.58649 lineto +178.64603 -44.58649 lineto + closepath stroke +258.12445 -53.14105 moveto +(p) cmr10 9.96265 fshow +263.93605 -53.14105 moveto +(dftex) cmr10 9.96265 fshow +newpath 255.12444 -58.07825 moveto +289.07526 -58.07825 lineto +289.07526 -43.22253 lineto +255.12444 -43.22253 lineto + closepath stroke +255.63374 -80.78891 moveto +(xxx.p) cmr10 9.96265 fshow +279.98694 -80.78891 moveto +(df) cmr10 9.96265 fshow +newpath 252.63374 -85.7261 moveto +291.56596 -85.7261 lineto +291.56596 -70.87038 lineto +252.63374 -70.87038 lineto + closepath stroke +240.52374 -108.43677 moveto +(\\a) cmr10 9.96265 fshow +253.80724 -108.43677 moveto +(p) cmr10 9.96265 fshow +259.61884 -108.43677 moveto +(df) cmr10 9.96265 fshow +271.51874 -108.43677 moveto +(reader") cmr10 9.96265 fshow +newpath 237.52374 -113.37396 moveto +306.67596 -113.37396 lineto +306.67596 -98.51823 lineto +237.52374 -98.51823 lineto + closepath stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth 1 setlinecap +newpath 38.9236 -4.9372 moveto +38.9236 -17.72932 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 37.3928 -14.03375 moveto +38.9236 -17.72932 lineto +40.45439 -14.03375 lineto + closepath +gsave fill grestore stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth +newpath 38.9236 -31.79436 moveto +38.9236 -44.58649 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 37.3928 -40.89091 moveto +38.9236 -44.58649 lineto +40.45439 -40.89091 lineto + closepath +gsave fill grestore stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth +newpath 197.69704 -4.9372 moveto +197.69704 -17.72932 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 196.16624 -14.03375 moveto +197.69704 -17.72932 lineto +199.22783 -14.03375 lineto + closepath +gsave fill grestore stroke + [0 5 ] 2.5 setdash +newpath 114.1114 -52.56784 moveto +127.31908 -52.56784 135.8557 -39.2965 135.8557 -25.03859 curveto stroke +newpath 135.8557 -25.03859 moveto +135.8557 -10.7807 144.39232 2.49066 157.59998 2.49066 curveto stroke + [] 0 setdash +newpath 154.08553 0.58069 moveto +155.15556 1.32169 156.32661 1.96321 157.59998 2.49066 curveto +156.32661 3.01811 155.04494 3.39258 153.76436 3.62527 curveto + closepath +gsave fill grestore stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth +newpath 197.69704 -31.79436 moveto +197.69704 -44.58649 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 196.16624 -40.89091 moveto +197.69704 -44.58649 lineto +199.22783 -40.89091 lineto + closepath +gsave fill grestore stroke +newpath 216.74805 -50.65039 moveto +255.12444 -50.65039 lineto stroke +newpath 251.42886 -52.18118 moveto +255.12444 -50.65039 lineto +251.42886 -49.1196 lineto + closepath +gsave fill grestore stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth +newpath 272.09985 -58.07825 moveto +272.09985 -70.87038 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 270.56906 -67.1748 moveto +272.09985 -70.87038 lineto +273.63065 -67.1748 lineto + closepath +gsave fill grestore stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth +newpath 272.09985 -85.7261 moveto +272.09985 -98.51823 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 270.56906 -94.82266 moveto +272.09985 -98.51823 lineto +273.63065 -94.82266 lineto + closepath +gsave fill grestore stroke +showpage +%%EOF diff --git a/web/yacco2/diagrams/docgeneration.mp b/web/yacco2/diagrams/docgeneration.mp new file mode 100644 index 0000000000..eb1eeabd43 --- /dev/null +++ b/web/yacco2/diagrams/docgeneration.mp @@ -0,0 +1,57 @@ +% file: docgeneration.mp +% flow control of how grammar's documents are created +input boxes +u:=1cc; +pair sep,fldsep; +sep := (0,1u); +fldsep := (3u,0); +beginfig(1); +boxit.docsmp(btex xxx.mp for mpost etex); % mpost doc +boxit.docsw(btex xxx.w for cweave etex); % cweave doc +boxit.mpraildocs(btex $\sum$ railroad diagrams of grammar etex); % mpost output +boxit.mpost(btex mpost etex); % mpost +boxit.cweave(btex cweave etex); % cweave +boxit.texdoc(btex xxx.tex etex); % tex doc +boxit.pdftex(btex pdftex etex); % pdftex +boxit.pdfdoc(btex xxx.pdf etex); % pdf doc +boxit.pdfrdr(btex ``a pdf reader'' etex); % pdf reader + +% place the boxes +docsmp.s - sep = mpost.n; +mpost.s - sep = mpraildocs.n; +docsmp.e + 2fldsep = docsw.w; +ypart mpost.n = ypart cweave.n; +ypart mpost.s = ypart cweave.s; +docsw.s - sep = cweave.n; + + +cweave.s - sep = texdoc.n; +texdoc.e + fldsep = pdftex.w; +pdftex.s - sep = pdfdoc.n; +pdfdoc.s - sep = pdfrdr.n; + +% form the boxes +drawboxed(docsmp); +drawboxed(mpost); +drawboxed(mpraildocs); +drawboxed(docsw); +drawboxed(cweave); +drawboxed(texdoc); +drawboxed(pdftex); +drawboxed(pdfdoc); +drawboxed(pdfrdr); + +% draw lined arrows between the boxes +drawarrow docsmp.s -- mpost.n; +drawarrow mpost.s -- mpraildocs.n; +drawarrow docsw.s -- cweave.n; +pair xxx; +xxx = .5[mpraildocs.e,docsw.w]; +draw mpraildocs.e {right} .. {up} xxx dashed withdots; +drawarrow xxx {up} .. {right} docsw.w dashed withdots; +drawarrow cweave.s -- texdoc.n; +drawarrow texdoc.e -- pdftex.w; +drawarrow pdftex.s -- pdfdoc.n; +drawarrow pdfdoc.s -- pdfrdr.n; +endfig; +end;
\ No newline at end of file diff --git a/web/yacco2/diagrams/eol.txt b/web/yacco2/diagrams/eol.txt new file mode 100644 index 0000000000..e885f29314 --- /dev/null +++ b/web/yacco2/diagrams/eol.txt @@ -0,0 +1,39 @@ +/* +FILE: eol.lex +Dates: 17 Juin 2003 +Purpose: end-of-line recognizer +*/ +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") +parallel-parser +( + parallel-thread-function + TH_eol + *** + parallel-la-boundary + eolr // - "x0a" more efficient to use |.| + *** +) +@"c:/yacco2/compiler/grammars/yacco2_include_files.lex" + +rules{ +Reol AD AB(){ + -> Rdelimiters { + rhs-op + CAbs_lr1_sym* sym = new T_eol; + sym->set_rc(*parser()->start_token(),*parser()); + sym->set_line_no_and_pos_in_line(*parser()->start_token()); + RSVP(sym) + *** + } +} + +Rdelimiters AD AB(){ + -> "x0a" + -> "x0d" |.| + -> "x0d" "x0a" +} +}// end of rules
\ No newline at end of file diff --git a/web/yacco2/diagrams/errsym.txt b/web/yacco2/diagrams/errsym.txt new file mode 100644 index 0000000000..aaa4dc8c3a --- /dev/null +++ b/web/yacco2/diagrams/errsym.txt @@ -0,0 +1,37 @@ +/* +file: errsym.txt +Why: error symbols vocabulary to parse. +Note: +error-symbols is shown for clarity. +It is the keyword trigger that calls this grammar. +Parsed is comments onwards. +*/ +error-symbols +// comments +(file-name yacco2_err_symbols +,name-space NS_yacco2_err_symbols) +{ +"nested files exceeded" +(sym-class Err_nested_files_excded { + user-declaration + public: + Err_nested_files_excded(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_excded:: + Err_nested_files_excded(yacco2::INT Nested_cnt,std::string& File_name) + T_CTOR("nested files excded",T_Enum::T_Err_nested_files_excded_,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) + ... +} diff --git a/web/yacco2/diagrams/fsm.txt b/web/yacco2/diagrams/fsm.txt new file mode 100644 index 0000000000..34e0a5cd9b --- /dev/null +++ b/web/yacco2/diagrams/fsm.txt @@ -0,0 +1,9 @@ +/* +file: fsm.txt +Why: example of a fsm construct to parse. +*/ +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") diff --git a/web/yacco2/diagrams/fsm_failed.txt b/web/yacco2/diagrams/fsm_failed.txt new file mode 100644 index 0000000000..cdf6efaedf --- /dev/null +++ b/web/yacco2/diagrams/fsm_failed.txt @@ -0,0 +1,39 @@ +fsm +(fsm-id "reset_rewrite_opt.lex",fsm-filename reset_rewrite_opt +,fsm-namespace NS_reset_rewrite_opt +,fsm-class Creset_rewrite_opt { + user-prefix-declaration +#include "integer_no.h" + *** +/@ +Trap the failed option and return a bad option. +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* s = new LR1_err_bad_rsx_rms_opt; + s->set_rc(*parser()->current_token(),*parser() + ,"reset_rewrite_opt.lex",__LINE__); + RSVP_FSM(s); + return true; + *** +} +,fsm-version "1.1",fsm-date "18 Oct. 2003",fsm-debug "true" +,fsm-comments "individual rsx/rms options") +parallel-parser +( + parallel-thread-function + TH_reset_rewrite_opt + *** + parallel-la-boundary + "/" + "'" + *** +) + diff --git a/web/yacco2/diagrams/fsmclass.txt b/web/yacco2/diagrams/fsmclass.txt new file mode 100644 index 0000000000..a96efee8a7 --- /dev/null +++ b/web/yacco2/diagrams/fsmclass.txt @@ -0,0 +1,45 @@ +/* +file: fsmclass.txt +Why: example of text to parse by fsm's class construct. +*/ +fsm-class Crule_lhs_phrase{ + user-prefix-declaration + using namespace NS_yacco2_terminals; +#include "lint_balls.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_implementation_: { + T_user_implementation* k = (T_user_implementation*)Dir; + k->syntax_code(Sdc); + break; + } + default: { + CAbs_lr1_sym* sym = new LR1_err_improper_directive; + sym->set_rc(*Dir,*parser()); + RSVP_FSM(sym); + parser()->set_stop_parse(true); + } + } + } + *** + op + rule_lhs_phrase_ = new T_rule_lhs_phrase; + rule_lhs_phrase_->set_rc(*parser()->start_token(),*parser()); + AST* t = new AST(*rule_lhs_phrase_); + rule_lhs_phrase_->phrase_tree(t); + *** + constructor + rule_lhs_phrase_ = 0; + *** +} diff --git a/web/yacco2/diagrams/intro1.txt b/web/yacco2/diagrams/intro1.txt new file mode 100644 index 0000000000..83d70535d4 --- /dev/null +++ b/web/yacco2/diagrams/intro1.txt @@ -0,0 +1 @@ + T-enumeration (file-name yacco2_T_enumeration,name-space NS_yacco2_T_enum) {}
\ No newline at end of file diff --git a/web/yacco2/diagrams/intro2.txt b/web/yacco2/diagrams/intro2.txt new file mode 100644 index 0000000000..14f3fdec19 --- /dev/null +++ b/web/yacco2/diagrams/intro2.txt @@ -0,0 +1,7 @@ + T-alphabet + LR1_questionable_shift_operator + LR1_eog + LR1_eolr + ... + T_file_of_T_alphabet + end-T-alphabet diff --git a/web/yacco2/diagrams/intro3.txt b/web/yacco2/diagrams/intro3.txt new file mode 100644 index 0000000000..80bacdea1b --- /dev/null +++ b/web/yacco2/diagrams/intro3.txt @@ -0,0 +1,30 @@ +/* + File: subrule_def.fsc + Date and Time: Fri Dec 7 16:28:47 2007 +*/ +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 567 +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_marker::TH_cweb_marker + 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/diagrams/intro4.txt b/web/yacco2/diagrams/intro4.txt new file mode 100644 index 0000000000..161f39117a --- /dev/null +++ b/web/yacco2/diagrams/intro4.txt @@ -0,0 +1,21 @@ + file-of-T-alphabet "c:/yacco2/compiler/grammars/yacco2_T_enumeration.fsc" + emitfile "/yacco2/compiler/grammars/yacco2_fsc.cpp" + preamble + #include <yacco2.h> + #include <yacco2_T_enumeration.h> + #include <yacco2_err_symbols.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/error_symbols_phrase.fsc" + "/yacco2/compiler/grammars/error_symbols_phrase_th.fsc" + "/yacco2/compiler/grammars/angled_string.fsc" + "/yacco2/compiler/grammars/bad_char_set.fsc" + "/yacco2/compiler/grammars/c_comments.fsc" + ... diff --git a/web/yacco2/diagrams/linker.1 b/web/yacco2/diagrams/linker.1 new file mode 100644 index 0000000000..68c2a2c118 --- /dev/null +++ b/web/yacco2/diagrams/linker.1 @@ -0,0 +1,93 @@ +%!PS +%%BoundingBox: 0 -38 312 7 +%%HiResBoundingBox: 0 -37.50316 311.32541 6.9185 +%%Creator: MetaPost 0.993 +%%CreationDate: 2007.12.03:1258 +%%Pages: 1 +%*Font: cmr10 9.96265 9.96265 0c:800002002402012c800085d5fbe +%%BeginProlog +%%EndProlog +%%Page: 1 1 + 0 0 0 setrgbcolor +0 0 moveto +(In) cmr10 9.96265 fshow +8.8557 0 moveto +(teractiv) cmr10 9.96265 fshow +42.0922 0 moveto +(e:) cmr10 9.96265 fshow +53.7153 0 moveto +(\014le) cmr10 9.96265 fshow +69.7663 0 moveto +(name) cmr10 9.96265 fshow +29.36221 -19.71066 moveto +(Command) cmr10 9.96265 fshow +77.5151 -19.71066 moveto +(line) cmr10 9.96265 fshow + 0 0.5 dtransform truncate idtransform setlinewidth pop [] 0 setdash + 1 setlinecap 1 setlinejoin 10 setmiterlimit +newpath 96.01251 -16.2514 moveto +99.21054 -16.2514 lineto +99.21054 3.45926 lineto +96.01251 3.45926 lineto stroke +newpath 99.21054 -6.39607 moveto +112.00267 -6.39607 lineto stroke +newpath 108.3071 -7.92686 moveto +112.00267 -6.39607 lineto +108.3071 -4.86528 lineto + closepath +gsave fill grestore stroke +115.00269 -8.88673 moveto +(Holding) cmr10 9.96265 fshow +152.36269 -8.88673 moveto +(\014le) cmr10 9.96265 fshow +103.50414 -23.74246 moveto +(\\link) cmr10 9.96265 fshow +124.53644 -23.74246 moveto +(ercmd.tmp") cmr10 9.96265 fshow +183.88495 -9.85533 moveto +(Link) cmr10 9.96265 fshow +203.39514 -9.85533 moveto +(er) cmr10 9.96265 fshow +newpath 180.88493 -12.85533 moveto +214.72507 -12.85533 lineto +214.72507 0.06319 lineto +180.88493 0.06319 lineto + closepath stroke +230.51721 -8.88673 moveto +(\\First) cmr10 9.96265 fshow +259.79631 -8.88673 moveto +(set) cmr10 9.96265 fshow +275.3491 -8.88673 moveto +(\014le".cpp) cmr10 9.96265 fshow +newpath 168.0928 -6.39607 moveto +180.88493 -6.39607 lineto stroke +newpath 177.18936 -7.92686 moveto +180.88493 -6.39607 lineto +177.18936 -4.86528 lineto + closepath +gsave fill grestore stroke +newpath 214.72507 -6.39607 moveto +227.5172 -6.39607 lineto stroke +newpath 223.82162 -7.92686 moveto +227.5172 -6.39607 lineto +223.82162 -4.86528 lineto + closepath +gsave fill grestore stroke +124.27505 -35.56596 moveto +(Figure) cmr10 9.96265 fshow +155.71275 -35.56596 moveto +(1:) cmr10 9.96265 fshow +167.88936 -35.56596 moveto +(Link) cmr10 9.96265 fshow +187.39955 -35.56596 moveto +(er) cmr10 9.96265 fshow +199.05035 -35.56596 moveto +(run) cmr10 9.96265 fshow +217.34285 -35.56596 moveto +(en) cmr10 9.96265 fshow +227.02875 -35.56596 moveto +(vironmen) cmr10 9.96265 fshow +267.46065 -35.56596 moveto +(t) cmr10 9.96265 fshow +showpage +%%EOF diff --git a/web/yacco2/diagrams/linker.2 b/web/yacco2/diagrams/linker.2 new file mode 100644 index 0000000000..5c48acd040 --- /dev/null +++ b/web/yacco2/diagrams/linker.2 @@ -0,0 +1,219 @@ +%!PS +%%BoundingBox: -56 -70 235 25 +%%HiResBoundingBox: -55.04314 -69.1019 234.30408 24.31938 +%%Creator: MetaPost 0.993 +%%CreationDate: 2007.12.03:1258 +%%Pages: 1 +%*Font: cmr10 9.96265 9.96265 20:8000f520000008004cc131 +%%BeginProlog +%%EndProlog +%%Page: 1 1 + 0 0 0 setrgbcolor 0 0.5 dtransform truncate idtransform setlinewidth pop + [] 0 setdash 1 setlinejoin 10 setmiterlimit +newpath 0 0 moveto +230.41406 0 lineto +232.52551 -0.33443 234.34871 1.48877 234.01428 3.60022 curveto +233.73373 5.37152 232.03331 6.3754 230.41406 7.20044 curveto +228.79482 8.02548 227.09439 9.02936 226.81384 10.80066 curveto +226.47942 12.91211 228.30261 14.7353 230.41406 14.40088 curveto +0 14.40088 lineto + closepath stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth 1 setlinecap +newpath 7.20044 0 moveto +7.20044 1.44006 lineto stroke +newpath 14.40088 0 moveto +14.40088 1.44006 lineto stroke +newpath 21.60132 0 moveto +21.60132 1.44006 lineto stroke +newpath 28.80176 0 moveto +28.80176 1.44006 lineto stroke +newpath 36.0022 0 moveto +36.0022 1.44006 lineto stroke +newpath 43.20264 0 moveto +43.20264 1.44006 lineto stroke +newpath 50.40308 0 moveto +50.40308 1.44006 lineto stroke +newpath 57.60352 0 moveto +57.60352 1.44006 lineto stroke +newpath 64.80396 0 moveto +64.80396 1.44006 lineto stroke +newpath 72.0044 0 moveto +72.0044 1.44006 lineto stroke +newpath 79.20483 0 moveto +79.20483 1.44006 lineto stroke +newpath 86.40527 0 moveto +86.40527 1.44006 lineto stroke +newpath 93.60571 0 moveto +93.60571 1.44006 lineto stroke +newpath 100.80615 0 moveto +100.80615 1.44006 lineto stroke +newpath 108.00659 0 moveto +108.00659 1.44006 lineto stroke +newpath 115.20703 0 moveto +115.20703 1.44006 lineto stroke +newpath 122.40747 0 moveto +122.40747 1.44006 lineto stroke +newpath 129.60791 0 moveto +129.60791 1.44006 lineto stroke +newpath 136.80835 0 moveto +136.80835 1.44006 lineto stroke +newpath 144.00879 0 moveto +144.00879 1.44006 lineto stroke +newpath 151.20923 0 moveto +151.20923 1.44006 lineto stroke +newpath 158.40967 0 moveto +158.40967 1.44006 lineto stroke +newpath 165.6101 0 moveto +165.6101 1.44006 lineto stroke +newpath 172.81055 0 moveto +172.81055 1.44006 lineto stroke +newpath 180.01099 0 moveto +180.01099 1.44006 lineto stroke +newpath 187.21143 0 moveto +187.21143 1.44006 lineto stroke +newpath 194.41187 0 moveto +194.41187 1.44006 lineto stroke +newpath 201.6123 0 moveto +201.6123 1.44006 lineto stroke +newpath 208.81274 0 moveto +208.81274 1.44006 lineto stroke +newpath 216.01318 0 moveto +216.01318 1.44006 lineto stroke +newpath 223.21362 0 moveto +223.21362 1.44006 lineto stroke +1.10954 3.99025 moveto +(1) cmr10 9.96265 fshow +8.30998 3.99025 moveto +(0) cmr10 9.96265 fshow +15.51042 3.99025 moveto +(0) cmr10 9.96265 fshow +22.71086 3.99025 moveto +(0) cmr10 9.96265 fshow +29.9113 3.99025 moveto +(0) cmr10 9.96265 fshow +37.11174 3.99025 moveto +(0) cmr10 9.96265 fshow +44.31218 3.99025 moveto +(0) cmr10 9.96265 fshow +51.51262 3.99025 moveto +(0) cmr10 9.96265 fshow +58.71306 3.99025 moveto +(1) cmr10 9.96265 fshow +65.9135 3.99025 moveto +(0) cmr10 9.96265 fshow +73.11394 3.99025 moveto +(0) cmr10 9.96265 fshow +80.31438 3.99025 moveto +(0) cmr10 9.96265 fshow +87.51482 3.99025 moveto +(0) cmr10 9.96265 fshow +94.71526 3.99025 moveto +(0) cmr10 9.96265 fshow +101.9157 3.99025 moveto +(0) cmr10 9.96265 fshow +109.11613 3.99025 moveto +(0) cmr10 9.96265 fshow +116.31657 3.99025 moveto +(1) cmr10 9.96265 fshow +123.51701 3.99025 moveto +(0) cmr10 9.96265 fshow +130.71745 3.99025 moveto +(0) cmr10 9.96265 fshow +137.9179 3.99025 moveto +(0) cmr10 9.96265 fshow +145.11833 3.99025 moveto +(0) cmr10 9.96265 fshow +152.31877 3.99025 moveto +(0) cmr10 9.96265 fshow +159.51921 3.99025 moveto +(0) cmr10 9.96265 fshow +166.71965 3.99025 moveto +(0) cmr10 9.96265 fshow +173.92009 3.99025 moveto +(1) cmr10 9.96265 fshow +181.12053 3.99025 moveto +(0) cmr10 9.96265 fshow +188.32097 3.99025 moveto +(0) cmr10 9.96265 fshow +195.52141 3.99025 moveto +(0) cmr10 9.96265 fshow +202.72185 3.99025 moveto +(0) cmr10 9.96265 fshow +209.92229 3.99025 moveto +(0) cmr10 9.96265 fshow +217.12273 3.99025 moveto +(0) cmr10 9.96265 fshow +224.32317 3.99025 moveto +(1) cmr10 9.96265 fshow +-55.04314 -9.0185 moveto +(Thread\040ids:) cmr10 9.96265 fshow +-31.5629 -19.42038 moveto +(31) cmr10 9.96265 fshow +-31.5629 -31.84076 moveto +(23) cmr10 9.96265 fshow +-31.5629 -44.26114 moveto +(15) cmr10 9.96265 fshow +-29.07224 -56.68152 moveto +(7) cmr10 9.96265 fshow +-29.07224 -69.1019 moveto +(0) cmr10 9.96265 fshow +93.32547 17.40088 moveto +(word\0400) cmr10 9.96265 fshow + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath -18.60022 -16.21019 moveto +3.60022 -16.21019 lineto stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth +newpath 3.60022 -16.21019 moveto +3.60022 0 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 5.13103 -3.6956 moveto +3.60022 0 lineto +2.06941 -3.6956 lineto + closepath +gsave fill grestore stroke +newpath -18.60022 -28.63057 moveto +61.20374 -28.63057 lineto stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth +newpath 61.20374 -28.63057 moveto +61.20374 0 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 62.73448 -3.69545 moveto +61.20374 0 lineto +59.67299 -3.69545 lineto + closepath +gsave fill grestore stroke +newpath -18.60022 -41.05095 moveto +118.80725 -41.05095 lineto stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth +newpath 118.80725 -41.05095 moveto +118.80725 0 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 120.33806 -3.6956 moveto +118.80725 0 lineto +117.27644 -3.6956 lineto + closepath +gsave fill grestore stroke +newpath -18.60022 -53.47133 moveto +176.41077 -53.47133 lineto stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth +newpath 176.41077 -53.47133 moveto +176.41077 0 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 177.94168 -3.69586 moveto +176.41077 0 lineto +174.87985 -3.69586 lineto + closepath +gsave fill grestore stroke +newpath -18.60022 -65.89171 moveto +226.81384 -65.89171 lineto stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth +newpath 226.81384 -65.89171 moveto +226.81384 0 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 228.34444 -3.6951 moveto +226.81384 0 lineto +225.28325 -3.6951 lineto + closepath +gsave fill grestore stroke +showpage +%%EOF diff --git a/web/yacco2/diagrams/linker.3 b/web/yacco2/diagrams/linker.3 new file mode 100644 index 0000000000..22000c2369 --- /dev/null +++ b/web/yacco2/diagrams/linker.3 @@ -0,0 +1,11 @@ +%!PS +%%BoundingBox: 0 0 0 0 +%%HiResBoundingBox: 0 0 0 0 +%%Creator: MetaPost 0.993 +%%CreationDate: 2007.12.03:1258 +%%Pages: 1 +%%BeginProlog +%%EndProlog +%%Page: 1 1 +showpage +%%EOF diff --git a/web/yacco2/diagrams/linker.mp b/web/yacco2/diagrams/linker.mp new file mode 100644 index 0000000000..96f52d47ce --- /dev/null +++ b/web/yacco2/diagrams/linker.mp @@ -0,0 +1,117 @@ +% file: linker.mp +input boxes +%tracingall; + +numeric u; +u=1cc; +beginfig(1); +boxjoin(a.se=b.ne); +numeric ff; +ff := defaultdy; +defaultdy:=.5u; +boxit.int(btex Interactive: file name etex); +boxit.cmd(btex Command line etex); +boxjoin(a.se=b.ne); +drawunboxed(int,cmd); + +pair c,d,e,f; +c:=cmd.e+(.25u,0); +d:=int.e+(.25u,0); +e:=.5[c,d]; +f:=e+(1u,0); +draw cmd.e--c--d--int.e; +drawarrow e..f; +defaultdy:= ff; + +show f; +boxjoin(); + +boxjoin(tmp.nw=holdr.sw;tmp.ne=holdr.se); +boxit.holdr(btex Holding file etex); +boxit.tmp(btex ``linkercmd.tmp'' etex); +boxit.linkr(btex Linker etex); +boxit.fsc(btex ``First set file''.cpp etex); +holdr.w=f; +holdr.e = linkr.w-(1u,0); +linkr.e = fsc.w-(1u,0); + +drawunboxed(holdr); +drawunboxed(tmp); +drawboxed(linkr); +drawunboxed(fsc); +drawarrow holdr.e--linkr.w; +drawarrow linkr.e--fsc.w; + + +label.bot(btex Figure 1: Linker run environment etex,linkr.s-(0,1u)); +endfig; + +% bit maps +beginfig(2); +u:=.1in; +picture c; +for i=1 upto 1: + x1:= (i-1)*32u; + x2:= i*32u; + draw (x1,0)--(x2,0)..(x2+.5u,.5u)..(x2,1u)..(x2-.5u,1.5u)..(x2,2u)--(x1,2u)--cycle; + for j=1 upto 31: + draw (x1+j*u,0)--(x1+j*u,.2u); + endfor +endfor +% fill in the map contents +for i=1 upto 32: + if ( + (i = 1) or (i = 9) or + (i = 17) or (i = 25) or + (i = 32) + ): + label("1",(x1+i*u-.5u,1u)); + else: + label("0",(x1+i*u-.5u,1u)); + fi +endfor +label.llft("Thread ids:",(x1-.5u,0)); + +boxjoin(a.sw=b.nw;a.se=b.ne); +boxit.aa("31");boxit.ba("23");boxit.ca("15");boxit.da("7");boxit.ea("0"); +aa.ne = (x1-.5u,0) -(15bp,10bp); +drawunboxed(aa,ba,ca,da,ea); +label.top("word 0",(x1+15*u,2u)); +numeric dlt; +pair mp,bp; +bp := (x1+.5u,0); +dlt:= abs ((x1 + .5u) - xpart aa.e); +mp:=aa.e+(dlt,0); +draw aa.e -- mp; +drawarrow mp--(x1+.5u,0); + +bp := (x1+.5u+8u,0); +dlt:= abs ((x1+.5u+8u) - xpart ba.e); +mp:=ba.e+(dlt,0); +draw ba.e -- mp; +drawarrow mp--bp; + +bp := (x1+.5u+16u,0); +dlt:= abs ((x1+.5u+16u) - xpart ca.e); +mp:=ca.e+(dlt,0); +draw ca.e -- mp; +drawarrow mp--bp; + +bp := (x1+.5u+24u,0); +dlt:= abs ((x1+.5u+24u) - xpart da.e); +mp:=da.e+(dlt,0); +draw da.e -- mp; +drawarrow mp--bp; + +bp := (x1+.5u+31u,0); +dlt:= abs ((x1+.5u+31u) - xpart ea.e); +mp:=ea.e+(dlt,0); +draw ea.e -- mp; +drawarrow mp--bp; + +endfig; + +% Tables +beginfig(3); +endfig; +end; diff --git a/web/yacco2/diagrams/lrksym.txt b/web/yacco2/diagrams/lrksym.txt new file mode 100644 index 0000000000..3400881a98 --- /dev/null +++ b/web/yacco2/diagrams/lrksym.txt @@ -0,0 +1,41 @@ +/* +file: lrksym.txt +Why: LR k symbols vocabulary to parse. +Note: lr1-constant-symbols is shown for clarity. It is the keyword trigger + that calls this grammar. Parsed is comments onwards. +*/ +lr1-constant-symbols +// comments +(file-name yacco2_k_symbols +,name-space NS_yacco2_k_symbols){ + eog + /@ + Used to indicate an end-of-grammar. + @/ + (sym-class LR1_eog { + user-declaration + LR1_eog(); + *** + user-implementation + LR1_eog::LR1_eog() + T_CTOR("eog",T_LR1_eog_,0,false,false){} + LR1_eog LR1_eog__; + yacco2::CAbs_lr1_sym* NS_yacco2_k_symbols::PTR_LR1_eog__ = &LR1_eog__; + *** + } + ) + .... + "|t|" AD AB(sym-class LR1_fset_transience_operator) + + /@ + 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 + extern yacco2::CAbs_lr1_sym* PTR_LR1_parallel_operator__; + .... + extern yacco2::CAbs_lr1_sym* PTR_LR1_eolr__; + *** +} + diff --git a/web/yacco2/diagrams/mpxerr.tex b/web/yacco2/diagrams/mpxerr.tex new file mode 100644 index 0000000000..bccf03277a --- /dev/null +++ b/web/yacco2/diagrams/mpxerr.tex @@ -0,0 +1,35 @@ +\gdef\mpxshipout{\shipout\hbox\bgroup + \setbox0=\hbox\bgroup} +\gdef\stopmpxshipout{\egroup \dimen0=\ht0 \advance\dimen0\dp0 + \dimen1=\ht0 \dimen2=\dp0 + \setbox0=\hbox\bgroup + \box0 + \ifnum\dimen0>0 \vrule width1sp height\dimen1 depth\dimen2 + \else \vrule width1sp height1sp depth0sp\relax + \fi\egroup + \ht0=0pt \dp0=0pt \box0 \egroup} +\mpxshipout% line 10 doc_generation.mp +xxx.mp output from \strut$O_{2}$% +\stopmpxshipout +\mpxshipout% line 11 doc_generation.mp +mpost% +\stopmpxshipout +\mpxshipout% line 12 doc_generation.mp +$\sum$ xxx railroad diagrams% +\stopmpxshipout +\mpxshipout% line 13 doc_generation.mp +\strut$O_{2}xxx.w% +\stopmpxshipout +\mpxshipout% line 14 doc_generation.mp +cweave% +\stopmpxshipout +\mpxshipout% line 15 doc_generation.mp +\strut$O_{2}$xxx.tex% +\stopmpxshipout +\mpxshipout% line 16 doc_generation.mp +pdftex% +\stopmpxshipout +\mpxshipout% line 17 doc_generation.mp +\strut$O_{2}$xxx.pdf file% +\stopmpxshipout +\end{document} diff --git a/web/yacco2/diagrams/o2_Toverview.1 b/web/yacco2/diagrams/o2_Toverview.1 new file mode 100644 index 0000000000..ec019d82fb --- /dev/null +++ b/web/yacco2/diagrams/o2_Toverview.1 @@ -0,0 +1,130 @@ +%!PS +%%BoundingBox: -4 -4 434 50 +%%HiResBoundingBox: -3.25 -3.25 433.17148 49.38104 +%%Creator: MetaPost 1.005 +%%CreationDate: 2009.11.10:0847 +%%Pages: 1 +%*Font: cmr10 9.96265 9.96265 2d:8000000001000e9be7e8 +%%BeginProlog +%%EndProlog +%%Page: 1 1 + 0 0 0 setrgbcolor +0 0 moveto +(en) cmr10 9.96265 fshow +9.6859 0 moveto +(umeration) cmr10 9.96265 fshow + 0 0.5 dtransform truncate idtransform setlinewidth pop [] 0 setdash + 1 setlinejoin 10 setmiterlimit +newpath -3 -3 moveto +56.9921 -3 lineto +56.9921 9.6536 lineto +-3 9.6536 lineto + closepath stroke +85.57635 -0.13246 moveto +(lrk) cmr10 9.96265 fshow +100.82475 -0.13246 moveto +(meta-terminal) cmr10 9.96265 fshow +165.60976 -0.13246 moveto +(constan) cmr10 9.96265 fshow +198.59715 -0.13246 moveto +(ts) cmr10 9.96265 fshow +newpath 82.57635 -3 moveto +209.40128 -3 lineto +209.40128 9.6536 lineto +82.57635 9.6536 lineto + closepath stroke +237.98553 -0.13246 moveto +(ra) cmr10 9.96265 fshow +246.59213 -0.13246 moveto +(w) cmr10 9.96265 fshow +257.10823 -0.13246 moveto +(c) cmr10 9.96265 fshow +261.25934 -0.13246 moveto +(haracters) cmr10 9.96265 fshow +newpath 234.98553 -3 moveto +304.22073 -3 lineto +304.22073 9.6536 lineto +234.98553 9.6536 lineto + closepath stroke +332.805 -0.13246 moveto +(terminals) cmr10 9.96265 fshow +newpath 329.805 -3 moveto +376.2922 -3 lineto +376.2922 9.6536 lineto +329.805 9.6536 lineto + closepath stroke +404.87646 1.18204 moveto +(errors) cmr10 9.96265 fshow +newpath 401.87646 -3 moveto +432.92148 -3 lineto +432.92148 9.6536 lineto +401.87646 9.6536 lineto + closepath stroke +184.43623 39.21252 moveto +(T) cmr10 9.96265 fshow +190.80124 39.21252 moveto +(erminal) cmr10 9.96265 fshow +226.80524 39.21252 moveto +(v) cmr10 9.96265 fshow +231.78653 39.21252 moveto +(o) cmr10 9.96265 fshow +237.04463 39.21252 moveto +(cabulary) cmr10 9.96265 fshow +newpath 181.43623 34.27533 moveto +277.43233 34.27533 lineto +277.43233 49.13104 lineto +181.43623 49.13104 lineto + closepath stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth 1 setlinecap +newpath 229.43428 34.27533 moveto +229.43428 22.51498 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 26.99605 22.51498 moveto +417.39897 22.51498 lineto stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth +newpath 26.99605 22.51498 moveto +26.99605 9.6536 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 25.46532 13.34903 moveto +26.99605 9.6536 lineto +28.52678 13.34903 lineto + closepath +gsave fill grestore stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth +newpath 145.98882 22.51498 moveto +145.98882 9.6536 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 144.45808 13.34903 moveto +145.98882 9.6536 lineto +147.51955 13.34903 lineto + closepath +gsave fill grestore stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth +newpath 269.60313 22.51498 moveto +269.60313 9.6536 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 268.0724 13.34903 moveto +269.60313 9.6536 lineto +271.13387 13.34903 lineto + closepath +gsave fill grestore stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth +newpath 353.0486 22.51498 moveto +353.0486 9.6536 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 351.51787 13.34903 moveto +353.0486 9.6536 lineto +354.57933 13.34903 lineto + closepath +gsave fill grestore stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth +newpath 417.39897 22.51498 moveto +417.39897 9.6536 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 415.86824 13.34903 moveto +417.39897 9.6536 lineto +418.9297 13.34903 lineto + closepath +gsave fill grestore stroke +showpage +%%EOF diff --git a/web/yacco2/diagrams/o2_Toverview.mp b/web/yacco2/diagrams/o2_Toverview.mp new file mode 100644 index 0000000000..1cba6f6435 --- /dev/null +++ b/web/yacco2/diagrams/o2_Toverview.mp @@ -0,0 +1,45 @@ +% file: o2_Toverview.mp +% enumeration and the 4 T classes +input boxes +u:=1cc; +pair sep,fldsep; +sep := (0,3u); +fldsep := (2u,0); +beginfig(1); +boxit.tclass(btex Terminal vocabulary etex); % enumeration +boxit.enum(btex enumeration etex); % enumeration +boxit.lr(btex lrk meta-terminal constants etex); % lrk +boxit.rc(btex raw characters etex); % raw characters +boxit.err(btex errors etex); % error tokens +boxit.t(btex terminals etex); % basic terminal tokens + +% place the boxes +enum.e + fldsep = lr.w; +lr.e + fldsep = rc.w; +rc.e + fldsep = t.w; +t.e + fldsep = err.w; +ypart enum.n = ypart lr.n = ypart rc.n = ypart t.n = ypart err.n; + + + + +drawboxed(enum); +drawboxed(lr); +drawboxed(rc); +drawboxed(t); +drawboxed(err); + +.5[tclass.e,tclass.w] - sep = .5[enum.e,err.w]; +drawboxed(tclass); +numeric a; +a := ypart tclass.c - ypart .5sep; + +draw tclass.s -- (xpart tclass.s, a); +draw (xpart enum.n,a) -- (xpart err.n,a); % horozontal line +drawarrow (xpart enum.n,a) -- enum.n; +drawarrow (xpart lr.n,a) -- lr.n; +drawarrow (xpart rc.n,a) -- rc.n; +drawarrow (xpart t.n,a) -- t.n; +drawarrow (xpart err.n,a) -- err.n; +endfig; +end;
\ No newline at end of file diff --git a/web/yacco2/diagrams/o2_overview.1 b/web/yacco2/diagrams/o2_overview.1 new file mode 100644 index 0000000000..0cc2e2270b --- /dev/null +++ b/web/yacco2/diagrams/o2_overview.1 @@ -0,0 +1,368 @@ +%!PS +%%BoundingBox: -4 -245 426 10 +%%HiResBoundingBox: -3.25 -244.11285 425.9974 9.9036 +%%Creator: MetaPost 0.993 +%%CreationDate: 2008.05.07:1511 +%%Pages: 1 +%*Font: cmr10 9.96265 9.96265 0c:80000010e4000500008147fdfbfc +%*Font: cmex10 9.96265 9.96265 50:8 +%*Font: cmmi10 9.96265 9.96265 4f:8 +%*Font: cmr7 6.97385 6.97385 32:8 +%%BeginProlog +%%EndProlog +%%Page: 1 1 + 0 0 0 setrgbcolor +0 0 moveto +(options) cmr10 9.96265 fshow + 0 0.5 dtransform truncate idtransform setlinewidth pop + [0 5 ] 2.5 setdash 1 setlinecap 1 setlinejoin 10 setmiterlimit +newpath -3 -4.9372 moveto +34.60382 -4.9372 lineto +34.60382 9.6536 lineto +-3 9.6536 lineto +-3 -4.9372 lineto stroke +75.98022 7.33955 moveto +(P) cmex10 9.96265 fshow +89.81723 -0.13245 moveto +(xxx.lex) cmr10 9.96265 fshow +124.13312 -0.13245 moveto +(grammars) cmr10 9.96265 fshow + [] 0 setdash +newpath 72.98021 -4.9372 moveto +170.41534 -4.9372 lineto +170.41534 9.6536 lineto +72.98021 9.6536 lineto + closepath stroke +211.79175 -0.13246 moveto +(T) cmr10 9.96265 fshow +218.15675 -0.13246 moveto +(erminal) cmr10 9.96265 fshow +254.16075 -0.13246 moveto +(v) cmr10 9.96265 fshow +259.14204 -0.13246 moveto +(o) cmr10 9.96265 fshow +264.40015 -0.13246 moveto +(cabulary) cmr10 9.96265 fshow +newpath 208.79173 -4.9372 moveto +304.78784 -4.9372 lineto +304.78784 9.6536 lineto +208.79173 9.6536 lineto + closepath stroke +115.66348 -38.50885 moveto +(O) cmmi10 9.96265 fshow +123.26279 -40.00325 moveto +(2) cmr7 6.97385 fshow +newpath 112.66348 -44.99574 moveto +130.73209 -44.99574 lineto +130.73209 -27.04063 lineto +112.66348 -27.04063 lineto + closepath stroke +172.10849 -38.50885 moveto +(xxx) cmr10 9.96265 fshow + 0 0.3985 dtransform truncate idtransform setlinewidth pop 0 setlinecap +newpath 188.48048 -38.30965 moveto +191.46928 -38.30965 lineto stroke +191.46928 -38.50885 moveto +(errors.log) cmr10 9.96265 fshow + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 169.10847 -43.44604 moveto +235.01181 -43.44604 lineto +235.01181 -28.59033 lineto +169.10847 -28.59033 lineto + closepath stroke +2.02997 -38.50885 moveto +(xxx) cmr10 9.96265 fshow + 0 0.3985 dtransform truncate idtransform setlinewidth pop +newpath 18.40196 -38.30965 moveto +21.39076 -38.30965 lineto stroke +21.39076 -38.50885 moveto +(tracings.log) cmr10 9.96265 fshow + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath -0.97003 -43.44604 moveto +74.2871 -43.44604 lineto +74.2871 -28.59033 lineto +-0.97003 -28.59033 lineto + closepath stroke +4.75357 -76.88522 moveto +(xxx[,sym,tbl].cpp) cmr10 9.96265 fshow +82.84987 -76.88522 moveto +(\014les) cmr10 9.96265 fshow +newpath 1.75357 -82.37593 moveto +102.50958 -82.37593 lineto +102.50958 -66.41322 lineto +1.75357 -66.41322 lineto + closepath stroke +143.88599 -76.88524 moveto +(T-Alphab) cmr10 9.96265 fshow +186.50409 -76.88524 moveto +(et) cmr10 9.96265 fshow +198.12709 -76.88524 moveto +(and) cmr10 9.96265 fshow +217.499 -76.88524 moveto +(xxx.fsc) cmr10 9.96265 fshow +250.76318 -76.88524 moveto +(\014les) cmr10 9.96265 fshow +newpath 140.88597 -82.37593 moveto +270.423 -82.37593 lineto +270.423 -66.41322 lineto +140.88597 -66.41322 lineto + closepath stroke +311.79941 -76.88524 moveto +(yyy) cmr10 9.96265 fshow +326.74341 -76.88524 moveto +(.fsc) cmr10 9.96265 fshow +344.23341 -76.88524 moveto +(O) cmmi10 9.96265 fshow +351.8327 -78.37964 moveto +(2) cmr7 6.97385 fshow +356.302 -76.88524 moveto +(link) cmr10 9.96265 fshow +372.35301 -76.88524 moveto +(er) cmr10 9.96265 fshow +384.00381 -76.88524 moveto +(mak) cmr10 9.96265 fshow +402.2687 -76.88524 moveto +(e) cmr10 9.96265 fshow +410.01741 -76.88524 moveto +(\014le) cmr10 9.96265 fshow +newpath 308.7994 -82.37593 moveto +425.7474 -82.37593 lineto +425.7474 -66.41322 lineto +308.7994 -66.41322 lineto + closepath stroke +349.04866 -115.26163 moveto +(O) cmmi10 9.96265 fshow +356.64796 -116.75603 moveto +(2) cmr7 6.97385 fshow +361.11726 -115.26163 moveto +(link) cmr10 9.96265 fshow +377.16826 -115.26163 moveto +(er) cmr10 9.96265 fshow +newpath 346.04866 -121.74852 moveto +388.49815 -121.74852 lineto +388.49815 -103.79341 lineto +346.04866 -103.79341 lineto + closepath stroke +334.63051 -153.63802 moveto +(O) cmmi10 9.96265 fshow +342.22981 -155.13242 moveto +(2) cmr7 6.97385 fshow +346.69911 -153.63802 moveto +(link) cmr10 9.96265 fshow +362.7501 -153.63802 moveto +(er) cmr10 9.96265 fshow +374.40091 -153.63802 moveto +(tables) cmr10 9.96265 fshow +newpath 331.63051 -160.12491 moveto +402.9163 -160.12491 lineto +402.9163 -142.1698 lineto +331.63051 -142.1698 lineto + closepath stroke +107.36522 -192.92764 moveto +(CC) cmr10 9.96265 fshow +newpath 104.36522 -195.92764 moveto +124.7557 -195.92764 lineto +124.7557 -183.11984 lineto +104.36522 -183.11984 lineto + closepath stroke +23.0412 -230.90015 moveto +(P) cmex10 9.96265 fshow +36.8782 -238.37215 moveto +(dispatc) cmr10 9.96265 fshow +67.6518 -238.37215 moveto +(h) cmr10 9.96265 fshow +76.50749 -238.37215 moveto +(threads) cmr10 9.96265 fshow +112.0133 -238.37215 moveto +(table,) cmr10 9.96265 fshow +139.6873 -238.37215 moveto +(grammars's) cmr10 9.96265 fshow +192.9875 -238.37215 moveto +(lr1) cmr10 9.96265 fshow +207.9592 -238.37215 moveto +(tables,) cmr10 9.96265 fshow +239.563 -238.37215 moveto +(eac) cmr10 9.96265 fshow +253.1232 -238.37215 moveto +(h) cmr10 9.96265 fshow +261.9789 -238.37215 moveto +(fsm) cmr10 9.96265 fshow +280.5759 -238.37215 moveto +(and) cmr10 9.96265 fshow +299.9477 -238.37215 moveto +(rhs) cmr10 9.96265 fshow +316.6352 -238.37215 moveto +(pro) cmr10 9.96265 fshow +331.3301 -238.37215 moveto +(cedure) cmr10 9.96265 fshow +newpath 20.0412 -243.86285 moveto +362.58528 -243.86285 lineto +362.58528 -227.90013 lineto +20.0412 -227.90013 lineto + closepath stroke +107.77136 -107.78961 moveto +(P) cmex10 9.96265 fshow +121.60837 -115.26161 moveto +(do) cmr10 9.96265 fshow +132.40126 -115.26161 moveto +(c.) cmr10 9.96265 fshow +144.02437 -115.26161 moveto +(\014les) cmr10 9.96265 fshow +164.00507 -115.26161 moveto +(of) cmr10 9.96265 fshow +175.35136 -115.26161 moveto +(xxx.[mp,w]) cmr10 9.96265 fshow +226.54846 -115.26161 moveto +(for) cmr10 9.96265 fshow +241.79686 -115.26161 moveto +(mp) cmr10 9.96265 fshow +255.91066 -115.26161 moveto +(ost,) cmr10 9.96265 fshow +274.78436 -115.26161 moveto +(cw) cmr10 9.96265 fshow +286.13066 -115.26161 moveto +(ea) cmr10 9.96265 fshow +295.26306 -115.26161 moveto +(v) cmr10 9.96265 fshow +300.24446 -115.26161 moveto +(e) cmr10 9.96265 fshow +newpath 104.77136 -121.74852 moveto +307.67227 -121.74852 lineto +307.67227 -103.79341 lineto +104.77136 -103.79341 lineto + closepath stroke + [0 5 ] 2.5 setdash 1 setlinecap +newpath 34.60382 -4.9372 moveto +112.66348 -27.04063 lineto stroke + [] 0 setdash +newpath 108.69101 -27.50664 moveto +112.66348 -27.04063 lineto +109.52505 -24.56114 lineto + closepath +gsave fill grestore stroke + [0 5 ] 2.5 setdash +newpath 208.79173 2.3582 moveto +170.41534 2.3582 lineto stroke + [] 0 setdash +newpath 174.11092 3.88899 moveto +170.41534 2.3582 lineto +174.11092 0.82741 lineto + closepath +gsave fill grestore stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth +newpath 121.69778 -4.9372 moveto +121.69778 -27.04063 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 120.167 -23.34511 moveto +121.69778 -27.04063 lineto +123.22856 -23.34511 lineto + closepath +gsave fill grestore stroke + [0 10 ] 5 setdash +newpath 130.73209 -36.01819 moveto +169.10847 -36.01819 lineto stroke + [] 0 setdash +newpath 165.4129 -37.54898 moveto +169.10847 -36.01819 lineto +165.4129 -34.4874 lineto + closepath +gsave fill grestore stroke + [0 10 ] 5 setdash +newpath 112.66348 -36.01819 moveto +74.2871 -36.01819 lineto stroke + [] 0 setdash +newpath 77.98267 -34.4874 moveto +74.2871 -36.01819 lineto +77.98267 -37.54898 lineto + closepath +gsave fill grestore stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth +newpath 121.69778 -44.99574 moveto +121.69778 -55.20639 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 121.69778 -55.20639 moveto +52.13158 -55.20639 lineto stroke +newpath 121.69778 -55.20639 moveto +205.6545 -55.20639 lineto stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth +newpath 52.13158 -55.20639 moveto +52.13158 -66.41322 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 50.60085 -62.71779 moveto +52.13158 -66.41322 lineto +53.66231 -62.71779 lineto + closepath +gsave fill grestore stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth +newpath 205.6545 -55.20639 moveto +205.6545 -66.41322 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 204.12376 -62.71779 moveto +205.6545 -66.41322 lineto +207.18523 -62.71779 lineto + closepath +gsave fill grestore stroke + [0 5 ] 2.5 setdash +newpath 270.423 -74.39458 moveto +308.7994 -74.39458 lineto stroke + [] 0 setdash +newpath 305.10382 -75.92537 moveto +308.7994 -74.39458 lineto +305.10382 -72.86378 lineto + closepath +gsave fill grestore stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth +newpath 367.2734 -82.37593 moveto +367.2734 -103.79341 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 365.74261 -100.09784 moveto +367.2734 -103.79341 lineto +368.8042 -100.09784 lineto + closepath +gsave fill grestore stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth +newpath 367.2734 -121.74852 moveto +367.2734 -142.1698 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 365.74261 -138.47423 moveto +367.2734 -142.1698 lineto +368.8042 -138.47423 lineto + closepath +gsave fill grestore stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth +newpath 114.56047 -195.92764 moveto +114.56047 -227.90013 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 113.02971 -224.20465 moveto +114.56047 -227.90013 lineto +116.09123 -224.20465 lineto + closepath +gsave fill grestore stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth +newpath 52.13158 -82.37593 moveto +52.13158 -170.33554 lineto stroke +newpath 367.2734 -160.12491 moveto +367.2734 -170.33554 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 52.13158 -170.33554 moveto +367.2734 -170.33554 lineto stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth +newpath 114.56047 -170.33554 moveto +114.56047 -183.11984 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 113.02971 -179.42436 moveto +114.56047 -183.11984 lineto +116.09123 -179.42436 lineto + closepath +gsave fill grestore stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth +newpath 121.69778 -44.99574 moveto +121.69778 -103.79341 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 120.16718 -100.09827 moveto +121.69778 -103.79341 lineto +123.2284 -100.09827 lineto + closepath +gsave fill grestore stroke +showpage +%%EOF diff --git a/web/yacco2/diagrams/o2_overview.mp b/web/yacco2/diagrams/o2_overview.mp new file mode 100644 index 0000000000..a3a7c7213f --- /dev/null +++ b/web/yacco2/diagrams/o2_overview.mp @@ -0,0 +1,105 @@ +% file: o2_overview.mp +% flow control of O2, O2linker, and c++ +input boxes +u:=1cc; +pair sep,fldsep; +sep := (0,3u); +fldsep := (3u,0); +beginfig(1); + +boxit.ipoptions(btex options etex); % compile options +boxit.ipgrammars(btex $\sum$ xxx.lex grammars etex); % input grammars +boxit.docs(btex $\sum$ doc. files of xxx.[mp,w] for mpost, cweave etex); % doc grammars +boxit.ipT(btex Terminal vocabulary etex); % T +boxit.o(btex \strut$O_{2}$ etex); % yacco2 compiler / compiler +boxit.err(btex xxx\_errors.log etex); % error log +boxit.tr(btex xxx\_tracings.log etex); % trace log and o2 chatter +boxit.occ(btex xxx[,sym,tbl].cpp files etex); % yacco2 xxx[,sym,tbl].cpp files +boxit.fsc(btex T-Alphabet and xxx.fsc files etex); % yacco2 linker files +boxit.ipfsc(btex yyy.fsc \strut$O_{2}$linker make file etex); % linker make file to build +boxit.olinker(btex \strut$O_{2}$linker etex); % o2linker +boxit.olinkerop(btex \strut$O_{2}$linker tables etex); % linker fsc + thd dispatch tble +boxit.cpp(btex CC etex); % c++ compiler +boxit.objs(btex $\sum$ dispatch threads table, grammars's lr1 tables, each fsm and rhs procedure etex); +% place the boxes +ipoptions.e + fldsep = ipgrammars.w; +ipgrammars.e + fldsep = ipT.w; +ypart ipgrammars.n = ypart ipT.n; +ypart ipoptions.n = ypart ipgrammars.n; +.5[ipgrammars.e,ipgrammars.w] - sep = .5[o.e,o.w]; + +occ.e + fldsep = fsc.w; +fsc.e + fldsep = ipfsc.w; +.5[o.e,o.w] - sep = .5[occ.e,fsc.w]; +ypart occ.n = ypart fsc.n = ypart ipfsc.n; + +.5[ipfsc.e,ipfsc.w] - sep = .5[olinker.e,olinker.w]; +.5[olinker.e,olinker.w] - sep = .5[olinkerop.e,olinkerop.w]; +docs.e + fldsep = olinker.w; +ypart docs.n = ypart olinker.n; +tr.e + fldsep = o.w; +o.e + fldsep = err.w; +ypart olinkerop.c - ypart sep = ypart cpp.c; + + +objs.n -2fldsep = .5[cpp.e,cpp.w] - sep ; + +xx = .5(xpart olinkerop.w - xpart occ.e); +yy = ypart olinkerop.w; +(xx,yy) - sep = .5[cpp.e,cpp.w]; +% form the boxes + +drawunboxed(ipoptions); +draw ipoptions.sw -- ipoptions.se -- ipoptions.ne -- ipoptions.nw -- ipoptions.sw dashed withdots; +%drawboxed(ipoptions); +drawboxed(ipgrammars); +drawboxed(ipT); +drawboxed(o); +drawboxed(err); +drawboxed(tr); + +drawboxed(occ); +drawboxed(fsc); +drawboxed(ipfsc); + +drawboxed(olinker); +drawboxed(olinkerop); +drawboxed(cpp); +drawboxed(objs); +drawboxed(docs); +% draw lined arrows between the boxes +drawarrow ipoptions.se -- o.nw dashed withdots; +drawarrow ipT.w -- ipgrammars.e dashed withdots; +drawarrow ipgrammars.s -- o.n; +pair mopt,ldeltaopt,rdeltaopt; +mopt := .5[o.e,o.w] - .5(0,ypart sep); +ldeltaopt := (xpart occ.n, ypart mopt); +rdeltaopt := (xpart fsc.n, ypart mopt); +drawarrow o.e -- err.w dashed withdots scaled 2; +drawarrow o.w -- tr.e dashed withdots scaled 2; +draw o.s -- mopt; +draw mopt -- ldeltaopt; +draw mopt -- rdeltaopt; +drawarrow ldeltaopt -- occ.n; +drawarrow rdeltaopt -- fsc.n; +drawarrow fsc.e -- ipfsc.w dashed withdots; +drawarrow ipfsc.s -- olinker.n; +drawarrow olinker.s -- olinkerop.n; + +y = ypart objs.n - ypart cpp.s; +drawarrow cpp.s -- cpp.s + (0,y); + +pair m,l,r; +numeric yy; +yy := ypart cpp.c + ypart .5sep; +m := (xpart cpp.n,yy); +l := (xpart occ.s, yy); +r := (xpart olinkerop.s, yy); +draw occ.s -- l; +draw olinkerop.s -- r; +draw l -- r; +drawarrow m -- cpp.n; +drawarrow o.s -- (xpart o.s, ypart docs.n); + +endfig; +end;
\ No newline at end of file diff --git a/web/yacco2/diagrams/o2_structures.1 b/web/yacco2/diagrams/o2_structures.1 new file mode 100644 index 0000000000..974e035ff5 --- /dev/null +++ b/web/yacco2/diagrams/o2_structures.1 @@ -0,0 +1,80 @@ +%!PS +%%BoundingBox: -160 -43 201 11 +%%Creator: MetaPost +%%CreationDate: 2006.11.23:1811 +%%Pages: 1 +%*Font: cmr10 9.96265 9.96265 0d:80000000000002c002400e89f728 +%%EndProlog +%%Page: 1 1 +0 0 moveto +(State) cmr10 9.96265 fshow + 0 0.5 dtransform truncate idtransform setlinewidth pop [] 0 setdash + 1 setlinejoin 10 setmiterlimit +newpath -3 -3 moveto +25.69272 -3 lineto +25.69272 9.8078 lineto +-3 9.8078 lineto + closepath stroke +-156.13535 -37.40779 moveto +(V) cmr10 9.96265 fshow +-149.49355 -37.40779 moveto +(ectors) cmr10 9.96265 fshow +-120.62955 -37.40779 moveto +(map) cmr10 9.96265 fshow +newpath -159.13535 -42.34499 moveto +-98.81125 -42.34499 lineto +-98.81125 -27.59999 lineto +-159.13535 -27.59999 lineto + closepath stroke +-70.22699 -37.46315 moveto +(F) cmr10 9.96265 fshow +-64.55379 -37.46315 moveto +(ollo) cmr10 9.96265 fshow +-49.33308 -37.46315 moveto +(w) cmr10 9.96265 fshow +-38.81699 -37.46315 moveto +(set) cmr10 9.96265 fshow +-23.26419 -37.46315 moveto +(map) cmr10 9.96265 fshow +newpath -73.22699 -42.40034 moveto +-1.44577 -42.40034 lineto +-1.44577 -27.54463 lineto +-73.22699 -27.54463 lineto + closepath stroke +27.13852 -37.46315 moveto +(En) cmr10 9.96265 fshow +39.17671 -37.46315 moveto +(try) cmr10 9.96265 fshow +55.53212 -37.46315 moveto +(sym) cmr10 9.96265 fshow +72.74542 -37.46315 moveto +(b) cmr10 9.96265 fshow +78.55692 -37.46315 moveto +(ol) cmr10 9.96265 fshow +newpath 24.13849 -42.40034 moveto +89.30573 -42.40034 lineto +89.30573 -27.54463 lineto +24.13849 -27.54463 lineto + closepath stroke +117.88998 -38.43175 moveto +(Con\015ict) cmr10 9.96265 fshow +155.52669 -38.43175 moveto +(states) cmr10 9.96265 fshow +183.86488 -38.43175 moveto +(list) cmr10 9.96265 fshow +newpath 114.88998 -41.43175 moveto +200.2038 -41.43175 lineto +200.2038 -28.51323 lineto +114.88998 -28.51323 lineto + closepath stroke + 1 setlinecap +newpath -3 -3 moveto +-98.81125 -27.59999 lineto stroke +newpath 8.47691 -3 moveto +-37.33638 -27.54463 lineto stroke +newpath 17.08481 -3 moveto +56.7221 -27.54463 lineto stroke +newpath 25.69272 -3 moveto +157.54689 -28.51323 lineto stroke +showpage +%%EOF diff --git a/web/yacco2/diagrams/o2_structures.2 b/web/yacco2/diagrams/o2_structures.2 new file mode 100644 index 0000000000..770481d2b0 --- /dev/null +++ b/web/yacco2/diagrams/o2_structures.2 @@ -0,0 +1,263 @@ +%!PS +%%BoundingBox: 15 -4 344 146 +%%Creator: MetaPost +%%CreationDate: 2006.11.23:1811 +%%Pages: 1 +%*Font: cmr10 9.96265 9.96265 27:8000102804040a3fa7dfe +%*Font: cmsy10 9.96265 9.96265 00:800100002 +%%EndProlog +%%Page: 1 1 +15.79213 138.22278 moveto +(v) cmr10 9.96265 fshow +20.77342 138.22278 moveto +(ectors) cmr10 9.96265 fshow + 0 0.3985 dtransform truncate idtransform setlinewidth pop [] 0 setdash + 0 setlinecap 1 setlinejoin 10 setmiterlimit +newpath 46.91432 138.42198 moveto +49.90312 138.42198 lineto stroke +49.90312 138.22278 moveto +(map[) cmr10 9.96265 fshow +74.80983 138.22278 moveto +(eno) cmr10 9.96265 fshow +93.07463 138.22278 moveto +(]:) cmr10 9.96265 fshow +103.03732 138.22278 moveto +(sym) cmr10 9.96265 fshow +120.25063 138.22278 moveto +(b) cmr10 9.96265 fshow +126.06213 138.22278 moveto +(ol's) cmr10 9.96265 fshow +143.82893 138.22278 moveto +(en) cmr10 9.96265 fshow +153.51483 138.22278 moveto +(umerate) cmr10 9.96265 fshow +28.58426 124.46204 moveto +(\017) cmsy10 9.96265 fshow +36.88646 124.46204 moveto +(state's) cmr10 9.96265 fshow +67.99207 124.46204 moveto +(elemen) cmr10 9.96265 fshow +97.60326 124.46204 moveto +(t) cmr10 9.96265 fshow +104.79855 124.46204 moveto +(list) cmr10 9.96265 fshow +28.58426 112.6385 moveto +(\017) cmsy10 9.96265 fshow +36.88646 112.6385 moveto +(state) cmr10 9.96265 fshow +newpath 58.57185 112.8377 moveto +61.56065 112.8377 lineto stroke +61.56065 112.6385 moveto +(elemen) cmr10 9.96265 fshow +91.17186 112.6385 moveto +(t) cmr10 9.96265 fshow +98.36716 112.6385 moveto +(") cmsy10 9.96265 fshow +41.37639 99.84637 moveto +(\017) cmsy10 9.96265 fshow +49.67859 99.84637 moveto +(grammar) cmr10 9.96265 fshow +92.35199 99.84637 moveto +(tree) cmr10 9.96265 fshow +112.305 99.84637 moveto +(no) cmr10 9.96265 fshow +123.09789 99.84637 moveto +(de) cmr10 9.96265 fshow +136.3814 99.84637 moveto +(") cmsy10 9.96265 fshow +41.37639 87.05424 moveto +(\017) cmsy10 9.96265 fshow +49.67859 87.05424 moveto +(closure) cmr10 9.96265 fshow +82.97049 87.05424 moveto +(state) cmr10 9.96265 fshow +107.37898 87.05424 moveto +(") cmsy10 9.96265 fshow +41.37639 74.26212 moveto +(\017) cmsy10 9.96265 fshow +49.67859 74.26212 moveto +(go) cmr10 9.96265 fshow +newpath 60.23898 74.46132 moveto +63.22778 74.46132 lineto stroke +63.22778 74.26212 moveto +(to) cmr10 9.96265 fshow +75.40439 74.26212 moveto +(state) cmr10 9.96265 fshow +99.81288 74.26212 moveto +(") cmsy10 9.96265 fshow +41.37639 61.46999 moveto +(\017) cmsy10 9.96265 fshow +49.67859 61.46999 moveto +(previous) cmr10 9.96265 fshow +89.3355 61.46999 moveto +(state) cmr10 9.96265 fshow +113.74399 61.46999 moveto +(") cmsy10 9.96265 fshow +41.37639 48.67786 moveto +(\017) cmsy10 9.96265 fshow +49.67859 48.67786 moveto +(reduced) cmr10 9.96265 fshow +86.78949 48.67786 moveto +(state) cmr10 9.96265 fshow +111.19798 48.67786 moveto +(") cmsy10 9.96265 fshow +41.37639 35.88573 moveto +(\017) cmsy10 9.96265 fshow +49.67859 35.88573 moveto +(previous) cmr10 9.96265 fshow +89.3355 35.88573 moveto +(state) cmr10 9.96265 fshow +113.74399 35.88573 moveto +(elemen) cmr10 9.96265 fshow +143.3552 35.88573 moveto +(t) cmr10 9.96265 fshow +41.37639 22.125 moveto +(\017) cmsy10 9.96265 fshow +49.67859 22.125 moveto +(next) cmr10 9.96265 fshow +72.09459 22.125 moveto +(state) cmr10 9.96265 fshow +96.50308 22.125 moveto +(elemen) cmr10 9.96265 fshow +126.11429 22.125 moveto +(t) cmr10 9.96265 fshow +41.37639 10.30147 moveto +(\017) cmsy10 9.96265 fshow +49.67859 10.30147 moveto +(LA) cmr10 9.96265 fshow +66.69809 10.30147 moveto +(set) cmr10 9.96265 fshow +82.25089 10.30147 moveto +(") cmsy10 9.96265 fshow +41.37639 -3.45926 moveto +(\017) cmsy10 9.96265 fshow +49.67859 -3.45926 moveto +(Common) cmr10 9.96265 fshow +92.29669 -3.45926 moveto +(LA) cmr10 9.96265 fshow +109.3162 -3.45926 moveto +(set) cmr10 9.96265 fshow +124.86899 -3.45926 moveto +(index) cmr10 9.96265 fshow +169.29768 125.43065 moveto +(follo) cmr10 9.96265 fshow +187.56258 125.43065 moveto +(w) cmr10 9.96265 fshow +newpath 195.35559 125.62985 moveto +198.34439 125.62985 lineto stroke +198.34439 125.43065 moveto +(set) cmr10 9.96265 fshow +newpath 211.17398 125.62985 moveto +214.16289 125.62985 lineto stroke +214.16289 125.43065 moveto +(map[) cmr10 9.96265 fshow +239.06949 125.43065 moveto +(eno) cmr10 9.96265 fshow +257.33438 125.43065 moveto +(]:) cmr10 9.96265 fshow +267.29709 125.43065 moveto +(rule's) cmr10 9.96265 fshow +293.94708 125.43065 moveto +(en) cmr10 9.96265 fshow +303.63309 125.43065 moveto +(umerate) cmr10 9.96265 fshow +194.88194 112.6385 moveto +(\017) cmsy10 9.96265 fshow +203.18414 112.6385 moveto +(follo) cmr10 9.96265 fshow +221.44904 112.6385 moveto +(w) cmr10 9.96265 fshow +newpath 229.24205 112.8377 moveto +232.23085 112.8377 lineto stroke +232.23085 112.6385 moveto +(set) cmr10 9.96265 fshow +newpath 245.06055 112.8377 moveto +248.04935 112.8377 lineto stroke +248.04935 112.6385 moveto +(elemen) cmr10 9.96265 fshow +277.66054 112.6385 moveto +(t) cmr10 9.96265 fshow +284.85574 112.6385 moveto +(") cmsy10 9.96265 fshow +194.88194 99.84637 moveto +(\017) cmsy10 9.96265 fshow +203.18414 99.84637 moveto +(rule) cmr10 9.96265 fshow +223.13715 99.84637 moveto +(no) cmr10 9.96265 fshow +240.29504 99.84637 moveto +(\017) cmsy10 9.96265 fshow +251.91814 99.84637 moveto +(rule) cmr10 9.96265 fshow +271.87114 99.84637 moveto +(def) cmr10 9.96265 fshow +288.19875 99.84637 moveto +(tree) cmr10 9.96265 fshow +308.15175 99.84637 moveto +(") cmsy10 9.96265 fshow +194.88194 87.05424 moveto +(\017) cmsy10 9.96265 fshow +203.18414 87.05424 moveto +(state) cmr10 9.96265 fshow +227.59264 87.05424 moveto +(elemen) cmr10 9.96265 fshow +257.20384 87.05424 moveto +(t) cmr10 9.96265 fshow +264.39914 87.05424 moveto +(") cmsy10 9.96265 fshow +276.02225 87.05424 moveto +(\017) cmsy10 9.96265 fshow +287.64525 87.05424 moveto +(it's) cmr10 9.96265 fshow +304.30504 87.05424 moveto +(state) cmr10 9.96265 fshow +328.71355 87.05424 moveto +(") cmsy10 9.96265 fshow +194.88194 74.26212 moveto +(\017) cmsy10 9.96265 fshow +203.18414 74.26212 moveto +(follo) cmr10 9.96265 fshow +221.44904 74.26212 moveto +(w) cmr10 9.96265 fshow +231.96515 74.26212 moveto +(set) cmr10 9.96265 fshow +247.51794 74.26212 moveto +(of) cmr10 9.96265 fshow +258.86435 74.26212 moveto +(T) cmr10 9.96265 fshow +266.05954 74.26212 moveto +(\000) cmsy10 9.96265 fshow +273.80835 74.26212 moveto +(in) cmr10 9.96265 fshow +282.11055 74.26212 moveto +(\000) cmsy10 9.96265 fshow +289.85924 74.26212 moveto +(stbl) cmr10 9.96265 fshow +309.28644 74.26212 moveto +(") cmsy10 9.96265 fshow +194.88194 61.46999 moveto +(\017) cmsy10 9.96265 fshow +203.18414 61.46999 moveto +(transitions:) cmr10 9.96265 fshow +256.45674 61.46999 moveto +(follo) cmr10 9.96265 fshow +274.72165 61.46999 moveto +(w) cmr10 9.96265 fshow +newpath 282.51465 61.66919 moveto +285.50345 61.66919 lineto stroke +285.50345 61.46999 moveto +(set) cmr10 9.96265 fshow +newpath 298.33304 61.66919 moveto +301.32184 61.66919 lineto stroke +301.32184 61.46999 moveto +(elemen) cmr10 9.96265 fshow +330.93314 61.46999 moveto +(t) cmr10 9.96265 fshow +338.12834 61.46999 moveto +(") cmsy10 9.96265 fshow +194.88194 49.92322 moveto +(\017) cmsy10 9.96265 fshow +203.18414 49.92322 moveto +(merges:) cmr10 9.96265 fshow +showpage +%%EOF diff --git a/web/yacco2/diagrams/o2_structures.mp b/web/yacco2/diagrams/o2_structures.mp new file mode 100644 index 0000000000..0ff0d10909 --- /dev/null +++ b/web/yacco2/diagrams/o2_structures.mp @@ -0,0 +1,59 @@ +% file: o2_structures.mp +input boxes +beginfig(1); +u=1cc; +% state anatomy +boxit.state(btex State etex); +boxit.svectors_map(btex Vectors map etex); +boxit.follow_set_map(btex Follow set map etex); +boxit.e_symbol(btex Entry symbol etex); +boxit.conflict_states(btex Conflict states list etex); + +.5[state.e,state.w] - (0,3u) = .5[follow_set_map.e,e_symbol.w]; +svectors_map.e + (2u,0) = follow_set_map.w; +follow_set_map.e + (2u,0) = e_symbol.w; +e_symbol.e + (2u,0) = conflict_states.w; +drawboxed(state); +drawboxed(svectors_map,follow_set_map,e_symbol,conflict_states); +draw state.sw -- svectors_map.ne; +draw .6[state.se,state.sw] -- .5[follow_set_map.ne,follow_set_map.nw]; +draw .3[state.se,state.sw] -- .5[e_symbol.ne,e_symbol.nw]; +draw state.se -- .5[conflict_states.ne,conflict_states.nw]; +endfig; + +beginfig(2); +% outline state's vectors-map +label.rt(btex vectors$\_$map$[$ eno $]$: symbol's enumerate etex,(1u,11u)); +label.rt(btex $\bullet\ $state's element list etex,(2u,10u)); +label.rt(btex $\bullet\ $state$\_$element\ $\uparrow$ etex,(2u,9u)); + label.rt(btex $\bullet\ $grammar tree node $\uparrow$ etex,(3u,8u)); + label.rt(btex $\bullet\ $closure state $\uparrow$ etex,(3u,7u)); + label.rt(btex $\bullet\ $go$\_$to state $\uparrow$ etex,(3u,6u)); + label.rt(btex $\bullet\ $previous state $\uparrow$ etex,(3u,5u)); + label.rt(btex $\bullet\ $reduced state $\uparrow$ etex,(3u,4u)); + label.rt(btex $\bullet\ $previous state element etex,(3u,3u)); + label.rt(btex $\bullet\ $next state element etex,(3u,2u)); + label.rt(btex $\bullet\ $LA set $\uparrow$ etex,(3u,1u)); + label.rt(btex $\bullet\ $Common LA set index etex,(3u,0u)); + + +% outline follow set +label.rt(btex follow$\_$set$\_$map$[$ eno $]$: rule's enumerate etex,(13u,10u)); +label.rt(btex $\bullet\ $follow$\_$set$\_$element\ $\uparrow$ etex,(15u,9u)); + label.rt(btex $\bullet\ $rule no \ $\bullet\ $ rule def tree $\uparrow$ etex,(15u,8u)); + label.rt(btex $\bullet\ $state element $\uparrow$ \ $\bullet\ $ it's state $\uparrow$ etex,(15u,7u)); + label.rt(btex $\bullet\ $follow set of T$-$in$-$stbl $\uparrow$ etex,(15u,6u)); + label.rt(btex $\bullet\ $transitions: follow$\_$set$\_$element $\uparrow$ etex,(15u,5u)); + label.rt(btex $\bullet\ $merges: etex,(15u,4u)); + +%label.rt(btex follow$\_$set$\_$map$[$ eno $]$: rule's enumerate etex,(1u,-1u)); +%label.rt(btex $\bullet\ $follow$\_$set$\_$element\ $\uparrow$ etex,(2u,-2u)); + %label.rt(btex $\bullet\ $rule no \ $\bullet\ $ rule def tree $\uparrow$ etex,(3u,-3u)); + %label.rt(btex $\bullet\ $state element $\uparrow$ \ $\bullet\ $ it's state $\uparrow$ etex,(3u,-4u)); + %label.rt(btex $\bullet\ $follow set of T$-$in$-$stbl $\uparrow$ etex,(3u,-5u)); + %label.rt(btex $\bullet\ $transitions: follow$\_$set$\_$element $\uparrow$ etex,(3u,-6u)); + %label.rt(btex $\bullet\ $merges: etex,(3u,-7u)); + +endfig; + +end; diff --git a/web/yacco2/diagrams/o2diag.mp b/web/yacco2/diagrams/o2diag.mp new file mode 100644 index 0000000000..85f73f1b25 --- /dev/null +++ b/web/yacco2/diagrams/o2diag.mp @@ -0,0 +1,506 @@ +% file: o2diag.mp - attempt to produce grammar railroad diagrams +input boxes +%tracingall; +%tracingmacros := 1; +%tracingequations := 1; +defaultfont := "cmtt8"; + + +pair sr_indent,sr_dy,sr_bet_elem,sr[],spillover_sr[],exit_bnd; +numeric how_drw_obj; +numeric dx_exit,dy_exit; +numeric max_dx_bnd; +numeric half_exit; +numeric lft_recursion_ht; +numeric above,below,gap; + +vardef is_epsilon_present(expr Str)= + boolean present;present:=false; + if(length Str = 1): + if (substring (0,1) of Str = " "): + present:=true; + fi; + fi; + present +enddef; + +vardef is_underscore_present(expr Str)= + boolean present;present:=false; + for i=1 upto length Str: + if substring (i-1,i) of Str = "_": + present:=true; + fi; + endfor + present +enddef; + +vardef bld_cmd_to_exec(expr Object,Name,Prefix)= + string cmd;cmd := Prefix&Object&"( btex "; + string nnm;nnm := ""; + for i=1 upto length Name: + if substring (i-1,i) of Name = "_": + nnm := nnm & "\"; + nnm := nnm & substring (i-1,i) of Name; + else: + nnm := nnm & substring (i-1,i) of Name; + fi; + endfor + cmd := cmd & nnm; + cmd := cmd & " etex);"; + cmd +enddef; + +def exec_cmd(text Cmd)= + scantokens Cmd; +enddef; + +def init_variables = + sr_indent :=(.3in,0); + sr_dy :=(0,.4in); + sr_bet_elem :=(.15in,0); + sr[0]:= sr_indent - (0,.2in); + lft_recursion_ht:=.15in; + dx_exit:=0; + dy_exit:=0; + above=below=.1in; + gap=.025in; + max_dx_bnd := 4.5in; +enddef; + +vardef cuta(suffix a,b) expr p = +drawarrow p cutbefore bpath.a cutafter bpath.b; +point .5*length p of p +enddef; +vardef self@# expr p = +cuta(@#,@#) @#.c{curl10}..@#.c+p..{curl10}@#.c +enddef; + +def crt_rule_box(expr ruleno) = + string vnm; vnm := "rule_" & rule_names[ruleno].vname; + string lnm; lnm := rule_names[ruleno].literal; + string Cmd;Cmd := ""; + boolean underscore_present; + underscore_present := is_underscore_present(lnm); + if(underscore_present = false): + forsuffixes i = scantokens vnm : + boxit.i(substring (0,infinity) of lnm); + endfor + else: + %Cmd := bld_cmd_to_exec(vnm,lnm,"boxit."); + %exec_cmd(Cmd); + forsuffixes i = scantokens vnm : + boxit.i(substring (0,infinity) of lnm); + endfor + fi +enddef; + +def drw_rule_box(expr ruleno) = + string vnm; vnm := "rule_" & rule_names[ruleno].vname; + string lnm; lnm := rule_names[ruleno].literal; + forsuffixes i = scantokens vnm : + drawunboxed(i); + endfor +enddef; + +def crt_rule(expr ruleno,subruleno,elemno) = + string vnm; vnm := rhs_elems[ruleno][subruleno][elemno].vname; + string nm; nm := rhs_elems[ruleno][subruleno][elemno].literal; + forsuffixes i = scantokens vnm : + boxit.i(substring (0,infinity) of nm); + endfor +enddef; + +def crt_terminal(expr ruleno,subruleno,elemno) = + string vnm; vnm := rhs_elems[ruleno][subruleno][elemno].vname; + string nm; nm := rhs_elems[ruleno][subruleno][elemno].literal; + forsuffixes i = scantokens vnm : + circleit.i(substring (0,infinity) of nm); + i.dx=i.dy;%make oval + endfor +enddef; + +def align_sr_start expr sr_no = + if(sr_no = 1): + sr[sr_no] := sr[0]; + else: + if(ypart spillover_sr[sr_no - 1] <> 0): + sr[sr_no] := spillover_sr[sr_no - 1] - sr_dy; + else: + sr[sr_no] := sr[sr_no - 1] - sr_dy; + fi + fi +enddef; + +def align_spec_sr_start expr sr_no = + sr[sr_no] := sr[0]; +enddef; + +vardef has_spillover_occured(suffix frm,too)= + boolean spillover;spillover:=false; + pair rt_obj_pos; + %%% this makes mpost crazy when bpath the new element + %%%rt_obj_pos := urcorner bpath.too - ulcorner bpath.too; + %%%numeric rt_obj_size;rt_obj_size := xpart rt_obj_pos; + + %%%numeric sxsxsxsx; sxsxsxsx := xpart urcorner too.w; + %%%rt_obj_pos := urcorner bpath.too - ulcorner bpath.too; + %%%numeric rt_obj_size;rt_obj_size := xpart rt_obj_pos; + + + pair cur_pos;cur_pos := urcorner bpath.frm; + numeric new_rt_pos; + new_rt_pos := xpart sr_bet_elem; + new_rt_pos := new_rt_pos + xpart cur_pos; + %%%new_rt_pos := new_rt_pos + rt_obj_size; + if(new_rt_pos > max_dx_bnd):%shift down into start pt + spillover := true; + fi + spillover +enddef; + +def hz_align_rhs(expr rule_no,subrule_no) = + spillover_sr[subrule_no] := sr_indent; + for k=1 step 1 until rule_s_subrule_no_elems[rule_no][subrule_no]: % rhs's elems + string vnm; vnm := rhs_elems[rule_no][subrule_no][k].vname; + forsuffixes i=scantokens vnm: + if(k=1): + i.w = sr[subrule_no] + sr_bet_elem; + else: + % fetch previous elem + numeric j; j := k-1; + string pvnm; pvnm := rhs_elems[rule_no][subrule_no][j].vname; + forsuffixes pi=scantokens pvnm: + if(has_spillover_occured(pi,i)=true):%shift down into start pt + if(ypart spillover_sr[subrule_no] = 0): + spillover_sr[subrule_no] := sr[subrule_no]; + fi + spillover_sr[subrule_no] := spillover_sr[subrule_no] - sr_dy; + i.w = spillover_sr[subrule_no] + sr_bet_elem; + else: + i.w = pi.e + sr_bet_elem; + fi + endfor + fi; + endfor + endfor +enddef; + +def det_exit_bnd(expr rule_no) = + dx_exit := 0; + dy_exit := 0; + for no_sr=1 step 1 until rule_s_no_rhs[rule_no]: + for k=1 step 1 until rule_s_subrule_no_elems[rule_no][no_sr]: % rhs's elems + string vnm; vnm := rhs_elems[rule_no][no_sr][k].vname; + forsuffixes i=scantokens vnm: + if(xpart urcorner bpath.i > dx_exit): + dx_exit := xpart urcorner bpath.i; + fi; + endfor + endfor + endfor +enddef; + +def det_spec_sr_exit_bnd(expr rule_no,subruleno) = + dx_exit := 0; + dy_exit := 0; + for no_sr=subruleno step 1 until subruleno: + for k=1 step 1 until rule_s_subrule_no_elems[rule_no][no_sr]: % rhs's elems + string vnm; vnm := rhs_elems[rule_no][no_sr][k].vname; + forsuffixes i=scantokens vnm: + if(xpart urcorner bpath.i > dx_exit): + dx_exit := xpart urcorner bpath.i; + fi; + endfor + endfor + endfor +enddef; + +def crt_rhs_elems(expr rule_no,subrule_no) = + for k=1 step 1 until rule_s_subrule_no_elems[rule_no][subrule_no]: % rhs's elems + how_drw_obj := rhs_elems[rule_no][subrule_no][k].Drw_how; + if ((how_drw_obj = Box_solid) or (how_drw_obj = Box_dotted)): + crt_rule(rule_no,subrule_no,k); + else: + crt_terminal(rule_no,subrule_no,k); + fi; + endfor +enddef; + +def drw_spec_vt_exit_line(expr sr_no) = + numeric ybot; + if(ypart spillover_sr[sr_no] = 0): + ybot := ypart sr[sr_no]; + else: + ybot := ypart spillover_sr[sr_no]; + fi + draw (dx_exit,ypart sr[sr_no]+above) .. (dx_exit,ybot-below); + draw (dx_exit+gap,ypart sr[sr_no]+above) .. (dx_exit+gap,ybot-below); +enddef; + +def drw_spec_vt_start_line(expr sr_no) = + numeric ybot; + if(ypart spillover_sr[sr_no] = 0): + ybot := ypart sr[sr_no]; + else: + ybot := ypart spillover_sr[sr_no]; + fi + draw (xpart sr_indent,ypart sr[sr_no]+above) .. (xpart sr_indent,ybot-below); + for i=sr_no step 1 until sr_no: + draw(sr[i]..sr[i]+(xpart sr_bet_elem,0));%start arrow + endfor +enddef; + +def drw_vt_exit_line(expr to) = + numeric ybot; + if(ypart spillover_sr[to] = 0): + ybot := ypart sr[to]; + else: + ybot := ypart spillover_sr[to]; + fi + draw (dx_exit,ypart sr[1]+above) .. (dx_exit,ybot-below); + draw (dx_exit+gap,ypart sr[1]+above) .. (dx_exit+gap,ybot-below); +enddef; + +def drw_vt_start_line(expr to) = + numeric ybot; + if(ypart spillover_sr[to] = 0): + ybot := ypart sr[to]; + else: + ybot := ypart spillover_sr[to]; + fi + draw (xpart sr_indent,ypart sr[1]+above) .. (xpart sr_indent,ybot-below); + for i=1 step 1 until to: + draw(sr[i]..sr[i]+(xpart sr_bet_elem,0));%start arrow + endfor +enddef; + +def drw_snake(suffix frm,too)= + pair jjj; jjj := (xpart frm.e+.1in,ypart frm.e); + draw frm.e--jjj; + pair dxdy; dxdy := .5[frm.s,too.n]; + dxdy := (xpart jjj,ypart dxdy); + draw jjj--dxdy; + pair topof_too;topof_too := (xpart too.n,ypart dxdy); + draw dxdy--topof_too; + + drawarrow(topof_too..too.n); +enddef; + +def drw_rhs(expr ruleno,subruleno) = + numeric lst_elem; + lst_elem := rule_s_subrule_no_elems[ruleno][subruleno]; + for e=1 step 1 until lst_elem: + string vnm; vnm := rhs_elems[ruleno][subruleno][e].vname; + string lnm; lnm := rhs_elems[ruleno][subruleno][e].literal; + boolean how_dotted;% true dotted , false solid + how_drw_obj := rhs_elems[ruleno][subruleno][e].Drw_how; + if(is_epsilon_present(lnm) = false): + forsuffixes i = scantokens vnm : + if((how_drw_obj = Box_solid) or ((how_drw_obj = Circle_solid))): + drawboxed(i); + else: + fixsize(i); + fixpos(i); + draw pic_mac_.i;% contents + if(how_drw_obj = Circle_dotted): + draw bpath.i dashed withdots;%dashed dots + else: + draw bpath.i dashed evenly;%dashed line + fi + fi + endfor + else: + forsuffixes i = scantokens vnm : + fixsize(i); + fixpos(i); + endfor + fi + endfor + % link by arrows + for e=1 step 1 until lst_elem: + string vnm; vnm := rhs_elems[ruleno][subruleno][e].vname; + forsuffixes i = scantokens vnm : + if(e < lst_elem ): + string nvnm; nvnm := rhs_elems[ruleno][subruleno][e+1].vname; + how_drw_obj := rhs_elems[ruleno][subruleno][e+1].Drw_how; + forsuffixes j = scantokens nvnm : + if(ypart i.c = ypart j.c):% are px + px+1 on same line? + if(how_drw_obj = Box_dotted):%called thread y then reverse arrow + drawarrow(cuta(j,i) j.c..i.c);%link elements with arrows + else: + drawarrow(cuta(i,j) i.c..j.c);%link elements with arrows + fi + else:%snake your way + drw_snake(i,j); + fi + endfor + fi + endfor + endfor +enddef; + +def drw_spec_rhs(expr ruleno,subruleno) = + numeric lst_elem; + lst_elem := rule_s_subrule_no_elems[ruleno][subruleno]; + for e=1 step 1 until lst_elem: + string vnm; vnm := rhs_elems[ruleno][subruleno][e].vname; + string lnm; lnm := rhs_elems[ruleno][subruleno][e].literal; + boolean how_dotted;% true dotted , false solid + how_drw_obj := rhs_elems[ruleno][subruleno][e].Drw_how; + if(is_epsilon_present(lnm) = false): + forsuffixes i = scantokens vnm : + if((how_drw_obj = Box_solid) or ((how_drw_obj = Circle_solid))): + drawboxed(i); + else: + fixsize(i); + fixpos(i); + draw pic_mac_.i;% contents + if(how_drw_obj = Circle_dotted): + draw bpath.i dashed withdots;%dashed dots + else: + draw bpath.i dashed evenly;%dashed line + fi + fi + endfor + else: + forsuffixes i = scantokens vnm : + fixsize(i); + fixpos(i); + endfor + fi + endfor + % link by arrows + for e=1 step 1 until lst_elem: + string vnm; vnm := rhs_elems[ruleno][subruleno][e].vname; + forsuffixes i = scantokens vnm : + if(e < lst_elem ): + string nvnm; nvnm := rhs_elems[ruleno][subruleno][e+1].vname; + how_drw_obj := rhs_elems[ruleno][subruleno][e+1].Drw_how; + forsuffixes j = scantokens nvnm : + if(ypart i.c = ypart j.c):% are px + px+1 on same line? + if(how_drw_obj = Box_dotted):%called thread y then reverse arrow + drawarrow(cuta(j,i) j.c..i.c);%link elements with arrows + else: + drawarrow(cuta(i,j) i.c..j.c);%link elements with arrows + fi + else:%snake your way + drw_snake(i,j); + fi + endfor + fi + endfor + endfor +enddef; + +def drw_rule_s_rhs(expr ruleno) = + for sr=1 step 1 until rule_s_no_rhs[ruleno]: + drw_rhs(ruleno,sr); + endfor + drw_rule_s_bnd_lines(ruleno); +enddef; + +def drw_rule_s_spec_rhs(expr ruleno,subruleno) = + for sr=subruleno step 1 until subruleno: + drw_spec_rhs(ruleno,sr); + endfor + drw_rule_s_spec_subrule_bnd_lines(ruleno,subruleno); + drw_rule_s_spec_subrule_parms(ruleno,subruleno); +enddef; + +def drw_left_recursion_line(expr ruleno,subruleno,exitbnd) = + string lrnm; lrnm := rule_names[ruleno].literal; + string lenm; lenm := rhs_elems[ruleno][subruleno][1].literal; + if(rule_s_subrule_no_elems[ruleno][subruleno] > 1): % lft recur reqs 2 or elems + if(lrnm = lenm): + string vnm; vnm := rhs_elems[ruleno][subruleno][2].vname; + half_exit := xpart exitbnd - xpart sr_bet_elem; + forsuffixes $=scantokens vnm: + draw (half_exit,ypart exitbnd)-- + (half_exit,ypart $.c + lft_recursion_ht) + -- $.c + (0,lft_recursion_ht) -- $.n dashed withdots; + endfor + fi + fi +enddef; + +def drw_rule_s_spec_subrule_parms(expr ruleno,subruleno) = + numeric lst_elem; + lst_elem := rule_s_subrule_no_elems[ruleno][subruleno]; + for e=1 step 1 until lst_elem: + string vnm; vnm := rhs_elems[ruleno][subruleno][e].vname; + forsuffixes i = scantokens vnm : + string rst; + rst := decimal e; + label.bot(rst,i.s); + endfor + endfor +enddef; + +def drw_rule_s_spec_subrule_bnd_lines(expr ruleno,subruleno) = + det_spec_sr_exit_bnd(ruleno,subruleno);% determine exit line bnds of rule + dx_exit := dx_exit + 2* (xpart sr_bet_elem); + numeric sr_lst_elem; + for srno=subruleno step 1 until subruleno: + sr_lst_elem := rule_s_subrule_no_elems[ruleno][srno]; + string vnm; vnm := rhs_elems[ruleno][srno][sr_lst_elem].vname; + string lnm; lnm := rhs_elems[ruleno][srno][sr_lst_elem].literal; + forsuffixes i = scantokens vnm : + dy_exit := ypart i.e; + exit_bnd := (dx_exit,dy_exit); + if(is_epsilon_present(lnm) = true): + draw(i.w..exit_bnd);% draw ht exit line + else: + draw(i.e..exit_bnd);% draw ht exit line + drw_left_recursion_line(ruleno,srno,exit_bnd); + fi + endfor + endfor + drw_spec_vt_exit_line(subruleno); + drw_spec_vt_start_line(subruleno); +enddef; + +def drw_rule_s_bnd_lines(expr ruleno) = + det_exit_bnd(ruleno);% determine exit line bnds of rule + dx_exit := dx_exit + 2* (xpart sr_bet_elem); + numeric sr_lst_elem; + for srno=1 step 1 until rule_s_no_rhs[ruleno]: + sr_lst_elem := rule_s_subrule_no_elems[ruleno][srno]; + string vnm; vnm := rhs_elems[ruleno][srno][sr_lst_elem].vname; + string lnm; lnm := rhs_elems[ruleno][srno][sr_lst_elem].literal; + forsuffixes i = scantokens vnm : + dy_exit := ypart i.e; + exit_bnd := (dx_exit,dy_exit); + if(is_epsilon_present(lnm) = true): + draw(i.w..exit_bnd);% draw ht exit line + else: + draw(i.e..exit_bnd);% draw ht exit line + drw_left_recursion_line(ruleno,srno,exit_bnd); + fi + endfor + endfor + numeric no_subrules;no_subrules := rule_s_no_rhs[ruleno]; + drw_vt_exit_line(no_subrules); + drw_vt_start_line(no_subrules); +enddef; + +def drw_rule(expr ruleno) = + crt_rule_box(ruleno); + for j=1 step 1 until rule_s_no_rhs[ruleno]: % rhs + align_sr_start(j); + crt_rhs_elems(ruleno,j);% establish rhs variables + hz_align_rhs(ruleno,j); + endfor + + drw_rule_box(ruleno); + drw_rule_s_rhs(ruleno); +enddef; + +def drw_rule_a_rhs(expr ruleno,subruleno) = + for j=subruleno step subruleno until subruleno: % rhs + align_spec_sr_start(j); + crt_rhs_elems(ruleno,j);% establish rhs variables + hz_align_rhs(ruleno,j); + endfor + + drw_rule_s_spec_rhs(ruleno,subruleno); +enddef; diff --git a/web/yacco2/diagrams/o2linker_overview.1 b/web/yacco2/diagrams/o2linker_overview.1 new file mode 100644 index 0000000000..3d6c8074f9 --- /dev/null +++ b/web/yacco2/diagrams/o2linker_overview.1 @@ -0,0 +1,294 @@ +%!PS +%%BoundingBox: -121 -164 276 11 +%%HiResBoundingBox: -120.55173 -163.65445 275.09767 10.16852 +%%Creator: MetaPost 0.993 +%%CreationDate: 2008.05.05:1312 +%%Pages: 1 +%*Font: cmr10 9.96265 9.96265 0c:8000001020000100000007fffbbc +%*Font: cmmi10 9.96265 9.96265 4f:8 +%*Font: cmr7 6.97385 6.97385 32:8 +%%BeginProlog +%%EndProlog +%%Page: 1 1 + 0 0 0 setrgbcolor +0 0 moveto +(yyy) cmr10 9.96265 fshow +14.944 0 moveto +(.fsc) cmr10 9.96265 fshow + 0 0.5 dtransform truncate idtransform setlinewidth pop [] 0 setdash + 1 setlinejoin 10 setmiterlimit +newpath -3 -4.9372 moveto +32.1131 -4.9372 lineto +32.1131 9.91852 lineto +-3 9.91852 lineto + closepath stroke +-3.6682 -38.37639 moveto +(O) cmmi10 9.96265 fshow +3.9311 -39.87079 moveto +(2) cmr7 6.97385 fshow +8.4004 -38.37639 moveto +(link) cmr10 9.96265 fshow +24.4514 -38.37639 moveto +(er) cmr10 9.96265 fshow +newpath -6.6682 -44.86328 moveto +35.7813 -44.86328 lineto +35.7813 -26.90817 lineto +-6.6682 -26.90817 lineto + closepath stroke +77.15771 -38.37639 moveto +(yyy) cmr10 9.96265 fshow + 0 0.3985 dtransform truncate idtransform setlinewidth pop 0 setlinecap +newpath 93.52971 -38.17719 moveto +96.51851 -38.17719 lineto stroke +96.51851 -38.37639 moveto +(errors.log) cmr10 9.96265 fshow + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 74.15768 -43.31358 moveto +140.06104 -43.31358 lineto +140.06104 -28.45787 lineto +74.15768 -28.45787 lineto + closepath stroke +-117.30173 -38.37639 moveto +(yyy) cmr10 9.96265 fshow + 0 0.3985 dtransform truncate idtransform setlinewidth pop +newpath -100.92973 -38.17719 moveto +-97.94093 -38.17719 lineto stroke +-97.94093 -38.37639 moveto +(tracings.log) cmr10 9.96265 fshow + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath -120.30173 -43.31358 moveto +-45.04459 -43.31358 lineto +-45.04459 -28.45787 lineto +-120.30173 -28.45787 lineto + closepath stroke +-82.30408 -85.73033 moveto +(yyy) cmr10 9.96265 fshow + 0 0.3985 dtransform truncate idtransform setlinewidth pop +newpath -65.93208 -85.53113 moveto +-62.94328 -85.53113 lineto stroke +-62.94328 -85.73033 moveto +(fsc.cpp) cmr10 9.96265 fshow +-29.95578 -85.73033 moveto +(\014le) cmr10 9.96265 fshow + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath -85.30408 -90.66753 moveto +-14.22575 -90.66753 lineto +-14.22575 -75.81181 lineto +-85.30408 -75.81181 lineto + closepath stroke +46.33884 -85.73033 moveto +(O) cmmi10 9.96265 fshow +53.93814 -87.22473 moveto +(2) cmr7 6.97385 fshow +58.40744 -85.73033 moveto +(link) cmr10 9.96265 fshow +74.45844 -85.73033 moveto +(er) cmr10 9.96265 fshow + 0 0.3985 dtransform truncate idtransform setlinewidth pop +newpath 83.38603 -85.53113 moveto +86.37483 -85.53113 lineto stroke +86.37483 -85.73033 moveto +(do) cmr10 9.96265 fshow +97.16774 -85.73033 moveto +(c.w) cmr10 9.96265 fshow + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 43.33884 -92.21722 moveto +114.55826 -92.21722 lineto +114.55826 -74.26212 lineto +43.33884 -74.26212 lineto + closepath stroke +136.74646 -85.38443 moveto +(cw) cmr10 9.96265 fshow +148.09276 -85.38443 moveto +(ea) cmr10 9.96265 fshow +157.22527 -85.38443 moveto +(v) cmr10 9.96265 fshow +162.20656 -85.38443 moveto +(e) cmr10 9.96265 fshow +newpath 133.74646 -88.38443 moveto +169.63437 -88.38443 lineto +169.63437 -78.09491 lineto +133.74646 -78.09491 lineto + closepath stroke +191.82257 -85.73033 moveto +(O) cmmi10 9.96265 fshow +199.42188 -87.22473 moveto +(2) cmr7 6.97385 fshow +203.89117 -85.73033 moveto +(link) cmr10 9.96265 fshow +219.94217 -85.73033 moveto +(er) cmr10 9.96265 fshow + 0 0.3985 dtransform truncate idtransform setlinewidth pop +newpath 228.86977 -85.53113 moveto +231.85857 -85.53113 lineto stroke +231.85857 -85.73033 moveto +(do) cmr10 9.96265 fshow +242.65147 -85.73033 moveto +(c.tex) cmr10 9.96265 fshow + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 188.82257 -92.21722 moveto +266.40707 -92.21722 lineto +266.40707 -74.26212 lineto +188.82257 -74.26212 lineto + closepath stroke +213.63942 -121.32394 moveto +(p) cmr10 9.96265 fshow +219.45102 -121.32394 moveto +(dftex) cmr10 9.96265 fshow +newpath 210.63942 -126.26114 moveto +244.59023 -126.26114 lineto +244.59023 -111.40543 lineto +210.63942 -111.40543 lineto + closepath stroke +183.38197 -156.91756 moveto +(O) cmmi10 9.96265 fshow +190.98128 -158.41196 moveto +(2) cmr7 6.97385 fshow +195.45058 -156.91756 moveto +(link) cmr10 9.96265 fshow +211.50157 -156.91756 moveto +(er) cmr10 9.96265 fshow + 0 0.3985 dtransform truncate idtransform setlinewidth pop +newpath 220.42917 -156.71835 moveto +223.41797 -156.71835 lineto stroke +223.41797 -156.91756 moveto +(do) cmr10 9.96265 fshow +234.21088 -156.91756 moveto +(c.p) cmr10 9.96265 fshow +247.21777 -156.91756 moveto +(df) cmr10 9.96265 fshow +259.11757 -156.91756 moveto +(\014le) cmr10 9.96265 fshow + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 180.38197 -163.40445 moveto +274.84767 -163.40445 lineto +274.84767 -145.44934 lineto +180.38197 -145.44934 lineto + closepath stroke +-56.96017 -119.66351 moveto +(CC) cmr10 9.96265 fshow +newpath -59.96017 -122.66351 moveto +-39.56967 -122.66351 lineto +-39.56967 -109.85573 lineto +-59.96017 -109.85573 lineto + closepath stroke +-105.07153 -151.77023 moveto +(threads's) cmr10 9.96265 fshow +-62.86864 -151.77023 moveto +(bit) cmr10 9.96265 fshow +-47.37114 -151.77023 moveto +(maps) cmr10 9.96265 fshow +-21.30223 -151.77023 moveto +(ob) cmr10 9.96265 fshow +-10.23253 -151.77023 moveto +(ject) cmr10 9.96265 fshow +newpath -108.07153 -156.70743 moveto +8.54169 -156.70743 lineto +8.54169 -141.85172 lineto +-108.07153 -141.85172 lineto + closepath stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth 1 setlinecap +newpath 14.55655 -4.9372 moveto +14.55655 -26.90817 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 13.02583 -23.21277 moveto +14.55655 -26.90817 lineto +16.08727 -23.21277 lineto + closepath +gsave fill grestore stroke + [0 10 ] 5 setdash +newpath 35.7813 -35.88573 moveto +74.15768 -35.88573 lineto stroke + [] 0 setdash +newpath 70.46211 -37.41652 moveto +74.15768 -35.88573 lineto +70.46211 -34.35493 lineto + closepath +gsave fill grestore stroke + [0 10 ] 5 setdash +newpath -6.6682 -35.88573 moveto +-45.04459 -35.88573 lineto stroke + [] 0 setdash +newpath -41.34901 -34.35493 moveto +-45.04459 -35.88573 lineto +-41.34901 -37.41652 lineto + closepath +gsave fill grestore stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth +newpath 14.55655 -44.86328 moveto +14.55655 -55.07393 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 14.55655 -55.07393 moveto +-49.76492 -55.07393 lineto stroke +newpath 14.55655 -55.07393 moveto +78.94855 -55.07393 lineto stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth +newpath -49.76492 -55.07393 moveto +-49.76492 -75.81181 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath -51.29572 -72.11624 moveto +-49.76492 -75.81181 lineto +-48.23413 -72.11624 lineto + closepath +gsave fill grestore stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth +newpath 78.94855 -55.07393 moveto +78.94855 -74.26212 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 77.41776 -70.56654 moveto +78.94855 -74.26212 lineto +80.47934 -70.56654 lineto + closepath +gsave fill grestore stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth +newpath -49.76492 -90.66753 moveto +-49.76492 -109.85573 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath -51.29572 -106.16016 moveto +-49.76492 -109.85573 lineto +-48.23413 -106.16016 lineto + closepath +gsave fill grestore stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth +newpath -49.76492 -122.66351 moveto +-49.76492 -141.85172 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath -51.29572 -138.15614 moveto +-49.76492 -141.85172 lineto +-48.23413 -138.15614 lineto + closepath +gsave fill grestore stroke +newpath 114.55826 -83.23967 moveto +133.74646 -83.23967 lineto stroke +newpath 130.05089 -84.77046 moveto +133.74646 -83.23967 lineto +130.05089 -81.70888 lineto + closepath +gsave fill grestore stroke +newpath 169.63437 -83.23967 moveto +188.82257 -83.23967 lineto stroke +newpath 185.127 -84.77046 moveto +188.82257 -83.23967 lineto +185.127 -81.70888 lineto + closepath +gsave fill grestore stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth +newpath 227.61482 -92.21722 moveto +227.61482 -111.40543 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 226.08403 -107.70985 moveto +227.61482 -111.40543 lineto +229.14561 -107.70985 lineto + closepath +gsave fill grestore stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth +newpath 227.61482 -126.26114 moveto +227.61482 -145.44934 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 226.08403 -141.75377 moveto +227.61482 -145.44934 lineto +229.14561 -141.75377 lineto + closepath +gsave fill grestore stroke +showpage +%%EOF diff --git a/web/yacco2/diagrams/o2linker_overview.mp b/web/yacco2/diagrams/o2linker_overview.mp new file mode 100644 index 0000000000..f07b8dbe10 --- /dev/null +++ b/web/yacco2/diagrams/o2linker_overview.mp @@ -0,0 +1,78 @@ +% file: o2linker_overview.mp +% flow control of O2, O2linker, and c++ +input boxes +u:=1cc; +pair sep,fldsep; +sep := (0,3u); +fldsep := (3u,0); +beginfig(1); + +boxit.fsc(btex yyy.fsc etex); % input control file +boxit.o(btex \strut$O_{2}$linker etex); % linker prg +boxit.err(btex yyy\_errors.log etex); % error log +boxit.tr(btex yyy\_tracings.log etex); % trace log and o2linker chatter + +boxit.occ(btex yyy\_fsc.cpp file etex); % linker c++ tble +boxit.docs(btex \strut$O_{2}$linker\_doc.w etex); % linker doc +boxit.cpp(btex CC etex); % c++ compiler +boxit.objs(btex threads's bit maps object etex); +boxit.cweave(btex cweave etex); +boxit.tex(btex \strut$O_{2}$linker\_doc.tex etex); +boxit.pdftex(btex pdftex etex); +boxit.xpdf(btex \strut$O_{2}$linker\_doc.pdf file etex); +%% place the boxes + +.5[fsc.e,fsc.w] - sep = .5[o.e,o.w]; +tr.e + fldsep = o.w; +o.e + fldsep = err.w; +occ.e + 1.5fldsep = docs.w; +docs.e + .5fldsep = cweave.w; +cweave.e + .5fldsep = tex.w; +tex.s - .5sep = pdftex.n; +pdftex.s - .5sep = xpdf.n; + +o.s - sep = .5[occ.e,docs.w]; + +occ.s -.5sep = cpp.n; +cpp.s -.5sep = objs.n; + +%% form the boxes +drawboxed(fsc); +drawboxed(o); +drawboxed(err); +drawboxed(tr); + +drawboxed(occ); +drawboxed(docs); + +drawboxed(cweave); +drawboxed(tex); +drawboxed(pdftex); +drawboxed(xpdf); + +drawboxed(cpp); +drawboxed(objs); + +%% draw lined arrows between the boxes +drawarrow fsc.s -- o.n; +pair mopt,ldeltaopt,rdeltaopt; +mopt := .5[o.e,o.w] - .5(0,ypart sep); +ldeltaopt := (xpart occ.n, ypart mopt); +rdeltaopt := (xpart docs.n, ypart mopt); +drawarrow o.e -- err.w dashed withdots; +drawarrow o.w -- tr.e dashed withdots; +draw o.s -- mopt; +draw mopt -- ldeltaopt; +draw mopt -- rdeltaopt; +drawarrow ldeltaopt -- occ.n; +drawarrow rdeltaopt -- docs.n; + +%y = ypart objs.n - ypart cpp.s; +drawarrow occ.s -- cpp.n; +drawarrow cpp.s -- objs.n; +drawarrow docs.e -- cweave.w; +drawarrow cweave.e -- tex.w; +drawarrow tex.s -- pdftex.n; +drawarrow pdftex.s -- xpdf.n; +endfig; +end;
\ No newline at end of file diff --git a/web/yacco2/diagrams/o2mac.tex b/web/yacco2/diagrams/o2mac.tex new file mode 100644 index 0000000000..f4b040f89c --- /dev/null +++ b/web/yacco2/diagrams/o2mac.tex @@ -0,0 +1,390 @@ +% /yacco2/library/o2mac.tex --- defines common macros for TeX +\tolerance=10000 +\hbadness=10000 +%\tracingall +\def\Tex{\TeX} +\def\cweb{\Cweb} +\def\Cweb{{\prgstyle Cweb}} +\def\prgstyle{\tt \sl } + + +\def\Whereyacco2{/usr/local/yacco2} + +\def\printlistinglineno{\hskip .7 in \llap{\the\lineno:\quad}} +\def\ptindent#1{\line{\hskip.5in{#1}\hfill}} +\def\threeasteric{$***$} +\def\Yacco2{Ya$c_2o_2$} +\def\yacco2{\Yacco2} +\def\O2{$O_2$} +\def\o2{\O2} +\def\Cpp{C\kern-.25em \raise.25ex\hbox{\tt $+\kern-0.2ex+$}} +\def\Olinker{$O_{2}^{linker}$} +\def\olinker{$O_{2}^{linker}$} +\def\TILDE{\catcode`\~=11{}~} +\def\INDENT#1#2{\line{\hskip#1{#2}\hfill}} +\def\fbreak{\hfill\break} +\def\emptyrule{ +\ifmmode + \epsilon +\else +$\epsilon$ +\fi +} + +\def\fnp{\vfill\eject} +\def\Alpha{$\alpha$} +\def\Beta{$\beta$} +\def\o2{\O2} +\def\prtobrace{$\{$} +\def\prtcbrace{$\}$} +\def\prtstartsr{$-$$>$} +\def\]{\leavevmode\hbox{\tt\char`\ }} +\def\derives{$\Rightarrow$} +\def\subrule{$\rightarrow$} +\def\braceo{\char`\{} +\def\BRACEOPEN{\tt \char`\{} +\def\bracec{\char`\}} +\def\BRACECLOSE{\tt \char`\}} +\newbox\ALLshiftbox %|+| +\setbox\ALLshiftbox=\hbox{$|$\kern.5pt\raise1pt\hbox{\kern-2pt\sevenrm+}\kern-2pt$|$} +\def\ALLshift{\.{|+|}} +\def\INVshift{\.{|.|}} +\def\PARshift{\.{|||}} +\def\REDshift{\.{|r|}} +\def\PROCshift{\.{|t|}} +\def\TRAshift{\.{|t|}} +\def\QUEshift{\.{|?|}} + +\def\Verticalbar{\tt \char`|} +\def\allshift{\ALLshift} +\def\invisibleshift{\INVshift} +\def\paralleloperator{\PARshift} +\def\procedurecalloperator{\PROCshift} +\def\transienceoperator{\TRAshift} +\def\questionableoperator{\QUEshift} +\def\reduceoperator{\REDshift} +\def\rrrr{\REDshift} +\def\ATsign{\char`@} +%\def\NOsign{ +%\ifmmode +% \char`\# +%\else +%$\char`\#$ +%\fi +%} +\def\NOsign{ +{\tt \char`\#} +} +\def\LTsign{ +\ifmmode + < +\else +$<$ +\fi +} +\def\GTsign{ +\ifmmode + > +\else +$>$ +\fi +} +\def\PLUSsign{$+$} +\def\MINUSsign{$-$} +\def\AMPERsign{\char`&} +\def\ASTERICsign{\char`*} +\def\PERCENTsign{\char`\%} +\def\DOLLARsign{\char`$} +\def\DBLQUOTEsign{\char`\"} +\def\LFTQUOTEsign{\char`\`} +\def\RTQUOTEsign{\char`\'} + +%\def\BKSLASHsign{ +%\ifmmode \char`\\\else $\backslash$ \fi +%} +\def\BKSLASHsign{ +{\tt \char`\\} +} + +\def\UPARROWsign{\char`^} +\def\UNDERSCOREsign{\char`_} +\def\Shiftonly{$^s$} +\def\Reduceonly{$^r$} +\def\ShiftReduce{$^{s/r}$} +\def\MultipleReduces{$^{r{^2}}$} +\def\ShiftandMultipleReduces{$^{s/r{^2}}$} +\def\Derivedstatessym{$\triangleright$} +\def\Mergedsym{$^\nearrow$} +\def\Mergedstate#1{$^\nearrow{^{#1}}$} +\def\Subrulestartsymstrindent#1{\item{#1}} +\def\Subrulederivedstatesindent{\item\item{\Derivedstatessym\ }} +\def\Reducedstatelist{\item\item{$\subset$\ }} +\def\Linkeridxentry#1{{\par\parindent=2pc{\narrower#1}\smallskip}} +\def\Linkeridxentryk#1{{\par\parindent=3pc{\item\item{#1}\smallskip}}} +\def\Linkercalledthreads#1#2{{\par\parindent=#2pc{\narrower#1}\smallskip}} +\def\Linkercalledthreadstitle{{\par\parindent=0pc{\narrower % +First set of called threads list.}\smallskip}} + +\def\IDXdoctitle#1#2{% p1 banner p2 file name + \global\def\title{#1} + \global\def\topofcontents{\null\vfill + \centerline{\ttitlefont #1} + \vskip 15pt + \hbox{\ttitlefont Date: \today \ at \hours \hfil} + \vskip 15pt + \hbox{\ttitlefont File: #2 \hfil} + \vfill + } +} +\def\IDXlinkerdoctitle#1#2#3{% p1 banner p2 file name p3 fsc source file + \global\def\title{#1} + \global\def\topofcontents{\null\vfill + \centerline{\ttitlefont #1} + \vskip 15pt + \hbox{\ttitlefont Date: \today \ at \hours \hfil} + \vskip 15pt + \hbox{\ttitlefont File: #2 \hfil} + \vskip 15pt + \hbox{\ttitlefont Fsc\ : #3 \hfil} + \vfill + } +} +\def\DOCtitle#1#2#3#4{% 1 banner, 2 file name, 3 NS, 4 # T + \global\def\title{#1} + \global\def\topofcontents{\null\vfill + \centerline{\ttitlefont #1} + \vskip 15pt + \centerline{\ttitlefont Date: \today \ at \hours } + \vskip 15pt + \centerline{\ttitlefont File: #2 \hfil Namespace: #3} + \vskip 15pt + \centerline{\ttitlefont Number of terminals: #4} + \vfill + } +} + +\def\GRAMMARtitle#1#2#3#4#5#6{% p1 fn noext, p2 filename.ext, p3 NS, p4 version + \global\def\title{#1 Grammar} %p5 debug, p6 comments + \global\def\topofcontents{\null\vfill + \centerline{\ttitlefont #1 Grammar} + \vskip 15pt + \centerline{\ttitlefont Date: \today \ at \hours \hfil} + \vskip 15pt + \centerline{\ttitlefont File: #2} + \vskip 15pt + \centerline{\ttitlefont Ns: #3} + \vskip 15pt + \centerline{Version: #4 \hfil Debug: #5} + \vskip 15pt + \centerline{Grammar Comments: \hfil Type: Monolithic} + \vskip 15pt + \centerline{#6} + \vfill + } +} + +\def\THREADtitle#1#2#3#4#5#6#7#8{% 1 filename noext, 2 file name.lex, 3 NS + \global\def\title{#1 Grammar} % 4 vers 5 debug, 6 comments, 7 # T in la, 8 la expr + \global\def\topofcontents{\null\vfill + \centerline{\ttitlefont #1 Grammar} + \vskip 15pt + \centerline{\ttitlefont Date: \today \ at \hours \hfil} + \vskip 15pt + \centerline{\ttitlefont File: #2 \hfil Ns: #3} + \vskip 15pt + \centerline{Version: #4 \hfil Debug: #5} + \vskip 15pt + \centerline{Grammar Comments: \hfil Type: Thread} + \vskip 15pt + \centerline{#6} + \vskip 15pt + \centerline{\ttitlefont #7 element(s) in Lookahead Expression below} + \vskip 10pt + \centerline{#8} + \vfill + } +} + + +% +% state no macros to generate the lr1 state report +% +\def \statecolumnspace{ +\tabskip=.5em plus1em minus.25em +} + +\def\stateno#1#2#3{%1-state no, 2-vectored into literal symbol, 3-confict state +\fbreak\noindent +\hbox{\hbox to 8cm{$\Rightarrow^{\eightrm #2}$ \hfil} State: #1 state type: {#3} \hfil} +} + +\def\statetemplate{ +##& +\eightrm##\hfil& +##& +##& +##& +\sevenrm##\hfil& +##& +##& +##& +##\cr %LA set no template +} + +\def\statetitle{ +{\ }& +\statetitlerule& +\statetitlerulecoordinates& +\statetitlesubrule& +\statetitlesubrulebirth\cr +} + +\def\statetitleintro{ +\fbreak +\hbox to .5cm{} +} +\def\statetitlerule{ +\hbox to 3.5cm{\tt{$\leftarrow$}\hfil rule \hfil{$\rightarrow$}} +} +\def\statetitlerulecoordinates{ +{\tt R\#\ }&{\tt sr\#}&{\tt Po} +} +\def\statetitlesubrule{ +\hbox to 7.5cm{\tt{$\leftarrow$}\hfil subrule element\hfil{$\rightarrow$}} +} +\def\statetitlesubrulebirth{ +{\tt Brn}&{\tt Gto}&{\tt Red}&{\tt LA} +} + +\def\LRstatenetwork{ +List of productions with their derived LR state lists. +Their subrule number and symbol string indicates the specific +production being derived. +The ``\Derivedstatessym'' symbol indicates the production's list of +derived states from its closured state. +Multiple lists within a production indicate 1 of 2 things:\fbreak +\ptindent{1) derived string that could not be merged due to a lr(1) conflict} +\ptindent{2) partially derived string merged into another derived lr states} +A partially derived string is indicated by the ``merged into'' symbol \Mergedsym +used as a superscript along with the merged into state number.\fbreak +} +\def\Listofreducingstates{ +The following legend indicates the type of reducing state.\fbreak +Points 2--4 are states that must meet the lr(1) condition:\fbreak +\ptindent{1) r --- only 1 production reducing} +\ptindent{2) r$^2$ --- 2 or more reducing productions} +\ptindent{3) s$/$r --- shift and 1 reducing production} +\ptindent{4) s$/r^2$ --- shift and multiple reducing productions} +\fbreak +} + +% +% Follow set info per state and possible reducing subrules lookahead set +% +\def\FollSetnotesintro{ +Notes on Follow set expressions:\fbreak +1) The ``follow set'' for rule uses its literal name +and tags its grammar rule rank number as a superscript. +Due to space limitations, part of the follow set information +uses the rule's literal name +while the follow set expressions refers to the rule's rank number. +This \LTsign{}rule name, rule rank number\GTsign tupple allows +you the reader to decifer the expressions. +Transitions are represented by S{$_{x}$}R{$_{z}$} whereby + S is the LR1 state identified by its ``x'' subscript where +other transient calculations occur within the LR1 state network. +R indicates the follow set rule with the subscript ``z'' as its grammar rank number +that contributes to the follow set. +\fbreak +\fbreak +The \Mergedstate{x} symbol indicates that a merge into state ``x'' has taken place. +That is, the reduced subrule that depends on this follow set +finds its follow set in 2 places: +its birthing state that generated the sequence up to the merged into state, +and the birthing state that generated the ``merged into'' state. +So the rule's ``follow set'' calculation must also continue +its calculation within the birth state generating +the ``x merged into'' state. +\fbreak +\raggedright +} + +\def\FollSettemplate{ +##\hfil& %rule name +##\hfil\cr % list of contributors template +} + +\def\FollSettitle{ +\FollSettitlerule& +\FollSettitlecontributors\cr +} + +\def\FollSettitlerule{ +\hbox to 4cm{\tt{$\leftarrow$}\hfil Follow set Rule \hfil{$\rightarrow$}} +} + +\def\FollSettitlecontributors{ +\hbox to 11cm{\tt{$\leftarrow$}\hfil follow set symbols contributors\hfil{$\rightarrow$}} +} + +\def\FollSetlocalyield{ +\hbox{Local follow set yield: $\sum$ first-set(follow symbols)} +\item{} +\raggedright +} + +\def\FollSetstateno#1{%1-state no +\fbreak\noindent +\hbox{\hbox to 11cm{State: #1 \hfil Follow Set contributors, merges, and transitions \hfil}} +} +\def\rulenameno#1{{\sevenrm$^{#1}$}} +\def\FollSetcreators#1#2#3{R$_{#1}._{#2}._{#3}$} +\def\FollSetmerges#1{\Mergedstate{#1}} +\def\FollSettransition#1#2{S$_{#1}R_{#2}$} + +\def\FollSetreducinglocalyield{ +\hbox{Local follow set yield: } +\item{} +\raggedright +} + +% +% Reducing subrule's look ahead set +% +\def\FollSetreducingsrs{ +\fbreak +\hbox{Reducing Subrule:} +} + +\def\FollSetreducingsrtemplate{ +##& %R# +##& %SR +##\hfil& % list of contributors template +\quad##\cr % lookahead set index no +} +\def\FollSetreducingsubruletitle{ +\FollSetreducingsrtitle& +\FollSetreducingsrcontributorstitle& +\FollSetreducingsrlasettitle\cr +} +\def\FollSetreducingsrtitle{ +{\tt R\#\ }&{\tt sr\#} +} +\def\FollSetreducingsrcontributorstitle{ +\hbox to 13.75cm{\tt{$\leftarrow$}\hfil subrule's reducing symbol position and any right bounded transitions\hfil{$\rightarrow$}} +} +\def\FollSetreducingsrlasettitle{ +\hbox {\tt LA\#} +} +\def\FollSetreducingsrtotalyield{ +\hbox{Total follow set yield:} +\item{} +\raggedright +} +\def\LASettotalyield#1{ +\hbox{Lookahead set #1 yield:} +\item{} +\raggedright +} + + diff --git a/web/yacco2/diagrams/o2run_example.txt b/web/yacco2/diagrams/o2run_example.txt new file mode 100644 index 0000000000..fd987a559f --- /dev/null +++ b/web/yacco2/diagrams/o2run_example.txt @@ -0,0 +1,9 @@ +rem file: o2.bat +rem compile O2 grammars +cd \yacco2\compiler\h2o\release +@echo ON + +o2 -p -t -err /yacco2/compiler/grammars/enumerate_grammar.lex +mpost enumerate_grammar.mp +cweave enumerate_grammar.w +pdftex enumerate_grammar diff --git a/web/yacco2/diagrams/parse_stk_env.1 b/web/yacco2/diagrams/parse_stk_env.1 new file mode 100644 index 0000000000..82bda8a2a9 --- /dev/null +++ b/web/yacco2/diagrams/parse_stk_env.1 @@ -0,0 +1,136 @@ +%!PS +%%BoundingBox: 21 -13 306 82 +%%HiResBoundingBox: 21.68697 -12.9627 305.22595 81.18062 +%%Creator: MetaPost 0.993 +%%CreationDate: 2007.07.01:1657 +%%Pages: 1 +%*Font: cmr10 5.97765 9.96265 20:8000e000000000004454188 +%*Font: cmsy10 9.96265 9.96265 0f:80001 +%*Font: cmr10 9.96265 9.96265 2e:8008000008051f07ef92 +%%BeginProlog +%%EndProlog +%%Page: 1 1 + 0 0 0 setrgbcolor 0 0.5 dtransform truncate idtransform setlinewidth pop + [] 0 setdash 1 setlinejoin 10 setmiterlimit +newpath 63.96065 0 moveto +76.75278 0 lineto +76.75278 51.16852 lineto +63.96065 51.16852 lineto + closepath stroke + 1 setlinecap +newpath 63.96065 12.79213 moveto +76.75278 12.79213 lineto stroke +newpath 63.96065 25.58426 moveto +76.75278 25.58426 lineto stroke +newpath 63.96065 38.37639 moveto +65.72687 40.14261 68.5905 40.14261 70.35672 38.37639 curveto +72.12294 36.61017 74.98656 36.61017 76.75278 38.37639 curveto stroke +79.75278 -1.92613 moveto +(0) cmr10 5.97765 fshow +79.75278 10.866 moveto +(1) cmr10 5.97765 fshow +79.75278 23.65813 moveto +(2) cmr10 5.97765 fshow +79.75278 36.30081 moveto +(max\040stk\040items) cmr10 5.97765 fshow +21.68697 -10.472 moveto +(parse) cmr10 9.96265 fshow +47.78357 -10.472 moveto +(stac) cmr10 9.96265 fshow +64.72006 -10.472 moveto +(k[].parse) cmr10 9.96265 fshow + 0 0.3985 dtransform truncate idtransform setlinewidth pop 0 setlinecap +newpath 101.65387 -10.2728 moveto +104.64267 -10.2728 lineto stroke +104.64267 -10.472 moveto +(record) cmr10 9.96265 fshow +118.12917 74.26212 moveto +(parse) cmr10 9.96265 fshow +newpath 141.50267 74.46132 moveto +144.49147 74.46132 lineto stroke +144.49147 74.26212 moveto +(record:) cmr10 9.96265 fshow +130.9213 61.46999 moveto +(\017) cmsy10 9.96265 fshow +139.2235 61.46999 moveto +(sym) cmr10 9.96265 fshow +156.4368 61.46999 moveto +(b) cmr10 9.96265 fshow +162.24829 61.46999 moveto +(ol) cmr10 9.96265 fshow +169.9971 61.46999 moveto +(") cmsy10 9.96265 fshow +130.9213 48.67786 moveto +(\017) cmsy10 9.96265 fshow +139.2235 48.67786 moveto +(state) cmr10 9.96265 fshow +160.3111 48.67786 moveto +(") cmsy10 9.96265 fshow +130.9213 34.91713 moveto +(\017) cmsy10 9.96265 fshow +139.2235 34.91713 moveto +(ab) cmr10 9.96265 fshow +150.01639 34.91713 moveto +(orted) cmr10 9.96265 fshow +176.0577 34.91713 moveto +(b) cmr10 9.96265 fshow +181.8693 34.91713 moveto +(o) cmr10 9.96265 fshow +187.12729 34.91713 moveto +(olean) cmr10 9.96265 fshow +213.1409 34.91713 moveto +(v) cmr10 9.96265 fshow +217.84549 34.91713 moveto +(alued) cmr10 9.96265 fshow +130.9213 23.0936 moveto +(\017) cmsy10 9.96265 fshow +139.2235 23.0936 moveto +(Rule) cmr10 9.96265 fshow +newpath 159.88489 23.2928 moveto +162.87369 23.2928 lineto stroke +162.87369 23.0936 moveto +(s) cmr10 9.96265 fshow +newpath 167.4012 23.2928 moveto +170.39 23.2928 lineto stroke +170.39 23.0936 moveto +(reuse) cmr10 9.96265 fshow +newpath 193.20999 23.2928 moveto +196.19879 23.2928 lineto stroke +196.19879 23.0936 moveto +(en) cmr10 9.96265 fshow +205.88469 23.0936 moveto +(try) cmr10 9.96265 fshow +218.91919 23.0936 moveto +(") cmsy10 9.96265 fshow +156.50555 10.30147 moveto +(\017) cmsy10 9.96265 fshow +164.80775 10.30147 moveto +(recycled) cmr10 9.96265 fshow +203.30235 10.30147 moveto +(rule) cmr10 9.96265 fshow +219.93445 10.30147 moveto +(") cmsy10 9.96265 fshow +156.50555 -3.45926 moveto +(\017) cmsy10 9.96265 fshow +164.80775 -3.45926 moveto +(used) cmr10 9.96265 fshow +187.55585 -3.45926 moveto +(on) cmr10 9.96265 fshow +201.39285 -3.45926 moveto +(stac) cmr10 9.96265 fshow +218.32936 -3.45926 moveto +(k) cmr10 9.96265 fshow +226.90836 -3.45926 moveto +(|) cmr10 9.96265 fshow +240.19185 -3.45926 moveto +(b) cmr10 9.96265 fshow +246.00336 -3.45926 moveto +(o) cmr10 9.96265 fshow +251.26146 -3.45926 moveto +(olean) cmr10 9.96265 fshow +277.27505 -3.45926 moveto +(v) cmr10 9.96265 fshow +281.97966 -3.45926 moveto +(alued) cmr10 9.96265 fshow +showpage +%%EOF diff --git a/web/yacco2/diagrams/parse_stk_env.mp b/web/yacco2/diagrams/parse_stk_env.mp new file mode 100644 index 0000000000..8f41b2bed8 --- /dev/null +++ b/web/yacco2/diagrams/parse_stk_env.mp @@ -0,0 +1,53 @@ +% file: yacco2_stbl.mp +input boxes +beginfig(1); +u=1cc; + +% parse stack +pair sw,se,ne,nw; +pair zx,zy; + +sw:=(5u,0); +se:=(6u,0); +ne:=(6u,4u); +nw:=(5u,4u); +draw sw--se--ne--nw--cycle; +%outline the bytes +for i=1 upto 3: + zx:=(5u,i*u);zy:=(6u,i*u); + if i = 3: + draw zx{dir 45} .. .5[zx,zy] {dir -45} .. zy; + else: + draw zx--zy; + fi +endfor + +% label subscripts +defaultscale:=.6; +for i=0 upto 3: + zy:=(6u,i*u); + string a; + if i=3: + a := "max stk items"; + label.rt(a,zy); + else: + a:=decimal (i); + label.rt(substring(0,1)of a,zy); + fi +endfor +label.bot(btex parse stack[].parse$\_$record etex,(6u,0u)); + +defaultscale:=1; + + +%outline parse record +label.rt(btex parse$\_$record: etex,(9u,6u)); +label.rt(btex $\bullet\ $symbol$\uparrow$ etex,(10u,5u)); +label.rt(btex $\bullet\ $state$\uparrow$ etex,(10u,4u)); +label.rt(btex $\bullet\ $aborted\ boolean valued etex,(10u,3u)); +label.rt(btex $\bullet\ $Rule$\_$s$\_$reuse$\_$entry$\uparrow$ etex,(10u,2u)); +label.rt(btex $\bullet\ $recycled rule$\uparrow$ etex,(12u,1u)); +label.rt(btex $\bullet\ $used on stack --- boolean valued etex,(12u,0u)); +endfig; + +end; diff --git a/web/yacco2/diagrams/ppmntr.txt b/web/yacco2/diagrams/ppmntr.txt new file mode 100644 index 0000000000..9a29288815 --- /dev/null +++ b/web/yacco2/diagrams/ppmntr.txt @@ -0,0 +1,33 @@ +/* +file: ppmntr.txt +Why: text example parallel monitor construct. +*/ + +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; + { + parallel_accept_queue_iterator_type z; + z = To_judge->accept_queue__.find(NS_yacco2_T_enum::T_Enum::T_T_cweb_marker_); + if(z != ie){// cweb marker fnd + i = z; + accept_parse_parm = (*z).second; + (*z).second = 0; + goto arbitrated_parameter; + } + // negative: throw out the superset: unquoted-string + // cuz identifier or one of its derivatives should be accepted + i = To_judge->accept_queue__.find(NS_yacco2_T_enum::T_Enum::T_T_unquoted_string_); + delete (*i).second; + To_judge->accept_queue__.erase(i); + i = To_judge->accept_queue__.begin(); + accept_parse_parm = (*i).second; + } + *** +}
\ No newline at end of file diff --git a/web/yacco2/diagrams/ppprsr.txt b/web/yacco2/diagrams/ppprsr.txt new file mode 100644 index 0000000000..c5cf7ed6f2 --- /dev/null +++ b/web/yacco2/diagrams/ppprsr.txt @@ -0,0 +1,13 @@ +/* +file: ppprsr.txt +Why: text example parallel parser construct. +*/ +parallel-parser +( + parallel-thread-function + TH_angled_string + *** + parallel-la-boundary + eolr - ||| - |+| - ">" + *** +) diff --git a/web/yacco2/diagrams/rcsym.txt b/web/yacco2/diagrams/rcsym.txt new file mode 100644 index 0000000000..22c8339561 --- /dev/null +++ b/web/yacco2/diagrams/rcsym.txt @@ -0,0 +1,46 @@ +/* +file: rcsym.txt +Why: raw character symbols vocabulary to parse. +Note: raw-characters is shown for clarity. It is the keyword trigger + that calls this grammar. Parsed is comments onwards. +*/ +raw-characters +// comments +(file-name o2_chars,name-space NS_o2_chars) { +// 7 bit char set +"x00" (sym-class raw_nul{ + user-declaration + public: + raw_nul(INT Ext_file,size_t Pos); + *** + user-implementation + raw_nul::raw_nul(INT Ext_file,size_t Pos){ + T_CTOR_RW("x00",T_raw_nul_,false,false,Ext_file,Pos)} + *** + } +) + .... +"!" (sym-class raw_exclam{ + user-declaration + public: + raw_exclam(INT Ext_file,size_t Pos); + *** + user-implementation + raw_exclam::raw_exclam(INT Ext_file,size_t Pos){ + T_CTOR_RW("!",T_raw_exclam_,false,false,Ext_file,Pos)} + *** + } +) + .... +// 8 bit char set +"xff" (sym-class raw_xff{ + user-declaration + public: + raw_xff(INT Ext_file,size_t Pos); + *** + user-implementation + raw_xff::raw_xff(INT Ext_file,size_t Pos){ + T_CTOR_RW("xff",T_raw_xff_,false,false,Ext_file,Pos)} + *** + } +}
\ No newline at end of file diff --git a/web/yacco2/diagrams/ruledef.txt b/web/yacco2/diagrams/ruledef.txt new file mode 100644 index 0000000000..63285269b9 --- /dev/null +++ b/web/yacco2/diagrams/ruledef.txt @@ -0,0 +1,25 @@ +/* +file: ruledef.txt +Why: example of text to parse by rule_def_phrase grammar. +*/ +Rrule_def_phrase AD AB( +lhs +,parallel-control-monitor{ + arbitrator-code + *** + } +){ + -> |.| + -> ||| "cweb-marker" NS_cweb_marker::TH_cweb_marker { + rhs-op + Crule_def_phrase* fsm = (Crule_def_phrase*)parser()->fsm_tbl(); + fsm->rule_def_->add_cweb_marker(sf->p2__->ast()); + *** + } + -> ||| |+| NULL { + rhs-op + RSVP(sf->p2__); + parser()->set_stop_parse(true); + *** + } +} diff --git a/web/yacco2/diagrams/rulelhs.txt b/web/yacco2/diagrams/rulelhs.txt new file mode 100644 index 0000000000..623043ab46 --- /dev/null +++ b/web/yacco2/diagrams/rulelhs.txt @@ -0,0 +1,13 @@ +/* +file: rulelhs.txt +Why: example of text to parse by rule_lhs_phrase grammar. +*/ +lhs { + user-declaration + AST* cweb_t_; + *** + constructor + cweb_t_ = 0; + *** +} + diff --git a/web/yacco2/diagrams/sampleoutput.txt b/web/yacco2/diagrams/sampleoutput.txt new file mode 100644 index 0000000000..cda3cf5fc8 --- /dev/null +++ b/web/yacco2/diagrams/sampleoutput.txt @@ -0,0 +1,197 @@ +// +// File: c:/yacco2/compiler/grammars/yacco2_fsc.cpp +// Generated by linker.exe +// Date and Time: Fri May 06 16:30:11 2005 +// + +// Preamble code +#include <yacco2.h> +#include <yacco2_T_enumeration.h> +#include <yacco2_err_symbols.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 <T_enum_phrase_th.h> +using namespace NS_T_enum_phrase_th; +#include <angled_string.h> +using namespace NS_angled_string; +#include <bad_char_set.h> +using namespace NS_bad_char_set; +#include <c_comments.h> +using namespace NS_c_comments; +#include <c_literal.h> +using namespace NS_c_literal; + ... +#include <yacco2_code_end.h> +using namespace NS_yacco2_code_end; +#include <yacco2_lcl_option.h> +using namespace NS_yacco2_lcl_option; +#include <yacco2_linker_keywords.h> +using namespace NS_yacco2_linker_keywords; +#include <yacco2_syntax_code.h> +using namespace NS_yacco2_syntax_code; + +// 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_T_enum_phrase_th = + {"TH_T_enum_phrase_th",NS_T_enum_phrase_th::TH_T_enum_phrase_th,0 + ,NS_T_enum_phrase_th::PROC_TH_T_enum_phrase_th}; +yacco2::Thread_entry ITH_angled_string = + {"TH_angled_string",NS_angled_string::PROC_TH_angled_string,1 + ,NS_angled_string::TH_angled_string}; + ... +yacco2::Thread_entry ITH_yacco2_syntax_code = + {"TH_yacco2_syntax_code",NS_yacco2_syntax_code::TH_yacco2_syntax_code + ,52,NS_yacco2_syntax_code::PROC_TH_yacco2_syntax_code}; +struct thd_array_type { + yacco2::USINT no_entries__; + yacco2::Thread_entry* first_entry__[53]; +}; +thd_array_type thd_array = { + 53 + , + { + &ITH_T_enum_phrase_th + ,&ITH_angled_string + ,&ITH_bad_char_set + ,&ITH_c_comments + ... + ,&ITH_yacco2_code_end + ,&ITH_yacco2_lcl_option + ,&ITH_yacco2_linker_keywords + ,&ITH_yacco2_syntax_code + } +}; +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_eof +//20: TH_linker_preamble_code +//31: TH_rhs_bnd +//32: TH_rhs_component +//47: TH_unquoted_string +//52: TH_yacco2_syntax_code + {2148532224 + ,1081345 + } +}; +struct T_1_type{ + yacco2::ULINT first_entry__[2]; +}; +T_1_type T_1 = {// for T: LR1_eog +//20: TH_linker_preamble_code +//31: TH_rhs_bnd +//32: TH_rhs_component +//47: TH_unquoted_string +//52: TH_yacco2_syntax_code + {2148532224 + ,1081345 + } +}; +struct T_6_type{ + yacco2::ULINT first_entry__[2]; +}; +T_6_type T_6 = {// for T: LR1_all_shift_operator +//20: TH_linker_preamble_code +//32: TH_rhs_component +//47: TH_unquoted_string +//52: TH_yacco2_syntax_code + {1048576 + ,1081345 + } +}; +struct T_7_type{ + yacco2::ULINT first_entry__[2]; +}; +T_7_type T_7 = {// for T: LR1_fset_transience_operator +//0: TH_T_enum_phrase_th +//9: TH_error_symbols_phrase_th +//14: TH_fsm_class_phrase_th +//15: TH_fsm_phrase_th +//21: TH_lr1_k_phrase_th +//24: TH_parallel_control +//28: TH_parallel_parser_phrase_th +//29: TH_prefile_include +//30: TH_rc_phrase_th +//33: TH_rule_def_phrase +//35: TH_rules_phrase_th +//39: TH_subrules_phrase +//42: TH_terminal_def_phrase +//44: TH_terminals_phrase_th + {1897972225 + ,5258 + } +}; + ... +struct T_510_type{ + yacco2::ULINT first_entry__[2]; +}; +T_510_type T_510 = {// for T: thread_attributes +//20: TH_linker_preamble_code +//32: TH_rhs_component +//47: TH_unquoted_string +//52: TH_yacco2_syntax_code + {1048576 + ,1081345 + } +}; +struct T_511_type{ + yacco2::ULINT first_entry__[2]; +}; +T_511_type T_511 = {// for T: th_in_stbl +//20: TH_linker_preamble_code +//32: TH_rhs_component +//47: TH_unquoted_string +//52: TH_yacco2_syntax_code + {1048576 + ,1081345 + } +}; +struct T_512_type{ + yacco2::ULINT first_entry__[2]; +}; +T_512_type T_512 = {// for T: kw_in_stbl +//20: TH_linker_preamble_code +//32: TH_rhs_component +//47: TH_unquoted_string +//52: TH_yacco2_syntax_code + {1048576 + ,1081345 + } +}; +struct t_array_type { + yacco2::USINT no_entries__; + yacco2::thd_ids_having_T* first_entry__[513]; +}; +t_array_type t_array = { + 513 + ,{(yacco2::thd_ids_having_T*)&T_0 // LR1_eof + ,(yacco2::thd_ids_having_T*)&T_1 // LR1_eog + ,0// LR1_eolr + ,0// LR1_parallel_operator + ,0// LR1_parallel_procedure_call_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_509 // T_attributes + ,(yacco2::thd_ids_having_T*)&T_510 // thread_attributes + ,(yacco2::thd_ids_having_T*)&T_511 // th_in_stbl + ,(yacco2::thd_ids_having_T*)&T_512 // kw_in_stbl + } +}; +void* yacco2::T_ARRAY_HAVING_THD_IDS__ = (void*)&t_array; diff --git a/web/yacco2/diagrams/sampleoutput2.txt b/web/yacco2/diagrams/sampleoutput2.txt new file mode 100644 index 0000000000..2ebb718ff1 --- /dev/null +++ b/web/yacco2/diagrams/sampleoutput2.txt @@ -0,0 +1,28 @@ +// +// File: c:/yacco2/linker/ts_0_fsc.cpp +// Generated by linker.exe +// Date and Time: Wed May 11 16:06:43 2005 +// + +// Preamble code +#include <yacco2.h> +#include <yacco2_T_enumeration.h> +#include <yacco2_err_symbols.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 +// 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); +// There are NO THREADS emitted +void* yacco2::THDS_STABLE__ = 0; +void* yacco2::T_ARRAY_HAVING_THD_IDS__ = 0; diff --git a/web/yacco2/diagrams/subrdef.txt b/web/yacco2/diagrams/subrdef.txt new file mode 100644 index 0000000000..7929a12174 --- /dev/null +++ b/web/yacco2/diagrams/subrdef.txt @@ -0,0 +1,22 @@ +/* +file: subrdef.txt +Why: some text examples of sub rule construct. +*/ + + -> ||| "#NULL" NS_identifier::TH_identifier { + op + Csubrule_def* fsm = (Csubrule_def*)parser()->fsm_tbl(); + fsm->subrule_def_->add_elem_to_subrule_vector(sf->p2__); + *** + } + -> |?| { + op + CAbs_lr1_sym* sym = new LR1_err_no_open_brace; + sym->set_rc(*parser()->current_token(),*parser()); + RSVP(sym); + parser()->set_stop_parse(true); + *** + } + -> "{" + -> Rvector Rlint Rrhs_expr + diff --git a/web/yacco2/diagrams/test.pdf b/web/yacco2/diagrams/test.pdf Binary files differnew file mode 100644 index 0000000000..03895c75d4 --- /dev/null +++ b/web/yacco2/diagrams/test.pdf diff --git a/web/yacco2/diagrams/test.tex b/web/yacco2/diagrams/test.tex new file mode 100644 index 0000000000..8492984740 --- /dev/null +++ b/web/yacco2/diagrams/test.tex @@ -0,0 +1,109 @@ +% test.tex +\input cwebmac +\input "supp-pdf" +\input "/yacco2/diagrams+etc/o2mac.tex" +%\IDXlinkerdoctitle{o2linker\_doc.w}{o2linker% +%\_doc.w}{/yacco2/compiler/grammars/yacco2.fsc} +%\tracingall=1 +\tabskip=.5em plus1em minus.25em + +\stateno1 { } {0} {no} +\halign{ +\span\statetemplate +\statetitle +{c}&{Rtest}&{1\hss}&{1\hss}&{1\hss}&{Rtest\_indiv}&{1\hss}&{17\hss}&{0017\hss}\cr +{c}&{Rtest\_indiv}&{233\hss}&{1\hss}&{1\hss}&{Ra}&{1\hss}&{6\hss}&{8\hss}\cr +{c}&{Rtest\_indiv}&{2\hss}&{2\hss}&{1\hss}&{Rr}&{1\hss}&{9\hss}&{12\hss}\cr +{c}&{Rtest\_indiv}&{2\hss}&{3\hss}&{1\hss}&{RE}&{1\hss}&{13\hss}&{16\hss}\cr +{c}&{Ra}&{3\hss}&{1\hss}&{1\hss}&{a}&{1\hss}&{2\hss}&{2\hss}\cr +{c}&{Ra}&{3\hss}&{2\hss}&{1\hss}&{A}&{1\hss}&{3\hss}&{3\hss}\cr +{c}&{Rr}&{5\hss}&{1\hss}&{1\hss}&{r}&{1\hss}&{4\hss}&{4\hss}\cr +{c}&{RE}&{7\hss}&{1\hss}&{1\hss}&{e}&{1\hss}&{5\hss}&{5\hss}\cr +{c}&{REMMMMMMMMMMMzzzzhh...}&{7\hss}&{1\hss}&{1\hss}&{e}&{1\hss}&{5\hss}&{5\hss}\cr +} +\stateno2 {a} {15} {no} +\halign{ +\span\statetemplate% +\statetitle +{t}&{Ra}&{003}&{001}&{002}&{eosr}&{0001}&{0000}&{0002}\cr +} +\stateno3 {A} {17} {no} +\halign{ +\span\statetemplate% +\statetitle +{t}&{Ra}&{003}&{002}&{002}&{eosr}&{0001}&{0000}&{0002}\cr +} +\stateno4 {r} {21} {no} +\halign{ +\span\statetemplate +\statetitle +{t}&{Rr}&{005}&{001}&{002}&{eosr}&{0001}&{0000}&{0004}\cr +} +\stateno5 {e} {23} {no} +\halign{ +\span\statetemplate +\statetitle +{t}&{RE}&{007}&{001}&{002}&{eosr}&{0001}&{0000}&{0005}\cr +} +\stateno6 {Ra} {4} {no} +\halign{ +\span\statetemplate +\statetitle +{t}&{Rtest\_indiv}&{002}&{001}&{002}&{Rc}&{0001}&{0008}&{0008}\cr +{C}&{Rc}&{004}&{001}&{004}&{c}&{0006}&{0007}&{0007}\cr +} +\stateno7 {c} {19} {no} +\halign{ +\span\statetemplate +\statetitle +{t}&{Rc}&{004}&{001}&{002}&{eosr}&{0006}&{0000}&{0007}\cr +} +\stateno8 {Rc} {5} {no} +\halign{ +\span\statetemplate +\statetitle +{t}&{Rtest\_indiv}&{002}&{001}&{003}&{eosr}&{0001}&{0000}&{0008}\cr +} +\stateno9 {Rr} {7} {no} +\halign{ +\span\statetemplate +\statetitle +{t}&{Rtest\_indiv}&{0002}&{002}&{002}&{Ra}&{0001}&{0010}&{0012}\cr +{C}&{Ra}&{003}&{001}&{001}&{a}&{0009}&{0002}&{0002}\cr +{C}&{Ra}&{003}&{001}&{002}&{eosr}&{0009}&{0003}&{0003}\cr +} +\stateno{10} {Ra} {8} {no} +\halign{ +\span\statetemplate +\statetitle +{t}&{Rtest\_indiv}&{0002}&{002}&{003}&{Rm}&{0001}&{0012}&{0012}\cr +{C}&{Rm}&{006}&{001}&{001}&{m}&{0010}&{0011}&{0011}\cr +} +\stateno{11} {m} {27} {no} +\halign{ +\span\statetemplate +\statetitle +{t}&{Rm}&{006}&{001}&{002}&{eosr}&{0010}&{0000}&{0011}\cr +} +\stateno{12} {Rm} {9} {no} +\halign{ +\span\statetemplate +\statetitle +{t}&{Rtest\_indiv}&{002}&{002}&{004}&{eosr}&{0001}&{0000}&{0012}\cr +} +\stateno{13} {RE} {11} {no} +\halign{ +\span\statetemplate +\statetitle +{t}&{Rtest\_indiv}&{002}&{003}&{002}&{Ra}&{0001}&{0014}&{0016}\cr +{C}&{Ra}&{003}&{001}&{001}&{a}&{0013}&{0002}&{0002}\cr +{C}&{Ra}&{003}&{002}&{001}&{A}&{0013}&{0003}&{0003}\cr +} +\stateno{17} {Rtest\_indiv} {2} {no} +\halign{ +\span\statetemplate +\statetitle +{t}&{Rtest}&{001}&{001}&{002}&{eosr}&{0001}&{0000}&{0017}\cr +} + +\end diff --git a/web/yacco2/diagrams/testsuiteoutput.txt b/web/yacco2/diagrams/testsuiteoutput.txt new file mode 100644 index 0000000000..0eb9f3637c --- /dev/null +++ b/web/yacco2/diagrams/testsuiteoutput.txt @@ -0,0 +1,622 @@ +C:\yacco2\linker>rem file: testsuite.bat +C:\yacco2\linker>rem test suite for Linker +C:\yacco2\linker>cd "c:\yacco2\linker\release\" +######## Command line edits ####### +######## perfect score: compile linker and yacco2 first set +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/compiler/grammars/yacco2.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Parse alphabet +Parse fsc files +Sort thread dictionary +Emit file name: c:/yacco2/compiler/grammars/yacco2_fsc.cpp + +######## Command line error: bad file name inputted +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/compiler/grammars/yacco2.fscc" +Load linker's keywords +Get command line and parse it +Error in file#: 1 "linkercmd.tmp" +c:/yacco2/compiler/grammars/yacco2.fscc +^ + fpos: 0 line#: 1 cpos: 1 + bad-filename filename: "c:/yacco2/compiler/grammars/yacco2.fscc" does not exist + +######## File control file error: no preamble construct +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_1.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Error in file#: 2 "c:/yacco2/linker/TS_1.fsc" +emitfile "TS_1_fsc.tmp" + ^ + fpos: 121 line#: 7 cpos: 25 + preamble keyword not present + +######## File control file error: no end-preamble present +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_2.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Error in file#: 2 "c:/yacco2/linker/TS_2.fsc" +#include <yacco2.h> + ^ + fpos: 151 line#: 9 cpos: 20 + end-preamble keyword not present + +######## File control file error: no preamble code present +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_3.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Error in file#: 2 "c:/yacco2/linker/TS_3.fsc" +preamble + ^ + fpos: 131 line#: 8 cpos: 9 + preamble source code not present + +######## File control file error: no file-of-T-alphabet keyword present +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_4.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Error in file#: 2 "c:/yacco2/linker/TS_4.fsc" +file-of-T-alphabe "c:/yacco2/linker/TS_4.fsc" +^ + fpos: 57 line#: 6 cpos: 1 + file-of-T-alphabet keyword not present + +######## File control file error: no file-of-T-alphabet file present +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_5.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Error in file#: 2 "c:/yacco2/linker/TS_5.fsc" +emitfile "TS_5_fsc.tmp" +^ + fpos: 82 line#: 7 cpos: 1 + T-alphabet file not present + +######## File control file error: no emitfile keyword present +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_6.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Error in file#: 2 "c:/yacco2/linker/TS_6.fsc" +emitfilee "TS_6_fsc.tmp" +^ + fpos: 102 line#: 7 cpos: 1 + emitfile keyword not present + +######## File control file error: no emitfile file present +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_7.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Error in file#: 2 "c:/yacco2/linker/TS_7.fsc" +preamble +^ + fpos: 108 line#: 8 cpos: 1 + emitfile file not present + +######## File control file error: no fsc file present +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_8.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Error in file#: 2 "c:/yacco2/linker/TS_8.fsc" +end-preamble + ^ + fpos: 175 line#: 10 cpos: 13 + fsc control file not present + +######## File control file error: bad fsc filename +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_9.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Error in file#: 2 "c:/yacco2/linker/TS_9.fsc" +"c:/yacco2/linker/TS_9xx.fsc" +^ + fpos: 174 line#: 11 cpos: 1 + fsc control file does not exist + +######## T-alphabet edits ####### +######## T-alphabet: no T-alphabet keyword +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_10.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Parse alphabet +Error in file#: 3 "c:/yacco2/linker/TS_10t1.fsc" +T-alphabett +^ + fpos: 75 line#: 5 cpos: 1 + T-alphabet keyword not present + +######## T-alphabet: no end-T-alphabet keyword +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_11.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Parse alphabet +Error in file#: 3 "c:/yacco2/linker/TS_11t1.fsc" +end-T-alphabett + ^ + fpos: 125 line#: 10 cpos: 3 + end-T-alphabet keyword not present + +######## T-alphabet: duplicate t definition +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_12.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Parse alphabet +Error in file#: 3 "c:/yacco2/linker/TS_12t1.fsc" +LR1_eof +^ + fpos: 122 line#: 10 cpos: 1 + dup-entry-in-sym-table + +######## T-alphabet: no t definition +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_13.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Parse alphabet +Error in file#: 3 "c:/yacco2/linker/TS_13t1.fsc" +end-T-alphabet +^ + fpos: 68 line#: 6 cpos: 1 + no terminals in T-alphabet list + +######## T-alphabet: comment overrun +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_14.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Error in file#: 2 "c:/yacco2/linker/TS_14.fsc" +/* +^ + fpos: 0 line#: 1 cpos: 1 + comment-overrun + +######## fsc control files ####### +######## fsc control files: not defined terminal used in fsc control file + +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_15.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Parse alphabet +Parse fsc files +Error in file#: 4 "c:/yacco2/compiler/grammars/error_symbols_phrase.FSC" +no-of-T 513 + ^ + fpos: 195 line#: 7 cpos: 14 + T-alphabet list vs no. of T not eq. re-compile grammar +Error in file#: 4 "c:/yacco2/compiler/grammars/error_symbols_phrase.FSC" + LR1_fset_transience_operator + ^ + fpos: 239 line#: 9 cpos: 4 + bad terminal in list, not defined in T-alphabet + +######## fsc control files: thread used but not defined in fsc control file +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_16.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Parse alphabet +Parse fsc files +Error in file#: 4 "c:/yacco2/linker/TS_16t1.fsc" + NS_bad_char_set::TH_bad_char_set + ^ + fpos: 378 line#: 18 cpos: 3 + bad thread in transitive list, not defined by fsc files +Error in file#: 4 "c:/yacco2/linker/TS_16t1.fsc" + NS_c_comments::TH_c_comments + ^ + fpos: 413 line#: 19 cpos: 3 + bad thread in transitive list, not defined by fsc files +Error in file#: 4 "c:/yacco2/linker/TS_16t1.fsc" + NS_c_literal::TH_c_literal + ^ + fpos: 444 line#: 20 cpos: 3 + bad thread in transitive list, not defined by fsc files +Error in file#: 4 "c:/yacco2/linker/TS_16t1.fsc" + NS_c_string::TH_c_string + ^ + fpos: 473 line#: 21 cpos: 3 + bad thread in transitive list, not defined by fsc files +Error in file#: 4 "c:/yacco2/linker/TS_16t1.fsc" + NS_eol::TH_eol + ^ + fpos: 500 line#: 22 cpos: 3 + bad thread in transitive list, not defined by fsc files +Error in file#: 4 "c:/yacco2/linker/TS_16t1.fsc" + NS_identifier::TH_identifier + ^ + fpos: 517 line#: 23 cpos: 3 + bad thread in transitive list, not defined by fsc files +Error in file#: 4 "c:/yacco2/linker/TS_16t1.fsc" + NS_ws::TH_ws + ^ + fpos: 548 line#: 24 cpos: 3 + bad thread in transitive list, not defined by fsc files + +######## fsc control files: bad native first set number +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_17.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Parse alphabet +Parse fsc files +Error in file#: 4 "c:/yacco2/linker/TS_17t1.fsc" +no-of-T 502 + ^ + fpos: 205 line#: 11 cpos: 14 + T-alphabet list vs no. of T not eq. re-compile grammar +Error in file#: 4 "c:/yacco2/linker/TS_17t1.fsc" +list-of-native-first-set-terminals -3 + ^ + fpos: 244 line#: 12 cpos: 36 + list-of-native-terminals... number not present + +######## fsc control files: native first set number mismatch to no in list +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_18.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Parse alphabet +Parse fsc files +Error in file#: 4 "c:/yacco2/linker/TS_18t1.fsc" +no-of-T 502 + ^ + fpos: 229 line#: 11 cpos: 14 + T-alphabet list vs no. of T not eq. re-compile grammar +Error in file#: 4 "c:/yacco2/linker/TS_18t1.fsc" +list-of-native-first-set-terminals 2 + ^ + fpos: 268 line#: 12 cpos: 36 + no terminals in list not equal, chk items in list + +######## fsc control files: thread list number mismatch to no in list +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_19.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Parse alphabet +Parse fsc files +Error in file#: 4 "c:/yacco2/linker/TS_19t1.fsc" +no-of-T 502 + ^ + fpos: 224 line#: 11 cpos: 14 + T-alphabet list vs no. of T not eq. re-compile grammar +Error in file#: 4 "c:/yacco2/linker/TS_19t1.fsc" +list-of-transitive-threads 2 + ^ + fpos: 383 line#: 17 cpos: 28 + no threads in list not equal, chk items in list + +######## fsc control files: bad thread list number +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_20.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Parse alphabet +Parse fsc files +Error in file#: 4 "c:/yacco2/linker/TS_20t1.fsc" +no-of-T 502 + ^ + fpos: 205 line#: 11 cpos: 14 + T-alphabet list vs no. of T not eq. re-compile grammar +Error in file#: 4 "c:/yacco2/linker/TS_20t1.fsc" +list-of-transitive-threads -7 + ^ + fpos: 364 line#: 17 cpos: 28 + list-of-transitive-threads... number not present + +######## fsc control files: no thread list number present +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_21.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Parse alphabet +Parse fsc files +Error in file#: 4 "c:/yacco2/linker/TS_21t1.fsc" +no-of-T 502 + ^ + fpos: 212 line#: 11 cpos: 14 + T-alphabet list vs no. of T not eq. re-compile grammar +Error in file#: 4 "c:/yacco2/linker/TS_21t1.fsc" + NS_bad_char_set::TH_bad_char_set + ^ + fpos: 374 line#: 18 cpos: 3 + list-of-transitive-threads... number not present + +######## fsc control files: no native first set number present +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_22.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Parse alphabet +Parse fsc files +Error in file#: 4 "c:/yacco2/linker/TS_22t1.fsc" +no-of-T 502 + ^ + fpos: 222 line#: 11 cpos: 14 + T-alphabet list vs no. of T not eq. re-compile grammar +Error in file#: 3 "c:/yacco2/compiler/grammars/yacco2_T_enumeration.fsc" +raw_at_sign +^ + fpos: 746 line#: 74 cpos: 1 + list-of-native-terminals... number not present + +######## fsc control files: no-of-T # not matched against T-alphabet +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_23.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Parse alphabet +Parse fsc files +Error in file#: 4 "c:/yacco2/linker/TS_23t1.fsc" +no-of-T 1502 + ^ + fpos: 223 line#: 11 cpos: 14 + T-alphabet list vs no. of T not eq. re-compile grammar + +######## fsc control files: no transitive keyword +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_24.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Parse alphabet +Parse fsc files +Error in file#: 4 "c:/yacco2/linker/TS_24t1.fsc" +transitivee y +^ + fpos: 69 line#: 5 cpos: 1 + transitive keyword not present + +######## fsc control files: bad transitive value +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_25.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Parse alphabet +Parse fsc files +Error in file#: 4 "c:/yacco2/linker/TS_25t1.fsc" +transitive x + ^ + fpos: 81 line#: 5 cpos: 14 + linker's transitive value not n or y + +######## fsc control files: bad grammar-name keyword +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_26.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Parse alphabet +Parse fsc files +Error in file#: 4 "c:/yacco2/linker/TS_26t1.fsc" +grammar-namee "pass3" +^ + fpos: 87 line#: 6 cpos: 1 + grammar-name keyword not present + +######## fsc control files: bad grammar-name value +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_27.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Parse alphabet +Parse fsc files +Error in file#: 4 "c:/yacco2/linker/TS_27t1.fsc" +grammar-name pass3 + ^ + fpos: 98 line#: 6 cpos: 14 + grammar-name value not present or quoted value + +######## fsc control files: bad name-space keyword +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_28.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Parse alphabet +Parse fsc files +Error in file#: 4 "c:/yacco2/linker/TS_28t1.fsc" +name-spacee "NS_pass3" +^ + fpos: 106 line#: 7 cpos: 1 + name-space keyword not present + +######## fsc control files: bad name-space value +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_29.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Parse alphabet +Parse fsc files +Error in file#: 4 "c:/yacco2/linker/TS_29t1.fsc" +name-space NS_pass3 + ^ + fpos: 117 line#: 7 cpos: 14 + name-space value not present or quoted value + +######## fsc control files: bad thread-name keyword +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_30.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Parse alphabet +Parse fsc files +Error in file#: 4 "c:/yacco2/linker/TS_30t1.fsc" +thread-namee "Cpass3" +^ + fpos: 131 line#: 8 cpos: 1 + thread-name keyword not present + +######## fsc control files: bad thread-name value +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_31.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Parse alphabet +Parse fsc files +Error in file#: 4 "c:/yacco2/linker/TS_31t1.fsc" +thread-name Cpass3 + ^ + fpos: 142 line#: 8 cpos: 14 + thread-name value not present or quoted value + +######## fsc control files: bad monolithic keyword +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_32.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Parse alphabet +Parse fsc files +Error in file#: 4 "c:/yacco2/linker/TS_32t1.fsc" +monolithicc y +^ + fpos: 152 line#: 9 cpos: 1 + monolithic keyword not present + +######## fsc control files: bad monolithic value +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_33.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Parse alphabet +Parse fsc files +Error in file#: 4 "c:/yacco2/linker/TS_33t1.fsc" +monolithic Y + ^ + fpos: 163 line#: 9 cpos: 14 + linker's monolithic value not n or y + +######## fsc control files: bad file-name keyword +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_34.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Parse alphabet +Parse fsc files +Error in file#: 4 "c:/yacco2/linker/TS_34t1.fsc" +file-namee "pass3.fsc" +^ + fpos: 166 line#: 10 cpos: 1 + file-name keyword not present + +######## fsc control files: bad file-name value +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_35.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Parse alphabet +Parse fsc files +Error in file#: 4 "c:/yacco2/linker/TS_35t1.fsc" +file-name monolithic.fsc + ^ + fpos: 177 line#: 10 cpos: 14 + file-name value not present or quoted value + +######## fsc control files: bad no-of-T keyword +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_36.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Parse alphabet +Parse fsc files +Error in file#: 4 "c:/yacco2/linker/TS_36t1.fsc" +no-of-Tt 504 +^ + fpos: 189 line#: 11 cpos: 1 + no-of-T keyword not present + +######## fsc control files: bad no-of-T value +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_37.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Parse alphabet +Parse fsc files +Error in file#: 4 "c:/yacco2/linker/TS_37t1.fsc" +no-of-T +504 + ^ + fpos: 200 line#: 11 cpos: 14 + no-of-T value not present + +######## fsc control files: bad list-of-native-first-set-terminals keyword +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_38.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Parse alphabet +Parse fsc files +Error in file#: 4 "c:/yacco2/linker/TS_38t1.fsc" +no-of-T 504 + ^ + fpos: 229 line#: 11 cpos: 14 + T-alphabet list vs no. of T not eq. re-compile grammar +Error in file#: 4 "c:/yacco2/linker/TS_38t1.fsc" +transitive 3 +^ + fpos: 233 line#: 12 cpos: 1 + list-of-native-terminals keyword not present + +######## fsc control files: bad end-list-of-native-first-set-terminals keyword +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_39.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Parse alphabet +Parse fsc files +Error in file#: 4 "c:/yacco2/linker/TS_39t1.fsc" +no-of-T 504 + ^ + fpos: 233 line#: 11 cpos: 14 + T-alphabet list vs no. of T not eq. re-compile grammar +Error in file#: 4 "c:/yacco2/linker/TS_39t1.fsc" +end-list-of-native-first-set-terminalss +^ + fpos: 326 line#: 16 cpos: 1 + bad terminal in list, not defined in T-alphabet + +######## fsc control files: bad list-of-transitive-threads keyword +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_40.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Parse alphabet +Parse fsc files +Error in file#: 4 "c:/yacco2/linker/TS_40t1.fsc" +no-of-T 504 + ^ + fpos: 221 line#: 11 cpos: 14 + T-alphabet list vs no. of T not eq. re-compile grammar +Error in file#: 4 "c:/yacco2/linker/TS_40t1.fsc" +list-of-transitive-threadss 0 +^ + fpos: 353 line#: 17 cpos: 1 + list-of-transitive-threads keyword not present + +######## fsc control files: bad end-list-of-transitive-threads keyword +C:\yacco2\linker\Release>lnk.exe "c:/yacco2/linker/TS_41.fsc" +Load linker's keywords +Get command line and parse it +Parse linker control file +Parse alphabet +Parse fsc files +Error in file#: 4 "c:/yacco2/linker/TS_41t1.fsc" +no-of-T 504 + ^ + fpos: 225 line#: 11 cpos: 14 + T-alphabet list vs no. of T not eq. re-compile grammar +Error in file#: 4 "c:/yacco2/linker/TS_41t1.fsc" +end-list-of-transitive-threadss + ^ + fpos: 387 line#: 18 cpos: 3 + end-list-of-transitive-threads keyword not present + +C:\yacco2\linker\Release>del c:\yacco2\linker\ts*.tmp diff --git a/web/yacco2/diagrams/threading_defs.1 b/web/yacco2/diagrams/threading_defs.1 new file mode 100644 index 0000000000..c7382817da --- /dev/null +++ b/web/yacco2/diagrams/threading_defs.1 @@ -0,0 +1,203 @@ +%!PS +%%BoundingBox: -74 -13 344 81 +%%Creator: MetaPost +%%CreationDate: 2006.05.23:0810 +%%Pages: 1 +%*Font: cmr10 5.97765 9.96265 20:8004e000000000004cc338 +%*Font: cmmi10 9.96265 9.96265 3a:a800020001b320e +%*Font: cmsy10 9.96265 9.96265 0f:80001 +%*Font: cmr10 9.96265 9.96265 23:80400100000000a3eefdee4 +%%EndProlog +%%Page: 1 1 + 0 0.5 dtransform truncate idtransform setlinewidth pop [] 0 setdash + 1 setlinejoin 10 setmiterlimit +newpath 12.79213 0 moveto +25.58426 0 lineto +25.58426 51.16852 lineto +12.79213 51.16852 lineto + closepath stroke + 1 setlinecap +newpath 12.79213 12.79213 moveto +25.58426 12.79213 lineto stroke +newpath 12.79213 25.58426 moveto +25.58426 25.58426 lineto stroke +newpath 12.79213 38.37639 moveto +14.55835 40.14261 17.42198 40.14261 19.1882 38.37639 curveto +20.95442 36.61017 23.81804 36.61017 25.58426 38.37639 curveto stroke +28.58426 -1.92613 moveto +(0) cmr10 5.97765 fshow +28.58426 10.866 moveto +(1) cmr10 5.97765 fshow +28.58426 23.65813 moveto +(2) cmr10 5.97765 fshow +28.58426 36.30081 moveto +(no threads ids-1) cmr10 5.97765 fshow +-73.87308 -10.472 moveto +(P) cmmi10 9.96265 fshow +-66.09317 -10.472 moveto +(ar) cmmi10 9.96265 fshow +-56.05557 -10.472 moveto +(al) cmmi10 9.96265 fshow +-47.62077 -10.472 moveto +(l) cmmi10 9.96265 fshow +-44.45207 -10.472 moveto +(el) cmmi10 9.96265 fshow + 0 0.3985 dtransform truncate idtransform setlinewidth pop 0 setlinecap +newpath -36.04678 -10.2728 moveto +-33.05798 -10.2728 lineto stroke +-33.05798 -10.472 moveto +(thr) cmmi10 9.96265 fshow +-18.94878 -10.472 moveto +(ead) cmmi10 9.96265 fshow +newpath -3.26068 -10.2728 moveto +-0.27177 -10.2728 lineto stroke +-0.27177 -10.472 moveto +(tabl) cmmi10 9.96265 fshow +16.03622 -10.472 moveto +(e) cmmi10 9.96265 fshow +20.67513 -10.472 moveto +([) cmr10 9.96265 fshow +23.44252 -10.472 moveto +(thd) cmmi10 9.96265 fshow +37.96562 -10.472 moveto +(#]) cmr10 9.96265 fshow +49.03522 -10.472 moveto +(:thr) cmmi10 9.96265 fshow +65.91182 -10.472 moveto +(ead) cmmi10 9.96265 fshow +newpath 81.60002 -10.2728 moveto +84.58882 -10.2728 lineto stroke +84.58882 -10.472 moveto +(l) cmmi10 9.96265 fshow +87.75752 -10.472 moveto +(ist) cmmi10 9.96265 fshow +66.96065 73.29352 moveto +(thr) cmmi10 9.96265 fshow +81.06985 73.29352 moveto +(ead) cmmi10 9.96265 fshow +newpath 96.75795 73.49272 moveto +99.74675 73.49272 lineto stroke +99.74675 73.29352 moveto +(l) cmmi10 9.96265 fshow +102.91545 73.29352 moveto +(ist) cmmi10 9.96265 fshow +117.38264 73.29352 moveto +(:) cmr10 9.96265 fshow +79.75278 61.46999 moveto +(\017) cmsy10 9.96265 fshow +88.05498 61.46999 moveto +(list) cmr10 9.96265 fshow +101.39388 61.46999 moveto +(<) cmmi10 9.96265 fshow +109.14258 61.46999 moveto +(w) cmr10 9.96265 fshow +116.06108 61.46999 moveto +(ork) cmr10 9.96265 fshow +129.92587 61.46999 moveto +(er) cmr10 9.96265 fshow +newpath 138.85347 61.66919 moveto +141.84227 61.66919 lineto stroke +141.84227 61.46999 moveto +(thread) cmr10 9.96265 fshow +newpath 170.69518 61.66919 moveto +173.68408 61.66919 lineto stroke +173.68408 61.46999 moveto +(blk) cmr10 9.96265 fshow +187.24437 61.46999 moveto +(") cmsy10 9.96265 fshow +192.22568 61.46999 moveto +(>) cmmi10 9.96265 fshow +105.33704 48.67786 moveto +(\017) cmsy10 9.96265 fshow +113.63924 48.67786 moveto +(parser) cmr10 9.96265 fshow +143.63794 48.67786 moveto +(") cmsy10 9.96265 fshow +151.94014 48.67786 moveto +(|) cmr10 9.96265 fshow +165.22363 48.67786 moveto +(grammar) cmr10 9.96265 fshow +207.89703 48.67786 moveto +(con) cmr10 9.96265 fshow +222.56433 48.67786 moveto +(taining) cmr10 9.96265 fshow +256.32663 48.67786 moveto +(w) cmr10 9.96265 fshow +263.24513 48.67786 moveto +(ork) cmr10 9.96265 fshow +277.10983 48.67786 moveto +(er) cmr10 9.96265 fshow +newpath 286.03743 48.87706 moveto +289.02634 48.87706 lineto stroke +289.02634 48.67786 moveto +(thread) cmr10 9.96265 fshow +newpath 317.87924 48.87706 moveto +320.86804 48.87706 lineto stroke +320.86804 48.67786 moveto +(blk) cmr10 9.96265 fshow +105.33704 35.88573 moveto +(\017) cmsy10 9.96265 fshow +113.63924 35.88573 moveto +(status) cmr10 9.96265 fshow +143.08444 35.88573 moveto +(|) cmr10 9.96265 fshow +156.36794 35.88573 moveto +(idle,) cmr10 9.96265 fshow +177.95374 35.88573 moveto +(w) cmr10 9.96265 fshow +184.87224 35.88573 moveto +(orking,) cmr10 9.96265 fshow +218.38553 35.88573 moveto +(or) cmr10 9.96265 fshow +230.58974 35.88573 moveto +(exiting) cmr10 9.96265 fshow +105.33704 23.0936 moveto +(\017) cmsy10 9.96265 fshow +113.63924 23.0936 moveto +(run) cmr10 9.96265 fshow +131.93184 23.0936 moveto +(cn) cmr10 9.96265 fshow +141.61774 23.0936 moveto +(t) cmr10 9.96265 fshow +148.81294 23.0936 moveto +(|) cmr10 9.96265 fshow +162.09644 23.0936 moveto +(stats) cmr10 9.96265 fshow +186.00684 23.0936 moveto +(on) cmr10 9.96265 fshow +199.84384 23.0936 moveto +(ho) cmr10 9.96265 fshow +210.08324 23.0936 moveto +(w) cmr10 9.96265 fshow +220.59944 23.0936 moveto +(man) cmr10 9.96265 fshow +239.14104 23.0936 moveto +(y) cmr10 9.96265 fshow +247.71994 23.0936 moveto +(times) cmr10 9.96265 fshow +274.34244 23.0936 moveto +(thread) cmr10 9.96265 fshow +305.91853 23.0936 moveto +(executed) cmr10 9.96265 fshow +105.33704 9.33287 moveto +(\017) cmsy10 9.96265 fshow +113.63924 9.33287 moveto +(thd) cmr10 9.96265 fshow +131.90413 9.33287 moveto +(id) cmr10 9.96265 fshow +143.52724 9.33287 moveto +(|) cmr10 9.96265 fshow +156.81073 9.33287 moveto +(thread) cmr10 9.96265 fshow +188.38684 9.33287 moveto +(id) cmr10 9.96265 fshow +200.00993 9.33287 moveto +(n) cmr10 9.96265 fshow +205.26804 9.33287 moveto +(um) cmr10 9.96265 fshow +218.82834 9.33287 moveto +(b) cmr10 9.96265 fshow +224.63983 9.33287 moveto +(er) cmr10 9.96265 fshow +showpage +%%EOF diff --git a/web/yacco2/diagrams/threading_defs.mp b/web/yacco2/diagrams/threading_defs.mp new file mode 100644 index 0000000000..6fef81e9fa --- /dev/null +++ b/web/yacco2/diagrams/threading_defs.mp @@ -0,0 +1,49 @@ +% file: threading_defs.mp +input boxes +pair sw,se,ne,nw; +pair zx,zy; +beginfig(1); +u=1cc; +% stbl +sw:=(1u,0); +se:=(2u,0); +ne:=(2u,4u); +nw:=(1u,4u); +draw sw--se--ne--nw--cycle; +%outline the tab;e +for i=1 upto 3: + zx:=(1u,i*u); + zy:=(2u,i*u); + if i = 3: + draw zx{dir 45} .. .5[zx,zy] {dir -45} .. zy; + else: + draw zx--zy; + fi +endfor + +% label subscripts +defaultscale:=.6; +for i=0 upto 3: + zy:=(2u,i*u); + string a; + if i=3: + a := "no threads ids-1"; + label.rt(a,zy); + else: + a:=decimal(i); + label.rt(a,zy); + fi +endfor +defaultscale:=1; +label.bot(btex $Parallel\_thread\_table[thd $\#$].thread\_list$ etex,(1u,0u)); + + +%outline table_entry +label.rt(btex $thread\_list:$ etex,(5u,6u)); + label.rt(btex $\bullet\ $list$<$worker$\_$thread$\_$blk$\uparrow >$ etex,(6u,5u)); + label.rt(btex $\bullet\ $parser\ $\uparrow$ --- grammar containing worker$\_$thread$\_$blk etex,(8u,4u)); + label.rt(btex $\bullet\ $status\ --- idle, working, or exiting etex,(8u,3u)); + label.rt(btex $\bullet\ $run cnt\ --- stats on how many times thread executed etex,(8u,2u)); + label.rt(btex $\bullet\ $thd id\ --- thread id number etex,(8u,1u)); +endfig; +end; diff --git a/web/yacco2/diagrams/threading_exs.1 b/web/yacco2/diagrams/threading_exs.1 new file mode 100644 index 0000000000..494d9b673c --- /dev/null +++ b/web/yacco2/diagrams/threading_exs.1 @@ -0,0 +1,617 @@ +%!PS +%%BoundingBox: -75 -1 379 287 +%%Creator: MetaPost +%%CreationDate: 2006.05.29:1634 +%%Pages: 1 +%*Font: cmtt8 4.78212 7.97011 30:ffc +%*Font: cmr10 9.96265 9.96265 41:82002000a801001 +%*Font: cmtt8 7.97011 7.97011 20:80040020595cb9005fdfff8 +%%EndProlog +%%Page: 1 1 + 0 0.5 dtransform truncate idtransform setlinewidth pop [] 0 setdash + 1 setlinejoin 10 setmiterlimit +newpath 0 0 moveto +286.54248 0 lineto +286.54248 286.54248 lineto +0 286.54248 lineto + closepath stroke +newpath 17.9089 17.9089 moveto +268.63358 17.9089 lineto +268.63358 268.63358 lineto +17.9089 268.63358 lineto + closepath stroke +newpath 26.86336 26.86336 moveto +259.67912 26.86336 lineto +259.67912 259.67912 lineto +26.86336 259.67912 lineto + closepath stroke + 1 setlinecap +newpath 0 0 moveto +17.9089 17.9089 lineto stroke +newpath 286.54248 0 moveto +268.63358 17.9089 lineto stroke +newpath 286.54248 286.54248 moveto +268.63358 268.63358 lineto stroke +newpath 0 286.54248 moveto +17.9089 268.63358 lineto stroke +newpath 17.9089 17.9089 moveto +17.9089 26.86336 lineto +26.86336 26.86336 lineto +26.86336 17.9089 lineto stroke +newpath 17.9089 268.63358 moveto +26.86336 268.63358 lineto +26.86336 259.67912 lineto +17.9089 259.67912 lineto stroke +newpath 268.63358 268.63358 moveto +268.63358 259.67912 lineto +259.67912 259.67912 lineto +259.67912 268.63358 lineto stroke +newpath 268.63358 17.9089 moveto +259.67912 17.9089 lineto +259.67912 26.86336 lineto +268.63358 26.86336 lineto stroke +30.07033 20.9089 moveto +(0) cmtt8 4.78212 fshow +30.07033 262.67912 moveto +(0) cmtt8 4.78212 fshow +21.11588 253.72467 moveto +(0) cmtt8 4.78212 fshow +262.8861 253.72467 moveto +(0) cmtt8 4.78212 fshow +39.02478 20.9089 moveto +(1) cmtt8 4.78212 fshow +39.02478 262.67912 moveto +(1) cmtt8 4.78212 fshow +21.11588 244.77022 moveto +(1) cmtt8 4.78212 fshow +262.8861 244.77022 moveto +(1) cmtt8 4.78212 fshow +47.97923 20.9089 moveto +(2) cmtt8 4.78212 fshow +47.97923 262.67912 moveto +(2) cmtt8 4.78212 fshow +21.11588 235.81577 moveto +(2) cmtt8 4.78212 fshow +262.8861 235.81577 moveto +(2) cmtt8 4.78212 fshow +56.93369 20.9089 moveto +(3) cmtt8 4.78212 fshow +56.93369 262.67912 moveto +(3) cmtt8 4.78212 fshow +21.11588 226.86131 moveto +(3) cmtt8 4.78212 fshow +262.8861 226.86131 moveto +(3) cmtt8 4.78212 fshow +65.88814 20.9089 moveto +(4) cmtt8 4.78212 fshow +65.88814 262.67912 moveto +(4) cmtt8 4.78212 fshow +21.11588 217.90686 moveto +(4) cmtt8 4.78212 fshow +262.8861 217.90686 moveto +(4) cmtt8 4.78212 fshow +74.84259 20.9089 moveto +(5) cmtt8 4.78212 fshow +74.84259 262.67912 moveto +(5) cmtt8 4.78212 fshow +21.11588 208.95241 moveto +(5) cmtt8 4.78212 fshow +262.8861 208.95241 moveto +(5) cmtt8 4.78212 fshow +83.79704 20.9089 moveto +(6) cmtt8 4.78212 fshow +83.79704 262.67912 moveto +(6) cmtt8 4.78212 fshow +21.11588 199.99796 moveto +(6) cmtt8 4.78212 fshow +262.8861 199.99796 moveto +(6) cmtt8 4.78212 fshow +92.7515 20.9089 moveto +(7) cmtt8 4.78212 fshow +92.7515 262.67912 moveto +(7) cmtt8 4.78212 fshow +21.11588 191.0435 moveto +(7) cmtt8 4.78212 fshow +262.8861 191.0435 moveto +(7) cmtt8 4.78212 fshow +101.70595 20.9089 moveto +(8) cmtt8 4.78212 fshow +101.70595 262.67912 moveto +(8) cmtt8 4.78212 fshow +21.11588 182.08905 moveto +(8) cmtt8 4.78212 fshow +262.8861 182.08905 moveto +(8) cmtt8 4.78212 fshow +110.6604 20.9089 moveto +(9) cmtt8 4.78212 fshow +110.6604 262.67912 moveto +(9) cmtt8 4.78212 fshow +21.11588 173.1346 moveto +(9) cmtt8 4.78212 fshow +262.8861 173.1346 moveto +(9) cmtt8 4.78212 fshow +118.34457 20.9089 moveto +(10) cmtt8 4.78212 fshow +118.34457 262.67912 moveto +(10) cmtt8 4.78212 fshow +19.8456 164.18015 moveto +(10) cmtt8 4.78212 fshow +261.61581 164.18015 moveto +(10) cmtt8 4.78212 fshow +127.29903 20.9089 moveto +(11) cmtt8 4.78212 fshow +127.29903 262.67912 moveto +(11) cmtt8 4.78212 fshow +19.8456 155.2257 moveto +(11) cmtt8 4.78212 fshow +261.61581 155.2257 moveto +(11) cmtt8 4.78212 fshow +136.25348 20.9089 moveto +(12) cmtt8 4.78212 fshow +136.25348 262.67912 moveto +(12) cmtt8 4.78212 fshow +19.8456 146.27124 moveto +(12) cmtt8 4.78212 fshow +261.61581 146.27124 moveto +(12) cmtt8 4.78212 fshow +145.20793 20.9089 moveto +(13) cmtt8 4.78212 fshow +145.20793 262.67912 moveto +(13) cmtt8 4.78212 fshow +19.8456 137.31679 moveto +(13) cmtt8 4.78212 fshow +261.61581 137.31679 moveto +(13) cmtt8 4.78212 fshow +154.16238 20.9089 moveto +(14) cmtt8 4.78212 fshow +154.16238 262.67912 moveto +(14) cmtt8 4.78212 fshow +19.8456 128.36234 moveto +(14) cmtt8 4.78212 fshow +261.61581 128.36234 moveto +(14) cmtt8 4.78212 fshow +163.11684 20.9089 moveto +(15) cmtt8 4.78212 fshow +163.11684 262.67912 moveto +(15) cmtt8 4.78212 fshow +19.8456 119.40788 moveto +(15) cmtt8 4.78212 fshow +261.61581 119.40788 moveto +(15) cmtt8 4.78212 fshow +172.07129 20.9089 moveto +(16) cmtt8 4.78212 fshow +172.07129 262.67912 moveto +(16) cmtt8 4.78212 fshow +19.8456 110.45343 moveto +(16) cmtt8 4.78212 fshow +261.61581 110.45343 moveto +(16) cmtt8 4.78212 fshow +181.02574 20.9089 moveto +(17) cmtt8 4.78212 fshow +181.02574 262.67912 moveto +(17) cmtt8 4.78212 fshow +19.8456 101.49898 moveto +(17) cmtt8 4.78212 fshow +261.61581 101.49898 moveto +(17) cmtt8 4.78212 fshow +189.9802 20.9089 moveto +(18) cmtt8 4.78212 fshow +189.9802 262.67912 moveto +(18) cmtt8 4.78212 fshow +19.8456 92.54453 moveto +(18) cmtt8 4.78212 fshow +261.61581 92.54453 moveto +(18) cmtt8 4.78212 fshow +198.93465 20.9089 moveto +(19) cmtt8 4.78212 fshow +198.93465 262.67912 moveto +(19) cmtt8 4.78212 fshow +19.8456 83.59007 moveto +(19) cmtt8 4.78212 fshow +261.61581 83.59007 moveto +(19) cmtt8 4.78212 fshow +207.8891 20.9089 moveto +(20) cmtt8 4.78212 fshow +207.8891 262.67912 moveto +(20) cmtt8 4.78212 fshow +19.8456 74.63562 moveto +(20) cmtt8 4.78212 fshow +261.61581 74.63562 moveto +(20) cmtt8 4.78212 fshow +216.84355 20.9089 moveto +(21) cmtt8 4.78212 fshow +216.84355 262.67912 moveto +(21) cmtt8 4.78212 fshow +19.8456 65.68117 moveto +(21) cmtt8 4.78212 fshow +261.61581 65.68117 moveto +(21) cmtt8 4.78212 fshow +225.798 20.9089 moveto +(22) cmtt8 4.78212 fshow +225.798 262.67912 moveto +(22) cmtt8 4.78212 fshow +19.8456 56.72672 moveto +(22) cmtt8 4.78212 fshow +261.61581 56.72672 moveto +(22) cmtt8 4.78212 fshow +234.75246 20.9089 moveto +(23) cmtt8 4.78212 fshow +234.75246 262.67912 moveto +(23) cmtt8 4.78212 fshow +19.8456 47.77226 moveto +(23) cmtt8 4.78212 fshow +261.61581 47.77226 moveto +(23) cmtt8 4.78212 fshow +243.70691 20.9089 moveto +(24) cmtt8 4.78212 fshow +243.70691 262.67912 moveto +(24) cmtt8 4.78212 fshow +19.8456 38.81781 moveto +(24) cmtt8 4.78212 fshow +261.61581 38.81781 moveto +(24) cmtt8 4.78212 fshow +252.66136 20.9089 moveto +(25) cmtt8 4.78212 fshow +252.66136 262.67912 moveto +(25) cmtt8 4.78212 fshow +19.8456 29.86336 moveto +(25) cmtt8 4.78212 fshow +261.61581 29.86336 moveto +(25) cmtt8 4.78212 fshow +newpath 286.54248 246.24745 moveto +268.63358 246.24745 lineto stroke +newpath 272.32918 247.77826 moveto +268.63358 246.24745 lineto +272.32918 244.71664 lineto + closepath +gsave fill grestore stroke +newpath 282.84688 244.71664 moveto +286.54248 246.24745 lineto +282.84688 247.77826 lineto + closepath +gsave fill grestore stroke +289.54248 244.69771 moveto +(Acquire g) cmtt8 7.97011 fshow +289.54248 235.30046 moveto +(Launch threads) cmtt8 7.97011 fshow +newpath 286.54248 228.33855 moveto +268.63358 228.33855 lineto stroke +newpath 272.32918 229.86935 moveto +268.63358 228.33855 lineto +272.32918 226.80774 lineto + closepath +gsave fill grestore stroke +newpath 282.84688 226.80774 moveto +286.54248 228.33855 lineto +282.84688 229.86935 lineto + closepath +gsave fill grestore stroke +289.54248 226.7888 moveto +(Acquire x) cmtt8 7.97011 fshow +newpath 286.54248 219.3841 moveto +268.63358 219.3841 lineto stroke +newpath 272.32918 220.9149 moveto +268.63358 219.3841 lineto +272.32918 217.85329 lineto + closepath +gsave fill grestore stroke +289.54248 217.39156 moveto +(Create A) cmtt8 7.97011 fshow +newpath 17.9089 210.42964 moveto +0 210.42964 lineto stroke +newpath 3.6956 211.96045 moveto +0 210.42964 lineto +3.6956 208.89883 lineto + closepath +gsave fill grestore stroke +-41.10759 207.99432 moveto +(Activated) cmtt8 7.97011 fshow +newpath 17.9089 201.47519 moveto +0 201.47519 lineto stroke +newpath 3.6956 203.006 moveto +0 201.47519 lineto +3.6956 199.94438 lineto + closepath +gsave fill grestore stroke +newpath 14.2133 199.94438 moveto +17.9089 201.47519 lineto +14.2133 203.006 lineto + closepath +gsave fill grestore stroke +-41.10759 199.92543 moveto +(Acquire a) cmtt8 7.97011 fshow +newpath 0 192.52074 moveto +17.9089 192.52074 lineto stroke +newpath 14.2133 190.98993 moveto +17.9089 192.52074 lineto +14.2133 194.05154 lineto + closepath +gsave fill grestore stroke +-41.10759 190.97098 moveto +(Acquire x) cmtt8 7.97011 fshow +newpath 268.63358 183.56628 moveto +286.54248 183.56628 lineto stroke +newpath 282.84688 182.03548 moveto +286.54248 183.56628 lineto +282.84688 185.09709 lineto + closepath +gsave fill grestore stroke +289.54248 181.13097 moveto +(Re-activated) cmtt8 7.97011 fshow +289.54248 173.06209 moveto +(Setup: thread results) cmtt8 7.97011 fshow +newpath 286.54248 165.65738 moveto +268.63358 165.65738 lineto stroke +newpath 272.32918 167.18819 moveto +268.63358 165.65738 lineto +272.32918 164.12657 lineto + closepath +gsave fill grestore stroke +289.54248 163.66484 moveto +(Release x) cmtt8 7.97011 fshow +newpath 17.9089 156.70293 moveto +0 156.70293 lineto stroke +newpath 3.6956 158.23373 moveto +0 156.70293 lineto +3.6956 155.17212 lineto + closepath +gsave fill grestore stroke +-58.0443 155.15317 moveto +(Wokeup with x) cmtt8 7.97011 fshow +-41.10759 145.75594 moveto +(Make idle) cmtt8 7.97011 fshow +newpath 0 138.79402 moveto +17.9089 138.79402 lineto stroke +newpath 14.2133 137.26321 moveto +17.9089 138.79402 lineto +14.2133 140.32483 lineto + closepath +gsave fill grestore stroke +-41.10759 136.80148 moveto +(Release x) cmtt8 7.97011 fshow +newpath 268.63358 129.83957 moveto +286.54248 129.83957 lineto stroke +newpath 282.84688 128.30876 moveto +286.54248 129.83957 lineto +282.84688 131.37038 lineto + closepath +gsave fill grestore stroke +289.54248 127.40425 moveto +(Re-activated) cmtt8 7.97011 fshow +newpath 286.54248 120.88512 moveto +268.63358 120.88512 lineto stroke +newpath 272.32918 122.41592 moveto +268.63358 120.88512 lineto +272.32918 119.35431 lineto + closepath +gsave fill grestore stroke +289.54248 118.89258 moveto +(Wait on event) cmtt8 7.97011 fshow +289.54248 110.38092 moveto +(release g) cmtt8 7.97011 fshow +newpath 17.9089 111.93066 moveto +0 111.93066 lineto stroke +newpath 3.6956 113.46147 moveto +0 111.93066 lineto +3.6956 110.39986 lineto + closepath +gsave fill grestore stroke +-53.81012 109.49535 moveto +(Re-activated) cmtt8 7.97011 fshow +newpath 17.9089 102.97621 moveto +0 102.97621 lineto stroke +newpath 3.6956 104.50702 moveto +0 102.97621 lineto +3.6956 101.4454 lineto + closepath +gsave fill grestore stroke +newpath 14.2133 101.4454 moveto +17.9089 102.97621 lineto +14.2133 104.50702 lineto + closepath +gsave fill grestore stroke +-41.10759 101.42645 moveto +(Acquire g) cmtt8 7.97011 fshow +-74.981 92.472 moveto +(Deposit data in G) cmtt8 7.97011 fshow +newpath 17.9089 85.0673 moveto +0 85.0673 lineto stroke +newpath 3.6956 86.59811 moveto +0 85.0673 lineto +3.6956 83.5365 lineto + closepath +gsave fill grestore stroke +newpath 14.2133 83.5365 moveto +17.9089 85.0673 lineto +14.2133 86.59811 lineto + closepath +gsave fill grestore stroke +-41.10759 83.51755 moveto +(Release g) cmtt8 7.97011 fshow +newpath 17.9089 76.11285 moveto +0 76.11285 lineto stroke +newpath 3.6956 77.64366 moveto +0 76.11285 lineto +3.6956 74.58205 lineto + closepath +gsave fill grestore stroke +newpath 14.2133 74.58205 moveto +17.9089 76.11285 lineto +14.2133 77.64366 lineto + closepath +gsave fill grestore stroke +-36.87341 74.5631 moveto +(Signal G) cmtt8 7.97011 fshow +newpath 0 67.1584 moveto +17.9089 67.1584 lineto stroke +newpath 14.2133 65.6276 moveto +17.9089 67.1584 lineto +14.2133 68.68921 lineto + closepath +gsave fill grestore stroke +-58.0443 65.16586 moveto +(Wait on event) cmtt8 7.97011 fshow +-41.10759 56.21141 moveto +(release a) cmtt8 7.97011 fshow +newpath 268.63358 58.20395 moveto +286.54248 58.20395 lineto stroke +newpath 282.84688 56.67314 moveto +286.54248 58.20395 lineto +282.84688 59.73476 lineto + closepath +gsave fill grestore stroke +289.54248 56.6542 moveto +(Wokeup from event) cmtt8 7.97011 fshow +289.54248 47.25696 moveto +(Process data from A) cmtt8 7.97011 fshow +289.54248 38.7453 moveto +(Keep running until) cmtt8 7.97011 fshow +289.54248 29.34805 moveto +(launch of threads) cmtt8 7.97011 fshow +74.63562 182.01654 moveto +(Inner Space: Thread Manager) cmtt8 7.97011 fshow +29.86336 253.65216 moveto +(Running queue:) cmtt8 7.97011 fshow +29.86336 243.81213 moveto +(G) cmtt8 7.97011 fshow +29.86336 234.85768 moveto +(A) cmtt8 7.97011 fshow +29.86336 208.8799 moveto +(To Run queue:) cmtt8 7.97011 fshow +29.86336 199.03987 moveto +(G) cmtt8 7.97011 fshow +29.86336 190.08542 moveto +(A) cmtt8 7.97011 fshow +29.86336 163.22206 moveto +(Resources) cmtt8 7.97011 fshow +29.86336 155.87271 moveto +(g) cmtt8 7.97011 fshow +29.86336 146.03268 moveto +(x) cmtt8 7.97011 fshow +29.86336 137.07823 moveto +(a) cmtt8 7.97011 fshow +newpath 35.81781 246.24745 moveto +71.63562 246.24745 lineto stroke +newpath 71.63562 237.293 moveto +98.49898 237.293 lineto stroke +newpath 98.49898 246.24745 moveto +125.36234 246.24745 lineto stroke +newpath 125.36234 237.293 moveto +152.2257 237.293 lineto stroke +newpath 152.2257 246.24745 moveto +170.1346 246.24745 lineto stroke +newpath 170.1346 237.293 moveto +223.86131 237.293 lineto stroke +newpath 223.86131 246.24745 moveto +259.67912 246.24745 lineto stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth + [3 3 ] 0 setdash +newpath 71.63562 246.24745 moveto +71.63562 237.293 lineto stroke +newpath 98.49898 237.293 moveto +98.49898 246.24745 lineto stroke +newpath 125.36234 246.24745 moveto +125.36234 237.293 lineto stroke +newpath 152.2257 237.293 moveto +152.2257 246.24745 lineto stroke +newpath 170.1346 246.24745 moveto +170.1346 237.293 lineto stroke +newpath 223.86131 237.293 moveto +223.86131 246.24745 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop [] 0 setdash +newpath 53.72672 201.47519 moveto +89.54453 201.47519 lineto stroke +newpath 107.45343 201.47519 moveto +152.2257 201.47519 lineto stroke +newpath 89.54453 192.52074 moveto +134.31679 192.52074 lineto stroke +newpath 35.81781 156.70293 moveto +170.1346 156.70293 lineto stroke +newpath 179.08905 156.70293 moveto +205.95241 156.70293 lineto stroke +newpath 223.86131 156.70293 moveto +259.67912 156.70293 lineto stroke +newpath 53.72672 147.74847 moveto +125.36234 147.74847 lineto stroke +newpath 125.36234 147.74847 moveto +152.2257 147.74847 lineto stroke +newpath 80.59007 138.79402 moveto +223.86131 138.79402 lineto stroke +96.38188 159.70293 moveto +(G) cmtt8 7.97011 fshow +194.88086 159.70293 moveto +(A) cmtt8 7.97011 fshow +239.65312 159.70293 moveto +(G) cmtt8 7.97011 fshow +105.33633 150.74847 moveto +(G) cmtt8 7.97011 fshow +150.1086 141.79402 moveto +(A) cmtt8 7.97011 fshow + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth + [0 5 ] 2.5 setdash +newpath 94.02176 26.86336 moveto +94.02176 147.74847 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop [] 0 setdash +newpath 95.55284 144.05219 moveto +94.02176 147.74847 lineto +92.49068 144.05219 lineto + closepath +gsave fill grestore stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth + [3 3 ] 0 setdash +newpath 129.83957 147.74847 moveto +129.83957 26.86336 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop [] 0 setdash +newpath 128.30849 30.55965 moveto +129.83957 26.86336 lineto +131.37065 30.55965 lineto + closepath +gsave fill grestore stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth + [0 5 ] 2.5 setdash +newpath 165.65738 26.86336 moveto +165.65738 156.70293 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop [] 0 setdash +newpath 167.18816 153.0074 moveto +165.65738 156.70293 lineto +164.1266 153.0074 lineto + closepath +gsave fill grestore stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth + [3 3 ] 0 setdash +newpath 228.33855 156.70293 moveto +228.33855 26.86336 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop [] 0 setdash +newpath 226.80777 30.55888 moveto +228.33855 26.86336 lineto +229.86932 30.55888 lineto + closepath +gsave fill grestore stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth + [0 5 ] 2.5 setdash +newpath 219.3841 26.86336 moveto +219.3841 138.79402 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop [] 0 setdash +newpath 220.91486 135.09854 moveto +219.3841 138.79402 lineto +217.85333 135.09854 lineto + closepath +gsave fill grestore stroke +-65.2666 257.24382 moveto +(|) cmr10 9.96265 fshow +-51.98311 257.24382 moveto +(A) cmr10 9.96265 fshow +-41.1902 257.24382 moveto +(Space) cmr10 9.96265 fshow +-12.9627 257.24382 moveto +(|) cmr10 9.96265 fshow +298.49693 257.24382 moveto +(|) cmr10 9.96265 fshow +311.78043 257.24382 moveto +(G) cmr10 9.96265 fshow +322.91924 257.24382 moveto +(Space) cmr10 9.96265 fshow +351.14673 257.24382 moveto +(|) cmr10 9.96265 fshow +showpage +%%EOF diff --git a/web/yacco2/diagrams/threading_exs.2 b/web/yacco2/diagrams/threading_exs.2 new file mode 100644 index 0000000000..b9f8406535 --- /dev/null +++ b/web/yacco2/diagrams/threading_exs.2 @@ -0,0 +1,492 @@ +%!PS +%%BoundingBox: -56 -51 391 295 +%%Creator: MetaPost +%%CreationDate: 2006.05.29:1634 +%%Pages: 1 +%*Font: cmtt8 4.78212 7.97011 30:ffc +%*Font: cmr10 9.9628 9.96265 41:c2002000f881dc3 +%*Font: cmtt8 7.97011 7.97011 20:800e0020794439007ddbfe8 +%%EndProlog +%%Page: 1 1 + 0 0.5 dtransform truncate idtransform setlinewidth pop [] 0 setdash + 1 setlinejoin 10 setmiterlimit +newpath 0 0 moveto +294.21898 0 lineto +294.21898 294.21898 lineto +0 294.21898 lineto + closepath stroke +newpath 25.58426 25.58426 moveto +268.63472 25.58426 lineto +268.63472 268.63472 lineto +25.58426 268.63472 lineto + closepath stroke +newpath 38.37639 38.37639 moveto +255.84259 38.37639 lineto +255.84259 255.84259 lineto +38.37639 255.84259 lineto + closepath stroke + 1 setlinecap +newpath 0 0 moveto +25.58426 25.58426 lineto stroke +newpath 294.21898 0 moveto +268.63472 25.58426 lineto stroke +newpath 294.21898 294.21898 moveto +268.63472 268.63472 lineto stroke +newpath 0 294.21898 moveto +25.58426 268.63472 lineto stroke +newpath 25.58426 25.58426 moveto +25.58426 38.37639 lineto +38.37639 38.37639 lineto +38.37639 25.58426 lineto stroke +newpath 25.58426 268.63472 moveto +38.37639 268.63472 lineto +38.37639 255.84259 lineto +25.58426 255.84259 lineto stroke +newpath 268.63472 268.63472 moveto +268.63472 255.84259 lineto +255.84259 255.84259 lineto +255.84259 268.63472 lineto stroke +newpath 268.63472 25.58426 moveto +255.84259 25.58426 lineto +255.84259 38.37639 lineto +268.63472 38.37639 lineto stroke +43.5022 28.58426 moveto +(0) cmtt8 4.78212 fshow +43.5022 258.84259 moveto +(0) cmtt8 4.78212 fshow +30.71007 246.05046 moveto +(0) cmtt8 4.78212 fshow +260.9684 246.05046 moveto +(0) cmtt8 4.78212 fshow +56.29433 28.58426 moveto +(1) cmtt8 4.78212 fshow +56.29433 258.84259 moveto +(1) cmtt8 4.78212 fshow +30.71007 233.25833 moveto +(1) cmtt8 4.78212 fshow +260.9684 233.25833 moveto +(1) cmtt8 4.78212 fshow +69.08646 28.58426 moveto +(2) cmtt8 4.78212 fshow +69.08646 258.84259 moveto +(2) cmtt8 4.78212 fshow +30.71007 220.4662 moveto +(2) cmtt8 4.78212 fshow +260.9684 220.4662 moveto +(2) cmtt8 4.78212 fshow +81.87859 28.58426 moveto +(3) cmtt8 4.78212 fshow +81.87859 258.84259 moveto +(3) cmtt8 4.78212 fshow +30.71007 207.67407 moveto +(3) cmtt8 4.78212 fshow +260.9684 207.67407 moveto +(3) cmtt8 4.78212 fshow +94.67072 28.58426 moveto +(4) cmtt8 4.78212 fshow +94.67072 258.84259 moveto +(4) cmtt8 4.78212 fshow +30.71007 194.88194 moveto +(4) cmtt8 4.78212 fshow +260.9684 194.88194 moveto +(4) cmtt8 4.78212 fshow +107.46284 28.58426 moveto +(5) cmtt8 4.78212 fshow +107.46284 258.84259 moveto +(5) cmtt8 4.78212 fshow +30.71007 182.08981 moveto +(5) cmtt8 4.78212 fshow +260.9684 182.08981 moveto +(5) cmtt8 4.78212 fshow +120.25497 28.58426 moveto +(6) cmtt8 4.78212 fshow +120.25497 258.84259 moveto +(6) cmtt8 4.78212 fshow +30.71007 169.29768 moveto +(6) cmtt8 4.78212 fshow +260.9684 169.29768 moveto +(6) cmtt8 4.78212 fshow +133.0471 28.58426 moveto +(7) cmtt8 4.78212 fshow +133.0471 258.84259 moveto +(7) cmtt8 4.78212 fshow +30.71007 156.50555 moveto +(7) cmtt8 4.78212 fshow +260.9684 156.50555 moveto +(7) cmtt8 4.78212 fshow +145.83923 28.58426 moveto +(8) cmtt8 4.78212 fshow +145.83923 258.84259 moveto +(8) cmtt8 4.78212 fshow +30.71007 143.71342 moveto +(8) cmtt8 4.78212 fshow +260.9684 143.71342 moveto +(8) cmtt8 4.78212 fshow +158.63136 28.58426 moveto +(9) cmtt8 4.78212 fshow +158.63136 258.84259 moveto +(9) cmtt8 4.78212 fshow +30.71007 130.9213 moveto +(9) cmtt8 4.78212 fshow +260.9684 130.9213 moveto +(9) cmtt8 4.78212 fshow +170.15321 28.58426 moveto +(10) cmtt8 4.78212 fshow +170.15321 258.84259 moveto +(10) cmtt8 4.78212 fshow +29.43979 118.12917 moveto +(10) cmtt8 4.78212 fshow +259.69812 118.12917 moveto +(10) cmtt8 4.78212 fshow +182.94534 28.58426 moveto +(11) cmtt8 4.78212 fshow +182.94534 258.84259 moveto +(11) cmtt8 4.78212 fshow +29.43979 105.33704 moveto +(11) cmtt8 4.78212 fshow +259.69812 105.33704 moveto +(11) cmtt8 4.78212 fshow +195.73747 28.58426 moveto +(12) cmtt8 4.78212 fshow +195.73747 258.84259 moveto +(12) cmtt8 4.78212 fshow +29.43979 92.5449 moveto +(12) cmtt8 4.78212 fshow +259.69812 92.5449 moveto +(12) cmtt8 4.78212 fshow +208.5296 28.58426 moveto +(13) cmtt8 4.78212 fshow +208.5296 258.84259 moveto +(13) cmtt8 4.78212 fshow +29.43979 79.75278 moveto +(13) cmtt8 4.78212 fshow +259.69812 79.75278 moveto +(13) cmtt8 4.78212 fshow +221.32173 28.58426 moveto +(14) cmtt8 4.78212 fshow +221.32173 258.84259 moveto +(14) cmtt8 4.78212 fshow +29.43979 66.96065 moveto +(14) cmtt8 4.78212 fshow +259.69812 66.96065 moveto +(14) cmtt8 4.78212 fshow +234.11386 28.58426 moveto +(15) cmtt8 4.78212 fshow +234.11386 258.84259 moveto +(15) cmtt8 4.78212 fshow +29.43979 54.16852 moveto +(15) cmtt8 4.78212 fshow +259.69812 54.16852 moveto +(15) cmtt8 4.78212 fshow +246.90599 28.58426 moveto +(16) cmtt8 4.78212 fshow +246.90599 258.84259 moveto +(16) cmtt8 4.78212 fshow +29.43979 41.37639 moveto +(16) cmtt8 4.78212 fshow +259.69812 41.37639 moveto +(16) cmtt8 4.78212 fshow +newpath 25.58426 211.07014 moveto +0 211.07014 lineto stroke +newpath 3.6954 212.60086 moveto +0 211.07014 lineto +3.6954 209.53943 lineto + closepath +gsave fill grestore stroke +-41.10759 208.63483 moveto +(Activated) cmtt8 7.97011 fshow +newpath 25.58426 198.27802 moveto +0 198.27802 lineto stroke +newpath 3.6954 199.80873 moveto +0 198.27802 lineto +3.6954 196.7473 lineto + closepath +gsave fill grestore stroke +newpath 21.88885 196.7473 moveto +25.58426 198.27802 lineto +21.88885 199.80873 lineto + closepath +gsave fill grestore stroke +-41.10759 196.72826 moveto +(Acquire a) cmtt8 7.97011 fshow +newpath 25.58426 185.48589 moveto +0 185.48589 lineto stroke +newpath 3.6954 187.0166 moveto +0 185.48589 lineto +3.6954 183.95517 lineto + closepath +gsave fill grestore stroke +newpath 21.88885 183.95517 moveto +25.58426 185.48589 lineto +21.88885 187.0166 lineto + closepath +gsave fill grestore stroke +-41.10759 183.93613 moveto +(Acquire x) cmtt8 7.97011 fshow +newpath 0 172.69376 moveto +25.58426 172.69376 lineto stroke +newpath 21.88885 171.16304 moveto +25.58426 172.69376 lineto +21.88885 174.22447 lineto + closepath +gsave fill grestore stroke +-41.10759 170.70122 moveto +(Release x) cmtt8 7.97011 fshow +newpath 25.58426 95.94098 moveto +0 95.94098 lineto stroke +newpath 3.6954 97.4717 moveto +0 95.94098 lineto +3.6954 94.41026 lineto + closepath +gsave fill grestore stroke +-53.81012 93.50566 moveto +(Re-activated) cmtt8 7.97011 fshow +newpath 0 83.14885 moveto +25.58426 83.14885 lineto stroke +newpath 21.88885 81.61813 moveto +25.58426 83.14885 lineto +21.88885 84.67957 lineto + closepath +gsave fill grestore stroke +-41.10759 81.59909 moveto +(Acquire b) cmtt8 7.97011 fshow +newpath 294.21898 236.6544 moveto +268.63472 236.6544 lineto stroke +newpath 272.33012 238.18512 moveto +268.63472 236.6544 lineto +272.33012 235.12369 lineto + closepath +gsave fill grestore stroke +newpath 290.52357 235.12369 moveto +294.21898 236.6544 lineto +290.52357 238.18512 lineto + closepath +gsave fill grestore stroke +297.21898 235.10466 moveto +(Acquire g) cmtt8 7.97011 fshow +newpath 294.21898 223.86227 moveto +268.63472 223.86227 lineto stroke +newpath 272.33012 225.39299 moveto +268.63472 223.86227 lineto +272.33012 222.33156 lineto + closepath +gsave fill grestore stroke +297.21898 221.86974 moveto +(Create A) cmtt8 7.97011 fshow +newpath 268.63472 159.90163 moveto +294.21898 159.90163 lineto stroke +newpath 290.52357 158.37091 moveto +294.21898 159.90163 lineto +290.52357 161.43234 lineto + closepath +gsave fill grestore stroke +297.21898 157.46631 moveto +(Re-activated) cmtt8 7.97011 fshow +newpath 294.21898 147.1095 moveto +268.63472 147.1095 lineto stroke +newpath 272.33012 148.64021 moveto +268.63472 147.1095 lineto +272.33012 145.57878 lineto + closepath +gsave fill grestore stroke +297.21898 145.11696 moveto +(Create B) cmtt8 7.97011 fshow +newpath 268.63472 70.35672 moveto +294.21898 70.35672 lineto stroke +newpath 290.52357 68.826 moveto +294.21898 70.35672 lineto +290.52357 71.88744 lineto + closepath +gsave fill grestore stroke +297.21898 67.9214 moveto +(Re-activated) cmtt8 7.97011 fshow +newpath 294.21898 57.56459 moveto +268.63472 57.56459 lineto stroke +newpath 272.33012 59.0953 moveto +268.63472 57.56459 lineto +272.33012 56.03387 lineto + closepath +gsave fill grestore stroke +297.21898 56.01485 moveto +(Wait on signal, rel. g) cmtt8 7.97011 fshow +297.21898 42.33714 moveto +(Deadlock) cmtt8 7.97011 fshow + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth +newpath 159.90163 25.58426 moveto +159.90163 0 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 158.37091 3.6954 moveto +159.90163 0 lineto +161.43234 3.6954 lineto + closepath +gsave fill grestore stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth +newpath 172.69376 25.58426 moveto +172.69376 0 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 171.16304 3.6954 moveto +172.69376 0 lineto +174.22447 3.6954 lineto + closepath +gsave fill grestore stroke +newpath 174.22447 21.88885 moveto +172.69376 25.58426 lineto +171.16304 21.88885 lineto + closepath +gsave fill grestore stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth +newpath 185.48589 0 moveto +185.48589 25.58426 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 187.0166 21.88885 moveto +185.48589 25.58426 lineto +183.95517 21.88885 lineto + closepath +gsave fill grestore stroke +gsave [0.86601 0.5 -0.5 0.86601 129.02559 -25.68143 ] concat 0 0 moveto +(activ) cmr10 9.9628 fshow grestore +gsave [0.86601 0.5 -0.5 0.86601 147.00052 -15.30362 ] concat 0 0 moveto +(ated) cmr10 9.9628 fshow grestore +gsave [0.86601 0.5 -0.5 0.86601 140.34587 -24.98787 ] concat 0 0 moveto +(acquire) cmr10 9.9628 fshow grestore +gsave [0.86601 0.5 -0.5 0.86601 170.32793 -7.67776 ] concat 0 0 moveto +(b) cmr10 9.9628 fshow grestore +gsave [0.86601 0.5 -0.5 0.86601 153.61726 -24.7348 ] concat 0 0 moveto +(acquire) cmr10 9.9628 fshow grestore +gsave [0.86601 0.5 -0.5 0.86601 183.59932 -7.4247 ] concat 0 0 moveto +(a) cmr10 9.9628 fshow grestore +105.33704 132.76762 moveto +(Inner Space: Thread Manager) cmtt8 7.97011 fshow +41.37639 247.89679 moveto +(Running queue:) cmtt8 7.97011 fshow +41.37639 234.21909 moveto +(G) cmtt8 7.97011 fshow +41.37639 221.42696 moveto +(A) cmtt8 7.97011 fshow +41.37639 208.63483 moveto +(B) cmtt8 7.97011 fshow +41.37639 183.93614 moveto +(To Run queue:) cmtt8 7.97011 fshow +41.37639 170.25844 moveto +(G) cmtt8 7.97011 fshow +41.37639 157.46631 moveto +(A) cmtt8 7.97011 fshow +41.37639 144.67418 moveto +(B) cmtt8 7.97011 fshow +41.37639 119.08992 moveto +(Resources) cmtt8 7.97011 fshow +41.37639 107.9029 moveto +(g) cmtt8 7.97011 fshow +41.37639 94.22519 moveto +(x) cmtt8 7.97011 fshow +41.37639 81.43306 moveto +(a) cmtt8 7.97011 fshow +41.37639 67.9214 moveto +(b) cmtt8 7.97011 fshow +newpath 51.16852 236.6544 moveto +76.75278 236.6544 lineto stroke +newpath 127.9213 236.6544 moveto +153.50555 236.6544 lineto stroke +newpath 217.4662 236.6544 moveto +243.05046 236.6544 lineto stroke +newpath 76.75278 223.86227 moveto +127.9213 223.86227 lineto stroke +newpath 191.88194 223.86227 moveto +217.4662 223.86227 lineto stroke +newpath 153.50555 211.07014 moveto +191.88194 211.07014 lineto stroke +newpath 76.75278 172.69376 moveto +127.9213 172.69376 lineto stroke +newpath 153.50555 172.69376 moveto +217.4662 172.69376 lineto stroke +newpath 127.9213 159.90163 moveto +191.88194 159.90163 lineto stroke +newpath 51.16852 108.73311 moveto +243.05046 108.73311 lineto stroke +newpath 102.33704 95.94098 moveto +127.9213 95.94098 lineto stroke +newpath 89.5449 83.14885 moveto +255.84259 83.14885 lineto stroke +newpath 166.29768 70.35672 moveto +255.84259 70.35672 lineto stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth + [0 5 ] 2.5 setdash +newpath 185.48589 38.37639 moveto +185.48589 83.14885 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop [] 0 setdash +newpath 187.01665 79.45337 moveto +185.48589 83.14885 lineto +183.95512 79.45337 lineto + closepath +gsave fill grestore stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth + [0 5 ] 2.5 setdash +newpath 211.07014 38.37639 moveto +211.07014 70.35672 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop [] 0 setdash +newpath 212.6009 66.66124 moveto +211.07014 70.35672 lineto +209.53938 66.66124 lineto + closepath +gsave fill grestore stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth + [0 5 ] 2.5 setdash +newpath 236.6544 38.37639 moveto +236.6544 108.73311 lineto stroke + 0 0.5 dtransform truncate idtransform setlinewidth pop [] 0 setdash +newpath 238.1852 105.03754 moveto +236.6544 108.73311 lineto +235.12361 105.03754 lineto + closepath +gsave fill grestore stroke + 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth + [3 3 ] 0 setdash +newpath 76.75278 236.6544 moveto +76.75278 223.86227 lineto stroke +newpath 127.9213 223.86227 moveto +127.9213 236.6544 lineto stroke +newpath 153.50555 236.6544 moveto +153.50555 211.07014 lineto stroke +newpath 191.88194 211.07014 moveto +191.88194 223.86227 lineto stroke +newpath 217.4662 223.86227 moveto +217.4662 236.6544 lineto stroke +138.59633 111.73311 moveto +(G) cmtt8 7.97011 fshow +113.01207 98.94098 moveto +(A) cmtt8 7.97011 fshow +151.38846 86.14885 moveto +(A) cmtt8 7.97011 fshow +215.3491 73.35672 moveto +(B) cmtt8 7.97011 fshow + 0 0.5 dtransform truncate idtransform setlinewidth pop [] 0 setdash +newpath 243.05046 38.37639 moveto +255.84259 51.16852 lineto stroke +newpath 243.05046 51.16852 moveto +255.84259 38.37639 lineto stroke +gsave [0.99998 0 0 0.99998 82.05154 -48.18419 ] concat 0 0 moveto +(||{) cmr10 9.9628 fshow grestore +gsave [0.99998 0 0 0.99998 110.27904 -48.18419 ] concat 0 0 moveto +(B) cmr10 9.9628 fshow grestore +gsave [0.99998 0 0 0.99998 120.65685 -48.18419 ] concat 0 0 moveto +(Space) cmr10 9.9628 fshow grestore +gsave [0.99998 0 0 0.99998 148.88434 -48.18419 ] concat 0 0 moveto +(||{) cmr10 9.9628 fshow grestore +gsave [0.99998 0 0 0.99998 -55.3039 278.99155 ] concat 0 0 moveto +({) cmr10 9.9628 fshow grestore +gsave [0.99998 0 0 0.99998 -47.0017 278.99155 ] concat 0 0 moveto +(A) cmr10 9.9628 fshow grestore +gsave [0.99998 0 0 0.99998 -36.2088 278.99155 ] concat 0 0 moveto +(Space) cmr10 9.9628 fshow grestore +gsave [0.99998 0 0 0.99998 -7.9813 278.99155 ] concat 0 0 moveto +({) cmr10 9.9628 fshow grestore +gsave [0.99998 0 0 0.99998 297.21898 278.99155 ] concat 0 0 moveto +({) cmr10 9.9628 fshow grestore +gsave [0.99998 0 0 0.99998 305.52118 278.99155 ] concat 0 0 moveto +(G) cmr10 9.9628 fshow grestore +gsave [0.99998 0 0 0.99998 316.65997 278.99155 ] concat 0 0 moveto +(Space) cmr10 9.9628 fshow grestore +gsave [0.99998 0 0 0.99998 344.88748 278.99155 ] concat 0 0 moveto +({) cmr10 9.9628 fshow grestore +showpage +%%EOF diff --git a/web/yacco2/diagrams/threading_exs.3 b/web/yacco2/diagrams/threading_exs.3 new file mode 100644 index 0000000000..0b70f38128 --- /dev/null +++ b/web/yacco2/diagrams/threading_exs.3 @@ -0,0 +1,434 @@ +%!PS +%%BoundingBox: -101 -1 370 269 +%%Creator: MetaPost +%%CreationDate: 2006.05.29:1510 +%%Pages: 1 +%*Font: cmtt8 4.78212 7.97011 30:ffc +%*Font: cmtt8 7.97011 7.97011 20:801000005540b1005fdfff8 +%%EndProlog +%%Page: 1 1 + 0 0.5 dtransform truncate idtransform setlinewidth pop [] 0 setdash + 1 setlinejoin 10 setmiterlimit +newpath 0 0 moveto +268.63358 0 lineto +268.63358 268.63358 lineto +0 268.63358 lineto + closepath stroke +newpath 17.9089 17.9089 moveto +250.72467 17.9089 lineto +250.72467 250.72467 lineto +17.9089 250.72467 lineto + closepath stroke +newpath 26.86336 26.86336 moveto +241.77022 26.86336 lineto +241.77022 241.77022 lineto +26.86336 241.77022 lineto + closepath stroke + 1 setlinecap +newpath 0 0 moveto +17.9089 17.9089 lineto stroke +newpath 268.63358 0 moveto +250.72467 17.9089 lineto stroke +newpath 268.63358 268.63358 moveto +250.72467 250.72467 lineto stroke +newpath 0 268.63358 moveto +17.9089 250.72467 lineto stroke +newpath 17.9089 17.9089 moveto +17.9089 26.86336 lineto +26.86336 26.86336 lineto +26.86336 17.9089 lineto stroke +newpath 17.9089 250.72467 moveto +26.86336 250.72467 lineto +26.86336 241.77022 lineto +17.9089 241.77022 lineto stroke +newpath 250.72467 250.72467 moveto +250.72467 241.77022 lineto +241.77022 241.77022 lineto +241.77022 250.72467 lineto stroke +newpath 250.72467 17.9089 moveto +241.77022 17.9089 lineto +241.77022 26.86336 lineto +250.72467 26.86336 lineto stroke +30.07033 20.9089 moveto +(0) cmtt8 4.78212 fshow +30.07033 244.77022 moveto +(0) cmtt8 4.78212 fshow +21.11588 235.81577 moveto +(0) cmtt8 4.78212 fshow +244.97719 235.81577 moveto +(0) cmtt8 4.78212 fshow +39.02478 20.9089 moveto +(1) cmtt8 4.78212 fshow +39.02478 244.77022 moveto +(1) cmtt8 4.78212 fshow +21.11588 226.86131 moveto +(1) cmtt8 4.78212 fshow +244.97719 226.86131 moveto +(1) cmtt8 4.78212 fshow +47.97923 20.9089 moveto +(2) cmtt8 4.78212 fshow +47.97923 244.77022 moveto +(2) cmtt8 4.78212 fshow +21.11588 217.90686 moveto +(2) cmtt8 4.78212 fshow +244.97719 217.90686 moveto +(2) cmtt8 4.78212 fshow +56.93369 20.9089 moveto +(3) cmtt8 4.78212 fshow +56.93369 244.77022 moveto +(3) cmtt8 4.78212 fshow +21.11588 208.95241 moveto +(3) cmtt8 4.78212 fshow +244.97719 208.95241 moveto +(3) cmtt8 4.78212 fshow +65.88814 20.9089 moveto +(4) cmtt8 4.78212 fshow +65.88814 244.77022 moveto +(4) cmtt8 4.78212 fshow +21.11588 199.99796 moveto +(4) cmtt8 4.78212 fshow +244.97719 199.99796 moveto +(4) cmtt8 4.78212 fshow +74.84259 20.9089 moveto +(5) cmtt8 4.78212 fshow +74.84259 244.77022 moveto +(5) cmtt8 4.78212 fshow +21.11588 191.0435 moveto +(5) cmtt8 4.78212 fshow +244.97719 191.0435 moveto +(5) cmtt8 4.78212 fshow +83.79704 20.9089 moveto +(6) cmtt8 4.78212 fshow +83.79704 244.77022 moveto +(6) cmtt8 4.78212 fshow +21.11588 182.08905 moveto +(6) cmtt8 4.78212 fshow +244.97719 182.08905 moveto +(6) cmtt8 4.78212 fshow +92.7515 20.9089 moveto +(7) cmtt8 4.78212 fshow +92.7515 244.77022 moveto +(7) cmtt8 4.78212 fshow +21.11588 173.1346 moveto +(7) cmtt8 4.78212 fshow +244.97719 173.1346 moveto +(7) cmtt8 4.78212 fshow +101.70595 20.9089 moveto +(8) cmtt8 4.78212 fshow +101.70595 244.77022 moveto +(8) cmtt8 4.78212 fshow +21.11588 164.18015 moveto +(8) cmtt8 4.78212 fshow +244.97719 164.18015 moveto +(8) cmtt8 4.78212 fshow +110.6604 20.9089 moveto +(9) cmtt8 4.78212 fshow +110.6604 244.77022 moveto +(9) cmtt8 4.78212 fshow +21.11588 155.2257 moveto +(9) cmtt8 4.78212 fshow +244.97719 155.2257 moveto +(9) cmtt8 4.78212 fshow +118.34457 20.9089 moveto +(10) cmtt8 4.78212 fshow +118.34457 244.77022 moveto +(10) cmtt8 4.78212 fshow +19.8456 146.27124 moveto +(10) cmtt8 4.78212 fshow +243.70691 146.27124 moveto +(10) cmtt8 4.78212 fshow +127.29903 20.9089 moveto +(11) cmtt8 4.78212 fshow +127.29903 244.77022 moveto +(11) cmtt8 4.78212 fshow +19.8456 137.31679 moveto +(11) cmtt8 4.78212 fshow +243.70691 137.31679 moveto +(11) cmtt8 4.78212 fshow +136.25348 20.9089 moveto +(12) cmtt8 4.78212 fshow +136.25348 244.77022 moveto +(12) cmtt8 4.78212 fshow +19.8456 128.36234 moveto +(12) cmtt8 4.78212 fshow +243.70691 128.36234 moveto +(12) cmtt8 4.78212 fshow +145.20793 20.9089 moveto +(13) cmtt8 4.78212 fshow +145.20793 244.77022 moveto +(13) cmtt8 4.78212 fshow +19.8456 119.40788 moveto +(13) cmtt8 4.78212 fshow +243.70691 119.40788 moveto +(13) cmtt8 4.78212 fshow +154.16238 20.9089 moveto +(14) cmtt8 4.78212 fshow +154.16238 244.77022 moveto +(14) cmtt8 4.78212 fshow +19.8456 110.45343 moveto +(14) cmtt8 4.78212 fshow +243.70691 110.45343 moveto +(14) cmtt8 4.78212 fshow +163.11684 20.9089 moveto +(15) cmtt8 4.78212 fshow +163.11684 244.77022 moveto +(15) cmtt8 4.78212 fshow +19.8456 101.49898 moveto +(15) cmtt8 4.78212 fshow +243.70691 101.49898 moveto +(15) cmtt8 4.78212 fshow +172.07129 20.9089 moveto +(16) cmtt8 4.78212 fshow +172.07129 244.77022 moveto +(16) cmtt8 4.78212 fshow +19.8456 92.54453 moveto +(16) cmtt8 4.78212 fshow +243.70691 92.54453 moveto +(16) cmtt8 4.78212 fshow +181.02574 20.9089 moveto +(17) cmtt8 4.78212 fshow +181.02574 244.77022 moveto +(17) cmtt8 4.78212 fshow +19.8456 83.59007 moveto +(17) cmtt8 4.78212 fshow +243.70691 83.59007 moveto +(17) cmtt8 4.78212 fshow +189.9802 20.9089 moveto +(18) cmtt8 4.78212 fshow +189.9802 244.77022 moveto +(18) cmtt8 4.78212 fshow +19.8456 74.63562 moveto +(18) cmtt8 4.78212 fshow +243.70691 74.63562 moveto +(18) cmtt8 4.78212 fshow +198.93465 20.9089 moveto +(19) cmtt8 4.78212 fshow +198.93465 244.77022 moveto +(19) cmtt8 4.78212 fshow +19.8456 65.68117 moveto +(19) cmtt8 4.78212 fshow +243.70691 65.68117 moveto +(19) cmtt8 4.78212 fshow +207.8891 20.9089 moveto +(20) cmtt8 4.78212 fshow +207.8891 244.77022 moveto +(20) cmtt8 4.78212 fshow +19.8456 56.72672 moveto +(20) cmtt8 4.78212 fshow +243.70691 56.72672 moveto +(20) cmtt8 4.78212 fshow +216.84355 20.9089 moveto +(21) cmtt8 4.78212 fshow +216.84355 244.77022 moveto +(21) cmtt8 4.78212 fshow +19.8456 47.77226 moveto +(21) cmtt8 4.78212 fshow +243.70691 47.77226 moveto +(21) cmtt8 4.78212 fshow +225.798 20.9089 moveto +(22) cmtt8 4.78212 fshow +225.798 244.77022 moveto +(22) cmtt8 4.78212 fshow +19.8456 38.81781 moveto +(22) cmtt8 4.78212 fshow +243.70691 38.81781 moveto +(22) cmtt8 4.78212 fshow +234.75246 20.9089 moveto +(23) cmtt8 4.78212 fshow +234.75246 244.77022 moveto +(23) cmtt8 4.78212 fshow +19.8456 29.86336 moveto +(23) cmtt8 4.78212 fshow +243.70691 29.86336 moveto +(23) cmtt8 4.78212 fshow +newpath 268.63358 228.33855 moveto +250.72467 228.33855 lineto stroke +newpath 254.42027 229.86935 moveto +250.72467 228.33855 lineto +254.42027 226.80774 lineto + closepath +gsave fill grestore stroke +newpath 264.93797 226.80774 moveto +268.63358 228.33855 lineto +264.93797 229.86935 lineto + closepath +gsave fill grestore stroke +271.63358 226.7888 moveto +(Acquire g) cmtt8 7.97011 fshow +271.63358 217.39156 moveto +(launch threads) cmtt8 7.97011 fshow +newpath 268.63358 210.42964 moveto +250.72467 210.42964 lineto stroke +newpath 254.42027 211.96045 moveto +250.72467 210.42964 lineto +254.42027 208.89883 lineto + closepath +gsave fill grestore stroke +newpath 264.93797 208.89883 moveto +268.63358 210.42964 lineto +264.93797 211.96045 lineto + closepath +gsave fill grestore stroke +271.63358 208.8799 moveto +(Acquire x) cmtt8 7.97011 fshow +newpath 268.63358 201.47519 moveto +250.72467 201.47519 lineto stroke +newpath 254.42027 203.006 moveto +250.72467 201.47519 lineto +254.42027 199.94438 lineto + closepath +gsave fill grestore stroke +271.63358 199.48265 moveto +(Create A) cmtt8 7.97011 fshow +newpath 17.9089 192.52074 moveto +0 192.52074 lineto stroke +newpath 3.6956 194.05154 moveto +0 192.52074 lineto +3.6956 190.98993 lineto + closepath +gsave fill grestore stroke +-41.10759 190.08542 moveto +(Activated) cmtt8 7.97011 fshow +newpath 17.9089 183.56628 moveto +0 183.56628 lineto stroke +newpath 3.6956 185.09709 moveto +0 183.56628 lineto +3.6956 182.03548 lineto + closepath +gsave fill grestore stroke +newpath 14.2133 182.03548 moveto +17.9089 183.56628 lineto +14.2133 185.09709 lineto + closepath +gsave fill grestore stroke +-41.10759 182.01653 moveto +(Acquire a) cmtt8 7.97011 fshow +newpath 0 174.61183 moveto +17.9089 174.61183 lineto stroke +newpath 14.2133 173.08102 moveto +17.9089 174.61183 lineto +14.2133 176.14264 lineto + closepath +gsave fill grestore stroke +-41.10759 173.06207 moveto +(Acquire x) cmtt8 7.97011 fshow +newpath 250.72467 165.65738 moveto +268.63358 165.65738 lineto stroke +newpath 264.93797 164.12657 moveto +268.63358 165.65738 lineto +264.93797 167.18819 lineto + closepath +gsave fill grestore stroke +271.63358 164.10764 moveto +(Wokeup) cmtt8 7.97011 fshow +newpath 268.63358 156.70293 moveto +250.72467 156.70293 lineto stroke +newpath 254.42027 158.23373 moveto +250.72467 156.70293 lineto +254.42027 155.17212 lineto + closepath +gsave fill grestore stroke +271.63358 154.71039 moveto +(Release x) cmtt8 7.97011 fshow +newpath 17.9089 147.74847 moveto +0 147.74847 lineto stroke +newpath 3.6956 149.27928 moveto +0 147.74847 lineto +3.6956 146.21767 lineto + closepath +gsave fill grestore stroke +-58.0443 146.19872 moveto +(Wokeup with x) cmtt8 7.97011 fshow +newpath 17.9089 138.79402 moveto +0 138.79402 lineto stroke +newpath 3.6956 140.32483 moveto +0 138.79402 lineto +3.6956 137.26321 lineto + closepath +gsave fill grestore stroke +-87.68353 136.80148 moveto +(Set idle work status) cmtt8 7.97011 fshow +newpath 0 129.83957 moveto +17.9089 129.83957 lineto stroke +newpath 14.2133 128.30876 moveto +17.9089 129.83957 lineto +14.2133 131.37038 lineto + closepath +gsave fill grestore stroke +-41.10759 127.84703 moveto +(Release x) cmtt8 7.97011 fshow +newpath 250.72467 120.88512 moveto +268.63358 120.88512 lineto stroke +newpath 264.93797 119.35431 moveto +268.63358 120.88512 lineto +264.93797 122.41592 lineto + closepath +gsave fill grestore stroke +271.63358 119.33537 moveto +(Wokeup) cmtt8 7.97011 fshow +newpath 268.63358 111.93066 moveto +250.72467 111.93066 lineto stroke +newpath 254.42027 113.46147 moveto +250.72467 111.93066 lineto +254.42027 110.39986 lineto + closepath +gsave fill grestore stroke +271.63358 110.38092 moveto +(Wait on event+release g) cmtt8 7.97011 fshow +newpath 17.9089 102.97621 moveto +0 102.97621 lineto stroke +newpath 3.6956 104.50702 moveto +0 102.97621 lineto +3.6956 101.4454 lineto + closepath +gsave fill grestore stroke +-58.0443 101.42645 moveto +(Wokeup with g) cmtt8 7.97011 fshow +-49.57594 92.02922 moveto +(Set thd cnt) cmtt8 7.97011 fshow +newpath 17.9089 85.0673 moveto +0 85.0673 lineto stroke +newpath 3.6956 86.59811 moveto +0 85.0673 lineto +3.6956 83.5365 lineto + closepath +gsave fill grestore stroke +newpath 14.2133 83.5365 moveto +17.9089 85.0673 lineto +14.2133 86.59811 lineto + closepath +gsave fill grestore stroke +-87.68353 83.51755 moveto +(Send G wakeup signal) cmtt8 7.97011 fshow +newpath 0 76.11285 moveto +17.9089 76.11285 lineto stroke +newpath 14.2133 74.58205 moveto +17.9089 76.11285 lineto +14.2133 77.64366 lineto + closepath +gsave fill grestore stroke +-41.10759 74.5631 moveto +(Release g) cmtt8 7.97011 fshow +newpath 250.72467 67.1584 moveto +268.63358 67.1584 lineto stroke +newpath 264.93797 65.6276 moveto +268.63358 67.1584 lineto +264.93797 68.68921 lineto + closepath +gsave fill grestore stroke +271.63358 65.60866 moveto +(Wokeup from signal) cmtt8 7.97011 fshow +-96.15189 65.60864 moveto +(Wait for wakeup signal) cmtt8 7.97011 fshow +271.63358 56.21141 moveto +(Process returned data) cmtt8 7.97011 fshow +271.63358 47.25696 moveto +(Run until a call) cmtt8 7.97011 fshow +271.63358 38.3025 moveto +(to Inner) cmtt8 7.97011 fshow +-70.74683 38.74529 moveto +(Eventual wake up) cmtt8 7.97011 fshow +-100.38606 29.34805 moveto +(Wait on event+release a) cmtt8 7.97011 fshow +showpage +%%EOF diff --git a/web/yacco2/diagrams/threading_exs.mp b/web/yacco2/diagrams/threading_exs.mp new file mode 100644 index 0000000000..a9cf0d55d1 --- /dev/null +++ b/web/yacco2/diagrams/threading_exs.mp @@ -0,0 +1,565 @@ +% file: threading_exs.mp +% thread examples deadlock, and critcal resource +input boxes +%tracingall; +%tracingmacros := 1; +%tracingequations := 1; +defaultfont := "cmtt8"; + +numeric u;u:=1cc; +numeric Half_tunit; +numeric Time_unit_size,No_time_units; +numeric lt_hd,rt_hd,both_hd,no_hd,up_hd,dwn_hd,below,above; +lt_hd:=0;rt_hd:=1;both_hd:=2;no_hd:=3;up_hd:=4;dwn_hd:=5; +above:=6;below:=7; + +%How - l,r,b,n left head rt head both head no heads 0..3 +numeric Outer_side_size,Time_side_size,Inner_side_size; +numeric Outer_to_time_side_size,Time_to_inner_side_size; +pair Sw_inner,Sw_time,Sw_outer; +pair Mid_tunit; +pair Time_lft_tpos,Inner_tpos,Time_rt_tpos,Bot_side_tpos,Top_side_tpos; +pair Outer_lft_tpos,Outer_rt_tpos,obot_side_tpos,otop_side_tpos; + + +def drw_obelisk(expr Time_units,Size_time_unit)= + Time_unit_size := Size_time_unit; + Half_tunit:=.5*Time_unit_size; + No_time_units := Time_units; + Outer_to_time_side_size:=2*Time_unit_size; + Time_to_inner_side_size:=Time_unit_size; + Inner_side_size:=No_time_units*Time_unit_size; + Time_side_size:=Time_to_inner_side_size+Inner_side_size+Time_to_inner_side_size; + Outer_side_size:=Outer_to_time_side_size+Time_side_size+Outer_to_time_side_size; + Sw_outer:=(0,0); + Sw_time:= Sw_outer shifted (Outer_to_time_side_size,Outer_to_time_side_size); + Sw_inner:= Sw_time shifted (Time_to_inner_side_size,Time_to_inner_side_size); + drw_box(Sw_outer,Outer_side_size,Outer_side_size); + drw_box(Sw_time,Time_side_size,Time_side_size); + drw_box(Sw_inner,Inner_side_size,Inner_side_size); + drw_outer_mitre(Sw_outer,Outer_side_size,Outer_to_time_side_size); + drw_mark_time(Sw_time); +enddef; + +def drw_mark_time(expr Sw)= + draw Sw + -- Sw +(0,Time_to_inner_side_size) + -- Sw +(Time_to_inner_side_size,Time_to_inner_side_size) + -- Sw +(Time_to_inner_side_size,0); + draw Sw shifted (0,Time_side_size) + --Sw +(0,Time_to_inner_side_size) rotated -90 shifted (0,Time_side_size) + -- Sw +(Time_to_inner_side_size,Time_to_inner_side_size) rotated -90 shifted (0,Time_side_size) + -- Sw +(Time_to_inner_side_size,0) rotated -90 shifted (0,Time_side_size); + draw Sw shifted (Time_side_size,Time_side_size) + -- Sw +(0,Time_to_inner_side_size) rotated -180 shifted (Time_side_size,Time_side_size) + -- Sw +(Time_to_inner_side_size,Time_to_inner_side_size) rotated -180 shifted (Time_side_size,Time_side_size) + -- Sw +(Time_to_inner_side_size,0) rotated -180 shifted (Time_side_size,Time_side_size); + draw Sw shifted (Time_side_size,0) + -- Sw +(0,Time_to_inner_side_size) rotated -270 shifted (Time_side_size,0) + -- Sw +(Time_to_inner_side_size,Time_to_inner_side_size) rotated -270 shifted (Time_side_size,0) + -- Sw +(Time_to_inner_side_size,0) rotated -270 shifted (Time_side_size,0); + % draw marks of twain + defaultscale:=.6; + string a; + Time_lft_tpos := Sw shifted (0,Time_side_size-2*Time_to_inner_side_size); + Inner_tpos := Time_lft_tpos shifted (Time_unit_size,0); + Outer_lft_tpos := Time_lft_tpos shifted (-Outer_to_time_side_size,0); + Time_rt_tpos := Time_lft_tpos shifted (Time_side_size,0); + Outer_rt_tpos := Time_rt_tpos shifted (Outer_to_time_side_size,0); + Bot_side_tpos := Sw shifted (Time_to_inner_side_size,0); + Top_side_tpos := Bot_side_tpos shifted (0,Time_side_size - Time_to_inner_side_size); + Mid_tunit := .5[(0,0),(Time_to_inner_side_size,0)]; + numeric tunit; + for i=0 upto No_time_units - 1: + a:=decimal i; + tunit := i*Time_to_inner_side_size; + label.top(a,Mid_tunit shifted Bot_side_tpos + (tunit,0));%bottom time line + label.top(a,Mid_tunit shifted Top_side_tpos + (tunit,0));%top time line + label.top(a,Mid_tunit shifted Time_lft_tpos + (0,-tunit));%left side time line + label.top(a,Mid_tunit shifted Time_rt_tpos + (-Time_to_inner_side_size,-tunit));%rt side time line + endfor + defaultscale:=1; +enddef; + +def drw_outer_mitre(expr Pos,Side,Mitre_size)= + draw Pos--Pos+(Mitre_size,Mitre_size); + draw Pos shifted (Side,0)-- Pos+(Mitre_size,Mitre_size) rotated 90 shifted (Side,0); + draw Pos shifted (Side,Side)-- Pos+(Mitre_size,Mitre_size) rotated 180 shifted (Side,Side); + draw Pos shifted (0,Side)-- Pos+(Mitre_size,Mitre_size) rotated -90 shifted (0,Side); +enddef; + +def drw_box(expr Pos,Side,Ht)= + pair nw,ne,sw,se; + sw:=Pos; + se:=sw+(Side,0); + nw:=sw+(0,Ht); + ne:=nw+(Ht,0); + draw sw--se--ne--nw--cycle; +enddef; + +% +% Lft_time_side_tpos inner point of 0 unit +% +def drw_lft_side_hz_vector(expr Tunit,How)= + pair zr,zl; + zr := Time_lft_tpos;% from anchor pt + numeric row; + row:= Time_unit_size*Tunit;%bot of time unit + zr := zr shifted (0,-row);%row + zr := zr shifted (0,Half_tunit);%put in middle of box + zl := zr shifted (-Outer_to_time_side_size,0);% to anchor pt + if(How = rt_hd): + drawarrow zl .. zr ; + else: + if (How = lt_hd): + drawarrow zr .. zl ; + else: + if (How = both_hd): + drawdblarrow zr .. zl ; + else: + if (How = no_hd): + draw zr -- zl; + fi + fi + fi + fi +enddef; + +% +% rt_side_tpos inner point of 0 unit +% +def drw_rt_side_hz_vector(expr Tunit,How)= + pair zr,zl; + zl := Time_rt_tpos;% from anchor pt + numeric row; + row:= Time_unit_size*Tunit;%bot of time unit + zl := zl shifted (0,-row);%row + zl := zl shifted (0,Half_tunit);%put in middle of box + zr := zl shifted (Outer_to_time_side_size,0);% to anchor pt + if(How = rt_hd): + drawarrow zl .. zr ; + else: + if (How = lt_hd): + drawarrow zr .. zl ; + else: + if (How = both_hd): + drawdblarrow zr .. zl ; + else: + if (How = no_hd): + draw zr -- zl; + fi + fi + fi + fi +enddef; + +% Lft_time_side_tpos used +% row the time unit to mark against +% time unit start, stop +%How - l,r,b,n left head rt head both head no heads 0..3 +def drw_hz_inner_vector(expr Tunit_row,From_Tunit,To_Tunit,How)= + pair f,t; + f := Inner_tpos;% resource 0 time row + numeric row; + row:= Time_unit_size*Tunit_row; + f:= f shifted (0,-row) + (0,Half_tunit); + t := f; + f:= f shifted (Time_unit_size*From_Tunit,0);% from col + t:= t shifted (Time_unit_size*To_Tunit,0);% to col + t:= t shifted (Time_unit_size,0);%rt boundary of time slot + if(How = rt_hd): + drawarrow f shifted ..t ; + else: + if (How = lt_hd): + drawarrow t ..f ; + else: + if (How = both_hd): + drawdblarrow f ..t ; + else: + if (How = no_hd): + draw f -- t ; + fi + fi + fi + fi +enddef; + +def drw_hz_inner_ownership(expr Tunit,Tunit_x,What)= + numeric row; + row:= Time_unit_size*Tunit;%bot of time unit + pair f; + f := Inner_tpos shifted (0,-row)+(0,Half_tunit);% from anchor pt + f:= f shifted (Time_unit_size*Tunit_x,0); + label.top(What,f); +enddef; + +%How - l,r,b,n left head rt head both head no heads 0..3 +def drw_vt_vector(expr Bot_line,Col,How)= + pair base_line; + numeric row,tu; + row := Time_unit_size*Bot_line; + tu := Time_to_inner_side_size; + base_line := Inner_tpos shifted (0,-row)+(0,-tu); + numeric dcol,dht; + dcol:= Time_unit_size*Col; + dht:= Outer_to_time_side_size; + base_line := base_line shifted (dcol,0) + (Half_tunit,0); + pair f,t; + f := base_line;% from anchor pt + t := base_line shifted (0,-dht);% from anchor pt + if(How = up_hd): + drawarrow t..f; + else: + if (How = dwn_hd): + drawarrow f..t; + else: + drawdblarrow f..t; + fi + fi +enddef; + +% Opos top outer corner lt or rt +% Tunit the time unit 0..16 +%Delta --- sixe of vector track + if lt, - if rt side +%How - l,r,b,n left head rt head both head no heads 0..3 +def drw_vt_dotted_vector(expr Bot_Tline,Tunit_x,Tunit_y,How)= + pair base_line,t; + base_line := Inner_tpos shifted (0,-Bot_Tline*Time_unit_size);%base part of line + numeric xcol,y_ht; + xcol := Time_unit_size*Tunit_x;%bot of time unit + y_ht := Time_unit_size*Tunit_y; + base_line := base_line shifted (xcol,0)+(Half_tunit,0); + t:= Inner_tpos shifted (xcol,-y_ht)+(Half_tunit,Half_tunit); + if(How = up_hd): + drawarrow base_line..t dashed withdots; + else: + drawarrow t..base_line dashed evenly; + fi +enddef; + +def drw_x_deadlock(expr Tunit_x,Tunit_y)= + pair base_line; + base_line := Inner_tpos shifted (0,-Tunit_x*Time_unit_size);%base part of line + numeric col; + col:= Time_unit_size*Tunit_y; + base_line := base_line shifted (col,0); + draw base_line -- base_line shifted (Time_unit_size,Time_unit_size); + draw base_line shifted (0,Time_unit_size) + -- base_line shifted (Time_unit_size,0); +enddef; + +def drw_lft_outer_hz_note(expr Tunit,Note)= + pair f; + f := Outer_lft_tpos shifted (0,Half_tunit);% from anchor pt + numeric row; + row:= Time_unit_size*Tunit; + f := f shifted (0,-row); + label.lft(Note,f); +enddef; + +def drw_rt_outer_hz_note(expr Tunit,Note)= + pair f; + f := Outer_rt_tpos shifted (0,Half_tunit);% from anchor pt + numeric row; + row:= Time_unit_size*Tunit; + f := f shifted (0,-row); + label.rt(Note,f); +enddef; + + +def drw_hz_xy_inner_note(expr Tunit_x,Tunit_y,Note)= + numeric row,col; + row:= Time_unit_size*Tunit_x;%bot of time unit + col:= Time_unit_size*Tunit_y;%interior of time unit + pair f; + f := Inner_tpos shifted (0,-row)+(col,0)+(0,Half_tunit); + label.rt(Note,f); +enddef; + +% Opos top outer corner lt or rt +% Tunit the time unit 0..16 +%Delta --- size of vector track + if lt, - if rt side +def drw_vt_note(expr Opos,Tunit,Note)= + pair zz; + zz := Opos;% from anchor pt + numeric time_delta; + time_delta:= 1u*Tunit;%bot of time unit + pair f,t; + f:=zz+(time_delta,0)+(.5u,0); + %f:=f + (0,1u);% align closer to outer box line + numeric str_len; + str_len := length(Note); + t:=f; + pair accum_letter_ht,letter_ht;letter_ht:=(0,0);accum_letter_ht:=(0,0); + + for i=0 upto str_len-1: + t:=f - (0,ypart accum_letter_ht); + string d; d:=substring(i,i+1) of Note; + label.bot(d,t); + picture letter; + letter := d infont defaultfont scaled defaultscale; + letter_ht := ulcorner letter - llcorner letter; + accum_letter_ht:= accum_letter_ht + letter_ht+(0,bboxmargin); + endfor +enddef; + +def drw_vt_dashed_vector(expr Tunit_f,Tunit_t,Tunity)= + numeric rowf,rowy; + rowf:= Time_unit_size*Tunit_f;%bot of time unit + rowy:= Time_unit_size*Tunit_t;%bot of time unit + pair f,t; + f:=Inner_tpos shifted (0,-rowf)+(Tunity*Time_unit_size,0)+(Time_unit_size,0); + t:=Inner_tpos shifted (0,-rowy)+(Tunity*Time_unit_size,0)+(Time_unit_size,0); + draw f shifted (0,Half_tunit)..t shifted (0,Half_tunit) dashed evenly; +enddef; + +% +% Yacco2 example +% +beginfig(1); +drw_obelisk(26,.7u); +% G space +drw_rt_side_hz_vector(1,both_hd); + drw_rt_outer_hz_note(1,"Acquire g"); + + drw_rt_outer_hz_note(2,"Launch threads"); +drw_rt_side_hz_vector(3,both_hd); + drw_rt_outer_hz_note(3,"Acquire x"); +drw_rt_side_hz_vector(4,lt_hd); + drw_rt_outer_hz_note(4,"Create A"); + +drw_lft_side_hz_vector(5,lt_hd); + drw_lft_outer_hz_note(5,"Activated"); +drw_lft_side_hz_vector(6,both_hd); + drw_lft_outer_hz_note(6,"Acquire a"); +drw_lft_side_hz_vector(7,rt_hd); + drw_lft_outer_hz_note(7,"Acquire x"); + +drw_rt_side_hz_vector(8,rt_hd); + drw_rt_outer_hz_note(8,"Re-activated"); + + drw_rt_outer_hz_note(9,"Setup: thread results"); +drw_rt_side_hz_vector(10,lt_hd); + drw_rt_outer_hz_note(10,"Release x"); + +drw_lft_side_hz_vector(11,lt_hd); + drw_lft_outer_hz_note(11,"Wokeup with x"); + drw_lft_outer_hz_note(12,"Make idle"); +drw_lft_side_hz_vector(13,rt_hd); + drw_lft_outer_hz_note(13,"Release x"); + +drw_rt_side_hz_vector(14,rt_hd); + drw_rt_outer_hz_note(14,"Re-activated"); +drw_rt_side_hz_vector(15,lt_hd); + drw_rt_outer_hz_note(15,"Wait on event"); + drw_rt_outer_hz_note(16,"release g"); + +drw_lft_side_hz_vector(16,lt_hd); + drw_lft_outer_hz_note(16,"Re-activated"); +drw_lft_side_hz_vector(17,both_hd); + drw_lft_outer_hz_note(17,"Acquire g"); + drw_lft_outer_hz_note(18,"Deposit data in G"); +drw_lft_side_hz_vector(19,both_hd); + drw_lft_outer_hz_note(19,"Release g"); +drw_lft_side_hz_vector(20,both_hd); + drw_lft_outer_hz_note(20,"Signal G"); +drw_lft_side_hz_vector(21,rt_hd); + drw_lft_outer_hz_note(21,"Wait on event"); + drw_lft_outer_hz_note(22,"release a"); + +drw_rt_side_hz_vector(22,rt_hd); + drw_rt_outer_hz_note(22,"Wokeup from event"); + drw_rt_outer_hz_note(23,"Process data from A"); + drw_rt_outer_hz_note(24,"Keep running until"); + drw_rt_outer_hz_note(25,"launch of threads"); + + +% inner space +drw_hz_xy_inner_note(8,5,"Inner Space: Thread Manager"); +drw_hz_xy_inner_note(0,0,"Running queue:"); +drw_hz_xy_inner_note(1,0,"G"); +drw_hz_xy_inner_note(2,0,"A"); + +drw_hz_xy_inner_note(5,0,"To Run queue:"); +drw_hz_xy_inner_note(6,0,"G"); +drw_hz_xy_inner_note(7,0,"A"); + +drw_hz_xy_inner_note(10,0,"Resources"); +drw_hz_xy_inner_note(11,0,"g"); +drw_hz_xy_inner_note(12,0,"x"); +drw_hz_xy_inner_note(13,0,"a"); + +% G running + drw_hz_inner_vector(1,1,4,no_hd); + drw_hz_inner_vector(2,5,7,no_hd); + drw_hz_inner_vector(1,8,10,no_hd); + drw_hz_inner_vector(2,11,13,no_hd); + drw_hz_inner_vector(1,14,15,no_hd); + drw_hz_inner_vector(2,16,21,no_hd); + drw_hz_inner_vector(1,22,25,no_hd); +% draw continuity +drw_vt_dashed_vector(1,2,4); +drw_vt_dashed_vector(2,1,7); +drw_vt_dashed_vector(1,2,10); +drw_vt_dashed_vector(2,1,13); +drw_vt_dashed_vector(1,2,15); +drw_vt_dashed_vector(2,1,21); + + +% G to run + drw_hz_inner_vector(6,3,6,no_hd); + drw_hz_inner_vector(6,9,13,no_hd); +% A running + drw_hz_inner_vector(7,7,11,no_hd); + +% resources +% g + drw_hz_inner_vector(11,1,15,no_hd); + drw_hz_inner_vector(11,17,19,no_hd); + drw_hz_inner_vector(11,22,25,no_hd); +% x + drw_hz_inner_vector(12,3,10,no_hd); + drw_hz_inner_vector(12,11,13,no_hd); +% a + drw_hz_inner_vector(13,6,21,no_hd); + +% waiting on resource +% label ownership +drw_hz_inner_ownership(11,8,"G"); +drw_hz_inner_ownership(11,19,"A"); +drw_hz_inner_ownership(11,24,"G"); +drw_hz_inner_ownership(12,9,"G"); +drw_hz_inner_ownership(13,14,"A"); + +drw_vt_dotted_vector(25,7,12,up_hd); +drw_vt_dotted_vector(25,11,12,dwn_hd); +drw_vt_dotted_vector(25,15,11,up_hd); +drw_vt_dotted_vector(25,22,11,dwn_hd); +drw_vt_dotted_vector(25,21,13,up_hd); +%space labels + +defaultscale:=1.5; +label.lft(btex --- A Space --- etex,Sw_outer+(0,29*Time_unit_size)); +label.rt(btex --- G Space --- etex,Sw_outer+(33*Time_unit_size,29*Time_unit_size)); +endfig; + +% +% Deadlock example +% +beginfig(2); +drw_obelisk(17,1u); +% A space +drw_lft_side_hz_vector(3,lt_hd); + drw_lft_outer_hz_note(3,"Activated"); +drw_lft_side_hz_vector(4,both_hd); + drw_lft_outer_hz_note(4,"Acquire a"); +drw_lft_side_hz_vector(5,both_hd); + drw_lft_outer_hz_note(5,"Acquire x"); +drw_lft_side_hz_vector(6,rt_hd); + drw_lft_outer_hz_note(6,"Release x"); +drw_lft_side_hz_vector(12,lt_hd); + drw_lft_outer_hz_note(12,"Re-activated"); +drw_lft_side_hz_vector(13,rt_hd); + drw_lft_outer_hz_note(13,"Acquire b"); + +% G space +drw_rt_side_hz_vector(1,both_hd); + drw_rt_outer_hz_note(1,"Acquire g"); +drw_rt_side_hz_vector(2,lt_hd); + drw_rt_outer_hz_note(2,"Create A"); +drw_rt_side_hz_vector(7,rt_hd); + drw_rt_outer_hz_note(7,"Re-activated"); +drw_rt_side_hz_vector(8,lt_hd); + drw_rt_outer_hz_note(8,"Create B"); +drw_rt_side_hz_vector(14,rt_hd); + drw_rt_outer_hz_note(14,"Re-activated"); +drw_rt_side_hz_vector(15,lt_hd); + drw_rt_outer_hz_note(15,"Wait on signal, rel. g"); + drw_rt_outer_hz_note(16,"Deadlock"); + +% B space + +drw_vt_vector(16,9,dwn_hd); +%%%% %drw_vt_note(bot_lt,9,"Activated"); +drw_vt_vector(16,10,both_hd); +%%%% %drw_vt_note(bot_lt,10,"Acquire b"); +drw_vt_vector(16,11,up_hd); +%%%% %drw_vt_note(bot_lt,11,"Acquire a"); +pair odisp; +odisp := (0,0) + + (Time_unit_size*Outer_to_time_side_size,0) + + (Time_unit_size*Time_to_inner_side_size,0); + +%label.lft(btex activated etex rotated 30,odisp shifted (10*Time_unit_size,-Time_unit_size)); +label.lft(btex activated etex rotated 30,(0,0) + (13u,-u)); +%label.lft(btex acquire b etex rotated 30,odisp shifted (11*Time_unit_size,-Time_unit_size)); +label.lft(btex acquire b etex rotated 30,(0,0) + (14*Time_unit_size,-Time_unit_size)); +%label.lft(btex acquire a etex rotated 30,odisp shifted (12*Time_unit_size,-Time_unit_size)); +label.lft(btex acquire a etex rotated 30,(0,0) shifted (15*Time_unit_size,-Time_unit_size)); + +% inner space +drw_hz_xy_inner_note(9,5,"Inner Space: Thread Manager"); +drw_hz_xy_inner_note(0,0,"Running queue:"); +drw_hz_xy_inner_note(1,0,"G"); +drw_hz_xy_inner_note(2,0,"A"); +drw_hz_xy_inner_note(3,0,"B"); +drw_hz_xy_inner_note(5,0,"To Run queue:"); +drw_hz_xy_inner_note(6,0,"G"); +drw_hz_xy_inner_note(7,0,"A"); +drw_hz_xy_inner_note(8,0,"B"); +drw_hz_xy_inner_note(10,0,"Resources"); +drw_hz_xy_inner_note(11,0,"g"); +drw_hz_xy_inner_note(12,0,"x"); +drw_hz_xy_inner_note(13,0,"a"); +drw_hz_xy_inner_note(14,0,"b"); +% G running + drw_hz_inner_vector(1,1,2,no_hd); + drw_hz_inner_vector(1,7,8,no_hd); + drw_hz_inner_vector(1,14,15,no_hd); +% A running + drw_hz_inner_vector(2,3,6,no_hd); + drw_hz_inner_vector(2,12,13,no_hd); +% B running + drw_hz_inner_vector(3,9,11,no_hd); + +% G to run + drw_hz_inner_vector(6,3,6,no_hd); + drw_hz_inner_vector(6,9,13,no_hd); +% A running + drw_hz_inner_vector(7,7,11,no_hd); + +% resources +% g + drw_hz_inner_vector(11,1,15,no_hd); +% x + drw_hz_inner_vector(12,5,6,no_hd); +% a + drw_hz_inner_vector(13,4,16,no_hd); +% b + drw_hz_inner_vector(14,10,16,no_hd); +% waiting on resource +drw_vt_dotted_vector(16,11,13,up_hd); +drw_vt_dotted_vector(16,13,14,up_hd); +drw_vt_dotted_vector(16,15,11,up_hd); +% draw continuity +drw_vt_dashed_vector(1,2,2); +drw_vt_dashed_vector(2,1,6); +drw_vt_dashed_vector(1,3,8); +drw_vt_dashed_vector(3,2,11); +drw_vt_dashed_vector(2,1,13); +% label ownership +drw_hz_inner_ownership(11,8,"G"); +drw_hz_inner_ownership(12,6,"A"); +drw_hz_inner_ownership(13,9,"A"); +drw_hz_inner_ownership(14,14,"B"); + +% X where deadlock occurs +%drw_vt_dotted_vector(16,11,13,hd_hd); +drw_x_deadlock(16,16); +%space labels +defaultscale:=1.5; +label.bot(btex -------- B Space -------- etex,Sw_outer+(10*Time_unit_size,-3*Time_unit_size)); +label.lft(btex -- A Space -- etex,Sw_outer+(0,22*Time_unit_size)); +label.rt(btex -- G Space -- etex,Sw_outer+(23*Time_unit_size,22*Time_unit_size)); +endfig; +end; diff --git a/web/yacco2/diagrams/threadmanualcall.txt b/web/yacco2/diagrams/threadmanualcall.txt new file mode 100644 index 0000000000..ec1c574d43 --- /dev/null +++ b/web/yacco2/diagrams/threadmanualcall.txt @@ -0,0 +1,74 @@ +/* + file: /yacco2/diagrams+etc/threadmanualcall.txt + Example of a subrule calling a thread manually. + Taken from grammar pass3.lex before explicit procedure call of threads + construct invented. + The start_manually_parallel_parsing function uses the + thread's id generated from O2linker as its key to find the thread to launch. +*/ + -> "@" + /@ + \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. + @/ + { + op + using namespace NS_prefile_include; + using namespace NS_yacco2_T_enum; + + Parser::parse_result result = + rule_info__.parser__-> + start_manually_parallel_parsing(ITH_prefile_include.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_file_inclusion_) { + T_file_inclusion* finc = (T_file_inclusion*)(rtn_tok); + CAbs_lr1_sym* err = finc->error_sym(); + if(err != 0) { + rule_info__.parser__->set_abort_parse(true); + ADD_TOKEN_TO_ERROR_QUEUE(*finc); + ADD_TOKEN_TO_ERROR_QUEUE(*finc->error_sym()); + finc->error_sym(0); + return; + } + rule_info__.parser__-> + override_current_token(*accept_parm.la_token__ + ,accept_parm.la_token_pos__); + bool result = + PROCESS_INCLUDE_FILE + (*rule_info__.parser__ + ,*finc,*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(*finc);//file name inside + return; + } + // catch all errors + rule_info__.parser__->set_abort_parse(true); + *** + } + diff --git a/web/yacco2/diagrams/tokcanaccess.txt b/web/yacco2/diagrams/tokcanaccess.txt new file mode 100644 index 0000000000..1098356f6f --- /dev/null +++ b/web/yacco2/diagrams/tokcanaccess.txt @@ -0,0 +1,13 @@ +// file: /yacco2/diagrams+etc/tokcanaccess.txt + 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 walk_functr; + ast_prefix_1forest rule_walk(*tree_ptr,&walk_functr,&filter,ACCEPT_FILTER); + tok_can<AST*> comments_can(rule_walk);// container + 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; + } diff --git a/web/yacco2/diagrams/treemodify.txt b/web/yacco2/diagrams/treemodify.txt new file mode 100644 index 0000000000..5839658355 --- /dev/null +++ b/web/yacco2/diagrams/treemodify.txt @@ -0,0 +1,9 @@ +/* +file: /yacco2/diagrams+etc/treemodify.txt +Example of re-aligning the parser's LA T when dynamically modifying the tree +*/ +tok_can<yacco2::AST*>* ct + = (tok_can<yacco2::AST*>*)parser()->token_supplier(); +ct->remove();//drop the la T as i could have morphed this into a comment +parser()->override_current_token_pos(parser()->current_token_pos()-1); +parser()->get_next_token(); diff --git a/web/yacco2/diagrams/yacco2_stbl.1 b/web/yacco2/diagrams/yacco2_stbl.1 new file mode 100644 index 0000000000..0dd975da01 --- /dev/null +++ b/web/yacco2/diagrams/yacco2_stbl.1 @@ -0,0 +1,289 @@ +%!PS +%%BoundingBox: -31 -13 433 82 +%%Creator: MetaPost +%%CreationDate: 2006.05.15:1236 +%%Pages: 1 +%*Font: cmr10 9.96265 9.96265 0c:8000000080020000028147ddfbf48 +%*Font: cmmi10 9.96265 9.96265 3a:8000000001d26ee1 +%*Font: cmsy10 9.96265 9.96265 0f:800010001 +%*Font: cmr10 5.97765 9.96265 2d:9f8000000000008894 +%%EndProlog +%%Page: 1 1 + 0 0.5 dtransform truncate idtransform setlinewidth pop [] 0 setdash + 1 setlinejoin 10 setmiterlimit +newpath 0 0 moveto +12.79213 0 lineto +12.79213 76.75278 lineto +0 76.75278 lineto + closepath stroke + 1 setlinecap +newpath 0 12.79213 moveto +12.79213 12.79213 lineto stroke +2.72926 3 moveto +(R) cmr10 9.96265 fshow +-5.98883 -1.92613 moveto +(0) cmr10 5.97765 fshow +newpath 0 25.58426 moveto +12.79213 25.58426 lineto stroke +3.62866 15.79213 moveto +(b) cmr10 9.96265 fshow +-5.98883 10.866 moveto +(1) cmr10 5.97765 fshow +newpath 0 38.37639 moveto +12.79213 38.37639 lineto stroke +4.18214 28.58426 moveto +(e) cmr10 9.96265 fshow +-5.98883 23.65813 moveto +(2) cmr10 5.97765 fshow +newpath 0 51.16852 moveto +12.79213 51.16852 lineto stroke +3.9054 43.31358 moveto +(g) cmr10 9.96265 fshow +-5.98883 36.45026 moveto +(3) cmr10 5.97765 fshow +newpath 0 63.96065 moveto +12.79213 63.96065 lineto stroke +newpath 0 63.96065 moveto +12.79213 76.75278 lineto stroke +newpath 6.39607 63.96065 moveto +12.79213 70.35672 lineto stroke +newpath 0 70.35672 moveto +6.39607 76.75278 lineto stroke +3.62866 54.16852 moveto +(n) cmr10 9.96265 fshow +-5.98883 49.24239 moveto +(4) cmr10 5.97765 fshow +-5.98883 62.03452 moveto +(5) cmr10 5.97765 fshow +-20.7575 -9.9185 moveto +(char) cmmi10 9.96265 fshow + 0 0.3985 dtransform truncate idtransform setlinewidth pop 0 setlinecap +newpath -0.07071 -9.7193 moveto +2.91809 -9.7193 lineto stroke +2.91809 -9.9185 moveto +(pool) cmmi10 9.96265 fshow + 0 0.5 dtransform truncate idtransform setlinewidth pop +newpath 63.96065 0 moveto +76.75278 0 lineto +76.75278 51.16852 lineto +63.96065 51.16852 lineto + closepath stroke + 1 setlinecap +newpath 63.96065 12.79213 moveto +76.75278 12.79213 lineto stroke +newpath 63.96065 25.58426 moveto +76.75278 25.58426 lineto stroke +newpath 63.96065 38.37639 moveto +65.72687 40.14261 68.5905 40.14261 70.35672 38.37639 curveto +72.12294 36.61017 74.98656 36.61017 76.75278 38.37639 curveto stroke +newpath 70.35672 6.39607 moveto +12.79213 6.39607 lineto stroke +newpath 16.4877 7.92686 moveto +12.79213 6.39607 lineto +16.4877 4.86528 lineto + closepath +gsave fill grestore stroke +-30.18266 68.26138 moveto +(top) cmr10 9.96265 fshow +newpath -12.79213 70.35672 moveto +0 70.35672 lineto stroke +newpath -3.69557 68.82593 moveto +0 70.35672 lineto +-3.69557 71.88751 lineto + closepath +gsave fill grestore stroke +40.36403 -10.472 moveto +(stbl) cmmi10 9.96265 fshow +56.07593 -10.472 moveto +([]) cmr10 9.96265 fshow +61.61073 -10.472 moveto +(:tabl) cmmi10 9.96265 fshow +80.68623 -10.472 moveto +(e) cmmi10 9.96265 fshow + 0 0.3985 dtransform truncate idtransform setlinewidth pop 0 setlinecap +newpath 85.92284 -10.2728 moveto +88.91173 -10.2728 lineto stroke +88.91173 -10.472 moveto +(entr) cmmi10 9.96265 fshow +107.89954 -10.472 moveto +(y) cmmi10 9.96265 fshow +30.00957 11.33327 moveto +(k) cmmi10 9.96265 fshow +35.50977 11.33327 moveto +(ey) cmmi10 9.96265 fshow +48.15797 11.33327 moveto +(") cmsy10 9.96265 fshow +79.75278 -1.92613 moveto +(0) cmr10 5.97765 fshow +79.75278 10.866 moveto +(1) cmr10 5.97765 fshow +79.75278 23.65813 moveto +(2) cmr10 5.97765 fshow +79.75278 36.96144 moveto +(prime-1) cmr10 5.97765 fshow +118.12917 74.26212 moveto +(table) cmr10 9.96265 fshow +newpath 140.31267 74.46132 moveto +143.30147 74.46132 lineto stroke +143.30147 74.26212 moveto +(en) cmr10 9.96265 fshow +152.98737 74.26212 moveto +(try:) cmr10 9.96265 fshow +130.9213 61.46999 moveto +(\017) cmsy10 9.96265 fshow +139.2235 61.46999 moveto +(k) cmr10 9.96265 fshow +144.20479 61.46999 moveto +(ey) cmr10 9.96265 fshow +153.8908 61.46999 moveto +(") cmsy10 9.96265 fshow +168.8347 61.46999 moveto +(\017) cmsy10 9.96265 fshow +177.1369 61.46999 moveto +(k) cmr10 9.96265 fshow +182.1183 61.46999 moveto +(ey) cmr10 9.96265 fshow +195.12509 61.46999 moveto +(len) cmr10 9.96265 fshow +214.4969 61.46999 moveto +(\017) cmsy10 9.96265 fshow +222.7991 61.46999 moveto +(stbl) cmr10 9.96265 fshow +242.22629 61.46999 moveto +(p) cmr10 9.96265 fshow +248.0378 61.46999 moveto +(os) cmr10 9.96265 fshow +130.9213 47.70926 moveto +(\017) cmsy10 9.96265 fshow +139.2235 47.70926 moveto +(v) cmr10 9.96265 fshow +143.9281 47.70926 moveto +(acan) cmr10 9.96265 fshow +163.57669 47.70926 moveto +(t) cmr10 9.96265 fshow +170.7719 47.70926 moveto +(|) cmr10 9.96265 fshow +184.0555 47.70926 moveto +(b) cmr10 9.96265 fshow +189.86699 47.70926 moveto +(o) cmr10 9.96265 fshow +195.12509 47.70926 moveto +(olean) cmr10 9.96265 fshow +221.1387 47.70926 moveto +(v) cmr10 9.96265 fshow +225.84329 47.70926 moveto +(alued) cmr10 9.96265 fshow +130.9213 34.91713 moveto +(\017) cmsy10 9.96265 fshow +139.2235 34.91713 moveto +(de\014ned) cmr10 9.96265 fshow +176.8602 34.91713 moveto +(\017) cmsy10 9.96265 fshow +185.1624 34.91713 moveto +(used) cmr10 9.96265 fshow +207.91049 34.91713 moveto +(|) cmr10 9.96265 fshow +221.194 34.91713 moveto +(b) cmr10 9.96265 fshow +227.0056 34.91713 moveto +(oth) cmr10 9.96265 fshow +244.717 34.91713 moveto +(b) cmr10 9.96265 fshow +250.52849 34.91713 moveto +(o) cmr10 9.96265 fshow +255.78659 34.91713 moveto +(olean) cmr10 9.96265 fshow +281.8002 34.91713 moveto +(v) cmr10 9.96265 fshow +286.50479 34.91713 moveto +(alued) cmr10 9.96265 fshow +130.9213 23.0936 moveto +(\017) cmsy10 9.96265 fshow +139.2235 23.0936 moveto +(t) cmr10 9.96265 fshow +142.82109 23.0936 moveto +(yp) cmr10 9.96265 fshow +153.8908 23.0936 moveto +(e) cmr10 9.96265 fshow +161.6395 23.0936 moveto +(2) cmsy10 9.96265 fshow +174.92299 23.0936 moveto +(rule,) cmr10 9.96265 fshow +197.6434 23.0936 moveto +(terminal,) cmr10 9.96265 fshow +240.2891 23.0936 moveto +(k) cmr10 9.96265 fshow +245.2705 23.0936 moveto +(eyw) cmr10 9.96265 fshow +261.8749 23.0936 moveto +(ord,) cmr10 9.96265 fshow +282.3814 23.0936 moveto +(thread,) cmr10 9.96265 fshow +316.7249 23.0936 moveto +(unkno) cmr10 9.96265 fshow +343.29199 23.0936 moveto +(wn) cmr10 9.96265 fshow +130.9213 10.30147 moveto +(\017) cmsy10 9.96265 fshow +139.2235 10.30147 moveto +(sym) cmr10 9.96265 fshow +156.4368 10.30147 moveto +(b) cmr10 9.96265 fshow +162.24829 10.30147 moveto +(ol) cmr10 9.96265 fshow +173.318 10.30147 moveto +(") cmsy10 9.96265 fshow +181.6202 10.30147 moveto +(2) cmsy10 9.96265 fshow +191.5828 10.30147 moveto +(rule) cmr10 9.96265 fshow +newpath 208.8127 10.50067 moveto +211.8015 10.50067 lineto stroke +211.8015 10.30147 moveto +(in) cmr10 9.96265 fshow +newpath 220.7014 10.50067 moveto +223.69029 10.50067 lineto stroke +223.69029 10.30147 moveto +(stbl,) cmr10 9.96265 fshow +245.88489 10.30147 moveto +(T) cmr10 9.96265 fshow +newpath 253.6778 10.50067 moveto +256.6667 10.50067 lineto stroke +256.6667 10.30147 moveto +(in) cmr10 9.96265 fshow +newpath 265.56659 10.50067 moveto +268.55539 10.50067 lineto stroke +268.55539 10.30147 moveto +(stbl,) cmr10 9.96265 fshow +290.75 10.30147 moveto +(kw) cmr10 9.96265 fshow +newpath 303.8011 10.50067 moveto +306.7899 10.50067 lineto stroke +306.7899 10.30147 moveto +(in) cmr10 9.96265 fshow +newpath 315.6899 10.50067 moveto +318.6787 10.50067 lineto stroke +318.6787 10.30147 moveto +(stbl,) cmr10 9.96265 fshow +340.87329 10.30147 moveto +(th) cmr10 9.96265 fshow +newpath 350.88019 10.50067 moveto +353.86899 10.50067 lineto stroke +353.86899 10.30147 moveto +(in) cmr10 9.96265 fshow +newpath 362.769 10.50067 moveto +365.7578 10.50067 lineto stroke +365.7578 10.30147 moveto +(stbl,) cmr10 9.96265 fshow +387.9524 10.30147 moveto +(tth) cmr10 9.96265 fshow +newpath 401.8337 10.50067 moveto +404.8225 10.50067 lineto stroke +404.8225 10.30147 moveto +(in) cmr10 9.96265 fshow +newpath 413.72249 10.50067 moveto +416.71129 10.50067 lineto stroke +416.71129 10.30147 moveto +(stbl) cmr10 9.96265 fshow +showpage +%%EOF diff --git a/web/yacco2/diagrams/yacco2_stbl.2 b/web/yacco2/diagrams/yacco2_stbl.2 new file mode 100644 index 0000000000..2d1a25a726 --- /dev/null +++ b/web/yacco2/diagrams/yacco2_stbl.2 @@ -0,0 +1,444 @@ +%!PS +%%BoundingBox: 15 -146 472 132 +%%Creator: MetaPost +%%CreationDate: 2006.05.15:1236 +%%Pages: 1 +%*Font: cmr10 9.96265 9.96265 0c:8000000084020500808007fdfffc8 +%*Font: cmmi10 9.96265 9.96265 3c:a +%*Font: cmsy10 9.96265 9.96265 0f:80001 +%%EndProlog +%%Page: 1 1 +15.79213 124.46204 moveto +(rule) cmr10 9.96265 fshow + 0 0.3985 dtransform truncate idtransform setlinewidth pop [] 0 setdash + 0 setlinecap 1 setlinejoin 10 setmiterlimit +newpath 33.02193 124.66124 moveto +36.01083 124.66124 lineto stroke +36.01083 124.46204 moveto +(in) cmr10 9.96265 fshow +newpath 44.91074 124.66124 moveto +47.89954 124.66124 lineto stroke +47.89954 124.46204 moveto +(stbl:) cmr10 9.96265 fshow +28.58426 111.6699 moveto +(\017) cmsy10 9.96265 fshow +36.88646 111.6699 moveto +(stbl) cmr10 9.96265 fshow +56.31366 111.6699 moveto +(index) cmr10 9.96265 fshow +28.58426 99.84637 moveto +(\017) cmsy10 9.96265 fshow +36.88646 99.84637 moveto +(rule) cmr10 9.96265 fshow +newpath 54.11626 100.04558 moveto +57.10516 100.04558 lineto stroke +57.10516 99.84637 moveto +(def) cmr10 9.96265 fshow +73.43286 99.84637 moveto +(") cmsy10 9.96265 fshow +41.37639 86.08565 moveto +(\017) cmsy10 9.96265 fshow +49.67859 86.08565 moveto +(auto) cmr10 9.96265 fshow +72.37129 86.08565 moveto +(delete) cmr10 9.96265 fshow +101.15228 86.08565 moveto +(\017) cmsy10 9.96265 fshow +112.77539 86.08565 moveto +(auto) cmr10 9.96265 fshow +135.46819 86.08565 moveto +(ab) cmr10 9.96265 fshow +146.2611 86.08565 moveto +(ort) cmr10 9.96265 fshow +41.37639 74.26212 moveto +(\017) cmsy10 9.96265 fshow +49.67859 74.26212 moveto +(con) cmr10 9.96265 fshow +64.34589 74.26212 moveto +(tains) cmr10 9.96265 fshow +88.7544 74.26212 moveto +(an) cmr10 9.96265 fshow +102.59138 74.26212 moveto +(epsilon) cmr10 9.96265 fshow +135.85559 74.26212 moveto +(subrule) cmr10 9.96265 fshow +41.37639 60.50139 moveto +(\017) cmsy10 9.96265 fshow +49.67859 60.50139 moveto +(rule) cmr10 9.96265 fshow +69.63159 60.50139 moveto +(name) cmr10 9.96265 fshow +41.37639 48.67786 moveto +(\017) cmsy10 9.96265 fshow +49.67859 48.67786 moveto +(parallel) cmr10 9.96265 fshow +newpath 82.40588 48.87706 moveto +85.39479 48.87706 lineto stroke +85.39479 48.67786 moveto +(monitor) cmr10 9.96265 fshow +newpath 120.33598 48.87706 moveto +123.32478 48.87706 lineto stroke +123.32478 48.67786 moveto +(phrase) cmr10 9.96265 fshow +151.63539 48.67786 moveto +(") cmsy10 9.96265 fshow +41.37639 35.88573 moveto +(\017) cmsy10 9.96265 fshow +49.67859 35.88573 moveto +(subrules) cmr10 9.96265 fshow +newpath 85.8375 36.08493 moveto +88.8263 36.08493 lineto stroke +88.8263 35.88573 moveto +(phrase) cmr10 9.96265 fshow +117.13689 35.88573 moveto +(") cmsy10 9.96265 fshow +41.37639 23.0936 moveto +(\017) cmsy10 9.96265 fshow +49.67859 23.0936 moveto +(rule) cmr10 9.96265 fshow +newpath 66.90839 23.2928 moveto +69.8973 23.2928 lineto stroke +69.8973 23.0936 moveto +(lhs) cmr10 9.96265 fshow +newpath 82.72688 23.2928 moveto +85.71579 23.2928 lineto stroke +85.71579 23.0936 moveto +(phrase) cmr10 9.96265 fshow +114.02629 23.0936 moveto +(") cmsy10 9.96265 fshow +41.37639 10.30147 moveto +(\017) cmsy10 9.96265 fshow +49.67859 10.30147 moveto +(lhs) cmr10 9.96265 fshow +65.23138 10.30147 moveto +(directiv) cmr10 9.96265 fshow +97.91449 10.30147 moveto +(es) cmr10 9.96265 fshow +109.5929 10.30147 moveto +(map) cmr10 9.96265 fshow +131.73209 10.30147 moveto +(|) cmr10 9.96265 fshow +145.01569 10.30147 moveto +(<) cmmi10 9.96265 fshow +152.76439 10.30147 moveto +(string,) cmr10 9.96265 fshow +183.84239 10.30147 moveto +(CAbs) cmr10 9.96265 fshow +newpath 208.57188 10.50067 moveto +211.56068 10.50067 lineto stroke +211.56068 10.30147 moveto +(lr1) cmr10 9.96265 fshow +newpath 223.80919 10.50067 moveto +226.79799 10.50067 lineto stroke +226.79799 10.30147 moveto +(sym) cmr10 9.96265 fshow +244.28809 10.30147 moveto +(") cmsy10 9.96265 fshow +249.2694 10.30147 moveto +(>) cmmi10 9.96265 fshow +28.58426 -2.49066 moveto +(\017) cmsy10 9.96265 fshow +36.88646 -2.49066 moveto +(list) cmr10 9.96265 fshow +53.54626 -2.49066 moveto +(of) cmr10 9.96265 fshow +64.89256 -2.49066 moveto +(refered) cmr10 9.96265 fshow +newpath 95.15686 -2.29146 moveto +98.14575 -2.29146 lineto stroke +98.14575 -2.49066 moveto +(rule) cmr10 9.96265 fshow +118.09866 -2.49066 moveto +(") cmsy10 9.96265 fshow +41.37639 -15.28279 moveto +(\017) cmsy10 9.96265 fshow +49.67859 -15.28279 moveto +(referenced) cmr10 9.96265 fshow +97.05649 -15.28279 moveto +(rule) cmr10 9.96265 fshow +120.33038 -15.28279 moveto +(|) cmr10 9.96265 fshow +133.61389 -15.28279 moveto +(rule) cmr10 9.96265 fshow +newpath 150.8438 -15.08359 moveto +153.8326 -15.08359 lineto stroke +153.8326 -15.28279 moveto +(in) cmr10 9.96265 fshow +newpath 162.73248 -15.08359 moveto +165.72139 -15.08359 lineto stroke +165.72139 -15.28279 moveto +(stbl) cmr10 9.96265 fshow +181.82768 -15.28279 moveto +(") cmsy10 9.96265 fshow +246.05046 124.46204 moveto +(T) cmr10 9.96265 fshow +newpath 253.84346 124.66124 moveto +256.83226 124.66124 lineto stroke +256.83226 124.46204 moveto +(in) cmr10 9.96265 fshow +newpath 265.73225 124.66124 moveto +268.72105 124.66124 lineto stroke +268.72105 124.46204 moveto +(stbl:) cmr10 9.96265 fshow +258.84259 111.6699 moveto +(\017) cmsy10 9.96265 fshow +267.14479 111.6699 moveto +(stbl) cmr10 9.96265 fshow +286.57199 111.6699 moveto +(index) cmr10 9.96265 fshow +258.84259 99.84637 moveto +(\017) cmsy10 9.96265 fshow +267.14479 99.84637 moveto +(terminal) cmr10 9.96265 fshow +newpath 304.29999 100.04558 moveto +307.28879 100.04558 lineto stroke +307.28879 99.84637 moveto +(def) cmr10 9.96265 fshow +323.61649 99.84637 moveto +(") cmsy10 9.96265 fshow +271.63472 86.08565 moveto +(\017) cmsy10 9.96265 fshow +279.93692 86.08565 moveto +(auto) cmr10 9.96265 fshow +302.62962 86.08565 moveto +(delete) cmr10 9.96265 fshow +331.41061 86.08565 moveto +(\017) cmsy10 9.96265 fshow +343.03372 86.08565 moveto +(auto) cmr10 9.96265 fshow +365.72652 86.08565 moveto +(ab) cmr10 9.96265 fshow +376.51942 86.08565 moveto +(ort) cmr10 9.96265 fshow +271.63472 73.29352 moveto +(\017) cmsy10 9.96265 fshow +279.93692 73.29352 moveto +(terminal) cmr10 9.96265 fshow +319.81522 73.29352 moveto +(name) cmr10 9.96265 fshow +271.63472 60.50139 moveto +(\017) cmsy10 9.96265 fshow +279.93692 60.50139 moveto +(class) cmr10 9.96265 fshow +303.29382 60.50139 moveto +(name) cmr10 9.96265 fshow +271.63472 48.67786 moveto +(\017) cmsy10 9.96265 fshow +279.93692 48.67786 moveto +(directiv) cmr10 9.96265 fshow +312.62003 48.67786 moveto +(es) cmr10 9.96265 fshow +324.29842 48.67786 moveto +(map) cmr10 9.96265 fshow +346.43762 48.67786 moveto +(|) cmr10 9.96265 fshow +359.72122 48.67786 moveto +(<) cmmi10 9.96265 fshow +367.46992 48.67786 moveto +(string,) cmr10 9.96265 fshow +398.54791 48.67786 moveto +(CAbs) cmr10 9.96265 fshow +newpath 423.27742 48.87706 moveto +426.26622 48.87706 lineto stroke +426.26622 48.67786 moveto +(lr1) cmr10 9.96265 fshow +newpath 438.51472 48.87706 moveto +441.50352 48.87706 lineto stroke +441.50352 48.67786 moveto +(sym) cmr10 9.96265 fshow +458.99362 48.67786 moveto +(") cmsy10 9.96265 fshow +463.97491 48.67786 moveto +(>) cmmi10 9.96265 fshow +258.84259 35.88573 moveto +(\017) cmsy10 9.96265 fshow +267.14479 35.88573 moveto +(list) cmr10 9.96265 fshow +283.8046 35.88573 moveto +(of) cmr10 9.96265 fshow +295.1509 35.88573 moveto +(refered) cmr10 9.96265 fshow +newpath 325.41519 36.08493 moveto +328.40408 36.08493 lineto stroke +328.40408 35.88573 moveto +(T) cmr10 9.96265 fshow +338.9202 35.88573 moveto +(") cmsy10 9.96265 fshow +271.63472 23.0936 moveto +(\017) cmsy10 9.96265 fshow +279.93692 23.0936 moveto +(referenced) cmr10 9.96265 fshow +327.31482 23.0936 moveto +(terminal) cmr10 9.96265 fshow +370.51402 23.0936 moveto +(|) cmr10 9.96265 fshow +383.79762 23.0936 moveto +(T) cmr10 9.96265 fshow +newpath 391.59062 23.2928 moveto +394.57942 23.2928 lineto stroke +394.57942 23.0936 moveto +(in) cmr10 9.96265 fshow +newpath 403.47932 23.2928 moveto +406.46822 23.2928 lineto stroke +406.46822 23.0936 moveto +(stbl) cmr10 9.96265 fshow +422.57452 23.0936 moveto +(") cmsy10 9.96265 fshow +15.79213 -40.86705 moveto +(th) cmr10 9.96265 fshow +newpath 25.79903 -40.66785 moveto +28.78783 -40.66785 lineto stroke +28.78783 -40.86705 moveto +(in) cmr10 9.96265 fshow +newpath 37.68784 -40.66785 moveto +40.67664 -40.66785 lineto stroke +40.67664 -40.86705 moveto +(stbl:) cmr10 9.96265 fshow +63.97823 -40.86705 moveto +(Link) cmr10 9.96265 fshow +83.48843 -40.86705 moveto +(er) cmr10 9.96265 fshow +95.13924 -40.86705 moveto +(only) cmr10 9.96265 fshow +28.58426 -54.62778 moveto +(\017) cmsy10 9.96265 fshow +36.88646 -54.62778 moveto +(stbl) cmr10 9.96265 fshow +56.31366 -54.62778 moveto +(index) cmr10 9.96265 fshow +28.58426 -66.45131 moveto +(\017) cmsy10 9.96265 fshow +36.88646 -66.45131 moveto +(thread) cmr10 9.96265 fshow +newpath 65.73946 -66.2521 moveto +68.72826 -66.2521 lineto stroke +68.72826 -66.45131 moveto +(attributes) cmr10 9.96265 fshow +114.75015 -66.45131 moveto +(") cmsy10 9.96265 fshow +41.37639 -80.21204 moveto +(\017) cmsy10 9.96265 fshow +49.67859 -80.21204 moveto +(transitiv) cmr10 9.96265 fshow +86.29138 -80.21204 moveto +(e) cmr10 9.96265 fshow +94.04008 -80.21204 moveto +(\017) cmsy10 9.96265 fshow +105.6632 -80.21204 moveto +(monolithic) cmr10 9.96265 fshow +41.37639 -90.7902 moveto +(\017) cmsy10 9.96265 fshow +49.67859 -90.7902 moveto +(grammar) cmr10 9.96265 fshow +92.35199 -90.7902 moveto +(name) cmr10 9.96265 fshow +41.37639 -103.58234 moveto +(\017) cmsy10 9.96265 fshow +49.67859 -103.58234 moveto +(namespace) cmr10 9.96265 fshow +99.5472 -103.58234 moveto +(name) cmr10 9.96265 fshow +41.37639 -118.58842 moveto +(\017) cmsy10 9.96265 fshow +49.67859 -118.58842 moveto +(thread) cmr10 9.96265 fshow +81.25468 -118.58842 moveto +(name) cmr10 9.96265 fshow +41.37639 -131.38055 moveto +(\017) cmsy10 9.96265 fshow +49.67859 -131.38055 moveto +(\014le) cmr10 9.96265 fshow +65.72949 -131.38055 moveto +(name) cmr10 9.96265 fshow +41.37639 -144.17268 moveto +(\017) cmsy10 9.96265 fshow +49.67859 -144.17268 moveto +(en) cmr10 9.96265 fshow +59.36449 -144.17268 moveto +(umeration) cmr10 9.96265 fshow +106.9916 -144.17268 moveto +(v) cmr10 9.96265 fshow +111.69618 -144.17268 moveto +(alue) cmr10 9.96265 fshow +246.05046 -40.86705 moveto +(tth) cmr10 9.96265 fshow +newpath 259.93176 -40.66785 moveto +262.92056 -40.66785 lineto stroke +262.92056 -40.86705 moveto +(in) cmr10 9.96265 fshow +newpath 271.82056 -40.66785 moveto +274.80936 -40.66785 lineto stroke +274.80936 -40.86705 moveto +(stbl:) cmr10 9.96265 fshow +298.11086 -40.86705 moveto +(Link) cmr10 9.96265 fshow +317.62115 -40.86705 moveto +(er) cmr10 9.96265 fshow +329.27187 -40.86705 moveto +(only) cmr10 9.96265 fshow +258.84259 -54.62778 moveto +(\017) cmsy10 9.96265 fshow +267.14479 -54.62778 moveto +(stbl) cmr10 9.96265 fshow +286.57199 -54.62778 moveto +(index) cmr10 9.96265 fshow +258.84259 -66.45131 moveto +(\017) cmsy10 9.96265 fshow +267.14479 -66.45131 moveto +(T) cmr10 9.96265 fshow +newpath 274.93779 -66.2521 moveto +277.92659 -66.2521 lineto stroke +277.92659 -66.45131 moveto +(attributes) cmr10 9.96265 fshow +323.9486 -66.45131 moveto +(") cmsy10 9.96265 fshow +271.63472 -79.24344 moveto +(\017) cmsy10 9.96265 fshow +279.93692 -79.24344 moveto +(fully) cmr10 9.96265 fshow +302.62971 -79.24344 moveto +(quali\014ed) cmr10 9.96265 fshow +342.75702 -79.24344 moveto +(name) cmr10 9.96265 fshow +271.63472 -93.00417 moveto +(\017) cmsy10 9.96265 fshow +279.93692 -93.00417 moveto +(en) cmr10 9.96265 fshow +289.62282 -93.00417 moveto +(umeration) cmr10 9.96265 fshow +337.24992 -93.00417 moveto +(v) cmr10 9.96265 fshow +341.95451 -93.00417 moveto +(alue) cmr10 9.96265 fshow +246.05046 -118.58842 moveto +(kw) cmr10 9.96265 fshow +newpath 259.10156 -118.38922 moveto +262.09036 -118.38922 lineto stroke +262.09036 -118.58842 moveto +(in) cmr10 9.96265 fshow +newpath 270.99026 -118.38922 moveto +273.97916 -118.38922 lineto stroke +273.97916 -118.58842 moveto +(stbl:) cmr10 9.96265 fshow +258.84259 -131.38055 moveto +(\017) cmsy10 9.96265 fshow +267.14479 -131.38055 moveto +(stbl) cmr10 9.96265 fshow +286.57199 -131.38055 moveto +(index) cmr10 9.96265 fshow +258.84259 -143.20409 moveto +(\017) cmsy10 9.96265 fshow +267.14479 -143.20409 moveto +(CAbs) cmr10 9.96265 fshow +newpath 291.87428 -143.00488 moveto +294.86308 -143.00488 lineto stroke +294.86308 -143.20409 moveto +(lr1) cmr10 9.96265 fshow +newpath 307.11159 -143.00488 moveto +310.1005 -143.00488 lineto stroke +310.1005 -143.20409 moveto +(sym) cmr10 9.96265 fshow +330.91139 -143.20409 moveto +(") cmsy10 9.96265 fshow +showpage +%%EOF diff --git a/web/yacco2/diagrams/yacco2_stbl.mp b/web/yacco2/diagrams/yacco2_stbl.mp new file mode 100644 index 0000000000..23454a4345 --- /dev/null +++ b/web/yacco2/diagrams/yacco2_stbl.mp @@ -0,0 +1,136 @@ +% file: yacco2_stbl.mp +input boxes +beginfig(1); +u=1cc; +% char_pool +pair sw,se,ne,nw; +sw:=(0,0); +se:=(1u,0); +ne:=(1u,6u); +nw:=(0,6u); +draw sw--se--ne--nw--cycle; +%outline the bytes +pair zx,zy; +for i=1 upto 5: + zx:=(0,i*u);zy:=(1u,i*u); + draw zx--zy; + if i=5: + pair ze,zw; + ze:=(1u,6u);zw:=(0,6u); + draw zx--ze; + draw .5[zx,zy]--.5[zy,ze]; + draw .5[zx,zw]--.5[zw,ze]; + fi + string d; d:=substring(i-1,i) of "Rbegn"; + label.top(d,.5[zx-(0,1u),zy-(0,1u)]); + string a;a:=decimal (i-1); + defaultscale:=.6; + label.lft(substring(0,1)of a,zx-(0,1u)); + defaultscale:=1; +endfor + defaultscale:=.6; + label.lft("5",(0,5u)); + defaultscale:=1; + label.bot(btex $char\_pool$ etex,(0,0u)); + +% stbl +sw:=(5u,0); +se:=(6u,0); +ne:=(6u,4u); +nw:=(5u,4u); +draw sw--se--ne--nw--cycle; +%outline the bytes +for i=1 upto 3: + zx:=(5u,i*u);zy:=(6u,i*u); + if i = 3: + draw zx{dir 45} .. .5[zx,zy] {dir -45} .. zy; + else: + draw zx--zy; + fi +endfor +% draw arrows +drawarrow .5[(5u,0u),(6u,1u)]{left}.. .5[(1u,0),(1u,1u)]; + label.lft("top",(-1u,5.5u)); + drawarrow (-1u,5.5u)..(0,5.5u); +label.bot(btex $stbl[].table\_entry$ etex,(6u,0u)); +label.top(btex $key\uparrow$ etex,.5[.5[(5u,0u),(6u,1u)],.5[(1u,0),(1u,1u)]]); + +% label subscripts +defaultscale:=.6; +for i=0 upto 3: + zy:=(6u,i*u); + string a; + if i=3: + a := "prime-1"; + label.rt(a,zy); + else: + a:=decimal (i); + label.rt(substring(0,1)of a,zy); + fi +endfor +defaultscale:=1; + + +%outline table_entry +label.rt(btex table$\_$entry: etex,(9u,6u)); +label.rt(btex $\bullet\ $key$\uparrow$ \ \ $\bullet\ $key\ len\ \ $\bullet\ $stbl\ pos etex,(10u,5u)); +label.rt(btex $\bullet\ $vacant --- boolean valued etex,(10u,4u)); +label.rt(btex $\bullet\ $defined\ \ $\bullet\ $used --- both boolean valued etex,(10u,3u)); +label.rt(btex $\bullet\ $type\ $\in\ $\ rule, terminal, keyword, thread, unknown etex,(10u,2u)); +label.rt(btex $\bullet\ $symbol\ $\uparrow\ \in\ $rule$\_$in$\_$stbl, T$\_$in$\_$stbl, kw$\_$in$\_$stbl, th$\_$in$\_$stbl, tth$\_$in$\_$stbl etex,(10u,1u)); +endfig; + +beginfig(2); +% outline rule-in-stbl +label.rt(btex rule$\_$in$\_$stbl: etex,(1u,10u)); +label.rt(btex $\bullet\ $stbl index etex,(2u,9u)); +label.rt(btex $\bullet\ $rule$\_$def\ $\uparrow$ etex,(2u,8u)); + label.rt(btex $\bullet\ $auto delete\ $\bullet\ $ auto abort etex,(3u,7u)); + label.rt(btex $\bullet\ $contains an epsilon subrule etex,(3u,6u)); + label.rt(btex $\bullet\ $rule name etex,(3u,5u)); + label.rt(btex $\bullet\ $parallel$\_$monitor$\_$phrase$\uparrow$ etex,(3u,4u)); + label.rt(btex $\bullet\ $subrules$\_$phrase$\uparrow$ etex,(3u,3u)); + label.rt(btex $\bullet\ $rule$\_$lhs$\_$phrase$\uparrow$ etex,(3u,2u)); + label.rt(btex $\bullet\ $lhs directives map\ --- $<$string, CAbs$\_$lr1$\_$sym$\uparrow > $ etex,(3u,1u)); + +label.rt(btex $\bullet\ $list of refered$\_$rule $\uparrow$ etex,(2u,0u)); + label.rt(btex $\bullet\ $referenced rule \ --- rule$\_$in$\_$stbl$\uparrow$ etex,(3u,-1u)); + + +% outline T-in-stbl +label.rt(btex T$\_$in$\_$stbl: etex,(19u,10u)); +label.rt(btex $\bullet\ $stbl index etex,(20u,9u)); +label.rt(btex $\bullet\ $terminal$\_$def\ $\uparrow$ etex,(20u,8u)); + label.rt(btex $\bullet\ $auto delete\ $\bullet\ $ auto abort etex,(21u,7u)); + label.rt(btex $\bullet\ $terminal name etex,(21u,6u)); + label.rt(btex $\bullet\ $class name etex,(21u,5u)); + label.rt(btex $\bullet\ $directives map\ --- $<$string, CAbs$\_$lr1$\_$sym$\uparrow > $ etex,(21u,4u)); + +label.rt(btex $\bullet\ $list of refered$\_$T $\uparrow$ etex,(20u,3u)); + label.rt(btex $\bullet\ $referenced terminal \ --- T$\_$in$\_$stbl$\uparrow$ etex,(21u,2u)); + +% outline th-in-stbl +label.rt(btex th$\_$in$\_$stbl: Linker only etex,(1u,-3u)); +label.rt(btex $\bullet\ $stbl index etex,(2u,-4u)); +label.rt(btex $\bullet\ $thread$\_$attributes\ $\uparrow$ etex,(2u,-5u)); + label.rt(btex $\bullet\ $transitive\ $\bullet\ $ monolithic etex,(3u,-6u)); + label.rt(btex $\bullet\ $grammar name etex,(3u,-7u)); + label.rt(btex $\bullet\ $namespace name etex,(3u,-8u)); + label.rt(btex $\bullet\ $thread name etex,(3u,-9u)); + label.rt(btex $\bullet\ $file name etex,(3u,-10u)); + label.rt(btex $\bullet\ $enumeration value etex,(3u,-11u)); + + +% outline tth-in-stbl - linker's terminals +label.rt(btex tth$\_$in$\_$stbl: Linker only etex,(19u,-3u)); +label.rt(btex $\bullet\ $stbl index etex,(20u,-4u)); +label.rt(btex $\bullet\ $T$\_$attributes\ $\uparrow$ etex,(20u,-5u)); + label.rt(btex $\bullet\ $fully qualified name etex,(21u,-6u)); + label.rt(btex $\bullet\ $enumeration value etex,(21u,-7u)); + +% outline kw-in-stbl +label.rt(btex kw$\_$in$\_$stbl: etex,(19u,-9u)); +label.rt(btex $\bullet\ $stbl index etex,(20u,-10u)); +label.rt(btex $\bullet\ $CAbs$\_$lr1$\_$sym\ $\uparrow$ etex,(20u,-11u)); +endfig; +end; |