Commit Graph

784 Commits

Author SHA1 Message Date
Doug Gregor
1ed6cdbb09 Fix broken source-range information for expressions of the form "x.y".
Swift SVN r861
2011-11-10 17:25:08 +00:00
Doug Gregor
0223f3edf1 Implement Expr::getSourceRange() and introduce proper support for this
function into all of the expression nodes. Re-implement
Expr::getStartLoc() in terms of this function, and add it's brother
Expr::getEndLoc(), removing the specialized implementations.

Clean up the source ranges of implicitly-created tuple expressions in
the process.


Swift SVN r855
2011-11-10 00:25:48 +00:00
Chris Lattner
9e783adda1 introduce and use a new parseMatchingToken method.
Swift SVN r841
2011-11-09 01:09:07 +00:00
Chris Lattner
f02dc055d3 introduce a form of parseToken that returns the location of the parsed token
on success, allowing simplifications in clients.


Swift SVN r840
2011-11-09 00:56:52 +00:00
Chris Lattner
ffa9a55002 implement skeleton of extension body parsing.
Swift SVN r839
2011-11-09 00:49:54 +00:00
Chris Lattner
0b9b982758 rework parseDecl to do validation itself, allow decls in oneof's
Swift SVN r837
2011-11-08 22:41:27 +00:00
Chris Lattner
c872bb4782 improve error recovery in {}'s by using less hacky recovery.
Swift SVN r836
2011-11-08 21:09:28 +00:00
Chris Lattner
b5c6fa8e21 split error recovery behavior out of parseDecl, making it more
conventional and allowing more appropriate recovery in various 
caller's contexts.


Swift SVN r835
2011-11-08 21:05:10 +00:00
Chris Lattner
7e08140150 rearrange some code to use common predicates.
Swift SVN r834
2011-11-08 20:12:05 +00:00
Chris Lattner
bcd6f2f474 helper function-ize.
Swift SVN r833
2011-11-08 20:02:30 +00:00
Chris Lattner
9b7ec6785f improve error recovery with mangled decls.
Swift SVN r832
2011-11-08 19:59:45 +00:00
Chris Lattner
eac219bee8 Rework the decl grammar a bit: now "decl" doesn't include import
declarations, but they are explicitly allowed at translation unit scope.
This also introduces a parseDecl method which does the obvious thing.



Swift SVN r830
2011-11-08 19:30:00 +00:00
Chris Lattner
b081915dd3 clean up the interface to parseDeclFunc, and fix a FIXME whereby the
'this' argument to protocol methods wasn't injected early enough to be
found by name lookup.


Swift SVN r822
2011-11-03 18:46:39 +00:00
Chris Lattner
9298082ebb move Diagnostics header to include/swift/AST to match .cpp files.
Swift SVN r782
2011-10-22 00:47:35 +00:00
Chris Lattner
dfd529ce3a rename diags::foo to diag::foo
Swift SVN r779
2011-10-22 00:36:19 +00:00
Chris Lattner
a1781fed38 switch expr parsing to the new diagnostics subsystem
Swift SVN r766
2011-10-20 20:41:48 +00:00
Chris Lattner
8c07ba4034 switch parseStmtBrace to the new diagnostics api
Swift SVN r764
2011-10-20 20:18:36 +00:00
Chris Lattner
d8343e9a42 convert parseToken to new diagnostic api
Swift SVN r763
2011-10-20 20:09:04 +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
6b27921ce3 Propagate around l-value-ness. There aren't any interesting invariants
here yet.



Swift SVN r740
2011-09-27 23:46:08 +00:00
Doug Gregor
3d15bf3d55 Introduce a diagnostic-formatting engine and port most of the parser's
diagnostics over to it.

There are a few differences between this diagnostic engine and Clang's
engine:
  - Diagnostics are specified by a .def file (Diagnostics.def), rather
  than via tblgen, which drastically simplifies the build and makes
  code completion work when you add a new diagnostic.
  - Calls to the "diagnose()" method are safely typed based on the
  argument types specified in the .def file, so it's harder to write a
  diagnostic whose expected arguments (in the string) and whose actual
  arguments (in the code) don't match.
  - It uses variadic templates, so it hangs with the cool kids.



Swift SVN r734
2011-09-26 23:46:28 +00:00
John McCall
b2facdae4b Getterize Stmt.h.
Swift SVN r720
2011-09-20 07:07:53 +00:00
John McCall
7a259f4bad Differentiate between the starting location and caret location of
an expression.  More incremental getterization.



Swift SVN r717
2011-09-19 22:45:58 +00:00
Chris Lattner
c7fd9ec3bc remove the old grammar production for func's in protocols and just use
decl-func instead.  Hey look, now we have support for default 
implementations.


Swift SVN r671
2011-09-01 21:34:04 +00:00
Chris Lattner
5d78286e3f split the "func a::b()" form out to its own grammar production.
Swift SVN r669
2011-09-01 18:21:27 +00:00
Chris Lattner
d77e4ad649 implement support for protocol decls.
Swift SVN r655
2011-08-31 19:58:47 +00:00
Chris Lattner
b04c19e647 introduce a enw AST/AST.h umbrella header and use it to
simplify #includes.



Swift SVN r578
2011-08-22 21:02:44 +00:00
Chris Lattner
e12da0228e tidy up a bit more, DenseMap is already transitively included, so no need to use a pImpl to hide it.
Swift SVN r565
2011-08-14 06:38:53 +00:00
Chris Lattner
88964126fe remove the old SemaDecl and Sema classes.
Swift SVN r563
2011-08-14 00:33:00 +00:00
Chris Lattner
cb18028c45 rework all of the scope and name lookup logic, introducing a new ScopeInfo class
and moving a bunch more stuff out of SemaDecl.


Swift SVN r561
2011-08-14 00:27:24 +00:00
Chris Lattner
7e252a0ddf move a bunch of code from SemaDecl to ParseDecl
Swift SVN r559
2011-08-13 23:10:45 +00:00
Chris Lattner
26f66a8b24 move all the parser headers into lib/Parse since they are now all private.
I chose to just delete the -lex action in swift, since it was only useful for
about 10 minutes during bringup and probably never will be again.




Swift SVN r557
2011-08-13 22:51:04 +00:00
Chris Lattner
c863bea58d merge SemaExpr into ParseExpr.cpp
Swift SVN r554
2011-08-13 22:33:33 +00:00
Chris Lattner
dab303a541 move statement parsing out to its own file.
Swift SVN r550
2011-08-13 22:13:33 +00:00