add alpha renaming
[lambda.git] / print.c
diff --git a/print.c b/print.c
index fb209f4..afaac01 100644 (file)
--- a/print.c
+++ b/print.c
@@ -1,15 +1,27 @@
 #include <stdio.h>
 #include "lambda.h"
 
+void print_apos(unsigned int revision)
+{
+       if(revision == 1)
+               printf("\'");
+       if(revision > 2){
+               printf("\"");
+               print_apos(revision - 2);
+       }
+}
+
 void term_print(struct lambda *t)
 {
        switch(t->which){
        case lambda_ident:
-               printf("%s", t->data.identifier);
+               printf("%s", t->data.identifier.ident);
+               print_apos(t->data.identifier.revision);
                break;
        case lambda_abs:
                printf("(λ");
                printf("%s", t->data.abstraction.ident);
+               print_apos(t->data.abstraction.revision);
                putchar('.');
                term_print(t->data.abstraction.expr);
                putchar(')');