Lines Matching refs:CurPtr

44     CurPtr = ptr;  in setBuffer()
46 CurPtr = CurBuf.begin(); in setBuffer()
56 return AsmToken(AsmToken::Error, StringRef(Loc, CurPtr - Loc)); in ReturnError()
60 if (CurPtr == CurBuf.end()) in getNextChar()
62 return (unsigned char)*CurPtr++; in getNextChar()
72 while (isDigit(*CurPtr)) in LexFloatLiteral()
73 ++CurPtr; in LexFloatLiteral()
78 if (*CurPtr == 'e' || *CurPtr == 'E') { in LexFloatLiteral()
79 ++CurPtr; in LexFloatLiteral()
80 if (*CurPtr == '-' || *CurPtr == '+') in LexFloatLiteral()
81 ++CurPtr; in LexFloatLiteral()
82 while (isDigit(*CurPtr)) in LexFloatLiteral()
83 ++CurPtr; in LexFloatLiteral()
87 StringRef(TokStart, CurPtr - TokStart)); in LexFloatLiteral()
97 assert((*CurPtr == 'p' || *CurPtr == 'P' || *CurPtr == '.') && in LexHexFloatLiteral()
102 if (*CurPtr == '.') { in LexHexFloatLiteral()
103 ++CurPtr; in LexHexFloatLiteral()
105 const char *FracStart = CurPtr; in LexHexFloatLiteral()
106 while (isHexDigit(*CurPtr)) in LexHexFloatLiteral()
107 ++CurPtr; in LexHexFloatLiteral()
109 NoFracDigits = CurPtr == FracStart; in LexHexFloatLiteral()
117 if (*CurPtr != 'p' && *CurPtr != 'P') in LexHexFloatLiteral()
120 ++CurPtr; in LexHexFloatLiteral()
122 if (*CurPtr == '+' || *CurPtr == '-') in LexHexFloatLiteral()
123 ++CurPtr; in LexHexFloatLiteral()
126 const char *ExpStart = CurPtr; in LexHexFloatLiteral()
127 while (isDigit(*CurPtr)) in LexHexFloatLiteral()
128 ++CurPtr; in LexHexFloatLiteral()
130 if (CurPtr == ExpStart) in LexHexFloatLiteral()
134 return AsmToken(AsmToken::Real, StringRef(TokStart, CurPtr - TokStart)); in LexHexFloatLiteral()
145 if (CurPtr[-1] == '.' && isDigit(*CurPtr)) { in LexIdentifier()
147 while (isDigit(*CurPtr)) in LexIdentifier()
148 ++CurPtr; in LexIdentifier()
149 if (*CurPtr == 'e' || *CurPtr == 'E' || in LexIdentifier()
150 !IsIdentifierChar(*CurPtr, AllowAtInIdentifier)) in LexIdentifier()
154 while (IsIdentifierChar(*CurPtr, AllowAtInIdentifier)) in LexIdentifier()
155 ++CurPtr; in LexIdentifier()
158 if (CurPtr == TokStart+1 && TokStart[0] == '.') in LexIdentifier()
161 return AsmToken(AsmToken::Identifier, StringRef(TokStart, CurPtr - TokStart)); in LexIdentifier()
167 switch (*CurPtr) { in LexSlash()
172 ++CurPtr; in LexSlash()
180 ++CurPtr; // skip the star. in LexSlash()
181 const char *CommentTextStart = CurPtr; in LexSlash()
182 while (CurPtr != CurBuf.end()) { in LexSlash()
183 switch (*CurPtr++) { in LexSlash()
186 if (*CurPtr != '/') in LexSlash()
192 StringRef(CommentTextStart, CurPtr - 1 - CommentTextStart)); in LexSlash()
194 ++CurPtr; // End the */. in LexSlash()
196 StringRef(TokStart, CurPtr - TokStart)); in LexSlash()
209 const char *CommentTextStart = CurPtr; in LexLineComment()
213 if (CurChar == '\r' && CurPtr != CurBuf.end() && *CurPtr == '\n') in LexLineComment()
214 ++CurPtr; in LexLineComment()
220 StringRef(CommentTextStart, CurPtr - 1 - CommentTextStart)); in LexLineComment()
227 StringRef(TokStart, CurPtr - TokStart)); in LexLineComment()
231 StringRef(TokStart, CurPtr - 1 - TokStart)); in LexLineComment()
234 static void SkipIgnoredIntegerSuffix(const char *&CurPtr) { in SkipIgnoredIntegerSuffix() argument
236 if (CurPtr[0] == 'U') in SkipIgnoredIntegerSuffix()
237 ++CurPtr; in SkipIgnoredIntegerSuffix()
238 if (CurPtr[0] == 'L') in SkipIgnoredIntegerSuffix()
239 ++CurPtr; in SkipIgnoredIntegerSuffix()
240 if (CurPtr[0] == 'L') in SkipIgnoredIntegerSuffix()
241 ++CurPtr; in SkipIgnoredIntegerSuffix()
246 static unsigned doHexLookAhead(const char *&CurPtr, unsigned DefaultRadix, in doHexLookAhead() argument
249 const char *LookAhead = CurPtr; in doHexLookAhead()
265 CurPtr = isHex || !FirstNonDec ? LookAhead : FirstNonDec; in doHexLookAhead()
288 if (LexMasmIntegers && isdigit(CurPtr[-1])) { in LexDigit()
289 const char *FirstNonBinary = (CurPtr[-1] != '0' && CurPtr[-1] != '1') ? in LexDigit()
290 CurPtr - 1 : nullptr; in LexDigit()
291 const char *OldCurPtr = CurPtr; in LexDigit()
292 while (isHexDigit(*CurPtr)) { in LexDigit()
293 if (*CurPtr != '0' && *CurPtr != '1' && !FirstNonBinary) in LexDigit()
294 FirstNonBinary = CurPtr; in LexDigit()
295 ++CurPtr; in LexDigit()
299 if (*CurPtr == 'h' || *CurPtr == 'H') { in LexDigit()
301 ++CurPtr; in LexDigit()
303 } else if (FirstNonBinary && FirstNonBinary + 1 == CurPtr && in LexDigit()
308 StringRef Result(TokStart, CurPtr - TokStart); in LexDigit()
316 SkipIgnoredIntegerSuffix(CurPtr); in LexDigit()
322 CurPtr = OldCurPtr; in LexDigit()
326 if (CurPtr[-1] != '0' || CurPtr[0] == '.') { in LexDigit()
327 unsigned Radix = doHexLookAhead(CurPtr, 10, LexMasmIntegers); in LexDigit()
330 if (!isHex && (*CurPtr == '.' || *CurPtr == 'e')) { in LexDigit()
331 ++CurPtr; in LexDigit()
335 StringRef Result(TokStart, CurPtr - TokStart); in LexDigit()
344 ++CurPtr; in LexDigit()
348 SkipIgnoredIntegerSuffix(CurPtr); in LexDigit()
353 if (!LexMasmIntegers && ((*CurPtr == 'b') || (*CurPtr == 'B'))) { in LexDigit()
354 ++CurPtr; in LexDigit()
356 if (!isDigit(CurPtr[0])) { in LexDigit()
357 --CurPtr; in LexDigit()
358 StringRef Result(TokStart, CurPtr - TokStart); in LexDigit()
361 const char *NumStart = CurPtr; in LexDigit()
362 while (CurPtr[0] == '0' || CurPtr[0] == '1') in LexDigit()
363 ++CurPtr; in LexDigit()
366 if (CurPtr == NumStart) in LexDigit()
369 StringRef Result(TokStart, CurPtr - TokStart); in LexDigit()
377 SkipIgnoredIntegerSuffix(CurPtr); in LexDigit()
382 if ((*CurPtr == 'x') || (*CurPtr == 'X')) { in LexDigit()
383 ++CurPtr; in LexDigit()
384 const char *NumStart = CurPtr; in LexDigit()
385 while (isHexDigit(CurPtr[0])) in LexDigit()
386 ++CurPtr; in LexDigit()
390 if (CurPtr[0] == '.' || CurPtr[0] == 'p' || CurPtr[0] == 'P') in LexDigit()
391 return LexHexFloatLiteral(NumStart == CurPtr); in LexDigit()
394 if (CurPtr == NumStart) in LexDigit()
395 return ReturnError(CurPtr-2, "invalid hexadecimal number"); in LexDigit()
398 if (StringRef(TokStart, CurPtr - TokStart).getAsInteger(0, Result)) in LexDigit()
402 if (LexMasmIntegers && (*CurPtr == 'h' || *CurPtr == 'H')) in LexDigit()
403 ++CurPtr; in LexDigit()
407 SkipIgnoredIntegerSuffix(CurPtr); in LexDigit()
409 return intToken(StringRef(TokStart, CurPtr - TokStart), Result); in LexDigit()
414 unsigned Radix = doHexLookAhead(CurPtr, 8, LexMasmIntegers); in LexDigit()
416 StringRef Result(TokStart, CurPtr - TokStart); in LexDigit()
423 ++CurPtr; in LexDigit()
427 SkipIgnoredIntegerSuffix(CurPtr); in LexDigit()
449 StringRef Res = StringRef(TokStart,CurPtr - TokStart); in LexSingleQuote()
483 return AsmToken(AsmToken::String, StringRef(TokStart, CurPtr - TokStart)); in LexQuote()
487 TokStart = CurPtr; in LexUntilEndOfStatement()
489 while (!isAtStartOfComment(CurPtr) && // Start of line comment. in LexUntilEndOfStatement()
490 !isAtStatementSeparator(CurPtr) && // End of statement marker. in LexUntilEndOfStatement()
491 *CurPtr != '\n' && *CurPtr != '\r' && CurPtr != CurBuf.end()) { in LexUntilEndOfStatement()
492 ++CurPtr; in LexUntilEndOfStatement()
494 return StringRef(TokStart, CurPtr-TokStart); in LexUntilEndOfStatement()
498 TokStart = CurPtr; in LexUntilEndOfLine()
500 while (*CurPtr != '\n' && *CurPtr != '\r' && CurPtr != CurBuf.end()) { in LexUntilEndOfLine()
501 ++CurPtr; in LexUntilEndOfLine()
503 return StringRef(TokStart, CurPtr-TokStart); in LexUntilEndOfLine()
509 SaveAndRestore<const char *> SavedCurPtr(CurPtr); in peekTokens()
550 TokStart = CurPtr; in LexToken()
563 CurPtr = TokStart; // reset curPtr; in LexToken()
576 CurPtr += strlen(MAI.getSeparatorString()) - 1; in LexToken()
609 while (*CurPtr == ' ' || *CurPtr == '\t') in LexToken()
610 CurPtr++; in LexToken()
614 return AsmToken(AsmToken::Space, StringRef(TokStart, CurPtr - TokStart)); in LexToken()
619 if (CurPtr != CurBuf.end() && *CurPtr == '\n') in LexToken()
620 ++CurPtr; in LexToken()
622 StringRef(TokStart, CurPtr - TokStart)); in LexToken()
643 if (*CurPtr == '=') { in LexToken()
644 ++CurPtr; in LexToken()
649 if (*CurPtr == '>') { in LexToken()
650 ++CurPtr; in LexToken()
655 if (*CurPtr == '|') { in LexToken()
656 ++CurPtr; in LexToken()
662 if (*CurPtr == '&') { in LexToken()
663 ++CurPtr; in LexToken()
668 if (*CurPtr == '=') { in LexToken()
669 ++CurPtr; in LexToken()
680 StringRef(CurPtr)) in LexToken()
708 CurPtr += OperatorLength - 1; in LexToken()
723 switch (*CurPtr) { in LexToken()
725 ++CurPtr; in LexToken()
728 ++CurPtr; in LexToken()
731 ++CurPtr; in LexToken()
737 switch (*CurPtr) { in LexToken()
739 ++CurPtr; in LexToken()
742 ++CurPtr; in LexToken()