aboutsummaryrefslogtreecommitdiff
path: root/compiler/print.c
diff options
context:
space:
mode:
authorCamil Staps2016-08-25 20:29:50 +0200
committerCamil Staps2016-08-25 20:29:50 +0200
commit821939c6a6eb5761708146783ebd562422c2a7f7 (patch)
treedd26b29c65431801f4ca45d6952b7806534f9c8c /compiler/print.c
parentRemove unnecessary includes (diff)
pedantic
Diffstat (limited to 'compiler/print.c')
-rw-r--r--compiler/print.c102
1 files changed, 0 insertions, 102 deletions
diff --git a/compiler/print.c b/compiler/print.c
deleted file mode 100644
index a71e71f..0000000
--- a/compiler/print.c
+++ /dev/null
@@ -1,102 +0,0 @@
-#include "print.h"
-
-#include <stdio.h>
-
-#include "log.h"
-
-void print_token(token* tk) {
- char c;
- switch (tk->kind) {
- case TOKEN_SEMICOLON: c = ';'; break;
- case TOKEN_COLON: c = ':'; break;
- case TOKEN_OPEN_P: c = '('; break;
- case TOKEN_CLOSE_P: c = ')'; break;
- case TOKEN_OPEN_SQ: c = '['; break;
- case TOKEN_CLOSE_SQ: c = ']'; break;
- case TOKEN_EQUALS: c = '='; break;
- case TOKEN_COMMA: c = ','; break;
- case TOKEN_NAME:
- printf("%s", (char*) tk->var);
- return;
- case TOKEN_INT:
- printf("%d", *((int*) tk->var));
- return;
- }
- printf("%c", c);
-}
-
-void print_token_list(token_list* list) {
- print_token(&list->elem);
- if (list->rest) {
- printf(list->elem.kind == TOKEN_SEMICOLON ? "\n" : " ");
- print_token_list(list->rest);
- }
-}
-
-void print_expression(expression* expr) {
- switch (expr->kind) {
- case EXPR_INT:
- printf("%d", *((int*) expr->var1));
- break;
- case EXPR_NAME:
- printf("%s", (char*) expr->var1);
- break;
- case EXPR_LIST:
- if (!expr->var1) {
- printf("[]");
- } else {
- printf("[");
- print_expression(expr->var1);
- printf(":");
- print_expression(expr->var2);
- printf("]");
- }
- break;
- case EXPR_TUPLE:
- printf("(");
- print_expression(expr->var1);
- printf(",");
- print_expression(expr->var2);
- printf(")");
- break;
- case EXPR_APP:
- if (((expression*) expr->var1)->kind == EXPR_APP)
- printf("(");
- print_expression(expr->var1);
- if (((expression*) expr->var1)->kind == EXPR_APP)
- printf(")");
- printf(" ");
- if (((expression*) expr->var2)->kind == EXPR_APP)
- printf("(");
- print_expression(expr->var2);
- if (((expression*) expr->var2)->kind == EXPR_APP)
- printf(")");
- break;
- }
-}
-
-void print_arg_list(arg_list* args) {
- if (!args)
- return;
-
- print_expression(&args->elem);
- printf(" ");
- if (args->rest)
- print_arg_list(args->rest);
-}
-
-void print_rewrite_rule(rewrite_rule* rule) {
- printf("%s ", rule->name);
- print_arg_list(rule->args);
- printf("= ");
- print_expression(&rule->rhs);
- printf(";");
-}
-
-void print_fuspel(fuspel* rules) {
- print_rewrite_rule(&rules->rule);
- if (rules->rest) {
- printf("\n");
- print_fuspel(rules->rest);
- }
-}