Sha256: 49e3d4282598bd5db823ca291e24e37df459fdc214c66d75be60e304713549f4

Contents?: true

Size: 615 Bytes

Versions: 12

Compression:

Stored size: 615 Bytes

Contents

class Code
  class Parser
    class Range < Parslet::Parser
      rule(:or_operator) { ::Code::Parser::OrOperator.new }

      rule(:dot) { str(".") }

      rule(:operator) { dot >> dot >> dot | dot >> dot }

      rule(:space) { str(" ") }
      rule(:newline) { str("\n") }
      rule(:whitespace) { (space | newline).repeat(1) }
      rule(:whitespace?) { whitespace.maybe }

      rule(:range) do
        (
          or_operator.as(:left) >> whitespace? >> operator.as(:operator) >>
            whitespace? >> range.as(:right)
        ).as(:range) | or_operator
      end

      root(:range)
    end
  end
end

Version data entries

12 entries across 12 versions & 2 rubygems

Version Path
template-ruby-0.4.0 lib/code/parser/range.rb
code-ruby-0.4.0 lib/code/parser/range.rb
template-ruby-0.3.1 lib/code/parser/range.rb
code-ruby-0.3.1 lib/code/parser/range.rb
template-ruby-0.3.0 lib/code/parser/range.rb
code-ruby-0.3.0 lib/code/parser/range.rb
code-ruby-0.2.4 lib/code/parser/range.rb
template-ruby-0.2.4 lib/code/parser/range.rb
template-ruby-0.2.3 lib/code/parser/range.rb
template-ruby-0.2.2 lib/code/parser/range.rb
template-ruby-0.2.1 lib/code/parser/range.rb
template-ruby-0.2.0 lib/code/parser/range.rb