Chris Lattner
1e27fe165c
Add new TargetInfo class to clang.
...
llvm-svn: 38971
2006-10-14 07:06:20 +00:00
Chris Lattner
509d3c00ed
Rename LexerToken methods to be more consistent
...
llvm-svn: 38970
2006-10-14 05:19:39 +00:00
Chris Lattner
8c2048710d
Rename LexerToken methods to be more consistent.
...
llvm-svn: 38969
2006-10-14 05:19:21 +00:00
Chris Lattner
56c7a5549c
Minor edits
...
llvm-svn: 38968
2006-10-14 05:19:00 +00:00
Chris Lattner
d504f7d6c2
add notes
...
llvm-svn: 38967
2006-10-06 05:56:14 +00:00
Chris Lattner
8c76f87810
change default mode
...
llvm-svn: 38966
2006-10-06 05:56:09 +00:00
Chris Lattner
94b4ce3eae
don't abort
...
llvm-svn: 38965
2006-10-06 05:51:35 +00:00
Chris Lattner
ea2f706262
add notes
...
llvm-svn: 38964
2006-10-06 05:40:42 +00:00
Chris Lattner
65de4b6a6d
make this a bit nicer
...
llvm-svn: 38963
2006-10-06 05:40:30 +00:00
Chris Lattner
6f433fd2d3
add accessor
...
llvm-svn: 38962
2006-10-06 05:40:22 +00:00
Chris Lattner
b5600a6aa8
Parse ?:'s right
...
llvm-svn: 38961
2006-10-06 05:40:05 +00:00
Chris Lattner
d3e9895b9a
Initial support for semantic analysis and AST building for StringExpr nodes.
...
llvm-svn: 38960
2006-10-06 05:22:26 +00:00
Chris Lattner
19acaadc2b
more notes
...
llvm-svn: 38959
2006-10-06 05:20:10 +00:00
Chris Lattner
e1f4e21756
mention clang
...
llvm-svn: 38958
2006-10-06 04:16:41 +00:00
Chris Lattner
940edd4cff
Move clang driver into Driver subdir
...
llvm-svn: 38957
2006-10-06 04:16:30 +00:00
Chris Lattner
50f4f07ce5
move driver to new subdir
...
llvm-svn: 38956
2006-10-06 04:15:14 +00:00
Chris Lattner
a81fb94997
build in a new dir
...
llvm-svn: 38955
2006-10-06 04:15:06 +00:00
Chris Lattner
87d229a3ce
Significant extensions, write intro
...
llvm-svn: 38954
2006-10-06 04:10:25 +00:00
Chris Lattner
8f46a38503
new testcase
...
llvm-svn: 38953
2006-10-06 02:59:40 +00:00
Chris Lattner
051df7bfc4
Make this work with llvm cvs
...
llvm-svn: 38952
2006-08-27 07:12:21 +00:00
Chris Lattner
26da7302ce
Build AST's for sizeof/alignof with type operands.
...
llvm-svn: 38951
2006-08-24 06:49:19 +00:00
Chris Lattner
e550a4ea12
Build CastExpr AST nodes
...
llvm-svn: 38950
2006-08-24 06:37:51 +00:00
Chris Lattner
26115acb1c
Build AST's for sizeof/alignof an expr.
...
llvm-svn: 38949
2006-08-24 06:10:04 +00:00
Chris Lattner
6f3a117f81
switch MemberExpr to holding a field decl instead of a raw identifier.
...
llvm-svn: 38948
2006-08-24 05:19:28 +00:00
Chris Lattner
98286a4551
Allow expression actions to fail
...
llvm-svn: 38947
2006-08-24 05:02:11 +00:00
Chris Lattner
e1598f0184
Move the ExprResult struct from the Parser to the Actions.
...
llvm-svn: 38946
2006-08-24 04:56:36 +00:00
Chris Lattner
0eedafed1d
more comments.
...
llvm-svn: 38945
2006-08-24 04:56:27 +00:00
Chris Lattner
879b9ad083
Add initial support for simple-primary exprs, including DeclExprs.
...
llvm-svn: 38944
2006-08-24 04:53:44 +00:00
Chris Lattner
e165d944c2
Add AST nodes for array, call, . and ->.
...
llvm-svn: 38943
2006-08-24 04:40:38 +00:00
Chris Lattner
6d28d9b428
Invoke actions for postfix exprs
...
llvm-svn: 38942
2006-08-24 03:51:22 +00:00
Chris Lattner
de648186eb
Add actions for postfix exprs
...
llvm-svn: 38941
2006-08-24 03:51:14 +00:00
Chris Lattner
1b92649857
Add AST nodes and actions for paren exprs and simple unary ops.
...
llvm-svn: 38940
2006-08-23 06:42:10 +00:00
Chris Lattner
9b6d4cb90e
Add (basic) expression AST representation capabilities for int/fp/binops/condexpr.
...
Add callbacks for same.
Add "full locinfo" mode.
llvm-svn: 38939
2006-08-23 05:17:46 +00:00
Chris Lattner
c11438cee1
Implement first cut of ASTBuilder class.
...
llvm-svn: 38938
2006-08-18 05:17:52 +00:00
Chris Lattner
01b0f1be80
xcode 2.4
...
llvm-svn: 38937
2006-08-18 03:44:41 +00:00
Chris Lattner
38ba3363ef
Hook up more of the ASTStreamer
...
llvm-svn: 38936
2006-08-17 07:04:37 +00:00
Chris Lattner
73709eda2b
Stub out the ASTStreamer
...
llvm-svn: 38935
2006-08-17 06:28:25 +00:00
Chris Lattner
769044337a
add ast library
...
llvm-svn: 38934
2006-08-17 05:55:28 +00:00
Chris Lattner
3e7bd4ed44
Start adding support for printing out parser callbacks and adding ast building
...
llvm-svn: 38933
2006-08-17 05:51:27 +00:00
Chris Lattner
eb401b1bc7
updates
...
llvm-svn: 38932
2006-08-17 05:20:50 +00:00
Chris Lattner
d0745a08b6
New file
...
llvm-svn: 38931
2006-08-17 05:18:35 +00:00
Chris Lattner
3242dfdd55
move to AST
...
llvm-svn: 38930
2006-08-17 05:18:27 +00:00
Chris Lattner
0116c478e6
Implement asm statement parsing.
...
llvm-svn: 38929
2006-08-15 06:03:28 +00:00
Chris Lattner
5646b3e21c
Fix test/Parser/types.c
...
llvm-svn: 38928
2006-08-15 05:12:01 +00:00
Chris Lattner
3ca67ba67f
new testcase
...
llvm-svn: 38927
2006-08-15 05:11:49 +00:00
Chris Lattner
04f8019616
Make MatchRHSPunctuation smarter, allowing its clients to be simpler.
...
llvm-svn: 38926
2006-08-15 04:55:54 +00:00
Chris Lattner
e37e2336b4
Parse attributes in all places allowed.
...
llvm-svn: 38925
2006-08-15 04:50:22 +00:00
Chris Lattner
b8cd5c2260
Parse (and ignore) attributes on global decls.
...
llvm-svn: 38924
2006-08-15 04:10:46 +00:00
Chris Lattner
15a00da679
Allow ExpectAndConsume to be used with any token.
...
llvm-svn: 38923
2006-08-15 04:10:31 +00:00
Chris Lattner
6d7e634399
Parse asm specifiers on init declarators. Add __builtin_va_list to the
...
symbol table at startup time.
llvm-svn: 38922
2006-08-15 03:41:14 +00:00
Chris Lattner
8a3e918e33
Correctly implement the check for a typedef name
...
llvm-svn: 38921
2006-08-14 15:44:00 +00:00
Chris Lattner
0fb8b36808
"enum x" really is a type specifier
...
llvm-svn: 38920
2006-08-14 01:30:12 +00:00
Chris Lattner
ffe65b3ffd
Implement scope tracking for empty-action.
...
llvm-svn: 38919
2006-08-14 01:28:29 +00:00
Chris Lattner
68ca25f8a9
Add accessor for the DeclSpec object.
...
llvm-svn: 38918
2006-08-14 00:57:25 +00:00
Chris Lattner
9a9d7ec822
Add accessors for scope info.
...
llvm-svn: 38917
2006-08-14 00:57:12 +00:00
Chris Lattner
bd78161d95
Add DeclTy typedef.
...
llvm-svn: 38916
2006-08-14 00:57:06 +00:00
Chris Lattner
3b4fdda3d8
Fix the last remaining FIXME's in the parser by asking the actions module
...
whether or not an identifier is a typedef name.
llvm-svn: 38915
2006-08-14 00:45:39 +00:00
Chris Lattner
a5534f96dc
Stub out the EmptyAction class.
...
llvm-svn: 38914
2006-08-14 00:38:06 +00:00
Chris Lattner
685ed1e9ee
Rename Parse/ParserActions.h -> Parse/Action.h
...
llvm-svn: 38913
2006-08-14 00:22:04 +00:00
Chris Lattner
4bb61de36c
Remove Actions.cpp, it is and always will be empty.
...
llvm-svn: 38912
2006-08-14 00:15:57 +00:00
Chris Lattner
c1a8937d8f
Make ParseTranslationUnit prime the lexer lookahead
...
llvm-svn: 38911
2006-08-14 00:15:40 +00:00
Chris Lattner
f0f3baa12e
Inform actions about parsed declarators.
...
llvm-svn: 38910
2006-08-14 00:15:20 +00:00
Chris Lattner
e4e38595b0
Add methods for scope manipulation.
...
llvm-svn: 38909
2006-08-14 00:15:05 +00:00
Chris Lattner
78b917603c
Add some methods, add significant documentation.
...
llvm-svn: 38908
2006-08-14 00:14:19 +00:00
Chris Lattner
8c88b5a981
add accessor method for parent.
...
llvm-svn: 38907
2006-08-14 00:13:44 +00:00
Chris Lattner
f96a166300
clean up
...
llvm-svn: 38906
2006-08-14 00:13:31 +00:00
Chris Lattner
203ed032e2
Count the number of diagnostics emitted.
...
llvm-svn: 38905
2006-08-13 22:25:42 +00:00
Chris Lattner
b8bbad7fd1
Set TypeSpecType on 'struct x' with no body.
...
llvm-svn: 38904
2006-08-13 22:21:02 +00:00
Chris Lattner
da72c82e8e
Recognize struct/union/enum as TypeSpecType's
...
llvm-svn: 38903
2006-08-13 22:16:42 +00:00
Chris Lattner
476c3adb69
implement the GNU case-range extension. Add todo's for other missing gnu extensions.
...
llvm-svn: 38902
2006-08-13 22:09:58 +00:00
Chris Lattner
e7dab44cab
improve comment.
...
llvm-svn: 38901
2006-08-13 21:54:51 +00:00
Chris Lattner
8693a519d4
Implement initializer parsering.
...
llvm-svn: 38900
2006-08-13 21:54:02 +00:00
Chris Lattner
7bddb3fc61
add bare struct tag decls.
...
llvm-svn: 38899
2006-08-13 19:59:13 +00:00
Chris Lattner
0e89462b08
Parse things like 'struct X;'
...
llvm-svn: 38898
2006-08-13 19:58:17 +00:00
Chris Lattner
1890ac8b03
Parse struct/union specifiers.
...
llvm-svn: 38897
2006-08-13 01:16:23 +00:00
Chris Lattner
3b561a3b39
Implement parsing of enum-specifiers.
...
llvm-svn: 38896
2006-08-13 00:12:11 +00:00
Chris Lattner
0be454e182
Use ExpectAndConsume more
...
llvm-svn: 38895
2006-08-12 19:30:51 +00:00
Chris Lattner
dbb2a46915
Add a new ExpectAndConsume method to make parsing easier, and add a new
...
ConsumeAnyToken method.
llvm-svn: 38894
2006-08-12 19:26:13 +00:00
Chris Lattner
1112435558
Parse the GNU builtin expressions. This implements Parser/expressions.c:test_offsetof
...
llvm-svn: 38893
2006-08-12 19:16:08 +00:00
Chris Lattner
5b6032ab3c
new offsetof testcase
...
llvm-svn: 38892
2006-08-12 19:15:40 +00:00
Chris Lattner
3ba544ef0a
add notes
...
llvm-svn: 38891
2006-08-12 18:43:54 +00:00
Chris Lattner
6259172911
Implement parsing of array declarators like:
...
int Array[*(int*)P+A];
llvm-svn: 38890
2006-08-12 18:40:58 +00:00
Chris Lattner
3b51ddf438
new testcase
...
llvm-svn: 38889
2006-08-12 18:40:31 +00:00
Chris Lattner
9fab3b9486
Implement parsing of 'int A[X];' by tying into the expression parsing code.
...
Turn a bunch of fixme's into todo's.
llvm-svn: 38888
2006-08-12 18:25:42 +00:00
Chris Lattner
0c6c034c48
Two fixes:
...
1. Allow argument list of a call to be empty.
2. Handle expressions in a statement context that start with an identifier.
These are nasty to handle due to the 'label:' production which requires
having two tokens of look-ahead, or by having tricky code (which we
choose to do).
llvm-svn: 38887
2006-08-12 18:12:45 +00:00
Chris Lattner
2c5c421203
add test4
...
llvm-svn: 38886
2006-08-12 18:11:24 +00:00
Chris Lattner
20c6a45a3c
Split postfix-expression suffix handling out into ParsePostfixExpressionSuffix
...
for future use.
llvm-svn: 38885
2006-08-12 17:40:43 +00:00
Chris Lattner
ce7e21da7a
Implement ParseAssignmentExpression correctly
...
llvm-svn: 38884
2006-08-12 17:22:40 +00:00
Chris Lattner
3af6b8b9dc
remove bogus fixme
...
llvm-svn: 38883
2006-08-12 17:21:27 +00:00
Chris Lattner
e66218bf49
Split the expression tests out of statements.c into expressions.c
...
llvm-svn: 38882
2006-08-12 17:19:28 +00:00
Chris Lattner
89d53752f5
Fix parsing of assignment expressions and handling of right-associative
...
things.
llvm-svn: 38881
2006-08-12 17:18:19 +00:00
Chris Lattner
96c3deb53d
Simplify handling of the ternary operator even more. Now it just looks like
...
any average right-associative operator to most of the code.
llvm-svn: 38880
2006-08-12 17:13:08 +00:00
Chris Lattner
d35c34f44d
Fix incorrect parsing of the ?: middle term, which is supposed to be
...
parsed as 'expression'. This implements test/Parser/statements.c
llvm-svn: 38879
2006-08-12 17:04:50 +00:00
Chris Lattner
eb17652f5f
Check that ?: parses its RHS as 'expression'.
...
llvm-svn: 38878
2006-08-12 17:04:23 +00:00
Chris Lattner
a0927cecb5
Improve diagnostics on cases like:
...
return a ? ` a;
After the expression is diagnosed, skip to the ';', so that the lack of
semicolon is not also diagnosed.
llvm-svn: 38877
2006-08-12 16:59:03 +00:00
Chris Lattner
6c3f05d1d2
Diagnose use of compound literals in C90 code
...
llvm-svn: 38876
2006-08-12 16:54:25 +00:00
Chris Lattner
b7f1fc95d3
cleanups, better comments.
...
llvm-svn: 38875
2006-08-12 16:45:01 +00:00
Chris Lattner
cde626ae9b
Implement a first cut at binary expression parsing using a simple operator
...
precedence-based parser.
llvm-svn: 38874
2006-08-12 08:13:25 +00:00
Chris Lattner
89c50c65af
Return information about whether expression parsing was successful
...
llvm-svn: 38873
2006-08-11 06:41:18 +00:00
Chris Lattner
5bd57e0c73
Significant improvements to error recovery
...
llvm-svn: 38872
2006-08-11 06:40:25 +00:00