walrat 0.1 → 0.3.pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +7 -0
  2. data/lib/walrat/additions/proc.rb +2 -21
  3. data/lib/walrat/additions/regexp.rb +3 -22
  4. data/lib/walrat/additions/string.rb +2 -34
  5. data/lib/walrat/additions/symbol.rb +3 -22
  6. data/lib/walrat/and_predicate.rb +2 -21
  7. data/lib/walrat/array_result.rb +2 -21
  8. data/lib/walrat/continuation_wrapper_exception.rb +2 -21
  9. data/lib/walrat/grammar.rb +9 -27
  10. data/lib/walrat/left_recursion_exception.rb +2 -21
  11. data/lib/walrat/location_tracking.rb +5 -26
  12. data/lib/walrat/match_data_wrapper.rb +2 -21
  13. data/lib/walrat/memoizing.rb +3 -23
  14. data/lib/walrat/memoizing_cache.rb +3 -23
  15. data/lib/walrat/no_parameter_marker.rb +3 -22
  16. data/lib/walrat/node.rb +4 -23
  17. data/lib/walrat/not_predicate.rb +2 -21
  18. data/lib/walrat/parse_error.rb +2 -21
  19. data/lib/walrat/parser_state.rb +2 -21
  20. data/lib/walrat/parslet.rb +2 -21
  21. data/lib/walrat/parslet_choice.rb +2 -21
  22. data/lib/walrat/parslet_combination.rb +2 -21
  23. data/lib/walrat/parslet_combining.rb +22 -90
  24. data/lib/walrat/parslet_merge.rb +2 -21
  25. data/lib/walrat/parslet_omission.rb +2 -21
  26. data/lib/walrat/parslet_repetition.rb +2 -21
  27. data/lib/walrat/parslet_repetition_default.rb +2 -21
  28. data/lib/walrat/parslet_sequence.rb +2 -21
  29. data/lib/walrat/predicate.rb +2 -21
  30. data/lib/walrat/proc_parslet.rb +2 -21
  31. data/lib/walrat/regexp_parslet.rb +2 -21
  32. data/lib/walrat/skipped_substring_exception.rb +2 -21
  33. data/lib/walrat/string_enumerator.rb +2 -23
  34. data/lib/walrat/string_parslet.rb +2 -21
  35. data/lib/walrat/string_result.rb +3 -22
  36. data/lib/walrat/symbol_parslet.rb +2 -21
  37. data/lib/walrat/version.rb +4 -23
  38. data/lib/walrat.rb +3 -28
  39. metadata +54 -54
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: f8f1e0bbb60d1d2b79e9ef31d0954f1f079de3715afd62c4e679c2cad86702c6
4
+ data.tar.gz: e727e9a09ca8c10855300002c03f575a7461aa97f97dc1194a01e292dff66d60
5
+ SHA512:
6
+ metadata.gz: 68b5f1039daff17d1893427b772d33e58d410c614c30b6eb11e86cdf296fc8b1d3ed7ea434c00df5897e96eb308fa181d7d98744e700a2657ac2040dfda5d51c
7
+ data.tar.gz: 0a86baa4827d5e1172c36b355cbb6c1c1d790090e1b0ecb5da229a80d55f3e89d40569b914739ca5a31b0d0492d4ac47a4cddf6f0ec50b2fd436aac04db871ab
@@ -1,24 +1,5 @@
1
- # Copyright 2007-2010 Wincent Colaiuta. All rights reserved.
2
- # Redistribution and use in source and binary forms, with or without
3
- # modification, are permitted provided that the following conditions are met:
4
- #
5
- # 1. Redistributions of source code must retain the above copyright notice,
6
- # this list of conditions and the following disclaimer.
7
- # 2. Redistributions in binary form must reproduce the above copyright notice,
8
- # this list of conditions and the following disclaimer in the documentation
9
- # and/or other materials provided with the distribution.
10
- #
11
- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
12
- # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
13
- # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
14
- # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
15
- # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
16
- # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
17
- # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
18
- # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
19
- # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
20
- # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
21
- # POSSIBILITY OF SUCH DAMAGE.
1
+ # Copyright 2007-present Greg Hurrell. All rights reserved.
2
+ # Licensed under the terms of the BSD 2-clause license.
22
3
 
23
4
  require 'walrat'
24
5
 
