Sha256: 58a985b3bfd18e7be6a795ade5ed57720ad4609490e948919a6bb308d134d75c

Contents?: true

Size: 690 Bytes

Versions: 15

Compression:

Stored size: 690 Bytes

Contents

# frozen_string_literal: true

class Language
  class Atom
    class Aka < Atom
      def initialize(name:, parent:)
        @name = name
        @parent = parent
      end

      def parse(parser)
        clone =
          Parser.new(root: self, input: parser.input, cursor: parser.cursor)

        @parent.parse(clone)

        if clone.output?
          parser.output = Output.new(@name => clone.output)
        else
          parser.output[@name] = Output.new(clone.buffer)
          parser.buffer = ""
        end

        parser.cursor = clone.cursor
      end

      def to_s
        @parent ? "#{@parent}.aka(#{@name.inspect})" : "aka(#{@name.inspect})"
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

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