예제 #1
0
 public TemporaryGroupChildTerminal(ParserNode grammarNode, Location loc, TemporaryChildNode prev, Location from, Location to, string content)
     : base(grammarNode, loc, prev)
 {
     this.From    = from;
     this.To      = to;
     this.Content = content;
 }
예제 #2
0
 protected override TemporaryChildNode UpdatePrevLinksImpl(TemporaryChildNode prevNode)
 {
     return(new TemporaryGroupChildGroup(
                this.GrammarNode,
                this.Location,
                this.Prev == null ? prevNode : this.Prev.UpdatePrevLinks(prevNode),
                this.Child
                ));
 }
예제 #3
0
 protected virtual TemporaryGroup UpdateChildsImpl(TemporaryChildNode child)
 {
     return(new TemporaryGroup(
                this.GrammarNode,
                this.Location,
                this.Parent,
                child
                ));
 }
예제 #4
0
 protected override TemporaryGroup UpdateChildsImpl(TemporaryChildNode child)
 {
     return(new TemporaryReparsingGroup(
                this.OldGroup,
                this.GrammarNode,
                this.ReparsingFrom,
                this.ReparsingTo,
                this.Parent,
                child
                ));
 }
예제 #5
0
 protected override TemporaryChildNode UpdatePrevLinksImpl(TemporaryChildNode prevNode)
 {
     return(new TemporaryGroupChildTerminal(
                this.GrammarNode,
                this.Location,
                this.Prev == null ? prevNode : this.Prev.UpdatePrevLinks(prevNode),
                this.From,
                this.To,
                this.Content
                ));
 }
예제 #6
0
            public TemporaryReparsingGroup(IParsingTreeNode oldNode, ParserNode node, Location fromLoc, Location toLoc, TemporaryGroup parent, TemporaryChildNode child)
                : base(node, oldNode.Location, parent, child)
            {
                this.OldGroup      = oldNode as IParsingTreeGroup;
                this.ReparsingFrom = fromLoc;
                this.ReparsingTo   = toLoc;

                if (this.OldGroup == null)
                {
                    throw new ReparsingFailException();
                }
            }
예제 #7
0
 public TemporaryGroupChildGroup(ParserNode grammarNode, Location loc, TemporaryChildNode prev, ParsedNode child)
     : base(grammarNode, loc, prev)
 {
     this.Child = child;
 }
예제 #8
0
 protected abstract TemporaryChildNode UpdatePrevLinksImpl(TemporaryChildNode prevNode);
예제 #9
0
 public TemporaryChildNode UpdatePrevLinks(TemporaryChildNode prevNode)
 {
     return(this.UpdatePrevLinksImpl(prevNode));
 }
예제 #10
0
 internal TemporaryChildNode(ParserNode grammarNode, Location loc, TemporaryChildNode prev)
     : base(grammarNode, loc)
 {
     this.Prev = prev;
 }
예제 #11
0
 public TemporaryGroup UpdateChilds(TemporaryChildNode child)
 {
     return(this.UpdateChildsImpl(child));
 }
예제 #12
0
 public TemporaryGroup(ParserNode node, Location loc, TemporaryGroup parent, TemporaryChildNode child)
     : base(node, loc, parent)
 {
     this.Child = child;
 }