Commit Graph

159 Commits

Author SHA1 Message Date
Roberto Raggi
146ec6248d Renamed Preprocessor::_true_test 2009-10-21 16:20:45 +02:00
Roberto Raggi
5b7a19425b Use bit vectors to store the preprocessor's state. 2009-10-21 16:19:23 +02:00
Roberto Raggi
f829ef899c Store in the document's macroUsages only the top-level macro expansions. 2009-10-15 16:25:10 +02:00
Christian Kamm
22ed0255b9 Track more macro uses.
In particular macros that are only checked for definition or are
expanded during the evaluation of an #if or #elif directive are now also
added to the list available through Document::macroUses().

The names of undefined macros that are interesting (because they're used
in an #ifdef or a defined(...)) are now available through
Document::undefinedMacroUses().

Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2009-09-25 16:08:01 +02:00
Roberto Raggi
e77166a002 Don't include whitespaces and comments at the end of macro definitions. 2009-08-24 14:01:32 +02:00
hjk
93cbef8724 long live the king 2009-08-14 09:30:56 +02:00
Thiago Macieira
d0457b70e3 Compile the C++ parser library with Sun CC 5.9.
Things you mustn't do:
1) end an enum with a comma

2) #include <cxxxx> and not use std::

3) use anonymous structures

All three things are invalid C++. Anonymous structures inside
anonymous unions are allowed by GCC, but that doesn't mean it's valid.
2009-08-03 14:59:42 +02:00
Roberto Raggi
3e54a65a69 Replaced T_INT_LITERAL and T_FLOAT_LITERAL with T_NUMERIC_LITERAL. 2009-07-10 15:45:09 +02:00
Roberto Raggi
d788306781 Don't expand object-like macro when preprocessing in fast-mode. 2009-07-09 17:52:31 +02:00
Roberto Raggi
2f649be146 Disable macro expansion when preprocessing in fast-mode. 2009-07-06 09:53:25 +02:00
Roberto Raggi
b2df9bddec Made foreach a keyword when parsing with qtMocRun 2009-07-03 11:00:36 +02:00
Roberto Raggi
3cdd48067c Introduced ForeachStatementAST and the bits to parse foreach statements when qtMocRun is enabled. 2009-07-03 09:12:58 +02:00
Roberto Raggi
ed2eb296b1 Fixed possible crash in the preprocessing phase when the first token in the
`original' (not preprocessed) token stream has the whitespace atttribute on.
2009-07-01 10:49:27 +02:00
Roberto Raggi
1219b31e03 Produce `join' tokens. 2009-06-29 14:31:25 +02:00
Jason McDonald
884b7af769 Update license headers and sales contact details.
Reviewed-by: Trust Me
2009-06-17 00:01:27 +10:00
Roberto Raggi
e2a0a4d7c5 Keep the original encoded text around while preprocessing. 2009-06-15 15:39:20 +02:00
Roberto Raggi
bdf6c3d0be Store the encoded file name in a QString. 2009-05-27 15:34:13 +02:00
Roberto Raggi
d46a1447f1 Fixed possible crash in std::isspace(ch) when ch is a unicode char. 2009-05-15 16:01:02 +02:00
Roberto Raggi
483449e420 There is no output stream so there's nothing to expand. 2009-05-13 18:16:28 +02:00
Roberto Raggi
caad98ec4c Refactored a bit the preprocessor so we can use it to generate file dependencies. 2009-05-13 15:29:59 +02:00
Roberto Raggi
424dd77e18 Added support for Q_SIGNAL and Q_SLOT. 2009-03-25 11:50:17 +01:00
Thorbjørn Lindeijer
b789ffa91b Added and corrected copyright headers 2009-03-20 14:59:12 +01:00
dt
f7240bd665 Fixes: bin dir of msvc qt versions was not added to the path
The setting of msvc environments variables overwrote that. Fix that by running the script with the correct environment.
2009-03-19 18:30:11 +01:00
Roberto Raggi
4613da1c8b Mark the generated tokens in the token stream. 2009-03-04 14:36:47 +01:00
Roberto Raggi
064201ff85 Mark the generated regions of text. 2009-03-04 14:36:47 +01:00
Roberto Raggi
e253f39360 Store the actual arguments of the macro expansions. 2009-03-04 11:47:30 +01:00
Roberto Raggi
5bbb882b3d Introduced expandBuiltinMacro(). 2009-03-03 17:23:12 +01:00
Roberto Raggi
ca7cc122cb Simplified Preprocessor::preprocess() 2009-03-03 17:06:42 +01:00
Roberto Raggi
7327a8ea4d Introduced skipActualArguments(). 2009-03-03 16:59:55 +01:00
Roberto Raggi
1d75990667 Introduced processObjectLikeMacro(). 2009-03-03 16:56:55 +01:00
Roberto Raggi
b316939dff Introduced expandObjectLikeMacro(). 2009-03-03 16:46:21 +01:00
Roberto Raggi
55d0e4f860 Improved the way we expand function-like macros when we can't collect all the arguments. 2009-03-03 16:32:08 +01:00
Roberto Raggi
656d70fa74 Introduced expandFunctionLikeMacro(). 2009-03-03 16:19:03 +01:00
Roberto Raggi
3d6f7de909 Context-sensitive highlighting. 2009-03-03 13:57:08 +01:00
Roberto Raggi
63c012a242 Fixed: token separators. 2009-03-03 11:28:36 +01:00
Roberto Raggi
4c7e3ed836 Add the _right_ number of spaces. 2009-03-03 11:14:12 +01:00
Roberto Raggi
454438e47d More cleanup. 2009-03-03 10:41:20 +01:00
Roberto Raggi
ae04679373 Introduced processNewline() and processSkippingBlocks(). 2009-03-03 10:27:02 +01:00
Roberto Raggi
c1ea5126dd Reserve some space. 2009-03-03 10:16:43 +01:00
Roberto Raggi
d7e86c22b6 Cleanup the function-like macro expansion. 2009-03-03 10:13:51 +01:00
Roberto Raggi
2a8327e57f Obsoleted code. 2009-03-03 09:58:54 +01:00
Roberto Raggi
ba200c7834 Some minor cleanup in processInclude(). 2009-03-03 09:52:50 +01:00
Roberto Raggi
ebe17889f4 Some refactoring of the preprocessor, it'll simplify my next commits. 2009-03-02 19:03:07 +01:00
Roberto Raggi
ed69c39906 More cleanup 2009-03-02 18:15:58 +01:00
Roberto Raggi
f4e875b9bb Initial testing of the preprocessor. 2009-03-02 11:30:43 +01:00
hjk
8ca887aae2 Fixes: change file license headers to include LGPL 2009-02-25 09:15:00 +01:00
Roberto Raggi
f63b8e6693 --warnings 2009-02-16 18:56:35 +01:00
Roberto Raggi
4ffed7a119 Fixes: Parsing of #import directives. 2009-02-05 14:30:25 +01:00
Roberto Raggi
44ed62c181 Fixes: Expand the #elif's condition. 2009-01-20 11:29:54 +01:00
Daniel Molkentin
59affcfffc Bump year in licence header. 2009-01-13 19:22:14 +01:00