]> git.xonotic.org Git - xonotic/gmqcc.git/commitdiff
Testing CALLs in test-ast
authorWolfgang Bumiller <wolfgang.linux@bumiller.com>
Wed, 4 Jul 2012 13:05:16 +0000 (15:05 +0200)
committerWolfgang Bumiller <wolfgang.linux@bumiller.com>
Wed, 4 Jul 2012 13:05:16 +0000 (15:05 +0200)
test/ast-macros.h
test/ast-test.c

index 8c6d6c62c3243c1c5408811941f9782dde4dcc25..5b92a388c41a231975f61e028d0ce587093f02bc 100644 (file)
@@ -47,6 +47,17 @@ do {                                             \
 #define BIN(op, a, b) \
 (ast_expression*)ast_binary_new(ctx, INSTR_##op, (ast_expression*)(a), (ast_expression*)(b))
 
+#define CALL(what)                                             \
+do {                                                           \
+    ast_call *call = ast_call_new(ctx, (ast_expression*)what); \
+
+#define CALLPARAM(x)                                       \
+    assert(ast_call_params_add(call, (ast_expression*)x));
+
+#define ENDCALL()                                \
+    STATE(call);                                 \
+} while(0)
+
 #define WHILE(cond)                                    \
 do {                                                   \
     ast_expression *wh_cond = (ast_expression*)(cond); \
index e0cf69d6795a506b9ac68c7373bf3cf617751282..c57e43644f66685b5c7343b9c52a94b447044ff5 100644 (file)
@@ -63,6 +63,10 @@ FUNCTION(main, TYPE_VOID);
         STATE(ASSIGN(STORE_F, vi, BIN(ADD_F, vi, f1)));
     ENDWHILE();
 
+    CALL(print)
+    CALLPARAM(sHello)
+    ENDCALL();
+
 ENDFUNCTION(main);
 
     ir = ir_builder_new("ast_test");