@@ -1,29 +1,10 @@
1
- # Copyright 2007-2010 Wincent Colaiuta. All rights reserved.
2
- # Redistribution and use in source and binary forms, with or without
3
- # modification, are permitted provided that the following conditions are met:
4
- #
5
- # 1. Redistributions of source code must retain the above copyright notice,
6
- # this list of conditions and the following disclaimer.
7
- # 2. Redistributions in binary form must reproduce the above copyright notice,
8
- # this list of conditions and the following disclaimer in the documentation
9
- # and/or other materials provided with the distribution.
10
- #
11
- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
12
- # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
13
- # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
14
- # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
15
- # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
16
- # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
17
- # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
18
- # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
19
- # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
20
- # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
21
- # POSSIBILITY OF SUCH DAMAGE.
1
+ # Copyright 2007-present Greg Hurrell. All rights reserved.
2
+ # Licensed under the terms of the BSD 2-clause license.
22
3
 
23
4
  require 'walrat'
5
+ require 'walrat/parslet_combining'
24
6
 
25
7
  class Regexp
26
- require 'walrat/parslet_combining'
27
8
  include Walrat::ParsletCombining
28
9
 
29
10
  # Returns a RegexpParslet based on the receiver
@@ -1,24 +1,5 @@
1
- # Copyright 2007-2010 Wincent Colaiuta. All rights reserved.
2
- # Redistribution and use in source and binary forms, with or without
3
- # modification, are permitted provided that the following conditions are met:
4
- #
5
- # 1. Redistributions of source code must retain the above copyright notice,
6
- # this list of conditions and the following disclaimer.
7
- # 2. Redistributions in binary form must reproduce the above copyright notice,
8
- # this list of conditions and the following disclaimer in the documentation
9
- # and/or other materials provided with the distribution.
10
- #
11
- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
12
- # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
13
- # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
14
- # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
15
- # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
16
- # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
17
- # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
18
- # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
19
- # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
20
- # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
21
- # POSSIBILITY OF SUCH DAMAGE.
1
+ # Copyright 2007-present Greg Hurrell. All rights reserved.
2
+ # Licensed under the terms of the BSD 2-clause license.
22
3
 
23
4
  require 'walrat'
24
5
 
@@ -62,19 +43,6 @@ class String
62
43
  i ? unpack('C*')[0...i].pack('C*').chars.to_a.length : nil
63
44
  end
64
45
 
65
- # multi-byte friendly [] implementation
66
- def [](range, other = Walrat::NoParameterMarker.instance)
67
- if other == Walrat::NoParameterMarker.instance
68
- if range.kind_of? Range
69
- chars.to_a[range].join
70
- else
71
- old_range range
72
- end
73
- else
74
- old_range range, other
75
- end
76
- end
77
-
78
46
  # Returns a character-level enumerator for the receiver.
79
47
  def enumerator
80
48
  Walrat::StringEnumerator.new self
@@ -1,24 +1,5 @@
1
- # Copyright 2007-2010 Wincent Colaiuta. All rights reserved.
2
- # Redistribution and use in source and binary forms, with or without
3
- # modification, are permitted provided that the following conditions are met:
4
- #
5
- # 1. Redistributions of source code must retain the above copyright notice,
6
- # this list of conditions and the following disclaimer.
7
- # 2. Redistributions in binary form must reproduce the above copyright notice,
8
- # this list of conditions and the following disclaimer in the documentation
9
- # and/or other materials provided with the distribution.
10
- #
11
- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
12
- # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
13
- # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
14
- # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
15
- # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
16
- # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
17
- # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
18
- # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
19
- # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
20
- # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
21
- # POSSIBILITY OF SUCH DAMAGE.
1
+ # Copyright 2007-present Greg Hurrell. All rights reserved.
2
+ # Licensed under the terms of the BSD 2-clause license.
22
3
 
23
4
  require 'walrat'
24
5
 
@@ -31,7 +12,7 @@ class Symbol
31
12
  # They can also be used to allow self-references within rules and productions
32
13
  # (recursion); for example:
33
14
  #
34
- # rule :thing & :thing.optional & :other_thing
15
+ # rule :thing, :thing & :thing.optional & :other_thing
35
16
  #
36
17
  # Basically these SymbolParslets allow deferred evaluation of a rule or
37
18
  # production (deferred until parsing takes place) rather than being evaluated
