35 lines
794 B
C#
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);
|
|
}
|
|
|
|
}
|
|
}
|