regexp_parser 0.4.13 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (103) hide show
  1. checksums.yaml +4 -4
  2. data/ChangeLog +15 -0
  3. data/lib/regexp_parser/expression.rb +43 -51
  4. data/lib/regexp_parser/expression/classes/alternation.rb +6 -7
  5. data/lib/regexp_parser/expression/classes/character_class.rb +11 -0
  6. data/lib/regexp_parser/expression/classes/conditional.rb +10 -18
  7. data/lib/regexp_parser/expression/classes/free_space.rb +1 -1
  8. data/lib/regexp_parser/expression/classes/group.rb +9 -21
  9. data/lib/regexp_parser/expression/classes/property.rb +2 -2
  10. data/lib/regexp_parser/expression/classes/set.rb +1 -12
  11. data/lib/regexp_parser/expression/methods/traverse.rb +1 -1
  12. data/lib/regexp_parser/expression/quantifier.rb +9 -9
  13. data/lib/regexp_parser/expression/sequence.rb +5 -4
  14. data/lib/regexp_parser/expression/subexpression.rb +16 -59
  15. data/lib/regexp_parser/lexer.rb +31 -27
  16. data/lib/regexp_parser/parser.rb +179 -179
  17. data/lib/regexp_parser/scanner.rb +172 -166
  18. data/lib/regexp_parser/scanner/scanner.rl +44 -38
  19. data/lib/regexp_parser/syntax.rb +2 -53
  20. data/lib/regexp_parser/syntax/base.rb +13 -24
  21. data/lib/regexp_parser/syntax/tokens/character_class.rb +16 -0
  22. data/lib/regexp_parser/syntax/tokens/unicode_property.rb +26 -26
  23. data/lib/regexp_parser/syntax/version_lookup.rb +82 -0
  24. data/lib/regexp_parser/syntax/versions.rb +1 -5
  25. data/lib/regexp_parser/syntax/versions/1.8.6.rb +30 -0
  26. data/lib/regexp_parser/syntax/versions/1.9.1.rb +36 -0
  27. data/lib/regexp_parser/syntax/versions/1.9.3.rb +11 -0
  28. data/lib/regexp_parser/syntax/versions/2.0.0.rb +20 -0
  29. data/lib/regexp_parser/syntax/versions/2.2.0.rb +10 -0
  30. data/lib/regexp_parser/syntax/versions/2.3.0.rb +10 -0
  31. data/lib/regexp_parser/syntax/versions/2.4.0.rb +10 -0
  32. data/lib/regexp_parser/syntax/versions/2.4.1.rb +9 -0
  33. data/lib/regexp_parser/syntax/versions/2.5.0.rb +10 -0
  34. data/lib/regexp_parser/token.rb +6 -29
  35. data/lib/regexp_parser/version.rb +1 -1
  36. data/test/expression/test_strfregexp.rb +7 -0
  37. data/test/expression/test_to_h.rb +6 -0
  38. data/test/parser/test_properties.rb +12 -4
  39. data/test/support/warning_extractor.rb +3 -1
  40. data/test/syntax/test_all.rb +1 -1
  41. data/test/syntax/test_syntax.rb +5 -9
  42. data/test/syntax/{ruby → versions}/test_1.8.rb +14 -14
  43. data/test/syntax/{ruby → versions}/test_1.9.1.rb +7 -8
  44. data/test/syntax/{ruby → versions}/test_1.9.3.rb +7 -7
  45. data/test/syntax/versions/test_2.0.0.rb +37 -0
  46. data/test/syntax/{ruby → versions}/test_2.2.0.rb +7 -7
  47. data/test/syntax/versions/test_aliases.rb +129 -0
  48. data/test/syntax/{ruby → versions}/test_all.rb +1 -1
  49. metadata +73 -113
  50. data/lib/regexp_parser/syntax/ruby/1.8.6.rb +0 -37
  51. data/lib/regexp_parser/syntax/ruby/1.8.7.rb +0 -14
  52. data/lib/regexp_parser/syntax/ruby/1.8.rb +0 -13
  53. data/lib/regexp_parser/syntax/ruby/1.9.1.rb +0 -45
  54. data/lib/regexp_parser/syntax/ruby/1.9.2.rb +0 -9
  55. data/lib/regexp_parser/syntax/ruby/1.9.3.rb +0 -19
  56. data/lib/regexp_parser/syntax/ruby/1.9.rb +0 -8
  57. data/lib/regexp_parser/syntax/ruby/2.0.0.rb +0 -23
  58. data/lib/regexp_parser/syntax/ruby/2.0.rb +0 -8
  59. data/lib/regexp_parser/syntax/ruby/2.1.0.rb +0 -13
  60. data/lib/regexp_parser/syntax/ruby/2.1.10.rb +0 -13
  61. data/lib/regexp_parser/syntax/ruby/2.1.2.rb +0 -13
  62. data/lib/regexp_parser/syntax/ruby/2.1.3.rb +0 -13
  63. data/lib/regexp_parser/syntax/ruby/2.1.4.rb +0 -13
  64. data/lib/regexp_parser/syntax/ruby/2.1.5.rb +0 -13
  65. data/lib/regexp_parser/syntax/ruby/2.1.6.rb +0 -13
  66. data/lib/regexp_parser/syntax/ruby/2.1.7.rb +0 -13
  67. data/lib/regexp_parser/syntax/ruby/2.1.8.rb +0 -13
  68. data/lib/regexp_parser/syntax/ruby/2.1.9.rb +0 -13
  69. data/lib/regexp_parser/syntax/ruby/2.1.rb +0 -8
  70. data/lib/regexp_parser/syntax/ruby/2.2.0.rb +0 -16
  71. data/lib/regexp_parser/syntax/ruby/2.2.1.rb +0 -13
  72. data/lib/regexp_parser/syntax/ruby/2.2.10.rb +0 -13
  73. data/lib/regexp_parser/syntax/ruby/2.2.2.rb +0 -13
  74. data/lib/regexp_parser/syntax/ruby/2.2.3.rb +0 -13
  75. data/lib/regexp_parser/syntax/ruby/2.2.4.rb +0 -13
  76. data/lib/regexp_parser/syntax/ruby/2.2.5.rb +0 -13
  77. data/lib/regexp_parser/syntax/ruby/2.2.6.rb +0 -13
  78. data/lib/regexp_parser/syntax/ruby/2.2.7.rb +0 -13
  79. data/lib/regexp_parser/syntax/ruby/2.2.8.rb +0 -13
  80. data/lib/regexp_parser/syntax/ruby/2.2.9.rb +0 -13
  81. data/lib/regexp_parser/syntax/ruby/2.2.rb +0 -8
  82. data/lib/regexp_parser/syntax/ruby/2.3.0.rb +0 -16
  83. data/lib/regexp_parser/syntax/ruby/2.3.1.rb +0 -13
  84. data/lib/regexp_parser/syntax/ruby/2.3.2.rb +0 -13
  85. data/lib/regexp_parser/syntax/ruby/2.3.3.rb +0 -13
  86. data/lib/regexp_parser/syntax/ruby/2.3.4.rb +0 -13
  87. data/lib/regexp_parser/syntax/ruby/2.3.5.rb +0 -13
  88. data/lib/regexp_parser/syntax/ruby/2.3.6.rb +0 -13
  89. data/lib/regexp_parser/syntax/ruby/2.3.7.rb +0 -13
  90. data/lib/regexp_parser/syntax/ruby/2.3.rb +0 -8
  91. data/lib/regexp_parser/syntax/ruby/2.4.0.rb +0 -16
  92. data/lib/regexp_parser/syntax/ruby/2.4.1.rb +0 -15
  93. data/lib/regexp_parser/syntax/ruby/2.4.2.rb +0 -13
  94. data/lib/regexp_parser/syntax/ruby/2.4.3.rb +0 -13
  95. data/lib/regexp_parser/syntax/ruby/2.4.4.rb +0 -13
  96. data/lib/regexp_parser/syntax/ruby/2.4.rb +0 -8
  97. data/lib/regexp_parser/syntax/ruby/2.5.0.rb +0 -16
  98. data/lib/regexp_parser/syntax/ruby/2.5.1.rb +0 -13
  99. data/lib/regexp_parser/syntax/ruby/2.5.rb +0 -8
  100. data/lib/regexp_parser/syntax/ruby/2.6.0.rb +0 -13
  101. data/lib/regexp_parser/syntax/ruby/2.6.rb +0 -8
  102. data/test/syntax/ruby/test_2.0.0.rb +0 -32
  103. data/test/syntax/ruby/test_files.rb +0 -353
