Josh
2 years ago
472 changed files with 27383 additions and 2 deletions
@ -0,0 +1,8 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: b5d23666a757eb844bb5c2dda8708246 |
||||
|
folderAsset: yes |
||||
|
DefaultImporter: |
||||
|
externalObjects: {} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,82 @@ |
|||||
|
Topics: |
||||
|
- Topic: TV |
||||
|
Categories: |
||||
|
- Category: White Lotus |
||||
|
Elements: |
||||
|
- Armond |
||||
|
- Greg |
||||
|
- Tanya McQuoid |
||||
|
- Portia |
||||
|
- Harper |
||||
|
- Albie Di Grasso |
||||
|
- Dominic Di Grasso |
||||
|
- Bert Di Grasso |
||||
|
- Ethan |
||||
|
- Lucia |
||||
|
- Category: The Mandalorian |
||||
|
Elements: |
||||
|
- Din Djarin |
||||
|
- Grogu |
||||
|
- Greef Karga |
||||
|
- The Client |
||||
|
- Dr. Pershing |
||||
|
- Kuiil |
||||
|
- IG-11 |
||||
|
- Cara Dune |
||||
|
- Boba Fett |
||||
|
- Moff Gideon |
||||
|
- Category: Yellowstone |
||||
|
Elements: |
||||
|
- Beth Dutton |
||||
|
- John Dutton |
||||
|
- Chief Thomas Rainwater |
||||
|
- Rip Wheeler |
||||
|
- Teeter |
||||
|
- Carter |
||||
|
- Jimmy Hurdstrom |
||||
|
- Walker |
||||
|
- Laramie |
||||
|
- Avery |
||||
|
- Category: I Love Lucy |
||||
|
Elements: |
||||
|
- Ethel Mertz |
||||
|
- Fred Mertz |
||||
|
- Lucy Ricardo |
||||
|
- Ricky Ricardo |
||||
|
- Mrs. McGillicuddy |
||||
|
- Bobby the Bellboy |
||||
|
- Freddie Fillmore |
||||
|
- Category: F•R•I•E•N•D•S |
||||
|
Elements: |
||||
|
- Rachel Green |
||||
|
- Joey Tribbiani |
||||
|
- Chandler Bing |
||||
|
- Ross Geller |
||||
|
- Monica Geller |
||||
|
- Phoebe Buffay |
||||
|
- Janice Hosenstein |
||||
|
- Gunther |
||||
|
- Roy, the Stripper |
||||
|
- Ursula Buffay |
||||
|
- Category: Wednesday |
||||
|
Elements: |
||||
|
- Wednesday Addams |
||||
|
- Morticia Addams |
||||
|
- Uncle Fester |
||||
|
- Enid Sinclair |
||||
|
- Lurch |
||||
|
- Thing |
||||
|
- Xavier Thorpe |
||||
|
- Gomez Addams |
||||
|
- Pugsley Addams |
||||
|
- Larissa Weems |
||||
|
- Topic: Hip Hop |
||||
|
Categories: |
||||
|
- Category: Biggie |
||||
|
Elements: |
||||
|
- Ready to Die |
||||
|
- Juicy |
||||
|
- Category: Pac |
||||
|
Elements: |
||||
|
- All Eyez |
||||
|
- HIt Em Up |
@ -0,0 +1,7 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: d407e0f4ea93648438adf207e06ca42c |
||||
|
TextScriptImporter: |
||||
|
externalObjects: {} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,10 @@ |
|||||
|
using System; |
||||
|
using System.Collections; |
||||
|
using System.Collections.Generic; |
||||
|
using UnityEngine; |
||||
|
[Serializable] |
||||
|
public class CategoryData |
||||
|
{ |
||||
|
public string Category; |
||||
|
public List<string> Elements = new List<string>(); |
||||
|
} |
@ -0,0 +1,11 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: 1ca73e6a69bdaf449ad91a940adbdd29 |
||||
|
MonoImporter: |
||||
|
externalObjects: {} |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,11 @@ |
|||||
|
using System; |
||||
|
using System.Collections; |
||||
|
using System.Collections.Generic; |
||||
|
using UnityEngine; |
||||
|
|
||||
|
[Serializable] |
||||
|
public class GameData |
||||
|
{ |
||||
|
|
||||
|
public List<TopicData> Topics = new List<TopicData>(); |
||||
|
} |
@ -0,0 +1,11 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: fb0f225b216ea1f419e12cd39cabb993 |
||||
|
MonoImporter: |
||||
|
externalObjects: {} |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,10 @@ |
|||||
|
using System; |
||||
|
using System.Collections; |
||||
|
using System.Collections.Generic; |
||||
|
using UnityEngine; |
||||
|
|
||||
|
[Serializable] |
||||
|
public class TopicData { |
||||
|
public string Topic; |
||||
|
public List<CategoryData> Categories = new List<CategoryData>(); |
||||
|
} |
@ -0,0 +1,11 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: e3ac1feae3f91614ea454e6d0adf5f45 |
||||
|
MonoImporter: |
||||
|
externalObjects: {} |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,8 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: 6298c1aa72d0cae4b980737fc7d60375 |
||||
|
folderAsset: yes |
||||
|
DefaultImporter: |
||||
|
externalObjects: {} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,9 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: cbe04dd6a5622cf4fb8a12e664da340d |
||||
|
folderAsset: yes |
||||
|
timeCreated: 1427145262 |
||||
|
licenseType: Store |
||||
|
DefaultImporter: |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,76 @@ |
|||||
|
// This file is part of YamlDotNet - A .NET library for YAML.
|
||||
|
// Copyright (c) Antoine Aubry and contributors
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
// this software and associated documentation files (the "Software"), to deal in
|
||||
|
// the Software without restriction, including without limitation the rights to
|
||||
|
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
|
// of the Software, and to permit persons to whom the Software is furnished to do
|
||||
|
// so, subject to the following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||
|
// copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
|
// SOFTWARE.
|
||||
|
|
||||
|
using System; |
||||
|
using System.Text.RegularExpressions; |
||||
|
|
||||
|
namespace YamlDotNet.Core |
||||
|
{ |
||||
|
public struct AnchorName : IEquatable<AnchorName> |
||||
|
{ |
||||
|
public static readonly AnchorName Empty = default; |
||||
|
|
||||
|
// https://yaml.org/spec/1.2/spec.html#id2785586
|
||||
|
private static readonly Regex AnchorPattern = new Regex(@"^[^\[\]\{\},]+$", StandardRegexOptions.Compiled); |
||||
|
|
||||
|
private readonly string? value; |
||||
|
|
||||
|
public string Value => value ?? throw new InvalidOperationException("Cannot read the Value of an empty anchor"); |
||||
|
|
||||
|
public bool IsEmpty => value is null; |
||||
|
|
||||
|
public AnchorName(string value) |
||||
|
{ |
||||
|
this.value = value ?? throw new ArgumentNullException(nameof(value)); |
||||
|
|
||||
|
if (!AnchorPattern.IsMatch(value)) |
||||
|
{ |
||||
|
throw new ArgumentException($"Anchor cannot be empty or contain disallowed characters: []{{}},\nThe value was '{value}'.", nameof(value)); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
public override string ToString() => value ?? "[empty]"; |
||||
|
|
||||
|
public bool Equals(AnchorName other) => Equals(value, other.value); |
||||
|
|
||||
|
public override bool Equals(object? obj) |
||||
|
{ |
||||
|
return obj is AnchorName other && Equals(other); |
||||
|
} |
||||
|
|
||||
|
public override int GetHashCode() |
||||
|
{ |
||||
|
return value?.GetHashCode() ?? 0; |
||||
|
} |
||||
|
|
||||
|
public static bool operator ==(AnchorName left, AnchorName right) |
||||
|
{ |
||||
|
return left.Equals(right); |
||||
|
} |
||||
|
|
||||
|
public static bool operator !=(AnchorName left, AnchorName right) |
||||
|
{ |
||||
|
return !(left == right); |
||||
|
} |
||||
|
|
||||
|
public static implicit operator AnchorName(string? value) => value == null ? Empty : new AnchorName(value); |
||||
|
} |
||||
|
} |
@ -0,0 +1,11 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: 4b743e73dd5df19488bf7108b4a7e5a8 |
||||
|
MonoImporter: |
||||
|
externalObjects: {} |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,58 @@ |
|||||
|
// This file is part of YamlDotNet - A .NET library for YAML.
|
||||
|
// Copyright (c) Antoine Aubry and contributors
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
// this software and associated documentation files (the "Software"), to deal in
|
||||
|
// the Software without restriction, including without limitation the rights to
|
||||
|
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
|
// of the Software, and to permit persons to whom the Software is furnished to do
|
||||
|
// so, subject to the following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||
|
// copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
|
// SOFTWARE.
|
||||
|
|
||||
|
using System; |
||||
|
|
||||
|
namespace YamlDotNet.Core |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// The exception that is thrown when an alias references an anchor that does not exist.
|
||||
|
/// </summary>
|
||||
|
public class AnchorNotFoundException : YamlException |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="AnchorNotFoundException"/> class.
|
||||
|
/// </summary>
|
||||
|
/// <param name="message">The message.</param>
|
||||
|
public AnchorNotFoundException(string message) |
||||
|
: base(message) |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="AnchorNotFoundException"/> class.
|
||||
|
/// </summary>
|
||||
|
public AnchorNotFoundException(Mark start, Mark end, string message) |
||||
|
: base(start, end, message) |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="AnchorNotFoundException"/> class.
|
||||
|
/// </summary>
|
||||
|
/// <param name="message">The message.</param>
|
||||
|
/// <param name="inner">The inner.</param>
|
||||
|
public AnchorNotFoundException(string message, Exception inner) |
||||
|
: base(message, inner) |
||||
|
{ |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,12 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: bef940054d2c25041ba1a961abae6c79 |
||||
|
timeCreated: 1427145266 |
||||
|
licenseType: Store |
||||
|
MonoImporter: |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,166 @@ |
|||||
|
// This file is part of YamlDotNet - A .NET library for YAML.
|
||||
|
// Copyright (c) Antoine Aubry and contributors
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
// this software and associated documentation files (the "Software"), to deal in
|
||||
|
// the Software without restriction, including without limitation the rights to
|
||||
|
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
|
// of the Software, and to permit persons to whom the Software is furnished to do
|
||||
|
// so, subject to the following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||
|
// copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
|
// SOFTWARE.
|
||||
|
|
||||
|
using System; |
||||
|
using System.Diagnostics; |
||||
|
|
||||
|
namespace YamlDotNet.Core |
||||
|
{ |
||||
|
internal sealed class CharacterAnalyzer<TBuffer> where TBuffer : class, ILookAheadBuffer |
||||
|
{ |
||||
|
public CharacterAnalyzer(TBuffer buffer) |
||||
|
{ |
||||
|
this.Buffer = buffer ?? throw new ArgumentNullException(nameof(buffer)); |
||||
|
} |
||||
|
|
||||
|
public TBuffer Buffer { get; } |
||||
|
|
||||
|
public bool EndOfInput => Buffer.EndOfInput; |
||||
|
|
||||
|
public char Peek(int offset) |
||||
|
{ |
||||
|
return Buffer.Peek(offset); |
||||
|
} |
||||
|
|
||||
|
public void Skip(int length) |
||||
|
{ |
||||
|
Buffer.Skip(length); |
||||
|
} |
||||
|
|
||||
|
public bool IsAlphaNumericDashOrUnderscore(int offset = 0) |
||||
|
{ |
||||
|
var character = Buffer.Peek(offset); |
||||
|
return |
||||
|
(character >= '0' && character <= '9') || |
||||
|
(character >= 'A' && character <= 'Z') || |
||||
|
(character >= 'a' && character <= 'z') || |
||||
|
character == '_' || |
||||
|
character == '-'; |
||||
|
} |
||||
|
|
||||
|
public bool IsAscii(int offset = 0) |
||||
|
{ |
||||
|
return Buffer.Peek(offset) <= '\x7F'; |
||||
|
} |
||||
|
|
||||
|
public bool IsPrintable(int offset = 0) |
||||
|
{ |
||||
|
var character = Buffer.Peek(offset); |
||||
|
return |
||||
|
character == '\x9' || |
||||
|
character == '\xA' || |
||||
|
character == '\xD' || |
||||
|
(character >= '\x20' && character <= '\x7E') || |
||||
|
character == '\x85' || |
||||
|
(character >= '\xA0' && character <= '\xD7FF') || |
||||
|
(character >= '\xE000' && character <= '\xFFFD'); |
||||
|
} |
||||
|
|
||||
|
public bool IsDigit(int offset = 0) |
||||
|
{ |
||||
|
var character = Buffer.Peek(offset); |
||||
|
return character >= '0' && character <= '9'; |
||||
|
} |
||||
|
|
||||
|
public int AsDigit(int offset = 0) |
||||
|
{ |
||||
|
return Buffer.Peek(offset) - '0'; |
||||
|
} |
||||
|
|
||||
|
public bool IsHex(int offset) |
||||
|
{ |
||||
|
var character = Buffer.Peek(offset); |
||||
|
return |
||||
|
(character >= '0' && character <= '9') || |
||||
|
(character >= 'A' && character <= 'F') || |
||||
|
(character >= 'a' && character <= 'f'); |
||||
|
} |
||||
|
|
||||
|
public int AsHex(int offset) |
||||
|
{ |
||||
|
var character = Buffer.Peek(offset); |
||||
|
|
||||
|
if (character <= '9') |
||||
|
{ |
||||
|
return character - '0'; |
||||
|
} |
||||
|
if (character <= 'F') |
||||
|
{ |
||||
|
return character - 'A' + 10; |
||||
|
} |
||||
|
return character - 'a' + 10; |
||||
|
} |
||||
|
|
||||
|
public bool IsSpace(int offset = 0) |
||||
|
{ |
||||
|
return Check(' ', offset); |
||||
|
} |
||||
|
|
||||
|
public bool IsZero(int offset = 0) |
||||
|
{ |
||||
|
return Check('\0', offset); |
||||
|
} |
||||
|
|
||||
|
public bool IsTab(int offset = 0) |
||||
|
{ |
||||
|
return Check('\t', offset); |
||||
|
} |
||||
|
|
||||
|
public bool IsWhite(int offset = 0) |
||||
|
{ |
||||
|
return IsSpace(offset) || IsTab(offset); |
||||
|
} |
||||
|
|
||||
|
public bool IsBreak(int offset = 0) |
||||
|
{ |
||||
|
return Check("\r\n\x85\x2028\x2029", offset); |
||||
|
} |
||||
|
|
||||
|
public bool IsCrLf(int offset = 0) |
||||
|
{ |
||||
|
return Check('\r', offset) && Check('\n', offset + 1); |
||||
|
} |
||||
|
|
||||
|
public bool IsBreakOrZero(int offset = 0) |
||||
|
{ |
||||
|
return IsBreak(offset) || IsZero(offset); |
||||
|
} |
||||
|
|
||||
|
public bool IsWhiteBreakOrZero(int offset = 0) |
||||
|
{ |
||||
|
return IsWhite(offset) || IsBreakOrZero(offset); |
||||
|
} |
||||
|
|
||||
|
public bool Check(char expected, int offset = 0) |
||||
|
{ |
||||
|
return Buffer.Peek(offset) == expected; |
||||
|
} |
||||
|
|
||||
|
public bool Check(string expectedCharacters, int offset = 0) |
||||
|
{ |
||||
|
// Todo: using it this way doesn't break anything, it's not really wrong...
|
||||
|
Debug.Assert(expectedCharacters.Length > 1, "Use Check(char, int) instead."); |
||||
|
|
||||
|
var character = Buffer.Peek(offset); |
||||
|
return expectedCharacters.IndexOf(character) != -1; |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,12 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: cdb65e878b6f92347849551efad9eb74 |
||||
|
timeCreated: 1427145266 |
||||
|
licenseType: Store |
||||
|
MonoImporter: |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,40 @@ |
|||||
|
// This file is part of YamlDotNet - A .NET library for YAML.
|
||||
|
// Copyright (c) Antoine Aubry and contributors
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
// this software and associated documentation files (the "Software"), to deal in
|
||||
|
// the Software without restriction, including without limitation the rights to
|
||||
|
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
|
// of the Software, and to permit persons to whom the Software is furnished to do
|
||||
|
// so, subject to the following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||
|
// copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
|
// SOFTWARE.
|
||||
|
|
||||
|
using YamlDotNet.Core.Tokens; |
||||
|
|
||||
|
namespace YamlDotNet.Core |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Defines constants that relate to the YAML specification.
|
||||
|
/// </summary>
|
||||
|
public static class Constants |
||||
|
{ |
||||
|
public static readonly TagDirective[] DefaultTagDirectives = |
||||
|
{ |
||||
|
new TagDirective("!", "!"), |
||||
|
new TagDirective("!!", "tag:yaml.org,2002:") |
||||
|
}; |
||||
|
|
||||
|
public const int MajorVersion = 1; |
||||
|
public const int MinorVersion = 3; |
||||
|
} |
||||
|
} |
@ -0,0 +1,11 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: 6143f3f95b0bcb74c92b9996309fab40 |
||||
|
MonoImporter: |
||||
|
externalObjects: {} |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,69 @@ |
|||||
|
// This file is part of YamlDotNet - A .NET library for YAML.
|
||||
|
// Copyright (c) Antoine Aubry and contributors
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
// this software and associated documentation files (the "Software"), to deal in
|
||||
|
// the Software without restriction, including without limitation the rights to
|
||||
|
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
|
// of the Software, and to permit persons to whom the Software is furnished to do
|
||||
|
// so, subject to the following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||
|
// copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
|
// SOFTWARE.
|
||||
|
|
||||
|
namespace YamlDotNet.Core |
||||
|
{ |
||||
|
public sealed class Cursor |
||||
|
{ |
||||
|
public int Index { get; private set; } |
||||
|
public int Line { get; private set; } |
||||
|
public int LineOffset { get; private set; } |
||||
|
|
||||
|
public Cursor() |
||||
|
{ |
||||
|
Line = 1; |
||||
|
} |
||||
|
|
||||
|
public Cursor(Cursor cursor) |
||||
|
{ |
||||
|
Index = cursor.Index; |
||||
|
Line = cursor.Line; |
||||
|
LineOffset = cursor.LineOffset; |
||||
|
} |
||||
|
|
||||
|
public Mark Mark() |
||||
|
{ |
||||
|
return new Mark(Index, Line, LineOffset + 1); |
||||
|
} |
||||
|
|
||||
|
public void Skip() |
||||
|
{ |
||||
|
Index++; |
||||
|
LineOffset++; |
||||
|
} |
||||
|
|
||||
|
public void SkipLineByOffset(int offset) |
||||
|
{ |
||||
|
Index += offset; |
||||
|
Line++; |
||||
|
LineOffset = 0; |
||||
|
} |
||||
|
|
||||
|
public void ForceSkipLineAfterNonBreak() |
||||
|
{ |
||||
|
if (LineOffset != 0) |
||||
|
{ |
||||
|
Line++; |
||||
|
LineOffset = 0; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,12 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: b4262bdec0f3c254b9a29e755ba3a609 |
||||
|
timeCreated: 1427145265 |
||||
|
licenseType: Store |
||||
|
MonoImporter: |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
File diff suppressed because it is too large
@ -0,0 +1,12 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: f526134efcd8e424c86e492f85fc56ba |
||||
|
timeCreated: 1427145267 |
||||
|
licenseType: Store |
||||
|
MonoImporter: |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,159 @@ |
|||||
|
// This file is part of YamlDotNet - A .NET library for YAML.
|
||||
|
// Copyright (c) Antoine Aubry and contributors
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
// this software and associated documentation files (the "Software"), to deal in
|
||||
|
// the Software without restriction, including without limitation the rights to
|
||||
|
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
|
// of the Software, and to permit persons to whom the Software is furnished to do
|
||||
|
// so, subject to the following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||
|
// copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
|
// SOFTWARE.
|
||||
|
|
||||
|
using System; |
||||
|
|
||||
|
namespace YamlDotNet.Core |
||||
|
{ |
||||
|
public sealed class EmitterSettings |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// The preferred indentation.
|
||||
|
/// </summary>
|
||||
|
public int BestIndent { get; } = 2; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// The preferred text width.
|
||||
|
/// </summary>
|
||||
|
public int BestWidth { get; } = int.MaxValue; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// If true, write the output in canonical form.
|
||||
|
/// </summary>
|
||||
|
public bool IsCanonical { get; } = false; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// If true, write output without anchor names.
|
||||
|
/// </summary>
|
||||
|
public bool SkipAnchorName { get; private set; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// The maximum allowed length for simple keys.
|
||||
|
/// </summary>
|
||||
|
/// <remarks>
|
||||
|
/// The specifiction mandates 1024 characters, but any desired value may be used.
|
||||
|
/// </remarks>
|
||||
|
public int MaxSimpleKeyLength { get; } = 1024; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Indent sequences. The default is to not indent.
|
||||
|
/// </summary>
|
||||
|
public bool IndentSequences { get; } = false; |
||||
|
|
||||
|
public static readonly EmitterSettings Default = new EmitterSettings(); |
||||
|
|
||||
|
public EmitterSettings() |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
public EmitterSettings(int bestIndent, int bestWidth, bool isCanonical, int maxSimpleKeyLength, bool skipAnchorName = false, bool indentSequences = false) |
||||
|
{ |
||||
|
if (bestIndent < 2 || bestIndent > 9) |
||||
|
{ |
||||
|
throw new ArgumentOutOfRangeException(nameof(bestIndent), $"BestIndent must be between 2 and 9, inclusive"); |
||||
|
} |
||||
|
|
||||
|
if (bestWidth <= bestIndent * 2) |
||||
|
{ |
||||
|
throw new ArgumentOutOfRangeException(nameof(bestWidth), "BestWidth must be greater than BestIndent x 2."); |
||||
|
} |
||||
|
|
||||
|
if (maxSimpleKeyLength < 0) |
||||
|
{ |
||||
|
throw new ArgumentOutOfRangeException(nameof(maxSimpleKeyLength), "MaxSimpleKeyLength must be >= 0"); |
||||
|
} |
||||
|
|
||||
|
BestIndent = bestIndent; |
||||
|
BestWidth = bestWidth; |
||||
|
IsCanonical = isCanonical; |
||||
|
MaxSimpleKeyLength = maxSimpleKeyLength; |
||||
|
SkipAnchorName = skipAnchorName; |
||||
|
IndentSequences = indentSequences; |
||||
|
} |
||||
|
|
||||
|
public EmitterSettings WithBestIndent(int bestIndent) |
||||
|
{ |
||||
|
return new EmitterSettings( |
||||
|
bestIndent, |
||||
|
BestWidth, |
||||
|
IsCanonical, |
||||
|
MaxSimpleKeyLength, |
||||
|
SkipAnchorName |
||||
|
); |
||||
|
} |
||||
|
|
||||
|
public EmitterSettings WithBestWidth(int bestWidth) |
||||
|
{ |
||||
|
return new EmitterSettings( |
||||
|
BestIndent, |
||||
|
bestWidth, |
||||
|
IsCanonical, |
||||
|
MaxSimpleKeyLength, |
||||
|
SkipAnchorName |
||||
|
); |
||||
|
} |
||||
|
|
||||
|
public EmitterSettings WithMaxSimpleKeyLength(int maxSimpleKeyLength) |
||||
|
{ |
||||
|
return new EmitterSettings( |
||||
|
BestIndent, |
||||
|
BestWidth, |
||||
|
IsCanonical, |
||||
|
maxSimpleKeyLength, |
||||
|
SkipAnchorName |
||||
|
); |
||||
|
} |
||||
|
|
||||
|
public EmitterSettings Canonical() |
||||
|
{ |
||||
|
return new EmitterSettings( |
||||
|
BestIndent, |
||||
|
BestWidth, |
||||
|
true, |
||||
|
MaxSimpleKeyLength, |
||||
|
SkipAnchorName |
||||
|
); |
||||
|
} |
||||
|
|
||||
|
public EmitterSettings WithoutAnchorName() |
||||
|
{ |
||||
|
return new EmitterSettings( |
||||
|
BestIndent, |
||||
|
BestWidth, |
||||
|
IsCanonical, |
||||
|
MaxSimpleKeyLength, |
||||
|
true |
||||
|
); |
||||
|
} |
||||
|
|
||||
|
public EmitterSettings WithIndentedSequences() |
||||
|
{ |
||||
|
return new EmitterSettings( |
||||
|
BestIndent, |
||||
|
BestWidth, |
||||
|
IsCanonical, |
||||
|
MaxSimpleKeyLength, |
||||
|
SkipAnchorName, |
||||
|
true |
||||
|
); |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,11 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: 7496371f913cd4a4aa6e1d7009a88169 |
||||
|
MonoImporter: |
||||
|
externalObjects: {} |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,45 @@ |
|||||
|
// This file is part of YamlDotNet - A .NET library for YAML.
|
||||
|
// Copyright (c) Antoine Aubry and contributors
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
// this software and associated documentation files (the "Software"), to deal in
|
||||
|
// the Software without restriction, including without limitation the rights to
|
||||
|
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
|
// of the Software, and to permit persons to whom the Software is furnished to do
|
||||
|
// so, subject to the following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||
|
// copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
|
// SOFTWARE.
|
||||
|
|
||||
|
namespace YamlDotNet.Core |
||||
|
{ |
||||
|
internal enum EmitterState |
||||
|
{ |
||||
|
StreamStart, |
||||
|
StreamEnd, |
||||
|
FirstDocumentStart, |
||||
|
DocumentStart, |
||||
|
DocumentContent, |
||||
|
DocumentEnd, |
||||
|
FlowSequenceFirstItem, |
||||
|
FlowSequenceItem, |
||||
|
FlowMappingFirstKey, |
||||
|
FlowMappingKey, |
||||
|
FlowMappingSimpleValue, |
||||
|
FlowMappingValue, |
||||
|
BlockSequenceFirstItem, |
||||
|
BlockSequenceItem, |
||||
|
BlockMappingFirstKey, |
||||
|
BlockMappingKey, |
||||
|
BlockMappingSimpleValue, |
||||
|
BlockMappingValue |
||||
|
} |
||||
|
} |
@ -0,0 +1,11 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: 7127212075b19ce4f99a370f02d26037 |
||||
|
MonoImporter: |
||||
|
externalObjects: {} |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,9 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: 2dd1df9756078164587ab6fc3579145d |
||||
|
folderAsset: yes |
||||
|
timeCreated: 1427145262 |
||||
|
licenseType: Store |
||||
|
DefaultImporter: |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,85 @@ |
|||||
|
// This file is part of YamlDotNet - A .NET library for YAML.
|
||||
|
// Copyright (c) Antoine Aubry and contributors
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
// this software and associated documentation files (the "Software"), to deal in
|
||||
|
// the Software without restriction, including without limitation the rights to
|
||||
|
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
|
// of the Software, and to permit persons to whom the Software is furnished to do
|
||||
|
// so, subject to the following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||
|
// copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
|
// SOFTWARE.
|
||||
|
|
||||
|
namespace YamlDotNet.Core.Events |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Represents an alias event.
|
||||
|
/// </summary>
|
||||
|
public sealed class AnchorAlias : ParsingEvent |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Gets the event type, which allows for simpler type comparisons.
|
||||
|
/// </summary>
|
||||
|
internal override EventType Type => EventType.Alias; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets the value of the alias.
|
||||
|
/// </summary>
|
||||
|
public AnchorName Value { get; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="AnchorAlias"/> class.
|
||||
|
/// </summary>
|
||||
|
/// <param name="value">The value of the alias.</param>
|
||||
|
/// <param name="start">The start position of the event.</param>
|
||||
|
/// <param name="end">The end position of the event.</param>
|
||||
|
public AnchorAlias(AnchorName value, Mark start, Mark end) |
||||
|
: base(start, end) |
||||
|
{ |
||||
|
if (value.IsEmpty) |
||||
|
{ |
||||
|
throw new YamlException(start, end, "Anchor value must not be empty."); |
||||
|
} |
||||
|
|
||||
|
this.Value = value; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="AnchorAlias"/> class.
|
||||
|
/// </summary>
|
||||
|
/// <param name="value">The value of the alias.</param>
|
||||
|
public AnchorAlias(AnchorName value) |
||||
|
: this(value, Mark.Empty, Mark.Empty) |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Returns a <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
|
||||
|
/// </summary>
|
||||
|
/// <returns>
|
||||
|
/// A <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
|
||||
|
/// </returns>
|
||||
|
public override string ToString() |
||||
|
{ |
||||
|
return $"Alias [value = {Value}]"; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Invokes run-time type specific Visit() method of the specified visitor.
|
||||
|
/// </summary>
|
||||
|
/// <param name="visitor">visitor, may not be null.</param>
|
||||
|
public override void Accept(IParsingEventVisitor visitor) |
||||
|
{ |
||||
|
visitor.Visit(this); |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,12 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: 09b29b54793d9644398fe8e4da326353 |
||||
|
timeCreated: 1427145262 |
||||
|
licenseType: Store |
||||
|
MonoImporter: |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,59 @@ |
|||||
|
// This file is part of YamlDotNet - A .NET library for YAML.
|
||||
|
// Copyright (c) Antoine Aubry and contributors
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
// this software and associated documentation files (the "Software"), to deal in
|
||||
|
// the Software without restriction, including without limitation the rights to
|
||||
|
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
|
// of the Software, and to permit persons to whom the Software is furnished to do
|
||||
|
// so, subject to the following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||
|
// copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
|
// SOFTWARE.
|
||||
|
|
||||
|
namespace YamlDotNet.Core.Events |
||||
|
{ |
||||
|
public sealed class Comment : ParsingEvent |
||||
|
{ |
||||
|
public string Value { get; } |
||||
|
public bool IsInline { get; } |
||||
|
|
||||
|
public Comment(string value, bool isInline) |
||||
|
: this(value, isInline, Mark.Empty, Mark.Empty) |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
public Comment(string value, bool isInline, Mark start, Mark end) |
||||
|
: base(start, end) |
||||
|
{ |
||||
|
Value = value; |
||||
|
IsInline = isInline; |
||||
|
} |
||||
|
|
||||
|
internal override EventType Type => EventType.Comment; |
||||
|
|
||||
|
public override void Accept(IParsingEventVisitor visitor) |
||||
|
{ |
||||
|
visitor.Visit(this); |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Returns a <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
|
||||
|
/// </summary>
|
||||
|
/// <returns>
|
||||
|
/// A <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
|
||||
|
/// </returns>
|
||||
|
public override string ToString() |
||||
|
{ |
||||
|
return $"{(IsInline ? "Inline" : "Block")} Comment [{Value}]"; |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,12 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: e96511072ac5a30488623987ca605570 |
||||
|
timeCreated: 1427145267 |
||||
|
licenseType: Store |
||||
|
MonoImporter: |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,90 @@ |
|||||
|
// This file is part of YamlDotNet - A .NET library for YAML.
|
||||
|
// Copyright (c) Antoine Aubry and contributors
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
// this software and associated documentation files (the "Software"), to deal in
|
||||
|
// the Software without restriction, including without limitation the rights to
|
||||
|
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
|
// of the Software, and to permit persons to whom the Software is furnished to do
|
||||
|
// so, subject to the following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||
|
// copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
|
// SOFTWARE.
|
||||
|
|
||||
|
namespace YamlDotNet.Core.Events |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Represents a document end event.
|
||||
|
/// </summary>
|
||||
|
public sealed class DocumentEnd : ParsingEvent |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Gets a value indicating the variation of depth caused by this event.
|
||||
|
/// The value can be either -1, 0 or 1. For start events, it will be 1,
|
||||
|
/// for end events, it will be -1, and for the remaining events, it will be 0.
|
||||
|
/// </summary>
|
||||
|
public override int NestingIncrease => -1; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets the event type, which allows for simpler type comparisons.
|
||||
|
/// </summary>
|
||||
|
internal override EventType Type => EventType.DocumentEnd; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets a value indicating whether this instance is implicit.
|
||||
|
/// </summary>
|
||||
|
/// <value>
|
||||
|
/// <c>true</c> if this instance is implicit; otherwise, <c>false</c>.
|
||||
|
/// </value>
|
||||
|
public bool IsImplicit { get; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="DocumentEnd"/> class.
|
||||
|
/// </summary>
|
||||
|
/// <param name="isImplicit">Indicates whether the event is implicit.</param>
|
||||
|
/// <param name="start">The start position of the event.</param>
|
||||
|
/// <param name="end">The end position of the event.</param>
|
||||
|
public DocumentEnd(bool isImplicit, Mark start, Mark end) |
||||
|
: base(start, end) |
||||
|
{ |
||||
|
this.IsImplicit = isImplicit; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="DocumentEnd"/> class.
|
||||
|
/// </summary>
|
||||
|
/// <param name="isImplicit">Indicates whether the event is implicit.</param>
|
||||
|
public DocumentEnd(bool isImplicit) |
||||
|
: this(isImplicit, Mark.Empty, Mark.Empty) |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Returns a <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
|
||||
|
/// </summary>
|
||||
|
/// <returns>
|
||||
|
/// A <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
|
||||
|
/// </returns>
|
||||
|
public override string ToString() |
||||
|
{ |
||||
|
return $"Document end [isImplicit = {IsImplicit}]"; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Invokes run-time type specific Visit() method of the specified visitor.
|
||||
|
/// </summary>
|
||||
|
/// <param name="visitor">visitor, may not be null.</param>
|
||||
|
public override void Accept(IParsingEventVisitor visitor) |
||||
|
{ |
||||
|
visitor.Visit(this); |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,12 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: 99b4ea3b75d2e754cb5fea7cc0f1a4d3 |
||||
|
timeCreated: 1427145265 |
||||
|
licenseType: Store |
||||
|
MonoImporter: |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,128 @@ |
|||||
|
// This file is part of YamlDotNet - A .NET library for YAML.
|
||||
|
// Copyright (c) Antoine Aubry and contributors
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
// this software and associated documentation files (the "Software"), to deal in
|
||||
|
// the Software without restriction, including without limitation the rights to
|
||||
|
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
|
// of the Software, and to permit persons to whom the Software is furnished to do
|
||||
|
// so, subject to the following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||
|
// copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
|
// SOFTWARE.
|
||||
|
|
||||
|
using YamlDotNet.Core.Tokens; |
||||
|
|
||||
|
namespace YamlDotNet.Core.Events |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Represents a document start event.
|
||||
|
/// </summary>
|
||||
|
public sealed class DocumentStart : ParsingEvent |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Gets a value indicating the variation of depth caused by this event.
|
||||
|
/// The value can be either -1, 0 or 1. For start events, it will be 1,
|
||||
|
/// for end events, it will be -1, and for the remaining events, it will be 0.
|
||||
|
/// </summary>
|
||||
|
public override int NestingIncrease => 1; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets the event type, which allows for simpler type comparisons.
|
||||
|
/// </summary>
|
||||
|
internal override EventType Type => EventType.DocumentStart; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets the tags.
|
||||
|
/// </summary>
|
||||
|
/// <value>The tags.</value>
|
||||
|
public TagDirectiveCollection? Tags { get; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets the version.
|
||||
|
/// </summary>
|
||||
|
/// <value>The version.</value>
|
||||
|
public VersionDirective? Version { get; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets a value indicating whether this instance is implicit.
|
||||
|
/// </summary>
|
||||
|
/// <value>
|
||||
|
/// <c>true</c> if this instance is implicit; otherwise, <c>false</c>.
|
||||
|
/// </value>
|
||||
|
public bool IsImplicit { get; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="DocumentStart"/> class.
|
||||
|
/// </summary>
|
||||
|
/// <param name="version">The version.</param>
|
||||
|
/// <param name="tags">The tags.</param>
|
||||
|
/// <param name="isImplicit">Indicates whether the event is implicit.</param>
|
||||
|
/// <param name="start">The start position of the event.</param>
|
||||
|
/// <param name="end">The end position of the event.</param>
|
||||
|
public DocumentStart(VersionDirective? version, TagDirectiveCollection? tags, bool isImplicit, Mark start, Mark end) |
||||
|
: base(start, end) |
||||
|
{ |
||||
|
this.Version = version; |
||||
|
this.Tags = tags; |
||||
|
this.IsImplicit = isImplicit; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="DocumentStart"/> class.
|
||||
|
/// </summary>
|
||||
|
/// <param name="version">The version.</param>
|
||||
|
/// <param name="tags">The tags.</param>
|
||||
|
/// <param name="isImplicit">Indicates whether the event is implicit.</param>
|
||||
|
public DocumentStart(VersionDirective? version, TagDirectiveCollection? tags, bool isImplicit) |
||||
|
: this(version, tags, isImplicit, Mark.Empty, Mark.Empty) |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="DocumentStart"/> class.
|
||||
|
/// </summary>
|
||||
|
/// <param name="start">The start position of the event.</param>
|
||||
|
/// <param name="end">The end position of the event.</param>
|
||||
|
public DocumentStart(Mark start, Mark end) |
||||
|
: this(null, null, true, start, end) |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="DocumentStart"/> class.
|
||||
|
/// </summary>
|
||||
|
public DocumentStart() |
||||
|
: this(null, null, true, Mark.Empty, Mark.Empty) |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Returns a <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
|
||||
|
/// </summary>
|
||||
|
/// <returns>
|
||||
|
/// A <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
|
||||
|
/// </returns>
|
||||
|
public override string ToString() |
||||
|
{ |
||||
|
return $"Document start [isImplicit = {IsImplicit}]"; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Invokes run-time type specific Visit() method of the specified visitor.
|
||||
|
/// </summary>
|
||||
|
/// <param name="visitor">visitor, may not be null.</param>
|
||||
|
public override void Accept(IParsingEventVisitor visitor) |
||||
|
{ |
||||
|
visitor.Visit(this); |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,12 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: 06cc13f1bc1622246924546d044eede9 |
||||
|
timeCreated: 1427145262 |
||||
|
licenseType: Store |
||||
|
MonoImporter: |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,39 @@ |
|||||
|
// This file is part of YamlDotNet - A .NET library for YAML.
|
||||
|
// Copyright (c) Antoine Aubry and contributors
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
// this software and associated documentation files (the "Software"), to deal in
|
||||
|
// the Software without restriction, including without limitation the rights to
|
||||
|
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
|
// of the Software, and to permit persons to whom the Software is furnished to do
|
||||
|
// so, subject to the following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||
|
// copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
|
// SOFTWARE.
|
||||
|
|
||||
|
namespace YamlDotNet.Core.Events |
||||
|
{ |
||||
|
internal enum EventType |
||||
|
{ |
||||
|
None, |
||||
|
StreamStart, |
||||
|
StreamEnd, |
||||
|
DocumentStart, |
||||
|
DocumentEnd, |
||||
|
Alias, |
||||
|
Scalar, |
||||
|
SequenceStart, |
||||
|
SequenceEnd, |
||||
|
MappingStart, |
||||
|
MappingEnd, |
||||
|
Comment, |
||||
|
} |
||||
|
} |
@ -0,0 +1,11 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: 3a7e249b62575e048929c7a3e0420470 |
||||
|
MonoImporter: |
||||
|
externalObjects: {} |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,41 @@ |
|||||
|
// This file is part of YamlDotNet - A .NET library for YAML.
|
||||
|
// Copyright (c) Antoine Aubry and contributors
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
// this software and associated documentation files (the "Software"), to deal in
|
||||
|
// the Software without restriction, including without limitation the rights to
|
||||
|
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
|
// of the Software, and to permit persons to whom the Software is furnished to do
|
||||
|
// so, subject to the following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||
|
// copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
|
// SOFTWARE.
|
||||
|
|
||||
|
namespace YamlDotNet.Core.Events |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Callback interface for external event Visitor.
|
||||
|
/// </summary>
|
||||
|
public interface IParsingEventVisitor |
||||
|
{ |
||||
|
void Visit(AnchorAlias e); |
||||
|
void Visit(StreamStart e); |
||||
|
void Visit(StreamEnd e); |
||||
|
void Visit(DocumentStart e); |
||||
|
void Visit(DocumentEnd e); |
||||
|
void Visit(Scalar e); |
||||
|
void Visit(SequenceStart e); |
||||
|
void Visit(SequenceEnd e); |
||||
|
void Visit(MappingStart e); |
||||
|
void Visit(MappingEnd e); |
||||
|
void Visit(Comment e); |
||||
|
} |
||||
|
} |
@ -0,0 +1,11 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: 34cdef8e5d4918149bf7185da865504b |
||||
|
MonoImporter: |
||||
|
externalObjects: {} |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,79 @@ |
|||||
|
// This file is part of YamlDotNet - A .NET library for YAML.
|
||||
|
// Copyright (c) Antoine Aubry and contributors
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
// this software and associated documentation files (the "Software"), to deal in
|
||||
|
// the Software without restriction, including without limitation the rights to
|
||||
|
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
|
// of the Software, and to permit persons to whom the Software is furnished to do
|
||||
|
// so, subject to the following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||
|
// copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
|
// SOFTWARE.
|
||||
|
|
||||
|
namespace YamlDotNet.Core.Events |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Represents a mapping end event.
|
||||
|
/// </summary>
|
||||
|
public class MappingEnd : ParsingEvent |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Gets a value indicating the variation of depth caused by this event.
|
||||
|
/// The value can be either -1, 0 or 1. For start events, it will be 1,
|
||||
|
/// for end events, it will be -1, and for the remaining events, it will be 0.
|
||||
|
/// </summary>
|
||||
|
public override int NestingIncrease => -1; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets the event type, which allows for simpler type comparisons.
|
||||
|
/// </summary>
|
||||
|
internal override EventType Type => EventType.MappingEnd; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="MappingEnd"/> class.
|
||||
|
/// </summary>
|
||||
|
/// <param name="start">The start position of the event.</param>
|
||||
|
/// <param name="end">The end position of the event.</param>
|
||||
|
public MappingEnd(Mark start, Mark end) |
||||
|
: base(start, end) |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="MappingEnd"/> class.
|
||||
|
/// </summary>
|
||||
|
public MappingEnd() |
||||
|
: this(Mark.Empty, Mark.Empty) |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Returns a <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
|
||||
|
/// </summary>
|
||||
|
/// <returns>
|
||||
|
/// A <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
|
||||
|
/// </returns>
|
||||
|
public override string ToString() |
||||
|
{ |
||||
|
return "Mapping end"; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Invokes run-time type specific Visit() method of the specified visitor.
|
||||
|
/// </summary>
|
||||
|
/// <param name="visitor">visitor, may not be null.</param>
|
||||
|
public override void Accept(IParsingEventVisitor visitor) |
||||
|
{ |
||||
|
visitor.Visit(this); |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,12 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: 32f12dd96a8cb4d4792ed76749f67b38 |
||||
|
timeCreated: 1427145263 |
||||
|
licenseType: Store |
||||
|
MonoImporter: |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,116 @@ |
|||||
|
// This file is part of YamlDotNet - A .NET library for YAML.
|
||||
|
// Copyright (c) Antoine Aubry and contributors
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
// this software and associated documentation files (the "Software"), to deal in
|
||||
|
// the Software without restriction, including without limitation the rights to
|
||||
|
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
|
// of the Software, and to permit persons to whom the Software is furnished to do
|
||||
|
// so, subject to the following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||
|
// copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
|
// SOFTWARE.
|
||||
|
|
||||
|
namespace YamlDotNet.Core.Events |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Represents a mapping start event.
|
||||
|
/// </summary>
|
||||
|
public sealed class MappingStart : NodeEvent |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Gets a value indicating the variation of depth caused by this event.
|
||||
|
/// The value can be either -1, 0 or 1. For start events, it will be 1,
|
||||
|
/// for end events, it will be -1, and for the remaining events, it will be 0.
|
||||
|
/// </summary>
|
||||
|
public override int NestingIncrease => 1; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets the event type, which allows for simpler type comparisons.
|
||||
|
/// </summary>
|
||||
|
internal override EventType Type => EventType.MappingStart; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets a value indicating whether this instance is implicit.
|
||||
|
/// </summary>
|
||||
|
/// <value>
|
||||
|
/// <c>true</c> if this instance is implicit; otherwise, <c>false</c>.
|
||||
|
/// </value>
|
||||
|
public bool IsImplicit { get; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets a value indicating whether this instance is canonical.
|
||||
|
/// </summary>
|
||||
|
/// <value></value>
|
||||
|
public override bool IsCanonical => !IsImplicit; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets the style of the mapping.
|
||||
|
/// </summary>
|
||||
|
public MappingStyle Style { get; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="MappingStart"/> class.
|
||||
|
/// </summary>
|
||||
|
/// <param name="anchor">The anchor.</param>
|
||||
|
/// <param name="tag">The tag.</param>
|
||||
|
/// <param name="isImplicit">Indicates whether the event is implicit.</param>
|
||||
|
/// <param name="style">The style of the mapping.</param>
|
||||
|
/// <param name="start">The start position of the event.</param>
|
||||
|
/// <param name="end">The end position of the event.</param>
|
||||
|
public MappingStart(AnchorName anchor, TagName tag, bool isImplicit, MappingStyle style, Mark start, Mark end) |
||||
|
: base(anchor, tag, start, end) |
||||
|
{ |
||||
|
this.IsImplicit = isImplicit; |
||||
|
this.Style = style; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="MappingStart"/> class.
|
||||
|
/// </summary>
|
||||
|
/// <param name="anchor">The anchor.</param>
|
||||
|
/// <param name="tag">The tag.</param>
|
||||
|
/// <param name="isImplicit">Indicates whether the event is implicit.</param>
|
||||
|
/// <param name="style">The style of the mapping.</param>
|
||||
|
public MappingStart(AnchorName anchor, TagName tag, bool isImplicit, MappingStyle style) |
||||
|
: this(anchor, tag, isImplicit, style, Mark.Empty, Mark.Empty) |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="MappingStart"/> class.
|
||||
|
/// </summary>
|
||||
|
public MappingStart() |
||||
|
: this(AnchorName.Empty, TagName.Empty, true, MappingStyle.Any, Mark.Empty, Mark.Empty) |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Returns a <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
|
||||
|
/// </summary>
|
||||
|
/// <returns>
|
||||
|
/// A <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
|
||||
|
/// </returns>
|
||||
|
public override string ToString() |
||||
|
{ |
||||
|
return $"Mapping start [anchor = {Anchor}, tag = {Tag}, isImplicit = {IsImplicit}, style = {Style}]"; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Invokes run-time type specific Visit() method of the specified visitor.
|
||||
|
/// </summary>
|
||||
|
/// <param name="visitor">visitor, may not be null.</param>
|
||||
|
public override void Accept(IParsingEventVisitor visitor) |
||||
|
{ |
||||
|
visitor.Visit(this); |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,12 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: 79e25e33bd9642a4ca1c8c5280b30984 |
||||
|
timeCreated: 1427145264 |
||||
|
licenseType: Store |
||||
|
MonoImporter: |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,44 @@ |
|||||
|
// This file is part of YamlDotNet - A .NET library for YAML.
|
||||
|
// Copyright (c) Antoine Aubry and contributors
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
// this software and associated documentation files (the "Software"), to deal in
|
||||
|
// the Software without restriction, including without limitation the rights to
|
||||
|
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
|
// of the Software, and to permit persons to whom the Software is furnished to do
|
||||
|
// so, subject to the following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||
|
// copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
|
// SOFTWARE.
|
||||
|
|
||||
|
namespace YamlDotNet.Core.Events |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Specifies the style of a mapping.
|
||||
|
/// </summary>
|
||||
|
public enum MappingStyle |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Let the emitter choose the style.
|
||||
|
/// </summary>
|
||||
|
Any, |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// The block mapping style.
|
||||
|
/// </summary>
|
||||
|
Block, |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// The flow mapping style.
|
||||
|
/// </summary>
|
||||
|
Flow |
||||
|
} |
||||
|
} |
@ -0,0 +1,11 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: 7bc885bebca1fac428d7482f06b4f41e |
||||
|
MonoImporter: |
||||
|
externalObjects: {} |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,72 @@ |
|||||
|
// This file is part of YamlDotNet - A .NET library for YAML.
|
||||
|
// Copyright (c) Antoine Aubry and contributors
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
// this software and associated documentation files (the "Software"), to deal in
|
||||
|
// the Software without restriction, including without limitation the rights to
|
||||
|
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
|
// of the Software, and to permit persons to whom the Software is furnished to do
|
||||
|
// so, subject to the following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||
|
// copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
|
// SOFTWARE.
|
||||
|
|
||||
|
namespace YamlDotNet.Core.Events |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Contains the behavior that is common between node events.
|
||||
|
/// </summary>
|
||||
|
public abstract class NodeEvent : ParsingEvent |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Gets the anchor.
|
||||
|
/// </summary>
|
||||
|
/// <value></value>
|
||||
|
public AnchorName Anchor { get; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets the tag.
|
||||
|
/// </summary>
|
||||
|
/// <value></value>
|
||||
|
public TagName Tag { get; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets a value indicating whether this instance is canonical.
|
||||
|
/// </summary>
|
||||
|
/// <value></value>
|
||||
|
public abstract bool IsCanonical |
||||
|
{ |
||||
|
get; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="NodeEvent"/> class.
|
||||
|
/// </summary>
|
||||
|
/// <param name="anchor">The anchor.</param>
|
||||
|
/// <param name="tag">The tag.</param>
|
||||
|
/// <param name="start">The start position of the event.</param>
|
||||
|
/// <param name="end">The end position of the event.</param>
|
||||
|
protected NodeEvent(AnchorName anchor, TagName tag, Mark start, Mark end) |
||||
|
: base(start, end) |
||||
|
{ |
||||
|
this.Anchor = anchor; |
||||
|
this.Tag = tag; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="NodeEvent"/> class.
|
||||
|
/// </summary>
|
||||
|
protected NodeEvent(AnchorName anchor, TagName tag) |
||||
|
: this(anchor, tag, Mark.Empty, Mark.Empty) |
||||
|
{ |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,12 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: 4fa0681239f68a3468223fe925e01d33 |
||||
|
timeCreated: 1427145264 |
||||
|
licenseType: Store |
||||
|
MonoImporter: |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,68 @@ |
|||||
|
// This file is part of YamlDotNet - A .NET library for YAML.
|
||||
|
// Copyright (c) Antoine Aubry and contributors
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
// this software and associated documentation files (the "Software"), to deal in
|
||||
|
// the Software without restriction, including without limitation the rights to
|
||||
|
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
|
// of the Software, and to permit persons to whom the Software is furnished to do
|
||||
|
// so, subject to the following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||
|
// copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
|
// SOFTWARE.
|
||||
|
|
||||
|
namespace YamlDotNet.Core.Events |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Base class for parsing events.
|
||||
|
/// </summary>
|
||||
|
public abstract class ParsingEvent |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Gets a value indicating the variation of depth caused by this event.
|
||||
|
/// The value can be either -1, 0 or 1. For start events, it will be 1,
|
||||
|
/// for end events, it will be -1, and for the remaining events, it will be 0.
|
||||
|
/// </summary>
|
||||
|
public virtual int NestingIncrease => 0; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets the event type, which allows for simpler type comparisons.
|
||||
|
/// </summary>
|
||||
|
internal abstract EventType Type { get; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets the position in the input stream where the event starts.
|
||||
|
/// </summary>
|
||||
|
public Mark Start { get; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets the position in the input stream where the event ends.
|
||||
|
/// </summary>
|
||||
|
public Mark End { get; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Accepts the specified visitor.
|
||||
|
/// </summary>
|
||||
|
/// <param name="visitor">Visitor to accept, may not be null</param>
|
||||
|
public abstract void Accept(IParsingEventVisitor visitor); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="ParsingEvent"/> class.
|
||||
|
/// </summary>
|
||||
|
/// <param name="start">The start position of the event.</param>
|
||||
|
/// <param name="end">The end position of the event.</param>
|
||||
|
internal ParsingEvent(Mark start, Mark end) |
||||
|
{ |
||||
|
this.Start = start ?? throw new System.ArgumentNullException(nameof(start)); |
||||
|
this.End = end ?? throw new System.ArgumentNullException(nameof(end)); |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,12 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: 5dcecbbabc813c74bb16837d87a36f7e |
||||
|
timeCreated: 1427145264 |
||||
|
licenseType: Store |
||||
|
MonoImporter: |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,143 @@ |
|||||
|
// This file is part of YamlDotNet - A .NET library for YAML.
|
||||
|
// Copyright (c) Antoine Aubry and contributors
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
// this software and associated documentation files (the "Software"), to deal in
|
||||
|
// the Software without restriction, including without limitation the rights to
|
||||
|
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
|
// of the Software, and to permit persons to whom the Software is furnished to do
|
||||
|
// so, subject to the following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||
|
// copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
|
// SOFTWARE.
|
||||
|
|
||||
|
namespace YamlDotNet.Core.Events |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Represents a scalar event.
|
||||
|
/// </summary>
|
||||
|
public sealed class Scalar : NodeEvent |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Gets the event type, which allows for simpler type comparisons.
|
||||
|
/// </summary>
|
||||
|
internal override EventType Type => EventType.Scalar; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets the value.
|
||||
|
/// </summary>
|
||||
|
/// <value>The value.</value>
|
||||
|
public string Value { get; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets the style of the scalar.
|
||||
|
/// </summary>
|
||||
|
/// <value>The style.</value>
|
||||
|
public ScalarStyle Style { get; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets a value indicating whether the tag is optional for the plain style.
|
||||
|
/// </summary>
|
||||
|
public bool IsPlainImplicit { get; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets a value indicating whether the tag is optional for any non-plain style.
|
||||
|
/// </summary>
|
||||
|
public bool IsQuotedImplicit { get; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets a value indicating whether this instance is canonical.
|
||||
|
/// </summary>
|
||||
|
/// <value></value>
|
||||
|
public override bool IsCanonical => !IsPlainImplicit && !IsQuotedImplicit; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="Scalar"/> class.
|
||||
|
/// </summary>
|
||||
|
/// <param name="anchor">The anchor.</param>
|
||||
|
/// <param name="tag">The tag.</param>
|
||||
|
/// <param name="value">The value.</param>
|
||||
|
/// <param name="style">The style.</param>
|
||||
|
/// <param name="isPlainImplicit">.</param>
|
||||
|
/// <param name="isQuotedImplicit">.</param>
|
||||
|
/// <param name="start">The start position of the event.</param>
|
||||
|
/// <param name="end">The end position of the event.</param>
|
||||
|
public Scalar(AnchorName anchor, TagName tag, string value, ScalarStyle style, bool isPlainImplicit, bool isQuotedImplicit, Mark start, Mark end) |
||||
|
: base(anchor, tag, start, end) |
||||
|
{ |
||||
|
this.Value = value; |
||||
|
this.Style = style; |
||||
|
this.IsPlainImplicit = isPlainImplicit; |
||||
|
this.IsQuotedImplicit = isQuotedImplicit; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="Scalar"/> class.
|
||||
|
/// </summary>
|
||||
|
/// <param name="anchor">The anchor.</param>
|
||||
|
/// <param name="tag">The tag.</param>
|
||||
|
/// <param name="value">The value.</param>
|
||||
|
/// <param name="style">The style.</param>
|
||||
|
/// <param name="isPlainImplicit">.</param>
|
||||
|
/// <param name="isQuotedImplicit">.</param>
|
||||
|
public Scalar(AnchorName anchor, TagName tag, string value, ScalarStyle style, bool isPlainImplicit, bool isQuotedImplicit) |
||||
|
: this(anchor, tag, value, style, isPlainImplicit, isQuotedImplicit, Mark.Empty, Mark.Empty) |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="Scalar"/> class.
|
||||
|
/// </summary>
|
||||
|
/// <param name="value">The value.</param>
|
||||
|
public Scalar(string value) |
||||
|
: this(AnchorName.Empty, TagName.Empty, value, ScalarStyle.Any, true, true, Mark.Empty, Mark.Empty) |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="Scalar"/> class.
|
||||
|
/// </summary>
|
||||
|
/// <param name="tag">The tag.</param>
|
||||
|
/// <param name="value">The value.</param>
|
||||
|
public Scalar(TagName tag, string value) |
||||
|
: this(AnchorName.Empty, tag, value, ScalarStyle.Any, true, true, Mark.Empty, Mark.Empty) |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="Scalar"/> class.
|
||||
|
/// </summary>
|
||||
|
public Scalar(AnchorName anchor, TagName tag, string value) |
||||
|
: this(anchor, tag, value, ScalarStyle.Any, true, true, Mark.Empty, Mark.Empty) |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Returns a <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
|
||||
|
/// </summary>
|
||||
|
/// <returns>
|
||||
|
/// A <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
|
||||
|
/// </returns>
|
||||
|
public override string ToString() |
||||
|
{ |
||||
|
return $"Scalar [anchor = {Anchor}, tag = {Tag}, value = {Value}, style = {Style}, isPlainImplicit = {IsPlainImplicit}, isQuotedImplicit = {IsQuotedImplicit}]"; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Invokes run-time type specific Visit() method of the specified visitor.
|
||||
|
/// </summary>
|
||||
|
/// <param name="visitor">visitor, may not be null.</param>
|
||||
|
public override void Accept(IParsingEventVisitor visitor) |
||||
|
{ |
||||
|
visitor.Visit(this); |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,12 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: 7c9ef7a4a2cc85b40aea8fda0d00cb33 |
||||
|
timeCreated: 1427145265 |
||||
|
licenseType: Store |
||||
|
MonoImporter: |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,79 @@ |
|||||
|
// This file is part of YamlDotNet - A .NET library for YAML.
|
||||
|
// Copyright (c) Antoine Aubry and contributors
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
// this software and associated documentation files (the "Software"), to deal in
|
||||
|
// the Software without restriction, including without limitation the rights to
|
||||
|
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
|
// of the Software, and to permit persons to whom the Software is furnished to do
|
||||
|
// so, subject to the following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||
|
// copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
|
// SOFTWARE.
|
||||
|
|
||||
|
namespace YamlDotNet.Core.Events |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Represents a sequence end event.
|
||||
|
/// </summary>
|
||||
|
public sealed class SequenceEnd : ParsingEvent |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Gets a value indicating the variation of depth caused by this event.
|
||||
|
/// The value can be either -1, 0 or 1. For start events, it will be 1,
|
||||
|
/// for end events, it will be -1, and for the remaining events, it will be 0.
|
||||
|
/// </summary>
|
||||
|
public override int NestingIncrease => -1; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets the event type, which allows for simpler type comparisons.
|
||||
|
/// </summary>
|
||||
|
internal override EventType Type => EventType.SequenceEnd; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="SequenceEnd"/> class.
|
||||
|
/// </summary>
|
||||
|
/// <param name="start">The start position of the event.</param>
|
||||
|
/// <param name="end">The end position of the event.</param>
|
||||
|
public SequenceEnd(Mark start, Mark end) |
||||
|
: base(start, end) |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="SequenceEnd"/> class.
|
||||
|
/// </summary>
|
||||
|
public SequenceEnd() |
||||
|
: this(Mark.Empty, Mark.Empty) |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Returns a <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
|
||||
|
/// </summary>
|
||||
|
/// <returns>
|
||||
|
/// A <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
|
||||
|
/// </returns>
|
||||
|
public override string ToString() |
||||
|
{ |
||||
|
return "Sequence end"; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Invokes run-time type specific Visit() method of the specified visitor.
|
||||
|
/// </summary>
|
||||
|
/// <param name="visitor">visitor, may not be null.</param>
|
||||
|
public override void Accept(IParsingEventVisitor visitor) |
||||
|
{ |
||||
|
visitor.Visit(this); |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,12 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: 37a7a63228a311b46ae903ea604105df |
||||
|
timeCreated: 1427145263 |
||||
|
licenseType: Store |
||||
|
MonoImporter: |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,105 @@ |
|||||
|
// This file is part of YamlDotNet - A .NET library for YAML.
|
||||
|
// Copyright (c) Antoine Aubry and contributors
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
// this software and associated documentation files (the "Software"), to deal in
|
||||
|
// the Software without restriction, including without limitation the rights to
|
||||
|
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
|
// of the Software, and to permit persons to whom the Software is furnished to do
|
||||
|
// so, subject to the following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||
|
// copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
|
// SOFTWARE.
|
||||
|
|
||||
|
namespace YamlDotNet.Core.Events |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Represents a sequence start event.
|
||||
|
/// </summary>
|
||||
|
public sealed class SequenceStart : NodeEvent |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Gets a value indicating the variation of depth caused by this event.
|
||||
|
/// The value can be either -1, 0 or 1. For start events, it will be 1,
|
||||
|
/// for end events, it will be -1, and for the remaining events, it will be 0.
|
||||
|
/// </summary>
|
||||
|
public override int NestingIncrease => 1; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets the event type, which allows for simpler type comparisons.
|
||||
|
/// </summary>
|
||||
|
internal override EventType Type => EventType.SequenceStart; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets a value indicating whether this instance is implicit.
|
||||
|
/// </summary>
|
||||
|
/// <value>
|
||||
|
/// <c>true</c> if this instance is implicit; otherwise, <c>false</c>.
|
||||
|
/// </value>
|
||||
|
public bool IsImplicit { get; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets a value indicating whether this instance is canonical.
|
||||
|
/// </summary>
|
||||
|
/// <value></value>
|
||||
|
public override bool IsCanonical => !IsImplicit; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets the style.
|
||||
|
/// </summary>
|
||||
|
/// <value>The style.</value>
|
||||
|
public SequenceStyle Style { get; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="SequenceStart"/> class.
|
||||
|
/// </summary>
|
||||
|
/// <param name="anchor">The anchor.</param>
|
||||
|
/// <param name="tag">The tag.</param>
|
||||
|
/// <param name="isImplicit">if set to <c>true</c> [is implicit].</param>
|
||||
|
/// <param name="style">The style.</param>
|
||||
|
/// <param name="start">The start position of the event.</param>
|
||||
|
/// <param name="end">The end position of the event.</param>
|
||||
|
public SequenceStart(AnchorName anchor, TagName tag, bool isImplicit, SequenceStyle style, Mark start, Mark end) |
||||
|
: base(anchor, tag, start, end) |
||||
|
{ |
||||
|
this.IsImplicit = isImplicit; |
||||
|
this.Style = style; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="SequenceStart"/> class.
|
||||
|
/// </summary>
|
||||
|
public SequenceStart(AnchorName anchor, TagName tag, bool isImplicit, SequenceStyle style) |
||||
|
: this(anchor, tag, isImplicit, style, Mark.Empty, Mark.Empty) |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Returns a <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
|
||||
|
/// </summary>
|
||||
|
/// <returns>
|
||||
|
/// A <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
|
||||
|
/// </returns>
|
||||
|
public override string ToString() |
||||
|
{ |
||||
|
return $"Sequence start [anchor = {Anchor}, tag = {Tag}, isImplicit = {IsImplicit}, style = {Style}]"; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Invokes run-time type specific Visit() method of the specified visitor.
|
||||
|
/// </summary>
|
||||
|
/// <param name="visitor">visitor, may not be null.</param>
|
||||
|
public override void Accept(IParsingEventVisitor visitor) |
||||
|
{ |
||||
|
visitor.Visit(this); |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,12 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: d0414698332e0c643ad3fddd1b907b5e |
||||
|
timeCreated: 1427145266 |
||||
|
licenseType: Store |
||||
|
MonoImporter: |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,44 @@ |
|||||
|
// This file is part of YamlDotNet - A .NET library for YAML.
|
||||
|
// Copyright (c) Antoine Aubry and contributors
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
// this software and associated documentation files (the "Software"), to deal in
|
||||
|
// the Software without restriction, including without limitation the rights to
|
||||
|
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
|
// of the Software, and to permit persons to whom the Software is furnished to do
|
||||
|
// so, subject to the following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||
|
// copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
|
// SOFTWARE.
|
||||
|
|
||||
|
namespace YamlDotNet.Core.Events |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Specifies the style of a sequence.
|
||||
|
/// </summary>
|
||||
|
public enum SequenceStyle |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Let the emitter choose the style.
|
||||
|
/// </summary>
|
||||
|
Any, |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// The block sequence style.
|
||||
|
/// </summary>
|
||||
|
Block, |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// The flow sequence style.
|
||||
|
/// </summary>
|
||||
|
Flow |
||||
|
} |
||||
|
} |
@ -0,0 +1,11 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: f66466d1eedabbe4db084d2d0e64415b |
||||
|
MonoImporter: |
||||
|
externalObjects: {} |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,91 @@ |
|||||
|
// This file is part of YamlDotNet - A .NET library for YAML.
|
||||
|
// Copyright (c) Antoine Aubry and contributors
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
// this software and associated documentation files (the "Software"), to deal in
|
||||
|
// the Software without restriction, including without limitation the rights to
|
||||
|
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
|
// of the Software, and to permit persons to whom the Software is furnished to do
|
||||
|
// so, subject to the following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||
|
// copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
|
// SOFTWARE.
|
||||
|
|
||||
|
namespace YamlDotNet.Core.Events |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Represents a stream end event.
|
||||
|
/// </summary>
|
||||
|
public sealed class StreamEnd : ParsingEvent |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Gets a value indicating the variation of depth caused by this event.
|
||||
|
/// The value can be either -1, 0 or 1. For start events, it will be 1,
|
||||
|
/// for end events, it will be -1, and for the remaining events, it will be 0.
|
||||
|
/// </summary>
|
||||
|
public override int NestingIncrease |
||||
|
{ |
||||
|
get |
||||
|
{ |
||||
|
return -1; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets the event type, which allows for simpler type comparisons.
|
||||
|
/// </summary>
|
||||
|
internal override EventType Type |
||||
|
{ |
||||
|
get |
||||
|
{ |
||||
|
return EventType.StreamEnd; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="StreamEnd"/> class.
|
||||
|
/// </summary>
|
||||
|
/// <param name="start">The start position of the event.</param>
|
||||
|
/// <param name="end">The end position of the event.</param>
|
||||
|
public StreamEnd(Mark start, Mark end) |
||||
|
: base(start, end) |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="StreamEnd"/> class.
|
||||
|
/// </summary>
|
||||
|
public StreamEnd() |
||||
|
: this(Mark.Empty, Mark.Empty) |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Returns a <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
|
||||
|
/// </summary>
|
||||
|
/// <returns>
|
||||
|
/// A <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
|
||||
|
/// </returns>
|
||||
|
public override string ToString() |
||||
|
{ |
||||
|
return "Stream end"; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Invokes run-time type specific Visit() method of the specified visitor.
|
||||
|
/// </summary>
|
||||
|
/// <param name="visitor">visitor, may not be null.</param>
|
||||
|
public override void Accept(IParsingEventVisitor visitor) |
||||
|
{ |
||||
|
visitor.Visit(this); |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,12 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: 703673d959fca474691646e24e9ccedb |
||||
|
timeCreated: 1427145264 |
||||
|
licenseType: Store |
||||
|
MonoImporter: |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,91 @@ |
|||||
|
// This file is part of YamlDotNet - A .NET library for YAML.
|
||||
|
// Copyright (c) Antoine Aubry and contributors
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
// this software and associated documentation files (the "Software"), to deal in
|
||||
|
// the Software without restriction, including without limitation the rights to
|
||||
|
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
|
// of the Software, and to permit persons to whom the Software is furnished to do
|
||||
|
// so, subject to the following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||
|
// copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
|
// SOFTWARE.
|
||||
|
|
||||
|
namespace YamlDotNet.Core.Events |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Represents a stream start event.
|
||||
|
/// </summary>
|
||||
|
public sealed class StreamStart : ParsingEvent |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Gets a value indicating the variation of depth caused by this event.
|
||||
|
/// The value can be either -1, 0 or 1. For start events, it will be 1,
|
||||
|
/// for end events, it will be -1, and for the remaining events, it will be 0.
|
||||
|
/// </summary>
|
||||
|
public override int NestingIncrease |
||||
|
{ |
||||
|
get |
||||
|
{ |
||||
|
return 1; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets the event type, which allows for simpler type comparisons.
|
||||
|
/// </summary>
|
||||
|
internal override EventType Type |
||||
|
{ |
||||
|
get |
||||
|
{ |
||||
|
return EventType.StreamStart; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="StreamStart"/> class.
|
||||
|
/// </summary>
|
||||
|
public StreamStart() |
||||
|
: this(Mark.Empty, Mark.Empty) |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="StreamStart"/> class.
|
||||
|
/// </summary>
|
||||
|
/// <param name="start">The start position of the event.</param>
|
||||
|
/// <param name="end">The end position of the event.</param>
|
||||
|
public StreamStart(Mark start, Mark end) |
||||
|
: base(start, end) |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Returns a <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
|
||||
|
/// </summary>
|
||||
|
/// <returns>
|
||||
|
/// A <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
|
||||
|
/// </returns>
|
||||
|
public override string ToString() |
||||
|
{ |
||||
|
return "Stream start"; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Invokes run-time type specific Visit() method of the specified visitor.
|
||||
|
/// </summary>
|
||||
|
/// <param name="visitor">visitor, may not be null.</param>
|
||||
|
public override void Accept(IParsingEventVisitor visitor) |
||||
|
{ |
||||
|
visitor.Visit(this); |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,12 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: 8127a5c9cbbe94547a9c1d39fee327db |
||||
|
timeCreated: 1427145265 |
||||
|
licenseType: Store |
||||
|
MonoImporter: |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,59 @@ |
|||||
|
// This file is part of YamlDotNet - A .NET library for YAML.
|
||||
|
// Copyright (c) Antoine Aubry and contributors
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
// this software and associated documentation files (the "Software"), to deal in
|
||||
|
// the Software without restriction, including without limitation the rights to
|
||||
|
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
|
// of the Software, and to permit persons to whom the Software is furnished to do
|
||||
|
// so, subject to the following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||
|
// copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
|
// SOFTWARE.
|
||||
|
|
||||
|
using System; |
||||
|
|
||||
|
namespace YamlDotNet.Core |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// The exception that is thrown when an alias references an anchor
|
||||
|
/// that has not yet been defined in a context that does not support forward references.
|
||||
|
/// </summary>
|
||||
|
public sealed class ForwardAnchorNotSupportedException : YamlException |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="AnchorNotFoundException"/> class.
|
||||
|
/// </summary>
|
||||
|
/// <param name="message">The message.</param>
|
||||
|
public ForwardAnchorNotSupportedException(string message) |
||||
|
: base(message) |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="AnchorNotFoundException"/> class.
|
||||
|
/// </summary>
|
||||
|
public ForwardAnchorNotSupportedException(Mark start, Mark end, string message) |
||||
|
: base(start, end, message) |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="AnchorNotFoundException"/> class.
|
||||
|
/// </summary>
|
||||
|
/// <param name="message">The message.</param>
|
||||
|
/// <param name="inner">The inner.</param>
|
||||
|
public ForwardAnchorNotSupportedException(string message, Exception inner) |
||||
|
: base(message, inner) |
||||
|
{ |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,12 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: 4a2bedb057911514fb2a96c1cc2db68d |
||||
|
timeCreated: 1427145264 |
||||
|
licenseType: Store |
||||
|
MonoImporter: |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,60 @@ |
|||||
|
// This file is part of YamlDotNet - A .NET library for YAML.
|
||||
|
// Copyright (c) Antoine Aubry and contributors
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
// this software and associated documentation files (the "Software"), to deal in
|
||||
|
// the Software without restriction, including without limitation the rights to
|
||||
|
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
|
// of the Software, and to permit persons to whom the Software is furnished to do
|
||||
|
// so, subject to the following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||
|
// copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
|
// SOFTWARE.
|
||||
|
|
||||
|
namespace YamlDotNet.Core |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Supports implementations of <see cref="object.GetHashCode"/> by providing methods to combine two hash codes.
|
||||
|
/// </summary>
|
||||
|
internal static class HashCode |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Combines two hash codes.
|
||||
|
/// </summary>
|
||||
|
/// <param name="h1">The first hash code.</param>
|
||||
|
/// <param name="h2">The second hash code.</param>
|
||||
|
/// <returns></returns>
|
||||
|
public static int CombineHashCodes(int h1, int h2) |
||||
|
{ |
||||
|
return ((h1 << 5) + h1) ^ h2; |
||||
|
} |
||||
|
|
||||
|
public static int CombineHashCodes(int h1, object? o2) |
||||
|
{ |
||||
|
return CombineHashCodes(h1, GetHashCode(o2)); |
||||
|
} |
||||
|
|
||||
|
public static int CombineHashCodes(object? first, params object?[] others) |
||||
|
{ |
||||
|
var hashCode = GetHashCode(first); |
||||
|
foreach (var other in others) |
||||
|
{ |
||||
|
hashCode = CombineHashCodes(hashCode, other); |
||||
|
} |
||||
|
return hashCode; |
||||
|
} |
||||
|
|
||||
|
private static int GetHashCode(object? obj) |
||||
|
{ |
||||
|
return obj != null ? obj.GetHashCode() : 0; |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,12 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: 2cb3fe21d8ebcf0458b6008e1ba2ac08 |
||||
|
timeCreated: 1427145263 |
||||
|
licenseType: Store |
||||
|
MonoImporter: |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,36 @@ |
|||||
|
// This file is part of YamlDotNet - A .NET library for YAML.
|
||||
|
// Copyright (c) Antoine Aubry and contributors
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
// this software and associated documentation files (the "Software"), to deal in
|
||||
|
// the Software without restriction, including without limitation the rights to
|
||||
|
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
|
// of the Software, and to permit persons to whom the Software is furnished to do
|
||||
|
// so, subject to the following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||
|
// copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
|
// SOFTWARE.
|
||||
|
|
||||
|
using YamlDotNet.Core.Events; |
||||
|
|
||||
|
namespace YamlDotNet.Core |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Represents a YAML stream emitter.
|
||||
|
/// </summary>
|
||||
|
public interface IEmitter |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Emits an event.
|
||||
|
/// </summary>
|
||||
|
void Emit(ParsingEvent @event); |
||||
|
} |
||||
|
} |
@ -0,0 +1,11 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: ea595b7247a52d84796adae58a272de0 |
||||
|
MonoImporter: |
||||
|
externalObjects: {} |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,42 @@ |
|||||
|
// This file is part of YamlDotNet - A .NET library for YAML.
|
||||
|
// Copyright (c) Antoine Aubry and contributors
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
// this software and associated documentation files (the "Software"), to deal in
|
||||
|
// the Software without restriction, including without limitation the rights to
|
||||
|
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
|
// of the Software, and to permit persons to whom the Software is furnished to do
|
||||
|
// so, subject to the following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||
|
// copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
|
// SOFTWARE.
|
||||
|
|
||||
|
namespace YamlDotNet.Core |
||||
|
{ |
||||
|
internal interface ILookAheadBuffer |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Gets a value indicating whether the end of the input reader has been reached.
|
||||
|
/// </summary>
|
||||
|
bool EndOfInput { get; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets the character at the specified offset.
|
||||
|
/// </summary>
|
||||
|
char Peek(int offset); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Skips the next <paramref name="length"/> characters. Those characters must have been
|
||||
|
/// obtained first by calling the <see cref="Peek"/> method.
|
||||
|
/// </summary>
|
||||
|
void Skip(int length); |
||||
|
} |
||||
|
} |
@ -0,0 +1,12 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: 574e18619ff79614f83b7fbaec47ae8c |
||||
|
timeCreated: 1427145264 |
||||
|
licenseType: Store |
||||
|
MonoImporter: |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,43 @@ |
|||||
|
// This file is part of YamlDotNet - A .NET library for YAML.
|
||||
|
// Copyright (c) Antoine Aubry and contributors
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
// this software and associated documentation files (the "Software"), to deal in
|
||||
|
// the Software without restriction, including without limitation the rights to
|
||||
|
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
|
// of the Software, and to permit persons to whom the Software is furnished to do
|
||||
|
// so, subject to the following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||
|
// copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
|
// SOFTWARE.
|
||||
|
|
||||
|
using YamlDotNet.Core.Events; |
||||
|
|
||||
|
namespace YamlDotNet.Core |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Represents a YAML stream parser.
|
||||
|
/// </summary>
|
||||
|
public interface IParser |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Gets the current event. Returns null before the first call to <see cref="MoveNext" />,
|
||||
|
/// and also after <see cref="MoveNext" /> returns false.
|
||||
|
/// </summary>
|
||||
|
ParsingEvent? Current { get; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Moves to the next event.
|
||||
|
/// </summary>
|
||||
|
/// <returns>Returns true if there are more events available, otherwise returns false.</returns>
|
||||
|
bool MoveNext(); |
||||
|
} |
||||
|
} |
@ -0,0 +1,12 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: fc2416e849d87aa4598d335c421f7117 |
||||
|
timeCreated: 1427145267 |
||||
|
licenseType: Store |
||||
|
MonoImporter: |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,58 @@ |
|||||
|
// This file is part of YamlDotNet - A .NET library for YAML.
|
||||
|
// Copyright (c) Antoine Aubry and contributors
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
// this software and associated documentation files (the "Software"), to deal in
|
||||
|
// the Software without restriction, including without limitation the rights to
|
||||
|
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
|
// of the Software, and to permit persons to whom the Software is furnished to do
|
||||
|
// so, subject to the following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||
|
// copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
|
// SOFTWARE.
|
||||
|
|
||||
|
using YamlDotNet.Core.Tokens; |
||||
|
|
||||
|
namespace YamlDotNet.Core |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Defines the interface for a stand-alone YAML scanner that
|
||||
|
/// converts a sequence of characters into a sequence of YAML tokens.
|
||||
|
/// </summary>
|
||||
|
public interface IScanner |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Gets the current position inside the input stream.
|
||||
|
/// </summary>
|
||||
|
/// <value>The current position.</value>
|
||||
|
Mark CurrentPosition { get; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets the current token.
|
||||
|
/// </summary>
|
||||
|
Token? Current { get; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Moves to the next token and consumes the current token.
|
||||
|
/// </summary>
|
||||
|
bool MoveNext(); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Moves to the next token without consuming the current token.
|
||||
|
/// </summary>
|
||||
|
bool MoveNextWithoutConsuming(); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Consumes the current token.
|
||||
|
/// </summary>
|
||||
|
void ConsumeCurrent(); |
||||
|
} |
||||
|
} |
@ -0,0 +1,12 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: f5c28b5ab2d236944a6f5f2858aa75d8 |
||||
|
timeCreated: 1427145267 |
||||
|
licenseType: Store |
||||
|
MonoImporter: |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,216 @@ |
|||||
|
// This file is part of YamlDotNet - A .NET library for YAML.
|
||||
|
// Copyright (c) Antoine Aubry and contributors
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
// this software and associated documentation files (the "Software"), to deal in
|
||||
|
// the Software without restriction, including without limitation the rights to
|
||||
|
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
|
// of the Software, and to permit persons to whom the Software is furnished to do
|
||||
|
// so, subject to the following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||
|
// copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
|
// SOFTWARE.
|
||||
|
|
||||
|
using System; |
||||
|
using System.Collections; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Diagnostics; |
||||
|
using YamlDotNet.Helpers; |
||||
|
|
||||
|
namespace YamlDotNet.Core |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Generic queue on which items may be inserted
|
||||
|
/// </summary>
|
||||
|
public sealed class InsertionQueue<T> : IEnumerable<T> |
||||
|
{ |
||||
|
private const int DefaultInitialCapacity = 1 << 7; // Must be a power of 2
|
||||
|
|
||||
|
// Circular buffer
|
||||
|
private T[] items; |
||||
|
private int readPtr; |
||||
|
private int writePtr; |
||||
|
private int mask; |
||||
|
private int count = 0; |
||||
|
|
||||
|
public InsertionQueue(int initialCapacity = DefaultInitialCapacity) |
||||
|
{ |
||||
|
if (initialCapacity <= 0) |
||||
|
{ |
||||
|
throw new ArgumentOutOfRangeException(nameof(initialCapacity), "The initial capacity must be a positive number."); |
||||
|
} |
||||
|
|
||||
|
if (!initialCapacity.IsPowerOfTwo()) |
||||
|
{ |
||||
|
throw new ArgumentException("The initial capacity must be a power of 2.", nameof(initialCapacity)); |
||||
|
} |
||||
|
|
||||
|
items = new T[initialCapacity]; |
||||
|
readPtr = initialCapacity / 2; |
||||
|
writePtr = initialCapacity / 2; |
||||
|
mask = initialCapacity - 1; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets the number of items that are contained by the queue.
|
||||
|
/// </summary>
|
||||
|
public int Count => count; |
||||
|
public int Capacity => items.Length; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Enqueues the specified item.
|
||||
|
/// </summary>
|
||||
|
/// <param name="item">The item to be enqueued.</param>
|
||||
|
public void Enqueue(T item) |
||||
|
{ |
||||
|
ResizeIfNeeded(); |
||||
|
|
||||
|
items[writePtr] = item; |
||||
|
writePtr = (writePtr - 1) & mask; |
||||
|
++count; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Dequeues an item.
|
||||
|
/// </summary>
|
||||
|
/// <returns>Returns the item that been dequeued.</returns>
|
||||
|
public T Dequeue() |
||||
|
{ |
||||
|
if (count == 0) |
||||
|
{ |
||||
|
throw new InvalidOperationException("The queue is empty"); |
||||
|
} |
||||
|
|
||||
|
var item = items[readPtr]; |
||||
|
readPtr = (readPtr - 1) & mask; |
||||
|
--count; |
||||
|
return item; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Inserts an item at the specified index.
|
||||
|
/// </summary>
|
||||
|
/// <param name="index">The index where to insert the item.</param>
|
||||
|
/// <param name="item">The item to be inserted.</param>
|
||||
|
public void Insert(int index, T item) |
||||
|
{ |
||||
|
if (index > count) |
||||
|
{ |
||||
|
throw new InvalidOperationException("Cannot insert outside of the bounds of the queue"); |
||||
|
} |
||||
|
|
||||
|
ResizeIfNeeded(); |
||||
|
|
||||
|
CalculateInsertionParameters( |
||||
|
mask, count, index, |
||||
|
ref readPtr, ref writePtr, |
||||
|
out var insertPtr, |
||||
|
out var copyIndex, out var copyOffset, out var copyLength |
||||
|
); |
||||
|
|
||||
|
if (copyLength != 0) |
||||
|
{ |
||||
|
Array.Copy(items, copyIndex, items, copyIndex + copyOffset, copyLength); |
||||
|
} |
||||
|
|
||||
|
items[insertPtr] = item; |
||||
|
++count; |
||||
|
} |
||||
|
|
||||
|
private void ResizeIfNeeded() |
||||
|
{ |
||||
|
var capacity = items.Length; |
||||
|
if (count == capacity) |
||||
|
{ |
||||
|
Debug.Assert(readPtr == writePtr); |
||||
|
|
||||
|
var newItems = new T[capacity * 2]; |
||||
|
|
||||
|
var beginCount = readPtr + 1; |
||||
|
if (beginCount > 0) |
||||
|
{ |
||||
|
Array.Copy(items, 0, newItems, 0, beginCount); |
||||
|
} |
||||
|
|
||||
|
writePtr += capacity; |
||||
|
var endCount = capacity - beginCount; |
||||
|
if (endCount > 0) |
||||
|
{ |
||||
|
Array.Copy(items, readPtr + 1, newItems, writePtr + 1, endCount); |
||||
|
} |
||||
|
|
||||
|
items = newItems; |
||||
|
mask = mask * 2 + 1; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
internal static void CalculateInsertionParameters(int mask, int count, int index, ref int readPtr, ref int writePtr, out int insertPtr, out int copyIndex, out int copyOffset, out int copyLength) |
||||
|
{ |
||||
|
var indexOfLastElement = (readPtr + 1) & mask; |
||||
|
if (index == 0) |
||||
|
{ |
||||
|
insertPtr = readPtr = indexOfLastElement; |
||||
|
|
||||
|
// No copy is needed
|
||||
|
copyIndex = 0; |
||||
|
copyOffset = 0; |
||||
|
copyLength = 0; |
||||
|
return; |
||||
|
} |
||||
|
|
||||
|
insertPtr = (readPtr - index) & mask; |
||||
|
if (index == count) |
||||
|
{ |
||||
|
writePtr = (writePtr - 1) & mask; |
||||
|
|
||||
|
// No copy is needed
|
||||
|
copyIndex = 0; |
||||
|
copyOffset = 0; |
||||
|
copyLength = 0; |
||||
|
return; |
||||
|
} |
||||
|
|
||||
|
var canMoveRight = indexOfLastElement >= insertPtr; |
||||
|
var moveRightCost = canMoveRight ? readPtr - insertPtr : int.MaxValue; |
||||
|
|
||||
|
var canMoveLeft = writePtr <= insertPtr; |
||||
|
var moveLeftCost = canMoveLeft ? insertPtr - writePtr : int.MaxValue; |
||||
|
|
||||
|
if (moveRightCost <= moveLeftCost) |
||||
|
{ |
||||
|
++insertPtr; |
||||
|
++readPtr; |
||||
|
copyIndex = insertPtr; |
||||
|
copyOffset = 1; |
||||
|
copyLength = moveRightCost; |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
copyIndex = writePtr + 1; |
||||
|
copyOffset = -1; |
||||
|
copyLength = moveLeftCost; |
||||
|
writePtr = (writePtr - 1) & mask; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
public IEnumerator<T> GetEnumerator() |
||||
|
{ |
||||
|
var ptr = readPtr; |
||||
|
for (var i = 0; i < Count; i++) |
||||
|
{ |
||||
|
yield return items[ptr]; |
||||
|
ptr = (ptr - 1) & mask; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); |
||||
|
} |
||||
|
} |
@ -0,0 +1,12 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: d5ebdfa25d33598469684afe6f672277 |
||||
|
timeCreated: 1427145266 |
||||
|
licenseType: Store |
||||
|
MonoImporter: |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,170 @@ |
|||||
|
// This file is part of YamlDotNet - A .NET library for YAML.
|
||||
|
// Copyright (c) Antoine Aubry and contributors
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
// this software and associated documentation files (the "Software"), to deal in
|
||||
|
// the Software without restriction, including without limitation the rights to
|
||||
|
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
|
// of the Software, and to permit persons to whom the Software is furnished to do
|
||||
|
// so, subject to the following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||
|
// copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
|
// SOFTWARE.
|
||||
|
|
||||
|
using System; |
||||
|
using System.Diagnostics; |
||||
|
using System.IO; |
||||
|
using YamlDotNet.Helpers; |
||||
|
|
||||
|
namespace YamlDotNet.Core |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Provides access to a stream and allows to peek at the next characters,
|
||||
|
/// up to the buffer's capacity.
|
||||
|
/// </summary>
|
||||
|
/// <remarks>
|
||||
|
/// This class implements a circular buffer with a fixed capacity.
|
||||
|
/// </remarks>
|
||||
|
public sealed class LookAheadBuffer : ILookAheadBuffer |
||||
|
{ |
||||
|
private readonly TextReader input; |
||||
|
private readonly char[] buffer; |
||||
|
private readonly int blockSize; |
||||
|
private readonly int mask; |
||||
|
private int firstIndex; |
||||
|
private int writeOffset; |
||||
|
private int count; |
||||
|
private bool endOfInput; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="LookAheadBuffer"/> class.
|
||||
|
/// </summary>
|
||||
|
/// <param name="input">The input.</param>
|
||||
|
/// <param name="capacity">The capacity.</param>
|
||||
|
public LookAheadBuffer(TextReader input, int capacity) |
||||
|
{ |
||||
|
if (capacity < 1) |
||||
|
{ |
||||
|
throw new ArgumentOutOfRangeException(nameof(capacity), "The capacity must be positive."); |
||||
|
} |
||||
|
|
||||
|
if (!capacity.IsPowerOfTwo()) |
||||
|
{ |
||||
|
throw new ArgumentException("The capacity must be a power of 2.", nameof(capacity)); |
||||
|
} |
||||
|
|
||||
|
this.input = input ?? throw new ArgumentNullException(nameof(input)); |
||||
|
|
||||
|
blockSize = capacity; |
||||
|
|
||||
|
// Allocate twice the required capacity to ensure that
|
||||
|
buffer = new char[capacity * 2]; |
||||
|
mask = capacity * 2 - 1; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets a value indicating whether the end of the input reader has been reached.
|
||||
|
/// </summary>
|
||||
|
public bool EndOfInput => endOfInput && count == 0; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets the index of the character for the specified offset.
|
||||
|
/// </summary>
|
||||
|
private int GetIndexForOffset(int offset) |
||||
|
{ |
||||
|
return (firstIndex + offset) & mask; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets the character at the specified offset.
|
||||
|
/// </summary>
|
||||
|
public char Peek(int offset) |
||||
|
{ |
||||
|
#if DEBUG
|
||||
|
if (offset < 0 || offset >= blockSize) |
||||
|
{ |
||||
|
throw new ArgumentOutOfRangeException(nameof(offset), "The offset must be between zero and the capacity of the buffer."); |
||||
|
} |
||||
|
#endif
|
||||
|
if (offset >= count) |
||||
|
{ |
||||
|
FillBuffer(); |
||||
|
} |
||||
|
|
||||
|
if (offset < count) |
||||
|
{ |
||||
|
return buffer[(firstIndex + offset) & mask]; |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
return '\0'; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Reads characters until at least <paramref name="length"/> characters are in the buffer.
|
||||
|
/// </summary>
|
||||
|
/// <param name="length">
|
||||
|
/// Number of characters to cache.
|
||||
|
/// </param>
|
||||
|
public void Cache(int length) |
||||
|
{ |
||||
|
if (length >= count) |
||||
|
{ |
||||
|
FillBuffer(); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
private void FillBuffer() |
||||
|
{ |
||||
|
if (endOfInput) |
||||
|
{ |
||||
|
return; |
||||
|
} |
||||
|
|
||||
|
var remainingSize = blockSize; |
||||
|
do |
||||
|
{ |
||||
|
var readCount = input.Read(buffer, writeOffset, remainingSize); |
||||
|
if (readCount == 0) |
||||
|
{ |
||||
|
endOfInput = true; |
||||
|
return; |
||||
|
} |
||||
|
|
||||
|
remainingSize -= readCount; |
||||
|
writeOffset += readCount; |
||||
|
count += readCount; |
||||
|
} while (remainingSize > 0); |
||||
|
|
||||
|
if (writeOffset == buffer.Length) |
||||
|
{ |
||||
|
writeOffset = 0; |
||||
|
} |
||||
|
|
||||
|
Debug.Assert(writeOffset == 0 || writeOffset == blockSize); |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Skips the next <paramref name="length"/> characters. Those characters must have been
|
||||
|
/// obtained first by calling the <see cref="Peek"/> or <see cref="Cache"/> methods.
|
||||
|
/// </summary>
|
||||
|
public void Skip(int length) |
||||
|
{ |
||||
|
if (length < 1 || length > blockSize) |
||||
|
{ |
||||
|
throw new ArgumentOutOfRangeException(nameof(length), "The length must be between 1 and the number of characters in the buffer. Use the Peek() and / or Cache() methods to fill the buffer."); |
||||
|
} |
||||
|
firstIndex = GetIndexForOffset(length); |
||||
|
count -= length; |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,12 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: 4d909b1f8d7468e4188667b8b706d225 |
||||
|
timeCreated: 1427145264 |
||||
|
licenseType: Store |
||||
|
MonoImporter: |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,141 @@ |
|||||
|
// This file is part of YamlDotNet - A .NET library for YAML.
|
||||
|
// Copyright (c) Antoine Aubry and contributors
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
// this software and associated documentation files (the "Software"), to deal in
|
||||
|
// the Software without restriction, including without limitation the rights to
|
||||
|
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
|
// of the Software, and to permit persons to whom the Software is furnished to do
|
||||
|
// so, subject to the following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||
|
// copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
|
// SOFTWARE.
|
||||
|
|
||||
|
using System; |
||||
|
|
||||
|
namespace YamlDotNet.Core |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Represents a location inside a file
|
||||
|
/// </summary>
|
||||
|
public sealed class Mark : IEquatable<Mark>, IComparable<Mark>, IComparable |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Gets a <see cref="Mark"/> with empty values.
|
||||
|
/// </summary>
|
||||
|
public static readonly Mark Empty = new Mark(); |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets / sets the absolute offset in the file
|
||||
|
/// </summary>
|
||||
|
public int Index { get; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets / sets the number of the line
|
||||
|
/// </summary>
|
||||
|
public int Line { get; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets / sets the index of the column
|
||||
|
/// </summary>
|
||||
|
public int Column { get; } |
||||
|
|
||||
|
public Mark() |
||||
|
{ |
||||
|
Line = 1; |
||||
|
Column = 1; |
||||
|
} |
||||
|
|
||||
|
public Mark(int index, int line, int column) |
||||
|
{ |
||||
|
if (index < 0) |
||||
|
{ |
||||
|
throw new ArgumentOutOfRangeException(nameof(index), "Index must be greater than or equal to zero."); |
||||
|
} |
||||
|
if (line < 1) |
||||
|
{ |
||||
|
throw new ArgumentOutOfRangeException(nameof(line), "Line must be greater than or equal to 1."); |
||||
|
} |
||||
|
if (column < 1) |
||||
|
{ |
||||
|
throw new ArgumentOutOfRangeException(nameof(column), "Column must be greater than or equal to 1."); |
||||
|
} |
||||
|
|
||||
|
Index = index; |
||||
|
Line = line; |
||||
|
Column = column; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Returns a <see cref="string"/> that represents this instance.
|
||||
|
/// </summary>
|
||||
|
/// <returns>
|
||||
|
/// A <see cref="string"/> that represents this instance.
|
||||
|
/// </returns>
|
||||
|
public override string ToString() |
||||
|
{ |
||||
|
return $"Line: {Line}, Col: {Column}, Idx: {Index}"; |
||||
|
} |
||||
|
|
||||
|
/// <summary />
|
||||
|
public override bool Equals(object? obj) |
||||
|
{ |
||||
|
return Equals(obj as Mark); |
||||
|
} |
||||
|
|
||||
|
/// <summary />
|
||||
|
public bool Equals(Mark? other) |
||||
|
{ |
||||
|
return other != null |
||||
|
&& Index == other.Index |
||||
|
&& Line == other.Line |
||||
|
&& Column == other.Column; |
||||
|
} |
||||
|
|
||||
|
/// <summary />
|
||||
|
public override int GetHashCode() |
||||
|
{ |
||||
|
return HashCode.CombineHashCodes( |
||||
|
Index.GetHashCode(), |
||||
|
HashCode.CombineHashCodes( |
||||
|
Line.GetHashCode(), |
||||
|
Column.GetHashCode() |
||||
|
) |
||||
|
); |
||||
|
} |
||||
|
|
||||
|
/// <summary />
|
||||
|
public int CompareTo(object? obj) |
||||
|
{ |
||||
|
if (obj == null) |
||||
|
{ |
||||
|
throw new ArgumentNullException(nameof(obj)); |
||||
|
} |
||||
|
return CompareTo(obj as Mark); |
||||
|
} |
||||
|
|
||||
|
/// <summary />
|
||||
|
public int CompareTo(Mark? other) |
||||
|
{ |
||||
|
if (other == null) |
||||
|
{ |
||||
|
throw new ArgumentNullException(nameof(other)); |
||||
|
} |
||||
|
|
||||
|
var cmp = Line.CompareTo(other.Line); |
||||
|
if (cmp == 0) |
||||
|
{ |
||||
|
cmp = Column.CompareTo(other.Column); |
||||
|
} |
||||
|
return cmp; |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,12 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: 9a02d917bb4d2164ea20caaafce2bb0b |
||||
|
timeCreated: 1427145265 |
||||
|
licenseType: Store |
||||
|
MonoImporter: |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,58 @@ |
|||||
|
// This file is part of YamlDotNet - A .NET library for YAML.
|
||||
|
// Copyright (c) Antoine Aubry and contributors
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
// this software and associated documentation files (the "Software"), to deal in
|
||||
|
// the Software without restriction, including without limitation the rights to
|
||||
|
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
|
// of the Software, and to permit persons to whom the Software is furnished to do
|
||||
|
// so, subject to the following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||
|
// copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
|
// SOFTWARE.
|
||||
|
|
||||
|
using System; |
||||
|
|
||||
|
namespace YamlDotNet.Core |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Exception that is thrown when an infinite recursion is detected.
|
||||
|
/// </summary>
|
||||
|
public sealed class MaximumRecursionLevelReachedException : YamlException |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="MaximumRecursionLevelReachedException"/> class.
|
||||
|
/// </summary>
|
||||
|
/// <param name="message">The message.</param>
|
||||
|
public MaximumRecursionLevelReachedException(string message) |
||||
|
: base(message) |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="MaximumRecursionLevelReachedException"/> class.
|
||||
|
/// </summary>
|
||||
|
public MaximumRecursionLevelReachedException(Mark start, Mark end, string message) |
||||
|
: base(start, end, message) |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="MaximumRecursionLevelReachedException"/> class.
|
||||
|
/// </summary>
|
||||
|
/// <param name="message">The message.</param>
|
||||
|
/// <param name="inner">The inner.</param>
|
||||
|
public MaximumRecursionLevelReachedException(string message, Exception inner) |
||||
|
: base(message, inner) |
||||
|
{ |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,12 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: fea998d14aab96d4cb7654c8cc75afdf |
||||
|
timeCreated: 1427145269 |
||||
|
licenseType: Store |
||||
|
MonoImporter: |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,311 @@ |
|||||
|
// This file is part of YamlDotNet - A .NET library for YAML.
|
||||
|
// Copyright (c) Antoine Aubry and contributors
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
// this software and associated documentation files (the "Software"), to deal in
|
||||
|
// the Software without restriction, including without limitation the rights to
|
||||
|
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
|
// of the Software, and to permit persons to whom the Software is furnished to do
|
||||
|
// so, subject to the following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||
|
// copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
|
// SOFTWARE.
|
||||
|
|
||||
|
using System; |
||||
|
using System.Collections; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Linq; |
||||
|
using YamlDotNet.Core.Events; |
||||
|
|
||||
|
namespace YamlDotNet.Core |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Simple implementation of <see cref="IParser"/> that implements merging: http://yaml.org/type/merge.html
|
||||
|
/// </summary>
|
||||
|
public sealed class MergingParser : IParser |
||||
|
{ |
||||
|
private readonly ParsingEventCollection events; |
||||
|
private readonly IParser innerParser; |
||||
|
private IEnumerator<LinkedListNode<ParsingEvent>> iterator; |
||||
|
private bool merged; |
||||
|
|
||||
|
public MergingParser(IParser innerParser) |
||||
|
{ |
||||
|
events = new ParsingEventCollection(); |
||||
|
merged = false; |
||||
|
iterator = events.GetEnumerator(); |
||||
|
this.innerParser = innerParser; |
||||
|
} |
||||
|
|
||||
|
public ParsingEvent? Current => iterator.Current?.Value; |
||||
|
|
||||
|
public bool MoveNext() |
||||
|
{ |
||||
|
if (!merged) |
||||
|
{ |
||||
|
Merge(); |
||||
|
events.CleanMarked(); |
||||
|
iterator = events.GetEnumerator(); |
||||
|
merged = true; |
||||
|
} |
||||
|
|
||||
|
return iterator.MoveNext(); |
||||
|
} |
||||
|
|
||||
|
private void Merge() |
||||
|
{ |
||||
|
while (innerParser.MoveNext()) |
||||
|
{ |
||||
|
events.Add(innerParser.Current!); |
||||
|
} |
||||
|
|
||||
|
foreach (var node in events) |
||||
|
{ |
||||
|
if (IsMergeToken(node)) |
||||
|
{ |
||||
|
events.MarkDeleted(node); |
||||
|
if (!HandleMerge(node.Next)) |
||||
|
{ |
||||
|
throw new SemanticErrorException(node.Value.Start, node.Value.End, "Unrecognized merge key pattern"); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
private bool HandleMerge(LinkedListNode<ParsingEvent>? node) |
||||
|
{ |
||||
|
if (node == null) |
||||
|
{ |
||||
|
return false; |
||||
|
} |
||||
|
|
||||
|
if (node.Value is AnchorAlias anchorAlias) |
||||
|
{ |
||||
|
return HandleAnchorAlias(node, node, anchorAlias); |
||||
|
} |
||||
|
|
||||
|
if (node.Value is SequenceStart) |
||||
|
{ |
||||
|
return HandleSequence(node); |
||||
|
} |
||||
|
|
||||
|
return false; |
||||
|
} |
||||
|
|
||||
|
private bool HandleMergeSequence(LinkedListNode<ParsingEvent> sequenceStart, LinkedListNode<ParsingEvent>? node) |
||||
|
{ |
||||
|
if (node is null) |
||||
|
{ |
||||
|
return false; |
||||
|
} |
||||
|
if (node.Value is AnchorAlias anchorAlias) |
||||
|
{ |
||||
|
return HandleAnchorAlias(sequenceStart, node, anchorAlias); |
||||
|
} |
||||
|
if (node.Value is SequenceStart) |
||||
|
{ |
||||
|
return HandleSequence(node); |
||||
|
} |
||||
|
return false; |
||||
|
} |
||||
|
|
||||
|
private bool IsMergeToken(LinkedListNode<ParsingEvent> node) |
||||
|
{ |
||||
|
return node.Value is Scalar merge && merge.Value == "<<"; |
||||
|
} |
||||
|
|
||||
|
private bool HandleAnchorAlias(LinkedListNode<ParsingEvent> node, LinkedListNode<ParsingEvent> anchorNode, AnchorAlias anchorAlias) |
||||
|
{ |
||||
|
var mergedEvents = GetMappingEvents(anchorAlias.Value); |
||||
|
|
||||
|
events.AddAfter(node, mergedEvents); |
||||
|
events.MarkDeleted(anchorNode); |
||||
|
|
||||
|
return true; |
||||
|
} |
||||
|
|
||||
|
private bool HandleSequence(LinkedListNode<ParsingEvent> node) |
||||
|
{ |
||||
|
var sequenceStart = node; |
||||
|
events.MarkDeleted(node); |
||||
|
|
||||
|
var current = node; |
||||
|
while (current != null) |
||||
|
{ |
||||
|
if (current.Value is SequenceEnd) |
||||
|
{ |
||||
|
events.MarkDeleted(current); |
||||
|
return true; |
||||
|
} |
||||
|
|
||||
|
var next = current.Next; |
||||
|
HandleMergeSequence(sequenceStart, next); |
||||
|
current = next; |
||||
|
} |
||||
|
|
||||
|
return true; |
||||
|
} |
||||
|
|
||||
|
private IEnumerable<ParsingEvent> GetMappingEvents(AnchorName anchor) |
||||
|
{ |
||||
|
var cloner = new ParsingEventCloner(); |
||||
|
var nesting = 0; |
||||
|
|
||||
|
return events.FromAnchor(anchor) |
||||
|
.Select(e => e.Value) |
||||
|
.TakeWhile(e => (nesting += e.NestingIncrease) >= 0) |
||||
|
.Select(e => cloner.Clone(e)); |
||||
|
} |
||||
|
|
||||
|
private sealed class ParsingEventCollection : IEnumerable<LinkedListNode<ParsingEvent>> |
||||
|
{ |
||||
|
private readonly LinkedList<ParsingEvent> events; |
||||
|
private readonly HashSet<LinkedListNode<ParsingEvent>> deleted; |
||||
|
private readonly Dictionary<AnchorName, LinkedListNode<ParsingEvent>> references; |
||||
|
|
||||
|
public ParsingEventCollection() |
||||
|
{ |
||||
|
events = new LinkedList<ParsingEvent>(); |
||||
|
deleted = new HashSet<LinkedListNode<ParsingEvent>>(); |
||||
|
references = new Dictionary<AnchorName, LinkedListNode<ParsingEvent>>(); |
||||
|
} |
||||
|
|
||||
|
public void AddAfter(LinkedListNode<ParsingEvent> node, IEnumerable<ParsingEvent> items) |
||||
|
{ |
||||
|
foreach (var item in items) |
||||
|
{ |
||||
|
node = events.AddAfter(node, item); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
public void Add(ParsingEvent item) |
||||
|
{ |
||||
|
var node = events.AddLast(item); |
||||
|
AddReference(item, node); |
||||
|
} |
||||
|
|
||||
|
public void MarkDeleted(LinkedListNode<ParsingEvent> node) |
||||
|
{ |
||||
|
deleted.Add(node); |
||||
|
} |
||||
|
|
||||
|
public void CleanMarked() |
||||
|
{ |
||||
|
foreach (var node in deleted) |
||||
|
{ |
||||
|
events.Remove(node); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
public IEnumerable<LinkedListNode<ParsingEvent>> FromAnchor(AnchorName anchor) |
||||
|
{ |
||||
|
var node = references[anchor].Next; |
||||
|
return Enumerate(node); |
||||
|
} |
||||
|
|
||||
|
public IEnumerator<LinkedListNode<ParsingEvent>> GetEnumerator() => Enumerate(events.First).GetEnumerator(); |
||||
|
|
||||
|
IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); |
||||
|
|
||||
|
private IEnumerable<LinkedListNode<ParsingEvent>> Enumerate(LinkedListNode<ParsingEvent>? node) |
||||
|
{ |
||||
|
while (node != null) |
||||
|
{ |
||||
|
yield return node; |
||||
|
node = node.Next; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
private void AddReference(ParsingEvent item, LinkedListNode<ParsingEvent> node) |
||||
|
{ |
||||
|
if (item is MappingStart mappingStart) |
||||
|
{ |
||||
|
var anchor = mappingStart.Anchor; |
||||
|
if (!anchor.IsEmpty) |
||||
|
{ |
||||
|
references[anchor] = node; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
private sealed class ParsingEventCloner : IParsingEventVisitor |
||||
|
{ |
||||
|
private ParsingEvent? clonedEvent; |
||||
|
|
||||
|
public ParsingEvent Clone(ParsingEvent e) |
||||
|
{ |
||||
|
e.Accept(this); |
||||
|
if (clonedEvent == null) |
||||
|
{ |
||||
|
throw new InvalidOperationException($"Could not clone event of type '{e.Type}'"); |
||||
|
} |
||||
|
|
||||
|
return clonedEvent; |
||||
|
} |
||||
|
|
||||
|
void IParsingEventVisitor.Visit(AnchorAlias e) |
||||
|
{ |
||||
|
clonedEvent = new AnchorAlias(e.Value, e.Start, e.End); |
||||
|
} |
||||
|
|
||||
|
void IParsingEventVisitor.Visit(StreamStart e) |
||||
|
{ |
||||
|
throw new NotSupportedException(); |
||||
|
} |
||||
|
|
||||
|
void IParsingEventVisitor.Visit(StreamEnd e) |
||||
|
{ |
||||
|
throw new NotSupportedException(); |
||||
|
} |
||||
|
|
||||
|
void IParsingEventVisitor.Visit(DocumentStart e) |
||||
|
{ |
||||
|
throw new NotSupportedException(); |
||||
|
} |
||||
|
|
||||
|
void IParsingEventVisitor.Visit(DocumentEnd e) |
||||
|
{ |
||||
|
throw new NotSupportedException(); |
||||
|
} |
||||
|
|
||||
|
void IParsingEventVisitor.Visit(Scalar e) |
||||
|
{ |
||||
|
clonedEvent = new Scalar(AnchorName.Empty, e.Tag, e.Value, e.Style, e.IsPlainImplicit, e.IsQuotedImplicit, e.Start, e.End); |
||||
|
} |
||||
|
|
||||
|
void IParsingEventVisitor.Visit(SequenceStart e) |
||||
|
{ |
||||
|
clonedEvent = new SequenceStart(AnchorName.Empty, e.Tag, e.IsImplicit, e.Style, e.Start, e.End); |
||||
|
} |
||||
|
|
||||
|
void IParsingEventVisitor.Visit(SequenceEnd e) |
||||
|
{ |
||||
|
clonedEvent = new SequenceEnd(e.Start, e.End); |
||||
|
} |
||||
|
|
||||
|
void IParsingEventVisitor.Visit(MappingStart e) |
||||
|
{ |
||||
|
clonedEvent = new MappingStart(AnchorName.Empty, e.Tag, e.IsImplicit, e.Style, e.Start, e.End); |
||||
|
} |
||||
|
|
||||
|
void IParsingEventVisitor.Visit(MappingEnd e) |
||||
|
{ |
||||
|
clonedEvent = new MappingEnd(e.Start, e.End); |
||||
|
} |
||||
|
|
||||
|
void IParsingEventVisitor.Visit(Comment e) |
||||
|
{ |
||||
|
throw new NotSupportedException(); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,12 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: 2aee5019246749c40a971ff855ffba79 |
||||
|
timeCreated: 1427145263 |
||||
|
licenseType: Store |
||||
|
MonoImporter: |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
File diff suppressed because it is too large
@ -0,0 +1,12 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: 26cca4bc9fdfb2d429b2181c273ab7b7 |
||||
|
timeCreated: 1427145263 |
||||
|
licenseType: Store |
||||
|
MonoImporter: |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,151 @@ |
|||||
|
// This file is part of YamlDotNet - A .NET library for YAML.
|
||||
|
// Copyright (c) Antoine Aubry and contributors
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
// this software and associated documentation files (the "Software"), to deal in
|
||||
|
// the Software without restriction, including without limitation the rights to
|
||||
|
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
|
// of the Software, and to permit persons to whom the Software is furnished to do
|
||||
|
// so, subject to the following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||
|
// copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
|
// SOFTWARE.
|
||||
|
|
||||
|
using System; |
||||
|
using System.Diagnostics.CodeAnalysis; |
||||
|
using System.IO; |
||||
|
using YamlDotNet.Core.Events; |
||||
|
|
||||
|
namespace YamlDotNet.Core |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Extension methods that provide useful abstractions over <see cref="IParser"/>.
|
||||
|
/// </summary>
|
||||
|
public static class ParserExtensions |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Ensures that the current event is of the specified type, returns it and moves to the next event.
|
||||
|
/// </summary>
|
||||
|
/// <typeparam name="T">Type of the <see cref="ParsingEvent"/>.</typeparam>
|
||||
|
/// <returns>Returns the current event.</returns>
|
||||
|
/// <exception cref="YamlException">If the current event is not of the specified type.</exception>
|
||||
|
public static T Consume<T>(this IParser parser) where T : ParsingEvent |
||||
|
{ |
||||
|
var required = parser.Require<T>(); |
||||
|
parser.MoveNext(); |
||||
|
return required; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Checks whether the current event is of the specified type.
|
||||
|
/// If the event is of the specified type, returns it and moves to the next event.
|
||||
|
/// Otherwise returns null.
|
||||
|
/// </summary>
|
||||
|
/// <typeparam name="T">Type of the <see cref="ParsingEvent"/>.</typeparam>
|
||||
|
/// <returns>Returns true if the current event is of type T; otherwise returns null.</returns>
|
||||
|
public static bool TryConsume<T>(this IParser parser, [MaybeNullWhen(false)] out T @event) where T : ParsingEvent |
||||
|
{ |
||||
|
if (parser.Accept(out @event!)) |
||||
|
{ |
||||
|
parser.MoveNext(); |
||||
|
return true; |
||||
|
} |
||||
|
return false; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Enforces that the current event is of the specified type.
|
||||
|
/// </summary>
|
||||
|
/// <typeparam name="T">Type of the <see cref="ParsingEvent"/>.</typeparam>
|
||||
|
/// <returns>Returns the current event.</returns>
|
||||
|
/// <exception cref="YamlException">If the current event is not of the specified type.</exception>
|
||||
|
public static T Require<T>(this IParser parser) where T : ParsingEvent |
||||
|
{ |
||||
|
if (!parser.Accept<T>(out var required)) |
||||
|
{ |
||||
|
var @event = parser.Current; |
||||
|
if (@event == null) |
||||
|
{ |
||||
|
throw new YamlException($"Expected '{typeof(T).Name}', got nothing."); |
||||
|
} |
||||
|
throw new YamlException(@event.Start, @event.End, $"Expected '{typeof(T).Name}', got '{@event.GetType().Name}' (at {@event.Start})."); |
||||
|
} |
||||
|
return required; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Checks whether the current event is of the specified type.
|
||||
|
/// </summary>
|
||||
|
/// <typeparam name="T">Type of the event.</typeparam>
|
||||
|
/// <returns>Returns true if the current event is of type <typeparamref name="T"/>. Otherwise returns false.</returns>
|
||||
|
public static bool Accept<T>(this IParser parser, [MaybeNullWhen(false)] out T @event) where T : ParsingEvent |
||||
|
{ |
||||
|
if (parser.Current == null) |
||||
|
{ |
||||
|
if (!parser.MoveNext()) |
||||
|
{ |
||||
|
throw new EndOfStreamException(); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
if (parser.Current is T evt) |
||||
|
{ |
||||
|
@event = evt; |
||||
|
return true; |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
@event = default!; |
||||
|
return false; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Skips the current event and any nested event.
|
||||
|
/// </summary>
|
||||
|
public static void SkipThisAndNestedEvents(this IParser parser) |
||||
|
{ |
||||
|
var depth = 0; |
||||
|
do |
||||
|
{ |
||||
|
var next = parser.Consume<ParsingEvent>(); |
||||
|
depth += next.NestingIncrease; |
||||
|
} |
||||
|
while (depth > 0); |
||||
|
} |
||||
|
|
||||
|
[Obsolete("Please use Consume<T>() instead")] |
||||
|
public static T Expect<T>(this IParser parser) where T : ParsingEvent |
||||
|
{ |
||||
|
return parser.Consume<T>(); |
||||
|
} |
||||
|
|
||||
|
[Obsolete("Please use TryConsume<T>(out var evt) instead")] |
||||
|
[return: MaybeNull] |
||||
|
public static T Allow<T>(this IParser parser) where T : ParsingEvent |
||||
|
{ |
||||
|
return parser.TryConsume<T>(out var @event) ? @event : default; |
||||
|
} |
||||
|
|
||||
|
[Obsolete("Please use Accept<T>(out var evt) instead")] |
||||
|
[return: MaybeNull] |
||||
|
public static T Peek<T>(this IParser parser) where T : ParsingEvent |
||||
|
{ |
||||
|
return parser.Accept<T>(out var @event) ? @event : default; |
||||
|
} |
||||
|
|
||||
|
[Obsolete("Please use TryConsume<T>(out var evt) or Accept<T>(out var evt) instead")] |
||||
|
public static bool Accept<T>(this IParser parser) where T : ParsingEvent |
||||
|
{ |
||||
|
return Accept<T>(parser, out var _); |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,11 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: ba6ee956c0cbe3f4587cc00d433dfa5a |
||||
|
MonoImporter: |
||||
|
externalObjects: {} |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,51 @@ |
|||||
|
// This file is part of YamlDotNet - A .NET library for YAML.
|
||||
|
// Copyright (c) Antoine Aubry and contributors
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
// this software and associated documentation files (the "Software"), to deal in
|
||||
|
// the Software without restriction, including without limitation the rights to
|
||||
|
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
|
// of the Software, and to permit persons to whom the Software is furnished to do
|
||||
|
// so, subject to the following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||
|
// copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
|
// SOFTWARE.
|
||||
|
|
||||
|
namespace YamlDotNet.Core |
||||
|
{ |
||||
|
internal enum ParserState |
||||
|
{ |
||||
|
StreamStart, |
||||
|
StreamEnd, |
||||
|
ImplicitDocumentStart, |
||||
|
DocumentStart, |
||||
|
DocumentContent, |
||||
|
DocumentEnd, |
||||
|
BlockNode, |
||||
|
BlockNodeOrIndentlessSequence, |
||||
|
FlowNode, |
||||
|
BlockSequenceFirstEntry, |
||||
|
BlockSequenceEntry, |
||||
|
IndentlessSequenceEntry, |
||||
|
BlockMappingFirstKey, |
||||
|
BlockMappingKey, |
||||
|
BlockMappingValue, |
||||
|
FlowSequenceFirstEntry, |
||||
|
FlowSequenceEntry, |
||||
|
FlowSequenceEntryMappingKey, |
||||
|
FlowSequenceEntryMappingValue, |
||||
|
FlowSequenceEntryMappingEnd, |
||||
|
FlowMappingFirstKey, |
||||
|
FlowMappingKey, |
||||
|
FlowMappingValue, |
||||
|
FlowMappingEmptyValue |
||||
|
} |
||||
|
} |
@ -0,0 +1,11 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: 4c73f39f4ccd4a644bd851bffd5afa20 |
||||
|
MonoImporter: |
||||
|
externalObjects: {} |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,80 @@ |
|||||
|
// This file is part of YamlDotNet - A .NET library for YAML.
|
||||
|
// Copyright (c) Antoine Aubry and contributors
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
// this software and associated documentation files (the "Software"), to deal in
|
||||
|
// the Software without restriction, including without limitation the rights to
|
||||
|
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
|
// of the Software, and to permit persons to whom the Software is furnished to do
|
||||
|
// so, subject to the following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||
|
// copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
|
// SOFTWARE.
|
||||
|
|
||||
|
using System; |
||||
|
|
||||
|
namespace YamlDotNet.Core |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Keeps track of the <see cref="current"/> recursion level,
|
||||
|
/// and throws <see cref="MaximumRecursionLevelReachedException"/>
|
||||
|
/// whenever <see cref="Maximum"/> is reached.
|
||||
|
/// </summary>
|
||||
|
internal sealed class RecursionLevel |
||||
|
{ |
||||
|
private int current; |
||||
|
public int Maximum { get; } |
||||
|
|
||||
|
public RecursionLevel(int maximum) |
||||
|
{ |
||||
|
Maximum = maximum; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Increments the <see cref="current"/> recursion level,
|
||||
|
/// and throws <see cref="MaximumRecursionLevelReachedException"/>
|
||||
|
/// if <see cref="Maximum"/> is reached.
|
||||
|
/// </summary>
|
||||
|
public void Increment() |
||||
|
{ |
||||
|
if (!TryIncrement()) |
||||
|
{ |
||||
|
throw new MaximumRecursionLevelReachedException("Maximum level of recursion reached"); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Increments the <see cref="current"/> recursion level,
|
||||
|
/// and returns whether <see cref="current"/> is still less than <see cref="Maximum"/>.
|
||||
|
/// </summary>
|
||||
|
public bool TryIncrement() |
||||
|
{ |
||||
|
if (current < Maximum) |
||||
|
{ |
||||
|
++current; |
||||
|
return true; |
||||
|
} |
||||
|
return false; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Decrements the <see cref="current"/> recursion level.
|
||||
|
/// </summary>
|
||||
|
public void Decrement() |
||||
|
{ |
||||
|
if (current == 0) |
||||
|
{ |
||||
|
throw new InvalidOperationException("Attempted to decrement RecursionLevel to a negative value"); |
||||
|
} |
||||
|
--current; |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,11 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: 87346082332b7a2469719bddad64afd5 |
||||
|
MonoImporter: |
||||
|
externalObjects: {} |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,59 @@ |
|||||
|
// This file is part of YamlDotNet - A .NET library for YAML.
|
||||
|
// Copyright (c) Antoine Aubry and contributors
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
// this software and associated documentation files (the "Software"), to deal in
|
||||
|
// the Software without restriction, including without limitation the rights to
|
||||
|
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
|
// of the Software, and to permit persons to whom the Software is furnished to do
|
||||
|
// so, subject to the following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||
|
// copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
|
// SOFTWARE.
|
||||
|
|
||||
|
namespace YamlDotNet.Core |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Specifies the style of a YAML scalar.
|
||||
|
/// </summary>
|
||||
|
public enum ScalarStyle |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Let the emitter choose the style.
|
||||
|
/// </summary>
|
||||
|
Any, |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// The plain scalar style.
|
||||
|
/// </summary>
|
||||
|
Plain, |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// The single-quoted scalar style.
|
||||
|
/// </summary>
|
||||
|
SingleQuoted, |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// The double-quoted scalar style.
|
||||
|
/// </summary>
|
||||
|
DoubleQuoted, |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// The literal scalar style.
|
||||
|
/// </summary>
|
||||
|
Literal, |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// The folded scalar style.
|
||||
|
/// </summary>
|
||||
|
Folded, |
||||
|
} |
||||
|
} |
@ -0,0 +1,11 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: d8499f656f1f893409f937b46c386cf2 |
||||
|
MonoImporter: |
||||
|
externalObjects: {} |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
File diff suppressed because it is too large
@ -0,0 +1,12 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: c0682a65176cd1c42807d5c990f0cc8f |
||||
|
timeCreated: 1427145266 |
||||
|
licenseType: Store |
||||
|
MonoImporter: |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
@ -0,0 +1,58 @@ |
|||||
|
// This file is part of YamlDotNet - A .NET library for YAML.
|
||||
|
// Copyright (c) Antoine Aubry and contributors
|
||||
|
//
|
||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
// this software and associated documentation files (the "Software"), to deal in
|
||||
|
// the Software without restriction, including without limitation the rights to
|
||||
|
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
|
// of the Software, and to permit persons to whom the Software is furnished to do
|
||||
|
// so, subject to the following conditions:
|
||||
|
//
|
||||
|
// The above copyright notice and this permission notice shall be included in all
|
||||
|
// copies or substantial portions of the Software.
|
||||
|
//
|
||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
|
// SOFTWARE.
|
||||
|
|
||||
|
using System; |
||||
|
|
||||
|
namespace YamlDotNet.Core |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Exception that is thrown when a semantic error is detected on a YAML stream.
|
||||
|
/// </summary>
|
||||
|
public class SemanticErrorException : YamlException |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="SemanticErrorException"/> class.
|
||||
|
/// </summary>
|
||||
|
/// <param name="message">The message.</param>
|
||||
|
public SemanticErrorException(string message) |
||||
|
: base(message) |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="SemanticErrorException"/> class.
|
||||
|
/// </summary>
|
||||
|
public SemanticErrorException(Mark start, Mark end, string message) |
||||
|
: base(start, end, message) |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Initializes a new instance of the <see cref="SemanticErrorException"/> class.
|
||||
|
/// </summary>
|
||||
|
/// <param name="message">The message.</param>
|
||||
|
/// <param name="inner">The inner.</param>
|
||||
|
public SemanticErrorException(string message, Exception inner) |
||||
|
: base(message, inner) |
||||
|
{ |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,12 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: ce6eb4a71fe0a504cb2efded3a4ad217 |
||||
|
timeCreated: 1427145266 |
||||
|
licenseType: Store |
||||
|
MonoImporter: |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue