public override Polynom VisitAddend(PolynomialParser.AddendContext context) { var polynom = new Polynom(); var coefficientContext = context.coefficient(); if (coefficientContext is null) { var power = context.INT(); if (power is null) { polynom.Monoms.Add(new Monom { Coefficient = 1, Variable = context.VAR().GetText(), Power = 1 }); } else { polynom.Monoms.Add(new Monom { Coefficient = 1, Variable = context.VAR().GetText(), Power = int.Parse(power.GetText()) }); } } else { var coefficient = coefficientContext.GetText(); var power = context.INT(); if (power is null) { polynom.Monoms.Add(new Monom { Coefficient = double.Parse(coefficient), Variable = context.VAR().GetText(), Power = 1 }); } else { polynom.Monoms.Add(new Monom { Coefficient = double.Parse(coefficient), Variable = context.VAR().GetText(), Power = int.Parse(power.GetText()) }); } } AdjustCoefficientIfSignIsSub(polynom.Monoms.First(), context.SIGN()?.GetText()); return(polynom); }
/// <summary> /// Exit a parse tree produced by the <c>addend</c> /// labeled alternative in <see cref="PolynomialParser.monomial"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitAddend([NotNull] PolynomialParser.AddendContext context) { }
/// <summary> /// Visit a parse tree produced by the <c>addend</c> /// labeled alternative in <see cref="PolynomialParser.monomial"/>. /// <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 VisitAddend([NotNull] PolynomialParser.AddendContext context) { return(VisitChildren(context)); }