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); }