7442 {
7443 switch (get())
7444 {
7445
7446 case '/':
7447 {
7448 while (true)
7449 {
7450 switch (get())
7451 {
7452 case '\n':
7453 case '\r':
7454 case std::char_traits<char_type>::eof():
7455 case '\0':
7456 return true;
7457
7458 default:
7459 break;
7460 }
7461 }
7462 }
7463
7464
7465 case '*':
7466 {
7467 while (true)
7468 {
7469 switch (get())
7470 {
7471 case std::char_traits<char_type>::eof():
7472 case '\0':
7473 {
7474 error_message = "invalid comment; missing closing '*/'";
7475 return false;
7476 }
7477
7478 case '*':
7479 {
7480 switch (get())
7481 {
7482 case '/':
7483 return true;
7484
7485 default:
7486 {
7487 unget();
7488 continue;
7489 }
7490 }
7491 }
7492
7493 default:
7494 continue;
7495 }
7496 }
7497 }
7498
7499
7500 default:
7501 {
7502 error_message = "invalid comment; expecting '/' or '*' after '/'";
7503 return false;
7504 }
7505 }
7506 }