parser 1.3.4 → 1.4.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
  SHA1:
3
- metadata.gz: 6cd417cce73823b5c02700b31b2ddc3364453aaf
4
- data.tar.gz: 143425da0cc95ae994b1068807561968afb43267
3
+ metadata.gz: aeb1a643a1e50280d971697fce43dd37ef01179a
4
+ data.tar.gz: f50c9ceeba38d5fdcf3b5d9c13fcd2c32425d805
5
5
  SHA512:
6
- metadata.gz: 1f55f2a694de612a9f9c71c428a91fa210134523b2377c4d5b2fe1276f64ddee27f4a702df979128d1b93172654fd7f684e9cbe3e297ccfcec53f00a29d90c8b
7
- data.tar.gz: 634c5ce4b572ee896d4eb82443b43c6f91af5542121f1525eff684259f24f8d59fc23920d8ec3e93b47d46014baabd18ff9b6563e5f5102a9f55d1f832971ae1
6
+ metadata.gz: 1d75b85fd7a2628ef8eac25c419b8c313e6983d431e9afe40050449d99d15f48509d8f1b4e08b8b1a1659abd089d2f9111046b8afb2ada27e3897643a98ed8a6
7
+ data.tar.gz: 98a3cbf81cbd31ea822a29c6f87ba544c397955befb74f86a611a943447eb13a1708d2fd0e52f2c00bbf748f5d1808f18008e8b3a1c0c78d744048a81df1b963
@@ -115,7 +115,6 @@ module Parser
115
115
  token_name = token_to_str(error_token_id)
116
116
  _, location = error_value
117
117
 
118
- # TODO add "expected: ..." here
119
118
  message = ERRORS[:unexpected_token] % { :token => token_name }
120
119
  @diagnostics.process(
121
120
  Diagnostic.new(:error, message, location))
@@ -544,16 +544,16 @@ module Parser
544
544
  lparen_t=nil, args=[], rparen_t=nil)
545
545
  if selector_t.nil?
546
546
  n(:send, [ receiver, :call, *args ],
547
- send_map(receiver, nil, lparen_t, args, rparen_t))
547
+ send_map(receiver, dot_t, nil, lparen_t, args, rparen_t))
548
548
  else
549
549
  n(:send, [ receiver, value(selector_t).to_sym, *args ],
550
- send_map(receiver, selector_t, lparen_t, args, rparen_t))
550
+ send_map(receiver, dot_t, selector_t, lparen_t, args, rparen_t))
551
551
  end
552
552
  end
553
553
 
554
554
  def call_lambda(lambda_t)
555
555
  n(:send, [ nil, :lambda ],
556
- send_map(nil, lambda_t))
556
+ send_map(nil, nil, lambda_t))
557
557
  end
558
558
 
559
559
  def block(method_call, begin_t, args, body, end_t)
@@ -579,7 +579,7 @@ module Parser
579
579
 
580
580
  # Incomplete method call.
581
581
  n(:send, [ receiver, method_name ],
582
- send_map(receiver, selector_t))
582
+ send_map(receiver, dot_t, selector_t))
583
583
  end
584
584
 
585
585
  def index(receiver, lbrack_t, indexes, rbrack_t)
@@ -994,7 +994,7 @@ module Parser
994
994
  loc(end_t))
995
995
  end
996
996
 
997
- def send_map(receiver_e, selector_t, begin_t=nil, args=[], end_t=nil)
997
+ def send_map(receiver_e, dot_t, selector_t, begin_t=nil, args=[], end_t=nil)
998
998
  if receiver_e
999
999
  begin_l = receiver_e.src.expression
1000
1000
  elsif selector_t
@@ -1009,17 +1009,20 @@ module Parser
1009
1009
  end_l = loc(selector_t)
1010
1010
  end
1011
1011
 