@@ -1,24 +1,5 @@
1
- # Copyright 2007-2010 Wincent Colaiuta. All rights reserved.
2
- # Redistribution and use in source and binary forms, with or without
3
- # modification, are permitted provided that the following conditions are met:
4
- #
5
- # 1. Redistributions of source code must retain the above copyright notice,
6
- # this list of conditions and the following disclaimer.
7
- # 2. Redistributions in binary form must reproduce the above copyright notice,
8
- # this list of conditions and the following disclaimer in the documentation
9
- # and/or other materials provided with the distribution.
10
- #
11
- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
12
- # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
13
- # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
14
- # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
15
- # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
16
- # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
17
- # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
18
- # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
19
- # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
20
- # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
21
- # POSSIBILITY OF SUCH DAMAGE.
1
+ # Copyright 2007-present Greg Hurrell. All rights reserved.
2
+ # Licensed under the terms of the BSD 2-clause license.
22
3
 
23
4
  require 'walrat'
24
5
 
@@ -1,24 +1,5 @@
1
- # Copyright 2007-2010 Wincent Colaiuta. All rights reserved.
2
- # Redistribution and use in source and binary forms, with or without
3
- # modification, are permitted provided that the following conditions are met:
4
- #
5
- # 1. Redistributions of source code must retain the above copyright notice,
6
- # this list of conditions and the following disclaimer.
7
- # 2. Redistributions in binary form must reproduce the above copyright notice,
8
- # this list of conditions and the following disclaimer in the documentation
9
- # and/or other materials provided with the distribution.
10
- #
11
- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
12
- # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
13
- # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
14
- # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
15
- # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
16
- # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
17
- # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
18
- # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
19
- # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
20
- # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
21
- # POSSIBILITY OF SUCH DAMAGE.
1
+ # Copyright 2007-present Greg Hurrell. All rights reserved.
2
+ # Licensed under the terms of the BSD 2-clause license.
22
3
 
23
4
  require 'walrat'
24
5
 
@@ -1,24 +1,5 @@
1
- # Copyright 2007-2010 Wincent Colaiuta. All rights reserved.
2
- # Redistribution and use in source and binary forms, with or without
3
- # modification, are permitted provided that the following conditions are met:
4
- #
5
- # 1. Redistributions of source code must retain the above copyright notice,
6
- # this list of conditions and the following disclaimer.
7
- # 2. Redistributions in binary form must reproduce the above copyright notice,
8
- # this list of conditions and the following disclaimer in the documentation
9
- # and/or other materials provided with the distribution.
10
- #
11
- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
12
- # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
13
- # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
14
- # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
15
- # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
16
- # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
17
- # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
18
- # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
19
- # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
20
- # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
21
- # POSSIBILITY OF SUCH DAMAGE.
1
+ # Copyright 2007-present Greg Hurrell. All rights reserved.
2
+ # Licensed under the terms of the BSD 2-clause license.
22
3
 
23
4
  require 'walrat'
24
5
 
@@ -1,24 +1,5 @@
1
- # Copyright 2007-2010 Wincent Colaiuta. All rights reserved.
2
- # Redistribution and use in source and binary forms, with or without
3
- # modification, are permitted provided that the following conditions are met:
4
- #
5
- # 1. Redistributions of source code must retain the above copyright notice,
6
- # this list of conditions and the following disclaimer.
7
- # 2. Redistributions in binary form must reproduce the above copyright notice,
8
- # this list of conditions and the following disclaimer in the documentation
9
- # and/or other materials provided with the distribution.
10
- #
11
- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
12
- # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
13
- # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
14
- # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
15
- # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
16
- # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
17
- # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
18
- # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
19
- # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
20
- # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
21
- # POSSIBILITY OF SUCH DAMAGE.
1
+ # Copyright 2007-present Greg Hurrell. All rights reserved.
2
+ # Licensed under the terms of the BSD 2-clause license.
22
3
 
23
4
  require 'walrat'
24
5
  require 'walrat/additions/string.rb'
@@ -131,16 +112,17 @@ module Walrat
131
112
 
132
113
  # Defines a rule and stores it
133
114
  #
134
- # Expects an object that responds to the parse message, such as a Parslet
135
- # or ParsletCombination. As this is intended to work with Parsing
136
- # Expression Grammars, each rule may only be defined once. Defining a
137
- # rule more than once will raise an ArgumentError.
115
+ # Expects an object that responds to the to_parseable message.
116
+ #
117
+ # As this is intended to work with Parsing Expression Grammars, each rule
118
+ # may only be defined once. Defining a rule more than once will raise an
119
+ # ArgumentError.
138
120
  def rule symbol, parseable
