diff options
Diffstat (limited to 'examples/godis-tram/Common/Prolog.gf')
| -rw-r--r-- | examples/godis-tram/Common/Prolog.gf | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/examples/godis-tram/Common/Prolog.gf b/examples/godis-tram/Common/Prolog.gf deleted file mode 100644 index 461ed470e..000000000 --- a/examples/godis-tram/Common/Prolog.gf +++ /dev/null @@ -1,60 +0,0 @@ -resource Prolog = { - -oper - -PStr : Type = {s : Str}; -PPStr : Type = PStr -> PStr; -PPPStr : Type = PStr -> PStr -> PStr; -PPPPStr : Type = PStr -> PStr -> PStr -> PStr; -PPPPPStr : Type = PStr -> PStr -> PStr -> PStr -> PStr; -PPPPPPStr : Type = PStr -> PStr -> PStr -> PStr -> PStr -> PStr; -PPPPPPPStr : Type = PStr -> PStr -> PStr -> PStr -> PStr -> PStr -> PStr; - -pStr : Str -> PStr = \str -> {s = str}; -pOper : Str -> PPPStr = \f,x,y -> pStr (x.s ++ f ++ y.s); -pPrefix : Str -> PPStr = \f,x -> pStr (f ++ x.s); -pPostfix : Str -> PPStr = \f,x -> pStr (x.s ++ f); -pEmbed : Str -> Str -> PPStr = \f,g,x -> pStr (f ++ x.s ++ g); -pParen : PPStr = pEmbed "(" ")"; -pBrackets: PPStr = pEmbed "[" "]"; - -pAtom : PPStr = \x -> pStr ("'" + x.s + "'"); -pQuote : PPStr = pEmbed "'" "'"; -pDQuote : PPStr = pEmbed "\"" "\""; - -pNil : PStr = pStr "''"; -pEmpty : PStr = pStr []; - -pp0 : Str -> PStr = pStr; -pp1 : Str -> PPStr = \pred,arg -> pPrefix pred (pParen arg); -pp2 : Str -> PPPStr = \pred,arg1,arg2 -> pp1 pred (pSeq arg1 arg2); -pp3 : Str -> PPPPStr = \pred,arg1,arg2 -> pp2 pred (pSeq arg1 arg2); -pp4 : Str -> PPPPPStr = \pred,arg1,arg2 -> pp3 pred (pSeq arg1 arg2); -pp5 : Str -> PPPPPPStr = \pred,arg1,arg2 -> pp4 pred (pSeq arg1 arg2); -pp6 : Str -> PPPPPPPStr = \pred,arg1,arg2 -> pp5 pred (pSeq arg1 arg2); - -pList0 : PStr = pBrackets pEmpty; -pList1 : PPStr = \x -> pBrackets x; -pList2 : PPPStr = \x,y -> pList1 (pSeq x y); -pList3 : PPPPStr = \x,y -> pList2 (pSeq x y); -pList4 : PPPPPStr = \x,y -> pList3 (pSeq x y); -pList5 : PPPPPPStr = \x,y -> pList4 (pSeq x y); -pList6 : PPPPPPPStr = \x,y -> pList5 (pSeq x y); - -pSeq : PPPStr = pOper ","; - -pConcat : PPPStr = \x,y -> pStr (x.s ++ y.s); - --- the following operations are Godis-specific - -pWhQ : Str -> PStr = \pred -> pOper "^" pVar (pp1 pred pVar); -pVar : PStr = pStr "X"; - -pm1 : PPStr = \x -> x; -pm2 : PPPStr = \x,y -> pm1 (pSeq x y); -pm3 : PPPPStr = \x,y -> pm2 (pSeq x y); -pm4 : PPPPPStr = \x,y -> pm3 (pSeq x y); -pm5 : PPPPPPStr = \x,y -> pm4 (pSeq x y); -pm6 : PPPPPPPStr = \x,y -> pm5 (pSeq x y); - -} |
