Home | History | Annotate | Download | only in MCParser

Lines Matching full:curptr

26   CurPtr = NULL;
37 CurPtr = ptr;
39 CurPtr = CurBuf->getBufferStart();
53 char CurChar = *CurPtr++;
60 if (CurPtr-1 != CurBuf->getBufferEnd())
64 --CurPtr; // Another call to lex will return EOF again.
76 while (isdigit(*CurPtr))
77 ++CurPtr;
82 if (*CurPtr == 'e' || *CurPtr == 'E') {
83 ++CurPtr;
84 if (*CurPtr == '-' || *CurPtr == '+')
85 ++CurPtr;
86 while (isdigit(*CurPtr))
87 ++CurPtr;
91 StringRef(TokStart, CurPtr - TokStart));
100 if (CurPtr[-1] == '.' && isdigit(*CurPtr)) {
102 while (isdigit(*CurPtr))
103 ++CurPtr;
104 if (*CurPtr == 'e' || *CurPtr == 'E' || !IsIdentifierChar(*CurPtr))
108 while (IsIdentifierChar(*CurPtr))
109 ++CurPtr;
112 if (CurPtr == TokStart+1 && TokStart[0] == '.')
115 return AsmToken(AsmToken::Identifier, StringRef(TokStart, CurPtr - TokStart));
121 switch (*CurPtr) {
123 case '/': return ++CurPtr, LexLineComment();
124 default: return AsmToken(AsmToken::Slash, StringRef(CurPtr-1, 1));
128 ++CurPtr; // skip the star.
136 if (CurPtr[0] != '/') break;
138 ++CurPtr; // End the */.
154 return AsmToken(AsmToken::Eof, StringRef(CurPtr, 0));
155 return AsmToken(AsmToken::EndOfStatement, StringRef(CurPtr, 0));
158 static void SkipIgnoredIntegerSuffix(const char *&CurPtr) {
159 if (CurPtr[0] == 'L' && CurPtr[1] == 'L')
160 CurPtr += 2;
161 if (CurPtr[0] == 'U' && CurPtr[1] == 'L' && CurPtr[2] == 'L')
162 CurPtr += 3;
174 if (CurPtr[-1] != '0' || CurPtr[0] == '.') {
175 while (isdigit(*CurPtr))
176 ++CurPtr;
179 if (*CurPtr == '.' || *CurPtr == 'e') {
180 ++CurPtr;
184 StringRef Result(TokStart, CurPtr - TokStart);
198 SkipIgnoredIntegerSuffix(CurPtr);
203 if (*CurPtr == 'b') {
204 ++CurPtr;
206 if (!isdigit(CurPtr[0])) {
207 --CurPtr;
208 StringRef Result(TokStart, CurPtr - TokStart);
211 const char *NumStart = CurPtr;
212 while (CurPtr[0] == '0' || CurPtr[0] == '1')
213 ++CurPtr;
216 if (CurPtr == NumStart)
219 StringRef Result(TokStart, CurPtr - TokStart);
227 SkipIgnoredIntegerSuffix(CurPtr);
232 if (*CurPtr == 'x') {
233 ++CurPtr;
234 const char *NumStart = CurPtr;
235 while (isxdigit(CurPtr[0]))
236 ++CurPtr;
239 if (CurPtr == NumStart)
240 return ReturnError(CurPtr-2, "invalid hexadecimal number");
243 if (StringRef(TokStart, CurPtr - TokStart).getAsInteger(0, Result))
248 SkipIgnoredIntegerSuffix(CurPtr);
250 return AsmToken(AsmToken::Integer, StringRef(TokStart, CurPtr - TokStart),
255 while (*CurPtr >= '0' && *CurPtr <= '9')
256 ++CurPtr;
258 StringRef Result(TokStart, CurPtr - TokStart);
265 SkipIgnoredIntegerSuffix(CurPtr);
287 StringRef Res = StringRef(TokStart,CurPtr - TokStart);
322 return AsmToken(AsmToken::String, StringRef(TokStart, CurPtr - TokStart));
326 TokStart = CurPtr;
328 while (!isAtStartOfComment(*CurPtr) && // Start of line comment.
329 !isAtStatementSeparator(CurPtr) && // End of statement marker.
330 *CurPtr != '\n' &&
331 *CurPtr != '\r' &&
332 (*CurPtr != 0 || CurPtr != CurBuf->getBufferEnd())) {
333 ++CurPtr;
335 return StringRef(TokStart, CurPtr-TokStart);
339 TokStart = CurPtr;
341 while (*CurPtr != '\n' &&
342 *CurPtr != '\r' &&
343 (*CurPtr != 0 || CurPtr != CurBuf->getBufferEnd())) {
344 ++CurPtr;
346 return StringRef(TokStart, CurPtr-TokStart);
360 TokStart = CurPtr;
374 CurPtr += strlen(MAI.getSeparatorString()) - 1;
421 if (*CurPtr == '=')
422 return ++CurPtr, AsmToken(AsmToken::EqualEqual, StringRef(TokStart, 2));
425 if (*CurPtr == '|')
426 return ++CurPtr, AsmToken(AsmToken::PipePipe, StringRef(TokStart, 2));
430 if (*CurPtr == '&')
431 return ++CurPtr, AsmToken(AsmToken::AmpAmp, StringRef(TokStart, 2));
434 if (*CurPtr == '=')
435 return ++CurPtr, AsmToken(AsmToken::ExclaimEqual, StringRef(TokStart, 2));
446 switch (*CurPtr) {
447 case '<': return ++CurPtr, AsmToken(AsmToken::LessLess,
449 case '=': return ++CurPtr, AsmToken(AsmToken::LessEqual,
451 case '>': return ++CurPtr, AsmToken(AsmToken::LessGreater,
456 switch (*CurPtr) {
457 case '>': return ++CurPtr, AsmToken(AsmToken::GreaterGreater,
459 case '=': return ++CurPtr, AsmToken(AsmToken::GreaterEqual,