Wolfgang Bumiller
|
2c59385633
|
fixing double-free in initialzied string arrays, using them in the testcase
|
2013-06-12 15:53:07 +02:00 |
|
Wolfgang Bumiller
|
8ce331b563
|
allow array size to be inferred from the initializer
|
2013-06-12 15:47:11 +02:00 |
|
Wolfgang Bumiller
|
633d2ba8a4
|
make the ast use the initlist
|
2013-06-12 14:36:59 +02:00 |
|
Wolfgang Bumiller
|
7a36a8bdd8
|
parsing array initializers
|
2013-06-12 14:32:12 +02:00 |
|
Dale Weiler
|
11179a2a71
|
Major header reworking, this respects the namespaces properly. Makes object dependency more obvious, allows for better make caches, and prevents misuse of library features, i.e use con_* instead of printf.
|
2013-06-04 02:47:07 +00:00 |
|
Wolfgang Bumiller
|
b2348e1de0
|
remove the ast tree earlier - saves over 3% peak memory usage
|
2013-06-02 12:35:53 +02:00 |
|
Wolfgang Bumiller
|
d85e86141c
|
fix a leak on a parse-error
|
2013-06-01 23:36:05 +02:00 |
|
Dale Weiler
|
062180e9a8
|
Fix some possible memleaks.
|
2013-06-01 20:18:53 +00:00 |
|
Wolfgang Bumiller
|
9f2b9e1b46
|
Merge branch 'master' into cooking
|
2013-06-01 20:12:27 +02:00 |
|
Wolfgang Bumiller
|
ff63e5bd73
|
fix the INCLUDE_DEF flag getting applied regardless of dotranslate...
|
2013-06-01 20:12:14 +02:00 |
|
Wolfgang Bumiller
|
1dce501b70
|
Merge branch 'master' into cooking
|
2013-06-01 18:16:56 +02:00 |
|
Wolfgang Bumiller
|
ed585f8c04
|
fix: dotranslate now sets AST_FLAG_INCLUDE_DEF to not get removed by -Ostrip-constant-names
|
2013-06-01 18:16:50 +02:00 |
|
Wolfgang Bumiller
|
5aba29006b
|
return assignment factorial test
|
2013-05-29 16:58:18 +02:00 |
|
Wolfgang Bumiller
|
9167de1631
|
fixing that comment...
|
2013-05-29 16:56:39 +02:00 |
|
Wolfgang Bumiller
|
afdc0c9dc8
|
assignable return value now lives in ast_function, as globals can get overwritten randomly; removed parser_find_retval; updated parse_return
|
2013-05-29 16:51:59 +02:00 |
|
Dale Weiler
|
6d6a2efada
|
Experimental support for implicit return assignments. This closes #107. To enable return assignment support use -freturn-assignments. This allows you to do the following in QC code. T name() { return = expr_eval_T; return; /* returns expr_eval_T */ }. It allows for concise code and to rid locals in functions. It also saves a tremendous amount of space since only types of certian globals need to be allocated for returns.
|
2013-05-29 11:13:42 +00:00 |
|
Dale Weiler
|
2923b718e1
|
Merge branch 'union-replacement' into cooking
Conflicts:
ast.c
|
2013-05-29 03:43:49 +00:00 |
|
Dale Weiler
|
d45956f55e
|
Fix that memory leak that I spent hours trying to find months ago and didn't succeed at.
|
2013-05-29 03:35:51 +00:00 |
|
Dale Weiler
|
f892b32335
|
Major export cleanup. Anything that was exported but wasn't used outside where it was implemented has been turned into static, and their exports have been removed. This actually makes the compiler compile slightly faster.
|
2013-05-29 03:29:04 +00:00 |
|
Dale Weiler
|
e02ebfe486
|
Result of shift operation on signed integers is bad.
|
2013-05-29 02:24:12 +00:00 |
|
Wolfgang Bumiller
|
d70b571769
|
killing the union types
|
2013-05-11 22:34:01 +02:00 |
|
Wolfgang Bumiller
|
a0fa90ddd5
|
less confusing
|
2013-05-07 20:35:20 +02:00 |
|
Wolfgang Bumiller
|
802005f571
|
be more strict here
|
2013-05-07 20:13:19 +02:00 |
|
Wolfgang Bumiller
|
c5225b2fa1
|
fixing a few leaks - code_write doesn't delete the code object anymore, code_cleanup has to be called
|
2013-05-07 19:56:41 +02:00 |
|
Wolfgang Bumiller
|
8c8ae71d65
|
changing a few ast_delete to ast_unref in places where the to-be-deleted maybe coming from some other place
|
2013-05-07 19:39:10 +02:00 |
|
Wolfgang Bumiller
|
9f8bee4bf1
|
ast_value now has an initializer list array, still unused but it's there for later
|
2013-04-26 10:47:55 +02:00 |
|
Wolfgang Bumiller
|
b3e9ef3ad9
|
an = before an { is also always required when the declared variable is not a function; adding because of planned array initializers
|
2013-04-26 10:31:38 +02:00 |
|
Wolfgang Bumiller
|
d4f8e4a0dd
|
solve it, not hide it
|
2013-04-25 19:18:50 +02:00 |
|
Wolfgang Bumiller
|
35692c0b57
|
Revert "Just fucking initialize everything"
This reverts commit aed2b1031c .
|
2013-04-25 19:18:11 +02:00 |
|
Dale Weiler
|
aed2b1031c
|
Just fucking initialize everything
|
2013-04-25 17:11:15 +00:00 |
|
Dale Weiler
|
68ca2c4962
|
Pushing the -fexpressions-for-builtins stuff and the modff for catching fractional-part builtin numbers.
|
2013-04-25 17:08:02 +00:00 |
|
Wolfgang Bumiller
|
ce73074d51
|
this allows builtin numbers to be constant expressions, not just constants
|
2013-04-25 18:47:54 +02:00 |
|
Dale Weiler
|
9fee84f250
|
less globals
|
2013-04-25 12:08:13 +00:00 |
|
Dale Weiler
|
785ab7c072
|
No more globals for codegen
|
2013-04-25 09:35:30 +00:00 |
|
Wolfgang Bumiller
|
3a4aba0b31
|
Grrrr
|
2013-04-24 17:47:42 +02:00 |
|
Wolfgang Bumiller
|
66305c676a
|
Allow string concatenation in the parser as well, for now only for immediate strings and __FUNC__, maybe later -fpermissive or somethign could allow it on const-delcared string variables
|
2013-04-24 17:27:04 +02:00 |
|
Wolfgang Bumiller
|
dcd65f18f8
|
recognize the simple case of __FUNC__ in the parser
|
2013-04-24 11:21:10 +02:00 |
|
Dale Weiler
|
8bee9a6819
|
fix the intrinsic fail
|
2013-04-24 09:18:24 +00:00 |
|
Dale Weiler
|
dc8523c650
|
Merge branch 'master' into cooking
|
2013-04-24 01:46:53 +00:00 |
|
Dale Weiler
|
489ad486bc
|
Get it compiling in visual studio again.
|
2013-04-24 01:43:53 +00:00 |
|
Dale Weiler
|
10738da2fb
|
Make it compile as C++ code too
|
2013-04-23 22:50:47 +00:00 |
|
Wolfgang Bumiller
|
f6d554874b
|
initialize the vector member array so that 'cleanup' won't delete uninitialized pointers
|
2013-04-23 16:54:05 +02:00 |
|
Dale Weiler
|
160e7cf7ee
|
Remove trailing whitespace
|
2013-04-21 10:24:55 +00:00 |
|
Wolfgang Bumiller
|
46752af74b
|
parser_const_string now uses hashtables; hashtables may want to dup an empty string without it becoming NULL - also replacing ir_strdup with the new util_ one
|
2013-04-17 18:23:30 +02:00 |
|
Dale Weiler
|
1f0a1b8140
|
Perliminary parser reworking, required for the proposed multithreading.
|
2013-04-17 00:52:52 +00:00 |
|
Wolfgang Bumiller
|
1f667c4b35
|
ast_expression_delete: delete varparam if it is set - fixes another leak
|
2013-04-15 21:05:59 +02:00 |
|
Dale Weiler
|
ef528d6710
|
Added tracing to strdup for allocations, fixed some memleaks, this isn't pretty (trying to track down some weird memory leak issues)
|
2013-04-14 23:51:16 +00:00 |
|
Dale Weiler
|
cbeac3e5f2
|
Implemented smart intrinsic / builtin system. When you use trivial math functions like "pow", if they don't exist as a builtin, the compiler will implement its own versions, likewise, if a compiler builtin depends on a function that exists, it will use it, likewise if it doesn't it will implement it. If you explicitally use __builtin_ (prefixed) versions, the compiler again will select the best option it can, be it a combination of both builtins and compiler builtins, all compiler builtins, OR, all builtins (most performant).
|
2013-03-09 08:53:39 +00:00 |
|
Dale Weiler
|
d8d78f61a7
|
Implemented "reverse" enum attribute, e.g enum : reverse { A, B, C, D } -> A,B,C,D = 3,2,1,0
|
2013-03-09 05:07:14 +00:00 |
|
Dale Weiler
|
662612d66f
|
Better diagnostic when "floor" cannot be found.
|
2013-03-08 09:23:35 +00:00 |
|
Dale Weiler
|
f19adcd1b3
|
Implemented __builtin_mod, and % operator. Added floor builtin to the standalone executor. Mod works so long as the compiler can find a suitable definition of "float floor(float)", otherwise it prints a diagnostic and gives up (original id1 Quake had floor so we can depend on it).
|
2013-03-08 09:17:54 +00:00 |
|
Dale Weiler
|
b971ddec3a
|
Implemented concept of enumeration attributes (can be further extended, but currently only "flag" is implemented as an attribute). An enumeration with a flag attribute will act as a "flagged enumeration", one that automatically handles exponentiation of the constants defined inside it, i.e enum : flag { A, B, C }, A,B,C will equal 2, 4, 8.
|
2013-03-08 08:01:45 +00:00 |
|
Dale Weiler
|
479f3b9343
|
Implemented __builtin_exp
|
2013-03-08 03:46:25 +00:00 |
|
Dale Weiler
|
12340a6bd0
|
Actually generate an ast_call for __builtin_pow for the ** operator, otherwise the operator yeilds a ast_function, making "a ** b" not work, but since it's a function, allows **(a, b). Also added tests for exponentiation operator.
|
2013-03-07 23:05:40 +00:00 |
|
Dale Weiler
|
d3c7b6fb39
|
Implement exponentiation operator ** as well as __builtin_pow (used for exponentiation operator). Use of exponentiation operator with constants results in const folded (precomputed at compile time exponentiation), otherwise runtime exponentiation with some clever loops (slow!).
|
2013-03-07 21:31:19 +00:00 |
|
Dale Weiler
|
eb0e3c2898
|
Make it compile as C++ code again.
|
2013-02-06 10:36:27 +00:00 |
|
Wolfgang Bumiller
|
9bc774dcd3
|
find aliases in parser_find_global instead of parser_sya_operand
|
2013-02-06 10:55:06 +01:00 |
|
Dale Weiler
|
cb1a6a6a6b
|
Store the ast nodes for aliases
|
2013-02-06 09:44:23 +00:00 |
|
Dale Weiler
|
1e60bafcdc
|
Aliases to aliases is a bad idea, revert. Added better tests to show unused aliases
|
2013-02-06 09:28:42 +00:00 |
|
Dale Weiler
|
21e890602d
|
Fix alias bug. Implemented support for aliases of vectors (x, y, z components). Also made aliases corrector resident (e.g alias to vector foo, named bop, indexing bol_x [instead of bop_x] will result in a correction suggestion of bop_x now).
|
2013-02-06 09:09:47 +00:00 |
|
Dale Weiler
|
6fc141733f
|
Support for aliases to aliases too.
|
2013-02-06 08:43:11 +00:00 |
|
Dale Weiler
|
060bc0be10
|
Some sanity checks for aliases (undeclared variable checks, and incompatible types in alias checks.)
|
2013-02-06 05:51:05 +00:00 |
|
Dale Weiler
|
3dc8e9bb9c
|
add todo
|
2013-02-06 05:38:34 +00:00 |
|
Dale Weiler
|
e464cc1ea6
|
Implemented generalized attribute aliases. You can now alias functions, locals, or globals with [[alias("old_name")]] type new_name;
|
2013-02-06 05:30:09 +00:00 |
|
Dale Weiler
|
52ffc6db10
|
Merge branch 'cooking' of github.com:graphitemaster/gmqcc into cooking
|
2013-02-05 17:16:09 +00:00 |
|
Dale Weiler
|
b3e87c3280
|
ast referencing
|
2013-02-05 17:14:56 +00:00 |
|
Wolfgang Bumiller
|
4b5afe3456
|
ast_array_index_codegen: never regenerate code
|
2013-02-05 17:54:14 +01:00 |
|
Dale Weiler
|
e2c424d607
|
Merge branch 'cooking' of github.com:graphitemaster/gmqcc into cooking
|
2013-02-05 16:35:12 +00:00 |
|
Dale Weiler
|
8e87082e1d
|
Merge branch 'cooking' of github.com:graphitemaster/gmqcc into cooking
Conflicts:
parser.c
|
2013-02-05 16:34:55 +00:00 |
|
Wolfgang Bumiller
|
72106b0982
|
removing some left-over alloc checks
|
2013-02-05 17:34:40 +01:00 |
|
Dale Weiler
|
fed0f8b6b4
|
Work in progress <=> operator.
|
2013-02-05 16:34:03 +00:00 |
|
Wolfgang Bumiller
|
f860759758
|
fixing that comment
|
2013-02-05 17:24:02 +01:00 |
|
Wolfgang Bumiller
|
15141897ae
|
insert an error when an operator doesn't get found - note the comment...
|
2013-02-05 17:17:38 +01:00 |
|
Dale Weiler
|
31ce4c2afa
|
Better handling of multiple body functions.
|
2013-02-05 03:28:20 +00:00 |
|
Wolfgang Bumiller
|
e662efae61
|
fix: rotate_entfield_array_index_nodes deleting the old array caused expressions to be deleted recursively
|
2013-02-03 23:38:06 +01:00 |
|
Dale Weiler
|
319783e873
|
Better printing of token errors.
|
2013-02-02 01:03:39 +00:00 |
|
Dale Weiler
|
ccdfd4c65a
|
oops
|
2013-02-01 23:12:48 +00:00 |
|
Dale Weiler
|
a3559548a8
|
Fix ~ unary operator (can now const-fold). Also things like b &= ~1 work now. We also cache ast_value of float (-1) for -1-x (which is how ~ is implemented).
|
2013-02-01 23:10:23 +00:00 |
|
Dale Weiler
|
03b933bc7a
|
Work in progress ~ operator implemented as -1-x.
|
2013-02-01 12:56:01 +00:00 |
|
Dale Weiler
|
b9f46f4ef7
|
Not an assembler instruction, but virtual instruction used by the IR.
|
2013-01-30 06:31:24 +00:00 |
|
Dale Weiler
|
9f5f2b6d74
|
Fix pragma parsing that I broke.
|
2013-01-30 05:51:28 +00:00 |
|
Dale Weiler
|
e12d492d67
|
Removing #error/#warning/#message from parser, and making it part of preprocessor as directives again.
|
2013-01-30 05:49:08 +00:00 |
|
Dale Weiler
|
36c5722273
|
Rename
|
2013-01-30 05:35:07 +00:00 |
|
Dale Weiler
|
d201cfe6b4
|
Work in progress options cleanup.
|
2013-01-30 05:24:30 +00:00 |
|
Dale Weiler
|
f3c5c40104
|
Fix splint warning
|
2013-01-30 01:38:37 +00:00 |
|
Dale Weiler
|
3d35804a7d
|
Removed #warning and #error from ftepp, and made it part of the parser routine. These are "directives" that should exist regardless if -fftepp is enabled, like #pragma. Implemented #warning, #message and #error as directives in parser instead.
|
2013-01-30 01:24:58 +00:00 |
|
Wolfgang Bumiller
|
edfe340d09
|
Fix a warning
|
2013-01-26 14:43:49 +01:00 |
|
Wolfgang Bumiller
|
b39b61e514
|
store the actual parsing context before parsing into an expression and use that for the effectless-statement warning
|
2013-01-25 23:37:06 +01:00 |
|
Wolfgang Bumiller
|
9afe41471b
|
error when using a type not usable as boolean in a condition, ie an if statement
|
2013-01-25 19:19:23 +01:00 |
|
Wolfgang Bumiller
|
dca9dd56d1
|
adding missing wantop flag and some related parentheses code
|
2013-01-18 15:22:03 +01:00 |
|
Wolfgang Bumiller
|
ba207cc04c
|
Major expression parsing code refactoring, getting rid of lots of duplicated code and in the process also fixing a bug. Still thie will require more testing. xonotic code works with it though
|
2013-01-18 14:50:37 +01:00 |
|
Wolfgang Bumiller
|
1410840ef6
|
Make the varargs counter more stable, it'll now work with a function pointer with a different number of fixed params
|
2013-01-17 10:30:32 +01:00 |
|
Wolfgang Bumiller
|
00a9d2a9e3
|
fixing a possible NULL deref
|
2013-01-16 20:32:37 +01:00 |
|
Wolfgang Bumiller
|
e311dffcb3
|
fixing a warning
|
2013-01-16 16:16:52 +01:00 |
|
Wolfgang Bumiller
|
0ba8455f6a
|
initialize max_param_count to 1 so vararg functions don't try to create an accessor for an array of 0 elements...
|
2013-01-16 09:37:32 +01:00 |
|
Wolfgang Bumiller
|
e695a5919d
|
reduce the hashtable size a bit
|
2013-01-15 20:35:30 +01:00 |
|
Wolfgang Bumiller
|
73afc98699
|
fix: on error it was possible that leaveblock() is called after the function's already been deleted
|
2013-01-15 14:28:15 +01:00 |
|
Wolfgang Bumiller
|
150c6e21e7
|
fix a goto to a wrong error-cleanup part
|
2013-01-15 14:23:17 +01:00 |
|
Wolfgang Bumiller
|
c7ca5683b9
|
fix a possible leak
|
2013-01-15 14:20:08 +01:00 |
|
Wolfgang Bumiller
|
0f190026e8
|
Error on an empty paren expression
|
2013-01-15 14:18:03 +01:00 |
|
Wolfgang Bumiller
|
ee7d45f492
|
add a hint about -fvariadic-args to -Wvariadic-function
|
2013-01-15 11:35:18 +01:00 |
|
Wolfgang Bumiller
|
b208c1a49f
|
Fix a crash... if (!x) delete(x) yeah right...
|
2013-01-15 10:50:14 +01:00 |
|
Wolfgang Bumiller
|
ab8cc64dfd
|
constant-fold the 1/N division from a_vector/N
|
2013-01-13 20:53:07 +01:00 |
|
Wolfgang Bumiller
|
3d62cb37f1
|
allow vec/float
|
2013-01-13 20:49:16 +01:00 |
|
Wolfgang Bumiller
|
12ffd83d4f
|
parsewarning->compile_warning
|
2013-01-13 17:32:54 +01:00 |
|
Wolfgang Bumiller
|
8d4e395092
|
Replacing lots of parseerror calls with compile_error calls and a more correct context information
|
2013-01-13 17:31:31 +01:00 |
|
Wolfgang Bumiller
|
3652a122ed
|
Removed -fenhanced-diagnostics - it's now --correct, which makes sense since it doesn't affect the compilation process itself
|
2013-01-12 17:10:07 +01:00 |
|
Wolfgang Bumiller
|
4df6d1e028
|
guarding vararg code by -fvariadic-args
|
2013-01-12 16:28:04 +01:00 |
|
Wolfgang Bumiller
|
7dd31ccf77
|
entity setter array subscript needs to get a correct field type
|
2013-01-12 15:49:31 +01:00 |
|
Wolfgang Bumiller
|
a01388ea7d
|
Copying arg counter into the local
|
2013-01-12 15:06:19 +01:00 |
|
Wolfgang Bumiller
|
57c0a09800
|
Creating the argument counter if requested
|
2013-01-12 14:59:30 +01:00 |
|
Wolfgang Bumiller
|
e149551744
|
Added '...(idx,type)' to access varargs
|
2013-01-12 14:53:48 +01:00 |
|
Wolfgang Bumiller
|
1861660585
|
builtins are generally not declared const, so don't expect CV_CONST, otherwise we write out va_count for builtin calls as well...
|
2013-01-12 13:52:42 +01:00 |
|
Wolfgang Bumiller
|
c10d127fd7
|
While at it: moving generation of reserved:version to just before the functions so no global/immedate is generated _after_ it - at least from the parser's point of view
|
2013-01-12 13:49:06 +01:00 |
|
Wolfgang Bumiller
|
d78997599a
|
create store to reserved:va_count; fix: don't build vararg accessor ast tree after generating immediates as they create new ones
|
2013-01-12 13:47:56 +01:00 |
|
Wolfgang Bumiller
|
6dfdf69a8e
|
vararg accessor generation
|
2013-01-12 13:01:20 +01:00 |
|
Wolfgang Bumiller
|
c69ba2c734
|
parsing of vararg-counter
|
2013-01-12 11:29:03 +01:00 |
|
Wolfgang Bumiller
|
ca947d782c
|
Declaration of type-restricted varargs
|
2013-01-12 11:03:17 +01:00 |
|
Wolfgang Bumiller
|
2f9db8972e
|
keep track of the highest parameter count of calls for later for varargs
|
2013-01-12 10:58:01 +01:00 |
|
Wolfgang Bumiller
|
3429e7d0cb
|
'static' shouldn't be accepted in the global scope for now
|
2013-01-12 10:52:18 +01:00 |
|
Wolfgang Bumiller
|
3436fa7d89
|
added the --add-info compile switch: it adds a global const string named version to the 'reserved' namespace, ie ends up named 'reserved:version', containing the --version string
|
2013-01-11 19:18:51 +01:00 |
|
Wolfgang Bumiller
|
88cfa53dc2
|
replacing an error message in the enum parsing
|
2013-01-10 22:08:49 +01:00 |
|
Wolfgang Bumiller
|
9c2bc7f381
|
Allow accessing vector components via the . operator, including components
of expressions, like: (3 * a_vector).y.
|
2013-01-10 21:03:35 +01:00 |
|
Wolfgang Bumiller
|
aa8b9eb1ad
|
parse_expression_leave: also end at a closing } - enum: check for } and , after an expression again
|
2013-01-10 18:52:43 +01:00 |
|
Wolfgang Bumiller
|
a468d0b478
|
simple 'enum' implementation
|
2013-01-10 18:38:57 +01:00 |
|
Wolfgang Bumiller
|
81cc4194dc
|
fixed a bug which allowed some statements to end in tokens other than semicolons... (ie closing parens)
|
2013-01-10 15:23:04 +01:00 |
|
Wolfgang Bumiller
|
428453a132
|
for compile-time constants << and >> are now available
|
2013-01-10 15:12:19 +01:00 |
|
Wolfgang Bumiller
|
10c7f4f838
|
don't call correct_edit anew for each scope
|
2013-01-09 21:16:22 +01:00 |
|
Wolfgang Bumiller
|
6b0a522bb9
|
Factor out the adding of globals in various places into parser_addglobal; Add globals to the correct_variables lists
|
2013-01-09 20:42:33 +01:00 |
|
Wolfgang Bumiller
|
be6942d972
|
fixing a crash caused by the correction: setting correct=NULL after freeing so the later if(correct) check properly fails
|
2013-01-09 19:12:27 +01:00 |
|
Wolfgang Bumiller
|
57c3d48711
|
error when trying to break/continue outside of loops/switches instead of segfaulting at codegen
|
2013-01-07 15:19:53 +01:00 |
|
Wolfgang Bumiller
|
f4d1ef4740
|
Fix some possible NULL access in an error case
|
2013-01-07 00:22:16 +01:00 |
|
Wolfgang Bumiller
|
8bc9d4b427
|
Committing an evil allocator and a trie to speed up the correction stuff
|
2013-01-05 19:09:36 +01:00 |
|
Dale Weiler
|
793547a132
|
Implemented -f[no]enhanced-diagnostics, to enable/disable the usage of enhanced diagnostics.
|
2013-01-04 12:07:42 +00:00 |
|
Dale Weiler
|
5377835f1e
|
Remove constant string literal for correction check, use parse_tokval of the current parser state instead. Accidently left it behind from debugging.
|
2013-01-04 11:58:27 +00:00 |
|
Dale Weiler
|
2d96b2a3ec
|
Merge branch 'correct'
|
2013-01-04 11:56:07 +00:00 |
|
Dale Weiler
|
36d02d010e
|
Got rid of all the memleaks. We can now merge with master.
|
2013-01-04 11:53:40 +00:00 |
|
Dale Weiler
|
18b9473cf8
|
Itegration of corrector. Seems to be some leaks in the score keeping for the probability system.
|
2013-01-04 11:44:25 +00:00 |
|
Wolfgang Bumiller
|
cf293bc669
|
handling the ast-destruction in computed goto
|
2013-01-03 13:21:11 +01:00 |
|
Dale Weiler
|
7d14fdf530
|
Merge branch 'master' of github.com:graphitemaster/gmqcc
|
2013-01-03 12:05:02 +00:00 |
|
Dale Weiler
|
9bda8f61f4
|
Add specialized diagnostics for when predefined macros are used and ftepp predefined macros are not enabled.
|
2013-01-03 12:04:32 +00:00 |
|
Wolfgang Bumiller
|
614fcb12f5
|
check for TYPE_NOEXPR in general when applying an operator
|
2013-01-03 12:56:26 +01:00 |
|
Wolfgang Bumiller
|
e146fd121c
|
parse_expression now takes a boolean flag on whether or not it should be creating ast_labels for undefined identifiers; creating the label later will pick it up and set its undefined flag to false
|
2013-01-03 12:46:33 +01:00 |
|
Dale Weiler
|
a168c5efbe
|
More error checking and proper unreferencing of ast nodes if expressions for computed goto fails.
|
2013-01-02 22:39:24 +00:00 |
|
Dale Weiler
|
c1734d1b27
|
Some error checking for computed goto.
|
2013-01-02 22:28:26 +00:00 |
|
Dale Weiler
|
e08e4a9ce0
|
Remove "got" left behind from debugging.
|
2013-01-02 21:35:18 +00:00 |
|
Dale Weiler
|
a421d9a33b
|
Implemented computed goto + added goto test for testsuite (tests both normal and computed goto statements).
|
2013-01-02 21:32:57 +00:00 |
|
Wolfgang Bumiller
|
558a091c08
|
remove ast.h-include from lexer.h to parser.c...
|
2013-01-02 15:08:02 +01:00 |
|
Dale Weiler
|
29db4a44ed
|
Happy new years!
|
2013-01-01 05:08:55 +00:00 |
|
Wolfgang Bumiller
|
0920cb6ec4
|
Another hardcoded -std=gmqcc option removed and added to the implied -std=gmqcc flags
|
2012-12-31 12:43:15 +01:00 |
|