kc3-lang/angle/src/compiler/preprocessor/new/MacroExpander.cpp

Branch :


Log

Author Commit Date CI Message
433f4aaa 2012-07-18 17:29:52 Fix always true condition in assert in MacroExpander.cpp. Issue: 349 Review URL: https://codereview.appspot.com/6420046/ git-svn-id: https://angleproject.googlecode.com/svn/trunk@1228 736b8ea6-26fd-11df-bfd4-992fa37f6226
6c0c2d87 2012-07-18 15:49:56 Do not call MacroExpander::popMacro() from MacroExpander::~MacroExpander(). MacroExpander::popMacro() assumes that the macro being popped has been fully parsed. This may not be true for MacroExpander destructor which may get called anytime the compiler decides to abort the compilation process. This patch just deletes the macro-contexts pushed in the stack without validating the parse state of current macro. BUG=348 Review URL: https://codereview.appspot.com/6415043 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1227 736b8ea6-26fd-11df-bfd4-992fa37f6226
f115592d 2012-06-28 23:34:30 Used std::ostringstream instead of std::stringstream wherever applicable. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1176 736b8ea6-26fd-11df-bfd4-992fa37f6226
5b6a68e0 2012-06-28 20:29:13 Replaced pp::Token::value with pp::Token::text. The term value will be used for a function which will convert text to integer/float constant. git-svn-id: https://angleproject.googlecode.com/svn/trunk@1175 736b8ea6-26fd-11df-bfd4-992fa37f6226
f3cdb460 2012-06-19 18:39:48 Added support for pre-defined macros. Review URL: https://codereview.appspot.com/6301084 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1157 736b8ea6-26fd-11df-bfd4-992fa37f6226
7fc38ddd 2012-06-14 18:23:23 Implemented macro expansion. Review URL: https://codereview.appspot.com/6303052 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1148 736b8ea6-26fd-11df-bfd4-992fa37f6226
98d04ec8 2012-05-21 22:47:20 Implemented #define and #undef directives. Review URL: https://codereview.appspot.com/6215072 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1092 736b8ea6-26fd-11df-bfd4-992fa37f6226
2c958eef 2012-05-17 20:35:42 Moved error-handling to a separate class - Diagnostics. We were earlier returning errors as tokens which did not work very well when error occured while parsing a preprocessor directive. Now all returned tokens are valid. Errors are reported via an abstract Diagnostics interface. Updated unit-tests with the new scheme. Review URL: https://codereview.appspot.com/6203089 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1087 736b8ea6-26fd-11df-bfd4-992fa37f6226
04d7d22b 2012-05-16 19:24:07 Reafactored Lexer class to allow chaining. The full chain when parsing #if directive looks like this: Preprocessor -> MacroExpander -> DirectiveHandler -> MacroExpander -> DefinedFilter -> Tokenizer. This chain dynamically changes depending on the current context. Also added an incomplete implementation of #if handling and ExpressionParser to illustrate how this design is supposed to work. Review URL: https://codereview.appspot.com/6203060 git-svn-id: https://angleproject.googlecode.com/svn/trunk@1084 736b8ea6-26fd-11df-bfd4-992fa37f6226