Commit Graph

20516 Commits

Author SHA1 Message Date
Chris Lattner
12fa92e146 Add a new ApplyExpr expression AST node for function application.
Swift SVN r85
2010-07-25 05:37:45 +00:00
Chris Lattner
cd99eee0c6 Add parser support and stub out a SemaExpr callback for sequence exprs, the foundation of function calls.
Swift SVN r83
2010-07-24 22:07:23 +00:00
Chris Lattner
9b42d1b273 enhance parenexpr to be tupleexpr. The grouping paren case is just a special case of a tuple literal with one child.
Swift SVN r81
2010-07-24 21:24:44 +00:00
Chris Lattner
4a2ea23b23 Enhance the parser to parse infix decls. The AST it constructs is still not correct though. We have no way to represent function calls yet!
Swift SVN r80
2010-07-24 20:59:00 +00:00
Chris Lattner
94110869e0 add support for parsing attribute lists, and add the first attribute, infix=42. It is now parsed and slammed into the AST, but not used.
Swift SVN r79
2010-07-24 20:44:56 +00:00
Chris Lattner
769c4a034a fix a bug in my refactoring.
Swift SVN r78
2010-07-24 20:13:26 +00:00
Chris Lattner
2bafb0e8fb Introduce new NamedDecl and FuncDecl classes. The difference between the two is syntactic sugar, so most clients want NamedDecl. This doesn't implement FuncDecl yet, which isn't a high prio for me in the short term.
Swift SVN r77
2010-07-24 19:09:09 +00:00
Chris Lattner
9a0d6c735a change the handling of nullable so that hte parser actually checks for the error and only invokes sema if the inputs are valid, tidying up some code.
Swift SVN r76
2010-07-24 18:52:46 +00:00
Chris Lattner
315107d5c6 Use the new NullablePtr<> class to allow better error recovery when parsing invalid expressions.
Swift SVN r74
2010-07-24 18:48:37 +00:00
Chris Lattner
05730aaef0 Properly treat tuples types with one element as grouping parens. Teach ActOnParenExpr to do the right type propagation.
Swift SVN r72
2010-07-24 09:34:38 +00:00
Chris Lattner
06faa365a7 Implement sema support for shadowed declarations.
Swift SVN r71
2010-07-24 06:46:48 +00:00
Chris Lattner
64ecbb8a9c Implement AST and trivial Sema support for brace expressions.
Swift SVN r70
2010-07-23 19:39:51 +00:00
Chris Lattner
1103ff5227 Implement basic parser support for brace expressions.
Swift SVN r69
2010-07-23 18:33:49 +00:00
Chris Lattner
58185415a1 now that we have name lookup, we can implement references to
other values.  crazzay.


Swift SVN r67
2010-07-23 05:48:20 +00:00
Chris Lattner
82ea1aefd6 eliminate unneeded complexity.
Swift SVN r66
2010-07-23 04:38:44 +00:00
Chris Lattner
f248ffb53a Introduce a scope abstraction, the next step to implementing
name lookup.


Swift SVN r65
2010-07-23 04:37:16 +00:00
Chris Lattner
7ff4cc6e21 split the decl processing stuff in Sema out into a new
SemaDecl class where it belongs.  Tidy up headers a bit.


Swift SVN r64
2010-07-23 04:13:53 +00:00
Chris Lattner
ed1be4f17a add printing support for Identifier, switch VarDecl to have an
identifier instead of a stringref.


Swift SVN r63
2010-07-23 03:50:09 +00:00
Chris Lattner
8bf327b648 add a new AST/Identifier class which represents a uniqued string.
Add support to ASTContext to unique strings into identifiers.


Swift SVN r62
2010-07-23 03:40:02 +00:00
Chris Lattner
d8c6da6a3c tweak comments. void is no longer in the AST, but it shouldn't even
be a keyword



Swift SVN r61
2010-07-22 06:51:03 +00:00
Chris Lattner
a860fe44db implement support for printing types, add them to -ast-dump
Swift SVN r58
2010-07-22 06:33:03 +00:00
Chris Lattner
34602d5d22 Make Expr::Kind public.
Swift SVN r57
2010-07-22 06:10:31 +00:00
Chris Lattner
92354781f9 implement support for isa/dyncast of types.
Swift SVN r56
2010-07-22 06:06:40 +00:00
Chris Lattner
7f9b3612aa follow the predominant pattern of making const ivars const and
public instead of private with accessors.


