46 lines
1.1 KiB
C#
46 lines
1.1 KiB
C#
namespace Antmicro.OptionsParser
|
|
{
|
|
public abstract class Token
|
|
{
|
|
protected Token(ElementDescriptor descriptor)
|
|
{
|
|
Descriptor = descriptor;
|
|
}
|
|
|
|
public ElementDescriptor Descriptor { get; protected set; }
|
|
}
|
|
|
|
public class LongNameToken : Token
|
|
{
|
|
public LongNameToken(string name, bool hasAssignment, ElementDescriptor desc) : base(desc.WithLengthChangedBy(name.Length))
|
|
{
|
|
Name = name;
|
|
HasAssignment = hasAssignment;
|
|
}
|
|
|
|
public string Name { get; private set; }
|
|
public bool HasAssignment { get; private set; }
|
|
}
|
|
|
|
public class ShortNameToken : Token
|
|
{
|
|
public ShortNameToken(char name, ElementDescriptor desc) : base(desc.WithLengthChangedBy(1))
|
|
{
|
|
Name = name;
|
|
}
|
|
|
|
public char Name { get; private set; }
|
|
}
|
|
|
|
public class PositionalArgumentToken : Token
|
|
{
|
|
public PositionalArgumentToken(string value, ElementDescriptor desc) : base(desc.WithLengthChangedBy(value.Length))
|
|
{
|
|
Value = value;
|
|
}
|
|
|
|
public string Value { get; private set; }
|
|
}
|
|
}
|
|
|