Preparations for the 1.0 release

* Less cluttered solution layout.
* Move examples to a repository of its own.
* Move Roslyn analyzer to a repository of its own.
* Enable central package management.
* Clean up csproj files.
* Add README file to NuGet packages.
This commit is contained in:
Patrik Svensson
2024-08-05 20:41:45 +02:00
committed by Patrik Svensson
parent bb72b44d60
commit 42fd801876
677 changed files with 272 additions and 6214 deletions

View File

@@ -0,0 +1,55 @@
namespace Spectre.Console.Json;
internal sealed class JsonTokenReader
{
private readonly List<JsonToken> _reader;
private readonly int _length;
public int Position { get; private set; }
public bool Eof => Position >= _length;
public JsonTokenReader(List<JsonToken> tokens)
{
_reader = tokens;
_length = tokens.Count;
Position = 0;
}
public JsonToken Consume(JsonTokenType type)
{
var read = Read();
if (read == null)
{
throw new InvalidOperationException("Could not read token");
}
if (read.Type != type)
{
throw new InvalidOperationException($"Expected '{type}' token, but found '{read.Type}'");
}
return read;
}
public JsonToken? Peek()
{
if (Eof)
{
return null;
}
return _reader[Position];
}
public JsonToken? Read()
{
if (Eof)
{
return null;
}
Position++;
return _reader[Position - 1];
}
}