nitron

commit b8768c2fb7a2a3839605f09bb9bdd458da8bbeb0

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: {