Ejemplo n.º 1
0
    public override object VisitBodyAssignVariable(FaParser.BodyAssignVariableContext context)
    {
        string     id       = context.ID().GetText();
        object     value    = VisitExpression(context.expression());
        MyVariable var      = new MyVariable(id, getType(value), value);
        object     varExist = ExistInLast(id);

        if (varExist != null)
        {
            if (!(varExist is MyFunction))
            {
                queue.Last()[id] = var;
            }
            else
            {
                Debug.LogError("Este identificador ya ha sido asignado a una funcion");
                // Console.WriteLine("Este identificador ya ha sido asignado a una funcion");
                MyConsole.main.AppendText("Este identificador ya ha sido asignado a una funcion");
            }
        }
        else
        {
            queue.Last().Add(id, var);
        }
        return(null);
    }
Ejemplo n.º 2
0
 /// <summary>
 /// Visit a parse tree produced by the <c>bodyAssignVariable</c>
 /// labeled alternative in <see cref="FaParser.body"/>.
 /// <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 VisitBodyAssignVariable([NotNull] FaParser.BodyAssignVariableContext context)
 {
     return(VisitChildren(context));
 }