class Bchess::PGN::Parser
Attributes
error[R]
input[R]
output[R]
tree[R]
Public Class Methods
new(input)
click to toggle source
# File lib/pgn/parser.rb, line 13 def initialize(input) @input = input end
Public Instance Methods
parse()
click to toggle source
# File lib/pgn/parser.rb, line 17 def parse if input.is_a?(String) @tree = @@parser.parse(input) elsif input.is_a?(Bchess::PGN::PGNFile) @tree = @@parser.parse(input.load_games) end unless tree raise PGN::ParserException, "Parse error at offset: #{@@parser.index}" end sanitize_tree(tree) end
Private Instance Methods
sanitize_tree(root_node)
click to toggle source
# File lib/pgn/parser.rb, line 33 def sanitize_tree(root_node) root_elements = root_node.elements return unless root_elements root_elements.delete_if { |node| node.class.name == 'Treetop::Runtime::SyntaxNode' } root_elements.each { |node| sanitize_tree(node) } end