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
|
d3861cea9f
|
Make pragmas pass through the preprocessor so the user can write them manually
|
2012-11-18 15:30:24 +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
|
4c2e5d7ebf
|
update old_string after a recursive preprocess call so we don't reset to a free'd vector; add recursion header/footer pragmas
|
2012-11-18 14:39:24 +01:00 |
|
Wolfgang (Blub) Bumiller
|
441a224435
|
Comment about why stringify is so short
|
2012-11-18 14:29:15 +01:00 |
|
Wolfgang (Blub) Bumiller
|
edbe8f54cb
|
don't call parser_cleanup with -E
|
2012-11-18 14:27:47 +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
|
0330b082a2
|
The ftepp now always outputs into a string buffer, with -E the buffer will be dumped to stdout or the via -o specified file, without -E it'll be passed to the parser to be compiled
|
2012-11-18 13:33:53 +01:00 |
|
Wolfgang (Blub) Bumiller
|
f0d56d07fe
|
Merge branch 'master' into ftepp
|
2012-11-18 13:06:29 +01:00 |
|
Wolfgang (Blub) Bumiller
|
cec58b53e4
|
Collect accessor functions in the parser so they can later be deleted, fixed that leak
|
2012-11-18 13:06:16 +01:00 |
|
Wolfgang (Blub) Bumiller
|
f47a20aa53
|
Removing some code duplication
|
2012-11-18 13:00:18 +01:00 |
|
Wolfgang (Blub) Bumiller
|
d1373af7fc
|
Make -E print to stdout by default and honor -o, changed handling of source list a bit
|
2012-11-18 12:51:38 +01:00 |
|
Wolfgang (Blub) Bumiller
|
366557bbab
|
Since like with parsing, the preprocessor state has to be preserved across files for macros, we do that now, and with that introduce a new warning: -Wmultifile-if in case an #if spans over several command-line-provided source files (or progs.src file provided for that matter)
|
2012-11-18 11:54:11 +01:00 |
|
Wolfgang (Blub) Bumiller
|
2b65ea599f
|
Some printf/con_out/con_err conversions, guarded some outputs with not-opts_pp_only so the -E switch can print to stdout normally
|
2012-11-18 11:43:46 +01:00 |
|
Wolfgang (Blub) Bumiller
|
79abe3fb6d
|
Merge branch 'master' into ftepp
|
2012-11-17 11:34:00 +01:00 |
|
Wolfgang (Blub) Bumiller
|
852b2b91d2
|
install targets
|
2012-11-17 11:00:32 +01:00 |
|
Wolfgang (Blub) Bumiller
|
6333130537
|
Temporary list of dependencies for objects
|
2012-11-17 10:46:23 +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
|
7b74a2bb94
|
removing mem.c from this branch in preparation for 0.1
|
2012-11-17 10:35:52 +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
|
990450bfe0
|
## concatenation, -Wpreprocessor warning about redefining macros, #undef
|
2012-11-16 22:54:59 +01:00 |
|
Wolfgang (Blub) Bumiller
|
d237ff1736
|
don't error on non-EOL EOF at the end of a macro line
|
2012-11-16 22:41:29 +01:00 |
|
Wolfgang (Blub) Bumiller
|
0ad2b8b2c7
|
also use recursive-expansion on macros without parameters
|
2012-11-16 22:38:58 +01:00 |
|
Wolfgang (Blub) Bumiller
|
57ac55ad01
|
recursively call the preprocessor on expanded macros
|
2012-11-16 22:31:51 +01:00 |
|
Wolfgang (Blub) Bumiller
|
05a26333fc
|
Expand macros into a string buffer
|
2012-11-16 22:22:31 +01:00 |
|
Wolfgang (Blub) Bumiller
|
99dd208880
|
moving ftepp_delete out of ftepp_preprocess so that it can actually be called recursively
|
2012-11-16 22:07:53 +01:00 |
|
Wolfgang (Blub) Bumiller
|
03f0e39f7f
|
ftepp_out can now output to a string buffer
|
2012-11-16 22:06:07 +01:00 |
|
Wolfgang (Blub) Bumiller
|
b8a5c87360
|
Correctly handle nested #ifs
|
2012-11-16 22:02:38 +01:00 |
|
Wolfgang (Blub) Bumiller
|
5b91c2af5e
|
Relax the preprocessor condition: # in the middle of a line also counts, but take care of builtin numbers since they use # as well
|
2012-11-16 21:37:34 +01:00 |
|
Wolfgang (Blub) Bumiller
|
7e660951c2
|
Fix a bug in macro call parameter parsing
|
2012-11-16 21:27:15 +01:00 |
|
Wolfgang (Blub) Bumiller
|
d688820518
|
Parsing parameters for a macro call
|
2012-11-16 21:20:31 +01:00 |
|
Wolfgang (Blub) Bumiller
|
a56c224f9c
|
macro_body parse function shouldn't skip whitespace inside
|
2012-11-16 20:50:28 +01:00 |
|
Wolfgang (Blub) Bumiller
|
6c0b4a46fe
|
moving ftepp_out further up, using it in ftepp_macro_call, generating output of parameter-less macros
|
2012-11-16 20:49:37 +01:00 |
|
Wolfgang (Blub) Bumiller
|
5f287fc476
|
ftepp_macro_call/ftepp_skipallwhite
|
2012-11-16 20:46:52 +01:00 |
|
Wolfgang (Blub) Bumiller
|
0bd0a430d6
|
Also allow empty-parameter-list macros
|
2012-11-16 20:41:20 +01:00 |
|
Wolfgang (Blub) Bumiller
|
c48b9dbf61
|
Parsing basic macro body, no special tokens yet
|
2012-11-16 20:38:44 +01:00 |
|
Wolfgang (Blub) Bumiller
|
52d7a5d7be
|
Set the mergelines flag only for preprocessor commands
|
2012-11-16 20:32:03 +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
|
d4fe6ed82d
|
fixing up dtors, parsing parameters of macros
|
2012-11-16 20:15:04 +01:00 |
|
Wolfgang (Blub) Bumiller
|
34646cfca7
|
Update #if description comment
|
2012-11-16 20:04:30 +01:00 |
|
Wolfgang (Blub) Bumiller
|
45a354d664
|
Unary NOT in #if
|
2012-11-16 20:02:27 +01:00 |
|
Wolfgang (Blub) Bumiller
|
bdd8b8275e
|
handling the noops flag better now
|
2012-11-16 19:32:02 +01:00 |
|
Wolfgang (Blub) Bumiller
|
6ab09ef3bf
|
Parsing some basic #ifs with defined()
|
2012-11-16 19:28:20 +01:00 |
|
Wolfgang (Blub) Bumiller
|
bd5b2a8b58
|
Fixing indentation
|
2012-11-16 19:07:23 +01:00 |
|
Wolfgang (Blub) Bumiller
|
0c75182aab
|
Some #if parsing
|
2012-11-16 19:01:44 +01:00 |
|
Wolfgang (Blub) Bumiller
|
0473fd84d1
|
using ftepp_out which will honor conditions
|
2012-11-16 18:29:46 +01:00 |
|
Wolfgang (Blub) Bumiller
|
cc1c197fc6
|
macro structure, parsing ifdefs and non-macro defines
|
2012-11-16 18:27:32 +01:00 |
|