public override void Visit(ArgMetadataBlockNode node, Context context) { context._yaml.WriteStartObject(node.Identifier); context._sb.Clear(); node.Default.Accept(this, context); context._yaml.WriteProperty("Default", context._sb.ToString()); context._yaml.WriteEndObject(); }
private ArgMetadataBlockNode ParseArgMetadataBlock(YamlToken p) { var argNode = new ArgMetadataBlockNode() { Identifier = p.Property }; while (true) { p = _yaml.ReadNext(); switch (p.Kind) { case YamlTokenKind.EndObj: return(argNode); case YamlTokenKind.Property: if (p.Property == nameof(ArgMetadataBlockNode.Default)) { argNode.Default = new ExpressionNode() { Expression = p.Value } } ; else { _errorContainer.ParseError(p.Span, $"Unexpected key in function definition: {p}"); throw new DocumentException(); } break; case YamlTokenKind.Error: _errorContainer.ParseError(p.Span, p.Value); return(null); default: _errorContainer.ParseError(p.Span, $"Unexpected yaml token: {p}"); throw new DocumentException(); } } }