internal protected virtual IEnumerable <Token> OutlineTokens(IEnumerable <Token> tokens) { yield return(Token.Special("BOF", 0)); Token last = null; foreach (var token in tokens) { last = token; yield return(token); } var eofPosition = last == null ? 0 : last.EndPosition; yield return(Token.Special("EOF", eofPosition)); }