@@ -1,8 +1,8 @@
1
1
  # -*- warn-indent:false; -*-
2
2
 
3
- # line 1 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3
+ # line 1 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4
4
 
5
- # line 771 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
5
+ # line 771 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
6
6
 
7
7
 
8
8
  # THIS IS A GENERATED FILE, DO NOT EDIT DIRECTLY
@@ -72,31 +72,33 @@ class Regexp::Scanner
72
72
  end
73
73
 
74
74
  def scan(input_object, &block)
75
- @literal, stack = nil, []
75
+ self.literal = nil
76
+ stack = []
76
77
 
77
78
  if input_object.is_a?(Regexp)
78
- input = input_object.source
79
- @free_spacing = (input_object.options & Regexp::EXTENDED != 0)
79
+ input = input_object.source
80
+ self.free_spacing = (input_object.options & Regexp::EXTENDED != 0)
80
81
  else
81
- input = input_object
82
- @free_spacing = false
82
+ input = input_object
83
+ self.free_spacing = false
83
84
  end
84
85
 
85
86
 
86
87
  data = input.unpack("c*") if input.is_a?(String)
87
88
  eof = data.length
88
89
 
89
- @tokens = []
90
- @block = block_given? ? block : nil
90
+ self.tokens = []
91
+ self.block = block_given? ? block : nil
91
92
 
92
- @in_group, @group_depth = false, 0
93
- @spacing_stack = [{:free_spacing => @free_spacing, :depth => 0}]
93
+ self.in_group = false
94
+ self.group_depth = 0
95
+ self.spacing_stack = [{:free_spacing => free_spacing, :depth => 0}]
94
96
 
95
- in_set, set_depth, set_type = false, 0, :set
97
+ in_set, set_depth, set_type = false, 0, :set
96
98
  in_conditional, conditional_depth, conditional_stack = false, 0, []
97
99
 
98
100
 
99
- # line 99 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner.rb"
101
+ # line 101 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
100
102
  class << self
101
103
  attr_accessor :_re_scanner_trans_keys
102
104
  private :_re_scanner_trans_keys, :_re_scanner_trans_keys=
@@ -1672,9 +1674,9 @@ end
1672
1674
  self.re_scanner_en_main = 142;
1673
1675
 
1674
1676
 
1675
- # line 864 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1677
+ # line 866 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1676
1678
 
1677
- # line 1677 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner.rb"
1679
+ # line 1679 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
1678
1680
  begin
1679
1681
  p ||= 0
1680
1682
  pe ||= data.length
@@ -1685,9 +1687,9 @@ begin
1685
1687
  act = 0
1686
1688
  end
1687
1689
 
1688
- # line 865 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1690
+ # line 867 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1689
1691
 
1690
- # line 1690 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner.rb"
1692
+ # line 1692 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
1691
1693
  begin
1692
1694
  testEof = false
1693
1695
  _slen, _trans, _keys, _inds, _acts, _nacts = nil
@@ -1715,7 +1717,7 @@ begin
1715
1717
  begin
1716
1718
  ts = p
1717
1719
  end
1718
- # line 1718 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner.rb"
1720
+ # line 1720 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
1719
1721
  end
1720
1722
  _keys = cs << 1
1721
1723
  _inds = _re_scanner_index_offsets[cs]
@@ -1735,23 +1737,23 @@ ts = p
1735
1737
  if _re_scanner_trans_actions[_trans] != 0
1736
1738
  case _re_scanner_trans_actions[_trans]
1737
1739
  when 14 then
1738
- # line 134 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1740
+ # line 134 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1739
1741
  begin
1740
1742
 
1741
1743
  text = ts ? copy(data, ts-1..-1) : data.pack('c*')
1742
1744
  raise PrematureEndError.new( text )
1743
1745
  end
1744
1746
  when 7 then
1745
- # line 147 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1747
+ # line 147 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
1746
1748
  begin
1747
- @group_depth -= 1; @in_group = @group_depth > 0 ? true : false end
1749
+ self.group_depth = group_depth - 1; in_group = group_depth > 0 ? true : false end
1748
1750
  when 18 then
1749
1751
  # line 1 "NONE"
1750
1752
  begin
1751
1753
  te = p+1
1752
1754
  end
1753
1755
  when 16 then
