Chris Lattner
503fadc90f
Parse jump-statement: goto, continue, break, return.
...
llvm-svn: 38849
2006-08-10 05:45:44 +00:00
Chris Lattner
ab180365ac
Add a warning
...
llvm-svn: 38848
2006-08-10 05:22:36 +00:00
Chris Lattner
53361ac130
Refactor init-declarator-list parsing code to allow for-statements to have
...
initializers in them.
llvm-svn: 38847
2006-08-10 05:19:57 +00:00
Chris Lattner
9075bd7727
implement switch/while/do/for statement parsing, implementing Parser/statements.c:test2
...
llvm-svn: 38846
2006-08-10 04:59:57 +00:00
Chris Lattner
c951dae2a4
Parse if statements
...
llvm-svn: 38844
2006-08-10 04:23:57 +00:00
Chris Lattner
0ccd51ebe2
Start parsing statements and function bodies. This implements
...
Parser/statements.c:test1.
llvm-svn: 38842
2006-08-09 05:47:47 +00:00
Chris Lattner
fff824fe14
Simplify and fill out parsing of function bodies.
...
llvm-svn: 38841
2006-08-07 06:31:38 +00:00
Chris Lattner
2534b877b4
add some accessor methods.
...
llvm-svn: 38840
2006-08-07 05:50:47 +00:00
Chris Lattner
bf320c84a5
better comments, infrastructure for parsing function bodies.
...
llvm-svn: 38839
2006-08-07 05:05:30 +00:00
Chris Lattner
d5d0a6c2b5
Capture function information, provide a place to validate Declarator information.
...
llvm-svn: 38838
2006-08-07 00:58:14 +00:00
Chris Lattner
6c7416c382
Start capturing pointer and array declarator info.
...
llvm-svn: 38836
2006-08-07 00:19:33 +00:00
Chris Lattner
14776b9501
Implement some more error recovery
...
llvm-svn: 38835
2006-08-06 22:27:40 +00:00
Chris Lattner
0ef405cdb9
MAke the default be to stop at ;'s
...
llvm-svn: 38834
2006-08-06 22:00:57 +00:00
Chris Lattner
eec40f9990
Start implementing error recovery, this implements test/Parser/recovery-1.c
...
llvm-svn: 38833
2006-08-06 21:55:29 +00:00
Chris Lattner
8a39edc931
Warn for c99-specific array use
...
llvm-svn: 38830
2006-08-06 18:33:32 +00:00
Chris Lattner
e8074e65dd
Parse array declarators, tested by Parser/declarators.c
...
llvm-svn: 38828
2006-08-06 18:30:15 +00:00
Chris Lattner
acd58a3c33
Parse parenthesized and function declarators now, allowing us to parse things
...
like: "void (*signal(int, void (*)(int)))(int);"
llvm-svn: 38824
2006-08-06 17:24:14 +00:00
Chris Lattner
15356a7065
Start capturing declarator information in a new Declarator object.
...
llvm-svn: 38823
2006-08-06 00:02:28 +00:00
Chris Lattner
2df305abfa
New file
...
llvm-svn: 38822
2006-08-05 23:08:14 +00:00
Chris Lattner
971c6b681a
Add scaffolding for scopes.
...
llvm-svn: 38821
2006-08-05 22:46:42 +00:00
Chris Lattner
2d4f2c3ebe
Update comment
...
llvm-svn: 38820
2006-08-05 22:09:17 +00:00
Chris Lattner
d9c3c59fc0
Continue work on declspecs and declarations
...
llvm-svn: 38818
2006-08-05 06:26:47 +00:00
Chris Lattner
f63f89acc2
Handle __thread and storage-class-specifiers
...
llvm-svn: 38816
2006-08-05 03:28:50 +00:00
Chris Lattner
fe533e3ecd
make error message more useful
...
llvm-svn: 38815
2006-08-05 02:54:06 +00:00
Chris Lattner
1ae23294fb
C99 requires at least one type specifier.
...
llvm-svn: 38813
2006-08-04 06:42:31 +00:00
Chris Lattner
fef9d2bba7
Diagnose specifiers with invalid _Complex/_Imaginary components.
...
llvm-svn: 38812
2006-08-04 06:36:52 +00:00
Chris Lattner
839713c085
Emit diagnostics for things like 'signed _Bool' and 'short float'
...
llvm-svn: 38811
2006-08-04 06:15:52 +00:00
Chris Lattner
494f27a0b8
Enable _Bool as an extension in C++
...
llvm-svn: 38810
2006-08-04 06:12:13 +00:00
Chris Lattner
da48a8e66b
Parse and validate cvr type-qualifiers
...
llvm-svn: 38807
2006-08-04 05:25:55 +00:00
Chris Lattner
22dc378630
Split LangOptions out into its own header
...
llvm-svn: 38806
2006-08-04 04:44:06 +00:00
Chris Lattner
b9093cd1d0
Add an initial cut at a datastructure for holding declspec's.
...
llvm-svn: 38805
2006-08-04 04:39:53 +00:00
Chris Lattner
70f32b7d68
Add initial very-incomplete support for parsing declarations. We just manage
...
to be able to parse "int x;" now.
llvm-svn: 38803
2006-07-31 05:09:04 +00:00
Chris Lattner
0bb5f835e4
initial support for parsing, right now just ;'s at the top level, but this
...
adds most simple scaffolding.
llvm-svn: 38802
2006-07-31 01:59:18 +00:00
Chris Lattner
34dfaee634
Misc cleanups
...
llvm-svn: 38801
2006-07-31 01:57:54 +00:00
Chris Lattner
95a06b34f7
Simplify implementation of varargs macros by adding the __VA_ARGS__ token
...
to the formal argument list of a C99 varargs macro.
llvm-svn: 38800
2006-07-30 08:40:43 +00:00
Chris Lattner
457fc15bc5
Implement comment saving mode: the -C and -CC options.
...
llvm-svn: 38783
2006-07-29 06:30:25 +00:00
Chris Lattner
775d832110
Implement the GNU comma swallowing extension. This implements
...
test/Preprocessor/macro_fn_comma_swallow.c
llvm-svn: 38780
2006-07-29 04:39:41 +00:00
Chris Lattner
21c8b8f71e
Implement support for __VA_ARGS__, allowing test/Preprocessor/macro_fn_varargs_iso.c
...
to pass.
llvm-svn: 38776
2006-07-29 04:04:22 +00:00
Chris Lattner
6d9f8ed3b6
No need for explicit underscore anymore.
...
llvm-svn: 38773
2006-07-29 03:52:06 +00:00
Chris Lattner
f9771166ed
add method to unpoison something for __VA_ARGS__.
...
llvm-svn: 38772
2006-07-29 03:47:18 +00:00
Chris Lattner
3ce273025e
Remove __VA_ARGS__ "keyword".
...
llvm-svn: 38771
2006-07-29 03:47:08 +00:00
Chris Lattner
6e4bf523e6
Implement C99 6.10.3.4p2, testcase here: Preprocessor/macro_disable3.c.
...
llvm-svn: 38760
2006-07-27 06:59:25 +00:00
Chris Lattner
7a4af3b73d
Change Preprocessor::ReadFunctionLikeMacroArgs to use a SmallVector to lex
...
argument tokens into instead of a real vector. This avoids some malloc
traffic in common cases. In an "abusive macro expansion" testcase, this
reduced -Eonly time by 25%.
llvm-svn: 38757
2006-07-26 06:26:52 +00:00
Chris Lattner
c1410dc1e6
Change MacroArgs to allocate space for the unexpanded tokens immediately after
...
the MacroArgs object itself. This is a bit more efficient and will be even more
so shortly.
llvm-svn: 38756
2006-07-26 05:22:49 +00:00
Chris Lattner
6fc08bc77d
Add a new getArgLength method and refactor some code to use it
...
llvm-svn: 38755
2006-07-26 04:55:32 +00:00
Chris Lattner
7021657a0f
Implement a FIXME: don't copy token array into a token vector, instead, macroexpander should expand from an array directly.
...
llvm-svn: 38754
2006-07-26 03:50:40 +00:00
Chris Lattner
36b6e8134e
speed up a brutal macro-expansion torture test by about 30% (1.5 -> 1.0s)
...
by turning vectors of vectors into a single vector, reducing pressure on
malloc. This can still be improved.
llvm-svn: 38753
2006-07-21 06:38:30 +00:00
Chris Lattner
7fa8c889e2
Add a single-entry cache for macro instantation locations. This significantly
...
reduces the number of FileID's made and tracked.
llvm-svn: 38752
2006-07-20 06:48:52 +00:00
Chris Lattner
a5f4c882e2
disable malformed string/character errors when in raw mode. This fixes
...
test/Lexer/badstring_in_if0.c
llvm-svn: 38751
2006-07-20 06:08:47 +00:00
Chris Lattner
510ab61fd3
Add optimization for identifier##identifier -> identifier, the most common case of token pasting.
...
llvm-svn: 38747
2006-07-20 04:47:30 +00:00
Chris Lattner
538d7f3c27
Simplify "raw lexing mode" even further. Now the preprocessor is only called
...
into when a hard error is found. This simplifies logic and eliminates the need
for the preprocessor to know about raw mode.
llvm-svn: 38746
2006-07-20 04:31:52 +00:00
Chris Lattner
22549fe6a5
With recent simplifications, this check can be removed from a fastpath.
...
llvm-svn: 38745
2006-07-20 04:20:02 +00:00
Chris Lattner
4505e89d0f
Make diagnostic message better
...
llvm-svn: 38740
2006-07-19 06:41:46 +00:00
Chris Lattner
01ecf835c2
Implement basic token pasting (## operator). This implements
...
test/Preprocessor/macro_paste_simple.c and macro_paste_bad.c. There are
several known bugs still.
llvm-svn: 38733
2006-07-19 05:42:48 +00:00
Chris Lattner
2183a6e8f4
Make end-of-file handling much less recursive. This reduces the worst case
...
stack depth sampled by shark from ~34 to ~17 frames when preprocessing <iostream>.
llvm-svn: 38726
2006-07-18 06:36:12 +00:00
Chris Lattner
7667d0d942
Implement support for lexing from a pre-constructed token stream.
...
Use this support to implement function-like macro argument preexpansion.
This implements test/Preprocessor/macro_fn_preexpand.c
llvm-svn: 38724
2006-07-16 18:16:58 +00:00
Chris Lattner
e1954ac1a3
Fix comment
...
llvm-svn: 38721
2006-07-15 23:40:13 +00:00
Chris Lattner
203b4568e2
Implement basic argument substitution. This implements
...
test/Preprocessor/macro_fn_disable_expand.c
llvm-svn: 38720
2006-07-15 21:07:40 +00:00
Chris Lattner
2ada5d3890
More changes from formals -> actuals.
...
llvm-svn: 38717
2006-07-15 07:51:24 +00:00
Chris Lattner
ee8760b21b
Rename macroformalargs -> MacroArgs, as it represents the actual arguments,
...
not the formal arguments, to a macro.
llvm-svn: 38716
2006-07-15 07:42:55 +00:00
Chris Lattner
c653246bfb
Eliminate the IdentifierInfo::IsMacroArg flag.
...
llvm-svn: 38715
2006-07-15 06:55:18 +00:00
Chris Lattner
c783d1dff9
Implement the microsoft charize extension #@
...
llvm-svn: 38712
2006-07-15 06:11:25 +00:00
Chris Lattner
2b271db205
Lex the microsoft 'charize' extension.
...
llvm-svn: 38711
2006-07-15 05:41:09 +00:00
Chris Lattner
0707bd3042
Implement stringification.
...
llvm-svn: 38709
2006-07-15 05:23:58 +00:00
Chris Lattner
ecc39e9325
Change Lexer::Stringify to not add ""'s around the string.
...
llvm-svn: 38708
2006-07-15 05:23:31 +00:00
Chris Lattner
b935d8cd90
Set up infrastructure for function-like macro expansion with preexpansion
...
stringizing, etc.
llvm-svn: 38707
2006-07-14 06:54:44 +00:00
Chris Lattner
b94ec7b668
Add an API so that external clients can create strings in the scratch buffer.
...
llvm-svn: 38706
2006-07-14 06:54:10 +00:00
Chris Lattner
041bef8b32
The lexer should not warn about stray characters, it should just return
...
tok::unknown tokens. This fixes test/Lexer/unknown-char.c
llvm-svn: 38703
2006-07-11 05:52:53 +00:00
Chris Lattner
678c880a69
Move Preprocessor::isNextPPTokenLParen to Lexer::isNextPPTokenLParen, where
...
it more rightly belongs.
llvm-svn: 38702
2006-07-11 05:46:12 +00:00
Chris Lattner
3ebcf4e2cd
Change Preprocessor::SkippingContents into Lexer::LexingRawMode. Raw mode
...
is an intra-lexer property, not a inter-lexer property, so it makes sense
for it to be define here. It also makes no sense for macros, and allows us
to define it more carefully in the header.
While I'm at it, improve comments and structuring in Lexer.h
llvm-svn: 38701
2006-07-11 05:39:23 +00:00
Chris Lattner
d8aee0e81b
Implement "lparen scanning" for lexer buffers, by making "skipping lexing"
...
completely reversible. This implements tests 3/4 of
test/Preprocessor/macro_fn_lparen_scan.c
llvm-svn: 38699
2006-07-11 05:04:55 +00:00
Chris Lattner
a12dd15b56
ext-warn on empty macro arguments if in pre-c99 mode
...
llvm-svn: 38697
2006-07-11 04:09:02 +00:00
Chris Lattner
370c135dce
improve comment
...
llvm-svn: 38696
2006-07-11 04:03:32 +00:00
Chris Lattner
2acdac4200
Implement scanning-for-( more correctly. This implements
...
test/Preprocessor/macro_fn_lparen_scan.c, but is not yet complete.
llvm-svn: 38695
2006-07-11 04:02:48 +00:00
Chris Lattner
7818605f83
Read, remember, and validate the arguments provided the a function-style
...
macro invocation.
llvm-svn: 38685
2006-07-09 00:45:31 +00:00
Chris Lattner
8eede3e6c0
Remove pointless comments.
...
llvm-svn: 38684
2006-07-08 23:24:05 +00:00
Chris Lattner
815a1f97f6
Diagnose C99 6.10.3.2p1
...
llvm-svn: 38683
2006-07-08 20:48:04 +00:00
Chris Lattner
6e0d42c6f8
Add identifiers for macro arguments to MacroInfo, check for duplicates,
...
enhance macro equality testing to verify argument lists match.
llvm-svn: 38682
2006-07-08 20:32:52 +00:00
Chris Lattner
cefc768f5b
Start reading/validating the argument list for a function-like macro.
...
llvm-svn: 38681
2006-07-08 08:28:12 +00:00
Chris Lattner
21284dfdd1
Implement checking for macro equality, C99 6.10.3.2
...
llvm-svn: 38680
2006-07-08 07:16:08 +00:00
Chris Lattner
e8eef3207b
add infrastructure for warning if redef'd macro bodies differ, but don't
...
fully implement it.
Fix warning on #define __LINE__ to warn about redefinition, not #undef.
llvm-svn: 38679
2006-07-08 07:01:00 +00:00
Chris Lattner
8ff7199e4b
Warn about __VA_ARGS__ when used outside of a macro expansion
...
llvm-svn: 38678
2006-07-06 05:17:39 +00:00
Chris Lattner
bff18d5649
Diagnose erroneous macro definitions where a ## operator is at the start/end of the macro
...
llvm-svn: 38677
2006-07-06 04:49:18 +00:00
Chris Lattner
ae41157ee5
Implement support for arbitrarily mapping non-error diagnostics to be either
...
ignored, warned about, or error'd. Use this to implement the -Wunused_macros
command line option.
llvm-svn: 38676
2006-07-05 00:55:08 +00:00
Chris Lattner
d3a15f7f4e
Add a fast-path in getSpelling for identifiers.
...
llvm-svn: 38672
2006-07-04 23:01:03 +00:00
Chris Lattner
ef9eae1c44
Change the Preprocessor::getSpelling interface to let it be zero-copy in
...
the common case.
llvm-svn: 38671
2006-07-04 22:33:12 +00:00
Chris Lattner
5f084fd5fc
Add newline at end of file
...
llvm-svn: 38657
2006-07-04 19:03:36 +00:00
Chris Lattner
e3519cc948
Change EvaluateValue/EvaluateDirectiveSubExpr to be static functions in
...
PPExpressions.cpp instead of methods.
llvm-svn: 38652
2006-07-04 18:11:39 +00:00
Chris Lattner
c79f6fb108
Rename IdentifierTokenInfo -> IdentifierInfo.
...
llvm-svn: 38650
2006-07-04 17:53:21 +00:00
Chris Lattner
a8654ca2cf
Eliminate MultipleIncludeOpt::ReadDirective and all calls to it. Any directives
...
that are lexed are made up of tokens, so the calls are just ugly and redundant.
Hook up the MIOpt for the #if case. PPCExpressions doesn't currently implement
the hook though, so we still don't handle #if !defined(X) with the MIOpt.
llvm-svn: 38649
2006-07-04 17:42:08 +00:00
Chris Lattner
3665f161ca
Implement the multiple-include file optimization.
...
llvm-svn: 38647
2006-07-04 07:26:10 +00:00
Chris Lattner
371ac8a9b7
Implement the automaton for recognizing files with controlling macros.
...
llvm-svn: 38646
2006-07-04 07:11:10 +00:00
Chris Lattner
01d66cc891
Implement #ident and #sccs
...
llvm-svn: 38643
2006-07-03 22:16:27 +00:00
Chris Lattner
d7de629c32
Move a method inline
...
llvm-svn: 38639
2006-07-03 06:05:41 +00:00
Chris Lattner
bd07659488
Move a PragmaNamespace method out of line, add class comment for PragmaNamespace.
...
llvm-svn: 38637
2006-07-03 05:34:49 +00:00
Chris Lattner
13044d942d
Implement -Wunused-macros functionality.
...
llvm-svn: 38632
2006-07-03 05:16:44 +00:00
Chris Lattner
4ec473f871
Add support to track the real top-level file.
...
llvm-svn: 38630
2006-07-03 05:16:05 +00:00
Chris Lattner
91cbf11c10
Add a new IdentifierVisitor class and a new IdentifierTable::VisitIdentifiers
...
method to support iteration over all identifiers.
llvm-svn: 38628
2006-07-03 04:28:52 +00:00
Chris Lattner
44f8a66bcc
Fix test/Preprocessor/macro_defined.c, factor some code.
...
llvm-svn: 38627
2006-07-03 01:27:27 +00:00
Chris Lattner
aaf09115c4
Implement a FIXME: reject '#define defined'.
...
llvm-svn: 38625
2006-07-03 01:17:59 +00:00
Chris Lattner
e3e81ea8aa
Refactor some code into a new Lexer::Stringify method.
...
llvm-svn: 38624
2006-07-03 01:13:26 +00:00
Chris Lattner
a37664b3fb
Move a virtual method out-of-line
...
llvm-svn: 38617
2006-07-02 22:45:51 +00:00
Chris Lattner
1840e491dc
Remove Lexer::BufferStart, an unneeded instance var.
...
llvm-svn: 38615
2006-07-02 22:30:01 +00:00
Chris Lattner
ecfeafe3ba
Fix some minor bugs handling _Pragma, including
...
test/Preprocessor/_Pragma_syshdr.c
llvm-svn: 38609
2006-07-02 21:26:45 +00:00
Chris Lattner
ef0dbae5ab
remove dead ivar
...
llvm-svn: 38607
2006-07-02 21:17:13 +00:00
Chris Lattner
69772b026e
Implement the _Pragma-style of pragma handling, implementing
...
test/Preprocessor/_Pragma-poison.c.
This unifies the MacroStack and IncludeStack together into IncludeMacroStack.
llvm-svn: 38606
2006-07-02 20:34:39 +00:00
Chris Lattner
4cca5ba7da
Allow the buffer start/end positions to be optionally specified. Make sure
...
to use them instead of the current buffer start/end when computing diagnostics.
llvm-svn: 38603
2006-07-02 20:05:54 +00:00
Chris Lattner
847e0e4552
Implement __TIMESTAMP__
...
llvm-svn: 38602
2006-07-01 23:49:16 +00:00
Chris Lattner
c1283b90a0
Implement __INCLUDE_LEVEL__ and __BASE_FILE__
...
llvm-svn: 38601
2006-07-01 23:16:30 +00:00
Chris Lattner
630b33c39e
Implement __FILE__
...
llvm-svn: 38600
2006-07-01 22:46:53 +00:00
Chris Lattner
4c37a8c353
Eliminate SourceManager::createFileIDForMacroExp, inlining it into its single use.
...
llvm-svn: 38599
2006-06-30 06:15:08 +00:00
Chris Lattner
c673f905d8
Implement the __TIME__ and __DATE__ builtin macros.
...
llvm-svn: 38597
2006-06-30 06:10:41 +00:00
Chris Lattner
7d6a4f6746
Expose a useful helper method.
...
llvm-svn: 38596
2006-06-30 06:10:08 +00:00
Chris Lattner
098dfc5e7e
Expose a new form of the getToken method.
...
llvm-svn: 38595
2006-06-30 06:09:36 +00:00
Chris Lattner
2dffd2b445
Factor logical line lookup better.
...
llvm-svn: 38594
2006-06-29 16:44:08 +00:00
Chris Lattner
0b8cfc2e69
Implement the __LINE__ builtin macro.
...
llvm-svn: 38589
2006-06-28 06:49:17 +00:00
Chris Lattner
3690f1513a
Initial implementation of the ScratchBuffer class.
...
llvm-svn: 38588
2006-06-28 06:48:36 +00:00
Chris Lattner
ec43eaf07a
Add a new SourceBuffer::getNewMemBuffer method.
...
llvm-svn: 38587
2006-06-28 06:35:31 +00:00
Chris Lattner
677757a2c0
Remove dead variables.
...
Add initial support for builtin macros, including warning if they are defined or undefined.
Register __LINE__ as a builtin macro.
llvm-svn: 38586
2006-06-28 05:26:32 +00:00
Chris Lattner
274690ce76
Reindent comments.
...
llvm-svn: 38585
2006-06-28 05:25:35 +00:00
Chris Lattner
f373a4af56
Refactor HandleIdentifier to pull macro expansion into its own method.
...
llvm-svn: 38583
2006-06-26 06:16:29 +00:00
Chris Lattner
e9a5e18e47
remove some obsolete comments
...
llvm-svn: 38582
2006-06-26 06:08:38 +00:00
Chris Lattner
67b07cb6fe
Implement Preprocessor/macro_expandloc.c by giving the optimized macro
...
expansion case a correct source location.
llvm-svn: 38580
2006-06-26 02:03:42 +00:00
Chris Lattner
f6fd68add5
Fix Preprocessor/macro_expandloc2.c
...
llvm-svn: 38579
2006-06-26 01:48:23 +00:00
Chris Lattner
685730f964
To not treat macro invocation locations as part of the include stack
...
when reporting a diagnostic.
llvm-svn: 38577
2006-06-26 01:36:22 +00:00
Chris Lattner
269c232e67
implement #pragma GCC dependency
...
llvm-svn: 38574
2006-06-25 06:23:00 +00:00
Chris Lattner
55a60954f9
Implement #pragma GCC system_header
...
llvm-svn: 38569
2006-06-25 04:20:34 +00:00
Chris Lattner
1786217e0b
Finish implementation of #pragma once. Implement #pragma GCC poison.
...
llvm-svn: 38568
2006-06-24 22:12:56 +00:00
Chris Lattner
b876183219
implement the pragma handling infrastructure. The only pragma so far is
...
#pragma once, and it is not completely implemented.
llvm-svn: 38566
2006-06-24 21:31:03 +00:00
Chris Lattner
c899718274
Track which headers are system and non-C++-clean-system headers. Use this
...
information to print the 3/4 flags correctly on #line directives emitted
in -E mode.
llvm-svn: 38562
2006-06-22 05:52:16 +00:00
Chris Lattner
0c885f5581
Improve #line emission in -E mode to include file entry/exits. This is
...
still pretty hacky because it doesn't compute the 3/4 markers correctly.
llvm-svn: 38561
2006-06-21 06:50:18 +00:00
Chris Lattner
9a13bde643
Implement a new SourceManager::getSourceName method
...
llvm-svn: 38560
2006-06-21 04:57:09 +00:00
Chris Lattner
bb893c3d67
Update SourceManager::getLineNumber to return the correct line # for macro
...
instantiations.
llvm-svn: 38558
2006-06-21 03:27:29 +00:00
Chris Lattner
30709b038d
Implement a new type of FileID: FileIDInfo::MacroExpansion. For tokens that
...
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
2006-06-21 03:01:55 +00:00
Chris Lattner
5f4b1ff9fd
Modify SourceManager to make way for future macro locations and #line support
...
no functionality change yet
llvm-svn: 38556
2006-06-20 05:02:40 +00:00
Chris Lattner
8bb4edb236
remove an extraneous method
...
llvm-svn: 38554
2006-06-18 16:37:30 +00:00
Chris Lattner
50b497e072
Rename LexerToken::getSourceLocation -> getLocation
...
llvm-svn: 38553
2006-06-18 16:32:35 +00:00
Chris Lattner
5b4876807a
Move the LexerToken definition out to LexerToken.h
...
llvm-svn: 38552
2006-06-18 16:28:59 +00:00
Chris Lattner
d01e291332
Make a fundamental change to the way we represent the location of LexerToken's.
...
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
2006-06-18 16:22:51 +00:00
Chris Lattner
7e0dd2b11f
Fix a fixme by passing language options into LexerToken::dump, instead of
...
relying on TheLexer.
llvm-svn: 38549
2006-06-18 07:44:41 +00:00
Chris Lattner
33ce7283ee
Change the token representation to take a Start and Length instead of a
...
Start/End pointer.
llvm-svn: 38548
2006-06-18 07:35:33 +00:00
Chris Lattner
1f5830546a
Make a method a static function
...
llvm-svn: 38543
2006-06-18 06:53:56 +00:00
Chris Lattner
7966aafd9b
Simplify an API
...
llvm-svn: 38541
2006-06-18 06:50:36 +00:00
Chris Lattner
cb28334ea4
Remove manual conditional error handling code.
...
llvm-svn: 38540
2006-06-18 06:48:37 +00:00
Chris Lattner
22eb972f38
Initial checkin of c-language parser
...
llvm-svn: 38539
2006-06-18 05:43:12 +00:00