From: Michael D. Lowis Date: Thu, 24 May 2018 01:12:39 +0000 (-0400) Subject: removed unused functions X-Git-Url: https://git.mdlowis.com/?a=commitdiff_plain;h=83d7049b951a59f7ddbe0989f1eeb33000510cc2;p=proto%2Fsclpl.git removed unused functions --- diff --git a/source/ast.c b/source/ast.c index 5299d72..f105c50 100644 --- a/source/ast.c +++ b/source/ast.c @@ -67,7 +67,6 @@ intptr_t integer_value(AST* val) intptr_t temp_value(AST* val) { assert(val != NULL); - assert(val->type == AST_TEMP); return val->value.integer; } @@ -113,117 +112,25 @@ char* ident_value(AST* val) return val->value.text; } -AST* Def(Tok* name, AST* value) +AST* Let(Tok* name, AST* value) { - AST* node = ast(AST_DEF); - node->value.def.name = name->value.text; - node->value.def.value = value; + AST* node = ast(AST_LET); + node->value.let.name = name->value.text; + node->value.let.value = value; return node; } -char* def_name(AST* def) +char* let_name(AST* let) { - assert(def != NULL); - assert(def->type == AST_DEF); - return def->value.def.name; + assert(let != NULL); + assert(let->type == AST_LET); + return let->value.let.name; } -AST* def_value(AST* def) +AST* let_value(AST* let) { - assert(def != NULL); - assert(def->type == AST_DEF); - return def->value.def.value; -} - -AST* IfExpr(void) -{ - return ast(AST_IF); -} - -AST* ifexpr_cond(AST* ifexpr) -{ - return ifexpr->value.ifexpr.cond; -} - -void ifexpr_set_cond(AST* ifexpr, AST* cond) -{ - ifexpr->value.ifexpr.cond = cond; -} - -AST* ifexpr_then(AST* ifexpr) -{ - return ifexpr->value.ifexpr.bthen; -} - -void ifexpr_set_then(AST* ifexpr, AST* bthen) -{ - ifexpr->value.ifexpr.bthen = bthen; -} - -AST* ifexpr_else(AST* ifexpr) -{ - return ifexpr->value.ifexpr.belse; -} - -void ifexpr_set_else(AST* ifexpr, AST* belse) -{ - ifexpr->value.ifexpr.belse = belse; -} - -AST* Func(void) -{ - AST* node = ast(AST_FUNC); - vec_init(&(node->value.func.args)); - node->value.func.body = NULL; - return node; -} - -vec_t* func_args(AST* func) -{ - return &(func->value.func.args); -} - -AST* func_body(AST* func) -{ - return func->value.func.body; -} - -void func_add_arg(AST* func, AST* arg) -{ - vec_push_back(func_args(func), arg); -} - -void func_set_body(AST* func, AST* body) -{ - func->value.func.body = body; -} - -AST* FnApp(AST* fnapp) -{ - AST* node = ast(AST_FNAPP); - node->value.fnapp.fn = fnapp; - vec_init(&(node->value.fnapp.args)); - return node; -} - -void fnapp_set_fn(AST* fnapp, AST* fn) -{ - AST* old = fnapp->value.fnapp.fn; - fnapp->value.fnapp.fn = fn; -} - -AST* fnapp_fn(AST* fnapp) -{ - return fnapp->value.fnapp.fn; -} - -vec_t* fnapp_args(AST* fnapp) -{ - return &(fnapp->value.fnapp.args); -} - -void fnapp_add_arg(AST* fnapp, AST* arg) -{ - vec_push_back(&(fnapp->value.fnapp.args), arg); + assert(let != NULL); + assert(let->type == AST_LET); + return let->value.let.value; } diff --git a/source/parser.c b/source/parser.c index ab0f2df..3711410 100644 --- a/source/parser.c +++ b/source/parser.c @@ -84,7 +84,7 @@ static AST* const_definition(Parser* p) { expr = const_expression(p); expect(p, T_END); // } - return Def(id, expr); + return Let(id, expr); } static AST* const_expression(Parser* p) { @@ -154,6 +154,25 @@ static AST* identifier(Parser* p) { } } + + + + + + + + + + + + + + + + + + + #if 0 static AST* definition(Parser* p) { diff --git a/source/pprint.c b/source/pprint.c index 7a273c6..0140b4a 100644 --- a/source/pprint.c +++ b/source/pprint.c @@ -1,9 +1,3 @@ -/** - @file prettyprint.c - @brief See header for details - $Revision$ - $HeadURL$ - */ #include static void print_indent(FILE* file, int depth) { @@ -95,7 +89,6 @@ static const char* tree_type_to_string(ASTType type) { case AST_INT: return "T_INT"; case AST_FLOAT: return "T_FLOAT"; case AST_BOOL: return "T_BOOL"; - case AST_TEMP: return "$"; default: return "???"; } } @@ -110,7 +103,6 @@ static void pprint_literal(FILE* file, AST* tree, int depth) case AST_CHAR: printf("%c", char_value(tree)); break; case AST_INT: printf("%ld", integer_value(tree)); break; case AST_FLOAT: printf("%lf", float_value(tree)); break; - case AST_TEMP: printf("%ld", temp_value(tree)); break; case AST_BOOL: printf("%s", bool_value(tree) ? "true" : "false"); break; @@ -125,54 +117,9 @@ void pprint_tree(FILE* file, AST* tree, int depth) } print_indent(file, depth); switch (tree->type) { - case AST_REQ: - printf("(require \"%s\")", require_name(tree)); - break; - - case AST_DEF: - printf("(let %s ", def_name(tree)); - pprint_tree(file, def_value(tree), depth); - printf(")"); - break; - - case AST_IF: - printf("(if "); - pprint_tree(file, ifexpr_cond(tree), depth); - printf(" "); - pprint_tree(file, ifexpr_then(tree), depth); - printf(" "); - pprint_tree(file, ifexpr_else(tree), depth); - printf(")"); - break; - - case AST_FUNC: - printf("(fn ("); - for (size_t i = 0; i < vec_size(func_args(tree)); i++) { - printf(" "); - pprint_literal(file, vec_at(func_args(tree), i), depth); - } - printf(")"); - pprint_tree(file, func_body(tree), depth); - printf(")"); - break; - - case AST_FNAPP: - printf("("); - pprint_tree(file, fnapp_fn(tree), depth); - for (size_t i = 0; i < vec_size(fnapp_args(tree)); i++) { - printf(" "); - pprint_tree(file, vec_at(fnapp_args(tree), i), depth); - } - printf(")"); - break; - case AST_LET: - printf("(let ("); - pprint_tree(file, let_var(tree), depth); - printf(" "); - pprint_tree(file, let_val(tree), depth); - printf(") "); - pprint_tree(file, let_body(tree), depth); + printf("(let %s ", let_name(tree)); + pprint_tree(file, let_value(tree), depth); printf(")"); break; diff --git a/source/sclpl.h b/source/sclpl.h index b0eee89..c72b9fb 100644 --- a/source/sclpl.h +++ b/source/sclpl.h @@ -62,8 +62,7 @@ typedef struct { /* AST Types *****************************************************************************/ typedef enum { - AST_STRING, AST_SYMBOL, AST_CHAR, AST_INT, AST_FLOAT, AST_BOOL, AST_IDENT, - AST_DEF, AST_IF, AST_FUNC, AST_FNAPP + AST_LET, AST_STRING, AST_SYMBOL, AST_CHAR, AST_INT, AST_FLOAT, AST_BOOL, AST_IDENT } ASTType; typedef struct AST { @@ -74,23 +73,7 @@ typedef struct AST { char* name; struct AST* type; struct AST* value; - } def; - /* If Expression */ - struct { - struct AST* cond; - struct AST* bthen; - struct AST* belse; - } ifexpr; - /* Function */ - struct { - vec_t args; - struct AST* body; - } func; - /* Function Application */ - struct { - struct AST* fn; - vec_t args; - } fnapp; + } let; /* String, Symbol, Identifier */ char* text; /* Character */ @@ -133,32 +116,9 @@ AST* Ident(Tok* val); char* ident_value(AST* val); /* Definition */ -AST* Def(Tok* name, AST* value); -char* def_name(AST* def); -AST* def_value(AST* def); - -/* If Expression */ -AST* IfExpr(void); -AST* ifexpr_cond(AST* ifexpr); -void ifexpr_set_cond(AST* ifexpr, AST* cond); -AST* ifexpr_then(AST* ifexpr); -void ifexpr_set_then(AST* ifexpr, AST* bthen); -AST* ifexpr_else(AST* ifexpr); -void ifexpr_set_else(AST* ifexpr, AST* belse); - -/* Function */ -AST* Func(void); -vec_t* func_args(AST* func); -AST* func_body(AST* func); -void func_add_arg(AST* func, AST* arg); -void func_set_body(AST* func, AST* body); - -/* Function Application */ -AST* FnApp(AST* fn); -AST* fnapp_fn(AST* fnapp); -void fnapp_set_fn(AST* fnapp, AST* fn); -vec_t* fnapp_args(AST* fnapp); -void fnapp_add_arg(AST* func, AST* arg); +AST* Let(Tok* name, AST* value); +char* let_name(AST* let); +AST* let_value(AST* let); /* Pretty Printing *****************************************************************************/