%\filename{SynChart-test.tex}
%\edited{by stolfi on Fri Dec 27 11:27:48 1985}

% simple tests of syntaxart.tex

\input showboxdims
\input SynChart

\def\showit#1{\showboxdims{\hbox{\ignorespaces #1}}}

\font\NonTerminalFont=amti10 \relax
\font\TerminalFont=amtt10 \relax
\font\KeywordFont=ambx10 \relax

\SyntaxChart

\parindent 0pt
\parskip 10pt
\hsize=7truein
\hoffset=-0.5truein
\DontIgnoreWhiteSpace

Dimensions: Wid = \the\Wid{} Unit = \the\Unit{}
ArrowLength = \the\ArrowLength

\def\one{\Keyword{ONE}}
\def\two{\Keyword{TWO}}
\def\three{\Keyword{THREE}}

Arrow Tips:\par
\showit{\ARRF >}
\showit{\ARRF <}
\showit{\BARRF >}
\showit{\BARRF <}

\showit{\ARRF \char'024}
\showit{\BARRF \char'024}
\showit{\ARRF \char'014}
\showit{\BARRF \char'014}
\par

Quarter Circles: \par
\showboxdims{\I} \showboxdims{\II}
\showboxdims{\III} \showboxdims{\IV}

{\BigCircles
\showboxdims{\I} \showboxdims{\II}
\showboxdims{\III} \showboxdims{\IV}
}

Round box caps:\par
\showboxdims{\LeftRound}
\showboxdims{\RightRound}
{\BigCircles
\showboxdims{\LeftRound}
\showboxdims{\RightRound}
}

Arrows:\par
\showit{\LeftGoingArrow}
\showit{\RightGoingArrow}
\showit{\BigLeftGoingArrow}
\showit{\BigRightGoingArrow}

\showit{\DownGoingArrow}

\vfill\eject

Symbol box stems:\par
\showit{\InputLeftArrow}
\showit{\OutputLeftArrow}

Terminals:\par
\showit{\Sandwich{\kern -0.5\Unit\TerminalFont >\kern-0.5\Unit}}
\showit{\LeftRound
\Sandwich{\kern -0.5\Unit\TerminalFont >\kern-0.5\Unit}\RightRound
}

\showit{\Terminal{+\OpStrut}}
\showit{\Terminal{.\OpStrut}}

{\BigCircles
\showit{\Sandwich{\kern -0.5\Unit\TerminalFont >\kern-0.5\Unit}}
\showit{\LeftRound
\Sandwich{\kern -0.5\Unit\TerminalFont >\kern-0.5\Unit}\RightRound
}

\showit{\Terminal{+\OpStrut}}
\showit{\Terminal{.\OpStrut}}
\showit{\Terminal{-->\OpStrut}}
}

\leavevmode
\hbox{\Terminal{+\OpStrut}}
\hbox{\Terminal{E}}
\hbox{\Terminal{'\OpStrut}}\par

NonTerminals:\par
\showit{\NonTerminal{Beginning}}
{\BigCircles \showit{\NonTerminal{Beginning}}}

Keywords:\par
\showit{\Keyword{Begin}}
\showit{\Sandwich{\kern-0.25\Unit\KeywordFont Bg\kern-0.25\Unit}}

{\BigCircles
\showit{\Keyword{Begin}}
\showit{\Sandwich{\kern-0.25\Unit\KeywordFont Bg\kern-0.25\Unit}}
}

\vfill\eject

Alternatives: \par
\showit{\Alternatives{\Upper{\Terminal{+}}}}
\showit{\Alternatives{\Lower{\Terminal{+}}}}
\showit{\Alternatives{\Middle{\Terminal{+}}}}

\showit{\Alternatives{\Upper{\Terminal{+}}\Upper{\Terminal{-}}}}
\showit{\Alternatives{\Upper{\Terminal{+}}\Middle{\Terminal{-}}}}
\showit{\Alternatives{\Upper{\Terminal{+}}\Lower{\Terminal{-}}}}

\showit{\Alternatives{\Middle{\Terminal{+}}\Lower{\Terminal{-}}}}
\showit{\Alternatives{\Lower{\Terminal{+}}\Lower{\Terminal{-}}}}
\showit{\Alternatives{
\Upper{\Terminal{+}}
\Middle{\Terminal{-\OpStrut}}
\Lower{\Terminal{-}}
}}

\showit{\Alternatives{
\Upper{\Terminal{+}}
\Upper{\Terminal{?}}
\Middle{\Empty}
\Lower{\Terminal{-}}
}}
\showit{\AltSpacing=1
\Alternatives{
\Upper{\Terminal{+}}
\Upper{\Terminal{?}}
\Middle{\Empty}
\Lower{\Terminal{-}}
}}
\showit{\AltSpacing=3
\Alternatives{
\Upper{\Terminal{+}}
\Upper{\Terminal{?}}
\Middle{\Empty}
\Lower{\Terminal{-}}
}}

\showit{
\Alternatives{
\Upper{\Empty}
\Upper{\Empty}
\Middle{\Arrow}
\Lower{\Empty}
\Lower{\Empty}
}}
\showit{\AltSpacing=1
\Alternatives{
\Upper{\Empty}
\Upper{\Empty}
\Middle{\Arrow}
\Lower{\Empty}
\Lower{\Empty}
}}
\showit{\AltSpacing=3
\Alternatives{
\Upper{\Empty}
\Upper{\Empty}
\Middle{\Arrow}
\Lower{\Empty}
\Lower{\Empty}
}}

\vfill\eject

More alternatives: \par
\showit{
\Alternatives{
\Upper{\Terminal{+}}
\Upper{\Terminal{?}}
\Middle{\Arrow}
\Lower{\Terminal{-}}
}}
\showit{\AltSpacing=1
\Alternatives{
\Upper{\Terminal{+}}
\Upper{\Terminal{?}}
\Middle{\Arrow}
\Lower{\Terminal{-}}
}}
\showit{\AltSpacing=3
\Alternatives{
\Upper{\Terminal{+}}
\Upper{\Terminal{?}}
\Middle{\Arrow}
\Lower{\Terminal{-}}
}}

\showit{
\Alternatives{
\Upper{\Terminal{+}}
\Upper{\Terminal{?}}
\Lower{\Terminal{-}}
\Lower{\Terminal{(}}
}}
\showit{\AltSpacing=1
\Alternatives{
\Upper{\Terminal{+}}
\Upper{\Terminal{?}}
\Lower{\Terminal{-}}
\Lower{\Terminal{(}}
}}
\showit{\AltSpacing=3
\Alternatives{
\Upper{\Terminal{+}}
\Upper{\Terminal{?}}
\Lower{\Terminal{-}}
\Lower{\Terminal{(}}
}}

\showit{
\BigCircles
\Alternatives{
\Upper{\Terminal{+}}
\Upper{\Terminal{?}}
\Lower{\Terminal{-}}
\Lower{\Terminal{(}}
}}
\showit{\AltSpacing=1
\BigCircles
\Alternatives{
\Upper{\Terminal{+}}
\Upper{\Terminal{?}}
\Lower{\Terminal{-}}
\Lower{\Terminal{(}}
}}
\showit{\AltSpacing=3
\BigCircles
\Alternatives{
\Upper{\Terminal{+}}
\Upper{\Terminal{?}}
\Lower{\Terminal{-}}
\Lower{\Terminal{(}}
}}

\IgnoreWhiteSpace

\Define{Foo}
\Fil
\Terminal{Baz}
\Fil\Fil
\EndDef

\Define{Foo Bar}
\Fil
\Terminal{Bar}
\NonTerminal{Baz}
\Fil\Fil
\EndDef

\Define{Foo Bar}
\Fil
\Terminal{Bar}
\NewLine
\NonTerminal{Baz}
\Fil\Fil
\EndDef

\Define{Two}
\Fil
\Alternatives{\Upper{\Terminal{Foo}}\Lower{\Terminal{Baz}}}
\Fil
\EndDef

\Define{Many}
\Fil
\Alternatives{
\Upper{
\Fil
\Alternatives{\Upper{\Terminal{Foo}}\Lower{\Terminal{Baz}}}
\Fil
}
\Middle{\Terminal{Hep}}
\Lower{\Terminal{Boo}}
\Lower{\Terminal{Phew}}
}
\Fil
\EndDef

\Define{Horz\ Many}
\Fil
\HorzAlternatives{
\Alternative{\Terminal{Foo}}
\Alternative{\Terminal{Baz}}
\Alternative{\Terminal{Gnek}}
}
\Fil
\EndDef

\Define{Too\ Many}
\Fil
\Repeat{
\Upper{\Terminal{,}}
\Upper{\Terminal{\$}}
\Upper{\Terminal{?}}
\Middle{\Empty}
}
\Fil
\EndDef

\Define{Test 1}
\one
\two
\three
\EndDef

\Define{Test 2}
\Fil
\one
\two
\three
\EndDef

\Define{Test 3}
\one
\two
\three
\Fil
\EndDef

\Define{Test 4}
\Fil
\one
\two
\three
\Fil
\EndDef

\Define{Test 5}
\one
\two
\NewLine
\three
\two
\one
\EndDef

\Define{Test 6}
\one
\two
\three
\NewLine
\two
\three
\NewLine
\two
\three
\NewLine
\Fil
\one
\EndDef

\Define{Test 7}
\one
\two
\OptionalLines{
\Line{\three\two\one}
\Line{\Alternatives{\Upper{\one}\Lower{\two\three}}}
}
\two
\three
\Repeat{\Upper{\two}\Middle{}}
\one
\NewLine
\one\one\one\Alternatives{\Upper{\one}\Middle{\two}\Lower{\three}}
\two\two\two
\Fil
\EndDef

{\MinLineWidth=\hsize \advance\MinLineWidth by -4\Unit

\Define{Test 8}
\one
\two
\three
\NewLine
\two
\three
\NewLine
\two
\three
\NewLine
\Fil
\one
\EndDef

\Define{Test 9}
\one
\two
\OptionalLines{
\Line{\three\two\one}
\Line{\Alternatives{\Upper{\one}\Lower{\two\three}}}
}
\two
\three
\Repeat{\Upper{\two}\Middle{}}
\one
\NewLine
\one\one\one\Alternatives{\Upper{\one}\Middle{\two}\Lower{\three}}
\two\two\two
\Fil
\EndDef

}

\vfill\bye