public static ExprTimePeriod timePeriodGetExprAllParams(EsperEPL2GrammarParser.TimePeriodContext ctx, Map<Tree, ExprNode> astExprNodeMap, VariableService variableService, StatementSpecRaw spec) {
ExprNode nodes[] = new ExprNode[8];
for (int i = 0; i < ctx.getChildCount(); i++) {
ParseTree unitRoot = ctx.getChild(i);
ExprNode valueExpr;
if (ASTUtil.isTerminatedOfType(unitRoot.getChild(0), EsperEPL2GrammarLexer.IDENT)) {
String ident = unitRoot.getChild(0).getText();
valueExpr = ASTExprHelper.resolvePropertyOrVariableIdentifier(ident, variableService, spec);
}
else {
final AtomicReference<ExprNode> ref = new AtomicReference<ExprNode>();
ExprAction action = new ExprAction() {
public void found(ExprNode exprNode, Map<Tree, ExprNode> astExprNodeMap, Tree node) {
astExprNodeMap.remove(node);
ref.set(exprNode);
}
};
ASTExprHelper.recursiveFindRemoveChildExprNode(unitRoot.getChild(0), astExprNodeMap, action);
valueExpr = ref.get();
}
if (ASTUtil.getRuleIndexIfProvided(unitRoot) == EsperEPL2GrammarParser.RULE_millisecondPart) {
nodes[7] = valueExpr;