Exemplo n.º 1
0
        virtual public IDensity <G, M, RF> VisitAtom(DensityExpressionGrammarParser.AtomContext ctx)
        {
            var isNumber       = ctx.number() != null;
            var isVariable     = ctx.variable() != null;
            var isDensity      = ctx.LPAREN() != null;
            var isMultiDensity = ctx.multiDensityList() != null;

            IDensity <G, M, RF> density;

            if (isNumber)
            {
                density = VisitNumber(ctx.number());
            }
            else if (isVariable)
            {
                var vDensity = VisitVariable(ctx.variable());
                density = vDensity;
            }
            else if (isDensity)
            {
                density = VisitDensity(ctx.density());
            }
            else if (isMultiDensity)
            {
                density = VisitMultiDensity(ctx.multiDensityList());
            }
            else
            {
                throw new NotImplementedException();
            }
            return(density);
        }
Exemplo n.º 2
0
 /// <summary>
 /// Exit a parse tree produced by <see cref="DensityExpressionGrammarParser.atom"/>.
 /// <para>The default implementation does nothing.</para>
 /// </summary>
 /// <param name="context">The parse tree.</param>
 public virtual void ExitAtom([NotNull] DensityExpressionGrammarParser.AtomContext context)
 {
 }