sharp-parser/Token.cs

35 lines
794 B
C#

using System;
using System.Collections.Generic;
using sharp.extensions;
namespace sharp.parser
{
public class Token
{
public TokenDefinition Definition { get; private set; }
public CharBuffer charBuffer;
public CharBuffer Buffer { get { return charBuffer; } }
public int Position { get; private set; }
public int Len { get; private set; }
public string Value { get { return new String(charBuffer.Characters.Segment(Position, Len)); } }
public Token(TokenDefinition tdef,CharBuffer buffer,int len)
{
this.Definition = tdef;
this.charBuffer = buffer;
this.Position = buffer.Position;
this.Len = len;
buffer.Position += len;
}
public override string ToString()
{
return string.Format("[Token: {0} Value={1}]", Definition.Name, Value);
}
}
}