This commit is contained in:
aarne
2007-09-04 14:15:43 +00:00
parent e9985271e2
commit 713fb9122c

View File

@@ -0,0 +1,27 @@
--# -path=.:prelude
concrete CalculatorP of Calculator = open Prelude in {
flags lexer=codevars ; unlexer=code ;
lincat
Prog, Var = SS ;
Exp = SS ;
lin
PEmpty = ss [] ;
PDecl exp prog = ss ("int" ++ prog.$0 ++ "=" ++ exp.s ++ ";" ++ prog.s) ;
PAss vr exp prog = ss (vr.s ++ "=" ++ exp.s ++ ";" ++ prog.s) ;
EPlus = infix "+" ;
EMinus = infix "-" ;
ETimes = infix "*" ;
EDiv = infix "/" ;
EInt i = i ;
EVar x = x ;
oper
infix : Str -> SS -> SS -> SS = \f,x,y ->
ss ("(" ++ x.s ++ f ++ y.s ++ ")") ;
}