Class: MLIR::Dialect::Ruby::PrismLoader

Inherits:
Object
  • Object
show all
Defined in:
lib/mlir/dialect/ruby/prism_loader.rb

Overview

convert ruby code to mlir via prism

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(program) ⇒ PrismLoader

Returns a new instance of PrismLoader.



146
147
148
149
150
# File 'lib/mlir/dialect/ruby/prism_loader.rb', line 146

def initialize(program)
  @prog = program
  @ast = Prism.parse(@prog)
  @visitor = PrismVisitor.new
end

Instance Attribute Details

#astObject (readonly)

Returns the value of attribute ast.



144
145
146
# File 'lib/mlir/dialect/ruby/prism_loader.rb', line 144

def ast
  @ast
end

#progObject (readonly)

Returns the value of attribute prog.



144
145
146
# File 'lib/mlir/dialect/ruby/prism_loader.rb', line 144

def prog
  @prog
end

#visitorObject (readonly)

Returns the value of attribute visitor.



144
145
146
# File 'lib/mlir/dialect/ruby/prism_loader.rb', line 144

def visitor
  @visitor
end

Instance Method Details

#to_moduleObject



152
153
154
155
156
157
# File 'lib/mlir/dialect/ruby/prism_loader.rb', line 152

def to_module
  @visitor.visit(@ast.value)
  # pp @ast.value
  # puts @visitor.stmts
  @visitor.stmts
end