public override Expression Scan(ParseEngine engine)
{
var index = engine.Pointer;
var chars = engine.Characters;
if (ParseEngine.IsIdentifierStart(chars[index]))
{
index++;
while (index < chars.Length && ParseEngine.IsIdentifierPart(chars[index]))
{
index++;
}
var name = new String(chars, engine.Pointer, index - engine.Pointer);
if (engine.UseKeywords)
{
var keyword = engine.Elements.FindKeywordExpression(name, engine);
if (keyword != null)
{
return(keyword);
}
}
var exp = new SymbolExpression(engine, name);
engine.SetPointer(index);
return(exp);
}
return(null);
}