1754
- # line 62 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/property.rl"
1756
+ # line 62 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/property.rl"
1755
1757
  begin
1756
1758
  te = p+1
1757
1759
  begin
@@ -2528,7 +2530,7 @@ te = p+1
2528
2530
  end
2529
2531
  end
2530
2532
  when 69 then
2531
- # line 153 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2533
+ # line 153 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2532
2534
  begin
2533
2535
  te = p+1
2534
2536
  begin
@@ -2556,7 +2558,7 @@ te = p+1
2556
2558
  end
2557
2559
  end
2558
2560
  when 73 then
2559
- # line 166 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2561
+ # line 166 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2560
2562
  begin
2561
2563
  te = p+1
2562
2564
  begin # special case, emits two tokens
@@ -2585,12 +2587,12 @@ te = p+1
2585
2587
  end
2586
2588
  end
2587
2589
  when 70 then
2588
- # line 180 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2590
+ # line 180 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2589
2591
  begin
2590
2592
  te = p+1
2591
2593
  begin
2592
2594
  text = text(data, ts, te).first
2593
- if @tokens.last[1] == :open
2595
+ if tokens.last[1] == :open
2594
2596
  emit(set_type, :negate, text, ts, te)
2595
2597
  else
2596
2598
  emit(set_type, :member, text, ts, te)
@@ -2598,7 +2600,7 @@ te = p+1
2598
2600
  end
2599
2601
  end
2600
2602
  when 19 then
2601
- # line 189 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2603
+ # line 189 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2602
2604
  begin
2603
2605
  te = p+1
2604
2606
  begin
@@ -2606,7 +2608,7 @@ te = p+1
2606
2608
  end
2607
2609
  end
2608
2610
  when 72 then
2609
- # line 193 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2611
+ # line 193 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2610
2612
  begin
2611
2613
  te = p+1
2612
2614
  begin
@@ -2614,7 +2616,7 @@ te = p+1
2614
2616
  end
2615
2617
  end
2616
2618
  when 68 then
2617
- # line 197 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2619
+ # line 197 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2618
2620
  begin
2619
2621
  te = p+1
2620
2622
  begin
@@ -2629,7 +2631,7 @@ te = p+1
2629
2631
  end
2630
2632
  end
2631
2633
  when 23 then
2632
- # line 209 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2634
+ # line 209 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2633
2635
  begin
2634
2636
  te = p+1
2635
2637
  begin
@@ -2645,7 +2647,7 @@ te = p+1
2645
2647
  end
2646
2648
  end
2647
2649
  when 22 then
2648
- # line 221 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2650
+ # line 221 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2649
2651
  begin
2650
2652
  te = p+1
2651
2653
  begin
@@ -2653,7 +2655,7 @@ te = p+1
2653
2655
  end
2654
2656
  end
2655
2657
  when 24 then
2656
- # line 225 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2658
+ # line 225 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2657
2659
  begin
2658
2660
  te = p+1
2659
2661
  begin
@@ -2661,7 +2663,7 @@ te = p+1
2661
2663
  end
2662
2664
  end
2663
2665
  when 67 then
2664
- # line 231 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2666
+ # line 231 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2665
2667
  begin
2666
2668
  te = p+1
2667
2669
  begin
@@ -2669,7 +2671,7 @@ te = p+1
2669
2671
  end
2670
2672
  end
2671
2673
  when 66 then
2672
- # line 239 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2674
+ # line 239 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2673
2675
  begin
2674
2676
  te = p+1
2675
2677
  begin
@@ -2677,7 +2679,7 @@ te = p+1
2677
2679
  end
2678
2680
  end
2679
2681
  when 75 then
2680
- # line 201 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2682
+ # line 201 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2681
2683
  begin
2682
2684
  te = p
2683
2685
  p = p - 1; begin
@@ -2696,7 +2698,7 @@ p = p - 1; begin
2696
2698
  end
2697
2699
  end
2698
2700
  when 71 then
2699
- # line 239 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2701
+ # line 239 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2700
2702
  begin
2701
2703
  te = p
2702
2704
  p = p - 1; begin
@@ -2704,7 +2706,7 @@ p = p - 1; begin
2704
2706
  end
2705
2707
  end
2706
2708
  when 21 then
2707
- # line 201 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2709
+ # line 201 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2708
2710
  begin
2709
2711
  begin p = ((te))-1; end
2710
2712
  begin
@@ -2723,7 +2725,7 @@ p = p - 1; begin
2723
2725
  end
2724
2726
  end
2725
2727
  when 17 then
2726
- # line 239 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2728
+ # line 239 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2727
2729
  begin
2728
2730
  begin p = ((te))-1; end
2729
2731
  begin
@@ -2731,7 +2733,7 @@ p = p - 1; begin
2731
2733
  end
2732
2734
  end
2733
2735
  when 80 then
2734
- # line 247 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2736
+ # line 247 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2735
2737
  begin
2736
2738
  te = p+1
2737
2739
  begin
@@ -2746,7 +2748,7 @@ te = p+1
2746
2748
  end
2747
2749
  end
2748
2750
  when 78 then
2749
- # line 252 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2751
+ # line 252 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2750
2752
  begin
2751
2753
  te = p+1
2752
2754
  begin
@@ -2772,7 +2774,7 @@ te = p+1
2772
2774
  end
2773
2775
  end
2774
2776
  when 84 then
2775
- # line 268 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2777
+ # line 268 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2776
2778
  begin
2777
2779
  te = p+1
2778
2780
  begin
@@ -2787,7 +2789,7 @@ te = p+1
2787
2789
  end
2788
2790
  end
2789
2791
  when 76 then
2790
- # line 278 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2792
+ # line 278 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2791
2793
  begin
2792
2794
  te = p+1
2793
2795
  begin
@@ -2802,7 +2804,7 @@ te = p+1
2802
2804
  end
2803
2805
  end
2804
2806
  when 79 then
2805
- # line 283 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2807
+ # line 283 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2806
2808
  begin
2807
2809
  te = p+1
2808
2810
  begin
@@ -2819,7 +2821,7 @@ te = p+1
2819
2821
  end
2820
2822
  end
2821
2823
  when 83 then
2822
- # line 268 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2824
+ # line 268 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2823
2825
  begin
2824
2826
  te = p
2825
2827
  p = p - 1; begin
@@ -2834,7 +2836,7 @@ p = p - 1; begin
2834
2836
  end
2835
2837
  end
