add alpha renaming
[lambda.git] / lambda.y
index f62de05..b49dbb2 100644 (file)
--- a/lambda.y
+++ b/lambda.y
@@ -28,7 +28,8 @@ struct lambda *make_ident(char *i)
 {
        struct lambda *r = make_lambda();
        r->which = lambda_ident;
-       r->data.identifier = strdup(i);
+       r->data.identifier.ident = strdup(i);
+       r->data.identifier.revision = 0;
        return r;
 }
 
@@ -84,7 +85,7 @@ lambda
                { result = $$; }
 decl
        : FUNC ASSIGN term SEMICOLON
-               { decls_prepend($1->data.identifier, $3); }
+               { decls_prepend($1->data.identifier.ident, $3); }
 term
        : term appterm
                { $$ = make_application($1, $2); }
@@ -93,12 +94,12 @@ term
 appterm
        : FUNC
                {
-                       $$ = decls_lookup($1->data.identifier);
+                       $$ = decls_lookup($1->data.identifier.ident);
                        lambda_free($1);
                }
        | IDENT
                {
-                       $$ = make_ident($1->data.identifier);
+                       $$ = make_ident($1->data.identifier.ident);
                        lambda_free($1);
                }
        | LAMBDA abstraction
@@ -108,7 +109,7 @@ appterm
 abstraction
        : IDENT abstraction
                {
-                       $$ = make_abstraction($1->data.identifier, $2);
+                       $$ = make_abstraction($1->data.identifier.ident, $2);
                        lambda_free($1);
                }
        | DOT term