Lines Matching full:bufferptr
95 if (BufferPtr == CommentEnd)
98 switch (*BufferPtr) {
103 const char *NewBufferPtr = BufferPtr;
116 BufferPtr = NewBufferPtr + 1;
120 BufferPtr++;
127 const char *findNewline(const char *BufferPtr, const char *BufferEnd) {
128 for ( ; BufferPtr != BufferEnd; ++BufferPtr) {
129 if (isVerticalWhitespace(*BufferPtr))
130 return BufferPtr;
135 const char *skipNewline(const char *BufferPtr, const char *BufferEnd) {
136 if (BufferPtr == BufferEnd)
137 return BufferPtr;
139 if (*BufferPtr == '\n')
140 BufferPtr++;
142 assert(*BufferPtr == '\r');
143 BufferPtr++;
144 if (BufferPtr != BufferEnd && *BufferPtr == '\n')
145 BufferPtr++;
147 return BufferPtr;
150 const char *skipNamedCharacterReference(const char *BufferPtr,
152 for ( ; BufferPtr != BufferEnd; ++BufferPtr) {
153 if (!isHTMLNamedCharacterReferenceCharacter(*BufferPtr))
154 return BufferPtr;
159 const char *skipDecimalCharacterReference(const char *BufferPtr,
161 for ( ; BufferPtr != BufferEnd; ++BufferPtr) {
162 if (!isHTMLDecimalCharacterReferenceCharacter(*BufferPtr))
163 return BufferPtr;
168 const char *skipHexCharacterReference(const char *BufferPtr,
170 for ( ; BufferPtr != BufferEnd; ++BufferPtr) {
171 if (!isHTMLHexCharacterReferenceCharacter(*BufferPtr))
172 return BufferPtr;
185 const char *skipHTMLIdentifier(const char *BufferPtr, const char *BufferEnd) {
186 for ( ; BufferPtr != BufferEnd; ++BufferPtr) {
187 if (!isHTMLIdentifierCharacter(*BufferPtr))
188 return BufferPtr;
197 const char *skipHTMLQuotedString(const char *BufferPtr, const char *BufferEnd)
199 const char Quote = *BufferPtr;
202 BufferPtr++;
203 for ( ; BufferPtr != BufferEnd; ++BufferPtr) {
204 const char C = *BufferPtr;
205 if (C == Quote && BufferPtr[-1] != '\\')
206 return BufferPtr;
211 const char *skipWhitespace(const char *BufferPtr, const char *BufferEnd) {
212 for ( ; BufferPtr != BufferEnd; ++BufferPtr) {
213 if (!isWhitespace(*BufferPtr))
214 return BufferPtr;
219 bool isWhitespace(const char *BufferPtr, const char *BufferEnd) {
220 return skipWhitespace(BufferPtr, BufferEnd) == BufferEnd;
231 const char *skipCommandName(const char *BufferPtr, const char *BufferEnd) {
232 for ( ; BufferPtr != BufferEnd; ++BufferPtr) {
233 if (!isCommandNameCharacter(*BufferPtr))
234 return BufferPtr;
241 const char *findBCPLCommentEnd(const char *BufferPtr, const char *BufferEnd) {
242 const char *CurPtr = BufferPtr;
255 (EscapePtr - 2 >= BufferPtr && EscapePtr[0] == '/' &&
267 const char *findCCommentEnd(const char *BufferPtr, const char *BufferEnd) {
268 for ( ; BufferPtr != BufferEnd; ++BufferPtr) {
269 if (*BufferPtr == '*') {
270 assert(BufferPtr + 1 != BufferEnd);
271 if (*(BufferPtr + 1) == '/')
272 return BufferPtr;
282 const unsigned TokLen = TokEnd - BufferPtr;
283 Result.setLocation(getSourceLocation(BufferPtr));
290 BufferPtr = TokEnd;
319 const char *TokenPtr = BufferPtr;
349 StringRef UnescapedText(BufferPtr + 1, TokenPtr - (BufferPtr + 1));
362 unsigned Length = TokenPtr - (BufferPtr + 1);
374 StringRef CommandName(BufferPtr + 1, Length);
380 SourceLocation Loc = getSourceLocation(BufferPtr);
394 setupAndLexVerbatimBlock(T, TokenPtr, *BufferPtr, Info);
464 if (BufferPtr != CommentEnd &&
465 isVerticalWhitespace(*BufferPtr)) {
466 BufferPtr = skipNewline(BufferPtr, CommentEnd);
476 assert(BufferPtr < CommentEnd);
482 const char *Newline = findNewline(BufferPtr, CommentEnd);
483 StringRef Line(BufferPtr, Newline - BufferPtr);
495 const char *End = BufferPtr + VerbatimBlockEndCommandName.size();
496 StringRef Name(BufferPtr + 1, End - (BufferPtr + 1));
503 TextEnd = BufferPtr + Pos;
506 if (isWhitespace(BufferPtr, TextEnd)) {
507 BufferPtr = TextEnd;
512 StringRef Text(BufferPtr, TextEnd - BufferPtr);
525 if (BufferPtr == CommentEnd) {
526 formTokenWithChars(T, BufferPtr, tok::verbatim_block_line);
547 const char *Newline = findNewline(BufferPtr, CommentEnd);
548 StringRef Text(BufferPtr, Newline - BufferPtr);
556 const char *TokenPtr = BufferPtr;
618 assert(BufferPtr[0] == '<' &&
619 isHTMLIdentifierStartingCharacter(BufferPtr[1]));
620 const char *TagNameEnd = skipHTMLIdentifier(BufferPtr + 2, CommentEnd);
621 StringRef Name(BufferPtr + 1, TagNameEnd - (BufferPtr + 1));
630 BufferPtr = skipWhitespace(BufferPtr, CommentEnd);
632 const char C = *BufferPtr;
633 if (BufferPtr != CommentEnd &&
641 const char *TokenPtr = BufferPtr;
645 StringRef Ident(BufferPtr, TokenPtr - BufferPtr);
686 BufferPtr = skipWhitespace(BufferPtr, CommentEnd);
687 if (BufferPtr == CommentEnd) {
692 C = *BufferPtr;
701 assert(BufferPtr[0] == '<' && BufferPtr[1] == '/');
703 const char *TagNameBegin = skipWhitespace(BufferPtr + 2, CommentEnd);
716 if (BufferPtr != CommentEnd && *BufferPtr == '>')
721 assert(BufferPtr != CommentEnd && *BufferPtr == '>');
723 formTokenWithChars(T, BufferPtr + 1, tok::html_greater);
733 FileLoc(FileLoc), BufferPtr(BufferStart),
741 if (BufferPtr == BufferEnd) {
742 formTokenWithChars(T, BufferPtr, tok::eof);
746 assert(*BufferPtr == '/');
747 BufferPtr++; // Skip first slash.
748 switch(*BufferPtr) {
750 BufferPtr++; // Skip second slash.
752 if (BufferPtr != BufferEnd) {
757 const char C = *BufferPtr;
759 BufferPtr++;
765 if (BufferPtr != BufferEnd && *BufferPtr == '<')
766 BufferPtr++;
771 CommentEnd = findBCPLCommentEnd(BufferPtr, BufferEnd);
775 BufferPtr++; // Skip star.
778 const char C = *BufferPtr;
779 if ((C == '*' && *(BufferPtr + 1) != '/') || C == '!')
780 BufferPtr++;
783 if (BufferPtr != BufferEnd && *BufferPtr == '<')
784 BufferPtr++;
788 CommentEnd = findCCommentEnd(BufferPtr, BufferEnd);
798 const char *EndWhitespace = BufferPtr;
814 if (BufferPtr != CommentEnd) {
820 assert(BufferPtr[0] == '*' && BufferPtr[1] == '/');
821 BufferPtr += 2;
822 assert(BufferPtr <= BufferEnd);
826 formTokenWithChars(T, BufferPtr, tok::newline);