diff --git a/.gitignore b/.gitignore index 9d49b46..c2aca8b 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,4 @@ pkg Gemfile.lock lib/oga/lexer.rb -lib/oga/parser/html.rb +lib/oga/parser.rb diff --git a/lib/oga/parser.rb b/lib/oga/parser.rb deleted file mode 100644 index 531a395..0000000 --- a/lib/oga/parser.rb +++ /dev/null @@ -1,254 +0,0 @@ -# -# DO NOT MODIFY!!!! -# This file is automatically generated by Racc 1.4.11 -# from Racc grammer file "". -# - -require 'racc/parser.rb' -module Oga - class Parser < Racc::Parser - - - def initialize - @lexer = Lexer.new - end - - def reset - @lines = [] - @line = 1 - @column = 1 - end - - def s(type, *children) - return AST::Node.new( - type, - children.flatten, - :line => @line, - :column => @column - ) - end - - def next_token - type, value, line, column = @tokens.shift - - @line = line if line - @column = column if column - - return type ? [type, value] : [false, false] - end - - def on_error(type, value, stack) - name = token_to_str(type) - line_str = @lines[@line - 1] - indicator = '~' * (@column - 1) + '^' - - raise Racc::ParseError, <<-EOF.strip -Failed to parse the supplied input. - -Reason: unexpected #{name} with value #{value.inspect} -Location: line #{@line}, column #{@column} - -Offending code: - -#{line_str} -#{indicator} - -Current stack: - -#{stack.inspect} - EOF - end - - def parse(string) - @lines = string.lines - @tokens = @lexer.lex(string) - ast = do_parse - - reset - - return ast - end - -# vim: set ft=racc: -##### State transition tables begin ### - -racc_action_table = [ - 7, 7, 14, 11, 13, 9, 15, 16, 18, 19, - 20, nil, 6, 6 ] - -racc_action_check = [ - 0, 2, 9, 7, 8, 1, 11, 12, 16, 18, - 19, nil, 0, 2 ] - -racc_action_pointer = [ - -4, 5, -3, nil, nil, nil, nil, -12, -11, 2, - nil, 1, 3, nil, nil, nil, 2, nil, -6, 5, - nil ] - -racc_action_default = [ - -2, -16, -1, -4, -5, -6, -7, -16, -16, -16, - -3, -16, -16, -11, 21, -8, -16, -10, -16, -16, - -9 ] - -racc_goto_table = [ - 3, 1, 10, 2, 17, 12 ] - -racc_goto_check = [ - 3, 1, 3, 2, 7, 8 ] - -racc_goto_pointer = [ - nil, 1, 3, 0, nil, nil, nil, -8, -3, nil, - nil ] - -racc_goto_default = [ - nil, nil, nil, nil, 4, 5, 8, nil, nil, nil, - nil ] - -racc_reduce_table = [ - 0, 0, :racc_error, - 1, 18, :_reduce_1, - 0, 18, :_reduce_2, - 2, 19, :_reduce_3, - 1, 19, :_reduce_4, - 1, 20, :_reduce_none, - 1, 20, :_reduce_none, - 1, 22, :_reduce_7, - 3, 23, :_reduce_8, - 4, 24, :_reduce_none, - 3, 21, :_reduce_10, - 1, 25, :_reduce_none, - 2, 26, :_reduce_none, - 1, 26, :_reduce_none, - 1, 27, :_reduce_none, - 1, 27, :_reduce_none ] - -racc_reduce_n = 16 - -racc_shift_n = 21 - -racc_token_table = { - false => 0, - :error => 1, - :T_SPACE => 2, - :T_NEWLINE => 3, - :T_SMALLER => 4, - :T_GREATER => 5, - :T_SLASH => 6, - :T_DQUOTE => 7, - :T_SQUOTE => 8, - :T_DASH => 9, - :T_RBRACKET => 10, - :T_LBRACKET => 11, - :T_COLON => 12, - :T_BANG => 13, - :T_EQUALS => 14, - :T_TEXT => 15, - :T_DOCTYPE => 16 } - -racc_nt_base = 17 - -racc_use_result_var = false - -Racc_arg = [ - racc_action_table, - racc_action_check, - racc_action_default, - racc_action_pointer, - racc_goto_table, - racc_goto_check, - racc_goto_default, - racc_goto_pointer, - racc_nt_base, - racc_reduce_table, - racc_token_table, - racc_shift_n, - racc_reduce_n, - racc_use_result_var ] - -Racc_token_to_s_table = [ - "$end", - "error", - "T_SPACE", - "T_NEWLINE", - "T_SMALLER", - "T_GREATER", - "T_SLASH", - "T_DQUOTE", - "T_SQUOTE", - "T_DASH", - "T_RBRACKET", - "T_LBRACKET", - "T_COLON", - "T_BANG", - "T_EQUALS", - "T_TEXT", - "T_DOCTYPE", - "$start", - "document", - "expressions", - "expression", - "tag", - "doctype", - "tag_start", - "tag_end", - "tag_body", - "whitespaces", - "whitespace" ] - -Racc_debug_parser = false - -##### State transition tables end ##### - -# reduce 0 omitted - -def _reduce_1(val, _values) - s(:document, val[0]) -end - -def _reduce_2(val, _values) - s(:document) -end - -def _reduce_3(val, _values) - val.compact -end - -def _reduce_4(val, _values) - val[0] -end - -# reduce 5 omitted - -# reduce 6 omitted - -def _reduce_7(val, _values) - s(:doctype, val[0]) -end - -def _reduce_8(val, _values) - val[1] -end - -# reduce 9 omitted - -def _reduce_10(val, _values) - s(:element, val[0], val[1]) - -end - -# reduce 11 omitted - -# reduce 12 omitted - -# reduce 13 omitted - -# reduce 14 omitted - -# reduce 15 omitted - -def _reduce_none(val, _values) - val[0] -end - - end # class Parser - end # module Oga