summaryrefslogtreecommitdiff
path: root/examples/gfcc/Imper.gf
diff options
context:
space:
mode:
authoraarne <unknown>2004-09-22 20:42:21 +0000
committeraarne <unknown>2004-09-22 20:42:21 +0000
commitd5b4230d6dbee8c03eedf8d181dfa2badf1a954b (patch)
treeb2d8fd926161d4d904fbf42aa25261ac90691e40 /examples/gfcc/Imper.gf
parenta0116fd288640a47166b5104b46d9b6fa510a563 (diff)
making parsing ImperC work
Diffstat (limited to 'examples/gfcc/Imper.gf')
-rw-r--r--examples/gfcc/Imper.gf12
1 files changed, 7 insertions, 5 deletions
diff --git a/examples/gfcc/Imper.gf b/examples/gfcc/Imper.gf
index 31ca82f75..28ac3d4bd 100644
--- a/examples/gfcc/Imper.gf
+++ b/examples/gfcc/Imper.gf
@@ -2,6 +2,7 @@ abstract Imper = PredefAbs ** {
cat
Program ;
+ Rec ListTyp ;
Typ ;
NumTyp ;
ListTyp ;
@@ -15,12 +16,13 @@ abstract Imper = PredefAbs ** {
fun
Empty : Program ;
Funct : (AS : ListTyp) -> (V : Typ) ->
- Body AS -> (Fun AS V -> Program) -> Program ;
+ (Fun AS V -> Rec AS) -> Program ;
+ FunctNil : (V : Typ) ->
+ Stm -> (Fun NilTyp V -> Program) -> Program ;
- BodyNil : Stm -> Body NilTyp ;
- BodyOne : (A : Typ) -> (Var A -> Stm) -> Body (ConsTyp A NilTyp) ;
- BodyCons : (A : Typ) -> (AS : ListTyp) ->
- (Var A -> Body AS) -> Body (ConsTyp A AS) ;
+ RecOne : (A : Typ) -> (Var A -> Stm) -> Program -> Rec (ConsTyp A NilTyp) ;
+ RecCons : (A : Typ) -> (AS : ListTyp) ->
+ (Var A -> Rec AS) -> Program -> Rec (ConsTyp A AS) ;
Decl : (A : Typ) -> (Var A -> Stm) -> Stm ;
Assign : (A : Typ) -> Var A -> Exp A -> Stm -> Stm ;