Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | There is no need for the Action::TagType enum, use DeclSpec::TST instead. | Chris Lattner | 2007-01-23 | 1 | -1/+1 | |
| | | | | llvm-svn: 39278 | |||||
* | Finish tag processing. Since it can be shared with C++ Classes and enums, | Chris Lattner | 2007-01-23 | 1 | -4/+4 | |
| | | | | | | rename it to ParseTag. llvm-svn: 39277 | |||||
* | When parsing a struct/union tag, we need to know whether the tag is a use | Chris Lattner | 2007-01-23 | 1 | -1/+1 | |
| | | | | | | | or a definition/declaration of a tag. This is required to handle C99 6.7.2.3p11 properly. llvm-svn: 39274 | |||||
* | Make name lookup properly obey C namespaces, simplify decl construction ↵ | Chris Lattner | 2007-01-22 | 1 | -1/+5 | |
| | | | | | | byeliminating the 'next' pointer from the ctor, and add initial support forparsing struct/union tags. llvm-svn: 39266 | |||||
* | Next big step in function parsing: create decl objects for parameters, | Chris Lattner | 2007-01-21 | 1 | -2/+5 | |
| | | | | | | | inserting them into the function body scope and registering them with the corresponding FunctionDecl. llvm-svn: 39253 | |||||
* | Add support for parsing and pretty printing const_cast, dynamic_cast, | Chris Lattner | 2006-12-04 | 1 | -0/+7 | |
| | | | | | | reinterpret_cast, and static_cast. Patch by Bill! llvm-svn: 39247 | |||||
* | implement ParseParamDeclaratorType in the ast builder | Chris Lattner | 2006-12-02 | 1 | -0/+2 | |
| | | | | llvm-svn: 39231 | |||||
* | split the ParseFunctionDefinition action into two actions, one which is | Chris Lattner | 2006-11-21 | 1 | -3/+9 | |
| | | | | | | called before and one which is called after function definition parsing. llvm-svn: 39196 | |||||
* | Add support for C90 implicitly defined functions, e.g.: | Chris Lattner | 2006-11-20 | 1 | -2/+8 | |
| | | | | | | | | int A() { return X(); } llvm-svn: 39194 | |||||
* | parse identifier expressions properly. This allows us diagnose this: | Chris Lattner | 2006-11-20 | 1 | -0/+2 | |
| | | | | | | | | | | | | | | | | | | | | | | | 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 | |||||
* | when a typedef name is parsed as part of declspecs, remember the decl for the | Chris Lattner | 2006-11-20 | 1 | -1/+1 | |
| | | | | | | typedef. llvm-svn: 39188 | |||||
* | add an action method for declspecs without declarators, like "struct foo;". | Chris Lattner | 2006-11-19 | 1 | -0/+4 | |
| | | | | llvm-svn: 39184 | |||||
* | build TypedefDecl objects when parsing typedefs. | Chris Lattner | 2006-11-19 | 1 | -0/+3 | |
| | | | | | | Add a parsing fastpath for when we see typedef at the top-level. llvm-svn: 39182 | |||||
* | Parse and remember types enough that we can pretty print: | Chris Lattner | 2006-11-19 | 1 | -0/+1 | |
| | | | | | | | | | | | | | | void foo(int X) { X = __alignof(int); X = sizeof(const int** restrict ** volatile*); } as: x = __alignof(int) x = sizeof(int const **restrict **volatile *) llvm-svn: 39181 | |||||
* | Build ASTs for the pointer qualifiers on declarators. This allows us to | Chris Lattner | 2006-11-12 | 1 | -2/+0 | |
| | | | | | | | | | | parse (and print) things like: int* const* restrict* const volatile*** etc. llvm-svn: 39173 | |||||
* | restructure code to build the framework for creating types from declarators. | Chris Lattner | 2006-11-11 | 1 | -1/+11 | |
| | | | | llvm-svn: 39166 | |||||
* | introduce a new ASTContext class to hold long-lived ast nodes. | Chris Lattner | 2006-11-10 | 1 | -3/+4 | |
| | | | | llvm-svn: 39161 | |||||
* | move the rest of the expr sema to SemaExpr.cpp and the decl processing stuff | Chris Lattner | 2006-11-10 | 1 | -3/+3 | |
| | | | | | | to SemaDecl.cpp llvm-svn: 39159 | |||||
* | move semantic analysis of break/continue out of the parser into the sema class. | Chris Lattner | 2006-11-10 | 1 | -2/+7 | |
| | | | | llvm-svn: 39157 | |||||
* | rename ASTBuilder to Sema | Chris Lattner | 2006-11-09 | 1 | -10/+8 | |
| | | | | llvm-svn: 39153 | |||||
* | Change courses on how we do semantic analysis. Semantic analysis | Chris Lattner | 2006-11-09 | 1 | -5/+6 | |
| | | | | | | | | 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 | |||||
* | start factoring actions into two flavors: minimal and semantic actions. | Chris Lattner | 2006-11-05 | 1 | -1/+1 | |
| | | | | llvm-svn: 39133 | |||||
* | build ast nodes and print goto/goto*/break/continue. | Chris Lattner | 2006-11-05 | 1 | -0/+8 | |
| | | | | llvm-svn: 39121 | |||||
* | Add ast node support for case/default/label stmts. | Chris Lattner | 2006-11-05 | 1 | -1/+7 | |
| | | | | llvm-svn: 39120 | |||||
* | implement AST node for switch stmt | Chris Lattner | 2006-11-04 | 1 | -1/+2 | |
| | | | | llvm-svn: 39119 | |||||
* | implement ast nodes for while and do loops | Chris Lattner | 2006-11-04 | 1 | -0/+5 | |
| | | | | llvm-svn: 39116 | |||||
* | Add AST node, AST building, actions, and printing for 'for' stmts. | Chris Lattner | 2006-11-04 | 1 | -0/+5 | |
| | | | | llvm-svn: 39113 | |||||
* | remove full locinfo AST nodes for now. They just clutter the implementation | Chris Lattner | 2006-11-04 | 1 | -8/+2 | |
| | | | | | | and should be implemented with an ASTBuilder subclass anyway. llvm-svn: 39107 | |||||
* | Export the ASTBuilder class from the AST module. | Chris Lattner | 2006-11-03 | 1 | -0/+130 | |
llvm-svn: 39095 |