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;
  }
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
Parser entry point