ruby_parser 3.8.2 → 3.8.3

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.
@@ -91,7 +91,7 @@ class RPStringScanner < StringScanner
91
91
  end
92
92
 
93
93
  module RubyParserStuff
94
- VERSION = "3.8.2" unless constants.include? "VERSION" # SIGH
94
+ VERSION = "3.8.3" unless constants.include? "VERSION" # SIGH
95
95
 
96
96
  attr_accessor :lexer, :in_def, :in_single, :file
97
97
  attr_reader :env, :comments
@@ -875,11 +875,73 @@ module RubyParserStuff
875
875
  str = val[0]
876
876
  str.force_encoding("ASCII-8BIT") unless str.valid_encoding? unless RUBY_VERSION < "1.9"
877
877
  result = s(:str, str)
878
- self.lexer.lineno += str.count("\n") + self.lexer.extra_lineno
879
- self.lexer.extra_lineno = 0
878
+ self.lexer.fixup_lineno str.count("\n")
880
879
  result
881
880
  end
882
881
 
882
+ def new_qword_list_entry val
883
+ str = val[1]
884
+ str.force_encoding("ASCII-8BIT") unless str.valid_encoding? unless RUBY_VERSION < "1.9"
885
+ result = s(:str, str)
886
+ self.lexer.fixup_lineno
887
+ result
888
+ end
889
+
890
+ def new_qword_list
891
+ result = s(:array)
892
+ self.lexer.fixup_lineno
893
+ result
894
+ end
895
+
896
+ def new_word_list
897
+ result = s(:array)
898
+ self.lexer.fixup_lineno
899
+ result
900
+ end
901
+
902
+ def new_word_list_entry val
903
+ result = val[1][0] == :evstr ? s(:dstr, "", val[1]) : val[1]
904
+ self.lexer.fixup_lineno
905
+ result
906
+ end
907
+
908
+ def new_qsym_list
909
+ result = s(:array)
910
+ self.lexer.fixup_lineno
911
+ result
912
+ end
913
+
914
+ def new_qsym_list_entry val
915
+ result = s(:lit, val[1].to_sym)
916
+ self.lexer.fixup_lineno
917
+ result
918
+ end
919
+
920
+ def new_symbol_list
921
+ result = s(:array)
922
+ self.lexer.fixup_lineno
923
+ result
924
+ end
925
+
926
+ def new_symbol_list_entry val
927
+ _list, sym, _nil = val # TODO: use _list
928
+ result = val[1]
929
+
930
+ result ||= s(:str, "")
931
+
932
+ case sym[0]
933
+ when :dstr then
934
+ sym[0] = :dsym
935
+ when :str then
936
+ sym = s(:lit, sym.last.to_sym)
937
+ else
938
+ debug20 24
939
+ sym = s(:dsym, "", sym || s(:str, ""))
940
+ end
941
+ self.lexer.fixup_lineno
942
+ sym
943
+ end
944
+
883
945
  def new_super args
884
946
  if args && args.node_type == :block_pass then
885
947
  s(:super, args)
@@ -89,6 +89,8 @@ class TestRubyLexer < Minitest::Test
89
89
  case value
90
90
  when Float then
91
91
  assert_in_epsilon value, act_value, 0.001, msg
92
+ when NilClass then
93
+ assert_nil act_value, msg
92
94
  else
93
95
  assert_equal value, act_value, msg
94
96
  end
@@ -967,7 +969,17 @@ class TestRubyLexer < Minitest::Test
967
969
  end
968
970
 
969
971
  def test_yylex_float_e_bad_double_e
970
- refute_lex "1e2e3"
972
+ assert_lex3("1e2e3",
973
+ nil,
974
+ :tFLOAT, 100, :expr_end,
975
+ :tIDENTIFIER, "e3", :expr_end)
976
+ end
977
+
978
+ def test_yylex_float_if_modifier
979
+ assert_lex3("1e2if",
980
+ nil,
981
+ :tFLOAT, 100, :expr_end,
982
+ :kIF_MOD, "if", :expr_beg)
971
983
  end
972
984
 
973
985
  def test_yylex_float_e_bad_trailing_underscore
@@ -1409,6 +1421,13 @@ class TestRubyLexer < Minitest::Test
1409
1421
  refute_lex "0d42__24"
1410
1422
  end
1411
1423
 
