class Orenono::Core

Orenono Core

Constants

ORENONO_FILE
ORENONO_TEMPLATE

Public Instance Methods

bf_to_your_syntax(file) click to toggle source

Convert Brainf*ck default syntax to your Orenonofile syntax

# File lib/orenono_core.rb, line 60
def bf_to_your_syntax(file)
  dsl = read_dsl
  code = read_code(file)
  config = dsl.orenono
  convert(code, config.default_syntaxes, config.syntaxes)
end
execute(file) click to toggle source

Execute brain f**k

# File lib/orenono_core.rb, line 52
def execute(file)
  dsl = read_dsl
  code = read_code(file)
  ob = Orenono::Brain.new(dsl.orenono, code)
  ob.run
end
generate_code_from_ascii_text(ascii_text) click to toggle source

Generate Brainf*ck code from ascii code text. If you create original syntax in Orenonofile, output syntax is your syntax.

# File lib/orenono_core.rb, line 69
def generate_code_from_ascii_text(ascii_text)
  config = read_dsl.orenono
  Generator.generate(ascii_text, config)
end
init() click to toggle source

Generate Orenonofile to current directory.

# File lib/orenono_core.rb, line 47
def init
  File.open(ORENONO_FILE, 'w') { |f|f.puts ORENONO_TEMPLATE }
end

Private Instance Methods

convert(src, from_syntaxes, to_syntaxes) click to toggle source
# File lib/orenono_core.rb, line 76
def convert(src, from_syntaxes, to_syntaxes)
  from_syntaxes.each_with_index do |syntax, i|
    src = src.gsub(syntax, to_syntaxes[i])
  end
  src
end
read_code(file) click to toggle source
# File lib/orenono_core.rb, line 83
def read_code(file)
  File.open(file, 'r:utf-8') { |f|f.read }
end
read_dsl() click to toggle source
# File lib/orenono_core.rb, line 87
def read_dsl
  src = File.open(ORENONO_FILE) { |f|f.read } if File.exist?(ORENONO_FILE)
  dsl = Orenono::Dsl.new
  dsl.instance_eval src if File.exist?(ORENONO_FILE)
  dsl
end