2836
2838
  when 82 then
2837
- # line 273 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2839
+ # line 273 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2838
2840
  begin
2839
2841
  te = p
2840
2842
  p = p - 1; begin
@@ -2849,7 +2851,7 @@ p = p - 1; begin
2849
2851
  end
2850
2852
  end
2851
2853
  when 81 then
2852
- # line 294 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2854
+ # line 294 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2853
2855
  begin
2854
2856
  te = p
2855
2857
  p = p - 1; begin
@@ -2864,7 +2866,7 @@ p = p - 1; begin
2864
2866
  end
2865
2867
  end
2866
2868
  when 27 then
2867
- # line 273 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2869
+ # line 273 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2868
2870
  begin
2869
2871
  begin p = ((te))-1; end
2870
2872
  begin
@@ -2916,7 +2918,7 @@ end
2916
2918
  end
2917
2919
  end
2918
2920
  when 89 then
2919
- # line 304 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2921
+ # line 304 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2920
2922
  begin
2921
2923
  te = p+1
2922
2924
  begin
@@ -2932,7 +2934,7 @@ te = p+1
2932
2934
  end
2933
2935
  end
2934
2936
  when 94 then
2935
- # line 310 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2937
+ # line 310 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2936
2938
  begin
2937
2939
  te = p+1
2938
2940
  begin
@@ -2947,7 +2949,7 @@ te = p+1
2947
2949
  end
2948
2950
  end
2949
2951
  when 86 then
2950
- # line 315 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2952
+ # line 315 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2951
2953
  begin
2952
2954
  te = p+1
2953
2955
  begin
@@ -2978,7 +2980,7 @@ te = p+1
2978
2980
  end
2979
2981
  end
2980
2982
  when 91 then
2981
- # line 336 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2983
+ # line 336 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
2982
2984
  begin
2983
2985
  te = p+1
2984
2986
  begin
@@ -3004,7 +3006,7 @@ te = p+1
3004
3006
  end
3005
3007
  end
3006
3008
  when 34 then
3007
- # line 352 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3009
+ # line 352 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3008
3010
  begin
3009
3011
  te = p+1
3010
3012
  begin
@@ -3024,7 +3026,7 @@ te = p+1
3024
3026
  end
3025
3027
  end
3026
3028
  when 101 then
3027
- # line 362 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3029
+ # line 362 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3028
3030
  begin
3029
3031
  te = p+1
3030
3032
  begin
@@ -3039,7 +3041,7 @@ te = p+1
3039
3041
  end
3040
3042
  end
3041
3043
  when 104 then
3042
- # line 367 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3044
+ # line 367 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3043
3045
  begin
3044
3046
  te = p+1
3045
3047
  begin
@@ -3054,7 +3056,7 @@ te = p+1
3054
3056
  end
3055
3057
  end
3056
3058
  when 36 then
3057
- # line 376 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3059
+ # line 376 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3058
3060
  begin
3059
3061
  te = p+1
3060
3062
  begin
@@ -3069,7 +3071,7 @@ te = p+1
3069
3071
  end
3070
3072
  end
3071
3073
  when 30 then
3072
- # line 381 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3074
+ # line 381 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3073
3075
  begin
3074
3076
  te = p+1
3075
3077
  begin
@@ -3094,7 +3096,7 @@ te = p+1
3094
3096
  end
3095
3097
  end
3096
3098
  when 33 then
3097
- # line 396 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3099
+ # line 396 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3098
3100
  begin
3099
3101
  te = p+1
3100
3102
  begin
@@ -3119,7 +3121,7 @@ te = p+1
3119
3121
  end
3120
3122
  end
3121
3123
  when 90 then
3122
- # line 411 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3124
+ # line 411 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3123
3125
  begin
3124
3126
  te = p+1
3125
3127
  begin
@@ -3136,7 +3138,7 @@ te = p+1
3136
3138
  end
3137
3139
  end
3138
3140
  when 85 then
3139
- # line 417 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3141
+ # line 417 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3140
3142
  begin
3141
3143
  te = p+1
3142
3144
  begin
@@ -3151,7 +3153,7 @@ te = p+1
3151
3153
  end
3152
3154
  end
3153
3155
  when 93 then
3154
- # line 310 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3156
+ # line 310 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3155
3157
  begin
3156
3158
  te = p
3157
3159
  p = p - 1; begin
@@ -3166,7 +3168,7 @@ p = p - 1; begin
3166
3168
  end
3167
3169
  end
3168
3170
  when 100 then
3169
- # line 362 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3171
+ # line 362 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3170
3172
  begin
3171
3173
  te = p
3172
3174
  p = p - 1; begin
@@ -3181,7 +3183,7 @@ p = p - 1; begin
3181
3183
  end
3182
3184
  end
3183
3185
  when 102 then
3184
- # line 376 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3186
+ # line 376 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3185
3187
  begin
3186
3188
  te = p
3187
3189
  p = p - 1; begin
@@ -3196,7 +3198,7 @@ p = p - 1; begin
3196
3198
  end
3197
3199
  end
3198
3200
  when 96 then
3199
- # line 381 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3201
+ # line 381 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3200
3202
  begin
3201
3203
  te = p
3202
3204
  p = p - 1; begin
@@ -3221,7 +3223,7 @@ p = p - 1; begin
3221
3223
  end
3222
3224
  end
3223
3225
  when 98 then
3224
- # line 396 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3226
+ # line 396 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3225
3227
  begin
3226
3228
  te = p
3227
3229
  p = p - 1; begin
@@ -3246,7 +3248,7 @@ p = p - 1; begin
3246
3248
  end
3247
3249
  end
3248
3250
  when 37 then
3249
- # line 376 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3251
+ # line 376 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3250
3252
  begin
3251
3253
  begin p = ((te))-1; end
3252
3254
  begin
@@ -3261,7 +3263,7 @@ p = p - 1; begin
3261
3263
  end
3262
3264
  end
3263
3265
  when 29 then
3264
- # line 381 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3266
+ # line 381 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3265
3267
  begin
3266
3268
  begin p = ((te))-1; end
3267
3269
  begin
@@ -3286,7 +3288,7 @@ p = p - 1; begin
3286
3288
  end
3287
3289
  end
3288
3290
  when 32 then
3289
- # line 396 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3291
+ # line 396 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3290
3292
  begin
3291
3293
  begin p = ((te))-1; end
3292
3294
  begin
@@ -3342,7 +3344,7 @@ p = p - 1; begin
3342
3344
  end