1424
+ def test_yylex_integer_if_modifier
1425
+ assert_lex3("123if",
1426
+ nil,
1427
+ :tINTEGER, 123, :expr_end,
1428
+ :kIF_MOD, "if", :expr_beg)
1429
+ end
1430
+
1412
1431
  def test_yylex_question_eh_a__18
1413
1432
  setup_lexer_class Ruby18Parser
1414
1433
 
@@ -2698,25 +2717,80 @@ class TestRubyLexer < Minitest::Test
2698
2717
  :tRCURLY, "}", :expr_endarg, 0, 0)
2699
2718
  end
2700
2719
 
2701
- def test_ruby21_new_numbers
2702
- skip "Don't have imaginary and rational literal lexing yet"
2720
+ def test_ruby21_rational_literal
2721
+ setup_lexer_class Ruby21Parser
2703
2722
 
2723
+ assert_lex3("10r", nil, :tRATIONAL, Rational(10), :expr_end)
2724
+ assert_lex3("0x10r", nil, :tRATIONAL, Rational(16), :expr_end)
2725
+ assert_lex3("0o10r", nil, :tRATIONAL, Rational(8), :expr_end)
2726
+ assert_lex3("0or", nil, :tRATIONAL, Rational(0), :expr_end)
2727
+ assert_lex3("0b10r", nil, :tRATIONAL, Rational(2), :expr_end)
2728
+ assert_lex3("1.5r", nil, :tRATIONAL, Rational(15, 10), :expr_end)
2729
+ assert_lex3("15e3r", nil, :tRATIONAL, Rational(15000), :expr_end)
2730
+ assert_lex3("15e-3r", nil, :tRATIONAL, Rational(15, 1000), :expr_end)
2731
+ assert_lex3("1.5e3r", nil, :tRATIONAL, Rational(1500), :expr_end)
2732
+ assert_lex3("1.5e-3r", nil, :tRATIONAL, Rational(15, 10000), :expr_end)
2733
+
2734
+ assert_lex3("-10r", nil,
2735
+ :tUMINUS_NUM, "-", :expr_beg,
2736
+ :tRATIONAL, Rational(10), :expr_end)
2737
+ end
2738
+
2739
+ def test_ruby21_imaginary_literal
2704
2740
  setup_lexer_class Ruby21Parser
2705
2741
 
2706
- assert_lex3("10r", nil, :tRATIONAL, "10r", :expr_end)
2707
- assert_lex3("1.5r", nil, :tRATIONAL, "1.5r", :expr_end)
2742
+ assert_lex3("1i", nil, :tIMAGINARY, Complex(0, 1), :expr_end)
2743
+ assert_lex3("0x10i", nil, :tIMAGINARY, Complex(0, 16), :expr_end)
2744
+ assert_lex3("0o10i", nil, :tIMAGINARY, Complex(0, 8), :expr_end)
2745
+ assert_lex3("0oi", nil, :tIMAGINARY, Complex(0, 0), :expr_end)
2746
+ assert_lex3("0b10i", nil, :tIMAGINARY, Complex(0, 2), :expr_end)
2747
+ assert_lex3("1.5i", nil, :tIMAGINARY, Complex(0, 1.5), :expr_end)
2748
+ assert_lex3("15e3i", nil, :tIMAGINARY, Complex(0, 15000), :expr_end)
2749
+ assert_lex3("15e-3i", nil, :tIMAGINARY, Complex(0, 0.015), :expr_end)
2750
+ assert_lex3("1.5e3i", nil, :tIMAGINARY, Complex(0, 1500), :expr_end)
2751
+ assert_lex3("1.5e-3i", nil, :tIMAGINARY, Complex(0, 0.0015), :expr_end)
2752
+
2753
+ assert_lex3("-10i", nil,
2754
+ :tUMINUS_NUM, "-", :expr_beg,
2755
+ :tIMAGINARY, Complex(0, 10), :expr_end)
2756
+ end
2708
2757
 
2709
- assert_lex3("1i", nil, :tIMAGINARY, "1i", :expr_end)
2710
- assert_lex3("1+2i", nil, :tIMAGINARY, "1+2i", :expr_end)
2711
- assert_lex3("1.2+3.4i", nil, :tIMAGINARY, "1.2+3.4i", :expr_end)
2712
- assert_lex3("4r+3i", nil, :tIMAGINARY, "4r+3i", :expr_end)
2713
- assert_lex3("4r+3ri", nil, :tIMAGINARY, "4r+3i", :expr_end)
2758
+ def test_ruby21_rational_imaginary_literal
2759
+ setup_lexer_class Ruby21Parser
2714
2760
 
