]> git.xonotic.org Git - xonotic/gmqcc.git/blobdiff - ast.h
Update doc/specification.tex
[xonotic/gmqcc.git] / ast.h
diff --git a/ast.h b/ast.h
index b93de575c19e03c4e9d8e4560e63a27e571d43bf..94f388e596a36ee395788a29585799d83a49546d 100644 (file)
--- a/ast.h
+++ b/ast.h
@@ -150,7 +150,7 @@ typedef struct
 #define AST_FLAG_INITIALIZED  (1<<3)
 #define AST_FLAG_DEPRECATED   (1<<4)
 #define AST_FLAG_INCLUDE_DEF  (1<<5)
-#define AST_FLAG_VARARG_COUNT (1<<6)
+#define AST_FLAG_IS_VARARG    (1<<6)
 #define AST_FLAG_TYPE_MASK (AST_FLAG_VARIADIC | AST_FLAG_NORETURN)
 
 /* Value
@@ -167,6 +167,8 @@ struct ast_value_s
     const char *name;
     const char *desc;
 
+    const char *argcounter;
+
     /*
     int         vtype;
     ast_value  *next;
@@ -574,6 +576,7 @@ struct ast_call_s
     ast_expression_common expression;
     ast_expression *func;
     ast_expression* *params;
+    ast_expression *va_count;
 };
 ast_call* ast_call_new(lex_ctx ctx,
                        ast_expression *funcexpr);
@@ -642,6 +645,10 @@ struct ast_function_s
     char         labelbuf[64];
 
     ast_block* *blocks;
+
+    ast_value   *varargs;
+    ast_value   *argc;
+    ast_value   *fixedparams;
 };
 ast_function* ast_function_new(lex_ctx ctx, const char *name, ast_value *vtype);
 /* This will NOT delete the underlying ast_value */