// public List<string> VisitFunctionArguments(DensityExpressionGrammarParser.FunctionArgumentsContext ctx) // { // var argumentList = new List<string>(); // if (ctx != null) // { // for (var i = 0; i < ctx.strVariable().Length; i++) { // var tmpArgument = ctx.strVariable(i).GetText(); // argumentList.Add(tmpArgument); // } // } // return argumentList; // } virtual public IDensity <G, M, RF> VisitTerm(DensityExpressionGrammarParser.TermContext ctx) { var density = VisitFactor(ctx.factor(0)); for (var i = 1; i < ctx.factor().Length; i++) { var isMult = ctx.TIMES(i - 1) != null; var isDiv = ctx.DIV(i - 1) != null; var tmpDensity = VisitFactor(ctx.factor(i)); if (isMult) { density = density.Multiply(tmpDensity); } else if (isDiv) { density = density.Divide(tmpDensity); } else { throw new NotImplementedException(); } } return(density); }
/// <summary> /// Exit a parse tree produced by <see cref="DensityExpressionGrammarParser.term"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitTerm([NotNull] DensityExpressionGrammarParser.TermContext context) { }