YAML: Extract the code that skips a comment into a separate method, NFC.
This commit extracts the code that skips over a YAML comment from the 'scanToNextToken' method into a separate 'skipComment' method. This refactoring is motivated by a patch that implements parsing of YAML block scalars (http://reviews.llvm.org/D9503), as the method that parses a block scalar reuses the 'skipComment' method. llvm-svn: 236663
This commit is contained in:
@@ -417,6 +417,10 @@ private:
|
||||
, Token::TokenKind Kind
|
||||
, TokenQueueT::iterator InsertPoint);
|
||||
|
||||
/// @brief Skip a single-line comment when the comment starts at the current
|
||||
/// position of the scanner.
|
||||
void skipComment();
|
||||
|
||||
/// @brief Skip whitespace and comments until the start of the next token.
|
||||
void scanToNextToken();
|
||||
|
||||
@@ -962,24 +966,27 @@ bool Scanner::rollIndent( int ToColumn
|
||||
return true;
|
||||
}
|
||||
|
||||
void Scanner::skipComment() {
|
||||
if (*Current != '#')
|
||||
return;
|
||||
while (true) {
|
||||
// This may skip more than one byte, thus Column is only incremented
|
||||
// for code points.
|
||||
StringRef::iterator I = skip_nb_char(Current);
|
||||
if (I == Current)
|
||||
break;
|
||||
Current = I;
|
||||
++Column;
|
||||
}
|
||||
}
|
||||
|
||||
void Scanner::scanToNextToken() {
|
||||
while (true) {
|
||||
while (*Current == ' ' || *Current == '\t') {
|
||||
skip(1);
|
||||
}
|
||||
|
||||
// Skip comment.
|
||||
if (*Current == '#') {
|
||||
while (true) {
|
||||
// This may skip more than one byte, thus Column is only incremented
|
||||
// for code points.
|
||||
StringRef::iterator i = skip_nb_char(Current);
|
||||
if (i == Current)
|
||||
break;
|
||||
Current = i;
|
||||
++Column;
|
||||
}
|
||||
}
|
||||
skipComment();
|
||||
|
||||
// Skip EOL.
|
||||
StringRef::iterator i = skip_b_break(Current);
|
||||
|
||||
Reference in New Issue
Block a user