2715
- assert_lex3("4i+3r", nil, :tIMAGINARY, "4r+3i", :expr_end) # HACK
2716
- assert_lex3("1i+2ri", nil, :tIMAGINARY, "4r+3i", :expr_end) # HACK
2761
+ assert_lex3("1ri", nil, :tIMAGINARY, Complex(0, Rational(1)), :expr_end)
2762
+ assert_lex3("0x10ri", nil, :tIMAGINARY, Complex(0, Rational(16)), :expr_end)
2763
+ assert_lex3("0o10ri", nil, :tIMAGINARY, Complex(0, Rational(8)), :expr_end)
2764
+ assert_lex3("0ori", nil, :tIMAGINARY, Complex(0, Rational(0)), :expr_end)
2765
+ assert_lex3("0b10ri", nil, :tIMAGINARY, Complex(0, Rational(2)), :expr_end)
2766
+ assert_lex3("1.5ri", nil, :tIMAGINARY, Complex(0, Rational("1.5")), :expr_end)
2767
+ assert_lex3("15e3ri", nil, :tIMAGINARY, Complex(0, Rational("15e3")), :expr_end)
2768
+ assert_lex3("15e-3ri", nil, :tIMAGINARY, Complex(0, Rational("15e-3")), :expr_end)
2769
+ assert_lex3("1.5e3ri", nil, :tIMAGINARY, Complex(0, Rational("1.5e3")), :expr_end)
2770
+ assert_lex3("1.5e-3ri", nil, :tIMAGINARY, Complex(0, Rational("1.5e-3")), :expr_end)
2771
+
2772
+ assert_lex3("-10ri", nil,
2773
+ :tUMINUS_NUM, "-", :expr_beg,
2774
+ :tIMAGINARY, Complex(0, Rational(10)), :expr_end)
2775
+ end
2776
+
2777
+ def test_ruby21_imaginary_literal_with_succeeding_keyword
2778
+ skip "Currently does not tokenize correctly"
2779
+
2780
+ setup_lexer_class Ruby21Parser
2717
2781
 
2718
- assert_lex3("1+2ri", nil, :tIMAGINARY, "1+3ri", :expr_end)
2719
- refute_lex("1+2ir", :tINTEGER, 1)
2782
+ assert_lex3("1if", nil,
2783
+ :tINTEGER, 1, :expr_end,
2784
+ :kIF_MOD, "if", :expr_beg)
2785
+ assert_lex3("1rif", nil,
2786
+ :tRATIONAL, Rational(1), :expr_end,
2787
+ :kIF_MOD, "if", :expr_beg)
2788
+ assert_lex3("1.0if", nil,
2789
+ :tFLOAT, 1.0, :expr_end,
2790
+ :kIF_MOD, "if", :expr_beg)
2791
+ assert_lex3("1.0rif", nil,
2792
+ :tRATIONAL, Rational("1.0"), :expr_end,
2793
+ :kIF_MOD, "if", :expr_beg)
2720
2794
 
2721
2795
  flunk
2722
2796
  end
@@ -45,6 +45,11 @@ class RubyParserTestCase < ParseTreeTestCase
45
45
  assert_equal pt, result
46
46
  end
47
47
 
48
+ def refute_parse rb
49
+ self.result = processor.parse rb
50
+ assert_nil result
51
+ end
52
+
48
53
  def assert_syntax_error rb, emsg
49
54
  e = nil
50
55
  assert_silent do
@@ -302,10 +307,9 @@ module TestRubyParserShared
302
307
 
303
308
  def test_bug_comment_eq_begin
304
309
  rb = "\n\n#\n=begin\nblah\n=end\n\n"
305
- pt = nil
306
310
  exp = rb.strip + "\n"
307
311
 
308
- assert_parse rb, pt
312
+ refute_parse rb
309
313
  assert_equal exp, processor.lexer.comments
310
314
  end
311
315
 
@@ -366,10 +370,7 @@ module TestRubyParserShared
366
370
  end
367
371
 
368
372
  def test_empty
369
- rb = ""
370
- pt = nil
371
-
372
- assert_parse rb, pt
373
+ refute_parse ""
373
374
  end
374
375
 
375
376
  def test_evstr_evstr
@@ -1401,8 +1402,29 @@ module TestRubyParserShared
1401
1402
  assert_parse rb, pt
