class Daimon::Markdown::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 18
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 71
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 31
def on_command(name, *args)
  @name = name
end
on_const(name) click to toggle source
# File lib/daimon/markdown/parser.rb, line 63
def on_const(name)
  @args << Object.const_get(name)
end
on_fcall(name) click to toggle source
# File lib/daimon/markdown/parser.rb, line 35
def on_fcall(name)
  @name = name
end
on_float(value) click to toggle source
# File lib/daimon/markdown/parser.rb, line 55
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 47
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 67
def on_kw(keyword)
  @args << KEYWORDS[keyword]
end
on_lbracket(*args) click to toggle source
# File lib/daimon/markdown/parser.rb, line 77
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 90
def on_parse_error(message)
  compile_error(message)
end
on_rbracket(*args) click to toggle source
# File lib/daimon/markdown/parser.rb, line 85
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 39
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 27
def on_vcall(name)
  @name = name
end

Private Instance Methods

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