reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/MC/MCParser/AsmLexer.cpp
   43     CurPtr = ptr;
   45     CurPtr = CurBuf.begin();
   55   return AsmToken(AsmToken::Error, StringRef(Loc, CurPtr - Loc));
   59   if (CurPtr == CurBuf.end())
   61   return (unsigned char)*CurPtr++;
   69   while (isDigit(*CurPtr))
   70     ++CurPtr;
   72   if (*CurPtr == '-' || *CurPtr == '+')
   72   if (*CurPtr == '-' || *CurPtr == '+')
   73     return ReturnError(CurPtr, "Invalid sign in float literal");
   76   if ((*CurPtr == 'e' || *CurPtr == 'E')) {
   76   if ((*CurPtr == 'e' || *CurPtr == 'E')) {
   77     ++CurPtr;
   79     if (*CurPtr == '-' || *CurPtr == '+')
   79     if (*CurPtr == '-' || *CurPtr == '+')
   80       ++CurPtr;
   82     while (isDigit(*CurPtr))
   83       ++CurPtr;
   87                   StringRef(TokStart, CurPtr - TokStart));
   97   assert((*CurPtr == 'p' || *CurPtr == 'P' || *CurPtr == '.') &&
   97   assert((*CurPtr == 'p' || *CurPtr == 'P' || *CurPtr == '.') &&
   97   assert((*CurPtr == 'p' || *CurPtr == 'P' || *CurPtr == '.') &&
  102   if (*CurPtr == '.') {
  103     ++CurPtr;
  105     const char *FracStart = CurPtr;
  106     while (isHexDigit(*CurPtr))
  107       ++CurPtr;
  109     NoFracDigits = CurPtr == FracStart;
  117   if (*CurPtr != 'p' && *CurPtr != 'P')
  117   if (*CurPtr != 'p' && *CurPtr != 'P')
  120   ++CurPtr;
  122   if (*CurPtr == '+' || *CurPtr == '-')
  122   if (*CurPtr == '+' || *CurPtr == '-')
  123     ++CurPtr;
  126   const char *ExpStart = CurPtr;
  127   while (isDigit(*CurPtr))
  128     ++CurPtr;
  130   if (CurPtr == ExpStart)
  134   return AsmToken(AsmToken::Real, StringRef(TokStart, CurPtr - TokStart));
  145   if (CurPtr[-1] == '.' && isDigit(*CurPtr)) {
  145   if (CurPtr[-1] == '.' && isDigit(*CurPtr)) {
  147     while (isDigit(*CurPtr))
  148       ++CurPtr;
  150     if (!IsIdentifierChar(*CurPtr, AllowAtInIdentifier) ||
  151         *CurPtr == 'e' || *CurPtr == 'E')
  151         *CurPtr == 'e' || *CurPtr == 'E')
  155   while (IsIdentifierChar(*CurPtr, AllowAtInIdentifier))
  156     ++CurPtr;
  159   if (CurPtr == TokStart+1 && TokStart[0] == '.')
  162   return AsmToken(AsmToken::Identifier, StringRef(TokStart, CurPtr - TokStart));
  168   switch (*CurPtr) {
  173     ++CurPtr;
  181   ++CurPtr;  // skip the star.
  182   const char *CommentTextStart = CurPtr;
  183   while (CurPtr != CurBuf.end()) {
  184     switch (*CurPtr++) {
  187       if (*CurPtr != '/')
  193             StringRef(CommentTextStart, CurPtr - 1 - CommentTextStart));
  195       ++CurPtr;   // End the */.
  197                       StringRef(TokStart, CurPtr - TokStart));
  210   const char *CommentTextStart = CurPtr;
  214   if (CurChar == '\r' && CurPtr != CurBuf.end() && *CurPtr == '\n')
  214   if (CurChar == '\r' && CurPtr != CurBuf.end() && *CurPtr == '\n')
  215     ++CurPtr;
  221         StringRef(CommentTextStart, CurPtr - 1 - CommentTextStart));
  228                     StringRef(TokStart, CurPtr - TokStart));
  232                   StringRef(TokStart, CurPtr - 1 - TokStart));
  289   if (LexMasmIntegers && isdigit(CurPtr[-1])) {
  290     const char *FirstNonBinary = (CurPtr[-1] != '0' && CurPtr[-1] != '1') ?
  290     const char *FirstNonBinary = (CurPtr[-1] != '0' && CurPtr[-1] != '1') ?
  291                                    CurPtr - 1 : nullptr;
  292     const char *OldCurPtr = CurPtr;
  293     while (isHexDigit(*CurPtr)) {
  294       if (*CurPtr != '0' && *CurPtr != '1' && !FirstNonBinary)
  294       if (*CurPtr != '0' && *CurPtr != '1' && !FirstNonBinary)
  295         FirstNonBinary = CurPtr;
  296       ++CurPtr;
  300     if (*CurPtr == 'h' || *CurPtr == 'H') {
  300     if (*CurPtr == 'h' || *CurPtr == 'H') {
  302       ++CurPtr;
  304     } else if (FirstNonBinary && FirstNonBinary + 1 == CurPtr &&
  309       StringRef Result(TokStart, CurPtr - TokStart);
  317       SkipIgnoredIntegerSuffix(CurPtr);
  323     CurPtr = OldCurPtr;
  327   if (CurPtr[-1] != '0' || CurPtr[0] == '.') {
  327   if (CurPtr[-1] != '0' || CurPtr[0] == '.') {
  328     unsigned Radix = doHexLookAhead(CurPtr, 10, LexMasmIntegers);
  331     if (!isHex && (*CurPtr == '.' || *CurPtr == 'e' || *CurPtr == 'E')) {
  331     if (!isHex && (*CurPtr == '.' || *CurPtr == 'e' || *CurPtr == 'E')) {
  331     if (!isHex && (*CurPtr == '.' || *CurPtr == 'e' || *CurPtr == 'E')) {
  332       if (*CurPtr == '.')
  333         ++CurPtr;
  337     StringRef Result(TokStart, CurPtr - TokStart);
  346       ++CurPtr;
  350     SkipIgnoredIntegerSuffix(CurPtr);
  355   if (!LexMasmIntegers && ((*CurPtr == 'b') || (*CurPtr == 'B'))) {
  355   if (!LexMasmIntegers && ((*CurPtr == 'b') || (*CurPtr == 'B'))) {
  356     ++CurPtr;
  358     if (!isDigit(CurPtr[0])) {
  359       --CurPtr;
  360       StringRef Result(TokStart, CurPtr - TokStart);
  363     const char *NumStart = CurPtr;
  364     while (CurPtr[0] == '0' || CurPtr[0] == '1')
  364     while (CurPtr[0] == '0' || CurPtr[0] == '1')
  365       ++CurPtr;
  368     if (CurPtr == NumStart)
  371     StringRef Result(TokStart, CurPtr - TokStart);
  379     SkipIgnoredIntegerSuffix(CurPtr);
  384   if ((*CurPtr == 'x') || (*CurPtr == 'X')) {
  384   if ((*CurPtr == 'x') || (*CurPtr == 'X')) {
  385     ++CurPtr;
  386     const char *NumStart = CurPtr;
  387     while (isHexDigit(CurPtr[0]))
  388       ++CurPtr;
  392     if (CurPtr[0] == '.' || CurPtr[0] == 'p' || CurPtr[0] == 'P')
  392     if (CurPtr[0] == '.' || CurPtr[0] == 'p' || CurPtr[0] == 'P')
  392     if (CurPtr[0] == '.' || CurPtr[0] == 'p' || CurPtr[0] == 'P')
  393       return LexHexFloatLiteral(NumStart == CurPtr);
  396     if (CurPtr == NumStart)
  397       return ReturnError(CurPtr-2, "invalid hexadecimal number");
  400     if (StringRef(TokStart, CurPtr - TokStart).getAsInteger(0, Result))
  404     if (LexMasmIntegers && (*CurPtr == 'h' || *CurPtr == 'H'))
  404     if (LexMasmIntegers && (*CurPtr == 'h' || *CurPtr == 'H'))
  405       ++CurPtr;
  409     SkipIgnoredIntegerSuffix(CurPtr);
  411     return intToken(StringRef(TokStart, CurPtr - TokStart), Result);
  416   unsigned Radix = doHexLookAhead(CurPtr, 8, LexMasmIntegers);
  418   StringRef Result(TokStart, CurPtr - TokStart);
  425     ++CurPtr;
  429   SkipIgnoredIntegerSuffix(CurPtr);
  451   StringRef Res = StringRef(TokStart,CurPtr - TokStart);
  485   return AsmToken(AsmToken::String, StringRef(TokStart, CurPtr - TokStart));
  489   TokStart = CurPtr;
  491   while (!isAtStartOfComment(CurPtr) &&     // Start of line comment.
  492          !isAtStatementSeparator(CurPtr) && // End of statement marker.
  493          *CurPtr != '\n' && *CurPtr != '\r' && CurPtr != CurBuf.end()) {
  493          *CurPtr != '\n' && *CurPtr != '\r' && CurPtr != CurBuf.end()) {
  493          *CurPtr != '\n' && *CurPtr != '\r' && CurPtr != CurBuf.end()) {
  494     ++CurPtr;
  496   return StringRef(TokStart, CurPtr-TokStart);
  500   TokStart = CurPtr;
  502   while (*CurPtr != '\n' && *CurPtr != '\r' && CurPtr != CurBuf.end()) {
  502   while (*CurPtr != '\n' && *CurPtr != '\r' && CurPtr != CurBuf.end()) {
  502   while (*CurPtr != '\n' && *CurPtr != '\r' && CurPtr != CurBuf.end()) {
  503     ++CurPtr;
  505   return StringRef(TokStart, CurPtr-TokStart);
  511   SaveAndRestore<const char *> SavedCurPtr(CurPtr);
  552   TokStart = CurPtr;
  565       CurPtr = TokStart; // reset curPtr;
  578     CurPtr += strlen(MAI.getSeparatorString()) - 1;
  611     while (*CurPtr == ' ' || *CurPtr == '\t')
  611     while (*CurPtr == ' ' || *CurPtr == '\t')
  612       CurPtr++;
  616       return AsmToken(AsmToken::Space, StringRef(TokStart, CurPtr - TokStart));
  621     if (CurPtr != CurBuf.end() && *CurPtr == '\n')
  621     if (CurPtr != CurBuf.end() && *CurPtr == '\n')
  622       ++CurPtr;
  624                     StringRef(TokStart, CurPtr - TokStart));
  645     if (*CurPtr == '=') {
  646       ++CurPtr;
  651     if (*CurPtr == '>') {
  652       ++CurPtr;
  657     if (*CurPtr == '|') {
  658       ++CurPtr;
  664     if (*CurPtr == '&') {
  665       ++CurPtr;
  670     if (*CurPtr == '=') {
  671       ++CurPtr;
  682               StringRef(CurPtr))
  710         CurPtr += OperatorLength - 1;
  725     switch (*CurPtr) {
  727       ++CurPtr;
  730       ++CurPtr;
  733       ++CurPtr;
  739     switch (*CurPtr) {
  741       ++CurPtr;
  744       ++CurPtr;