Ejemplo n.º 1
0
        public override Calc_node VisitNode([NotNull] CalcParser.NodeContext context)
        {
            Value_node node = new Value_node();
            string     text = context.GetText();

            if (text.ToLower() == "pi" || text == "π")
            {
                node.isint   = false;
                node.fresult = Math.PI;
            }
            else if (text.ToLower() == "e")
            {
                node.isint   = false;
                node.fresult = Math.E;
            }
            else
            {
                try
                {
                    node.isint  = true;
                    node.result = Convert.ToInt32(text);
                }
                catch
                {
                    node.isint   = false;
                    node.fresult = Convert.ToDouble(text);
                }
            }
            return(node);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Visit a parse tree produced by <see cref="CalcParser.node"/>.
 /// <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 VisitNode([NotNull] CalcParser.NodeContext context)
 {
     return(VisitChildren(context));
 }
 /// <summary>
 /// Exit a parse tree produced by <see cref="CalcParser.node"/>.
 /// <para>The default implementation does nothing.</para>
 /// </summary>
 /// <param name="context">The parse tree.</param>
 public virtual void ExitNode([NotNull] CalcParser.NodeContext context)
 {
 }