4 #define PRINT_ABS(t) {\
5 if(t->data.abstraction.strict)\
7 printf("%s", t->data.abstraction.ident);\
8 print_apos(t->data.abstraction.revision);\
12 void print_apos(unsigned int revision
)
18 print_apos(revision
- 2);
22 void term_print(struct lambda
*t
, struct lambda
*mark
)
28 printf("%s", t
->data
.identifier
.ident
);
29 print_apos(t
->data
.identifier
.revision
);
34 while((t
= t
->data
.abstraction
.expr
)->which
== lambda_abs
){
42 if(t
->data
.application
.expr1
->which
== lambda_abs
)
44 term_print(t
->data
.application
.expr1
, mark
);
45 if(t
->data
.application
.expr1
->which
== lambda_abs
)
50 if(t
->data
.application
.expr2
->which
== lambda_app
)
52 term_print(t
->data
.application
.expr2
, mark
);
53 if(t
->data
.application
.expr2
->which
== lambda_app
)
61 void lambda_print(struct lambda
*t
, struct lambda
*mark
)