private EbnfBlockSetting VisitSettingNode(IInternalTreeNode node) { EbnfSettingIdentifier settingIdentifier = null; EbnfQualifiedIdentifier 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.Id == nameof(settingIdentifier)) { settingIdentifier = new EbnfSettingIdentifier(token.Value); } break; case TreeNodeType.Internal: var internalNode = child as IInternalTreeNode; var symbolValue = internalNode.Symbol.Value; if (EbnfGrammar.QualifiedIdentifier == symbolValue) { qualifiedIdentifier = VisitQualifiedIdentifierNode(internalNode); } break; } } return(new EbnfBlockSetting( new EbnfSetting(settingIdentifier, qualifiedIdentifier))); }
private EbnfBlockSetting VisitSettingNode(IInternalTreeNode node) { EbnfSettingIdentifier settingIdentifier = null; EbnfQualifiedIdentifier qualifiedEbnfQualifiedIdentifier = null; foreach (var child in node.Children) { switch (child) { case IInternalTreeNode internalNode: if (internalNode.Is(EbnfGrammar.QualifiedIdentifier)) { qualifiedEbnfQualifiedIdentifier = VisitQualifiedIdentifierNode(internalNode); } break; case ITokenTreeNode tokenNode: var token = tokenNode.Token; if (token.TokenName.Equals(EbnfGrammar.TokenClasses.SettingIdentifier)) { settingIdentifier = new EbnfSettingIdentifier(token.Value); } break; } } return(new EbnfBlockSetting(new EbnfSetting(settingIdentifier, qualifiedEbnfQualifiedIdentifier))); }
public EbnfSetting(EbnfSettingIdentifier settingIdentifier, EbnfQualifiedIdentifier identifier) { SettingIdentifier = settingIdentifier; Identifier = identifier; }
private EbnfBlockSetting VisitSettingNode(IInternalTreeNode node) { EbnfSettingIdentifier settingIdentifier = null; EbnfQualifiedIdentifier 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.Id == nameof(settingIdentifier)) settingIdentifier = new EbnfSettingIdentifier(token.Value); break; case TreeNodeType.Internal: var internalNode = child as IInternalTreeNode; var symbolValue = internalNode.Symbol.Value; if (EbnfGrammar.QualifiedIdentifier == symbolValue) qualifiedIdentifier = VisitQualifiedIdentifierNode(internalNode); break; } } return new EbnfBlockSetting( new EbnfSetting(settingIdentifier, qualifiedIdentifier)); }
public EbnfSetting(EbnfSettingIdentifier settingIdentifier, EbnfQualifiedIdentifier qualifiedIdentifier) { SettingIdentifier = settingIdentifier; QualifiedIdentifier = qualifiedIdentifier; _hashCode = ComputeHashCode(); }