Sha256: f0ab0def5ffb5705aa804f20051f81cb6ffc086ea50bb2f25bce47990653fb33

Contents?: true

Size: 713 Bytes

Versions: 6

Compression:

Stored size: 713 Bytes

Contents

module Treetop
  module Compiler    
    class CharacterClass < AtomicExpression
      def compile(address, builder, parent_expression = nil)
        super
        
        builder.if__ "input.index(Regexp.new(#{single_quote(text_value)},nil,'u'), index) == index" do
          builder << 'next_character = index + input[index..-1].match(/\A(.)/um).end(1)'
          assign_result "instantiate_node(#{node_class_name},input, index...next_character)"
          extend_result_with_inline_module
          builder << "@index = next_character"
        end
        builder.else_ do
          "terminal_parse_failure(#{single_quote(characters)})"
          assign_result 'nil'
        end
      end
    end
  end
end


Version data entries

6 entries across 6 versions & 3 rubygems

Version Path
skylinecms-3.1.0 vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/character_class.rb
personify-1.0.0 vendor/treetop/lib/treetop/compiler/node_classes/character_class.rb
westarete-skylinecms-3.0.8.20100329 vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/character_class.rb
westarete-skylinecms-3.0.8.20100330 vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/character_class.rb
skylinecms-3.0.8 vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/character_class.rb
skylinecms-3.0.7 vendor/digitpaint/personify/vendor/treetop/lib/treetop/compiler/node_classes/character_class.rb