Sha256: a4a2e730702a8fa4b49b7bb75d8018df19cb1e19ac7683b7ab0ad023a883705a

Contents?: true

Size: 732 Bytes

Versions: 1

Compression:

Stored size: 732 Bytes

Contents

module Treetop
  class Protometagrammar
    class SuffixExpressionBuilder < ParsingExpressionBuilder
      def build
        choice(zero_or_more_terminal, one_or_more_terminal, optional)
      end
    
      def zero_or_more_terminal
        exp('*') do
          def value(parsing_expression)
            parsing_expression.zero_or_more
          end
        end
      end

      def one_or_more_terminal
        exp('+') do
          def value(parsing_expression)
            parsing_expression.one_or_more
          end          
        end
      end
    
      def optional
        exp('?') do
          def value(parsing_expression)
            parsing_expression.optional
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
treetop-0.1.0 lib/treetop/protometagrammar/suffix_expression_builder.rb