Skip to content

Instantly share code, notes, and snippets.

#!/usr/bin/env ruby
require 'logger'
require File.dirname(__FILE__) + '/grammar'
module DSL
class Parser
attr_accessor :pos
attr_reader :rules,:string
class ParseError < RuntimeError; end
require 'rubygems'
require 'parse_tree'
require 'sexp_processor'
require 'logger'
class ParseError < RuntimeError; end
class Parser
def initialize
@logger = Logger.new(STDOUT)
require 'rubygems'
require 'parse_tree'
require 'sexp_processor'
require 'logger'
class ParseError < RuntimeError; end
class Parser
def initialize
@logger = Logger.new(STDOUT)
require 'rubygems'
require 'parse_tree'
require 'sexp_processor'
require 'logger'
class ParseError < RuntimeError; end
class Parser
def initialize
@logger = Logger.new(STDOUT)
require 'rubygems'
require 'parse_tree'
require 'sexp_processor'
require 'logger'
class ParseError < RuntimeError; end
class Parser
def initialize
@logger = Logger.new(STDOUT)
require 'logger'
class ParseError < RuntimeError; end
class Parser
def initializee
@logger = Logger.new(STDOUT)
$rules = Hash.new
@start = nil
@tokens = ["+", "-", "*", "/"]
require 'logger'
class ParseError < RuntimeError; end
class Parser
def initializee
@logger = Logger.new(STDOUT)
$rules = Hash.new
@start = nil
@tokens = ["+", "-", "*", "/"]
#!/usr/bin/env ruby
require 'logger'
require File.dirname(__FILE__) + '/rules.rb'
class ParseError < RuntimeError; end
class Parser
def initialize
@logger = Logger.new(STDOUT)
@tokenize = Proc.new {|string| string.scan(/\w+/) }
#!/usr/bin/env ruby
$rules = {
## Identifiers
[:variable] => /^\w+(\s+)\=(\s+)(\")?\w+(\")?/,
## Board
[:board_start] => /^Board.start\(\d+\,\d+,\d+,\d+\)/,
[:board_xy] => /^Board\[\d+\,\d+\]/,
[:board_allcells] => /^Board\.all\_cells\(\)/,
#!/usr/bin/env ruby
require 'logger'
require File.dirname(__FILE__) + '/rules.rb'
class ParseError < RuntimeError; end
class Parser
def initialize
@logger = Logger.new(STDOUT)
@tokenize = Proc.new {|string| string.scan(/\w+/) }