c_lexer 2.6.4.0.1 → 2.6.4.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 79f973ba613f2ddf5552acb8168cbd93e2a547b03988018fe2528c0ac891528a
4
- data.tar.gz: e2a029cd02cc5433e5fbcb8e22be03049f32b129cc50b3c0dc30ea16cd9500c9
3
+ metadata.gz: 6feb2a213939ae8a481312ac17a9d6fb6fc5f66f50f5fd48635e571fb06101e2
4
+ data.tar.gz: 9c1ea663c6066b26e4ac4e8c87199c0a281c04554cbd7940a939e8bdbd6cd4fe
5
5
  SHA512:
6
- metadata.gz: 306bbb0d0c63e83608ad6bb389895b86d506d2f90d9b2f5c3b025e1cb93496cbd3445bfc223e105e74fd6d7b198aea2a2d8c34f9bce2c0060020d93996e999af
7
- data.tar.gz: f8e0d4e6afe1bb1a95fe6533bc88b2ef87c300dabdbfc06fd05dc671e59a2d14be8a4920296cef50b34dd4fee1b1a7bf31fd383d1837896ed0e2fc3a4eee2c89
6
+ metadata.gz: c58d48fdfd38555a9ed666a0f717e4e9fbc9bbb0f2ad0c676eeb01692186835c31970e6f128e623772ecd096c2e1a0ad1e2dd3677f343ce5b8e0fc788e6353ba
7
+ data.tar.gz: fcec4ccd283045c079deaaffb9c2753157436c99110e96fbd80fe8a32fc5b1dd1f1753a845a7e8a3faa092442900f1c0ffeb9aedff0bf87a327418abd0a5c8cd
data/Gemfile.lock CHANGED
@@ -1,14 +1,14 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- c_lexer (2.6.4.0.1)
4
+ c_lexer (2.6.4.1.0)
5
5
  ast (~> 2.4.0)
6
- parser (= 2.6.4.0)
6
+ parser (= 2.6.4.1)
7
7
 
8
8
  PATH
9
9
  remote: vendor/parser
10
10
  specs:
11
- parser (2.6.4.0)
11
+ parser (2.6.4.1)
12
12
  ast (~> 2.4.0)
13
13
 
14
14
  GEM
data/c_lexer.gemspec CHANGED
@@ -22,7 +22,7 @@ Gem::Specification.new do |spec|
22
22
  spec.extensions = ['ext/lexer/extconf.rb']
23
23
 
24
24
  spec.add_dependency 'ast', '~> 2.4.0'
25
- spec.add_dependency 'parser', '= 2.6.4.0'
25
+ spec.add_dependency 'parser', '= 2.6.4.1'
26
26
 
27
27
  spec.add_development_dependency 'bundler'
28
28
  spec.add_development_dependency 'rake', '~> 10.0'
