% file: pager_1.w - cweb grammar
%Date: Sun Jun 15 15:01:27 2014 
\input  "supp-pdf"
\input "/yacco2/diagrams+etc/o2mac.tex"
\GRAMMARtitle{pager\_1}
{pager\_1.lex}{NS\_pager\_1}
{1.0}{true}
{Test out David Pager LR(1) resolution page 61.}


@** David Pager  Grammar.\fbreak
David Pager\fbreak
The Lane Table Method Of Constructing LR(1) Parsers.\fbreak

@*2 Fsm Cpager\_1 class.

@*3 Cpager\_1 failed directive.

The |RSVP_FSM| macro is used
to pass back an error to the calling grammar
in its ``Accept queue''!
Here the error is within the monolithic grammar so place it 
directly into the ``Error queue''.
Please read ``wlibrary.pdf'' or ``o2book.pdf'' on the differences between:\fbreak
|RSVP| and  |RSVP_FSM| and their contextes to place a T into the ``Accept queue''
whereas
 |ADD_TOKEN_TO_ERROR_QUEUE| and |ADD_TOKEN_TO_ERROR_QUEUE_FSM|
macros
store the T into the ``Error queue''.
\fbreak 
{\bf{Note}}: Reference to |current_token|
to fetch its token stream gps.

@<Cpager\_1 failed directive@>=

       CAbs_lr1_sym* sym = new Err_bad_T_inputted;
       sym->set_rc(*parser__->current_token__,__FILE__,__LINE__);
       ADD_TOKEN_TO_ERROR_QUEUE_FSM(*sym);
       return true;

@*2 |@!Rs| rule.\fbreak
\fbreak
\convertMPtoPDF{pager_1.1}{1}{1}
@.Re@>
@.eog@>
@*2 |@!Re| rule.\fbreak
\fbreak
\convertMPtoPDF{pager_1.3}{1}{1}
@.Rx@>
@.Rx@>
@.Ry@>
@.Ry@>
@*2 |@!Rx| rule.\fbreak
\fbreak
\convertMPtoPDF{pager_1.8}{1}{1}
@.Rx@>
@*2 |@!Ry| rule.\fbreak
\fbreak
\convertMPtoPDF{pager_1.11}{1}{1}
@.Ry@>
@** First Set Language for \Olinker.\fbreak
\openin 1 = "/yacco2/grammar-testsuite/pager_1.fsc"
\ifeof 1 true
 \closein 1
\else
   \closein 1
   \listing{"/yacco2/grammar-testsuite/pager_1.fsc"}\fi
