lib/MissMatch.js
function stage1(AST) {
    if(hasNext()) {
      switch (peek()) {
        case 'a':
          parseArray(AST);
          break;
        case 'o':
          parseObject(AST);
          break;
        default:
          if (/[nsSbfdr_]/.test(peek())) {
            parseGeneric(AST,peek());
          } else {
            unexpectedTokenException('one of (a,o,n,s,S,b,f,d,r,_)');
          }         
      }
    }
    return AST;
  }
function stage1(AST) {
    if(hasNext()) {
      switch (peek()) {
        case 'a':
          parseArray(AST);
          break;
        case 'o':
          parseObject(AST);
          break;
        default:
          if (/[nsSbfdr_]/.test(peek())) {
            parseGeneric(AST,peek());
          } else {
            unexpectedTokenException('one of (a,o,n,s,S,b,f,d,r,_)');
          }         
      }
    }
    return AST;
  }
Parser entry point