public AddChild ( |
||
grammar | ||
return | void |
public override GrammarModel ApplyOverrides(GrammarModel grammar) { var @override = grammar as Paragraph; if (@override == null) { return(this); } var newParagraph = new Paragraph { key = key }; if (@override.title.IsNotEmpty() && @override.title != key) { newParagraph.title = @override.title; } if (@override.children == null || @override.children.Length == 0) { newParagraph.children = children; } else { var nonSilentIndex = 0; foreach (var child in children) { if (child is Silent) { newParagraph.AddChild(child); } else { if (@override.children.Length > nonSilentIndex) { var overridenChild = @override.children[nonSilentIndex++]; newParagraph.AddChild(child.ApplyOverrides(overridenChild)); } else { newParagraph.AddChild(child); } } } } return(newParagraph); }
public override GrammarModel ApplyOverrides(GrammarModel grammar) { var @override = grammar as Paragraph; if (@override == null) return this; var newParagraph = new Paragraph { key = key }; if (@override.title.IsNotEmpty() && @override.title != key) newParagraph.title = @override.title; if (@override.children == null || @override.children.Length == 0) { newParagraph.children = children; } else { var nonSilentIndex = 0; foreach (var child in children) if (child is Silent) { newParagraph.AddChild(child); } else { if (@override.children.Length > nonSilentIndex) { var overridenChild = @override.children[nonSilentIndex++]; newParagraph.AddChild(child.ApplyOverrides(overridenChild)); } else { newParagraph.AddChild(child); } } } return newParagraph; }