Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | build TypedefDecl objects when parsing typedefs. | Chris Lattner | 2006-11-19 | 3 | -22/+45 | |
| | | | | | | 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 | 3 | -1/+12 | |
| | | | | | | | | | | | | | | 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 | |||||
* | rearrange the type printing code so that we can do the horrible C "inside out" | Chris Lattner | 2006-11-13 | 1 | -2/+3 | |
| | | | | | | | | | thing properly. This allows us to print types like: int (*A)[restrict static 4][6]; properly, in addition to representing them properly. :) llvm-svn: 39178 | |||||
* | Implement parsing, printing and AST'ing of array types (except for the bounds). | Chris Lattner | 2006-11-12 | 1 | -1/+13 | |
| | | | | | | | | | | This allows us to handle: int (*A)[restrict static 4][6]; for example. llvm-svn: 39176 | |||||
* | Build ASTs for the pointer qualifiers on declarators. This allows us to | Chris Lattner | 2006-11-12 | 2 | -58/+17 | |
| | | | | | | | | | | parse (and print) things like: int* const* restrict* const volatile*** etc. llvm-svn: 39173 | |||||
* | We can now parse and remember the distinction between: | Chris Lattner | 2006-11-12 | 1 | -2/+2 | |
| | | | | | | | | 'unsigned char' and 'unsigned char const'. -Chris llvm-svn: 39172 | |||||
* | implement conversion of simple declspec base types, and implement TypeRef::dump | Chris Lattner | 2006-11-11 | 2 | -1/+70 | |
| | | | | llvm-svn: 39170 | |||||
* | restructure code to build the framework for creating types from declarators. | Chris Lattner | 2006-11-11 | 3 | -1/+97 | |
| | | | | llvm-svn: 39166 | |||||
* | Let ASTContext hold target info, since it's useful | Chris Lattner | 2006-11-10 | 1 | -2/+1 | |
| | | | | llvm-svn: 39162 | |||||
* | introduce a new ASTContext class to hold long-lived ast nodes. | Chris Lattner | 2006-11-10 | 5 | -26/+25 | |
| | | | | llvm-svn: 39161 | |||||
* | move the rest of the expr sema to SemaExpr.cpp and the decl processing stuff | Chris Lattner | 2006-11-10 | 4 | -235/+233 | |
| | | | | | | 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 | 3 | -4/+36 | |
| | | | | llvm-svn: 39157 | |||||
* | move semantic analysis of statements to it's own file. | Chris Lattner | 2006-11-10 | 2 | -91/+106 | |
| | | | | llvm-svn: 39156 | |||||
* | split semantic analysis of expressions out to its own file | Chris Lattner | 2006-11-10 | 2 | -220/+239 | |
| | | | | llvm-svn: 39155 | |||||
* | move ASTBuilder.h/cpp to be a private Sema.h/cpp files, not part of the | Chris Lattner | 2006-11-10 | 2 | -5/+5 | |
| | | | | | | interface exported by libast. llvm-svn: 39154 | |||||
* | rename ASTBuilder to Sema | Chris Lattner | 2006-11-09 | 3 | -71/+63 | |
| | | | | llvm-svn: 39153 | |||||
* | Change courses on how we do semantic analysis. Semantic analysis | Chris Lattner | 2006-11-09 | 3 | -13/+241 | |
| | | | | | | | | 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 | 2 | -7/+38 | |
| | | | | llvm-svn: 39121 | |||||
* | Add ast node support for case/default/label stmts. | Chris Lattner | 2006-11-05 | 2 | -1/+26 | |
| | | | | llvm-svn: 39120 | |||||
* | implement AST node for switch stmt | Chris Lattner | 2006-11-04 | 2 | -1/+7 | |
| | | | | llvm-svn: 39119 | |||||
* | implement ast nodes for while and do loops | Chris Lattner | 2006-11-04 | 2 | -0/+16 | |
| | | | | llvm-svn: 39116 | |||||
* | Add AST node, AST building, actions, and printing for 'for' stmts. | Chris Lattner | 2006-11-04 | 2 | -0/+12 | |
| | | | | llvm-svn: 39113 | |||||
* | remove full locinfo AST nodes for now. They just clutter the implementation | Chris Lattner | 2006-11-04 | 3 | -65/+21 | |
| | | | | | | 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 | 3 | -117/+134 | |
| | | | | llvm-svn: 39095 | |||||
* | Fix building after the pure virtual function name changed. | Chris Lattner | 2006-10-28 | 1 | -2/+2 | |
| | | | | llvm-svn: 39075 | |||||
* | add ast node for ifstmt | Chris Lattner | 2006-10-25 | 1 | -0/+10 | |
| | | | | llvm-svn: 39051 | |||||
* | Handle __extension__ as a unary operator if requested. | Chris Lattner | 2006-10-25 | 1 | -0/+4 | |
| | | | | llvm-svn: 39050 | |||||
* | only add to LastInGroupList if at the top-level. | Chris Lattner | 2006-10-25 | 1 | -1/+4 | |
| | | | | llvm-svn: 39049 | |||||
* | Make the driver print function bodies at -parse-print-ast | Chris Lattner | 2006-10-25 | 1 | -1/+1 | |
| | | | | llvm-svn: 39048 | |||||
* | Make AST nodes for ReturnStmt's and CompoundStmts | Chris Lattner | 2006-10-25 | 1 | -0/+35 | |
| | | | | llvm-svn: 39046 | |||||
* | Add new Stmt class | Chris Lattner | 2006-10-25 | 1 | -2/+2 | |
| | | | | llvm-svn: 39045 | |||||
* | Finish removing LexerToken from actions interface | Chris Lattner | 2006-10-25 | 1 | -24/+25 | |
| | | | | llvm-svn: 39044 | |||||
* | Start removing LexerToken from the actions interface. | Chris Lattner | 2006-10-25 | 1 | -4/+6 | |
| | | | | llvm-svn: 39043 | |||||
* | Remove temporary code | Chris Lattner | 2006-10-17 | 1 | -2/+0 | |
| | | | | llvm-svn: 38999 | |||||
* | implement action callbacks for almost all the stmts. | Chris Lattner | 2006-10-16 | 1 | -1/+3 | |
| | | | | llvm-svn: 38993 | |||||
* | Changes through out the parser and actions/ast interface to return top-level | Chris Lattner | 2006-10-16 | 2 | -17/+63 | |
| | | | | | | | | | | | | | | | | | | declarations through the asm streamer. For a testcase like: int G; int H, I, *J; int func() {} 'clang -parse-print-ast' prints: Read top-level decl: G Read top-level decl: H Read top-level decl: I Read top-level decl: J Read top-level decl: func llvm-svn: 38992 | |||||
* | start creating proper ast nodes for variables and functions | Chris Lattner | 2006-10-15 | 1 | -4/+9 | |
| | | | | llvm-svn: 38991 | |||||
* | don't abort | Chris Lattner | 2006-10-06 | 1 | -2/+2 | |
| | | | | llvm-svn: 38965 | |||||
* | Initial support for semantic analysis and AST building for StringExpr nodes. | Chris Lattner | 2006-10-06 | 2 | -6/+34 | |
| | | | | llvm-svn: 38960 | |||||
* | Build AST's for sizeof/alignof with type operands. | Chris Lattner | 2006-08-24 | 1 | -0/+17 | |
| | | | | llvm-svn: 38951 | |||||
* | Build CastExpr AST nodes | Chris Lattner | 2006-08-24 | 1 | -0/+12 | |
| | | | | llvm-svn: 38950 | |||||
* | Build AST's for sizeof/alignof an expr. | Chris Lattner | 2006-08-24 | 1 | -10/+12 | |
| | | | | llvm-svn: 38949 | |||||
* | switch MemberExpr to holding a field decl instead of a raw identifier. | Chris Lattner | 2006-08-24 | 1 | -2/+4 | |
| | | | | llvm-svn: 38948 | |||||
* | Allow expression actions to fail | Chris Lattner | 2006-08-24 | 1 | -40/+40 | |
| | | | | llvm-svn: 38947 | |||||
* | Add initial support for simple-primary exprs, including DeclExprs. | Chris Lattner | 2006-08-24 | 1 | -0/+20 | |
| | | | | llvm-svn: 38944 | |||||
* | Add AST nodes for array, call, . and ->. | Chris Lattner | 2006-08-24 | 1 | -0/+51 | |
| | | | | llvm-svn: 38943 | |||||
* | Add AST nodes and actions for paren exprs and simple unary ops. | Chris Lattner | 2006-08-23 | 1 | -1/+57 | |
| | | | | llvm-svn: 38940 | |||||
* | Add (basic) expression AST representation capabilities for ↵ | Chris Lattner | 2006-08-23 | 2 | -8/+97 | |
| | | | | | | | | | int/fp/binops/condexpr. Add callbacks for same. Add "full locinfo" mode. llvm-svn: 38939 | |||||
* | Implement first cut of ASTBuilder class. | Chris Lattner | 2006-08-18 | 2 | -5/+77 | |
| | | | | llvm-svn: 38938 |