Sha256: 6154b99177a060d953025a8b703520244581fb365627883e37ac9fee4899add0

Contents?: true

Size: 1.11 KB

Versions: 1

Compression:

Stored size: 1.11 KB

Contents

# encoding: utf-8
# frozen_string_literal: true

require "carbon/compiler/visitor/generation/context"

module Carbon
  module Compiler
    module Visitor
      class Generation
        include Base

        require "carbon/compiler/visitor/generation/asserts"
        require "carbon/compiler/visitor/generation/expressions"
        require "carbon/compiler/visitor/generation/function"
        require "carbon/compiler/visitor/generation/statements"
        require "carbon/compiler/visitor/generation/struct"

        include Generation::Asserts
        include Generation::Expressions
        include Generation::Function
        include Generation::Statements
        include Generation::Struct

        def initialize(file, index)
          @index = index
          @file = file
          @name = @file.module
        end

        def call(node)
          accept(node)
        end

        on Node::Root => :visit_root
        def visit_root(node)
          node.each { |c| accept(c) }
        end

        on Node::Definition::Directive => :visit_directive
        def visit_directive(node)
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
carbon-compiler-0.2.0 lib/carbon/compiler/visitor/generation.rb