/** * Extension to the Fun language making the functions defined in * typesafe.l available. * * @author Jacob Andersen */ (| { Prim.null : "#null" ; FacParen.isnull : "null?" _ "(" _ LetExp _ ")" ; FacParen.isint : "integer?" _ "(" _ LetExp _ ")" ; FacParen.isbool : "boolean?" _ "(" _ LetExp _ ")" ; FacParen.ispair : "pair?" _ "(" _ LetExp _ ")" ; FacParen.isproc : "procedure?" _ "(" _ LetExp _ ")" ; FacNoPar.isnull : "null?" __ Prim ; FacNoPar.isint : "integer?" __ Prim ; FacNoPar.isbool : "boolean?" __ Prim ; FacNoPar.ispair : "pair?" __ Prim ; FacNoPar.isproc : "procedure?" __ Prim ; } -> "typesafe.l" [ FacParen -> Exp, FacNoPar -> Exp, LetExp -> Exp, Prim -> Exp ] Prim.null = Exp.null() ; FacParen.isnull = Exp.isnull($3) ; FacParen.isint = Exp.isint($3) ; FacParen.isbool = Exp.isbool($3) ; FacParen.ispair = Exp.ispair($3) ; FacParen.isproc = Exp.isproc($3) ; FacNoPar.isnull = Exp.isnull($2) ; FacNoPar.isint = Exp.isint($2) ; FacNoPar.isbool = Exp.isbool($2) ; FacNoPar.ispair = Exp.ispair($2) ; FacNoPar.isproc = Exp.isproc($2) ; |)