1402
1403
  end
1403
1404
 
1404
- def test_qwords_line_breaks
1405
- skip "not yet"
1405
+ def test_array_line_breaks
1406
+ # It seems like arrays are roughly created when a certain element is created
1407
+ # In ruby > 1.9 it seems like that is after the last element, so the array
1408
+ # itself is assigned line 3 (since the last element is on line 3) and for
1409
+ # ruby <= 1.9 it seems to get created after the first element, so the array
1410
+ # itself is assigned line 2 (since the first element is on line 2).
1411
+ # This seems to happen since arrays like this are created with a line in
1412
+ # ruby_parser.yy like `result = s(:array, val[0])`. So, the array is not
1413
+ # created by itself. The creation of the array itself is deferred until there
1414
+ # is an element to create it with. That seems to mess up line numbers
1415
+ # for the array. Luckily, the arary elements all seemt to get the correct
1416
+ # line number.
1417
+ start_line = self.class.to_s =~ /1[89]/ ? 2 : 3
1418
+ rb = "[\n'a',\n'b']\n1"
1419
+ pt = s(:block,
1420
+ s(:array,
1421
+ s(:str, "a").line(2),
1422
+ s(:str, "b").line(3)).line(start_line),
1423
+ s(:lit, 1).line(4))
1424
+ assert_parse rb, pt
1425
+ end
1426
+
1427
+ def test_non_interpolated_word_array_line_breaks
1406
1428
 
1407
1429
  rb = "%w(\na\nb\n)\n1"
1408
1430
  pt = s(:block,
@@ -1410,7 +1432,17 @@ module TestRubyParserShared
1410
1432
  s(:str, "a").line(2),
1411
1433
  s(:str, "b").line(3)).line(1),
1412
1434
  s(:lit, 1).line(5))
1435
+ assert_parse rb, pt
1436
+ end
1437
+
1438
+ def test_interpolated_word_array_line_breaks
1413
1439
 
1440
+ rb = "%W(\na\nb\n)\n1"
1441
+ pt = s(:block,
1442
+ s(:array,
1443
+ s(:str, "a").line(2),
1444
+ s(:str, "b").line(3)).line(1),
1445
+ s(:lit, 1).line(5))
1414
1446
  assert_parse rb, pt
1415
1447
  end
1416
1448
 
@@ -2187,6 +2219,28 @@ module TestRubyParserShared19to22
2187
2219
  end
2188
2220
 
2189
2221
  module TestRubyParserShared20to22
2222
+ def test_non_interpolated_symbol_array_line_breaks
2223
+
2224
+ rb = "%i(\na\nb\n)\n1"
2225
+ pt = s(:block,
2226
+ s(:array,
2227
+ s(:lit, :a).line(2),
2228
+ s(:lit, :b).line(3)).line(1),
2229
+ s(:lit, 1).line(5))
2230
+ assert_parse rb, pt
2231
+ end
2232
+
2233
+ def test_interpolated_symbol_array_line_breaks
2234
+
2235
+ rb = "%I(\na\nb\n)\n1"
2236
+ pt = s(:block,
2237
+ s(:array,
2238
+ s(:lit, :a).line(2),
2239
+ s(:lit, :b).line(3)).line(1),
2240
+ s(:lit, 1).line(5))
2241
+ assert_parse rb, pt
2242
+ end
2243
+
2190
2244
  def test_defs_kwarg
2191
2245
  rb = "def self.a b: 1\nend"
2192
2246
  pt = s(:defs, s(:self), :a, s(:args, s(:kwarg, :b, s(:lit, 1))), s(:nil))
@@ -3504,8 +3558,47 @@ class TestRuby23Parser < RubyParserTestCase
3504
3558
 
3505
3559
  assert_parse rb, pt
3506
3560
  end
3507
- end
3508
3561
 
