/// <summary> /// Visit a parse tree produced by <see cref="Z80EvalParser.unaryExpr"/>. /// <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 override object VisitUnaryExpr(Z80EvalParser.UnaryExprContext context) { if (IsInvalidContext(context)) { return(null); } if (context.unaryExpr() != null) { var unaryExpr = (ExpressionNode)VisitUnaryExpr(context.unaryExpr()); if (unaryExpr == null) { return(null); } var op = context.GetChild(0).GetText(); switch (op) { case "+": return(new UnaryPlusNode() { Operand = unaryExpr }); case "-": return(new UnaryMinusNode() { Operand = unaryExpr }); case "~": return(new UnaryBitwiseNotNode() { Operand = unaryExpr }); case "!": return(new UnaryLogicalNotNode() { Operand = unaryExpr }); } } if (context.literalExpr() != null) { return(VisitLiteralExpr(context.literalExpr())); } if (context.z80Spec() != null) { return(VisitZ80Spec(context.z80Spec())); } return(context.symbolExpr() != null ? VisitSymbolExpr(context.symbolExpr()) : VisitExpr(context.GetChild(1) as Z80EvalParser.ExprContext)); }
/// <summary> /// Visit a parse tree produced by <see cref="Z80EvalParser.unaryExpr"/>. /// <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 VisitUnaryExpr([NotNull] Z80EvalParser.UnaryExprContext context) { return(VisitChildren(context)); }
/// <summary> /// Exit a parse tree produced by <see cref="Z80EvalParser.unaryExpr"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitUnaryExpr([NotNull] Z80EvalParser.UnaryExprContext context) { }