Esempio n. 1
0
        private void Visit(AST_Node expression)
        {
            if (expression is BinaryExpression operatorExpression)
            {
                EvaluateBinaryExpression(operatorExpression);
                return;
            }
            else if (expression is UnaryExpression unaryExpression)
            {
                EvaluateUnaryExpression(unaryExpression);
                return;
            }
            else if (expression is LiteralExpression literalExpression)
            {
                EvaluateLiteralExpression(literalExpression);
                return;
            }
            else if (expression is IdentifierExpression identifierExpression)
            {
                EvaluateIdentifierExpression(identifierExpression);
                return;
            }

            _printer.Print(Run.Yellow($"???-{expression.ID}"));
        }
Esempio n. 2
0
        public static void DFS(AST_Node a, int level = 0)
        {
            if (a == null)
            {
                return;
            }
            for (int i = 0; i < level; i++)
            {
                Console.Write("-");
            }
            Console.Write(":");

            Console.WriteLine("< {0} {1}", a.GetType().ToString(), a.ToString());

            foreach (var item in a.Children)
            {
                DFS(item, level + 1);
            }

            for (int i = 0; i < level; i++)
            {
                Console.Write("-");
            }
            Console.Write(":");

            Console.WriteLine("> {0} {1}", a.GetType().ToString(), a.ToString());
        }
Esempio n. 3
0
 public string Visit(AST_Node node)
 {
     foreach (var item in node.Children)
     {
         item?.Visit(this);
     }
     return("");
 }
Esempio n. 4
0
 public bool Visit(AST_Node node)
 {
     throw new NotImplementedException();
 }
 public AST_GlobalVariable(AST_Node parent, string input, int charIndex) : base(parent, input, charIndex)
 {
 }
Esempio n. 6
0
 public Builder_AST(string translatedInput)
 {
     head = new AST_Program(translatedInput, 0);
 }
Esempio n. 7
0
 public void Print(AST_Node expression)
 {
     Visit(expression);
 }
Esempio n. 8
0
 public AST_Logic(AST_Node parent, string input, int charIndex) : base(parent, input, charIndex)
 {
 }
Esempio n. 9
0
 Base_Object_Value IASTVisitor <Base_Object_Value> .Visit(AST_Node node)
 {
     throw new NotImplementedException();
 }
Esempio n. 10
0
 public Base_Object_Value Visit(AST_Node node)
 {
     throw new Exception("Alguien no sabe como llamarse con el tipo correcto " + node.GetType().ToString());
 }
 //Use only when creating global variables in low-level languages
 public AST_Variable(AST_Node parent, string type, string data) : base(parent, "int32 a", -1)
 {
     this.parent   = parent;
     this.dataType = CodeBlocks.ParameterType.GetParameterType(type);
     this.data     = data;
 }
Esempio n. 12
0
 //Not used
 public void SetBase(AST_Node newBase)
 {
     exp_Base = newBase;
 }