StringLexemeHelper constructor

StringLexemeHelper(
  1. String lexeme,
  2. bool isFirst,
  3. bool isLast
)

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;
    }
  }
}