X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=gmqcc.h;h=d8ad37465ef0525ea2298a9eb484f7a6e9220f04;hb=48211572e529c37fb2be9ac05c7e810e690757f3;hp=5ac193533538bc9c0805e1c754cb268e360f138b;hpb=454234ef5f1a9d3aed01985f99fa6f26cc280d4c;p=xonotic%2Fgmqcc.git diff --git a/gmqcc.h b/gmqcc.h index 5ac1935..d8ad374 100644 --- a/gmqcc.h +++ b/gmqcc.h @@ -332,7 +332,6 @@ void *stat_mem_allocate (size_t, size_t, const char *); bool util_filexists (const char *); bool util_strupper (const char *); bool util_strdigit (const char *); -void util_debug (const char *, const char *, ...); void util_endianswap (void *, size_t, unsigned int); size_t util_strtocmd (const char *, char *, size_t); @@ -726,7 +725,8 @@ enum { VINSTR_BITOR_VF, VINSTR_BITXOR, VINSTR_BITXOR_V, - VINSTR_BITXOR_VF /* BITXOR_VF must be the last emulated bitop */ + VINSTR_BITXOR_VF, + VINSTR_CROSS }; /* TODO: elide */ @@ -740,6 +740,7 @@ typedef uint32_t qcuint_t; typedef struct { prog_section_statement_t *statements; int *linenums; + int *columnnums; prog_section_def_t *defs; prog_section_field_t *fields; prog_section_function_t *functions; @@ -751,6 +752,16 @@ typedef struct { qcint_t string_cached_empty; } code_t; +/* + * A shallow copy of a lex_file to remember where which ast node + * came from. + */ +typedef struct { + const char *file; + size_t line; + size_t column; +} lex_ctx_t; + /* * code_write -- writes out the compiled file * code_init -- prepares the code file @@ -765,18 +776,9 @@ code_t *code_init (void); void code_cleanup (code_t *); uint32_t code_genstring (code_t *, const char *string); qcint_t code_alloc_field (code_t *, size_t qcsize); -void code_push_statement(code_t *, prog_section_statement_t *stmt, int linenum); +void code_push_statement(code_t *, prog_section_statement_t *stmt, lex_ctx_t ctx); void code_pop_statement (code_t *); -/* - * A shallow copy of a lex_file to remember where which ast node - * came from. - */ -typedef struct { - const char *file; - size_t line; - size_t column; -} lex_ctx_t; /*===================================================================*/ /*============================ con.c ================================*/