public override PegNode Clone()
 {
     IdNode clone = new IdNode(parent_, id_, ownId_, match_, null);
     CloneSubTrees(clone);
     return clone;
 }
 public override void VisitIdNode(IdNode id)
 {
     throw new NotImplementedException();
 }
Exemple #3
0
 public override void VisitIdNode(IdNode id)
 {
     // Этот Visit не вызывается если переменная стоит слева от оператора присваивания !
     // Т.е. он вызывается только если id находится в выражении, а значит, мы просто кладем его значение на стек!
     genc.Emit(OpCodes.Ldloc, vars[id.Name]);
 }
Exemple #4
0
 public override void Visit(IdNode node)
 {
     ProgramBuilder.Append(node.Name);
 }
        public override string GenerateCode()
        {
            var constType = TypesTable.Instance.GetType(Type).ToJavaString();

            return($"public final {constType} {IdNode.GenerateCode()} = {Expression.GenerateCode()};");
        }
 private static void AddChildToRoot(IdNode node, IdTree tree)
 {
     node.Parent = tree.RootNode;
     tree.RootNode.Children.Add(node);
 }