%TEX
\subsection{ conditionals }
%
expr tail (>indent, >expr 1, "   ">, cond>):
   arrow symbol, ->,
      expression (>indent+"   ", exprt>), semicolon symbol, 
      expression  (>indent+"   ", expre>), 
      make op node 3 (>indent, >"->", >expr 1, >exprt, >expre, cond>);
expr tail (>indent, >expr 1, "">, expr 1>):.

%TEX
\subsection{ expression 1 }
%
expr 1 (>indent, expr>):
   expr 2 (>indent+extra indent, expr 1>), 
      expr 1tail (>indent, >expr 1, extra indent>, expr>).

expr 1tail (>indent, >expr 1, "   ">, expr>):
   colon symbol, ->,
      expr 1 (>indent+"   ", expr 2>),
      make op node 2 (>indent, >":", >expr 1, >expr 2, expr>);
expr 1tail (>indent, >expr, "">, expr>):.

%TEX
\subsection{ expression 2: $=, /=$ }
%
expr 2 (>indent, expr>):
   expr 3 (>indent+extra indent, expr 1>),
      expr 2tail (>indent, >expr 1, extra indent>, expr>).

expr 2tail (>indent, >expr 1, extra indent+"   ">, expr>):
   ? !=/! (ign>),
   ene op (op>), ->, expr 3 (>indent+"   ", expr 2>),
      make op node 2 (>indent+extra indent, >op, >expr 1, >expr 2, exprm>),
      expr 2tail (>indent, >exprm, extra indent>, expr>);
expr 2tail (>indent, >expr, "">, expr>):.

ene op ("=">): equals symbol, ->;
ene op ("/=">): unequals symbol.

%TEX
\subsection{ expression 3: $<, <=, >, >=$ }
%
expr 3 (>indent, expr>):
   expr 4 (>indent+extra indent, expr 1>),
      expr 3tail (>indent, >expr 1, extra indent>, expr>).

expr 3tail (>indent, >expr 1, "   ">, expr>):
   ? !<=>! (ign>),
   cmp op (op>), expr 4 (>indent+"   ", expr 2>), ->,
      make op node 2 (>indent+"   ", >op, >expr 1, >expr 2, expr>);
expr 3tail (>indent, >expr, "">, expr>):.

cmp op ("<">): less than symbol, ->;
cmp op ("<=">): less or equals symbol, ->;
cmp op (">">): greater than symbol, ->;
cmp op (">=">): greater or equals symbol.

%TEX
\subsection{ expression 4: $+, -, |$ }
%
expr 4 (>indent, expr>):
   expr 5 (>indent+extra indent, expr 1>),
      expr 4tail (>indent, >expr 1, extra indent>, expr>).

expr 4tail (>indent, >expr 1, extra indent+"   ">, expr>):
   ? !+-|! (ign>),
   add op (op>), ->, expr 5 (>indent+"   ", expr 2>),
      make op node 2 (>indent+extra indent, >op, >expr 1, >expr 2, exprm>),
      expr 4tail (>indent, >exprm, extra indent>, expr>);
expr 4tail (>indent, >expr, "">, expr>):.

add op ("+2">): plus symbol, ->;
add op ("-2">): minus symbol, ? ^!>! (ign>), ->;
add op ("|">): or symbol.

%TEX
\subsection{ expression 5: $*, /$ }
%
expr 5 (>indent, expr>):
   expr 6 (>indent+extra indent, expr 1>),
      expr 5tail (>indent, >expr 1, extra indent>, expr>).

expr 5tail (>indent, >expr 1, extra indent+"   ">, expr>):
   ? !*/DM&! (ign>),
   mult op (op>),  expr 6 (>indent+"   ", expr 2>), ->,
      make op node 2 (>indent+extra indent, >op, >expr 1, >expr 2, exprm>),
      expr 5tail (>indent, >exprm, extra indent>, expr>);
expr 5tail (>indent, >expr, "">, expr>):.

mult op ("*">): times symbol, ->;
mult op ("/">): divides symbol, ->;
mult op ("DIV">): div symbol, ->;
mult op ("MOD">): mod symbol, ->;
mult op ("&">): and symbol.

%TEX
\subsection{ expression 6 }
%
expr 6 (>indent, expr>):
   expr 7 (>indent+extra indent, expr 1>), 
      expr 6tail (>indent, >expr 1, extra indent>, expr>).

expr 6tail (>indent, >expr 1, "   ">, expr>):
   power symbol, ->,
      expr 6 (>indent+"   ", expr 2>),
      make op node 2 (>indent, >"^", >expr 1, >expr 2, expr>);
expr 6tail (>indent, >expr, "">, expr>):.

%TEX
\subsection{ expression 7: monadic operators }
%
expr 7 (>indent, expr>):
   ? !+i-~! (ign>),
   monop (op>), ->, 
      expr 7 (>indent+"    ", expri>),
      make op node 1 (>indent, >op, >expri, expr>);
expr 7 (>indent, expr>):
   expr 8 (>indent, expr>).
