function parse(input) {
		return grammar.main(input, 0);
	}
Parser

The parser is responsible for taking a list of tokens to return an abstract
syntax tree of a JavaScript file using the Moon View Language. It is built
up of smaller parsers, which each take an input and a start index. They
either return a parser node and an end index signifying the consumed input
or a parser error.

@param {string} input
@returns {object} abstract syntax tree and end index or ParseError