Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1660)

Side by Side Diff: xfa/fxfa/fm2js/xfa_lexer.cpp

Issue 1921323002: Fix Wvarargs warning in XFA error code. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « xfa/fxfa/fm2js/xfa_lexer.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #include "xfa/fxfa/fm2js/xfa_lexer.h" 7 #include "xfa/fxfa/fm2js/xfa_lexer.h"
8 8
9 #include "core/fxcrt/include/fx_ext.h" 9 #include "core/fxcrt/include/fx_ext.h"
10 10
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
170 CXFA_FMToken* CXFA_FMLexer::NextToken() { 170 CXFA_FMToken* CXFA_FMLexer::NextToken() {
171 m_pToken.reset(Scan()); 171 m_pToken.reset(Scan());
172 return m_pToken.get(); 172 return m_pToken.get();
173 } 173 }
174 174
175 CXFA_FMToken* CXFA_FMLexer::Scan() { 175 CXFA_FMToken* CXFA_FMLexer::Scan() {
176 uint16_t ch = 0; 176 uint16_t ch = 0;
177 CXFA_FMToken* p = new CXFA_FMToken(m_uCurrentLine); 177 CXFA_FMToken* p = new CXFA_FMToken(m_uCurrentLine);
178 if (!XFA_FMDChar::isAvalid(m_ptr)) { 178 if (!XFA_FMDChar::isAvalid(m_ptr)) {
179 ch = XFA_FMDChar::get(m_ptr); 179 ch = XFA_FMDChar::get(m_ptr);
180 Error(FMERR_UNSUPPORTED_CHAR, ch); 180 Error(kFMErrUnsupportedChar, ch);
181 return p; 181 return p;
182 } 182 }
183 int iRet = 0; 183 int iRet = 0;
184 while (1) { 184 while (1) {
185 if (!XFA_FMDChar::isAvalid(m_ptr)) { 185 if (!XFA_FMDChar::isAvalid(m_ptr)) {
186 ch = XFA_FMDChar::get(m_ptr); 186 ch = XFA_FMDChar::get(m_ptr);
187 Error(FMERR_UNSUPPORTED_CHAR, ch); 187 Error(kFMErrUnsupportedChar, ch);
188 return p; 188 return p;
189 } 189 }
190 ch = XFA_FMDChar::get(m_ptr); 190 ch = XFA_FMDChar::get(m_ptr);
191 switch (ch) { 191 switch (ch) {
192 case 0: 192 case 0:
193 p->m_type = TOKeof; 193 p->m_type = TOKeof;
194 return p; 194 return p;
195 case 0x0A: 195 case 0x0A:
196 ++m_uCurrentLine; 196 ++m_uCurrentLine;
197 p->m_uLinenum = m_uCurrentLine; 197 p->m_uLinenum = m_uCurrentLine;
(...skipping 22 matching lines...) Expand all
220 case '5': 220 case '5':
221 case '6': 221 case '6':
222 case '7': 222 case '7':
223 case '8': 223 case '8':
224 case '9': { 224 case '9': {
225 p->m_type = TOKnumber; 225 p->m_type = TOKnumber;
226 const FX_WCHAR* pTemp = 0; 226 const FX_WCHAR* pTemp = 0;
227 iRet = Number(p, m_ptr, pTemp); 227 iRet = Number(p, m_ptr, pTemp);
228 m_ptr = pTemp; 228 m_ptr = pTemp;
229 if (iRet) { 229 if (iRet) {
230 Error(FMERR_BAD_SUFFIX_NUMBER); 230 Error(kFMErrBadSuffixNumber);
231 return p; 231 return p;
232 } 232 }
233 } 233 }
234 return p; 234 return p;
235 case '=': 235 case '=':
236 XFA_FMDChar::inc(m_ptr); 236 XFA_FMDChar::inc(m_ptr);
237 if (XFA_FMDChar::isAvalid(m_ptr)) { 237 if (XFA_FMDChar::isAvalid(m_ptr)) {
238 ch = XFA_FMDChar::get(m_ptr); 238 ch = XFA_FMDChar::get(m_ptr);
239 if (ch == '=') { 239 if (ch == '=') {
240 p->m_type = TOKeq; 240 p->m_type = TOKeq;
241 XFA_FMDChar::inc(m_ptr); 241 XFA_FMDChar::inc(m_ptr);
242 return p; 242 return p;
243 } else { 243 } else {
244 p->m_type = TOKassign; 244 p->m_type = TOKassign;
245 return p; 245 return p;
246 } 246 }
247 } else { 247 } else {
248 ch = XFA_FMDChar::get(m_ptr); 248 ch = XFA_FMDChar::get(m_ptr);
249 Error(FMERR_UNSUPPORTED_CHAR, ch); 249 Error(kFMErrUnsupportedChar, ch);
250 return p; 250 return p;
251 } 251 }
252 break; 252 break;
253 case '<': 253 case '<':
254 XFA_FMDChar::inc(m_ptr); 254 XFA_FMDChar::inc(m_ptr);
255 if (XFA_FMDChar::isAvalid(m_ptr)) { 255 if (XFA_FMDChar::isAvalid(m_ptr)) {
256 ch = XFA_FMDChar::get(m_ptr); 256 ch = XFA_FMDChar::get(m_ptr);
257 if (ch == '=') { 257 if (ch == '=') {
258 p->m_type = TOKle; 258 p->m_type = TOKle;
259 XFA_FMDChar::inc(m_ptr); 259 XFA_FMDChar::inc(m_ptr);
260 return p; 260 return p;
261 } else if (ch == '>') { 261 } else if (ch == '>') {
262 p->m_type = TOKne; 262 p->m_type = TOKne;
263 XFA_FMDChar::inc(m_ptr); 263 XFA_FMDChar::inc(m_ptr);
264 return p; 264 return p;
265 } else { 265 } else {
266 p->m_type = TOKlt; 266 p->m_type = TOKlt;
267 return p; 267 return p;
268 } 268 }
269 } else { 269 } else {
270 ch = XFA_FMDChar::get(m_ptr); 270 ch = XFA_FMDChar::get(m_ptr);
271 Error(FMERR_UNSUPPORTED_CHAR, ch); 271 Error(kFMErrUnsupportedChar, ch);
272 return p; 272 return p;
273 } 273 }
274 break; 274 break;
275 case '>': 275 case '>':
276 XFA_FMDChar::inc(m_ptr); 276 XFA_FMDChar::inc(m_ptr);
277 if (XFA_FMDChar::isAvalid(m_ptr)) { 277 if (XFA_FMDChar::isAvalid(m_ptr)) {
278 ch = XFA_FMDChar::get(m_ptr); 278 ch = XFA_FMDChar::get(m_ptr);
279 if (ch == '=') { 279 if (ch == '=') {
280 p->m_type = TOKge; 280 p->m_type = TOKge;
281 XFA_FMDChar::inc(m_ptr); 281 XFA_FMDChar::inc(m_ptr);
282 return p; 282 return p;
283 } else { 283 } else {
284 p->m_type = TOKgt; 284 p->m_type = TOKgt;
285 return p; 285 return p;
286 } 286 }
287 } else { 287 } else {
288 ch = XFA_FMDChar::get(m_ptr); 288 ch = XFA_FMDChar::get(m_ptr);
289 Error(FMERR_UNSUPPORTED_CHAR, ch); 289 Error(kFMErrUnsupportedChar, ch);
290 return p; 290 return p;
291 } 291 }
292 break; 292 break;
293 case ',': 293 case ',':
294 p->m_type = TOKcomma; 294 p->m_type = TOKcomma;
295 XFA_FMDChar::inc(m_ptr); 295 XFA_FMDChar::inc(m_ptr);
296 return p; 296 return p;
297 case '(': 297 case '(':
298 p->m_type = TOKlparen; 298 p->m_type = TOKlparen;
299 XFA_FMDChar::inc(m_ptr); 299 XFA_FMDChar::inc(m_ptr);
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
338 const FX_WCHAR* pTemp = 0; 338 const FX_WCHAR* pTemp = 0;
339 Comment(m_ptr, pTemp); 339 Comment(m_ptr, pTemp);
340 m_ptr = pTemp; 340 m_ptr = pTemp;
341 break; 341 break;
342 } else { 342 } else {
343 p->m_type = TOKdiv; 343 p->m_type = TOKdiv;
344 return p; 344 return p;
345 } 345 }
346 } else { 346 } else {
347 ch = XFA_FMDChar::get(m_ptr); 347 ch = XFA_FMDChar::get(m_ptr);
348 Error(FMERR_UNSUPPORTED_CHAR, ch); 348 Error(kFMErrUnsupportedChar, ch);
349 return p; 349 return p;
350 } 350 }
351 break; 351 break;
352 case '.': 352 case '.':
353 XFA_FMDChar::inc(m_ptr); 353 XFA_FMDChar::inc(m_ptr);
354 if (XFA_FMDChar::isAvalid(m_ptr)) { 354 if (XFA_FMDChar::isAvalid(m_ptr)) {
355 ch = XFA_FMDChar::get(m_ptr); 355 ch = XFA_FMDChar::get(m_ptr);
356 if (ch == '.') { 356 if (ch == '.') {
357 p->m_type = TOKdotdot; 357 p->m_type = TOKdotdot;
358 XFA_FMDChar::inc(m_ptr); 358 XFA_FMDChar::inc(m_ptr);
359 return p; 359 return p;
360 } else if (ch == '*') { 360 } else if (ch == '*') {
361 p->m_type = TOKdotstar; 361 p->m_type = TOKdotstar;
362 XFA_FMDChar::inc(m_ptr); 362 XFA_FMDChar::inc(m_ptr);
363 return p; 363 return p;
364 } else if (ch == '#') { 364 } else if (ch == '#') {
365 p->m_type = TOKdotscream; 365 p->m_type = TOKdotscream;
366 XFA_FMDChar::inc(m_ptr); 366 XFA_FMDChar::inc(m_ptr);
367 return p; 367 return p;
368 } else if (ch <= '9' && ch >= '0') { 368 } else if (ch <= '9' && ch >= '0') {
369 p->m_type = TOKnumber; 369 p->m_type = TOKnumber;
370 const FX_WCHAR* pTemp = 0; 370 const FX_WCHAR* pTemp = 0;
371 XFA_FMDChar::dec(m_ptr); 371 XFA_FMDChar::dec(m_ptr);
372 iRet = Number(p, m_ptr, pTemp); 372 iRet = Number(p, m_ptr, pTemp);
373 m_ptr = pTemp; 373 m_ptr = pTemp;
374 if (iRet) { 374 if (iRet) {
375 Error(FMERR_BAD_SUFFIX_NUMBER); 375 Error(kFMErrBadSuffixNumber);
376 } 376 }
377 return p; 377 return p;
378 } else { 378 } else {
379 p->m_type = TOKdot; 379 p->m_type = TOKdot;
380 return p; 380 return p;
381 } 381 }
382 } else { 382 } else {
383 ch = XFA_FMDChar::get(m_ptr); 383 ch = XFA_FMDChar::get(m_ptr);
384 Error(FMERR_UNSUPPORTED_CHAR, ch); 384 Error(kFMErrUnsupportedChar, ch);
385 return p; 385 return p;
386 } 386 }
387 case 0x09: 387 case 0x09:
388 case 0x0B: 388 case 0x0B:
389 case 0x0C: 389 case 0x0C:
390 case 0x20: 390 case 0x20:
391 XFA_FMDChar::inc(m_ptr); 391 XFA_FMDChar::inc(m_ptr);
392 break; 392 break;
393 default: { 393 default: {
394 const FX_WCHAR* pTemp = 0; 394 const FX_WCHAR* pTemp = 0;
(...skipping 28 matching lines...) Expand all
423 const FX_WCHAR*& pEnd) { 423 const FX_WCHAR*& pEnd) {
424 const FX_WCHAR* pStart = p; 424 const FX_WCHAR* pStart = p;
425 uint16_t ch = 0; 425 uint16_t ch = 0;
426 XFA_FMDChar::inc(p); 426 XFA_FMDChar::inc(p);
427 ch = XFA_FMDChar::get(p); 427 ch = XFA_FMDChar::get(p);
428 while (ch) { 428 while (ch) {
429 if (!XFA_FMDChar::isAvalid(p)) { 429 if (!XFA_FMDChar::isAvalid(p)) {
430 ch = XFA_FMDChar::get(p); 430 ch = XFA_FMDChar::get(p);
431 pEnd = p; 431 pEnd = p;
432 t->m_wstring = CFX_WideStringC(pStart, (pEnd - pStart)); 432 t->m_wstring = CFX_WideStringC(pStart, (pEnd - pStart));
433 Error(FMERR_UNSUPPORTED_CHAR, ch); 433 Error(kFMErrUnsupportedChar, ch);
434 return 1; 434 return 1;
435 } 435 }
436 if (ch == '"') { 436 if (ch == '"') {
437 XFA_FMDChar::inc(p); 437 XFA_FMDChar::inc(p);
438 if (!XFA_FMDChar::isAvalid(p)) { 438 if (!XFA_FMDChar::isAvalid(p)) {
439 ch = XFA_FMDChar::get(p); 439 ch = XFA_FMDChar::get(p);
440 pEnd = p; 440 pEnd = p;
441 t->m_wstring = CFX_WideStringC(pStart, (pEnd - pStart)); 441 t->m_wstring = CFX_WideStringC(pStart, (pEnd - pStart));
442 Error(FMERR_UNSUPPORTED_CHAR, ch); 442 Error(kFMErrUnsupportedChar, ch);
443 return 1; 443 return 1;
444 } 444 }
445 ch = XFA_FMDChar::get(p); 445 ch = XFA_FMDChar::get(p);
446 if (ch == '"') { 446 if (ch == '"') {
447 goto NEXT; 447 goto NEXT;
448 } else { 448 } else {
449 break; 449 break;
450 } 450 }
451 } 451 }
452 NEXT: 452 NEXT:
453 XFA_FMDChar::inc(p); 453 XFA_FMDChar::inc(p);
454 ch = XFA_FMDChar::get(p); 454 ch = XFA_FMDChar::get(p);
455 } 455 }
456 pEnd = p; 456 pEnd = p;
457 t->m_wstring = CFX_WideStringC(pStart, (pEnd - pStart)); 457 t->m_wstring = CFX_WideStringC(pStart, (pEnd - pStart));
458 return 0; 458 return 0;
459 } 459 }
460 460
461 uint32_t CXFA_FMLexer::Identifiers(CXFA_FMToken* t, 461 uint32_t CXFA_FMLexer::Identifiers(CXFA_FMToken* t,
462 const FX_WCHAR* p, 462 const FX_WCHAR* p,
463 const FX_WCHAR*& pEnd) { 463 const FX_WCHAR*& pEnd) {
464 const FX_WCHAR* pStart = p; 464 const FX_WCHAR* pStart = p;
465 uint16_t ch = 0; 465 uint16_t ch = 0;
466 ch = XFA_FMDChar::get(p); 466 ch = XFA_FMDChar::get(p);
467 XFA_FMDChar::inc(p); 467 XFA_FMDChar::inc(p);
468 if (!XFA_FMDChar::isAvalid(p)) { 468 if (!XFA_FMDChar::isAvalid(p)) {
469 pEnd = p; 469 pEnd = p;
470 t->m_wstring = CFX_WideStringC(pStart, (pEnd - pStart)); 470 t->m_wstring = CFX_WideStringC(pStart, (pEnd - pStart));
471 Error(FMERR_UNSUPPORTED_CHAR, ch); 471 Error(kFMErrUnsupportedChar, ch);
472 return 1; 472 return 1;
473 } 473 }
474 ch = XFA_FMDChar::get(p); 474 ch = XFA_FMDChar::get(p);
475 while (ch) { 475 while (ch) {
476 if (!XFA_FMDChar::isAvalid(p)) { 476 if (!XFA_FMDChar::isAvalid(p)) {
477 pEnd = p; 477 pEnd = p;
478 t->m_wstring = CFX_WideStringC(pStart, (pEnd - pStart)); 478 t->m_wstring = CFX_WideStringC(pStart, (pEnd - pStart));
479 Error(FMERR_UNSUPPORTED_CHAR, ch); 479 Error(kFMErrUnsupportedChar, ch);
480 return 1; 480 return 1;
481 } 481 }
482 ch = XFA_FMDChar::get(p); 482 ch = XFA_FMDChar::get(p);
483 if (XFA_FMDChar::isUnicodeAlpha(ch)) { 483 if (XFA_FMDChar::isUnicodeAlpha(ch)) {
484 XFA_FMDChar::inc(p); 484 XFA_FMDChar::inc(p);
485 } else { 485 } else {
486 pEnd = p; 486 pEnd = p;
487 t->m_wstring = CFX_WideStringC(pStart, (pEnd - pStart)); 487 t->m_wstring = CFX_WideStringC(pStart, (pEnd - pStart));
488 return 0; 488 return 0;
489 } 489 }
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
525 if (uHash == keyword.m_uHash) 525 if (uHash == keyword.m_uHash)
526 return keyword.m_type; 526 return keyword.m_type;
527 if (uHash < keyword.m_uHash) 527 if (uHash < keyword.m_uHash)
528 iEnd = iMid - 1; 528 iEnd = iMid - 1;
529 else 529 else
530 iStart = iMid + 1; 530 iStart = iMid + 1;
531 } while (iStart <= iEnd); 531 } while (iStart <= iEnd);
532 return TOKidentifier; 532 return TOKidentifier;
533 } 533 }
534 534
535 void CXFA_FMLexer::Error(XFA_FM_ERRMSG msg, ...) { 535 void CXFA_FMLexer::Error(const FX_WCHAR* msg, ...) {
536 m_pErrorInfo->linenum = m_uCurrentLine; 536 m_pErrorInfo->linenum = m_uCurrentLine;
537 const FX_WCHAR* lpMessageInfo = XFA_FM_ErrorMsg(msg);
538 va_list ap; 537 va_list ap;
539 va_start(ap, msg); 538 va_start(ap, msg);
540 m_pErrorInfo->message.FormatV(lpMessageInfo, ap); 539 m_pErrorInfo->message.FormatV(msg, ap);
541 va_end(ap); 540 va_end(ap);
542 } 541 }
543 542
544 FX_BOOL CXFA_FMLexer::HasError() const { 543 FX_BOOL CXFA_FMLexer::HasError() const {
545 if (m_pErrorInfo->message.IsEmpty()) { 544 if (m_pErrorInfo->message.IsEmpty()) {
546 return FALSE; 545 return FALSE;
547 } 546 }
548 return TRUE; 547 return TRUE;
549 } 548 }
OLDNEW
« no previous file with comments | « xfa/fxfa/fm2js/xfa_lexer.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698