Author: mesyeti <mesyeti@mesyeti.uk>
fix bug
basic/source/frontend/c89.c | 8 +++++++- basic/source/parser.c | 8 +++++++-
diff --git a/basic/source/frontend/c89.c b/basic/source/frontend/c89.c index 8a88fe5c2d03d09db7aec0a358f2f3d18013d88e..fb57b83b093a8ee2c84562b6ade60f08b24286c4 100644 --- a/basic/source/frontend/c89.c +++ b/basic/source/frontend/c89.c @@ -112,6 +112,8 @@ fprintf(out, ")"); } static void CompileExprNode(Node* node) { + assert(node); + switch (node->i.type) { case NODE_INT: fprintf(out, "%d", node->integer.value); break; case NODE_STRING: fprintf(out, "\"%s\"", node->string.value); break; @@ -166,7 +168,10 @@ CompileExprNode(node->unary.operand); fprintf(out, ")"); break; } - case NODE_FUNC_CALL: CompileFuncCallExpr(&node->bin.right->funcCall); break; + case NODE_FUNC_CALL: { + CompileFuncCallExpr(&node->funcCall); + break; + } default: assert(0); } } @@ -296,6 +301,7 @@ switch (type->type) { case TYPE_PRIM: CompilePrim(type); break; case TYPE_UNIT: break; case TYPE_STRUCT: CompileStruct(type); break; + case TYPE_FUNC: break; default: assert(0); } } diff --git a/basic/source/parser.c b/basic/source/parser.c index b0c758165c06d351f4e31a0c0f9a51cefb78376b..6f2750e3c2bb090b3e1cb9887cf3957f318fbcac 100644 --- a/basic/source/parser.c +++ b/basic/source/parser.c @@ -811,7 +811,7 @@ case TOKEN_LESS: printf("<"); break; case TOKEN_GREATER: printf(">"); break; case TOKEN_ASSIGN: printf("="); break; case TOKEN_DOT: printf("."); break; - case TOKEN_LPAREN: printf(""); break; + case TOKEN_LPAREN: break; default: assert(0); } @@ -941,6 +941,12 @@ break; } case NODE_IMPORT: { printf("import %s\n", node->import.name); + break; + } + case NODE_RETURN: { + printf("return "); + Parser_PrintNode(node->ret.node); + puts(""); break; } case NODE_ARRAY: {