class SMF::MML

Public Class Methods

new(sq) click to toggle source
# File lib/smf/toy/macro/mml.rb, line 10
def initialize(sq)
  @sq = sq << Track.new
  @list = []
end

Public Instance Methods

<<(s) click to toggle source
# File lib/smf/toy/macro/mml.rb, line 15
def << (s) @list << s << "\n" end
generate() click to toggle source
# File lib/smf/toy/macro/mml.rb, line 17
def generate
  so = @list.join
  sh = Sheet.new(@sq)
  de = Descripter.new(sh)
  pa = MMLParser.new
  ev = MMLEvaluator.new(de)
  begin
    st = pa.parse(so)
    ev.evaluate(st)
    sh.generate
  rescue ParseError
    raise ParseError, format('%d: syntax error', pa.lineno)
  end
end