@@ -84,6 +84,81 @@ enum BinaryOperator: RawTokenKindSubset {
84
84
}
85
85
}
86
86
87
+ enum CanBeDeclaratinStart : RawTokenKindSubset {
88
+ case associatedtypeKeyword
89
+ case atSign
90
+ case caseKeyword
91
+ case classKeyword
92
+ case deinitKeyword
93
+ case enumKeyword
94
+ case extensionKeyword
95
+ case fileprivateKeyword
96
+ case funcKeyword
97
+ case identifier
98
+ case importKeyword
99
+ case initKeyword
100
+ case internalKeyword
101
+ case letKeyword
102
+ case operatorKeyword
103
+ case poundErrorKeyword
104
+ case poundIfKeyword
105
+ case poundLineKeyword
106
+ case poundSourceLocationKeyword
107
+ case poundWarningKeyword
108
+ case precedencegroupKeyword
109
+ case privateKeyword
110
+ case protocolKeyword
111
+ case publicKeyword
112
+ case staticKeyword
113
+ case structKeyword
114
+ case subscriptKeyword
115
+ case typealiasKeyword
116
+ case varKeyword
117
+
118
+ var rawTokenKind : RawTokenKind {
119
+ switch self {
120
+ case . associatedtypeKeyword: return . associatedtypeKeyword
121
+ case . atSign: return . atSign
122
+ case . caseKeyword: return . caseKeyword
123
+ case . classKeyword: return . classKeyword
124
+ case . deinitKeyword: return . deinitKeyword
125
+ case . enumKeyword: return . enumKeyword
126
+ case . extensionKeyword: return . extensionKeyword
127
+ case . fileprivateKeyword: return . fileprivateKeyword
128
+ case . funcKeyword: return . funcKeyword
129
+ case . identifier: return . identifier
130
+ case . importKeyword: return . importKeyword
131
+ case . initKeyword: return . initKeyword
132
+ case . internalKeyword: return . internalKeyword
133
+ case . letKeyword: return . letKeyword
134
+ case . operatorKeyword: return . operatorKeyword
135
+ case . poundErrorKeyword: return . poundErrorKeyword
136
+ case . poundIfKeyword: return . poundIfKeyword
137
+ case . poundLineKeyword: return . poundLineKeyword
138
+ case . poundSourceLocationKeyword: return . poundSourceLocationKeyword
139
+ case . poundWarningKeyword: return . poundWarningKeyword
140
+ case . precedencegroupKeyword: return . precedencegroupKeyword
141
+ case . privateKeyword: return . privateKeyword
142
+ case . protocolKeyword: return . protocolKeyword
143
+ case . publicKeyword: return . publicKeyword
144
+ case . staticKeyword: return . staticKeyword
145
+ case . structKeyword: return . structKeyword
146
+ case . subscriptKeyword: return . subscriptKeyword
147
+ case . typealiasKeyword: return . typealiasKeyword
148
+ case . varKeyword: return . varKeyword
149
+ }
150
+ }
151
+
152
+ func accepts( lexeme: Lexer . Lexeme ) -> Bool {
153
+ switch self {
154
+ case . poundLineKeyword:
155
+ return lexeme. isAtStartOfLine
156
+ default :
157
+ return true
158
+ }
159
+ }
160
+ }
161
+
87
162
enum ContextualDeclKeyword : SyntaxText , ContextualKeywords {
88
163
case __consuming = " __consuming "
89
164
case _compilerInitialized = " _compilerInitialized "
0 commit comments