docs: function getScanStartPosition(enclosingNode, originalRange, sourceFile) {
              var start = enclosingNode.getStart(sourceFile);
              if (start === originalRange.pos && enclosingNode.end === originalRange.end) {
                  return start;
              }
              var precedingToken = ts.findPrecedingToken(originalRange.pos, sourceFile);
              if (!precedingToken) {
                  // no preceding token found - start from the beginning of enclosing node
                  return enclosingNode.pos;
              }
              // preceding token ends after the start of original range (i.e when originalRange.pos falls in the middle of literal)
              // start from the beginning of enclosingNode to handle the entire 'originalRange'
              if (precedingToken.end >= originalRange.pos) {
                  return enclosingNode.pos;
              }
              return precedingToken.end;
          }