MParser/Parser/SyntaxDiagnostic.cs

23 lines
621 B
C#

namespace Parser
{
public class SyntaxDiagnostic
{
public int Position { get; }
public static SyntaxDiagnostic From(Internal.TokenDiagnostic diagnostic, int Position)
{
switch (diagnostic)
{
case Internal.MissingTokenDiagnostic missingToken:
return new MissingTokenSyntaxDiagnostic(Position, missingToken.Kind);
}
throw new System.ArgumentOutOfRangeException(nameof(diagnostic));
}
protected SyntaxDiagnostic(int position)
{
Position = position;
}
}
}