added location object to all ast nodes, with start, end, range offset and source added two more modes to the parser as well: ast and lintableJavascript. Ast exposes the AST of the parser as the result of the parse. Lintablejavascript returns a string that you can lint where the positions of the javascript blocks correlate with the source file so source line and column numbers are useful. Also changed the methodology for calculating line numbers to one other parsers use i.e. esprima. The current methodology was remember what position we are at and the line number there and then calculate the line numbers from that position on, this works great but the larger the input the longer it takes, especially when calculating the end line and column numbers. The new methodology is to keep track of new lines when they occur, this is stored in an array with the position of the newline as the index, when given a position we check against the array if there is a new line at that position if not we increment a column counter and decrement the position. The difference is now we are only calculating the column, the line is a product of the parse method.