Chris Lattner
46c94377f1
Add support for var decls in the initializer of a c-style for loop,
...
implementing rdar://11360347 / 11349750. C-style for loops could be
further enhanced by allowing a comma-separated list of statements in
the increment, but this isn't something I plan to do in the short term.
Swift SVN r1713
2012-05-02 05:44:58 +00:00
Chris Lattner
8c478d1cb7
remove the foreach keyword, switching foreach loops to use 'for' instead.
...
This uses one-token lookahead to distinguish between the two forms.
Swift SVN r1710
2012-05-02 01:06:06 +00:00
Chris Lattner
e205e1d2da
change the subset of for statements we support: instead of *requiring* parens,
...
now we *do not allow* them. This is progress towards unifying for and foreach.
Swift SVN r1709
2012-05-02 00:43:24 +00:00
Eli Friedman
e33b1aac24
Don't try to synthesize an expression for a return statement which doesn't have one. <rdar://problem/11315114>.
...
Swift SVN r1639
2012-04-25 22:58:06 +00:00
Doug Gregor
e1b8daa717
Rework 'foreach' AST to reflect how IRgen actually wants it to look,
...
rather than how I felt like generating it.
Swift SVN r1599
2012-04-24 20:42:17 +00:00
Doug Gregor
ac188c7d59
Implement type checking for the foreach loop and extend the AST to
...
hold all of the various expressions and declarations we'll need to
understand its semantics.
Swift SVN r1596
2012-04-24 20:22:36 +00:00
Doug Gregor
f997a781bf
Parsing and basic AST representation for 'foreach' statement.
...
Swift SVN r1594
2012-04-24 18:12:44 +00:00
Chris Lattner
cbc1eac438
irgen parser and sema support for for statements.
...
Swift SVN r1505
2012-04-19 21:43:46 +00:00
Doug Gregor
5fffa75e7b
Remove empty throw specifications from all of the overloaded new operators; reduces code size by 8k
...
Swift SVN r1282
2012-03-28 22:00:02 +00:00
Chris Lattner
0cccfe9299
rename the Walker class to ASTWalker to match ASTVisitor.
...
Swift SVN r1201
2012-03-11 16:28:50 +00:00
Chris Lattner
0340dd17d0
rename Walk.h to Walker.h to match the name of the class it declares.
...
Swift SVN r1200
2012-03-11 16:22:26 +00:00
Chris Lattner
0169b2c764
introduce a new ErrorStmt node to represent invalid code in the AST more
...
precisely. Part of rdar://10962837
Swift SVN r1142
2012-03-01 22:40:16 +00:00
John McCall
e66c13cfe7
Change the 'walk' APIs to use virtual function dispatch
...
instead .
1,2d
1i
Change the 'walk' APIs to use virtual dispatch instead of
blocks. This makes it much easier to thread information
through the API, as well to extend the API to handle
recursive visiting of other structures (e.g., Decls
and Patterns).
Swift SVN r1101
2012-01-26 04:31:38 +00:00
Doug Gregor
2e49b79617
Rename WalkOrder.h to Walk.h, and introduce typedefs for the function
...
types of the expression and statement walker into it, so we don't end
up typing the same darned things over and over again.
Swift SVN r859
2011-11-10 16:36:56 +00:00
Doug Gregor
a8de31b0e0
Implement Stmt::getSourceRange() along with proper implementations for
...
each of the subclasses.
Swift SVN r857
2011-11-10 00:46:07 +00:00
Chris Lattner
a7c7d64fa0
Switch swift to use SourceLoc instead of SMLoc.
...
Also use the new getAdvancedLoc() method instead of hacking
on SMLoc directly.
Also fix the warning/note/error methods to forward through ASTContext
instead of being replicated everywhere.
Swift SVN r750
2011-10-18 01:22:29 +00:00
John McCall
344fe891da
Macro metaprogramming for Stmt nodes.
...
Swift SVN r726
2011-09-23 23:32:07 +00:00
John McCall
b2facdae4b
Getterize Stmt.h.
...
Swift SVN r720
2011-09-20 07:07:53 +00:00
Chris Lattner
2711ad03c9
now that WalkOrder is in a common header, move the WalkStmt to be a
...
Stmt method, rename it to just 'walk' to follow the naming convention,
and give it an accurate doc comment for good measure.
Swift SVN r622
2011-08-25 18:24:54 +00:00
John McCall
dc31882541
Incorporate notes into the pattern-matching manifesto. A few more random
...
observations that weren't brought up during the meeting.
Swift SVN r567
2011-08-17 08:29:32 +00:00
Chris Lattner
ce6f6a83cd
add AST support for WhileStmt. This isn't important, but is easy to add.
...
Swift SVN r501
2011-08-11 20:33:34 +00:00
Chris Lattner
433d6de807
implement AST and parser support for 'return'. We're still not doing a conversion
...
to a return type yet though. We happily diagnose thigns like this as an error:
func foo() -> int {
return 4 5
}
Swift SVN r493
2011-08-03 23:19:24 +00:00
Chris Lattner
350b89e6e4
Represent assignments as their own AssignStmt, preserving the model we had
...
before, but removing the hack where we'd represent them as a binary operator
with a null operator function. We still have no clear semantics for what
is valid or not.
Swift SVN r478
2011-08-01 17:45:21 +00:00
Chris Lattner
ebc33d306f
add AST support for semicolon statements and clean up the parser. While noone cares, it is trivial
...
to support and good for completeness.
Swift SVN r475
2011-07-31 21:09:23 +00:00
Chris Lattner
63ce0be641
make the big switch: {} are now statements, not expressions. This removes some
...
annoying things from the grammar (like expr-non-brace), and makes it so that
the body/else of an if is just a statement.
This patch has a fairly serious caveat that we just drop function bodies on the
floor now, since we have no "stmtexpr" sort of thing to represent the syntactic
sugar that is func. We'll fix that soon.
Swift SVN r462
2011-07-31 17:39:13 +00:00
Chris Lattner
382f33ec74
introduce statements, make if (and ;) a statement. This includes a
...
few horrible hacks, but is the right direction to go.
Swift SVN r457
2011-07-31 06:52:11 +00:00