Hahnfeld marked 2 inline comments as done.
Hahnfeld added inline comments.

================
Comment at: clang/lib/Lex/Preprocessor.cpp:998
 
+std::vector<Token> Preprocessor::LexAll() {
+  std::vector<Token> toks;
----------------
aaron.ballman wrote:
> v.g.vassilev wrote:
> > Shouldn't we take the results as a `LexAll(std::vector<Token> &result)`?
> > 
> > Perhaps we should rename this interface to `LexTokensUntilEOF`?
> I think both suggestions make sense, especially given this doesn't return the 
> EOF token (so it doesn't really lex *all*). Though, given how many callers do 
> not want to store the tokens, perhaps it should take a `std::optional` or a 
> pointer to the vector so we can skip the storage work if it's unnecessary?
The new `LexTokensUntilEOF` now takes an optional `std::vector<Token> *Tokens = 
nullptr`.


================
Comment at: clang/lib/Lex/Preprocessor.cpp:1000
+  std::vector<Token> toks;
+  while (1) {
+    Token tok;
----------------
aaron.ballman wrote:
> I'd prefer not to assume the token stream has an EOF token (perhaps the 
> stream is one only being used to parse until the `eod` token instead), so if 
> we can turn this into a non-infinite loop, that would make me more 
> comfortable.
I'm not sure I understand entirely. Do you want something like
```
tok.isOneOf(tok::unknown, tok::eof, tok::eod)
```
instead of `tok.is(tok::eof)`? Can this happen at the level of the 
`Preprocessor`?


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D158413/new/

https://reviews.llvm.org/D158413

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to