lib/qlang.rb in qlang-0.0.27180000 vs lib/qlang.rb in qlang-0.0.27182000

- old
+ new

@@ -1,53 +1,50 @@ # Use Dydx -> https://github.com/gogotanaka/dydx require 'dydx' include Dydx require "qlang/version" +require 'qlang/utils/ruby_ext' require 'qlang/lexer' require 'qlang/parser' require 'qlang/exec' require 'qlang/iq' require 'kconv' require 'matrix' +require 'yaml' +require 'singleton' module Qlang - # compiles into R as default. - $type = :R + class MetaInfo + include Singleton + attr_accessor :lang, :opts + def _load + # compiles into R as default. + lang = :r + end + end + $meta_info = MetaInfo.instance + + LANGS_HASH = YAML.load_file("./lib/qlang/utils/langs.yml")['langs'] + class << self def compile(str) lexed = Lexer.execute(str) Kconv.tosjis(Parser.execute(lexed)) end - def to_ruby - $type = :Ruby - Qlang + LANGS_HASH.keys.each do |lang_name| + define_method("to_#{lang_name}") do |*opts| + $meta_info.lang = lang_name.to_sym + $meta_info.opts = opts + Qlang + end end - def to_r - $type = :R - Qlang - end - - def to_haskell - $type = :Hskl - Qlang - end - - def to_scala - $type = :Scla - Qlang - end - - def to_java - $type = :Scla - Qlang - end end end # Make alias as Q Q = Qlang