summaryrefslogtreecommitdiffstats
path: root/clang/Parse/ParseExpr.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Add support for parsing and pretty printing const_cast, dynamic_cast,Chris Lattner2006-12-041-2/+6
| | | | | | reinterpret_cast, and static_cast. Patch by Bill! llvm-svn: 39247
* Implement a TODO: properly invoke actions for the * in things like:Chris Lattner2006-11-211-1/+4
| | | | | | | | where P is a pointer. int A[*P]; llvm-svn: 39199
* fix a variable shadowing issue that caused us to misparse:Chris Lattner2006-11-211-19/+19
| | | | | | | | | | void B() { memcpy (3, 2, 1); } where memcpy is undeclared. llvm-svn: 39198
* Add support for C90 implicitly defined functions, e.g.:Chris Lattner2006-11-201-8/+16
| | | | | | | | int A() { return X(); } llvm-svn: 39194
* parse identifier expressions properly. This allows us diagnose this:Chris Lattner2006-11-201-4/+9
| | | | | | | | | | | | | | | | | | | | | | | typedef int X; int A() { return X; } int B() { return Y; } as: /Users/sabre/test.c:5:10: error: unexpected type name 'X': expected expression return X; ^ /Users/sabre/test.c:9:10: error: use of undeclared 'Y' value return Y; ^ llvm-svn: 39192
* update commentChris Lattner2006-11-091-4/+2
| | | | llvm-svn: 39151
* Change courses on how we do semantic analysis. Semantic analysisChris Lattner2006-11-091-202/+1
| | | | | | | | fundamentally requires having an AST around, so move all sema to the AST library. This is the first step, later steps will be needed to clean up libast. llvm-svn: 39150
* split ParseStringExpr into semantic/minimal actionsChris Lattner2006-11-081-3/+9
| | | | llvm-svn: 39147
* rename a bunch of files for better consistencyChris Lattner2006-11-051-1/+1
| | | | llvm-svn: 39126
* implement some todo's: invoke the actions module for identifiers leadingChris Lattner2006-11-041-4/+6
| | | | | | expressions in stmt contexts. llvm-svn: 39112
* replace some ugly alloca/malloc code with a couple of SmallString's.Chris Lattner2006-11-031-24/+11
| | | | llvm-svn: 39103
* Remove GNU C++ min/max operator extension support, they have been removedChris Lattner2006-10-271-8/+5
| | | | | | from gcc mainline. llvm-svn: 39067
* Finish removing LexerToken from actions interfaceChris Lattner2006-10-251-8/+14
| | | | llvm-svn: 39044
* Start removing LexerToken from the actions interface.Chris Lattner2006-10-251-15/+15
| | | | llvm-svn: 39043
* accept the __extension__ prefix exprChris Lattner2006-10-201-1/+2
| | | | llvm-svn: 39018
* Make ConsumeFoo methods return the location of the consumed token.Chris Lattner2006-10-161-20/+11
| | | | llvm-svn: 38995
* Make ConsumeToken return the loc of the consumed token to simplify clientsChris Lattner2006-10-161-8/+5
| | | | llvm-svn: 38994
* create an ast node for &&labelChris Lattner2006-10-151-5/+8
| | | | llvm-svn: 38989
* Write up TargetInfo so that use of wchar_t strings results in a warning ifChris Lattner2006-10-141-4/+12
| | | | | | used in a target set where the size is not identical. llvm-svn: 38975
* Parse ?:'s rightChris Lattner2006-10-061-2/+2
| | | | llvm-svn: 38961
* Initial support for semantic analysis and AST building for StringExpr nodes.Chris Lattner2006-10-061-18/+223
| | | | llvm-svn: 38960
* Build AST's for sizeof/alignof with type operands.Chris Lattner2006-08-241-4/+4
| | | | llvm-svn: 38951
* Build CastExpr AST nodesChris Lattner2006-08-241-14/+40
| | | | llvm-svn: 38950
* Build AST's for sizeof/alignof an expr.Chris Lattner2006-08-241-8/+23
| | | | llvm-svn: 38949
* switch MemberExpr to holding a field decl instead of a raw identifier.Chris Lattner2006-08-241-1/+0
| | | | llvm-svn: 38948
* Add initial support for simple-primary exprs, including DeclExprs.Chris Lattner2006-08-241-2/+1
| | | | llvm-svn: 38944
* Add AST nodes for array, call, . and ->.Chris Lattner2006-08-241-3/+5
| | | | llvm-svn: 38943
* Invoke actions for postfix exprsChris Lattner2006-08-241-9/+47
| | | | llvm-svn: 38942
* Add AST nodes and actions for paren exprs and simple unary ops.Chris Lattner2006-08-231-3/+21
| | | | llvm-svn: 38940
* Add (basic) expression AST representation capabilities for ↵Chris Lattner2006-08-231-4/+25
| | | | | | | | | int/fp/binops/condexpr. Add callbacks for same. Add "full locinfo" mode. llvm-svn: 38939
* Make MatchRHSPunctuation smarter, allowing its clients to be simpler.Chris Lattner2006-08-151-8/+6
| | | | llvm-svn: 38926
* Parse asm specifiers on init declarators. Add __builtin_va_list to theChris Lattner2006-08-151-7/+7
| | | | | | symbol table at startup time. llvm-svn: 38922
* Implement initializer parsering.Chris Lattner2006-08-131-21/+30
| | | | llvm-svn: 38900
* Implement parsing of enum-specifiers.Chris Lattner2006-08-131-0/+8
| | | | llvm-svn: 38896
* Use ExpectAndConsume moreChris Lattner2006-08-121-8/+4
| | | | llvm-svn: 38895
* Add a new ExpectAndConsume method to make parsing easier, and add a newChris Lattner2006-08-121-31/+9
| | | | | | ConsumeAnyToken method. llvm-svn: 38894
* Parse the GNU builtin expressions. This implements ↵Chris Lattner2006-08-121-8/+139
| | | | | | Parser/expressions.c:test_offsetof llvm-svn: 38893
* Implement parsing of array declarators like:Chris Lattner2006-08-121-1/+33
| | | | | | int Array[*(int*)P+A]; llvm-svn: 38890
* Two fixes:Chris Lattner2006-08-121-6/+38
| | | | | | | | | | 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
* Split postfix-expression suffix handling out into ParsePostfixExpressionSuffixChris Lattner2006-08-121-24/+41
| | | | | | for future use. llvm-svn: 38885
* Implement ParseAssignmentExpression correctlyChris Lattner2006-08-121-6/+9
| | | | llvm-svn: 38884
* remove bogus fixmeChris Lattner2006-08-121-3/+1
| | | | llvm-svn: 38883
* Fix parsing of assignment expressions and handling of right-associativeChris Lattner2006-08-121-5/+9
| | | | | | things. llvm-svn: 38881
* Simplify handling of the ternary operator even more. Now it just looks likeChris Lattner2006-08-121-48/+30
| | | | | | any average right-associative operator to most of the code. llvm-svn: 38880
* Fix incorrect parsing of the ?: middle term, which is supposed to beChris Lattner2006-08-121-9/+13
| | | | | | parsed as 'expression'. This implements test/Parser/statements.c llvm-svn: 38879
* Diagnose use of compound literals in C90 codeChris Lattner2006-08-121-1/+3
| | | | llvm-svn: 38876
* cleanups, better comments.Chris Lattner2006-08-121-6/+13
| | | | llvm-svn: 38875
* Implement a first cut at binary expression parsing using a simple operatorChris Lattner2006-08-121-2/+236
| | | | | | precedence-based parser. llvm-svn: 38874
* Return information about whether expression parsing was successfulChris Lattner2006-08-111-80/+78
| | | | llvm-svn: 38873
* Merge ParsePostfixExpression into ParseCastExpression. This allows us toChris Lattner2006-08-111-142/+135
| | | | | | | | implement support for compound literals followed by postfix-expr suffixes, such as: (struct{ int a;}){ 1}.a llvm-svn: 38871
OpenPOWER on IntegriCloud