Example #1
0
 public override void VisitVarDefNode(VarDefNode w)
 {
     foreach (var v in w.vars)
     {
         v.Visit(this);
     }
 }
 public override void VisitVarDefNode(VarDefNode w)
 {
     if (depth < 0)
     {
         ++opCnt;
     }
 }
Example #3
0
 public void Visit(VarDefNode node)
 {
     foreach (var subnode in node[0])
     {
         var variableName = subnode.AnchorToken.Lexeme;
         if (functionDepth)
         {
             if (localScopeSymbolTable.Contains(variableName))
             {
                 throw new SemanticError("Cannot duplicate variable declaration: " + variableName, subnode.AnchorToken);
             }
             localScopeSymbolTable.Add(variableName);
         }
         else
         {
             if (isFirstEncounter)
             {
                 if (globalScopeSymbolTable.Contains(variableName))
                 {
                     throw new SemanticError("Cannot duplicate variable declaration: " + variableName, subnode.AnchorToken);
                 }
                 else
                 {
                     globalScopeSymbolTable.Add(variableName);
                 }
             }
         }
         foreach (var subnode_of_subnode /* uwu */ in subnode)
         {
             Visit((dynamic)subnode_of_subnode);
         }
     }
 }
Example #4
0
 public override void VisitVarDefNode(VarDefNode w)
 {
     if (depth > 0)
     {
         Count += 1;
     }
 }
Example #5
0
 public override void VisitVarDefNode(VarDefNode w)
 {
     foreach (var v in w.vars)
     {
         vars[v.Name] = genc.DeclareLocal(typeof(int));
     }
 }
Example #6
0
 public override void VisitVarDefNode(VarDefNode w)
 {
     if (currCyc > 0)
     {
         opCnt++;
     }
     base.VisitVarDefNode(w);
 }
 public override void VisitVarDefNode(VarDefNode w)
 {
     foreach (var v in w.vars)
     {
         varDict.Add(v.Name, 0);
         v.Visit(this);
     }
 }
Example #8
0
        private VarInfo GetVar(VarDefNode node)
        {
            string name = node.VarName;

            var type = typeBuilder.Build(node.VarType);

            return(new MethodVarInfo(name, type, MethodVarType.Local));
        }
 public override void VisitVarDefNode(VarDefNode w)
 {
     Text += IndentStr() + "var " + w.vars[0].Name;
     for (int i = 1; i < w.vars.Count; i++)
     {
         Text += ',' + w.vars[i].Name;
     }
 }
Example #10
0
 public override void VisitVarDefNode(VarDefNode w)
 {
     Text.Append(IndentStr() + "var " + w.vars[0].Name);
     for (int i = 1; i < w.vars.Count; i++)
     {
         Text.Append(',' + w.vars[i].Name);
     }
     Text.Append(";");
 }
Example #11
0
 public override void VisitVarDefNode(VarDefNode w)
 {
     Text += IndentStr() + SymbolTable.TypeName(w.vars[0].Type) + " " + w.vars[0].Name;
     for (int i = 1; i < w.vars.Count; i++)
     {
         Text += ',' + w.vars[i].Name;
     }
     Text += ";";
 }
 public override void VisitVarDefNode(VarDefNode w)
 {
     Text += IndentStr() + "var ";
     Text += (w.vars[0].Name == from) ? to : w.vars[0].Name;
     for (int i = 1; i < w.vars.Count; i++)
     {
         Text += ',';
         Text += (w.vars[i].Name == from) ? to : w.vars[i].Name;
     }//w.vars[i].Name;
 }
        public Node VarDef()
        {
            var node = new VarDefNode()
            {
                AnchorToken = Expect(TokenCategory.VAR)
            };

            node.Add(IdList());
            Expect(TokenCategory.SEMICOLON);
            return(node);
        }
Example #14
0
 public override void VisitVarDefNode(VarDefNode w)
 {
     if (NowCycles > 0)
     {
         CountOps += 1;
     }
     foreach (var v in w.vars)
     {
         v.Visit(this);
     }
 }
