1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
%include poly.fmt
%format ^ = " "
%format ^^ = "\;"
%format ATTR = "\mathbf{ATTR}"
%format SEM = "\mathbf{SEM}"
%format lhs = "\mathbf{lhs}"
%format . = "."
%format * = "\times"
%format (A(n)(f)) = @ n . f
\begin{code}
ATTR Expr Factor [ ^^ | ^^ | numvars : Int ]
ATTR Expr Factor [ ^^ | ^^ | value : Int ]
SEM Expr
| Sum
lhs . value = A left value + A right value
. numvars = A left numvars + A right numvars
SEM Factor
| Prod
lhs . value = A left value * A right value
. numvars = A left numvars + A right numvars
\end{code}
|