プログラミング言語 Grass の Ruby 1.9 による処理系です。 # parse A, L = Struct.new(:m, :n), Struct.new(:code) code = File.read(ARGV[0]) code = code.gsub("\uFF37", "W").gsub("\uFF57", "w").gsub("\uFF56", "v") code = code.gsub(/[^wWv]/, "") code = code[/w.*\z/m].split(/v/).map do |sub| sub = sub.scan(/w+|W+/) arity = sub.first[0] == "w" ? sub.shift.size : 0 sub = sub.each_slice(2).map {|n, m| A[n.size - 1, m.size - 1]