1012
- Source::Map::Send.new(loc(selector_t), loc(begin_t), loc(end_t),
1012
+ Source::Map::Send.new(loc(dot_t), loc(selector_t),
1013
+ loc(begin_t), loc(end_t),
1013
1014
  begin_l.join(end_l))
1014
1015
  end
1015
1016
 
1016
1017
  def var_send_map(variable_e)
1017
- Source::Map::Send.new(variable_e.src.expression, nil, nil,
1018
+ Source::Map::Send.new(nil, variable_e.src.expression,
1019
+ nil, nil,
1018
1020
  variable_e.src.expression)
1019
1021
  end
1020
1022
 
1021
1023
  def send_binary_op_map(lhs_e, selector_t, rhs_e)
1022
- Source::Map::Send.new(loc(selector_t), nil, nil,
1024
+ Source::Map::Send.new(nil, loc(selector_t),
1025
+ nil, nil,
1023
1026
  join_exprs(lhs_e, rhs_e))
1024
1027
  end
1025
1028
 
@@ -1030,12 +1033,14 @@ module Parser
1030
1033
  expr_l = loc(selector_t).join(arg_e.src.expression)
1031
1034
  end
1032
1035
 
1033
- Source::Map::Send.new(loc(selector_t), nil, nil,
1036
+ Source::Map::Send.new(nil, loc(selector_t),
1037
+ nil, nil,
1034
1038
  expr_l)
1035
1039
  end
1036
1040
 
1037
1041
  def send_index_map(receiver_e, lbrack_t, rbrack_t)
1038
- Source::Map::Send.new(loc(lbrack_t).join(loc(rbrack_t)), nil, nil,
1042
+ Source::Map::Send.new(nil, loc(lbrack_t).join(loc(rbrack_t)),
1043
+ nil, nil,
1039
1044
  receiver_e.src.expression.join(loc(rbrack_t)))
1040
1045
  end
1041
1046
 
@@ -1520,7 +1520,7 @@ class Parser::Lexer
1520
1520
  expr_value := |*
1521
1521
  # a:b: a(:b), a::B, A::B
1522
1522
  bareword ':' (c_any - ':')
1523
- => { p = @ts - 2
1523
+ => { p = @ts - 1
1524
1524
  fgoto expr_end; };
1525
1525
 
1526
1526
  # TODO whitespace rule
@@ -2,12 +2,14 @@ module Parser
2
2
  module Source
3
3
 
4
4
  class Map::Send < Map
5
+ attr_reader :dot
5
6
  attr_reader :selector
6
7
  attr_reader :operator
7
8
  attr_reader :begin
8
9
  attr_reader :end
9
10
 
10
- def initialize(selector_l, begin_l, end_l, expression_l)
11
+ def initialize(dot_l, selector_l, begin_l, end_l, expression_l)
12
+ @dot = dot_l
11
13
  @selector = selector_l
12
14
  @begin, @end = begin_l, end_l
13
15
 
@@ -1,3 +1,3 @@
1
1
  module Parser
2
- VERSION = '1.3.4'
2
+ VERSION = '1.4.0'
3
3
  end
@@ -2370,18 +2370,21 @@ class TestParser < MiniTest::Unit::TestCase
2370
2370
  s(:send, s(:lvar, :foo), :fun),
2371
2371
  %q{foo.fun},
2372
2372
  %q{ ~~~ selector
2373
+ | ^ dot
2373
2374
  |~~~~~~~ expression})
2374
2375
 
2375
2376
  assert_parses(
2376
2377
  s(:send, s(:lvar, :foo), :fun),
2377
2378
  %q{foo::fun},
2378
2379
  %q{ ~~~ selector
2380
+ | ^^ dot
2379
2381
  |~~~~~~~~ expression})
2380
2382
 
2381
2383
  assert_parses(
2382
2384
  s(:send, s(:lvar, :foo), :Fun),
2383
2385
  %q{foo::Fun()},
2384
2386
  %q{ ~~~ selector
2387
+ | ^^ dot
2385
2388
  |~~~~~~~~~~ expression})
2386
2389
  end
2387
2390
 
@@ -2390,18 +2393,21 @@ class TestParser < MiniTest::Unit::TestCase
2390
2393
  s(:send, s(:lvar, :foo), :fun, s(:lvar, :bar)),
2391
2394
  %q{foo.fun bar},
2392
2395
  %q{ ~~~ selector
2396
+ | ^ dot
2393
2397
  |~~~~~~~~~~~ expression})
2394
2398
 
2395
2399
  assert_parses(
2396
2400
  s(:send, s(:lvar, :foo), :fun, s(:lvar, :bar)),
2397
2401
  %q{foo::fun bar},
2398
2402
  %q{ ~~~ selector
2403
+ | ^^ dot
2399
2404
  |~~~~~~~~~~~~ expression})
2400
2405
 
2401
2406
  assert_parses(
2402
2407
  s(:send, s(:lvar, :foo), :Fun, s(:lvar, :bar)),
2403
2408
  %q{foo::Fun bar},
2404
2409
  %q{ ~~~ selector
2410
+ | ^^ dot
2405
2411
  |~~~~~~~~~~~~ expression})
2406
2412
  end
2407
2413
 
@@ -2442,6 +2448,7 @@ class TestParser < MiniTest::Unit::TestCase
2442
2448
  :fun, s(:lvar, :bar)),
2443
2449
  %q{meth 1 do end.fun bar},
2444
2450
  %q{ ~~~ selector
2451
+ | ^ dot
2445
2452
  |~~~~~~~~~~~~~~~~~~~~~ expression})
2446
2453
 
2447
2454
  assert_parses(
@@ -2452,6 +2459,7 @@ class TestParser < MiniTest::Unit::TestCase
2452
2459
  :fun, s(:lvar, :bar)),
2453
2460
  %q{meth 1 do end.fun(bar)},
2454
2461
  %q{ ~~~ selector
2462
+ | ^ dot
2455
2463
  | ^ begin
2456
2464
  | ^ end
2457
2465
  |~~~~~~~~~~~~~~~~~~~~~~ expression})
@@ -2464,6 +2472,7 @@ class TestParser < MiniTest::Unit::TestCase
2464
2472
  :fun, s(:lvar, :bar)),