3562
+ def test_ruby21_numbers
3563
+ rb = "[1i, 2r, 3ri]"
3564
+ pt = s(:array, s(:lit, Complex(0, 1)), s(:lit, Rational(2)), s(:lit, Complex(0, Rational(3))))
3565
+
3566
+ assert_parse rb, pt
3567
+ end
3568
+
3569
+ def test_float_with_if_modifier
3570
+ rb = "1.0if true"
3571
+ pt = s(:if, s(:true), s(:lit, 1.0), nil)
3572
+
3573
+ assert_parse rb, pt
3574
+ end
3575
+
3576
+ def test_integer_with_if_modifier
3577
+ rb = "1_234if true"
3578
+ pt = s(:if, s(:true), s(:lit, 1234), nil)
3579
+
3580
+ assert_parse rb, pt
3581
+ end
3582
+
3583
+ def test_slashy_newlines_within_string
3584
+ rb = %(puts "hello\\
3585
+ my\\
3586
+ dear\\
3587
+ friend"
3588
+
3589
+ a + b
3590
+ )
3591
+
3592
+ pt = s(:block,
3593
+ s(:call, nil, :puts, s(:str, "hello my dear friend").line(1)).line(1),
3594
+ s(:call, s(:call, nil, :a).line(6),
3595
+ :+,
3596
+ s(:call, nil, :b).line(6)).line(6)
3597
+ ).line(1)
3598
+
3599
+ assert_parse rb, pt
3600
+ end
3601
+ end
3509
3602
 
3510
3603
  [18, 19, 20, 21, 22, 23].each do |v|
3511
3604
  describe "block args arity #{v}" do
@@ -182,7 +182,7 @@ class TestEnvironment < Minitest::Test
182
182
 
183
183
  def test_var_scope_static
184
184
  @env.extend
185
- assert_equal nil, @env[:blah]
185
+ assert_nil @env[:blah]
186
186
  @env.unextend
187
187
  assert_equal 42, @env[:blah]
188
188
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.8.2
4
+ version: 3.8.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Davis
@@ -10,9 +10,9 @@ bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIDPjCCAiagAwIBAgIBAzANBgkqhkiG9w0BAQUFADBFMRMwEQYDVQQDDApyeWFu
13
+ MIIDijCCAnKgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMRMwEQYDVQQDDApyeWFu
14
14
  ZC1ydWJ5MRkwFwYKCZImiZPyLGQBGRYJemVuc3BpZGVyMRMwEQYKCZImiZPyLGQB
15
- GRYDY29tMB4XDTE1MDkxOTIwNTEyMloXDTE2MDkxODIwNTEyMlowRTETMBEGA1UE
15
+ GRYDY29tMB4XDTE2MDkyNjAxNTczNVoXDTE3MDkyNjAxNTczNVowRTETMBEGA1UE
16
16
  AwwKcnlhbmQtcnVieTEZMBcGCgmSJomT8ixkARkWCXplbnNwaWRlcjETMBEGCgmS
17
17
  JomT8ixkARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALda
18
18
  b9DCgK+627gPJkB6XfjZ1itoOQvpqH1EXScSaba9/S2VF22VYQbXU1xQXL/WzCkx
@@ -20,16 +20,17 @@ cert_chain:
20
20
  oOvjtt5P8+GSK9zLzxQP0gVLS/D0FmoE44XuDr3iQkVS2ujU5zZL84mMNqNB1znh
21
21
  GiadM9GHRaDiaxuX0cIUBj19T01mVE2iymf9I6bEsiayK/n6QujtyCbTWsAS9Rqt
22
22
  qhtV7HJxNKuPj/JFH0D2cswvzznE/a5FOYO68g+YCuFi5L8wZuuM8zzdwjrWHqSV
