repositories
/
lambda.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
09ae4fb
)
change eval order
author
Mart Lubbers
<mart@martlubbers.net>
Wed, 23 May 2018 10:10:37 +0000
(12:10 +0200)
committer
Mart Lubbers
<mart@martlubbers.net>
Wed, 23 May 2018 10:10:37 +0000
(12:10 +0200)
lambda.y
patch
|
blob
|
history
print.c
patch
|
blob
|
history
diff --git
a/lambda.y
b/lambda.y
index
9cde7e1
..
cb14118
100644
(file)
--- a/
lambda.y
+++ b/
lambda.y
@@
-117,7
+117,6
@@
struct lambda *decls_lookup(char *ident)
int main()
{
int main()
{
- setbuf(stdout, NULL);
int r = yyparse();
yylex_destroy();
return r;
int r = yyparse();
yylex_destroy();
return r;
@@
-146,7
+145,7
@@
lambda
struct lambda *t = $1;
printf(" ");
for(unsigned int i = 0; i<999; i++)
struct lambda *t = $1;
printf(" ");
for(unsigned int i = 0; i<999; i++)
- if(!lambda_reduce(&t, &t,
tru
e))
+ if(!lambda_reduce(&t, &t,
fals
e))
break;
lambda_print(t, NULL);
putchar('\n');
break;
lambda_print(t, NULL);
putchar('\n');
diff --git
a/print.c
b/print.c
index
c7503b8
..
f093ff5
100644
(file)
--- a/
print.c
+++ b/
print.c
@@
-14,7
+14,6
@@
void term_print(struct lambda *t, struct lambda *mark)
putchar('|');
switch(t->which){
case lambda_ident:
putchar('|');
switch(t->which){
case lambda_ident:
-// printf("%s(%p)", t->data.identifier.ident, (void *)t->data.identifier.binding);
printf("%s", t->data.identifier.ident);
break;
case lambda_abs:
printf("%s", t->data.identifier.ident);
break;
case lambda_abs:
@@
-28,19
+27,12
@@
void term_print(struct lambda *t, struct lambda *mark)
term_print(t, mark);
break;
case lambda_app:
term_print(t, mark);
break;
case lambda_app:
- if(t->data.application.expr1->which == lambda_abs)
- putchar('(');
+ putchar('(');
term_print(t->data.application.expr1, mark);
if(t->data.application.expr1->which == lambda_abs)
term_print(t->data.application.expr1, mark);
if(t->data.application.expr1->which == lambda_abs)
- putchar(')');
-
- putchar(' ');
-
- if(t->data.application.expr2->which == lambda_app)
- putchar('(');
+ printf(") (");
term_print(t->data.application.expr2, mark);
term_print(t->data.application.expr2, mark);
- if(t->data.application.expr2->which == lambda_app)
- putchar(')');
+ putchar(')');
break;
}
if(t == mark)
break;
}
if(t == mark)