Commit Graph

916 Commits

Author SHA1 Message Date
Argyrios Kyrtzidis
66d1e516c8 Refactor how multiple parsing passes and delayed parsing works.
-Introduce PersistentParserState to represent state persistent among multiple parsing passes.
  The advantage is that PersistentParserState is independent of a particular Parser or Lexer object.
-Use PersistentParserState to keep information about delayed function body parsing and eliminate parser-specific
  state from the AST (ParserTokenRange).
-Introduce DelayedParsingCallbacks to abstract out of the parser the logic about which functions should be delayed
  or skipped.

Many thanks to Dmitri for his valuable feedback!

Swift SVN r6580
2013-07-25 01:40:16 +00:00
Argyrios Kyrtzidis
5536e61e59 [Frontend] Keep a list of input files in CompilerInvocation and create input buffer IDs as part of CompilerInstance::setup().
Swift SVN r6497
2013-07-23 14:49:31 +00:00
Argyrios Kyrtzidis
200e64d8c2 [Frontend] Refactor CompilerInvocation to be a pure settings object.
This mainly removes the extraneous DiagnosticEngine and SourceMgr from CompilerInvocation.
Instances of these can be found via the CompilerInstance object.

Swift SVN r6496
2013-07-23 14:49:29 +00:00
Chris Lattner
e0f19cfb4e Feedback from Dmitri
Swift SVN r6466
2013-07-22 20:42:11 +00:00
Chris Lattner
2f94493ff3 pass a variety of things by reference instead of by value in the invocation's setters.
Add a little dance in the setup of the Clang importer.  Now, clients that don't care
about the clang importer don't have to link it in, just don't call setSDKPath()


Swift SVN r6462
2013-07-22 19:51:08 +00:00
Dmitri Hrybenko
3c5b12fc0f Code completion: add a lot of infrastructure code
* Added a mode in swift-ide-test to test code completion.  Unlike c-index-test,
  the code completion token in tests is a real token -- we don't need to
  count lines and columns anymore.

* Added support in lexer to produce a code completion token.

* Added a parser interface to code completion.  It is passed down from the
  libFrontend to the parser, but its functions are not called yet.

* Added a sketch of the interface of code completion consumer and code
  completion results.

Note: all this is not doing anything useful yet.


Swift SVN r6128
2013-07-10 20:53:40 +00:00
Dmitri Hrybenko
fc0d478220 Inline buildSingleTranslationUnit() into its only caller
Swift SVN r6107
2013-07-10 01:38:50 +00:00
Dmitri Hrybenko
cb98234d67 Allow the parser to persist after parseIntoTranslationUnit() returns
Swift SVN r6102
2013-07-10 00:25:37 +00:00
Dmitri Hrybenko
5be7592574 Make buildSingleTranslationUnit() an implementation detail of libFrontend
Swift SVN r6070
2013-07-08 22:24:40 +00:00
Dmitri Hrybenko
c7421211a3 Factor out logic that creates and configures all objects required for
compilation into a 'Frontend' library.

This library is still not in its best shape, but now it can be reused in
swift-index-test.


Swift SVN r6040
2013-07-06 00:46:19 +00:00
Dmitri Hrybenko
b676295e8e Add a comment for r6001
Swift SVN r6011
2013-07-05 17:13:38 +00:00
Dmitri Hrybenko
16d8ddc093 Revert wrong changes, did not intend to commit all that
Swift SVN r6010
2013-07-05 17:13:07 +00:00
Dmitri Hrybenko
b1b1c63be5 Add a comment for r6001
Swift SVN r6009
2013-07-05 17:11:38 +00:00
Argyrios Kyrtzidis
1406566e6f If just doing non-type-checking parse, no need to auto import libraries.
Swift SVN r6003
2013-07-05 15:02:37 +00:00
Chris Lattner
2ad6f72478 fix -dump-parse to not run type checking in the single translation unit case.
Swift SVN r5978
2013-07-03 22:20:00 +00:00
Dmitri Hrybenko
70246e8b89 Move swift::buildSingleTranslationUnit to a new library, libFrontend
It should be split and/or generalized in order to become reusable.


Swift SVN r5974
2013-07-03 20:50:21 +00:00