walrat 0.1 → 0.3.pre

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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