virtual public IDensity <G, M, RF> VisitDensity(DensityExpressionGrammarParser.DensityContext ctx) { var isFunction = false; // var isFunction = ctx.functionName() != null; if (isFunction) { throw new NotImplementedException(); // var functionName = ctx.functionName().GetText(); // var functionArguments = VisitFunctionArguments(ctx.functionArguments()); // return ParseDensityFunction(functionName, functionArguments.ToArray()); } else { var density = VisitTerm(ctx.term(0)); for (var i = 1; i < ctx.term().Length; i++) { var isPlus = ctx.PLUS(i - 1) != null; var isMinus = ctx.MINUS(i - 1) != null; var tmpDensity = VisitTerm(ctx.term(i)); if (isPlus) { density = density.Add(tmpDensity); } else if (isMinus) { density = density.Subtract(tmpDensity); } else { throw new NotImplementedException(); } } return(density); } }
/// <summary> /// Exit a parse tree produced by <see cref="DensityExpressionGrammarParser.density"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitDensity([NotNull] DensityExpressionGrammarParser.DensityContext context) { }