139
121
  raise ArgumentError, 'nil symbol' if symbol.nil?
140
122
  raise ArgumentError, 'nil parseable' if parseable.nil?
141
123
  raise ArgumentError,
142
124
  "rule '#{symbol}' already defined" if rules.has_key? symbol
143
- rules[symbol] = parseable
125
+ rules[symbol] = parseable.to_parseable
144
126
  end
145
127
 
146
128
  # Dynamically creates a Node subclass inside the namespace of the current
@@ -201,7 +183,7 @@ module Walrat
201
183
  productions.has_key?(rule_name)
202
184
  raise ArgumentError, "non-existent rule '#{rule_name}'" unless
203
185
  rules.has_key?(rule_name)
204
- results = results.empty? ? [:lexeme] : results
186
+ results = [:lexeme] if results.empty?
205
187
  const_get(rule_name.to_s.to_class_name).production *results
206
188
  productions[rule_name] = results
207
189
  end
@@ -1,24 +1,5 @@
1
- # Copyright 2007-2010 Wincent Colaiuta. All rights reserved.
2
- # Redistribution and use in source and binary forms, with or without
3
- # modification, are permitted provided that the following conditions are met:
4
- #
5
- # 1. Redistributions of source code must retain the above copyright notice,
6
- # this list of conditions and the following disclaimer.
7
- # 2. Redistributions in binary form must reproduce the above copyright notice,
8
- # this list of conditions and the following disclaimer in the documentation
9
- # and/or other materials provided with the distribution.
10
- #
11
- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
12
- # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
13
- # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
14
- # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
15
- # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
16
- # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
17
- # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
18
- # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
19
- # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
20
- # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
21
- # POSSIBILITY OF SUCH DAMAGE.
1
+ # Copyright 2007-present Greg Hurrell. All rights reserved.
2
+ # Licensed under the terms of the BSD 2-clause license.
22
3
 
23
4
  require 'walrat'
24
5
 
@@ -1,24 +1,5 @@
1
- # Copyright 2007-2010 Wincent Colaiuta. All rights reserved.
2
- # Redistribution and use in source and binary forms, with or without
3
- # modification, are permitted provided that the following conditions are met:
4
- #
5
- # 1. Redistributions of source code must retain the above copyright notice,
6
- # this list of conditions and the following disclaimer.
7
- # 2. Redistributions in binary form must reproduce the above copyright notice,
8
- # this list of conditions and the following disclaimer in the documentation
9
- # and/or other materials provided with the distribution.
10
- #
11
- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
12
- # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
13
- # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
14
- # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
15
- # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
16
- # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
17
- # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
18
- # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
19
- # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
20
- # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
21
- # POSSIBILITY OF SUCH DAMAGE.
1
+ # Copyright 2007-present Greg Hurrell. All rights reserved.
2
+ # Licensed under the terms of the BSD 2-clause license.
22
3
 
23
4
  require 'walrat'
24
5
 
@@ -112,14 +93,12 @@ module Walrat
112
93
  # true if the receiver is rightmost or equal.
113
94
  # If the other object is farther to the right returns false.
114
95
  def rightmost? other
115
- if self.line_end > other.line_end
96
+ if line_end > other.line_end
116
97
  true
117
- elsif other.line_end > self.line_end
98
+ elsif other.line_end > line_end
118
99
  false
119
- elsif self.column_end >= other.column_end
120
- true
121
100
  else
122
- false
101
+ column_end >= other.column_end
123
102
  end
124
103
  end
125
104
  end # module LocationTracking
@@ -1,24 +1,5 @@
1
- # Copyright 2007-2010 Wincent Colaiuta. All rights reserved.
2
- # Redistribution and use in source and binary forms, with or without
3
- # modification, are permitted provided that the following conditions are met:
4
- #
5
- # 1. Redistributions of source code must retain the above copyright notice,
6
- # this list of conditions and the following disclaimer.
7
- # 2. Redistributions in binary form must reproduce the above copyright notice,
8
- # this list of conditions and the following disclaimer in the documentation
9
- # and/or other materials provided with the distribution.
10
- #
11
- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
12
- # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
13
- # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
14
- # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
15
- # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
16
- # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
17
- # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
18
- # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
19
- # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
20
- # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
21
- # POSSIBILITY OF SUCH DAMAGE.
1
+ # Copyright 2007-present Greg Hurrell. All rights reserved.
2
+ # Licensed under the terms of the BSD 2-clause license.
22
3
 
