Search in sources :

Example 1 with ExprConditionalOperator

use of org.csstudio.autocomplete.parser.engine.expr.ExprConditionalOperator in project yamcs-studio by yamcs.

the class ExprParser method parseConditionalOperator.

private void parseConditionalOperator(ExprToken token, ExprLexer lexer) throws ExprException, IOException {
    Expr c = current;
    current = null;
    ExprToken e = null;
    ExprConditionalOperator co = new ExprConditionalOperator(c, null, null);
    while ((e = lexer.next()) != null) {
        if (e.type.equals(ExprTokenType.Colon)) {
            if ((e = lexer.next()) != null) {
                current = null;
                parseToken(lexer, e);
                co.setValueIfFalse(current == null ? new ExprMissing() : current);
            } else {
                co.setValueIfFalse(new ExprMissing());
            }
            break;
        } else {
            parseToken(lexer, e);
            co.setValueIfTrue(current == null ? new ExprMissing() : current);
        }
    }
    setValue(co);
}
Also used : Expr(org.csstudio.autocomplete.parser.engine.expr.Expr) ExprConditionalOperator(org.csstudio.autocomplete.parser.engine.expr.ExprConditionalOperator) ExprMissing(org.csstudio.autocomplete.parser.engine.expr.ExprMissing)

Aggregations

Expr (org.csstudio.autocomplete.parser.engine.expr.Expr)1 ExprConditionalOperator (org.csstudio.autocomplete.parser.engine.expr.ExprConditionalOperator)1 ExprMissing (org.csstudio.autocomplete.parser.engine.expr.ExprMissing)1