3343
3345
  end
3344
3346
  when 39 then
3345
- # line 427 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3347
+ # line 427 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3346
3348
  begin
3347
3349
  te = p+1
3348
3350
  begin
@@ -3352,7 +3354,7 @@ te = p+1
3352
3354
  end
3353
3355
  end
3354
3356
  when 105 then
3355
- # line 433 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3357
+ # line 433 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3356
3358
  begin
3357
3359
  te = p+1
3358
3360
  begin
@@ -3368,7 +3370,7 @@ te = p+1
3368
3370
  end
3369
3371
  end
3370
3372
  when 106 then
3371
- # line 433 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3373
+ # line 433 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3372
3374
  begin
3373
3375
  te = p
3374
3376
  p = p - 1; begin
@@ -3384,7 +3386,7 @@ p = p - 1; begin
3384
3386
  end
3385
3387
  end
3386
3388
  when 38 then
3387
- # line 433 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3389
+ # line 433 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3388
3390
  begin
3389
3391
  begin p = ((te))-1; end
3390
3392
  begin
@@ -3400,7 +3402,7 @@ p = p - 1; begin
3400
3402
  end
3401
3403
  end
3402
3404
  when 45 then
3403
- # line 446 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3405
+ # line 446 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3404
3406
  begin
3405
3407
  te = p+1
3406
3408
  begin
@@ -3408,12 +3410,12 @@ te = p+1
3408
3410
  end
3409
3411
  end
3410
3412
  when 48 then
3411
- # line 450 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3413
+ # line 450 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3412
3414
  begin
3413
3415
  te = p+1
3414
3416
  begin
3415
3417
  if in_conditional and conditional_stack.length > 0 and
3416
- conditional_stack.last[1] == @group_depth
3418
+ conditional_stack.last[1] == group_depth
3417
3419
  emit(:conditional, :separator, *text(data, ts, te))
3418
3420
  else
3419
3421
  emit(:meta, :alternation, *text(data, ts, te))
@@ -3421,7 +3423,7 @@ te = p+1
3421
3423
  end
3422
3424
  end
3423
3425
  when 47 then
3424
- # line 461 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3426
+ # line 461 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3425
3427
  begin
3426
3428
  te = p+1
3427
3429
  begin
@@ -3429,7 +3431,7 @@ te = p+1
3429
3431
  end
3430
3432
  end
3431
3433
  when 42 then
3432
- # line 465 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3434
+ # line 465 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3433
3435
  begin
3434
3436
  te = p+1
3435
3437
  begin
@@ -3437,7 +3439,7 @@ te = p+1
3437
3439
  end
3438
3440
  end
3439
3441
  when 62 then
3440
- # line 469 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3442
+ # line 469 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3441
3443
  begin
3442
3444
  te = p+1
3443
3445
  begin
@@ -3445,7 +3447,7 @@ te = p+1
3445
3447
  end
3446
3448
  end
3447
3449
  when 60 then
3448
- # line 473 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3450
+ # line 473 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3449
3451
  begin
3450
3452
  te = p+1
3451
3453
  begin
@@ -3463,7 +3465,7 @@ te = p+1
3463
3465
  end
3464
3466
  end
3465
3467
  when 61 then
3466
- # line 493 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3468
+ # line 493 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3467
3469
  begin
3468
3470
  te = p+1
3469
3471
  begin
@@ -3485,7 +3487,7 @@ te = p+1
3485
3487
  end
3486
3488
  end
3487
3489
  when 46 then
3488
- # line 514 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3490
+ # line 514 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3489
3491
  begin
3490
3492
  te = p+1
3491
3493
  begin
@@ -3504,7 +3506,7 @@ te = p+1
3504
3506
  end
3505
3507
  end
3506
3508
  when 8 then
3507
- # line 526 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3509
+ # line 526 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3508
3510
  begin
3509
3511
  te = p+1
3510
3512
  begin
@@ -3512,7 +3514,7 @@ te = p+1
3512
3514
 
3513
3515
  in_conditional = true unless in_conditional
3514
3516
  conditional_depth += 1
3515
- conditional_stack << [conditional_depth, @group_depth]
3517
+ conditional_stack << [conditional_depth, group_depth]
3516
3518
 
3517
3519
  emit(:conditional, :open, text[0..-2], ts, te-1)
3518
3520
  emit(:conditional, :condition_open, '(', te-1, te)
@@ -3527,7 +3529,7 @@ te = p+1
3527
3529
  end
3528
3530
  end
3529
3531
  when 9 then
3530
- # line 559 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3532
+ # line 559 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3531
3533
  begin
3532
3534
  te = p+1
3533
3535
  begin
@@ -3535,7 +3537,7 @@ te = p+1
3535
3537
  end
3536
3538
  end
3537
3539
  when 6 then
3538
- # line 569 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3540
+ # line 569 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3539
3541
  begin
3540
3542
  te = p+1
3541
3543
  begin
@@ -3548,7 +3550,7 @@ te = p+1
3548
3550
  end
3549
3551
  end
3550
3552
  when 10 then
3551
- # line 586 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3553
+ # line 586 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3552
3554
  begin
3553
3555
  te = p+1
3554
3556
  begin
@@ -3574,7 +3576,7 @@ te = p+1
3574
3576
  end
3575
3577
  end
3576
3578
  when 13 then
3577
- # line 638 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3579
+ # line 638 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3578
3580
  begin
3579
3581
  te = p+1
3580
3582
  begin
@@ -3646,7 +3648,7 @@ te = p+1
3646
3648
  end
3647
3649
  end
3648
3650
  when 58 then
3649
- # line 709 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3651
+ # line 709 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3650
3652
  begin
3651
3653
  te = p+1
3652
3654
  begin
@@ -3658,7 +3660,7 @@ te = p+1
3658
3660
  end
3659
3661
  end
3660
3662
  when 54 then
3661
- # line 717 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3663
+ # line 717 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3662
3664
  begin
3663
3665
  te = p+1
3664
3666
  begin
@@ -3670,7 +3672,7 @@ te = p+1
3670
3672
  end
3671
3673
  end
3672
3674
  when 56 then
3673
- # line 725 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3675
+ # line 725 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3674
3676
  begin
3675
3677
  te = p+1
3676
3678
  begin
@@ -3682,7 +3684,7 @@ te = p+1
3682
3684
  end
3683
3685
  end
3684
3686
  when 64 then
