class DaimonMarkdown::Parser

Constants

KEYWORDS

Attributes

args[R]
name[R]

Public Class Methods

new(src) click to toggle source
Calls superclass method
# File lib/daimon_markdown/parser.rb, line 17
def initialize(src)
  super
  @name = nil
  @args = []
  @level = 0
  @array = []
  @arrays = {}
end

Public Instance Methods

on_array(args) click to toggle source
# File lib/daimon_markdown/parser.rb, line 70
def on_array(args)
  if @level == 0
    @args << @arrays[0].first
  end
end
on_command(name, *args) click to toggle source
# File lib/daimon_markdown/parser.rb, line 30
def on_command(name, *args)
  @name = name
end
on_const(name) click to toggle source
# File lib/daimon_markdown/parser.rb, line 62
def on_const(name)
  @args << Object.const_get(name)
end
on_fcall(name) click to toggle source
# File lib/daimon_markdown/parser.rb, line 34
def on_fcall(name)
  @name = name
end
on_float(value) click to toggle source
# File lib/daimon_markdown/parser.rb, line 54
def on_float(value)
  if @level == 0
    @args << value.to_f
  else
    @arrays[@level] << value.to_f
  end
end
on_int(value) click to toggle source
# File lib/daimon_markdown/parser.rb, line 46
def on_int(value)
  if @level == 0
    @args << value.to_i
  else
    @arrays[@level] << value.to_i
  end
end
on_kw(keyword) click to toggle source
# File lib/daimon_markdown/parser.rb, line 66
def on_kw(keyword)
  @args << KEYWORDS[keyword]
end
on_lbracket(*args) click to toggle source
# File lib/daimon_markdown/parser.rb, line 76
def on_lbracket(*args)
  if @level == 0
    @arrays[0] = []
  end
  @level += 1
  @arrays[@level] = []
end
on_parse_error(message) click to toggle source
# File lib/daimon_markdown/parser.rb, line 89
def on_parse_error(message)
  compile_error(message)
end
on_rbracket(*args) click to toggle source
# File lib/daimon_markdown/parser.rb, line 84
def on_rbracket(*args)
  @arrays[@level - 1] << @arrays[@level]
  @level -= 1
end
on_tstring_content(content) click to toggle source
# File lib/daimon_markdown/parser.rb, line 38
def on_tstring_content(content)
  if @level == 0
    @args << content
  else
    @arrays[@level] << content
  end
end
on_vcall(name) click to toggle source
# File lib/daimon_markdown/parser.rb, line 26
def on_vcall(name)
  @name = name
end

Private Instance Methods

compile_error(message) click to toggle source
# File lib/daimon_markdown/parser.rb, line 95
def compile_error(message)
  raise Error, message
end