Sha256: 5a7c5816eeada91057e7d069fb188f99f18668560a53b8039db45dcc275a026a

Contents?: true

Size: 1.61 KB

Versions: 21

Compression:

Stored size: 1.61 KB

Contents

class Code
  class Parser
    class Equal < Language
      def statement
        ::Code::Parser::Rescue
      end

      def name
        ::Code::Parser::Name
      end

      def equal_class
        ::Code::Parser::Equal
      end

      def whitespace
        ::Code::Parser::Whitespace
      end

      def whitespace?
        whitespace.maybe
      end

      def equal
        str("=")
      end

      def plus
        str("+")
      end

      def minus
        str("-")
      end

      def asterisk
        str("*")
      end

      def slash
        str("/")
      end

      def percent
        str("%")
      end

      def greater
        str(">")
      end

      def lesser
        str("<")
      end

      def ampersand
        str("&")
      end

      def pipe
        str("|")
      end

      def caret
        str("^")
      end

      def dot
        str(".")
      end

      def operator
        equal.ignore | (plus << equal.ignore) | (minus << equal.ignore) |
          (asterisk << equal.ignore) | (slash << equal.ignore) |
          (percent << equal.ignore) | (greater << greater << equal.ignore) |
          (lesser << lesser << equal.ignore) | (ampersand << equal.ignore) |
          (pipe << equal.ignore) | (caret << equal.ignore) |
          (pipe << pipe << equal.ignore) |
          (ampersand << ampersand << equal.ignore)
      end

      def names
        name << (dot << name).repeat
      end

      def root
        (
          names.aka(:left) << whitespace? << operator.aka(:operator) <<
            whitespace? << equal_class.aka(:right)
        ).aka(:equal) | statement
      end
    end
  end
end

Version data entries

21 entries across 21 versions & 3 rubygems

Version Path
template-ruby-0.5.6 lib/code/parser/equal.rb
language-ruby-0.5.6 lib/code/parser/equal.rb
code-ruby-0.5.6 lib/code/parser/equal.rb
template-ruby-0.5.5 lib/code/parser/equal.rb
language-ruby-0.5.5 lib/code/parser/equal.rb
code-ruby-0.5.5 lib/code/parser/equal.rb
template-ruby-0.5.4 lib/code/parser/equal.rb
language-ruby-0.5.4 lib/code/parser/equal.rb
code-ruby-0.5.4 lib/code/parser/equal.rb
template-ruby-0.5.3 lib/code/parser/equal.rb
language-ruby-0.5.3 lib/code/parser/equal.rb
code-ruby-0.5.3 lib/code/parser/equal.rb
template-ruby-0.5.2 lib/code/parser/equal.rb
language-ruby-0.5.2 lib/code/parser/equal.rb
code-ruby-0.5.2 lib/code/parser/equal.rb
language-ruby-0.5.1 lib/code/parser/equal.rb
template-ruby-0.5.1 lib/code/parser/equal.rb
code-ruby-0.5.1 lib/code/parser/equal.rb
template-ruby-0.5.0 lib/code/parser/equal.rb
language-ruby-0.5.0 lib/code/parser/equal.rb