data/ext/lexer/lexer.h CHANGED
@@ -35,6 +35,9 @@ struct Lexer {
35
35
  lit_stack literal_stack;
36
36
 
37
37
  int version;
38
+
39
+ int command_start;
40
+
38
41
  int in_kwarg;
39
42
  int force_utf32;
40
43
 
data/ext/lexer/lexer.rl CHANGED
@@ -154,7 +154,7 @@ static VALUE lexer_reset(int argc, VALUE *argv, VALUE self)
154
154
 
155
155
  lexer->dedent_level = -1;
156
156
 
157
- // @command_state is a local variable
157
+ lexer->command_start = 1;
158
158
 
159
159
  lexer->in_kwarg = 0;
160
160
 
@@ -341,7 +341,7 @@ static VALUE lexer_set_force_utf32(VALUE self, VALUE arg)
341
341
 
342
342
  static VALUE lexer_advance(VALUE self)
343
343
  {
344
- int cs, act = 0, top, command_state;
344
+ int cs, act = 0, top, cmd_state;
345
345
  int num_base = 0;
346
346
  long p, pe, eof, ts = 0, te = 0, tm = 0, sharp_s = 0, heredoc_e = 0;
347
347
  long num_digits_s = 0, num_suffix_s = 0;
@@ -363,7 +363,8 @@ static VALUE lexer_advance(VALUE self)
363
363
  stack = lexer->cs_stack;
364
364
  top = lexer->cs_stack_top;
365
365
 
366
- command_state = (cs == lex_en_expr_value || cs == lex_en_line_begin);
366
+ cmd_state = lexer->command_start;
367
+ lexer->command_start = 0;
367
368
 
368
369
  %%{
369
370
  write exec;
@@ -467,9 +468,9 @@ static int get_codepoint(Lexer *lexer, long p)
467
468
  return NUM2INT(rb_ary_entry(lexer->source_pts, p));
468
469
  }
469
470
 
470
- static int arg_or_cmdarg(int command_state)
471
+ static int arg_or_cmdarg(int cmd_state)
471
472
  {
472
- if (command_state) {
473
+ if (cmd_state) {
473
474
  return lex_en_expr_cmdarg;
474
475
  } else {
475
476
  return lex_en_expr_arg;
@@ -1494,6 +1495,7 @@ void Init_lexer()
1494
1495
  }
1495
1496
 
1496
1497
  literal_start_interp_brace(current_literal);
1498
+ lexer->command_start = 1;
1497
1499
  fnext expr_value;
1498
1500
  fbreak;
1499
1501
  }
@@ -1636,6 +1638,10 @@ void Init_lexer()
1636
1638
  stack_state_push(&lexer->cond, 0);
1637
1639
  stack_state_push(&lexer->cmdarg, 0);
1638
1640
  lexer->paren_nest += 1;
1641
+
1642
+ if (lexer->version == 18) {
1643
+ lexer->command_start = 1;
1644
+ }
1639
1645
  };
1640
1646
 
1641
1647
  e_rparen = ')' % {
@@ -1649,7 +1655,7 @@ void Init_lexer()
1649
1655
  if (STATIC_ENV_DECLARED(str)) {
1650
1656
  fnext expr_endfn; fbreak;
1651
1657
  } else {
1652
- fnext *arg_or_cmdarg(command_state); fbreak;
1658
+ fnext *arg_or_cmdarg(cmd_state); fbreak;
1653
1659
  }
1654
1660
  }
1655
1661
 
@@ -1794,13 +1800,17 @@ void Init_lexer()
1794
1800
  *|;
1795
1801
 
1796
1802
  expr_dot := |*
1797
- constant => { emit(tCONSTANT); fnext *arg_or_cmdarg(command_state); fbreak; };
1803
+ constant
1804
+ => { emit(tCONSTANT);
1805
+ fnext *arg_or_cmdarg(cmd_state); fbreak; };
1798
1806
 
1799
- call_or_var => { emit(tIDENTIFIER); fnext *arg_or_cmdarg(command_state); fbreak; };
1807
+ call_or_var
1808
+ => { emit(tIDENTIFIER);
1809
+ fnext *arg_or_cmdarg(cmd_state); fbreak; };
1800
1810
 
1801
1811
  bareword ambiguous_fid_suffix
1802
1812
  => { emit_token(lexer, tFID, tok(lexer, ts, tm), ts, tm);
1803
- fnext *arg_or_cmdarg(command_state); p = tm - 1; fbreak; };
1813
+ fnext *arg_or_cmdarg(cmd_state); p = tm - 1; fbreak; };
1804
1814
 
1805
1815
  operator_fname |
1806
1816
  operator_arithmetic |
@@ -1842,6 +1852,7 @@ void Init_lexer()
1842
1852
  } else {
1843
1853
  emit_token(lexer, tLCURLY, rb_str_new2("{"), te - 1, te);
1844
1854
  }
1855
+ lexer->command_start = 1;
1845
1856
  fnext expr_value; fbreak;
1846
1857
  };
1847
1858
 
@@ -1939,6 +1950,7 @@ void Init_lexer()
1939
1950
  } else {
1940
1951
  emit_token(lexer, tLBRACE_ARG, rb_str_new2("{"), te - 1, te);
1941
1952
  }
1953
+ lexer->command_start = 1;
1942
1954
  fnext expr_value; fbreak;
1943
1955
  };
1944
1956
 
@@ -2179,6 +2191,7 @@ void Init_lexer()
2179
2191
  VALUE val = array_last(lexer->lambda_stack);
