[Lexer] Push trivia piece lexing down to SyntaxParseActions

The SyntaxParseActions can decide how to handle the raw trivia, either
lex them into pieces or store them raw to be lexed when needed.
This commit is contained in:
Alex Hoppen
2021-01-29 16:12:51 +01:00
parent 6d5d8da4ed
commit 3adefd375c
5 changed files with 25 additions and 29 deletions

View File

@@ -154,13 +154,15 @@ private:
node.present = true;
}
OpaqueSyntaxNode recordToken(tok tokenKind,
ArrayRef<ParsedTriviaPiece> leadingTrivia,
ArrayRef<ParsedTriviaPiece> trailingTrivia,
OpaqueSyntaxNode recordToken(tok tokenKind, StringRef leadingTrivia,
StringRef trailingTrivia,
CharSourceRange range) override {
auto leadingTriviaPieces = TriviaLexer::lexTrivia(leadingTrivia).Pieces;
auto trailingTriviaPieces = TriviaLexer::lexTrivia(trailingTrivia).Pieces;
SmallVector<CTriviaPiece, 8> c_leadingTrivia, c_trailingTrivia;
makeCTrivia(c_leadingTrivia, leadingTrivia);
makeCTrivia(c_trailingTrivia, trailingTrivia);
makeCTrivia(c_leadingTrivia, leadingTriviaPieces);
makeCTrivia(c_trailingTrivia, trailingTriviaPieces);
CRawSyntaxNode node;
makeCRawToken(node, tokenKind, c_leadingTrivia, c_trailingTrivia,
range);