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(); }
public override void VisitIdNode(IdNode id) { // Этот Visit не вызывается если переменная стоит слева от оператора присваивания ! // Т.е. он вызывается только если id находится в выражении, а значит, мы просто кладем его значение на стек! genc.Emit(OpCodes.Ldloc, vars[id.Name]); }
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); }