23
4
  require 'walrat'
24
5
 
@@ -1,24 +1,5 @@
1
- # Copyright 2007-2010 Wincent Colaiuta. All rights reserved.
2
- # Redistribution and use in source and binary forms, with or without
3
- # modification, are permitted provided that the following conditions are met:
4
- #
5
- # 1. Redistributions of source code must retain the above copyright notice,
6
- # this list of conditions and the following disclaimer.
7
- # 2. Redistributions in binary form must reproduce the above copyright notice,
8
- # this list of conditions and the following disclaimer in the documentation
9
- # and/or other materials provided with the distribution.
10
- #
11
- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
12
- # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
13
- # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
14
- # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
15
- # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
16
- # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
17
- # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
18
- # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
19
- # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
20
- # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
21
- # POSSIBILITY OF SUCH DAMAGE.
1
+ # Copyright 2007-present Greg Hurrell. All rights reserved.
2
+ # Licensed under the terms of the BSD 2-clause license.
22
3
 
23
4
  require 'walrat'
24
5
 
@@ -30,7 +11,7 @@ module Walrat
30
11
  # appropriate to use a memoizer then it will be invoked, otherwise control
31
12
  # will fall through to the real parse method. Turning off memoizing is as
32
13
  # simple as not passing a value with the :memoizer key in the options hash.
33
- # This method defined is in a separate module so that it can easily be
14
+ # This method is defined in a separate module so that it can easily be
34
15
  # mixed in with all Parslets, ParsletCombinations and Predicates.
35
16
  def memoizing_parse(string, options = {})
36
17
  # will use memoizer if available and not instructed to ignore it
@@ -52,4 +33,3 @@ module Walrat
52
33
  end
53
34
  end # module Memoizing
54
35
  end # module Walrat
55
-
@@ -1,26 +1,8 @@
1
- # Copyright 2007-2010 Wincent Colaiuta. All rights reserved.
2
- # Redistribution and use in source and binary forms, with or without
3
- # modification, are permitted provided that the following conditions are met:
4
- #
5
- # 1. Redistributions of source code must retain the above copyright notice,
6
- # this list of conditions and the following disclaimer.
7
- # 2. Redistributions in binary form must reproduce the above copyright notice,
8
- # this list of conditions and the following disclaimer in the documentation
9
- # and/or other materials provided with the distribution.
10
- #
11
- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
12
- # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
13
- # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
14
- # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
15
- # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
16
- # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
17
- # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
18
- # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
19
- # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
20
- # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
21
- # POSSIBILITY OF SUCH DAMAGE.
1
+ # Copyright 2007-present Greg Hurrell. All rights reserved.
2
+ # Licensed under the terms of the BSD 2-clause license.
22
3
 
23
4
  require 'walrat'
5
+ require 'singleton'
24
6
 
25
7
  module Walrat
26
8
  # The MemoizingCache class memoizes the outcomes of parse operations. The
@@ -38,7 +20,6 @@ module Walrat
38
20
  class MemoizingCache
39
21
  # Singleton class that serves as a default value for unset keys in a Hash.
40
22
  class NoValueForKey
41
- require 'singleton'
42
23
  include Singleton
43
24
  end
44
25
 
@@ -74,7 +55,6 @@ module Walrat
74
55
 
75
56
  # construct a unique identifier
76
57
  identifier = [options[:parseable], options[:line_start], options[:column_start]]
77
- identifier << options[:origin] if options.has_key? :origin
78
58
  identifier << options[:skipping_override] if options.has_key? :skipping_override
79
59
 
80
60
  if (result = @cache[identifier]) != NoValueForKey.instance
@@ -1,30 +1,11 @@
1
- # Copyright 2007-2010 Wincent Colaiuta. All rights reserved.
2
- # Redistribution and use in source and binary forms, with or without
3
- # modification, are permitted provided that the following conditions are met:
4
- #
5
- # 1. Redistributions of source code must retain the above copyright notice,
6
- # this list of conditions and the following disclaimer.
7
- # 2. Redistributions in binary form must reproduce the above copyright notice,
8
- # this list of conditions and the following disclaimer in the documentation
9
- # and/or other materials provided with the distribution.
10
- #
11
- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
12
- # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
13
- # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
14
- # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
15
- # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
16
- # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
17
- # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
18
- # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
19
- # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
20
- # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
21
- # POSSIBILITY OF SUCH DAMAGE.
1
+ # Copyright 2007-present Greg Hurrell. All rights reserved.
2
+ # Licensed under the terms of the BSD 2-clause license.
22
3
 
