summaryrefslogtreecommitdiffstats
path: root/clang/Lex/MacroExpander.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* The leading space flag of a stringized string matches that of the # operator.Chris Lattner2006-07-151-4/+4
| | | | llvm-svn: 38713
* Implement the microsoft charize extension #@Chris Lattner2006-07-151-4/+33
| | | | llvm-svn: 38712
* Add a comment giving an example of the errorChris Lattner2006-07-151-0/+1
| | | | llvm-svn: 38710
* Implement stringification.Chris Lattner2006-07-151-4/+43
| | | | llvm-svn: 38709
* Set up infrastructure for function-like macro expansion with preexpansionChris Lattner2006-07-141-7/+89
| | | | | | stringizing, etc. llvm-svn: 38707
* Implement "lparen scanning" for lexer buffers, by making "skipping lexing"Chris Lattner2006-07-111-12/+7
| | | | | | | completely reversible. This implements tests 3/4 of test/Preprocessor/macro_fn_lparen_scan.c llvm-svn: 38699
* Implement scanning-for-( more correctly. This implementsChris Lattner2006-07-111-0/+16
| | | | | | | | | test/Preprocessor/macro_fn_lparen_scan.c, but is not yet complete. Add some FIXME's about missing diagnostics on empty macro args. Improve some comments. llvm-svn: 38694
* Read, remember, and validate the arguments provided the a function-styleChris Lattner2006-07-091-2/+23
| | | | | | macro invocation. llvm-svn: 38685
* Implement the __TIME__ and __DATE__ builtin macros.Chris Lattner2006-06-301-23/+7
| | | | llvm-svn: 38597
* Implement Preprocessor/macro_expandloc.c by giving the optimized macroChris Lattner2006-06-261-12/+24
| | | | | | expansion case a correct source location. llvm-svn: 38580
* Implement a new type of FileID: FileIDInfo::MacroExpansion. For tokens thatChris Lattner2006-06-211-3/+13
| | | | | | | | | came from a macro expansion, this allows us to keep track of both where the character data came from and where the logical position of the token is (at the expansion site). This implements Preprocessor/indent_macro.c, and reduces the number of cpp iostream -E diffs vs GCC from 2589 to 2297. llvm-svn: 38557
* Rename LexerToken::getSourceLocation -> getLocationChris Lattner2006-06-181-1/+1
| | | | llvm-svn: 38553
* Make a fundamental change to the way we represent the location of LexerToken's.Chris Lattner2006-06-181-0/+12
| | | | | | | | | | | | | | Now, instead of keeping a pointer to the start of the token in memory, we keep the start of the token as a SourceLocation node. This means that each LexerToken knows the full include stack it was created with, and means that the LexerToken isn't reliant on a "CurLexer" member to be around (lexer tokens would previously go out of scope when their lexers were deallocated). This simplifies several things, and forces good cleanup elsewhere. Now the Preprocessor is the one that knows how to dump tokens/macros and is the one that knows how to get the spelling of a token (it has all the context). llvm-svn: 38551
* Remove manual conditional error handling code.Chris Lattner2006-06-181-2/+1
| | | | llvm-svn: 38540
* Initial checkin of c-language parserChris Lattner2006-06-181-0/+42
llvm-svn: 38539
OpenPOWER on IntegriCloud