mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@236663 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
cdedd99893
commit
0f04f3b213
@ -417,6 +417,10 @@ private:
|
|||||||
, Token::TokenKind Kind
|
, Token::TokenKind Kind
|
||||||
, TokenQueueT::iterator InsertPoint);
|
, 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.
|
/// @brief Skip whitespace and comments until the start of the next token.
|
||||||
void scanToNextToken();
|
void scanToNextToken();
|
||||||
|
|
||||||
@ -962,24 +966,27 @@ bool Scanner::rollIndent( int ToColumn
|
|||||||
return true;
|
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() {
|
void Scanner::scanToNextToken() {
|
||||||
while (true) {
|
while (true) {
|
||||||
while (*Current == ' ' || *Current == '\t') {
|
while (*Current == ' ' || *Current == '\t') {
|
||||||
skip(1);
|
skip(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Skip comment.
|
skipComment();
|
||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Skip EOL.
|
// Skip EOL.
|
||||||
StringRef::iterator i = skip_b_break(Current);
|
StringRef::iterator i = skip_b_break(Current);
|
||||||
|
Loading…
Reference in New Issue
Block a user