3685
- # line 733 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3687
+ # line 733 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3686
3688
  begin
3687
3689
  te = p+1
3688
3690
  begin
@@ -3690,11 +3692,11 @@ te = p+1
3690
3692
  end
3691
3693
  end
3692
3694
  when 4 then
3693
- # line 743 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3695
+ # line 743 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3694
3696
  begin
3695
3697
  te = p+1
3696
3698
  begin
3697
- if @free_spacing
3699
+ if free_spacing
3698
3700
  emit(:free_space, :comment, *text(data, ts, te))
3699
3701
  else
3700
3702
  append_literal(data, ts, te)
@@ -3702,7 +3704,7 @@ te = p+1
3702
3704
  end
3703
3705
  end
3704
3706
  when 51 then
3705
- # line 608 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3707
+ # line 608 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3706
3708
  begin
3707
3709
  te = p
3708
3710
  p = p - 1; begin
@@ -3711,7 +3713,7 @@ p = p - 1; begin
3711
3713
  end
3712
3714
  end
3713
3715
  when 57 then
3714
- # line 709 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3716
+ # line 709 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3715
3717
  begin
3716
3718
  te = p
3717
3719
  p = p - 1; begin
@@ -3723,7 +3725,7 @@ p = p - 1; begin
3723
3725
  end
3724
3726
  end
3725
3727
  when 53 then
3726
- # line 717 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3728
+ # line 717 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3727
3729
  begin
3728
3730
  te = p
3729
3731
  p = p - 1; begin
@@ -3735,7 +3737,7 @@ p = p - 1; begin
3735
3737
  end
3736
3738
  end
3737
3739
  when 55 then
3738
- # line 725 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3740
+ # line 725 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3739
3741
  begin
3740
3742
  te = p
3741
3743
  p = p - 1; begin
@@ -3747,7 +3749,7 @@ p = p - 1; begin
3747
3749
  end
3748
3750
  end
3749
3751
  when 63 then
3750
- # line 733 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3752
+ # line 733 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3751
3753
  begin
3752
3754
  te = p
3753
3755
  p = p - 1; begin
@@ -3755,7 +3757,7 @@ p = p - 1; begin
3755
3757
  end
3756
3758
  end
3757
3759
  when 59 then
3758
- # line 739 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3760
+ # line 739 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3759
3761
  begin
3760
3762
  te = p
3761
3763
  p = p - 1; begin
@@ -3770,11 +3772,11 @@ p = p - 1; begin
3770
3772
  end
3771
3773
  end
3772
3774
  when 50 then
3773
- # line 751 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3775
+ # line 751 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3774
3776
  begin
3775
3777
  te = p
3776
3778
  p = p - 1; begin
3777
- if @free_spacing
3779
+ if free_spacing
3778
3780
  emit(:free_space, :whitespace, *text(data, ts, te))
3779
3781
  else
3780
3782
  append_literal(data, ts, te)
@@ -3782,7 +3784,7 @@ p = p - 1; begin
3782
3784
  end
3783
3785
  end
3784
3786
  when 49 then
3785
- # line 766 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3787
+ # line 766 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3786
3788
  begin
3787
3789
  te = p
3788
3790
  p = p - 1; begin
@@ -3790,7 +3792,7 @@ p = p - 1; begin
3790
3792
  end
3791
3793
  end
3792
3794
  when 5 then
3793
- # line 608 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3795
+ # line 608 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3794
3796
  begin
3795
3797
  begin p = ((te))-1; end
3796
3798
  begin
@@ -3799,7 +3801,7 @@ p = p - 1; begin
3799
3801
  end
3800
3802
  end
3801
3803
  when 12 then
3802
- # line 739 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3804
+ # line 739 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3803
3805
  begin
3804
3806
  begin p = ((te))-1; end
3805
3807
  begin
@@ -3814,7 +3816,7 @@ p = p - 1; begin
3814
3816
  end
3815
3817
  end
3816
3818
  when 3 then
3817
- # line 766 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3819
+ # line 766 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3818
3820
  begin
3819
3821
  begin p = ((te))-1; end
3820
3822
  begin
@@ -3840,13 +3842,13 @@ end
3840
3842
  end
3841
3843
  end
3842
3844
  when 74 then
3843
- # line 134 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3845
+ # line 134 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3844
3846
  begin
3845
3847
 
3846
3848
  text = ts ? copy(data, ts-1..-1) : data.pack('c*')
3847
3849
  raise PrematureEndError.new( text )
3848
3850
  end
3849
- # line 201 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3851
+ # line 201 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3850
3852
  begin
3851
3853
  te = p
3852
3854
  p = p - 1; begin
@@ -3865,13 +3867,13 @@ p = p - 1; begin
3865
3867
  end
3866
3868
  end
3867
3869
  when 20 then
3868
- # line 134 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3870
+ # line 134 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3869
3871
  begin
3870
3872
 
3871
3873
  text = ts ? copy(data, ts-1..-1) : data.pack('c*')
3872
3874
  raise PrematureEndError.new( text )
3873
3875
  end
3874
- # line 201 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3876
+ # line 201 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3875
3877
  begin
3876
3878
  begin p = ((te))-1; end
3877
3879
  begin
@@ -3890,13 +3892,13 @@ p = p - 1; begin
3890
3892
  end
3891
3893
  end
3892
3894
  when 99 then
3893
- # line 134 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3895
+ # line 134 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3894
3896
  begin
3895
3897
 
3896
3898
  text = ts ? copy(data, ts-1..-1) : data.pack('c*')
3897
3899
  raise PrematureEndError.new( text )
3898
3900
  end
3899
- # line 362 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3901
+ # line 362 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3900
3902
  begin
3901
3903
  te = p
3902
3904
  p = p - 1; begin
@@ -3911,13 +3913,13 @@ p = p - 1; begin
3911
3913
  end
3912
3914
  end
3913
3915
  when 103 then
3914
- # line 134 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3916
+ # line 134 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3915
3917
  begin
3916
3918
 
3917
3919
  text = ts ? copy(data, ts-1..-1) : data.pack('c*')
3918
3920
  raise PrematureEndError.new( text )
3919
3921
  end
3920
- # line 376 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3922
+ # line 376 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3921
3923
  begin
3922
3924
  te = p
3923
3925
  p = p - 1; begin
@@ -3932,13 +3934,13 @@ p = p - 1; begin
3932
3934
  end
3933
3935
  end
3934
3936
  when 95 then
