40 lines
1.1 KiB
C#
40 lines
1.1 KiB
C#
using System;
|
|
|
|
namespace AspClassic.Parser;
|
|
|
|
/// <summary>
|
|
/// A decimal literal token.
|
|
/// </summary>
|
|
public sealed class DecimalLiteralToken : Token
|
|
{
|
|
private readonly decimal _Literal;
|
|
|
|
private readonly TypeCharacter _TypeCharacter;
|
|
|
|
/// <summary>
|
|
/// The literal value.
|
|
/// </summary>
|
|
public decimal Literal => _Literal;
|
|
|
|
/// <summary>
|
|
/// The type character of the literal.
|
|
/// </summary>
|
|
public TypeCharacter TypeCharacter => _TypeCharacter;
|
|
|
|
/// <summary>
|
|
/// Constructs a new decimal literal token.
|
|
/// </summary>
|
|
/// <param name="literal">The literal value.</param>
|
|
/// <param name="typeCharacter">The literal's type character.</param>
|
|
/// <param name="span">The location of the literal.</param>
|
|
public DecimalLiteralToken(decimal literal, TypeCharacter typeCharacter, Span span)
|
|
: base(TokenType.DecimalLiteral, span)
|
|
{
|
|
if (typeCharacter != 0 && typeCharacter != TypeCharacter.DecimalChar && typeCharacter != TypeCharacter.DecimalSymbol)
|
|
{
|
|
throw new ArgumentOutOfRangeException("typeCharacter");
|
|
}
|
|
_Literal = literal;
|
|
_TypeCharacter = typeCharacter;
|
|
}
|
|
}
|