public override int VisitCondition_expression([NotNull] GrammarParser.Condition_expressionContext context) { if (context.Bool() != null) { AddLIT(BoolToInt(context.Bool().GetText())); return(1); } Visit(context.condition_item()[0]); Visit(context.condition_item()[1]); //TODO takhle to funguje jen pro int a boolean... double se takhle jednoduse neporovna... switch (context.Operator_condition().GetText()) { case "==": AddOPR(Instruction.EQ); break; case "!=": AddOPR(Instruction.NEQ); break; case "<": AddOPR(Instruction.LESS); break; case "<=": AddOPR(Instruction.LEQ); break; case ">": AddOPR(Instruction.GREATER); break; case ">=": AddOPR(Instruction.GEQ); break; } return(2); }
/// <summary> /// Exit a parse tree produced by <see cref="GrammarParser.condition_expression"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitCondition_expression([NotNull] GrammarParser.Condition_expressionContext context) { }
/// <summary> /// Visit a parse tree produced by <see cref="GrammarParser.condition_expression"/>. /// <para> /// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/> /// on <paramref name="context"/>. /// </para> /// </summary> /// <param name="context">The parse tree.</param> /// <return>The visitor result.</return> public virtual Result VisitCondition_expression([NotNull] GrammarParser.Condition_expressionContext context) { return(VisitChildren(context)); }