StringLexemeHelper constructor
Implementation
StringLexemeHelper(this.lexeme, this.isFirst, this.isLast) {
if (isFirst) {
isRaw = lexeme.startsWith('r');
if (isRaw) {
start++;
}
if (lexeme.startsWith("'''", start)) {
isSingleQuoted = true;
isMultiline = true;
start += 3;
start = _trimInitialWhitespace(start);
} else if (lexeme.startsWith('"""', start)) {
isSingleQuoted = false;
isMultiline = true;
start += 3;
start = _trimInitialWhitespace(start);
} else if (start < lexeme.length && lexeme.codeUnitAt(start) == 0x27) {
isSingleQuoted = true;
isMultiline = false;
start++;
} else if (start < lexeme.length && lexeme.codeUnitAt(start) == 0x22) {
isSingleQuoted = false;
isMultiline = false;
start++;
}
}
end = lexeme.length;
if (isLast) {
if (start + 3 <= end &&
(lexeme.endsWith("'''") || lexeme.endsWith('"""'))) {
end -= 3;
} else if (start + 1 <= end &&
(lexeme.endsWith("'") || lexeme.endsWith('"'))) {
end -= 1;
}
}
}