/// <summary> /// The visit subroutine for multiplication and division operators. /// </summary> public override VisitorResult VisitMultExp([NotNull] HaskellmmParser.MultExpContext context) { if (context.children.Count < 3) { throw new VisitException(context.Start.Line, context.Start.Column, "Expected expr (+/-) expr"); } MultOperation operation; switch (context.children[1].GetText()) { case "*": operation = MultOperation.Multiply; break; case "/": operation = MultOperation.Divide; break; default: throw new VisitException(context.Start.Line, context.Start.Column, "Operator was neither * or /"); } AddExprNode(new MultNode(CreateNodeContext(context), operation)); return(base.VisitMultExp(context)); }
/// <summary> /// Visit a parse tree produced by the <c>multExp</c> /// labeled alternative in <see cref="HaskellmmParser.expr"/>. /// <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 VisitMultExp([NotNull] HaskellmmParser.MultExpContext context) { return(VisitChildren(context)); }
/// <summary> /// Exit a parse tree produced by the <c>multExp</c> /// labeled alternative in <see cref="HaskellmmParser.expr"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitMultExp([NotNull] HaskellmmParser.MultExpContext context) { }