c_lexer 2.6.0.0.0 → 2.6.2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/ext/lexer/emit_tables.h +1 -0
- data/ext/lexer/lexer.c +9598 -9512
- data/ext/lexer/lexer.h +9 -8
- data/ext/lexer/lexer.rl +12 -10
- data/lib/c_lexer/version.rb +1 -1
- data/lib/c_lexer.rb +10 -0
- metadata +2 -2
data/ext/lexer/lexer.h
CHANGED
@@ -167,30 +167,30 @@ VALUE kWHILE;
|
|
167
167
|
VALUE kWHILE_MOD;
|
168
168
|
VALUE kYIELD;
|
169
169
|
|
170
|
-
VALUE tAMPER;
|
171
170
|
VALUE tAMPER2;
|
171
|
+
VALUE tAMPER;
|
172
172
|
VALUE tANDDOT;
|
173
173
|
VALUE tANDOP;
|
174
174
|
VALUE tAREF;
|
175
175
|
VALUE tASET;
|
176
176
|
VALUE tASSOC;
|
177
|
-
VALUE tBACK_REF;
|
178
177
|
VALUE tBACK_REF2;
|
178
|
+
VALUE tBACK_REF;
|
179
179
|
VALUE tBANG;
|
180
180
|
VALUE tCARET;
|
181
181
|
VALUE tCHARACTER;
|
182
182
|
VALUE tCMP;
|
183
|
-
VALUE tCOLON;
|
184
183
|
VALUE tCOLON2;
|
185
184
|
VALUE tCOLON3;
|
185
|
+
VALUE tCOLON;
|
186
186
|
VALUE tCOMMA;
|
187
187
|
VALUE tCOMMENT;
|
188
188
|
VALUE tCONSTANT;
|
189
189
|
VALUE tCVAR;
|
190
190
|
VALUE tDIVIDE;
|
191
|
-
VALUE tDOT;
|
192
191
|
VALUE tDOT2;
|
193
192
|
VALUE tDOT3;
|
193
|
+
VALUE tDOT;
|
194
194
|
VALUE tDSTAR;
|
195
195
|
VALUE tEH;
|
196
196
|
VALUE tEQ;
|
@@ -211,16 +211,17 @@ VALUE tLAMBDA;
|
|
211
211
|
VALUE tLAMBEG;
|
212
212
|
VALUE tLBRACE;
|
213
213
|
VALUE tLBRACE_ARG;
|
214
|
-
VALUE tLBRACK;
|
215
214
|
VALUE tLBRACK2;
|
215
|
+
VALUE tLBRACK;
|
216
216
|
VALUE tLCURLY;
|
217
217
|
VALUE tLEQ;
|
218
|
+
VALUE tLPAREN2;
|
218
219
|
VALUE tLPAREN;
|
219
220
|
VALUE tLPAREN_ARG;
|
220
|
-
VALUE tLPAREN2;
|
221
221
|
VALUE tLSHFT;
|
222
222
|
VALUE tLT;
|
223
223
|
VALUE tMATCH;
|
224
|
+
VALUE tMETHREF;
|
224
225
|
VALUE tMINUS;
|
225
226
|
VALUE tNEQ;
|
226
227
|
VALUE tNL;
|
@@ -232,8 +233,8 @@ VALUE tPERCENT;
|
|
232
233
|
VALUE tPIPE;
|
233
234
|
VALUE tPLUS;
|
234
235
|
VALUE tPOW;
|
235
|
-
VALUE tQWORDS_BEG;
|
236
236
|
VALUE tQSYMBOLS_BEG;
|
237
|
+
VALUE tQWORDS_BEG;
|
237
238
|
VALUE tRATIONAL;
|
238
239
|
VALUE tRBRACK;
|
239
240
|
VALUE tRCURLY;
|
@@ -243,8 +244,8 @@ VALUE tRPAREN;
|
|
243
244
|
VALUE tRSHFT;
|
244
245
|
VALUE tSEMI;
|
245
246
|
VALUE tSPACE;
|
246
|
-
VALUE tSTAR;
|
247
247
|
VALUE tSTAR2;
|
248
|
+
VALUE tSTAR;
|
248
249
|
VALUE tSTRING;
|
249
250
|
VALUE tSTRING_BEG;
|
250
251
|
VALUE tSTRING_CONTENT;
|
data/ext/lexer/lexer.rl
CHANGED
@@ -827,11 +827,12 @@ void Init_lexer()
|
|
827
827
|
init_symbol(tLCURLY);
|
828
828
|
init_symbol(tLEQ);
|
829
829
|
init_symbol(tLPAREN);
|
830
|
-
init_symbol(tLPAREN_ARG);
|
831
830
|
init_symbol(tLPAREN2);
|
831
|
+
init_symbol(tLPAREN_ARG);
|
832
832
|
init_symbol(tLSHFT);
|
833
833
|
init_symbol(tLT);
|
834
834
|
init_symbol(tMATCH);
|
835
|
+
init_symbol(tMETHREF);
|
835
836
|
init_symbol(tMINUS);
|
836
837
|
init_symbol(tNEQ);
|
837
838
|
init_symbol(tNL);
|
@@ -843,8 +844,8 @@ void Init_lexer()
|
|
843
844
|
init_symbol(tPIPE);
|
844
845
|
init_symbol(tPLUS);
|
845
846
|
init_symbol(tPOW);
|
846
|
-
init_symbol(tQWORDS_BEG);
|
847
847
|
init_symbol(tQSYMBOLS_BEG);
|
848
|
+
init_symbol(tQWORDS_BEG);
|
848
849
|
init_symbol(tRATIONAL);
|
849
850
|
init_symbol(tRBRACK);
|
850
851
|
init_symbol(tRCURLY);
|
@@ -1412,13 +1413,8 @@ void Init_lexer()
|
|
1412
1413
|
if (literal_end_interp_brace_and_try_closing(current_literal)) {
|
1413
1414
|
if (lexer->version == 18 || lexer->version == 19) {
|
1414
1415
|
emit_token(lexer, tRCURLY, rb_str_new2("}"), p - 1, p);
|
1415
|
-
|
1416
|
-
|
1417
|
-
stack_state_lexpop(&lexer->cmdarg);
|
1418
|
-
} else {
|
1419
|
-
stack_state_pop(&lexer->cond);
|
1420
|
-
stack_state_pop(&lexer->cmdarg);
|
1421
|
-
}
|
1416
|
+
stack_state_pop(&lexer->cond);
|
1417
|
+
stack_state_pop(&lexer->cmdarg);
|
1422
1418
|
} else {
|
1423
1419
|
emit_token(lexer, tSTRING_DEND, rb_str_new2("}"), p - 1, p);
|
1424
1420
|
}
|
@@ -2364,7 +2360,13 @@ void Init_lexer()
|
|
2364
2360
|
global_var | class_var_v | instance_var_v
|
2365
2361
|
=> { p = ts - 1; fcall expr_variable; };
|
2366
2362
|
|
2367
|
-
'
|
2363
|
+
'.:' w_space+
|
2364
|
+
=> { emit_token(lexer, tDOT, tok(lexer, ts, ts + 1), ts, ts + 1);
|
2365
|
+
emit_token(lexer, tCOLON, tok(lexer, ts + 1, ts + 2), ts + 1, ts + 2);
|
2366
|
+
p = p - (te - ts) + 2;
|
2367
|
+
fnext expr_dot; fbreak; };
|
2368
|
+
|
2369
|
+
'.:' | '.' | '&.' | '::'
|
2368
2370
|
=> { emit_table_PUNCTUATION(lexer, tok(lexer, ts, te), ts, te);
|
2369
2371
|
fnext expr_dot; fbreak; };
|
2370
2372
|
|
data/lib/c_lexer/version.rb
CHANGED
data/lib/c_lexer.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'c_lexer/version'
|
2
2
|
require 'parser/ruby25'
|
3
3
|
require 'parser/ruby26'
|
4
|
+
require 'parser/ruby27'
|
4
5
|
|
5
6
|
require_relative 'lexer'
|
6
7
|
|
@@ -84,6 +85,15 @@ module Parser
|
|
84
85
|
@lexer.static_env = @static_env
|
85
86
|
end
|
86
87
|
end
|
88
|
+
|
89
|
+
class Ruby27WithCLexer < Ruby27
|
90
|
+
def initialize(builder=Parser::Builders::Default.new)
|
91
|
+
super(builder)
|
92
|
+
@lexer = ::Parser::CLexer.new(version)
|
93
|
+
@lexer.diagnostics = @diagnostics
|
94
|
+
@lexer.static_env = @static_env
|
95
|
+
end
|
96
|
+
end
|
87
97
|
end
|
88
98
|
|
89
99
|
module CLexer
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: c_lexer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.6.
|
4
|
+
version: 2.6.2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ilya Bylich
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-09-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ast
|