2180
2192
  if (val != Qnil && NUM2INT(val) == lexer->paren_nest) {
2181
2193
  rb_ary_pop(lexer->lambda_stack);
2194
+ lexer->command_start = 1;
2182
2195
  emit(tLAMBEG);
2183
2196
  } else {
2184
2197
  emit(tLBRACE);
@@ -2208,6 +2221,7 @@ void Init_lexer()
2208
2221
 
2209
2222
  keyword_modifier
2210
2223
  => { emit_table_KEYWORDS_BEGIN(lexer, tok(lexer, ts, te), ts, te);
2224
+ lexer->command_start = 1;
2211
2225
  fnext expr_value; fbreak; };
2212
2226
 
2213
2227
  label ( any - ':' )
@@ -2224,7 +2238,7 @@ void Init_lexer()
2224
2238
  if (STATIC_ENV_DECLARED(ident)) {
2225
2239
  fnext expr_end;
2226
2240
  } else {
2227
- fnext *arg_or_cmdarg(command_state);
2241
+ fnext *arg_or_cmdarg(cmd_state);
2228
2242
  }
2229
2243
  } else {
2230
2244
  emit_token(lexer, tLABEL, tok(lexer, ts, te - 2), ts, te - 1);
@@ -2343,6 +2357,7 @@ void Init_lexer()
2343
2357
  } else {
2344
2358
  emit(tLCURLY);
2345
2359
  }
2360
+ lexer->command_start = 1;
2346
2361
  fnext expr_value; fbreak;
2347
2362
  };
2348
2363
 
@@ -2354,6 +2369,7 @@ void Init_lexer()
2354
2369
  } else {
2355
2370
  emit_do(lexer, 0, ts, te);
2356
2371
  }
2372
+ lexer->command_start = 1;
2357
2373
  fnext expr_value; fbreak;
2358
2374
  };
2359
2375
 
@@ -2372,6 +2388,7 @@ void Init_lexer()
2372
2388
 
2373
2389
  keyword_with_value
2374
2390
  => { emit_table_KEYWORDS(lexer, tok(lexer, ts, te), ts, te);
2391
+ lexer->command_start = 1;
2375
2392
  fnext expr_value; fbreak; };
2376
2393
 
2377
2394
  keyword_with_mid
@@ -2398,7 +2415,7 @@ void Init_lexer()
2398
2415
  if (STATIC_ENV_DECLARED(str)) {
2399
2416
  fnext expr_end;
2400
2417
  } else {
2401
- fnext *arg_or_cmdarg(command_state);
2418
+ fnext *arg_or_cmdarg(cmd_state);
2402
2419
  }
2403
2420
  } else {
2404
2421
  emit(k__ENCODING__);
@@ -2505,7 +2522,7 @@ void Init_lexer()
2505
2522
  fgoto *push_literal(lexer, type, delimiter, ts, 0, 0, 0, 1);
2506
2523
  };
2507
2524
 
2508
- constant => { emit(tCONSTANT); fnext *arg_or_cmdarg(command_state); fbreak; };
2525
+ constant => { emit(tCONSTANT); fnext *arg_or_cmdarg(cmd_state); fbreak; };
2509
2526
 
2510
2527
  constant ambiguous_const_suffix => {
2511
2528
  emit_token(lexer, tCONSTANT, tok(lexer, ts, tm), ts, tm);
@@ -2623,7 +2640,10 @@ void Init_lexer()
2623
2640
 
2624
2641
  w_newline => { fgoto leading_dot; };
2625
2642
 
2626
- ';' => { emit(tSEMI); fnext expr_value; fbreak; };
2643
+ ';'
2644
+ => { emit(tSEMI);
2645
+ lexer->command_start = 1;
2646
+ fnext expr_value; fbreak; };
2627
2647
 
2628
2648
  '\\' c_line {
2629
2649
  diagnostic(lexer, severity_error, bare_backslash, Qnil,
@@ -2676,7 +2696,7 @@ void Init_lexer()
2676
2696
 
2677
2697
  '__END__' ( c_eol - zlen ) => { p = pe - 3; };
2678
2698
 
2679
- c_any => { fhold; fgoto expr_value; };
2699
+ c_any => { cmd_state = 1; fhold; fgoto expr_value; };
2680
2700
 
2681
2701
  c_eof => do_eof;
2682
2702
  *|;
@@ -1,3 +1,3 @@
1
1
  module CLexer
2
- VERSION = '2.6.4.0.1'
2
+ VERSION = '2.6.4.1.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: c_lexer
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.4.0.1
4
+ version: 2.6.4.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ilya Bylich
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 2.6.4.0
33
+ version: 2.6.4.1
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 2.6.4.0
40
+ version: 2.6.4.1
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement