/** * Handle a union between a closed statement and a residual property chain. * @param node * @return */ protected ASTNode handleUnion(ASTNode node) { if (cursor != length) { skipWhitespace(); int union = -1; switch (expr[cursor]) { case '.': union = cursor + 1; break; case '[': union = cursor; } if (union != -1) { captureToEOT(); return lastNode = new Union(expr, union, cursor, fields, node); } } return lastNode = node; }
/** * Handle a union between a closed statement and a residual property chain. * * @param node an ast node * @return ASTNode */ protected ASTNode handleUnion(ASTNode node) { if (cursor != end) { skipWhitespace(); int union = -1; if (cursor < end) { switch (expr[cursor]) { case '.': union = cursor + 1; break; case '[': union = cursor; } } if (union != -1) { captureToEOT(); return lastNode = new Union(expr, union, cursor - union, fields, node, pCtx); } } return lastNode = node; }
/** * Handle a union between a closed statement and a residual property chain. * * @param node an ast node * @return ASTNode */ protected ASTNode handleUnion(ASTNode node) { if (cursor != end) { skipWhitespace(); int union = -1; if (cursor < end) { switch (expr[cursor]) { case '.': union = cursor + 1; break; case '[': union = cursor; } } if (union != -1) { captureToEOT(); return lastNode = new Union(expr, union, cursor - union, fields, node, pCtx); } } return lastNode = node; }
if (cursor < end && !lastNonWhite(']')) captureToEOT(); egressType, pCtx); st = cursor; captureToEOT(); return lastNode = new Union(expr, st + 1, cursor, fields, lastNode, pCtx); captureToEOT(); end = cursor; skipWhitespace(); captureToEOT(); captureToEOT(); captureToEOT(); return new Sign(expr, st, cursor - st, fields, pCtx); cursor - st - 2, fields, pCtx); if (expr[st = cursor] == '.') st++; captureToEOT(); return lastNode = new Union(expr, st = trimRight(st), cursor - st, fields, lastNode, pCtx); captureToEOT(); && isDigit(expr[cursor])) { st = cursor; captureToEOT();
if (cursor < end && !lastNonWhite(']')) captureToEOT(); egressType, pCtx); st = cursor; captureToEOT(); return lastNode = new Union(expr, st + 1, cursor, fields, lastNode, pCtx); captureToEOT(); end = cursor; skipWhitespace(); captureToEOT(); captureToEOT(); captureToEOT(); return new Sign(expr, st, cursor - st, fields, pCtx); cursor - st - 2, fields, pCtx); if (expr[st = cursor] == '.') st++; captureToEOT(); return lastNode = new Union(expr, st = trimRight(st), cursor - st, fields, lastNode, pCtx); captureToEOT(); && isDigit(expr[cursor])) { st = cursor; captureToEOT();
if (cursor < length && !lastNonWhite(']')) captureToEOT(); lastNode = new InlineCollectionNode(expr, start, start = cursor, fields, egressType, pCtx); captureToEOT(); return lastNode = new Union(expr, start + 1, cursor, fields, lastNode); captureToEOT(); end = cursor; skipWhitespace(); captureToEOT(); captureToEOT(); captureToEOT(); return new Sign(expr, start, cursor, fields, pCtx); cursor - start - 2), fields, pCtx); if (expr[start = cursor] == '.') start++; captureToEOT(); return lastNode = new Union(expr, trimRight(start), cursor, fields, lastNode); && isDigit(expr[cursor])) { start = cursor; captureToEOT(); return lastNode = new Invert(subset(expr, start, cursor - start), fields, pCtx);