Commit graph

143 commits

Author SHA1 Message Date
Dale Weiler
a8fddbb7d3 Implemented bitwise xor operator. 2013-06-15 09:48:40 +00:00
Dale Weiler
8afd373e4f Fixed whitespace 2013-06-14 21:36:16 +00: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
Dale Weiler
0b6269f607 column printing for warnings and errors now 2013-05-30 19:36:01 +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
10dd7aacfe Apply some static where it belongs 2013-04-25 03:34:42 +00:00
Wolfgang Bumiller
3a4aba0b31 Grrrr 2013-04-24 17:47:42 +02:00
Dale Weiler
489ad486bc Get it compiling in visual studio again. 2013-04-24 01:43:53 +00:00
Dale Weiler
160e7cf7ee Remove trailing whitespace 2013-04-21 10:24:55 +00:00
Wolfgang Bumiller
992c6fbfb8 lex_try_pragma: free the buffers 2013-04-16 14:14:15 +02:00
Dale Weiler
c2b5a95961 GCC specific stuff compile flags. 2013-04-15 06:23:13 +00:00
Dale Weiler
18fad16a7d cleanups 2013-04-14 01:41:13 +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
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
Wolfgang Bumiller
d27c06ea7f Merge branch 'master' into cooking 2013-02-20 23:08:58 +01:00
Wolfgang Bumiller
80184b0d80 fix: don't mess up multiline macros in files ending with \r\n 2013-02-20 23:08:50 +01:00
Dale Weiler
8d59d7029d Cleanup cargocult directory and file specific things, to fs.c (renamed file.c which also contains directory handling stuff). Also cleaned up some stuff, and added proper end comments to conditional inclusion stuff. 2013-02-08 12:06:59 +00:00
Dale Weiler
fed0f8b6b4 Work in progress <=> operator. 2013-02-05 16:34:03 +00:00
Dale Weiler
7b96b0bd6d s/%d/%s/ 2013-02-02 01:04:26 +00:00
Dale Weiler
319783e873 Better printing of token errors. 2013-02-02 01:03:39 +00:00
Dale Weiler
03b933bc7a Work in progress ~ operator implemented as -1-x. 2013-02-01 12:56:01 +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
Wolfgang Bumiller
b31e9b63eb fix: trigraph check screwing up linenumbering 2013-01-16 22:09:27 +01:00
Wolfgang Bumiller
e149551744 Added '...(idx,type)' to access varargs 2013-01-12 14:53:48 +01:00
Wolfgang Bumiller
6c076f99f6 lex->flags.preprocessing causes the lexer to parse the unary number if it is one 2013-01-02 17:38:24 +01:00
Wolfgang Bumiller
0d839bd138 pragma code: signed correctness 2013-01-02 15:20:07 +01:00
Dale Weiler
29db4a44ed Happy new years! 2013-01-01 05:08:55 +00:00
Wolfgang Bumiller
432a29e4d9 improvie/fix \{x...} char parsing 2012-12-29 19:11:06 +01:00
Dale Weiler
e2f9aa5027 Fix another warning 2012-12-28 12:40:00 +00:00
Wolfgang Bumiller
e72d141ec4 Uchar -> uchar_t for consistency 2012-12-23 10:34:29 +01:00
Wolfgang Bumiller
2164afb8cf Better error message for -futf8 2012-12-23 10:23:42 +01:00
Wolfgang Bumiller
a707440e52 -futf8 implementation 2012-12-23 10:23:42 +01:00
Dale Weiler
6bc29a1601 Merge branch 'master' of github.com:graphitemaster/gmqcc 2012-12-23 06:06:57 +00:00
Dale Weiler
13003bf6af Wrapper around FILE to take advantage of MSVC "secure" CRT. We don't actually defend bounds checks (we just hack in the few ones to silent MSVC .. and to pass WinRT "native code" rules) 2012-12-23 06:05:22 +00:00
Wolfgang Bumiller
77639bb21d guard ]] with lex->flags.noops 2012-12-22 20:41:02 +01:00
Wolfgang Bumiller
b38b3b08bd properly fill the token string for TOKEN_ATTRIBUTE_* 2012-12-22 18:09:17 +01:00
Wolfgang Bumiller
2c2bfab8bc is now no keyword anymore 2012-12-22 18:03:43 +01:00
Wolfgang Bumiller
26a80e0868 Lexer: [[ and ]] are now TOKEN_ATTRIBUTE_{OPEN,CLOSE} 2012-12-22 18:00:51 +01:00
Dale Weiler
475b3152ca One last fix for mankind 2012-12-20 09:01:01 +00:00
Wolfgang (Blub) Bumiller
664b6d6604 'noreturn' is - for now - a keyword, and used just like noref/var/const, to mark a function as not-returning 2012-12-19 20:56:22 +01:00
Rudolf Polzer
acf4da9385 Fixes for some minor bugs clang-analyzer and cppcheck found
Signed-off-by: Dale Weiler <killfieldengine@gmail.com>
2012-12-18 16:54:51 +00:00
Wolfgang (Blub) Bumiller
fe344cb5b2 vcompile_error, vcompile_warning; fixed: removed opts_ globals from con.c; made the lexer use vcompile_warning 2012-12-17 18:22:33 +01:00
Wolfgang (Blub) Bumiller
f9b1d057b5 Moving all the global opts_ variables into a struct, now there's one global 'opts' struct 2012-12-06 13:23:53 +01:00
Wolfgang (Blub) Bumiller
8e077f378e -Werror now changes the word 'warning' into 'error' 2012-12-04 12:54:53 +01:00
Wolfgang (Blub) Bumiller
88a4721de7 Parsing noref-pragma 2012-12-03 20:37:02 +01:00
Wolfgang (Blub) Bumiller
46942df6c0 skipwhite bugfix 2012-11-30 21:51:18 +01:00
Wolfgang (Blub) Bumiller
2f3612d905 increase the ridiculously low size limit on lex-pragma parameters 2012-11-30 17:28:46 +01:00
Wolfgang (Blub) Bumiller
f1a36ca647 Ignore modelgen commands with lex->flags.preprocessing 2012-11-30 15:44:45 +01:00
Wolfgang (Blub) Bumiller
5ca4390a1f Don't produce 'unknown token' errors in preprocessing mode 2012-11-30 15:38:03 +01:00