2465
2473
  %q{meth 1 do end::fun bar},
2466
2474
  %q{ ~~~ selector
2475
+ | ^^ dot
2467
2476
  |~~~~~~~~~~~~~~~~~~~~~~ expression})
2468
2477
 
2469
2478
  assert_parses(
@@ -2476,6 +2485,7 @@ class TestParser < MiniTest::Unit::TestCase
2476
2485
  %q{ ~~~ selector
2477
2486
  | ^ begin
2478
2487
  | ^ end
2488
+ | ^^ dot
2479
2489
  |~~~~~~~~~~~~~~~~~~~~~~~ expression})
2480
2490
 
2481
2491
  assert_parses(
@@ -2739,20 +2749,33 @@ class TestParser < MiniTest::Unit::TestCase
2739
2749
  s(:send, s(:lvar, :foo), :a=, s(:int, 1)),
2740
2750
  %q{foo.a = 1},
2741
2751
  %q{ ~ selector
2752
+ | ^ dot
2742
2753
  | ^ operator
2743
2754
  |~~~~~~~~~ expression})
2744
2755
 
2745
2756
  assert_parses(
2746
2757
  s(:send, s(:lvar, :foo), :a=, s(:int, 1)),
2747
- "foo::a = 1")
2758
+ %q{foo::a = 1},
2759
+ %q{ ~ selector
2760
+ | ^^ dot
2761
+ | ^ operator
2762
+ |~~~~~~~~~~ expression})
2748
2763
 
2749
2764
  assert_parses(
2750
2765
  s(:send, s(:lvar, :foo), :A=, s(:int, 1)),
2751
- "foo.A = 1")
2766
+ %q{foo.A = 1},
2767
+ %q{ ~ selector
2768
+ | ^ dot
2769
+ | ^ operator
2770
+ |~~~~~~~~~ expression})
2752
2771
 
2753
2772
  assert_parses(
2754
2773
  s(:cdecl, s(:lvar, :foo), :A, s(:int, 1)),
2755
- "foo::A = 1")
2774
+ %q{foo::A = 1},
2775
+ %q{ ~ name
2776
+ | ^^ double_colon
2777
+ | ^ operator
2778
+ |~~~~~~~~~~ expression})
2756
2779
  end
2757
2780
 
2758
2781
  def test_send_index
@@ -2848,6 +2871,7 @@ class TestParser < MiniTest::Unit::TestCase
2848
2871
  %q{foo.(1)},
2849
2872
  %q{ ^ begin
2850
2873
  | ^ end
2874
+ | ^ dot
2851
2875
  |~~~~~~~ expression},
2852
2876
  ALL_VERSIONS - %w(1.8))
2853
2877
 
@@ -2857,6 +2881,7 @@ class TestParser < MiniTest::Unit::TestCase
2857
2881
  %q{foo::(1)},
2858
2882
  %q{ ^ begin
2859
2883
  | ^ end
2884
+ | ^^ dot
2860
2885
  |~~~~~~~~ expression},
2861
2886
  ALL_VERSIONS - %w(1.8))
2862
2887
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.4
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Zotov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-05-16 00:00:00.000000000 Z
11
+ date: 2013-05-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ast