@** Lr1 State Network.\fbreak
\statecolumnspace  
\stateno{1} {} {\Shiftonly}
\halign{
\span\statetemplate
\statetitle
{c}&
{Re}&
{2\hss}&
{3\hss}&
{1\hss}&
{{a} 
}&
{1\hss}&
{2\hss}&
{6\hss}&
{\hss}\cr
{c}&
{Re}&
{2\hss}&
{1\hss}&
{1\hss}&
{{a} 
}&
{1\hss}&
{2\hss}&
{4\hss}&
{\hss}\cr
{c}&
{Re}&
{2\hss}&
{2\hss}&
{1\hss}&
{{b} 
}&
{1\hss}&
{7\hss}&
{9\hss}&
{\hss}\cr
{c}&
{Re}&
{2\hss}&
{4\hss}&
{1\hss}&
{{b} 
}&
{1\hss}&
{7\hss}&
{11\hss}&
{\hss}\cr
{c}&
{Rs}&
{1\hss}&
{1\hss}&
{1\hss}&
{{Re} 
{$\underline{eog}$} 
}&
{1\hss}&
{12\hss}&
{13\hss}&
{\hss}\cr
}
\stateno{2} {a} {\Shiftonly}
\halign{
\span\statetemplate
\statetitle
{c}&
{Rx}&
{3\hss}&
{1\hss}&
{1\hss}&
{{e} 
}&
{2\hss}&
{14\hss}&
{15\hss}&
{\hss}\cr
{c}&
{Rx}&
{3\hss}&
{2\hss}&
{1\hss}&
{{e} 
}&
{2\hss}&
{14\hss}&
{14\hss}&
{\hss}\cr
{c}&
{Ry}&
{4\hss}&
{1\hss}&
{1\hss}&
{{e} 
}&
{2\hss}&
{14\hss}&
{16\hss}&
{\hss}\cr
{c}&
{Ry}&
{4\hss}&
{2\hss}&
{1\hss}&
{{e} 
}&
{2\hss}&
{14\hss}&
{14\hss}&
{\hss}\cr
{t}&
{Re}&
{2\hss}&
{1\hss}&
{2\hss}&
{{Rx} 
{$\underline{d}$} 
}&
{1\hss}&
{3\hss}&
{4\hss}&
{\hss}\cr
{t}&
{Re}&
{2\hss}&
{3\hss}&
{2\hss}&
{{Ry} 
{$\underline{c}$} 
}&
{1\hss}&
{5\hss}&
{6\hss}&
{\hss}\cr
}
\stateno{3} {Rx} {\Shiftonly}
\halign{
\span\statetemplate
\statetitle
{t}&
{Re}&
{2\hss}&
{1\hss}&
{3\hss}&
{{d} 
}&
{1\hss}&
{4\hss}&
{4\hss}&
{\hss}\cr
}
\stateno{4} {d} {\Reduceonly}
\halign{
\span\statetemplate
\statetitle
{t}&
{Re}&
{2\hss}&
{1\hss}&
{4\hss}&
{{} 
}&
{1\hss}&
{0\hss}&
{4\hss}&
{1\hss}\cr
}
\stateno{5} {Ry} {\Shiftonly}
\halign{
\span\statetemplate
\statetitle
{t}&
{Re}&
{2\hss}&
{3\hss}&
{3\hss}&
{{c} 
}&
{1\hss}&
{6\hss}&
{6\hss}&
{\hss}\cr
}
\stateno{6} {c} {\Reduceonly}
\halign{
\span\statetemplate
\statetitle
{t}&
{Re}&
{2\hss}&
{3\hss}&
{4\hss}&
{{} 
}&
{1\hss}&
{0\hss}&
{6\hss}&
{1\hss}\cr
}
\stateno{7} {b} {\Shiftonly}
\halign{
\span\statetemplate
\statetitle
{c}&
{Rx}&
{3\hss}&
{1\hss}&
{1\hss}&
{{e} 
}&
{7\hss}&
{17\hss}&
{18\hss}&
{\hss}\cr
{c}&
{Rx}&
{3\hss}&
{2\hss}&
{1\hss}&
{{e} 
}&
{7\hss}&
{17\hss}&
{17\hss}&
{\hss}\cr
{c}&
{Ry}&
{4\hss}&
{1\hss}&
{1\hss}&
{{e} 
}&
{7\hss}&
{17\hss}&
{19\hss}&
{\hss}\cr
{c}&
{Ry}&
{4\hss}&
{2\hss}&
{1\hss}&
{{e} 
}&
{7\hss}&
{17\hss}&
{17\hss}&
{\hss}\cr
{t}&
{Re}&
{2\hss}&
{2\hss}&
{2\hss}&
{{Rx} 
{$\underline{c}$} 
}&
{1\hss}&
{8\hss}&
{9\hss}&
{\hss}\cr
{t}&
{Re}&
{2\hss}&
{4\hss}&
{2\hss}&
{{Ry} 
{$\underline{d}$} 
}&
{1\hss}&
{10\hss}&
{11\hss}&
{\hss}\cr
}
\stateno{8} {Rx} {\Shiftonly}
\halign{
\span\statetemplate
\statetitle
{t}&
{Re}&
{2\hss}&
{2\hss}&
{3\hss}&
{{c} 
}&
{1\hss}&
{9\hss}&
{9\hss}&
{\hss}\cr
}
\stateno{9} {c} {\Reduceonly}
\halign{
\span\statetemplate
\statetitle
{t}&
{Re}&
{2\hss}&
{2\hss}&
{4\hss}&
{{} 
}&
{1\hss}&
{0\hss}&
{9\hss}&
{1\hss}\cr
}
\stateno{10} {Ry} {\Shiftonly}
\halign{
\span\statetemplate
\statetitle
{t}&
{Re}&
{2\hss}&
{4\hss}&
{3\hss}&
{{d} 
}&
{1\hss}&
{11\hss}&
{11\hss}&
{\hss}\cr
}
\stateno{11} {d} {\Reduceonly}
\halign{
\span\statetemplate
\statetitle
{t}&
{Re}&
{2\hss}&
{4\hss}&
{4\hss}&
{{} 
}&
{1\hss}&
{0\hss}&
{11\hss}&
{1\hss}\cr
}
\stateno{12} {Re} {\Shiftonly}
\halign{
\span\statetemplate
\statetitle
{t}&
{Rs}&
{1\hss}&
{1\hss}&
{2\hss}&
{{eog} 
}&
{1\hss}&
{13\hss}&
{13\hss}&
{\hss}\cr
}
\stateno{13} {eog} {\Reduceonly}
\halign{
\span\statetemplate
\statetitle
{t}&
{Rs}&
{1\hss}&
{1\hss}&
{3\hss}&
{{} 
}&
{1\hss}&
{0\hss}&
{13\hss}&
{2\hss}\cr
}
\stateno{14} {e} {\ShiftandMultipleReduces}
\halign{
\span\statetemplate
\statetitle
{t}&
{Rx}&
{3\hss}&
{2\hss}&
{2\hss}&
{{} 
}&
{2\hss}&
{0\hss}&
{14\hss}&
{3\hss}\cr
{t}&
{Ry}&
{4\hss}&
{2\hss}&
{2\hss}&
{{} 
}&
{2\hss}&
{0\hss}&
{14\hss}&
{4\hss}\cr
{c}&
{Rx}&
{3\hss}&
{1\hss}&
{1\hss}&
{{e} 
}&
{14\hss}&
{14\hss}&
{15\hss}&
{\hss}\cr
{c}&
{Rx}&
{3\hss}&
{2\hss}&
{1\hss}&
{{e} 
}&
{14\hss}&
{14\hss}&
{14\hss}&
{\hss}\cr
{c}&
{Ry}&
{4\hss}&
{1\hss}&
{1\hss}&
{{e} 
}&
{14\hss}&
{14\hss}&
{16\hss}&
{\hss}\cr
{c}&
{Ry}&
{4\hss}&
{2\hss}&
{1\hss}&
{{e} 
}&
{14\hss}&
{14\hss}&
{14\hss}&
{\hss}\cr
{t}&
{Rx}&
{3\hss}&
{1\hss}&
{2\hss}&
{{Rx} 
}&
{2\hss}&
{15\hss}&
{15\hss}&
{\hss}\cr
{t}&
{Ry}&
{4\hss}&
{1\hss}&
{2\hss}&
{{Ry} 
}&
{2\hss}&
{16\hss}&
{16\hss}&
{\hss}\cr
}
\stateno{15} {Rx} {\Reduceonly}
\halign{
\span\statetemplate
\statetitle
{t}&
{Rx}&
{3\hss}&
{1\hss}&
{3\hss}&
{{} 
}&
{2\hss}&
{0\hss}&
{15\hss}&
{3\hss}\cr
}
\stateno{16} {Ry} {\Reduceonly}
\halign{
\span\statetemplate
\statetitle
{t}&
{Ry}&
{4\hss}&
{1\hss}&
{3\hss}&
{{} 
}&
{2\hss}&
{0\hss}&
{16\hss}&
{4\hss}\cr
}
\stateno{17} {e} {\ShiftandMultipleReduces}
\halign{
\span\statetemplate
\statetitle
{t}&
{Rx}&
{3\hss}&
{2\hss}&
{2\hss}&
{{} 
}&
{7\hss}&
{0\hss}&
{17\hss}&
{4\hss}\cr
{t}&
{Ry}&
{4\hss}&
{2\hss}&
{2\hss}&
{{} 
}&
{7\hss}&
{0\hss}&
{17\hss}&
{3\hss}\cr
{c}&
{Rx}&
{3\hss}&
{1\hss}&
{1\hss}&
{{e} 
}&
{17\hss}&
{17\hss}&
{18\hss}&
{\hss}\cr
{c}&
{Rx}&
{3\hss}&
{2\hss}&
{1\hss}&
{{e} 
}&
{17\hss}&
{17\hss}&
{17\hss}&
{\hss}\cr
{c}&
{Ry}&
{4\hss}&
{1\hss}&
{1\hss}&
{{e} 
}&
{17\hss}&
{17\hss}&
{19\hss}&
{\hss}\cr
{c}&
{Ry}&
{4\hss}&
{2\hss}&
{1\hss}&
{{e} 
}&
{17\hss}&
{17\hss}&
{17\hss}&
{\hss}\cr
{t}&
{Rx}&
{3\hss}&
{1\hss}&
{2\hss}&
{{Rx} 
}&
{7\hss}&
{18\hss}&
{18\hss}&
{\hss}\cr
{t}&
{Ry}&
{4\hss}&
{1\hss}&
{2\hss}&
{{Ry} 
}&
{7\hss}&
{19\hss}&
{19\hss}&
{\hss}\cr
}
\stateno{18} {Rx} {\Reduceonly}
\halign{
\span\statetemplate
\statetitle
{t}&
{Rx}&
{3\hss}&
{1\hss}&
{3\hss}&
{{} 
}&
{7\hss}&
{0\hss}&
{18\hss}&
{4\hss}\cr
}
\stateno{19} {Ry} {\Reduceonly}
\halign{
\span\statetemplate
\statetitle
{t}&
{Ry}&
{4\hss}&
{1\hss}&
{3\hss}&
{{} 
}&
{7\hss}&
{0\hss}&
{19\hss}&
{3\hss}\cr
}
@** Index.
