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 |
|
Wolfgang (Blub) Bumiller
|
5a383ac2b0
|
Reorganizing expression parsing to allow prefix-operators like unary minus
|
2012-08-16 15:11:03 +02:00 |
|
Wolfgang (Blub) Bumiller
|
0d9435d326
|
util_fopen...
|
2012-08-16 14:01:47 +02:00 |
|
Wolfgang (Blub) Bumiller
|
812cb5be64
|
sscanf -> sscanf_s on windows
|
2012-08-16 13:44:53 +02:00 |
|
Wolfgang (Blub) Bumiller
|
3017c92edf
|
'local' becomes a keyword
|
2012-08-14 16:10:17 +02:00 |
|
Wolfgang (Blub) Bumiller
|
fd1a850629
|
Recognize a dot as operator when not in 'no-ops' mode in the lexer
|
2012-08-12 19:00:44 +02:00 |
|
Wolfgang (Blub) Bumiller
|
c16a17ed5f
|
recognize a dot as a single char token
|
2012-08-11 14:45:49 +02:00 |
|
Wolfgang (Blub) Bumiller
|
ce082551d8
|
handling if/else, shunting yard now leaves unmatched closing paren-tokens on the parser for this purpose
|
2012-08-11 11:17:46 +02:00 |
|
Wolfgang (Blub) Bumiller
|
42ab396e38
|
tempcommitting WARN_UNKNOWN_CONTROL_SEQUENCE and handling of backslashes in strings
|
2012-08-08 12:24:01 +02:00 |
|
Wolfgang Bumiller
|
64c230d222
|
Parsing a comma as an operator now - unless noop is true
|
2012-07-27 13:47:01 +02:00 |
|
Wolfgang Bumiller
|
331c00dd50
|
return is a keyword
|
2012-07-26 23:18:15 +02:00 |
|
Wolfgang Bumiller
|
6a346745aa
|
Handling definition of builtins
|
2012-07-19 17:39:19 +02:00 |
|
Wolfgang Bumiller
|
d581fdc048
|
Reading a global def
|
2012-07-16 14:52:52 +02:00 |
|
Wolfgang Bumiller
|
4f611475de
|
Starting some parsing
|
2012-07-16 14:14:37 +02:00 |
|
Wolfgang Bumiller
|
9b6598f049
|
Copying my old lexer
|
2012-07-16 13:59:10 +02:00 |
|