Sha256: 89355c32b5db50f0d8da45877905b09d32129f13f941cd09f3259e326b6aaaea

Contents?: true

Size: 665 Bytes

Versions: 15

Compression:

Stored size: 665 Bytes

Contents

# frozen_string_literal: true

class Language
  class Atom
    class And < Atom
      def initialize(left:, right:)
        @left = left
        @right = right
      end

      def parse(parser)
        @left.parse(parser)
        right_clone =
          Parser.new(
            root: self,
            input: parser.input,
            cursor: parser.cursor,
            buffer: parser.buffer
          )
        @right.parse(right_clone)
        parser.cursor = right_clone.cursor
        parser.buffer = right_clone.buffer

        parser.output.merge(right_clone.output)
      end

      def to_s
        "#{@left} >> #{@right}".to_s
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
language-ruby-1.1.2 lib/language/atom/and.rb
language-ruby-1.1.0 lib/language/atom/and.rb
language-ruby-1.0.1 lib/language/atom/and.rb
language-ruby-1.0.0 lib/language/atom/and.rb
language-ruby-0.9.3 lib/language/atom/and.rb
language-ruby-0.9.2 lib/language/atom/and.rb
language-ruby-0.9.0 lib/language/atom/and.rb
language-ruby-0.8.4 lib/language/atom/and.rb
language-ruby-0.8.3 lib/language/atom/and.rb
language-ruby-0.8.2 lib/language/atom/and.rb
language-ruby-0.8.1 lib/language/atom/and.rb
language-ruby-0.8.0 lib/language/atom/and.rb
language-ruby-0.7.0 lib/language/atom/and.rb
language-ruby-0.6.2 lib/language/atom/and.rb
language-ruby-0.6.1 lib/language/atom/and.rb