23
4
  require 'walrat'
5
+ require 'singleton'
24
6
 
25
7
  module Walrat
26
8
  class NoParameterMarker
27
- require 'singleton'
28
9
  include Singleton
29
10
  end # class NoParameterMarker
30
11
  end # module Walrat
data/lib/walrat/node.rb CHANGED
@@ -1,29 +1,10 @@
1
- # Copyright 2007-2010 Wincent Colaiuta. All rights reserved.
2
- # Redistribution and use in source and binary forms, with or without
3
- # modification, are permitted provided that the following conditions are met:
4
- #
5
- # 1. Redistributions of source code must retain the above copyright notice,
6
- # this list of conditions and the following disclaimer.
7
- # 2. Redistributions in binary form must reproduce the above copyright notice,
8
- # this list of conditions and the following disclaimer in the documentation
9
- # and/or other materials provided with the distribution.
10
- #
11
- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
12
- # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
13
- # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
14
- # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
15
- # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
16
- # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
17
- # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
18
- # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
19
- # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
20
- # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
21
- # POSSIBILITY OF SUCH DAMAGE.
1
+ # Copyright 2007-present Greg Hurrell. All rights reserved.
2
+ # Licensed under the terms of the BSD 2-clause license.
22
3
 
23
4
  require 'walrat'
24
5
 
25
6
  module Walrat
26
- # Make subclasses of this for us in Abstract Syntax Trees (ASTs).
7
+ # Make subclasses of this for use in Abstract Syntax Trees (ASTs).
27
8
  class Node
28
9
  include Walrat::LocationTracking
29
10
 
@@ -50,7 +31,7 @@ module Walrat
50
31
  results.each { |result| attr_reader result }
51
32
 
52
33
  # set up initializer
53
- initialize_body = "def initialize #{results.map { |symbol| symbol.to_s}.join(', ')}\n"
34
+ initialize_body = "def initialize #{results.map { |symbol| symbol.to_s }.join(', ')}\n"
54
35
  initialize_body << %Q{ @string_value = ""\n}
55
36
  results.each do |result|
56
37
  initialize_body << " @#{result} = #{result}\n"
@@ -1,24 +1,5 @@
1
- # Copyright 2007-2010 Wincent Colaiuta. All rights reserved.
2
- # Redistribution and use in source and binary forms, with or without
3
- # modification, are permitted provided that the following conditions are met:
4
- #
5
- # 1. Redistributions of source code must retain the above copyright notice,
6
- # this list of conditions and the following disclaimer.
7
- # 2. Redistributions in binary form must reproduce the above copyright notice,
8
- # this list of conditions and the following disclaimer in the documentation
9
- # and/or other materials provided with the distribution.
10
- #
11
- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
12
- # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
13
- # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
14
- # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
15
- # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
16
- # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
17
- # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
18
- # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
19
- # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
20
- # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
21
- # POSSIBILITY OF SUCH DAMAGE.
1
+ # Copyright 2007-present Greg Hurrell. All rights reserved.
2
+ # Licensed under the terms of the BSD 2-clause license.
22
3
 
23
4
  require 'walrat'
24
5
 
@@ -1,24 +1,5 @@
1
- # Copyright 2007-2010 Wincent Colaiuta. All rights reserved.
2
- # Redistribution and use in source and binary forms, with or without
3
- # modification, are permitted provided that the following conditions are met:
4
- #
5
- # 1. Redistributions of source code must retain the above copyright notice,
6
- # this list of conditions and the following disclaimer.
7
- # 2. Redistributions in binary form must reproduce the above copyright notice,
8
- # this list of conditions and the following disclaimer in the documentation
9
- # and/or other materials provided with the distribution.
10
- #
11
- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
12
- # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
13
- # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
14
- # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
15
- # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
16
- # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
17
- # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
18
- # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
19
- # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
20
- # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
21
- # POSSIBILITY OF SUCH DAMAGE.
1
+ # Copyright 2007-present Greg Hurrell. All rights reserved.
2
+ # Licensed under the terms of the BSD 2-clause license.
22
3
 
23
4
  require 'walrat'
24
5