class FifthedSim::Compiler

Public Class Methods

compile(str) click to toggle source
# File lib/fifthed_sim/compiler.rb, line 12
def self.compile(str)
  tree = self.parse(str)
  transformed = Transform.new.apply(tree)
  if transformed.is_a? DiceExpression
    transformed
  else
    raise TransformError.new(transformed)
  end
end
parse(str) click to toggle source
# File lib/fifthed_sim/compiler.rb, line 3
def self.parse(str)
  begin
    Parser.new.parse(str)
  rescue Parslet::ParseFailed => e
    msg = e.message
    raise CompileError.new(e)
  end
end