23
- gBEfoTEGr7Zii72cx+sCAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
24
- HQYDVR0OBBYEFEfFe9md/r/tj/Wmwpy+MI8d9k/hMA0GCSqGSIb3DQEBBQUAA4IB
25
- AQB+Hx8xUgrpZa4P8H8gR8zme5kISwQrG80MbpqJV6/G3/ZicRFhN5sjwu0uHGue
26
- bd9Cymf6oIRwHVarJux2M32T6bL07Hmi07w2QaPc3MnMKB/D46SRZ2JSSGPFRBTc
27
- SilobMRoGs/7B15uGFUEnNrCB/ltMqhwwSx1r++UQPfeySHEV9uqu03E5Vb7J37O
28
- 2Er6PLXHRiYsIycD1LkMi6YnixdITRHmrqJYE2rsjaIfpIehiusVAPHkNf7qbpHq
29
- qx3h45R1CAsObX0SQDIT+rRbQrtKz1GHIZTOFYvEJjUY1XmRTZupD3CJ8Q7sDqSy
30
- NLq5jm1fq6Y9Uolu3RJbmycf
23
+ gBEfoTEGr7Zii72cx+sCAwEAAaOBhDCBgTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIE
24
+ sDAdBgNVHQ4EFgQUR8V72Z3+v+2P9abCnL4wjx32T+EwIwYDVR0RBBwwGoEYcnlh
25
+ bmQtcnVieUB6ZW5zcGlkZXIuY29tMCMGA1UdEgQcMBqBGHJ5YW5kLXJ1YnlAemVu
26
+ c3BpZGVyLmNvbTANBgkqhkiG9w0BAQUFAAOCAQEAIGzgp0aZ2W9+v96ujmBcQHoC
27
+ buy0iU68MVj2VlxMyfr1KPZIh1OyhU4UO4zrkREcH8ML70v9cYHNvOd9oynRHnvC
28
+ l2tj/fD3YJ0AEkJxGrYwRWQmvMfC4bJ02bC1+rVOUIXXKp3+cUmiN4sTniof8VFo
29
+ bo/YYP4c7erpERa+9hrqygg6WQbJlk2YRlH3JXPFjmu869i2dcbR5ZLOAeEy+axH
30
+ E4oJcnPkJAr0rw504JGtlZtONZQblwmRJOIdXzolaE3NRGUzGVOUSptZppAKiavY
31
+ fO6tdKQc/5RfA8oQEkg8hrxA5PQSz4TOFJGLpFvIapEk6tMruQ0bHgkhr9auXg==
31
32
  -----END CERTIFICATE-----
32
- date: 2016-05-05 00:00:00.000000000 Z
33
+ date: 2016-10-09 00:00:00.000000000 Z
33
34
  dependencies:
34
35
  - !ruby/object:Gem::Dependency
35
36
  name: sexp_processor
@@ -46,61 +47,61 @@ dependencies:
46
47
  - !ruby/object:Gem::Version
47
48
  version: '4.1'
48
49
  - !ruby/object:Gem::Dependency
49
- name: rdoc
50
+ name: rake
50
51
  requirement: !ruby/object:Gem::Requirement
51
52
  requirements:
52
- - - ~>
53
+ - - <
53
54
  - !ruby/object:Gem::Version
54
- version: '4.0'
55
+ version: '11'
55
56
  type: :development
56
57
  prerelease: false
57
58
  version_requirements: !ruby/object:Gem::Requirement
58
59
  requirements:
59
- - - ~>
60
+ - - <
60
61
  - !ruby/object:Gem::Version
61
- version: '4.0'
62
+ version: '11'
62
63
  - !ruby/object:Gem::Dependency
63
- name: racc
64
+ name: oedipus_lex
64
65
  requirement: !ruby/object:Gem::Requirement
65
66
  requirements:
66
67
  - - ~>
67
68
  - !ruby/object:Gem::Version
68
- version: 1.4.6
69
+ version: '2.1'
69
70
  type: :development
70
71
  prerelease: false
71
72
  version_requirements: !ruby/object:Gem::Requirement
72
73
  requirements:
73
74
  - - ~>
74
75
  - !ruby/object:Gem::Version
75
- version: 1.4.6
76
+ version: '2.1'
76
77
  - !ruby/object:Gem::Dependency
77
- name: rake
78
+ name: rdoc
78
79
  requirement: !ruby/object:Gem::Requirement
79
80
  requirements:
80
- - - <
81
+ - - ~>
81
82
  - !ruby/object:Gem::Version
82
- version: '11'
83
+ version: '4.0'
83
84
  type: :development
84
85
  prerelease: false
85
86
  version_requirements: !ruby/object:Gem::Requirement
86
87
  requirements:
87
- - - <
88
+ - - ~>
88
89
  - !ruby/object:Gem::Version
89
- version: '11'
90
+ version: '4.0'
90
91
  - !ruby/object:Gem::Dependency
91
- name: oedipus_lex
92
+ name: racc
92
93
  requirement: !ruby/object:Gem::Requirement
93
94
  requirements:
94
95
  - - ~>
95
96
  - !ruby/object:Gem::Version
96
- version: '2.1'
97
+ version: 1.4.6
97
98
  type: :development
98
99
  prerelease: false
99
100
  version_requirements: !ruby/object:Gem::Requirement
100
101
  requirements:
101
102
  - - ~>
102
103
  - !ruby/object:Gem::Version
103
- version: '2.1'
104
+ version: 1.4.6
104
105
  - !ruby/object:Gem::Dependency
105
106
  name: hoe
106
107
  requirement: !ruby/object:Gem::Requirement