private PdlBlockSetting VisitSettingNode(IInternalTreeNode node) { PdlSettingIdentifier settingIdentifier = null; PdlQualifiedIdentifier qualifiedIdentifier = null; for (int c = 0; c < node.Children.Count; c++) { var child = node.Children[c]; switch (child.NodeType) { case TreeNodeType.Token: var tokenNode = child as ITokenTreeNode; var token = tokenNode.Token; if (token.TokenType.Equals(PdlGrammar.TokenTypes.SettingIdentifier)) { settingIdentifier = new PdlSettingIdentifier(token.Capture); } break; case TreeNodeType.Internal: var internalNode = child as IInternalTreeNode; var symbolValue = internalNode.Symbol.Value; if (PdlGrammar.QualifiedIdentifier == symbolValue) { qualifiedIdentifier = VisitQualifiedIdentifierNode(internalNode); } break; } } return(new PdlBlockSetting( new PdlSetting(settingIdentifier, qualifiedIdentifier))); }
public PdlSetting(PdlSettingIdentifier settingIdentifier, PdlQualifiedIdentifier qualifiedIdentifier) { SettingIdentifier = settingIdentifier; QualifiedIdentifier = qualifiedIdentifier; _hashCode = ComputeHashCode(); }