Skip to content

Commit 504e12c

Browse files
authored
Merge pull request #26034 from apple/revert-25193-gsoc-2019-parser
Revert "[Parser] Decouple the parser from AST creation (part 1)"
2 parents 8a2960f + c66a8be commit 504e12c

23 files changed

+307
-892
lines changed

include/swift/Parse/ASTGen.h

Lines changed: 0 additions & 68 deletions
This file was deleted.

include/swift/Parse/HiddenLibSyntaxAction.h

Lines changed: 0 additions & 71 deletions
This file was deleted.

include/swift/Parse/LibSyntaxGenerator.h

Lines changed: 0 additions & 74 deletions
This file was deleted.

include/swift/Parse/ParsedRawSyntaxNode.h

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -156,19 +156,6 @@ class ParsedRawSyntaxNode {
156156

157157
// Deferred Token Data =====================================================//
158158

159-
CharSourceRange getDeferredTokenRangeWithTrivia() const {
160-
assert(DK == DataKind::DeferredToken);
161-
auto leadTriviaPieces = getDeferredLeadingTriviaPieces();
162-
auto trailTriviaPieces = getDeferredTrailingTriviaPieces();
163-
164-
auto leadTriviaLen = ParsedTriviaPiece::getTotalLength(leadTriviaPieces);
165-
auto trailTriviaLen = ParsedTriviaPiece::getTotalLength(trailTriviaPieces);
166-
167-
SourceLoc begin = DeferredToken.TokLoc.getAdvancedLoc(-leadTriviaLen);
168-
unsigned len = leadTriviaLen + DeferredToken.TokLength + trailTriviaLen;
169-
170-
return CharSourceRange{begin, len};
171-
}
172159
CharSourceRange getDeferredTokenRangeWithoutBackticks() const {
173160
assert(DK == DataKind::DeferredToken);
174161
return CharSourceRange{DeferredToken.TokLoc, DeferredToken.TokLength};

include/swift/Parse/ParsedSyntaxRecorder.h.gyb

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -66,31 +66,11 @@ public:
6666

6767
static Parsed${node.name} makeBlank${node.syntax_kind}(SourceLoc loc,
6868
SyntaxParsingContext &SPCtx);
69-
% elif node.is_unknown():
70-
private:
71-
static Parsed${node.name} record${node.syntax_kind}(
72-
ArrayRef<ParsedSyntax> elts,
73-
ParsedRawSyntaxRecorder &rec);
74-
75-
public:
76-
static Parsed${node.name} defer${node.syntax_kind}(
77-
ArrayRef<ParsedSyntax> elts,
78-
SyntaxParsingContext &SPCtx);
79-
80-
static Parsed${node.name} make${node.syntax_kind}(
81-
ArrayRef<ParsedSyntax> elts,
82-
SyntaxParsingContext &SPCtx);
8369
% end
8470
% end
8571

8672
#pragma mark - Convenience APIs
8773

88-
public:
89-
static ParsedTokenSyntax makeToken(const Token &Tok,
90-
const ParsedTrivia &LeadingTrivia,
91-
const ParsedTrivia &TrailingTrivia,
92-
SyntaxParsingContext &SPCtx);
93-
9474
/// Records an unlabelled TupleTypeElementSyntax with the provided type and
9575
/// optional trailing comma.
9676
static ParsedTupleTypeElementSyntax

include/swift/Parse/Parser.h

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,10 @@
2525
#include "swift/AST/Pattern.h"
2626
#include "swift/AST/Stmt.h"
2727
#include "swift/Basic/OptionSet.h"
28-
#include "swift/Parse/ASTGen.h"
2928
#include "swift/Parse/Lexer.h"
3029
#include "swift/Parse/LocalContext.h"
3130
#include "swift/Parse/PersistentParserState.h"
3231
#include "swift/Parse/Token.h"
33-
#include "swift/Parse/ParsedSyntaxNodes.h"
3432
#include "swift/Parse/ParserPosition.h"
3533
#include "swift/Parse/ParserResult.h"
3634
#include "swift/Parse/SyntaxParserResult.h"
@@ -378,9 +376,6 @@ class Parser {
378376
/// Current syntax parsing context where call backs should be directed to.
379377
SyntaxParsingContext *SyntaxContext;
380378

381-
/// The AST generator.
382-
ASTGen Generator;
383-
384379
public:
385380
Parser(unsigned BufferID, SourceFile &SF, DiagnosticEngine* LexerDiags,
386381
SILParserTUStateBase *SIL,
@@ -523,12 +518,6 @@ class Parser {
523518
assert(Tok.is(K) && "Consuming wrong token kind");
524519
return consumeToken();
525520
}
526-
/// Consume a token without providing it to the SyntaxParsingContext.
527-
ParsedTokenSyntax consumeTokenSyntax();
528-
ParsedTokenSyntax consumeTokenSyntax(tok K) {
529-
assert(Tok.is(K) && "Consuming wrong token kind");
530-
return consumeTokenSyntax();
531-
}
532521

533522
SourceLoc consumeIdentifier(Identifier *Result = nullptr,
534523
bool allowDollarIdentifier = false) {
@@ -1335,15 +1324,6 @@ class Parser {
13351324
ParserResult<Expr> parseExprSuper();
13361325
ParserResult<Expr> parseExprStringLiteral();
13371326

1338-
// todo [gsoc]: create new result type for ParsedSyntax
1339-
// todo [gsoc]: turn into proper non-templated methods later
1340-
template <typename SyntaxNode>
1341-
ParsedExprSyntax parseExprSyntax();
1342-
1343-
// todo [gsoc]: remove when possible
1344-
template <typename SyntaxNode>
1345-
ParserResult<Expr> parseExprAST();
1346-
13471327
StringRef copyAndStripUnderscores(StringRef text);
13481328

13491329
ParserStatus parseStringSegments(SmallVectorImpl<Lexer::StringSegment> &Segments,

include/swift/Parse/SyntaxParseActions.h

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,6 @@ namespace syntax {
3333

3434
typedef void *OpaqueSyntaxNode;
3535

36-
// todo [gsoc]: remove when possible
37-
enum class OpaqueSyntaxNodeKind {
38-
SwiftSyntax,
39-
LibSyntax,
40-
};
41-
4236
class SyntaxParseActions {
4337
virtual void _anchor();
4438

@@ -66,9 +60,6 @@ class SyntaxParseActions {
6660
lookupNode(size_t lexerOffset, syntax::SyntaxKind kind) {
6761
return std::make_pair(0, nullptr);
6862
}
69-
70-
/// Returns what kind of OpaqueSyntaxNode is created by `recordXXX` methods.
71-
virtual OpaqueSyntaxNodeKind getOpaqueKind() = 0;
7263
};
7364

7465
} // end namespace swift

0 commit comments

Comments
 (0)