summaryrefslogtreecommitdiff
path: root/gf-book/examples/chapter8/CalculatorP.gf
blob: 4e63158276792bfa36101a38d173d57ee0e8a45a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
concrete CalculatorP of Calculator = open Prelude in {

lincat 
  Exp = SS ;
lin
  EPlus  = infix "+" ;
  EMinus = infix "-" ;
  ETimes = infix "*" ;
  EDiv   = infix "/" ;
  EInt i = i ;
oper
  infix : Str -> SS -> SS -> SS = \f,x,y -> 
    ss ("(" ++ x.s ++ f ++ y.s ++ ")") ;
}