1
- // ===--- SyntaxTransformer .cpp --------------------------------------------===//
1
+ // ===--- ASTGen .cpp ----------- --------------------------------------------===//
2
2
//
3
3
// This source file is part of the Swift.org open source project
4
4
//
10
10
//
11
11
// ===----------------------------------------------------------------------===//
12
12
13
- #include " swift/Parse/SyntaxTransformer .h"
13
+ #include " swift/Parse/ASTGen .h"
14
14
15
15
using namespace swift ;
16
16
using namespace swift ::syntax;
17
17
18
- IntegerLiteralExpr *
19
- SyntaxTransformer::transform (IntegerLiteralExprSyntax &Expr) {
18
+ IntegerLiteralExpr *ASTGen::generate (IntegerLiteralExprSyntax &Expr) {
20
19
TokenSyntax Digits = Expr.getDigits ();
21
20
StringRef Text = copyAndStripUnderscores (Digits.getText ());
22
21
SourceLoc Loc = topLoc ();
23
22
return new (Context) IntegerLiteralExpr (Text, Loc);
24
23
}
25
24
26
- FloatLiteralExpr *SyntaxTransformer::transform (FloatLiteralExprSyntax &Expr) {
25
+ FloatLiteralExpr *ASTGen::generate (FloatLiteralExprSyntax &Expr) {
27
26
TokenSyntax FloatingDigits = Expr.getFloatingDigits ();
28
27
StringRef Text = copyAndStripUnderscores (FloatingDigits.getText ());
29
28
SourceLoc Loc = topLoc ();
30
29
return new (Context) FloatLiteralExpr (Text, Loc);
31
30
}
32
31
33
- NilLiteralExpr *SyntaxTransformer::transform (NilLiteralExprSyntax &Expr) {
32
+ NilLiteralExpr *ASTGen::generate (NilLiteralExprSyntax &Expr) {
34
33
TokenSyntax Nil = Expr.getNilKeyword ();
35
34
SourceLoc Loc = topLoc ();
36
35
return new (Context) NilLiteralExpr (Loc);
37
36
}
38
37
39
- BooleanLiteralExpr *
40
- SyntaxTransformer::transform (BooleanLiteralExprSyntax &Expr) {
38
+ BooleanLiteralExpr *ASTGen::generate (BooleanLiteralExprSyntax &Expr) {
41
39
TokenSyntax Literal = Expr.getBooleanLiteral ();
42
40
bool Value = Literal.getTokenKind () == tok::kw_true;
43
41
SourceLoc Loc = topLoc ();
44
42
return new (Context) BooleanLiteralExpr (Value, Loc);
45
43
}
46
44
47
- MagicIdentifierLiteralExpr *
48
- SyntaxTransformer::transform (PoundFileExprSyntax &Expr) {
49
- return transformMagicIdentifierLiteralExpr (Expr.getPoundFile ());
45
+ MagicIdentifierLiteralExpr *ASTGen::generate (PoundFileExprSyntax &Expr) {
46
+ return generateMagicIdentifierLiteralExpr (Expr.getPoundFile ());
50
47
}
51
48
52
- MagicIdentifierLiteralExpr *
53
- SyntaxTransformer::transform (PoundLineExprSyntax &Expr) {
54
- return transformMagicIdentifierLiteralExpr (Expr.getPoundLine ());
49
+ MagicIdentifierLiteralExpr *ASTGen::generate (PoundLineExprSyntax &Expr) {
50
+ return generateMagicIdentifierLiteralExpr (Expr.getPoundLine ());
55
51
}
56
52
57
- MagicIdentifierLiteralExpr *
58
- SyntaxTransformer::transform (PoundColumnExprSyntax &Expr) {
59
- return transformMagicIdentifierLiteralExpr (Expr.getPoundColumn ());
53
+ MagicIdentifierLiteralExpr *ASTGen::generate (PoundColumnExprSyntax &Expr) {
54
+ return generateMagicIdentifierLiteralExpr (Expr.getPoundColumn ());
60
55
}
61
56
62
- MagicIdentifierLiteralExpr *
63
- SyntaxTransformer::transform (PoundFunctionExprSyntax &Expr) {
64
- return transformMagicIdentifierLiteralExpr (Expr.getPoundFunction ());
57
+ MagicIdentifierLiteralExpr *ASTGen::generate (PoundFunctionExprSyntax &Expr) {
58
+ return generateMagicIdentifierLiteralExpr (Expr.getPoundFunction ());
65
59
}
66
60
67
- MagicIdentifierLiteralExpr *
68
- SyntaxTransformer::transform (PoundDsohandleExprSyntax &Expr) {
69
- return transformMagicIdentifierLiteralExpr (Expr.getPoundDsohandle ());
61
+ MagicIdentifierLiteralExpr *ASTGen::generate (PoundDsohandleExprSyntax &Expr) {
62
+ return generateMagicIdentifierLiteralExpr (Expr.getPoundDsohandle ());
70
63
}
71
64
72
- Expr* SyntaxTransformer::transform (UnknownExprSyntax& Expr) {
65
+ Expr * ASTGen::generate (UnknownExprSyntax & Expr) {
73
66
if (Expr.getNumChildren () == 1 && Expr.getChild (0 )->isToken ()) {
74
67
Syntax Token = *Expr.getChild (0 );
75
68
tok Kind = Token.getRaw ()->getTokenKind ();
@@ -90,12 +83,9 @@ Expr* SyntaxTransformer::transform(UnknownExprSyntax& Expr) {
90
83
return nullptr ;
91
84
}
92
85
93
- void SyntaxTransformer::pushLoc (SourceLoc Loc) {
94
- LocStack.push_back (Loc);
95
- }
86
+ void ASTGen::pushLoc (SourceLoc Loc) { LocStack.push_back (Loc); }
96
87
97
- StringRef SyntaxTransformer::copyAndStripUnderscores (StringRef Orig,
98
- ASTContext &Context) {
88
+ StringRef ASTGen::copyAndStripUnderscores (StringRef Orig, ASTContext &Context) {
99
89
char *start = static_cast <char *>(Context.Allocate (Orig.size (), 1 ));
100
90
char *p = start;
101
91
@@ -110,26 +100,25 @@ StringRef SyntaxTransformer::copyAndStripUnderscores(StringRef Orig,
110
100
return StringRef (start, p - start);
111
101
}
112
102
113
- StringRef SyntaxTransformer ::copyAndStripUnderscores (StringRef Orig) {
103
+ StringRef ASTGen ::copyAndStripUnderscores (StringRef Orig) {
114
104
return copyAndStripUnderscores (Orig, Context);
115
105
}
116
106
117
- SourceLoc SyntaxTransformer ::topLoc () {
107
+ SourceLoc ASTGen ::topLoc () {
118
108
// todo [gsoc]: create SourceLoc by pointing the offset of Syntax node into
119
109
// the source buffer
120
110
return LocStack.back ();
121
111
}
122
112
123
113
MagicIdentifierLiteralExpr *
124
- SyntaxTransformer::transformMagicIdentifierLiteralExpr (
125
- const TokenSyntax &PoundToken) {
114
+ ASTGen::generateMagicIdentifierLiteralExpr (const TokenSyntax &PoundToken) {
126
115
auto Kind = getMagicIdentifierLiteralKind (PoundToken.getTokenKind ());
127
116
SourceLoc Loc = topLoc ();
128
117
return new (Context) MagicIdentifierLiteralExpr (Kind, Loc);
129
118
}
130
119
131
120
MagicIdentifierLiteralExpr::Kind
132
- SyntaxTransformer ::getMagicIdentifierLiteralKind (tok Kind) {
121
+ ASTGen ::getMagicIdentifierLiteralKind (tok Kind) {
133
122
switch (Kind) {
134
123
case tok::kw___COLUMN__:
135
124
case tok::pound_column:
0 commit comments