Exemple #1
0
        // 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);
        }
Exemple #2
0
 /// <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)
 {
 }