#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(')');