Swift SVN r55
2010-07-22 06:03:20 +00:00
Chris Lattner
ac1200cda5 rename Token::getLocation() to Token::getLoc()
Swift SVN r54
2010-07-22 05:55:04 +00:00
Chris Lattner
d6c8f0b621 make the AST representation of void just be ().
Swift SVN r53
2010-07-22 05:49:57 +00:00
Chris Lattner
fba7359c9c eliminate a #include from ASTContext.h
Swift SVN r52
2010-07-22 05:47:33 +00:00
Chris Lattner
842821d541 add FunctionType, have sema create it and have ASTContext
unique it.


Swift SVN r51
2010-07-22 05:44:17 +00:00
Chris Lattner
49b3c52843 implement parser support for function types.
Swift SVN r50
2010-07-22 02:11:49 +00:00
Chris Lattner
c363b58ea1 Introduce TupleType, an AST representation of tuples.
Swift SVN r49
2010-07-22 01:58:01 +00:00
Chris Lattner
b1d25371e3 type things as VarDecl instead of as Decl, return things by value from
void parse methods.


Swift SVN r48
2010-07-22 00:47:53 +00:00
Chris Lattner
aa126e87f9 add a new SemaType module, add parser support for tuples.
Add lexer support for ->.  Expand the testcase.


Swift SVN r47
2010-07-21 07:17:43 +00:00
Chris Lattner
f7c8e53359 implement isa/dyncast and dumping support for exprs.
We can now parse and print this:
var x3 = 4+5*4+12/97;

into:
(vardecl 'x3'
 (binary_expr
  (binary_expr
   (integer_literal 4)
   (binary_expr
    (integer_literal 5)
    (integer_literal 4)))
  (binary_expr
   (integer_literal 12)
   (integer_literal 97))))




Swift SVN r46
2010-07-19 06:52:08 +00:00
Chris Lattner
547b2a8003 implement vardecl dumping and Casting.h support for decls.
Swift SVN r45
2010-07-19 06:39:56 +00:00
Chris Lattner
cea9a29739 fix some include guards and an uninitialized member
Swift SVN r43
2010-07-19 06:11:19 +00:00
Chris Lattner
a3795e1540 actually invoke the ast consumer.
Swift SVN r42
2010-07-19 05:53:48 +00:00
Chris Lattner
669c129ab0 introduce new ASTConsumer interface, have parser invoke methods
on it.


Swift SVN r41
2010-07-19 05:50:41 +00:00
Chris Lattner
2eeee5faca give ASTContext a SourceMgr reference, add diagnostic hooks to SemaBase.
Swift SVN r39
2010-07-19 05:13:55 +00:00
Chris Lattner
c5e54442b4 make the parser actually create VarDecl AST nodes.
Swift SVN r38
2010-07-19 05:08:21 +00:00
Chris Lattner
340a7faa01 stub out Decl AST's.
Swift SVN r37
2010-07-19 04:59:13 +00:00
Chris Lattner
9eb6733531 Exprs have types.
Swift SVN r36
2010-07-19 04:42:58 +00:00
Chris Lattner
a3164a1a1a add void type.
Swift SVN r35
2010-07-19 04:40:47 +00:00
Chris Lattner
9e8489a042 make the parser build type asts.
Swift SVN r34
2010-07-19 04:37:51 +00:00
Chris Lattner
f36e4aa921 introduce Type ast node.
Swift SVN r33
2010-07-19 04:33:59 +00:00
Chris Lattner
a63671f116 add binary expression ast node.
Swift SVN r31
2010-07-19 00:57:54 +00:00
Chris Lattner
17aad28720 set up expression kinds, add ParenExpr ast node.
Swift SVN r30
2010-07-19 00:51:28 +00:00
Chris Lattner
a39a7ec6a2 make the sema methods be prefixed with ActOn
Swift SVN r29
2010-07-19 00:46:09 +00:00
Chris Lattner
66199fa090 implement a new IntegerLiteral ast node, add plumbing for
allocation of exprs from ASTContext.


Swift SVN r28
2010-07-19 00:42:30 +00:00
Chris Lattner
d6edeb7a8b thread Expr* results through the parser and SemaExpr.
Swift SVN r27
2010-07-19 00:15:02 +00:00
Chris Lattner
910f84b6ae thread astcontext from the driver, down through Sema.
Swift SVN r26
2010-07-19 00:07:47 +00:00