3935
- # line 134 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3937
+ # line 134 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3936
3938
  begin
3937
3939
 
3938
3940
  text = ts ? copy(data, ts-1..-1) : data.pack('c*')
3939
3941
  raise PrematureEndError.new( text )
3940
3942
  end
3941
- # line 381 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3943
+ # line 381 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3942
3944
  begin
3943
3945
  te = p
3944
3946
  p = p - 1; begin
@@ -3963,13 +3965,13 @@ p = p - 1; begin
3963
3965
  end
3964
3966
  end
3965
3967
  when 97 then
3966
- # line 134 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3968
+ # line 134 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3967
3969
  begin
3968
3970
 
3969
3971
  text = ts ? copy(data, ts-1..-1) : data.pack('c*')
3970
3972
  raise PrematureEndError.new( text )
3971
3973
  end
3972
- # line 396 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3974
+ # line 396 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3973
3975
  begin
3974
3976
  te = p
3975
3977
  p = p - 1; begin
@@ -3994,13 +3996,13 @@ p = p - 1; begin
3994
3996
  end
3995
3997
  end
3996
3998
  when 28 then
3997
- # line 134 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3999
+ # line 134 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
3998
4000
  begin
3999
4001
 
4000
4002
  text = ts ? copy(data, ts-1..-1) : data.pack('c*')
4001
4003
  raise PrematureEndError.new( text )
4002
4004
  end
4003
- # line 381 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4005
+ # line 381 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4004
4006
  begin
4005
4007
  begin p = ((te))-1; end
4006
4008
  begin
@@ -4025,13 +4027,13 @@ p = p - 1; begin
4025
4027
  end
4026
4028
  end
4027
4029
  when 31 then
4028
- # line 134 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4030
+ # line 134 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4029
4031
  begin
4030
4032
 
4031
4033
  text = ts ? copy(data, ts-1..-1) : data.pack('c*')
4032
4034
  raise PrematureEndError.new( text )
4033
4035
  end
4034
- # line 396 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4036
+ # line 396 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4035
4037
  begin
4036
4038
  begin p = ((te))-1; end
4037
4039
  begin
@@ -4056,13 +4058,13 @@ p = p - 1; begin
4056
4058
  end
4057
4059
  end
4058
4060
  when 35 then
4059
- # line 140 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4061
+ # line 140 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4060
4062
  begin
4061
4063
 
4062
4064
  text = ts ? copy(data, ts-1..-1) : data.pack('c*')
4063
4065
  raise InvalidSequenceError.new('sequence', text)
4064
4066
  end
4065
- # line 372 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4067
+ # line 372 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4066
4068
  begin
4067
4069
  te = p+1
4068
4070
  begin
@@ -4076,17 +4078,17 @@ te = p+1
4076
4078
  end
4077
4079
  end
4078
4080
  when 52 then
4079
- # line 147 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4081
+ # line 147 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4080
4082
  begin
4081
- @group_depth -= 1; @in_group = @group_depth > 0 ? true : false end
4082
- # line 146 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4083
+ self.group_depth = group_depth - 1; in_group = group_depth > 0 ? true : false end
4084
+ # line 146 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4083
4085
  begin
4084
- @group_depth += 1; @in_group = true end
4086
+ self.group_depth = group_depth + 1; in_group = true end
4085
4087
  when 11 then
4086
- # line 147 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4088
+ # line 147 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4087
4089
  begin
4088
- @group_depth -= 1; @in_group = @group_depth > 0 ? true : false end
4089
- # line 544 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4090
+ self.group_depth = group_depth - 1; in_group = group_depth > 0 ? true : false end
4091
+ # line 544 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4090
4092
  begin
4091
4093
  te = p+1
4092
4094
  begin
@@ -4094,15 +4096,15 @@ te = p+1
4094
4096
  end
4095
4097
  end
4096
4098
  when 44 then
4097
- # line 147 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4099
+ # line 147 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4098
4100
  begin
4099
- @group_depth -= 1; @in_group = @group_depth > 0 ? true : false end
4100
- # line 613 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4101
+ self.group_depth = group_depth - 1; in_group = group_depth > 0 ? true : false end
4102
+ # line 613 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4101
4103
  begin
4102
4104
  te = p+1
4103
4105
  begin
4104
4106
  if in_conditional and conditional_stack.last and
4105
- conditional_stack.last[1] == (@group_depth + 1)
4107
+ conditional_stack.last[1] == (group_depth + 1)
4106
4108
 
4107
4109
  emit(:conditional, :close, *text(data, ts, te))
4108
4110
  conditional_stack.pop
@@ -4111,11 +4113,11 @@ te = p+1
4111
4113
  in_conditional = false
4112
4114
  end
4113
4115
  else
4114
- if @spacing_stack.length > 1 and
4115
- @spacing_stack.last[:depth] == (@group_depth + 1)
4116
- @spacing_stack.pop
4116
+ if spacing_stack.length > 1 and
4117
+ spacing_stack.last[:depth] == (group_depth + 1)
4118
+ spacing_stack.pop
4117
4119
 
4118
- @free_spacing = @spacing_stack.last[:free_spacing]
4120
+ self.free_spacing = spacing_stack.last[:free_spacing]
4119
4121
  end
4120
4122
 
4121
4123
  emit(:group, :close, *text(data, ts, te))
@@ -4127,15 +4129,15 @@ te = p+1
4127
4129
  begin
4128
4130
  te = p+1
4129
4131
  end
4130
- # line 146 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4132
+ # line 146 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4131
4133
  begin
4132
- @group_depth += 1; @in_group = true end
4134
+ self.group_depth = group_depth + 1; in_group = true end
4133
4135
  when 77 then
4134
4136
  # line 1 "NONE"
4135
4137
  begin
4136
4138
  te = p+1
4137
4139
  end
4138
- # line 278 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4140
+ # line 278 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4139
4141
  begin
4140
4142
  act = 18; end
4141
4143
  when 26 then
@@ -4143,7 +4145,7 @@ act = 18; end
4143
4145
  begin
4144
4146
  te = p+1
4145
4147
  end
4146
- # line 294 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4148
+ # line 294 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4147
4149
  begin
4148
4150
  act = 20; end
4149
4151
  when 88 then
@@ -4151,7 +4153,7 @@ act = 20; end
4151
4153
  begin
4152
4154
  te = p+1
4153
4155
  end
4154
- # line 304 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4156
+ # line 304 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4155
4157
  begin
