Expression XreadExplicitRowValueConstructorOrNull ( ) { Expression e ; switch ( token . tokenType ) { case Tokens . OPENBRACKET : { read ( ) ; int position = getPosition ( ) ; int brackets = readOpenBrackets ( ) ; switch ( token . tokenType ) { case Tokens . TABLE : case Tokens . VALUES : case Tokens . SELECT : rewind ( position ) ; SubQuery sq = XreadSubqueryBody ( false , OpTypes . ROW_SUBQUERY ) ; readThis ( Tokens . CLOSEBRACKET ) ; return new Expression ( OpTypes . ROW_SUBQUERY , sq ) ; default : rewind ( position ) ; e = XreadRowElementList ( true ) ; readThis ( Tokens . CLOSEBRACKET ) ; return e ; } } case Tokens . ROW : { read ( ) ; readThis ( Tokens . OPENBRACKET ) ; e = XreadRowElementList ( false ) ; readThis ( Tokens . CLOSEBRACKET ) ; return e ; } } return null ; }
must be called in conjusnction with <parenthesized ..