Backtracking Parser in JavaScript