visitLiteral method

  1. @override
void visitLiteral(
  1. LiteralExpression node
)
override

Implementation

@override
void visitLiteral(LiteralExpression node) {
  final text = node.text;
  if (text.isEmpty) {
    _addAllCharactersWithEof(node);
  } else {
    final characters = SparseBoolList();
    int c;
    final leading = text.codeUnitAt(0);
    if ((leading & 0xFC00) == 0xD800 && text.length > 1) {
      final trailing = text.codeUnitAt(1);
      if ((trailing & 0xFC00) == 0xDC00) {
        c = 0x10000 + ((leading & 0x3FF) << 10) + (trailing & 0x3FF);
      } else {
        c = leading;
      }
    } else {
      c = leading;
    }

    final group = GroupedRangeList<bool>(c, c, true);
    characters.addGroup(group);
    _addCharacters(node, characters);
  }
}