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