4156
4158
  act = 21; end
4157
4159
  when 87 then
@@ -4159,7 +4161,7 @@ act = 21; end
4159
4161
  begin
4160
4162
  te = p+1
4161
4163
  end
4162
- # line 310 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4164
+ # line 310 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4163
4165
  begin
4164
4166
  act = 22; end
4165
4167
  when 2 then
@@ -4167,10 +4169,10 @@ act = 22; end
4167
4169
  begin
4168
4170
  te = p+1
4169
4171
  end
4170
- # line 766 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4172
+ # line 766 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4171
4173
  begin
4172
4174
  act = 59; end
4173
- # line 4173 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner.rb"
4175
+ # line 4175 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
4174
4176
  end
4175
4177
  end
4176
4178
  end
@@ -4188,7 +4190,7 @@ ts = nil; end
4188
4190
  begin
4189
4191
  act = 0
4190
4192
  end
4191
- # line 4191 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner.rb"
4193
+ # line 4193 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
4192
4194
  end
4193
4195
 
4194
4196
  if cs == 0
@@ -4210,19 +4212,19 @@ act = 0
4210
4212
  end
4211
4213
  case _re_scanner_eof_actions[cs]
4212
4214
  when 15 then
4213
- # line 54 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/property.rl"
4215
+ # line 54 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/property.rl"
4214
4216
  begin
4215
4217
 
4216
4218
  raise PrematureEndError.new('unicode property')
4217
4219
  end
4218
4220
  when 14 then
4219
- # line 134 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4221
+ # line 134 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4220
4222
  begin
4221
4223
 
4222
4224
  text = ts ? copy(data, ts-1..-1) : data.pack('c*')
4223
4225
  raise PrematureEndError.new( text )
4224
4226
  end
4225
- # line 4225 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner.rb"
4227
+ # line 4227 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner.rb"
4226
4228
  end
4227
4229
  end
4228
4230
 
@@ -4233,7 +4235,7 @@ act = 0
4233
4235
  end
4234
4236
  end
4235
4237
 
4236
- # line 866 "/Users/ammar/src/code/ruby/projects/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4238
+ # line 868 "/Users/jannoschmuller/code/regexp_parser/lib/regexp_parser/scanner/scanner.rl"
4237
4239
 
4238
4240
  if cs == re_scanner_error
4239
4241
  text = ts ? copy(data, ts-1..-1) : data.pack('c*')
@@ -4241,31 +4243,35 @@ end
4241
4243
  end
4242
4244
 
4243
4245
  raise PrematureEndError.new("(missing group closing paranthesis) "+
4244
- "[#{@in_group}:#{@group_depth}]") if @in_group
4246
+ "[#{in_group}:#{group_depth}]") if in_group
4245
4247
  raise PrematureEndError.new("(missing set closing bracket) "+
4246
4248
  "[#{in_set}:#{set_depth}]") if in_set
4247
4249
 
4248
4250
  # when the entire expression is a literal run
4249
- emit_literal if @literal
4251
+ emit_literal if literal
4250
4252
 
4251
- @tokens
4253
+ tokens
4252
4254
  end
4253
4255
 
4254
4256
  # Emits an array with the details of the scanned pattern
4255
4257
  def emit(type, token, text, ts, te)
4256
4258
  #puts "EMIT: type: #{type}, token: #{token}, text: #{text}, ts: #{ts}, te: #{te}"
4257
4259
 
4258
- emit_literal if @literal
4260
+ emit_literal if literal
4259
4261
 
4260
- if @block
4261
- @block.call type, token, text, ts, te
4262
+ if block
4263
+ block.call type, token, text, ts, te
4262
4264
  end
4263
4265
 
4264
- @tokens << [type, token, text, ts, te]
4266
+ tokens << [type, token, text, ts, te]
4265
4267
  end
4266
4268
 
4267
4269
  private
4268
4270
 
4271
+ attr_accessor :tokens, :literal, :block,
4272
+ :in_group, :group_depth,
4273
+ :free_spacing, :spacing_stack
4274
+
4269
4275
  # Ragel's regex-based scan of the group options introduced a lot of
4270
4276
  # ambiguity, so we just ask it to find the beginning of what looks
4271
4277
  # like an options run and handle the rest in here.
@@ -4334,19 +4340,19 @@ end
4334
4340
  # Appends one or more characters to the literal buffer, to be emitted later
4335
4341
  # by a call to emit_literal. Contents can be a mix of ASCII and UTF-8.
4336
4342
  def append_literal(data, ts, te)
4337
- @literal ||= []
4338
- @literal << text(data, ts, te)
4343
+ self.literal = literal || []
4344
+ literal << text(data, ts, te)
4339
4345
  end
4340
4346
 
4341
4347
  # Emits the literal run collected by calls to the append_literal method,
4342
4348
  # using the total start (ts) and end (te) offsets of the run.
4343
4349
  def emit_literal
4344
- ts, te = @literal.first[1], @literal.last[2]
4345
- text = @literal.map {|t| t[0]}.join
4350
+ ts, te = literal.first[1], literal.last[2]
4351
+ text = literal.map {|t| t[0]}.join
4346
4352
 
4347
4353
  text.force_encoding('utf-8') if text.respond_to?(:force_encoding)
4348
4354
 
4349
- @literal = nil
4355
+ self.literal = nil
4350
4356
  emit(:literal, :literal, text, ts, te)
4351
4357
  end
4352
4358
 
@@ -4355,20 +4361,20 @@ end
4355
4361
  positive, negative, group_local = $1, $2, $3
4356
4362
 
4357
4363
  if positive.include?('x')
4358
- @free_spacing = true
4364
+ self.free_spacing = true
4359
4365
  end
4360
4366
 
4361
4367
  # If the x appears in both, treat it like ruby does, the second cancels
4362
4368
  # the first.
4363
4369
  if negative.include?('x')
4364
- @free_spacing = false
4370
+ self.free_spacing = false
4365
4371
  end
4366
4372
 
4367
4373
  if group_local
4368
- @spacing_stack << {:free_spacing => @free_spacing, :depth => @group_depth}
4374
+ spacing_stack << {:free_spacing => free_spacing, :depth => group_depth}
4369
4375
  else
4370
4376
  # switch for parent group level
4371
- @spacing_stack.last[:free_spacing] = @free_spacing
4377
+ spacing_stack.last[:free_spacing] = free_spacing
4372
4378
  end
4373
4379
  end
4374
4380