Sha256: ac46b1d2e13da99a1799b47b5703c590177758427b8a33549735869c5c96ea3d

Contents?: true

Size: 666 Bytes

Versions: 6

Compression:

Stored size: 666 Bytes

Contents

class Code
  class Parser
    class Ternary < Parslet::Parser
      rule(:defined) { ::Code::Parser::Defined.new }

      rule(:question_mark) { str("?") }
      rule(:colon) { str(":") }

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

      rule(:ternary) do
        (
          defined.as(:left) >> whitespace >> question_mark >> whitespace? >>
            ternary.as(:middle) >>
            (whitespace? >> colon >> whitespace? >> ternary.as(:right)).maybe
        ).as(:ternary) | defined
      end

      root(:ternary)
    end
  end
end

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
template-ruby-0.4.0 lib/code/parser/ternary.rb
code-ruby-0.4.0 lib/code/parser/ternary.rb
template-ruby-0.3.1 lib/code/parser/ternary.rb
code-ruby-0.3.1 lib/code/parser/ternary.rb
template-ruby-0.3.0 lib/code/parser/ternary.rb
code-ruby-0.3.0 lib/code/parser/ternary.rb