public void SequenceStart(string anchor, string tag) { var node = new YSequence(new YTag(tag)); CurrentNode.Add(node); nodeStack.Push(node); SetAnchor(anchor, node); }
private static void GenerateSubTypeEvents(IntPtr pNativeEmitter, YSequence node, IDictionary <YNode, string> aliases, string anchor, HashSet <YNode> visited) { const int IMPLICIT = 1; GenerateEvent(pNativeEmitter, x => CreateEventSequenceStart((YamlEvent *)x, anchor, node.Tag.Value, IMPLICIT, YamlSequenceStyle.YAML_ANY_SEQUENCE_STYLE)); foreach (var item in node.Sequence) { GenerateNodeEvents(pNativeEmitter, item, aliases, visited); } GenerateEvent(pNativeEmitter, x => CreateEventSequenceEnd((YamlEvent *)x)); }
private YSequence GetSequenceValueDependent(ITokenizer tokenizer) { switch (tokenizer.Current.Value.Kind) { case TokenKind.Indent when tokenizer.Current.Next?.Value.Kind == TokenKind.SequenceValue: { var sequenceNode = new YSequence(YNodeStyle.Block); var items = new List <YNode>(); tokenizer.MoveNext(); while (tokenizer.Current.Value.Kind != TokenKind.Unindent && tokenizer.Current.Value.Kind != TokenKind.Eof) { if (tokenizer.Current.Value.Kind != TokenKind.SequenceValue) { throw ParseException.UnexpectedToken(tokenizer, TokenKind.SequenceValue); } tokenizer.MoveNext(); items.Add(this.GetNodeValue(tokenizer)); } if (tokenizer.Current.Value.Kind == TokenKind.Unindent) { tokenizer.MoveNext(); } sequenceNode.Add(items.ToArray()); return(sequenceNode); } case TokenKind.SequenceBegin: { var sequenceNode = new YSequence(YNodeStyle.Flow); var items = new List <YNode>(); tokenizer.MoveNext(); do { if (tokenizer.Current.Value.Kind == TokenKind.SequenceEnd) { break; } items.Add(this.GetNodeValue(tokenizer)); } while (tokenizer.Current.Value.Kind == TokenKind.ItemDelimiter && tokenizer.MoveNext()); if (tokenizer.Current.Value.Kind != TokenKind.SequenceEnd) { throw ParseException.UnexpectedToken(tokenizer, TokenKind.SequenceEnd); } tokenizer.MoveNext(); sequenceNode.Add(items.ToArray()); return(sequenceNode); } default: return(null); } }
private static void GenerateSubTypeEvents(IntPtr pNativeEmitter, YSequence node, IDictionary<YNode, string> aliases, string anchor, HashSet<YNode> visited) { const int IMPLICIT = 1; GenerateEvent(pNativeEmitter, x => CreateEventSequenceStart((YamlEvent*)x, anchor, node.Tag.Value, IMPLICIT, YamlSequenceStyle.YAML_ANY_SEQUENCE_STYLE)); foreach (var item in node.Sequence) { GenerateNodeEvents(pNativeEmitter, item, aliases, visited); } GenerateEvent(pNativeEmitter, x => CreateEventSequenceEnd((YamlEvent*)x)); }