% This file was generated by 'rail/rail' from 'scanparse.rai' \rail@t {lbrace} \rail@t {rbrace} \rail@p {-a -h} \rail@i {1}{ stmt : stmtexpr ';' | whilestmt | block | ifstmt ; whilestmt : 'while' '(' expr ')' 'stmt' ; block : lbrace stmtlist rbrace ; } \rail@o {1}{ \rail@begin{4}{stmt} \rail@bar \rail@rnont{stmtexpr}[] \rail@rterm{;}[] \rail@nextbar{1} \rail@rnont{whilestmt}[] \rail@nextbar{2} \rail@rnont{block}[] \rail@nextbar{3} \rail@rnont{ifstmt}[] \rail@endbar \rail@vend \rail@begin{1}{whilestmt} \rail@rterm{while}[] \rail@rterm{(}[] \rail@rnont{expr}[] \rail@rterm{)}[] \rail@rterm{stmt}[] \rail@vend \rail@begin{1}{block} \rail@rtoken{lbrace}[] \rail@rnont{stmtlist}[] \rail@rtoken{rbrace}[] \rail@vend } \rail@i {2}{ stmtlist0 : stmt * ; stmtlist1 : stmt + ; ifstmt : 'if' '(' expr ')' \\ stmt ( 'else' stmt ) ? } \rail@o {2}{ \rail@begin{2}{stmtlist0} \rail@plus \rail@nextplus{1} \rail@lcnont{stmt}[] \rail@endplus \rail@vend \rail@begin{2}{stmtlist1} \rail@plus \rail@rnont{stmt}[] \rail@nextplus{1} \rail@endplus \rail@vend \rail@begin{4}{ifstmt} \rail@rterm{if}[] \rail@rterm{(}[] \rail@rnont{expr}[] \rail@rterm{)}[] \rail@cr{2} \rail@rnont{stmt}[] \rail@bar \rail@nextbar{3} \rail@rterm{else}[] \rail@rnont{stmt}[] \rail@endbar \rail@vend }