# File lib/math_ml/latex.rb, line 197 def parse(src) @scanner = Scanner.new(src) until @scanner.eos? unless @scanner.scan_command @scanner.scan_space raise parse_error("Syntax error.") end case @scanner[1] when "newcommand" parse_newcommand when "newenvironment" parse_newenvironment else raise parse_error("Syntax error.", @scanner.matched) end end rescue BlockNotClosed => e raise parse_error("Block not closed.") rescue OptionNotClosed => e raise parse_error("Option not closed.") end