Example #15
0
 public override void VisitVarDefNode(VarDefNode w)
 {
     foreach (var v in w.vars)
     {
         if (from.Equals(v.Name))
         {
             v.Name = to;
         }
         v.Visit(this);
     }
 }
Example #16
0
 public override void VisitVarDefNode(VarDefNode v)
 {
     if (NowCycle > 0)
     {
         CountOp += 1;
     }
     foreach (var v1 in v.vars)
     {
         v1.Visit(this);
     }
 }
Example #17
0
        public override void VisitVarDefNode(VarDefNode w)
        {
            Node parent = st.Pop();

            st.Push(parent);
            if (w != null)
            {
                w.Parent = parent;
            }
            st.Push(w);
            base.VisitVarDefNode(w);
            st.Pop();
        }
 public override void VisitVarDefNode(VarDefNode w)
 {
     foreach (var v in w.vars)
     {
         if (myMap.ContainsKey(v.Name))
         {
             myMap[v.Name]++;
         }
         else
         {
             myMap[v.Name] = 1;
         }
     }
 }
Example #19
0
        private void Visit(VarDefNode node, TypeInfo type)
        {
            var classType = type as ClassType;

            var var = GetVar(node);

            if (!classType.AddField(var.Name, var.Type))
            {
                Log(
                    string.Format("В типе {0} поле {1} уже существует",
                                  classType.Name,
                                  var.Name),
                    node);
            }
        }
 public override void VisitVarDefNode(VarDefNode w)
 {
     foreach (var v in w.vars)
     {
         if (vars.ContainsKey(v.Name))
         {
             vars[v.Name]++;
         }
         else
         {
             vars.Add(v.Name, 0);
         }
     }
     base.VisitVarDefNode(w);
 }
        private TypeDescriptor Visit(VarDefNode node, Context context)
        {
            var var = GetVar(node);

            if (context.CurrentMethod != null)
            {
                bool res = context.CurrentMethod.AddLocalVar(var.Name, var.Type);

                if (!res)
                {
                    Log(string.Format("Переменная {0} уже определена", node.VarName), node);
                }
            }

            return(null);
        }
Example #22
0
        protected VarStruct GetVar(VarDefNode node)
        {
            string name = node.VarName;

            var type = builder.Build(node.VarType);

            VarStruct var = new VarStruct(name, type);

            if (type == null)
            {
                Log(
                    string.Format("У переменной {0} тип {1} не существует",
                                  name,
                                  node.VarType.TypeName),
                    node);
            }

            return(var);
        }
Example #23
0
        public override void VisitVarDefNode(VarDefNode w)
        {
            if (w.vars[0].Name != from)
            {
                Text += IndentStr() + "var " + w.vars[0].Name;
            }
            else
            {
                Text += IndentStr() + "var " + to;
            }

            for (int i = 1; i < w.vars.Count; i++)
            {
                if (w.vars[i].Name != from)
                {
                    Text += ',' + w.vars[i].Name;
                }
                else
                {
                    Text += ',' + to;
                }
            }
        }
 public override void VisitVarDefNode(VarDefNode w)
 {
 }
Example #25
0
 private void Visit(VarDefNode node)
 {
 }
Example #26
0
 public override void VisitVarDefNode(VarDefNode w)
 {
     base.VisitVarDefNode(w);
 }
 public override void VisitVarDefNode(VarDefNode w)
 {
     Count += 1;
 }
Example #28
0
 public virtual void VisitVarDefNode(VarDefNode w)
 {
 }
Example #29
0
 public override void VisitVarDefNode(VarDefNode w)
 {
     // В трехадресном коде нет операции создания переменной
 }
Example #30
0
 public override void VisitVarDefNode(VarDefNode w)
 {
     TotalStatemetsCount++;
     base.VisitVarDefNode(w);
 }