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 |
|
Wolfgang (Blub) Bumiller
|
b476a3deca
|
fteqcc's \{number\} string control sequences
|
2012-11-30 14:22:00 +01:00 |
|
Wolfgang (Blub) Bumiller
|
fefb51c592
|
fteqcc like \[ and \] in strings
|
2012-11-30 14:18:45 +01:00 |
|
Wolfgang (Blub) Bumiller
|
70bda85629
|
lexer: hex sequences with \x and fteqcc-specific handling if one-digit sequences and <, -, and > sequences
|
2012-11-30 14:18:15 +01:00 |
|
Wolfgang (Blub) Bumiller
|
b4a5517851
|
fix a lexer error which parsed !! as one operator
|
2012-11-25 23:24:39 +01:00 |
|
Wolfgang (Blub) Bumiller
|
2f5a26a4de
|
__builtin_debug_printtype directive... helped me down tracking a bug: parsing typedeffed types in parameter lists properly now
|
2012-11-25 22:57:11 +01:00 |
|
Wolfgang (Blub) Bumiller
|
089e490c69
|
Allow float constants which start with a dot
|
2012-11-25 22:35:41 +01:00 |
|
Wolfgang (Blub) Bumiller
|
797ceb9e04
|
handling TOKEN_CHARCONST - -Wmultibyte-character
|
2012-11-25 22:11:21 +01:00 |
|
Wolfgang (Blub) Bumiller
|
2234090398
|
Actually use TOKEN_CHARCONST in the lexer...
|
2012-11-25 22:04:27 +01:00 |
|
Wolfgang (Blub) Bumiller
|
2ec8ef4406
|
making goto a keyword
|
2012-11-25 21:56:21 +01:00 |
|
Wolfgang (Blub) Bumiller
|
36cdffe1b3
|
Fix linecounting mistake in try_digraph
|
2012-11-25 21:07:03 +01:00 |
|
Wolfgang (Blub) Bumiller
|
bf23ed948d
|
Allow strings to contain a backslash and a newline at the end
|
2012-11-25 18:38:04 +01:00 |
|
Wolfgang (Blub) Bumiller
|
f65dbda659
|
linecounting fix for push/pop(line) pragmas
|
2012-11-25 18:13:46 +01:00 |
|
Wolfgang (Blub) Bumiller
|
e3acdcf0a9
|
Let's not have + and - as sole token, always allow ++ and -- to become operators independent of the noops flag
|
2012-11-25 18:07:19 +01:00 |
|
Wolfgang (Blub) Bumiller
|
04347508e6
|
linecounting issue in the lexer
|
2012-11-25 17:50:31 +01:00 |
|
Wolfgang (Blub) Bumiller
|
9a9ecd574e
|
Fix a bug in the lexer causing double-dots to double the character after the 2nd dot
|
2012-11-25 17:43:24 +01:00 |
|
Wolfgang (Blub) Bumiller
|
23d16b303d
|
typedef is now a keyword
|
2012-11-25 14:29:59 +01:00 |
|
Dale Weiler
|
5c0a62be96
|
Add respective license headers + some cleanups
|
2012-11-24 21:22:35 +00:00 |
|
Wolfgang (Blub) Bumiller
|
2bc99076cf
|
'var' is now no keyword anymore, :\
|
2012-11-23 22:07:35 +01:00 |
|
Wolfgang (Blub) Bumiller
|
e3c1244687
|
preserve newlines in preprocessed multiline comments
|
2012-11-23 21:47:00 +01:00 |
|
Wolfgang (Blub) Bumiller
|
ab55673c35
|
Fix a very nasty bug in the lexer's handling of comments
|
2012-11-23 21:35:14 +01:00 |
|
Wolfgang (Blub) Bumiller
|
0d33939b1b
|
operator &~=
|
2012-11-23 14:39:05 +01:00 |
|
Wolfgang (Blub) Bumiller
|
b771695e0d
|
Fixing shadows in lexer.c
|
2012-11-22 20:46:13 +01:00 |
|
Wolfgang (Blub) Bumiller
|
5ec75a228e
|
question mark must result in TOKEN_OPERATOR
|
2012-11-21 20:42:48 +01:00 |
|
Wolfgang (Blub) Bumiller
|
e0ddf32d2e
|
parsing the ternary
|
2012-11-21 20:36:42 +01:00 |
|
Wolfgang (Blub) Bumiller
|
63969180cf
|
'case' and 'default' are now keywords too, not just switch
|
2012-11-19 21:40:38 +01:00 |
|
Wolfgang (Blub) Bumiller
|
6e888396b5
|
moving keywords into an array
|
2012-11-19 19:20:26 +01:00 |
|
Wolfgang (Blub) Bumiller
|
19e82883ea
|
Fixing some indentation
|
2012-11-18 20:56:11 +01:00 |
|
Wolfgang (Blub) Bumiller
|
e4998e0798
|
Added #include
|
2012-11-18 16:22:07 +01:00 |
|
Wolfgang (Blub) Bumiller
|
43a72b2a63
|
Don't skip the \n after parsing a pragma in the lexer otherwise 2 pragmas in the row wouldn't work
|
2012-11-18 16:17:19 +01:00 |
|
Wolfgang (Blub) Bumiller
|
a5dbfacf2f
|
pragma line(lineno) - sets the linenumber for the line after the pragma
|
2012-11-18 15:32:03 +01:00 |
|
Wolfgang (Blub) Bumiller
|
e66f2bcb33
|
Better linecounting for pragmas; support for prgama file(filename)
|
2012-11-18 15:30:49 +01:00 |
|
Wolfgang (Blub) Bumiller
|
9898ab5316
|
fixup line counting in #pragmas
|
2012-11-18 15:23:00 +01:00 |
|
Wolfgang (Blub) Bumiller
|
79619fbf50
|
Experimental support for push/pop(line) pragmas
|
2012-11-18 15:14:42 +01:00 |
|
Wolfgang (Blub) Bumiller
|
a014480987
|
Add quotes to the known control sequences... darn. Add stringification via #
|
2012-11-18 14:26:40 +01:00 |
|
Wolfgang (Blub) Bumiller
|
79abe3fb6d
|
Merge branch 'master' into ftepp
|
2012-11-17 11:34:00 +01:00 |
|
Wolfgang (Blub) Bumiller
|
33be9edec7
|
quick and dirty fix to lexerror for when fopen fails
|
2012-11-17 10:36:35 +01:00 |
|
Wolfgang (Blub) Bumiller
|
515cafe8bd
|
Lexer should keep newlines in merged lines, so will the preprocessor, but therefore the lexer will replace comments with actual spaces so we don't get borken output... also don't error about redifining a macro when inside a non-outputting #if branch
|
2012-11-16 23:13:53 +01:00 |
|
Wolfgang (Blub) Bumiller
|
05a26333fc
|
Expand macros into a string buffer
|
2012-11-16 22:22:31 +01:00 |
|
Wolfgang (Blub) Bumiller
|
053d8fb0e2
|
mergelines flag for the lexer to handle a backslash-newline
|
2012-11-16 20:29:20 +01:00 |
|
Wolfgang (Blub) Bumiller
|
c583ae24f2
|
Replacing lexer's vectors and getting rid of the macros
|
2012-11-15 18:48:38 +01:00 |
|
Wolfgang (Blub) Bumiller
|
906f319673
|
Replaced it all...
|
2012-11-15 18:32:09 +01:00 |
|
Dale Weiler
|
2e84cc0b41
|
Use new console system everywhere.
|
2012-11-15 00:28:46 +00:00 |
|
Wolfgang (Blub) Bumiller
|
84088cb5f0
|
Merging in new-syntax
|
2012-11-14 21:39:16 +01:00 |
|
Wolfgang (Blub) Bumiller
|
8f1f6160e3
|
'not' is now a keyword
|
2012-11-13 18:55:48 +01:00 |
|
Wolfgang (Blub) Bumiller
|
6204c8c956
|
'not' is now a keyword
|
2012-11-13 18:51:45 +01:00 |
|
Wolfgang (Blub) Bumiller
|
22d6ff2309
|
Fixing lexer to not classify wrong tokens as operators
|
2012-11-11 18:57:02 +01:00 |
|
Wolfgang (Blub) Bumiller
|
caf8946f99
|
lexer needs to fill the token for the index operator with actual content...
|
2012-11-11 18:31:37 +01:00 |
|
Wolfgang (Blub) Bumiller
|
2994d308a0
|
array index opening-paren can now return TOKEN_OPERATOR, partially handled in SYA
|
2012-11-11 16:43:16 +01:00 |
|
Wolfgang (Blub) Bumiller
|
a84f9483e6
|
lex_open_string
|
2012-11-11 10:27:09 +01:00 |
|
Wolfgang (Blub) Bumiller
|
fe05d5afd9
|
added 'var' to the keywords when not in -std=qcc, supporting 'var .float x;' in global-scope to declare a field-pointer variable without creating a field of that name
|
2012-11-11 10:13:00 +01:00 |
|
Dale Weiler
|
9ad35a2817
|
Remove execloop.h, we still use xmacros, but it's done with #include __FILE__ trickery. Please do not kill me, it doesn't look that bad, conditional compilation is even used in eglibc like this :P
|
2012-11-10 20:53:37 +00:00 |
|
Wolfgang (Blub) Bumiller
|
b5970707c0
|
Properly handle string and char constants when preprocessing: don't unescape and keep surrounding quotes
|
2012-11-02 18:48:32 +01:00 |
|
Wolfgang (Blub) Bumiller
|
b219d4b468
|
Changed the TOKEN_WHITE to contain the actual data - ie the comments
|
2012-11-02 18:39:32 +01:00 |
|
Wolfgang (Blub) Bumiller
|
a3791b3f51
|
Finishing the preprocessing flag for the lexer, added preprocess.c to test it
|
2012-11-02 18:34:14 +01:00 |
|
Wolfgang (Blub) Bumiller
|
ab86b0470c
|
preprocessing flag for the lexer
|
2012-11-02 18:33:51 +01:00 |
|
Wolfgang (Blub) Bumiller
|
2ef0203d17
|
Fix a minor bug in the lexer
|
2012-11-02 18:30:20 +01:00 |
|
Wolfgang (Blub) Bumiller
|
edd9ded23c
|
reserve the keywords 'switch,struct,union,break,continue' - but only with std != QCC - eg. id1 uses a function named 'break'
|
2012-11-01 14:20:58 +01:00 |
|
Wolfgang (Blub) Bumiller
|
415816e4dc
|
string-literals now do not treat digraphs as digraphs
|
2012-11-01 14:05:14 +01:00 |
|
Wolfgang (Blub) Bumiller
|
6126db10df
|
digraphs
|
2012-10-29 13:56:00 +01:00 |
|
Wolfgang (Blub) Bumiller
|
e6cebc3ea3
|
trigraphs
|
2012-10-29 13:52:39 +01:00 |
|
Wolfgang (Blub) Bumiller
|
1d851a1400
|
fixing token-reset in modelname
|
2012-08-24 18:23:35 +02:00 |
|
Wolfgang (Blub) Bumiller
|
ab91dea4e0
|
the lexer now doesn't _allocate_ the token structure, also: the vector holding the token doesn't shrink so we have much fewer reallocations
|
2012-08-24 17:37:55 +02:00 |
|
Wolfgang (Blub) Bumiller
|
7cfb9425a0
|
Fixing handling of duplicate frame macros: 'continue' would continue the inner for, how could I miss that
|
2012-08-23 22:40:51 +02:00 |
|
Wolfgang (Blub) Bumiller
|
4f758284a1
|
fixing up prevoius commit: cannot reference the parser here
|
2012-08-23 19:28:15 +02:00 |
|
Wolfgang (Blub) Bumiller
|
5d23fc5f5f
|
Make the lexer use the correct error-printing mechanism
|
2012-08-23 19:20:50 +02:00 |
|
Wolfgang (Blub) Bumiller
|
9f2e8b9bfe
|
-Wframe-macros, warn about duplicate frame macro definitions, on by default
|
2012-08-23 19:16:26 +02:00 |
|
Wolfgang (Blub) Bumiller
|
deb7ccb830
|
for the lexer 3 dots now become TOKEN_DOTS
|
2012-08-23 11:12:32 +02:00 |
|
Wolfgang (Blub) Bumiller
|
e0ffcfb74b
|
Lexer now returns TOKEN_EOF only once and afterwards TOKEN_FATAL
|
2012-08-20 18:12:04 +02:00 |
|
Wolfgang (Blub) Bumiller
|
4cf017bb6b
|
keep the filenames of all lexed files in a global lex_filenames vector because we don't strdup the filenames into lex_ctx, but copy the pointer
|
2012-08-18 16:47:33 +02:00 |
|
Wolfgang (Blub) Bumiller
|
a67110410b
|
clear lex->modelname
|
2012-08-18 16:04:20 +02:00 |
|
Wolfgang (Blub) Bumiller
|
3efad75336
|
clean lex->frames in lex_close
|
2012-08-18 15:57:21 +02:00 |
|
Wolfgang (Blub) Bumiller
|
d3492d4a13
|
Fix indentation of lexer.c - was still using some tabs there
|
2012-08-18 14:27:19 +02:00 |
|
Wolfgang (Blub) Bumiller
|
bc94d3f5b8
|
lexer now turns '(' into an operator if noops=false
|
2012-08-18 14:26:25 +02:00 |
|
Wolfgang (Blub) Bumiller
|
076503770d
|
Support for $modelname and $framerestore
|
2012-08-16 21:02:56 +02:00 |
|
Wolfgang (Blub) Bumiller
|
3b9a6b3ace
|
Don't expand frame macros when they don't have a $ prefix
|
2012-08-16 20:49:58 +02:00 |
|
Wolfgang (Blub) Bumiller
|
e00c8da849
|
Added support for some modelgen/spritegen commands
|
2012-08-16 20:47:31 +02:00 |
|
Wolfgang (Blub) Bumiller
|
91ee7658a6
|
'$' is now its own token, used for modeldata
|
2012-08-16 20:03:53 +02:00 |
|
Wolfgang (Blub) Bumiller
|
7bc564f175
|
lexer: recognize != as operator when noops=false
|
2012-08-16 16:06:12 +02:00 |
|
Wolfgang (Blub) Bumiller
|
ec439d7880
|
Allow fieldpointer parameters in functions, allow function fields again
|
2012-08-16 15:27:06 +02:00 |
|