// this will scan the longest valid regular entry public static IIdentifierLiteral Scan(TextInputRange input) { if (!IsStart(input)) { input.Backtrack(); // dot might have been skipped return(null); } do { input.Extend(); } while (IsContinue(input)); return(new IdentifierLiteral { Content = input.Text, Range = input.Clone() }); }