public override TexlNode Clone(ref int idNext, Span ts) { if (Value == null) { return(new NumLitNode(ref idNext, Token.Clone(ts), SourceList.Clone(ts, null), NumValue)); } return(new NumLitNode(ref idNext, Value.Clone(ts).As <NumLitToken>())); }
public override TexlNode Clone(ref int idNext, Span ts) { var child = Child.Clone(ref idNext, ts); var newNodes = new Dictionary <TexlNode, TexlNode> { { Child, child } }; return(new UnaryOpNode(ref idNext, Token.Clone(ts), SourceList.Clone(ts, newNodes), Op, child)); }
public override TexlNode Clone(ref int idNext, Span ts) { var children = CloneChildren(ref idNext, ts); var newNodes = new Dictionary <TexlNode, TexlNode>(); for (int i = 0; i < Children.Length; ++i) { newNodes.Add(Children[i], children[i]); } return(new TableNode(ref idNext, Token.Clone(ts), SourceList.Clone(ts, newNodes), children, Clone(Commas, ts), BracketClose.Clone(ts))); }
public override TexlNode Clone(ref int idNext, Span ts) { var children = CloneChildren(ref idNext, ts); var newNodes = new Dictionary <TexlNode, TexlNode>(); for (int i = 0; i < Children.Length; ++i) { newNodes.Add(Children[i], children[i]); } return(new VariadicOpNode(ref idNext, Op, children, Clone(OpTokens, ts), SourceList.Clone(ts, newNodes))); }
public override TexlNode Clone(ref int idNext, Span ts) { var left = Left.Clone(ref idNext, ts); var newNodes = new Dictionary <TexlNode, TexlNode> { { Left, left }, }; return(new AsNode( ref idNext, Token.Clone(ts), SourceList.Clone(ts, newNodes), left, Right)); }
public override TexlNode Clone(ref int idNext, Span ts) { var children = CloneChildren(ref idNext, ts); var newNodes = new Dictionary <TexlNode, TexlNode>(); for (int i = 0; i < Children.Length; ++i) { newNodes.Add(Children[i], children[i]); } Identifier[] newIdentifiers = new Identifier[Ids.Length]; for (int x = 0; x < Ids.Length; x++) { newIdentifiers[x] = Ids[x].Clone(ts); } return(new RecordNode(ref idNext, Token.Clone(ts), SourceList.Clone(ts, newNodes), newIdentifiers, children, Clone(Commas, ts), Clone(Colons, ts), CurlyClose.Clone(ts), SourceRestriction?.Clone(ref idNext, ts))); }
public override TexlNode Clone(ref int idNext, Span ts) { var args = Args.Clone(ref idNext, ts).AsList(); var newNodes = new Dictionary <TexlNode, TexlNode> { { Args, args } }; TexlNode headNode = null; if (HeadNode != null) { headNode = HeadNode.Clone(ref idNext, ts); newNodes.Add(HeadNode, headNode); } return(new CallNode(ref idNext, Token.Clone(ts), SourceList.Clone(ts, newNodes), Head.Clone(ts), headNode, args, ParenClose)); }
public override TexlNode Clone(ref int idNext, Span ts) { var left = Left.Clone(ref idNext, ts); var newNodes = new Dictionary <TexlNode, TexlNode> { { Left, left }, }; var rightNode = RightNode?.Clone(ref idNext, ts); if (rightNode != null) { newNodes.Add(RightNode, rightNode); } DottedNameNode clonedNode = new DottedNameNode( ref idNext, Token.Clone(ts), SourceList.Clone(ts, newNodes), left, Right.Clone(ts), rightNode); return(clonedNode); }