public SymTokenContainer(SymTokenContainer aCopy) { foreach (SymToken t in aCopy) { Append(t); } }
protected bool IsTokenExactMatch(SymToken aToken, SymTokenContainer aContainerToSearch) { bool ret = false; // foreach (SymToken t in aContainerToSearch) { if (t.Equals(aToken)) { if (aToken.Tag != null && t.Tag != null) { if ((aToken.Tag is SymTokenBalancerMatchCriteria) && (t.Tag is SymTokenBalancerMatchCriteria)) { SymTokenBalancerMatchCriteria extendedInfo1 = (SymTokenBalancerMatchCriteria)aToken.Tag; SymTokenBalancerMatchCriteria extendedInfo2 = (SymTokenBalancerMatchCriteria)t.Tag; // if (extendedInfo1.Equals(extendedInfo2)) { ret = true; break; } } } } } // return(ret); }
public void AddToContainerIfEmittable(SymTokenContainer aContainer) { if (Emit) { aContainer.Append(Token); } }
protected override void ExtractToContainer(SymNode aNode, SymTokenContainer aContainer) { if (aNode is SymTokenBalancerNodeEmittedElement) { SymTokenBalancerNodeEmittedElement node = (SymTokenBalancerNodeEmittedElement)aNode; node.AddToContainerIfEmittable(aContainer); } }
public SymTokenContainer ExtractTokensAsContainer(bool aIgnoreWhiteSpace, bool aRecurse) { SymTokenContainer container = new SymTokenContainer(); // SymNodeEnumeratorChildren enumerator = new SymNodeEnumeratorChildren(this); ExtractTokens(enumerator, aIgnoreWhiteSpace, aRecurse, container); // return(container); }
public string EnumerateNodesAsString(IEnumerable aEnumerable, bool aIgnoreWhiteSpace, bool aRecurse) { // Flatten the tokens into a container SymTokenContainer container = new SymTokenContainer(); ExtractTokens(aEnumerable, aIgnoreWhiteSpace, aRecurse, container); // Convert the container to a string string ret = container.CoalescedTokenValue; return(ret); }
public void ExtractTokens(IEnumerable aEnumerable, bool aIgnoreWhiteSpace, bool aRecurse, SymTokenContainer aContainer) { foreach (SymNode node in aEnumerable) { if (node.HasChildren) { if (aRecurse) { ExtractTokens(node, aIgnoreWhiteSpace, aRecurse, aContainer); } else { // Ignore - its just a placeholder for child nodes } } else if (node is SymNodeToken) { SymNodeToken tokenNode = (SymNodeToken)node; if (!(aIgnoreWhiteSpace && tokenNode.Token.Class == SymToken.TClass.EClassWhiteSpace) || aIgnoreWhiteSpace == false) { aContainer.Append(tokenNode.Token); } } else if (NodeIsExtractable(node)) { ExtractToContainer(node, aContainer); } } }
protected virtual void ExtractToContainer(SymNode aNode, SymTokenContainer aContainer) { }
public SymTokenContainerEnumerator(SymTokenContainer aContainer) { iContainer = aContainer; }