Module: SasLexer::Lexer::TokenType

Defined in:
lib/sas_lexer/lexer.rb

Overview

Token type constants — match the ‘TokenType` enum in the Rust crate. Full enum: github.com/mishamsk/sas-lexer/blob/main/crates/sas-lexer/src/lexer/token_type.rs

Constant Summary collapse

EOF =

Special tokens

0
MACRO_SEP =
1
CATCH_ALL =
2
WS =
3
WHITESPACE =

Alias for WS

3
SEMI =

Punctuation and operators

4
AMP =

‘;’

5
PERCENT =

‘&’

6
LPAREN =

‘%’

7
RPAREN =

‘(’

8
LCURLY =

‘)’

9
RCURLY =

‘{’

10
LBRACK =

‘}’

11
RBRACK =

‘[’

12
STAR =

‘]’

13
EXCL =

‘*’

14
EXCL2 =

‘!’

15
BPIPE =

‘!!’

16
BPIPE2 =

‘!|’

17
PIPE2 =

‘!|!’

18
STAR2 =

‘||’

19
NOT =

‘**’

20
FSLASH =

‘¬’ or ‘^’

21
PLUS =

‘/’

22
MINUS =

‘+’

23
GTLT =

‘-’

24
LTGT =

‘><’

25
LT =

‘<>’

26
LE =

‘<’

27
NE =

‘<=’

28
GT =

‘!=’ or ‘^=’

29
GE =

‘>’

30
SOUNDS_LIKE =

‘>=’

31
PIPE =

‘=*’

32
DOT =

‘|’

33
COMMA =

‘.’

34
COLON =

‘,’

35
ASSIGN =

‘:’

36
DOLLAR =

‘=’

37
AT =

‘$’

38
HASH =

‘@’

39
QUESTION =

‘#’

40
KW_LT =

Logical operators (mnemonic keywords)

41
KW_LE =

LT

42
KW_EQ =

LE

43
KW_IN =

EQ

44
KW_NE =

IN

45
KW_GT =

NE

46
KW_GE =

GT

47
KW_AND =

GE

48
KW_OR =

AND

49
KW_NOT =

OR

50
INTEGER_LITERAL =

Literals

51
FLOAT_LITERAL =
52
FLOAT_EXPONENT_LITERAL =
53
STRING_LITERAL =
54
BIT_TESTING_LITERAL =
55
DATE_LITERAL =
56
DATE_TIME_LITERAL =
57
NAME_LITERAL =
58
TIME_LITERAL =
59
HEX_STRING_LITERAL =
60
STRING_EXPR_START =
61
STRING_EXPR_TEXT =
62
STRING_EXPR_END =
63
BIT_TESTING_LITERAL_EXPR_END =
64
DATE_LITERAL_EXPR_END =
65
DATE_TIME_LITERAL_EXPR_END =
66
NAME_LITERAL_EXPR_END =
67
TIME_LITERAL_EXPR_END =
68
HEX_STRING_LITERAL_EXPR_END =
69
C_STYLE_COMMENT =

Comments

70
PREDICTED_COMMENT_STAT =

/* … */

71
COMMENT_STAT =
  • …; and ** … **;

71
DATALINES_START =

Alias for PREDICTED_COMMENT_STAT

72
DATALINES_DATA =
73
CHAR_FORMAT =
74
MACRO_COMMENT =

%* …;

75
MACRO_VAR_RESOLVE =
76
MACRO_VAR_TERM =
77
MACRO_STRING =
78
MACRO_STRING_EMPTY =
79
MACRO_LABEL =
80
MACRO_IDENTIFIER =
81
KWM_CMPRES =

Macro functions

82
KWM_COMPSTOR =
83
KWM_DATATYP =
84
KWM_EVAL =
85
KWM_INDEX =
86
KWM_LEFT =
87
KWM_LENGTH =
88
KWM_LOWCASE =
89
KWM_SCAN =
90
KWM_SUBSTR =
91
KWM_SYM_EXIST =
92
KWM_SYM_GLOBL =
93
KWM_SYM_LOCAL =
94
KWM_SYSEVALF =
95
KWM_SYSFUNC =
96
KWM_SYSGET =
97
KWM_SYSMACEXEC =
98
KWM_SYSMACEXIST =
99
KWM_SYSMEXECDEPTH =
100
KWM_SYSMEXECNAME =
101
KWM_SYSPROD =
102
KWM_TRIM =
103
KWM_UNQUOTE =
104
KWM_UPCASE =
105
KWM_VERIFY =
106
KWM_K_CMPRES =
107
KWM_K_INDEX =
108
KWM_K_LEFT =
109
KWM_K_LENGTH =
110
KWM_K_LOWCASE =
111
KWM_K_SCAN =
112
KWM_K_SUBSTR =
113
KWM_K_TRIM =
114
KWM_K_UPCASE =
115
KWM_K_VERIFY =
116
KWM_VALIDCHS =
117
KWM_Q_CMPRES =
118
KWM_Q_LEFT =
119
KWM_Q_LOWCASE =
120
KWM_Q_SCAN =
121
KWM_Q_SUBSTR =
122
KWM_Q_TRIM =
123
KWM_Q_SYSFUNC =
124
KWM_Q_UPCASE =
125
KWM_QK_CMPRES =
126
KWM_QK_LEFT =
127
KWM_QK_LOWCASE =
128
KWM_QK_SCAN =
129
KWM_QK_SUBSTR =
130
KWM_QK_TRIM =
131
KWM_QK_UPCASE =
132
KWM_BQUOTE =
133
KWM_NR_BQUOTE =
134
KWM_NR_QUOTE =
135
KWM_QUOTE =
136
KWM_SUPERQ =
137
KWM_STR =
138
KWM_NR_STR =
139
KWM_ABORT =

Macro statements

140
KWM_COPY =
141
KWM_DISPLAY =
142
KWM_DO =
143
KWM_TO =
144
KWM_BY =
145
KWM_UNTIL =
146
KWM_WHILE =
147
KWM_END =
148
KWM_GLOBAL =
149
KWM_GOTO =
150
KWM_IF =
151
KWM_THEN =
152
KWM_ELSE =
153
KWM_INPUT =
154
KWM_LET =
155
KWM_LOCAL =
156
KWM_MACRO =
157
KWM_MEND =
158
KWM_PUT =
159
KWM_RETURN =
160
KWM_SYMDEL =
161
KWM_SYSCALL =
162
KWM_SYSEXEC =
163
KWM_SYSLPUT =
164
KWM_SYSMACDELETE =
165
KWM_SYSMSTORECLEAR =
166
KWM_SYSRPUT =
167
KWM_WINDOW =
168
KWM_INCLUDE =
169
KWM_LIST =
170
KWM_RUN =
171
IDENTIFIER =

Identifiers (variable names, dataset names, etc.)

172
KW_EQT =

Additional keyword operators

173
KW_GTT =
174
KW_LTT =
175
KW_GET =
176
KW_LET =
177
KW_NET =
178
KW_LIBNAME =

SAS statement keywords

179
KW_FILENAME =
180
KW_CLEAR =
181
KW_LIST =
182
KW_CANCEL =
183
KW_ALL_VAR =
184
KW_ARRAY =
185
KW_ATTRIB =
186
KW_CALL =
187
KW_DATA =
188
KW_DEFAULT =
189
KW_DESCENDING =
190
KW_FORMAT =
191
KW_GROUPFORMAT =
192
KW_ID =
193
KW_IF =
194
KW_INFILE =
195
KW_INFORMAT =
196
KW_KEEP =
197
KW_LABEL =
198
KW_LENGTH =
199
KW_MERGE =
200
KW_NULL_DATASET =
201
KW_OUTPUT =
202
KW_PGM =
203
KW_RENAME =
204
KW_RUN =
205
KW_SET =
206
KW_STOP =
207
KW_VAR =
208
KW_VIEW =
209
KW_WITH =
210
KW_DELETE =
211
KW_NOTSORTED =
212
KW_PROC =
213
KW_QUIT =
214
KW_RANKS =
215
KW_ALL =

SQL and other SAS keywords

216
KW_ANY =
217
KW_AS =
218
KW_ASC =
219
KW_BETWEEN =
220
KW_BOTH =
221
KW_BTRIM =
222
KW_BY =
223
KW_CALCULATED =
224
KW_CASE =
225
KW_CONNECT =
226
KW_CONNECTION =
227
KW_CONTAINS =
228
KW_CORR =
229
KW_CREATE =
230
KW_CROSS =
231
KW_DESC =
232
KW_DISCONNECT =
233
KW_DISTINCT =
234
KW_DO =
235
KW_DROP =
236
KW_ELSE =
237
KW_END =
238
KW_ESCAPE =
239
KW_EXCEPT =
240
KW_EXECUTE =
241
KW_EXISTS =
242
KW_FOR =
243
KW_FROM =
244
KW_FULL =
245
KW_GROUP =
246
KW_HAVING =
247
KW_INDEX =
248
KW_INNER =
249
KW_INSERT =
250
KW_INTERSECT =
251
KW_INTO =
252
KW_IS =
253
KW_JOIN =
254
KW_KEY =
255
KW_LEADING =
256
KW_LEFT =
257
KW_LIKE =
258
KW_MISSING =
259
KW_NATURAL =
260
KW_NOTRIM =
261
KW_NULL =
262
KW_ON =
263
KW_ORDER =
264
KW_OUTER =
265
KW_PRIMARY =
266
KW_RIGHT =
267
KW_SELECT =
268
KW_SEPARATED =
269
KW_SUBSTRING =
270
KW_TABLE =
271
KW_THEN =
272
KW_TO =
273
KW_TRAILING =
274
KW_TRIMMED =
275
KW_UNION =
276
KW_UNIQUE =
277
KW_UPDATE =
278
KW_USING =
279
KW_VALUES =
280
KW_WHEN =
281
KW_WHERE =
282
KW_DECLARE =
283
KW_HASH =
284
KW_HITER =
285
KW_INPUT =
286
KW_PUT =
287