65 lines
1.4 KiB
C#
65 lines
1.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Security.Permissions;
|
|
using AspClassic.Scripting.Runtime;
|
|
|
|
namespace AspClassic.Scripting.Hosting;
|
|
|
|
public sealed class TokenCategorizer : MarshalByRefObject
|
|
{
|
|
private readonly TokenizerService _tokenizer;
|
|
|
|
public object CurrentState => _tokenizer.CurrentState;
|
|
|
|
public SourceLocation CurrentPosition => _tokenizer.CurrentPosition;
|
|
|
|
public bool IsRestartable => _tokenizer.IsRestartable;
|
|
|
|
public ErrorSink ErrorSink
|
|
{
|
|
get
|
|
{
|
|
return _tokenizer.ErrorSink;
|
|
}
|
|
set
|
|
{
|
|
_tokenizer.ErrorSink = value;
|
|
}
|
|
}
|
|
|
|
internal TokenCategorizer(TokenizerService tokenizer)
|
|
{
|
|
_tokenizer = tokenizer;
|
|
}
|
|
|
|
public void Initialize(object state, ScriptSource scriptSource, SourceLocation initialLocation)
|
|
{
|
|
_tokenizer.Initialize(state, scriptSource.SourceUnit.GetReader(), scriptSource.SourceUnit, initialLocation);
|
|
}
|
|
|
|
public TokenInfo ReadToken()
|
|
{
|
|
return _tokenizer.ReadToken();
|
|
}
|
|
|
|
public bool SkipToken()
|
|
{
|
|
return _tokenizer.SkipToken();
|
|
}
|
|
|
|
public IEnumerable<TokenInfo> ReadTokens(int characterCount)
|
|
{
|
|
return _tokenizer.ReadTokens(characterCount);
|
|
}
|
|
|
|
public bool SkipTokens(int characterCount)
|
|
{
|
|
return _tokenizer.SkipTokens(characterCount);
|
|
}
|
|
|
|
[SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.Infrastructure)]
|
|
public override object InitializeLifetimeService()
|
|
{
|
|
return null;
|
|
}
|
|
}
|