# 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