Lines Matching refs:pfile

100 _cpp_clean_line (cpp_reader *pfile)
106 buffer = pfile->buffer;
165 if (CPP_OPTION (pfile, trigraphs))
206 if (CPP_OPTION (pfile, trigraphs))
236 warn_in_comment (cpp_reader *pfile, _cpp_line_note *note)
248 if (CPP_OPTION (pfile, trigraphs))
264 _cpp_process_line_notes (cpp_reader *pfile, int in_comment)
266 cpp_buffer *buffer = pfile->buffer;
282 cpp_error_with_line (pfile, CPP_DL_WARNING, pfile->line_table->highest_line, col,
287 cpp_error_with_line (pfile, CPP_DL_PEDWARN, pfile->line_table->highest_line, col,
294 CPP_INCREMENT_LINE (pfile, 0);
298 if (CPP_OPTION (pfile, warn_trigraphs)
299 && (!in_comment || warn_in_comment (pfile, note)))
301 if (CPP_OPTION (pfile, trigraphs))
302 cpp_error_with_line (pfile, CPP_DL_WARNING, pfile->line_table->highest_line, col,
309 (pfile, CPP_DL_WARNING, pfile->line_table->highest_line, col,
326 _cpp_skip_block_comment (cpp_reader *pfile)
328 cpp_buffer *buffer = pfile->buffer;
350 if (CPP_OPTION (pfile, warn_comments)
354 cpp_error_with_line (pfile, CPP_DL_WARNING,
355 pfile->line_table->highest_line, CPP_BUF_COL (buffer),
363 _cpp_process_line_notes (pfile, true);
366 _cpp_clean_line (pfile);
369 CPP_INCREMENT_LINE (pfile, cols);
376 _cpp_process_line_notes (pfile, true);
384 skip_line_comment (cpp_reader *pfile)
386 cpp_buffer *buffer = pfile->buffer;
387 unsigned int orig_line = pfile->line_table->highest_line;
392 _cpp_process_line_notes (pfile, true);
393 return orig_line != pfile->line_table->highest_line;
398 skip_whitespace (cpp_reader *pfile, cppchar_t c)
400 cpp_buffer *buffer = pfile->buffer;
411 else if (pfile->state.in_directive && CPP_PEDANTIC (pfile))
412 cpp_error_with_line (pfile, CPP_DL_PEDWARN, pfile->line_table->highest_line,
423 cpp_error (pfile, CPP_DL_WARNING, "null character(s) ignored");
431 name_p (cpp_reader *pfile, const cpp_string *string)
445 warn_about_normalization (cpp_reader *pfile,
449 if (CPP_OPTION (pfile, warn_normalize) < NORMALIZE_STATE_RESULT (s)
450 && !pfile->state.skipping)
457 sz = cpp_spell_token (pfile, token, buf, false) - buf;
459 cpp_error_with_line (pfile, CPP_DL_WARNING, token->src_loc, 0,
462 cpp_error_with_line (pfile, CPP_DL_WARNING, token->src_loc, 0,
470 forms_identifier_p (cpp_reader *pfile, int first,
473 cpp_buffer *buffer = pfile->buffer;
477 if (!CPP_OPTION (pfile, dollars_in_ident))
481 if (CPP_OPTION (pfile, warn_dollars) && !pfile->state.skipping)
483 CPP_OPTION (pfile, warn_dollars) = 0;
484 cpp_error (pfile, CPP_DL_PEDWARN, "'$' in identifier or number");
491 if (CPP_OPTION (pfile, extended_identifiers)
496 if (_cpp_valid_ucn (pfile, &buffer->cur, buffer->rlimit, 1 + !first,
507 lex_identifier (cpp_reader *pfile, const uchar *base, bool starts_ucn,
515 cur = pfile->buffer->cur;
522 pfile->buffer->cur = cur;
523 if (starts_ucn || forms_identifier_p (pfile, false, nst))
527 while (ISIDNUM (*pfile->buffer->cur))
529 pfile->buffer->cur++;
532 } while (forms_identifier_p (pfile, false, nst));
533 result = _cpp_interpret_identifier (pfile, base,
534 pfile->buffer->cur - base);
542 ht_lookup_with_hash (pfile->hash_table, base, len, hash, HT_ALLOC);
547 && !pfile->state.skipping, 0))
550 if ((result->flags & NODE_POISONED) && !pfile->state.poisoned_ok)
551 cpp_error (pfile, CPP_DL_ERROR, "attempt to use poisoned \"%s\"",
556 if (result == pfile->spec_nodes.n__VA_ARGS__
557 && !pfile->state.va_args_ok)
558 cpp_error (pfile, CPP_DL_PEDWARN,
568 lex_number (cpp_reader *pfile, cpp_string *number,
575 base = pfile->buffer->cur - 1;
578 cur = pfile->buffer->cur;
587 pfile->buffer->cur = cur;
589 while (forms_identifier_p (pfile, false, nst));
592 dest = _cpp_unaligned_alloc (pfile, number->len + 1);
600 create_literal (cpp_reader *pfile, cpp_token *token, const uchar *base,
603 uchar *dest = _cpp_unaligned_alloc (pfile, len + 1);
620 lex_string (cpp_reader *pfile, cpp_token *token, const uchar *base)
643 if (c == '\\' && !pfile->state.angled_headers && *cur != '\n')
657 if (saw_NUL && !pfile->state.skipping)
658 cpp_error (pfile, CPP_DL_WARNING,
663 && CPP_OPTION (pfile, lang) != CLK_ASM
664 && !pfile->state.in_diagnostic
665 && !pfile->state.skipping)
667 cpp_error (pfile, CPP_DL_PEDWARN, "missing terminating %c character",
670 pfile->buffer->cur = cur;
671 create_literal (pfile, token, base, cur - base, type);
676 save_comment (cpp_reader *pfile, cpp_token *token, const unsigned char *from,
682 len = pfile->buffer->cur - from + 1; /* + 1 for the initial '/'. */
686 if (is_vspace (pfile->buffer->cur[-1]))
695 clen = (pfile->state.in_directive && type == '/') ? len + 2 : len;
697 buffer = _cpp_unaligned_alloc (pfile, clen);
707 if (pfile->state.in_directive && type == '/')
743 _cpp_temp_token (cpp_reader *pfile)
747 old = pfile->cur_token - 1;
748 if (pfile->cur_token == pfile->cur_run->limit)
750 pfile->cur_run = next_tokenrun (pfile->cur_run);
751 pfile->cur_token = pfile->cur_run->base;
754 result = pfile->cur_token++;
763 _cpp_lex_token (cpp_reader *pfile)
769 if (pfile->cur_token == pfile->cur_run->limit)
771 pfile->cur_run = next_tokenrun (pfile->cur_run);
772 pfile->cur_token = pfile->cur_run->base;
776 if (pfile->cur_token < pfile->cur_run->base
777 || pfile->cur_token >= pfile->cur_run->limit)
780 if (pfile->lookaheads)
782 pfile->lookaheads--;
783 result = pfile->cur_token++;
786 result = _cpp_lex_direct (pfile);
796 && pfile->state.parsing_args != 1)
798 if (_cpp_handle_directive (pfile, result->flags & PREV_WHITE))
800 if (pfile->directive_result.type == CPP_PADDING)
802 result = &pfile->directive_result;
805 else if (pfile->state.in_deferred_pragma)
806 result = &pfile->directive_result;
808 if (pfile->cb.line_change && !pfile->state.skipping)
809 pfile->cb.line_change (pfile, result, pfile->state.parsing_args);
813 if (pfile->state.in_directive || pfile->state.in_deferred_pragma)
819 pfile->mi_valid = false;
821 if (!pfile->state.skipping || result->type == CPP_EOF)
830 _cpp_get_fresh_line (cpp_reader *pfile)
835 if (pfile->state.in_directive)
840 cpp_buffer *buffer = pfile->buffer;
847 _cpp_clean_line (pfile);
852 if (pfile->state.parsing_args)
863 if ( CPP_OPTION (pfile, warn_newline_at_eof))
865 cpp_error_with_line (pfile, CPP_DL_PEDWARN, pfile->line_table->highest_line,
873 _cpp_pop_buffer (pfile);
874 if (pfile->buffer == NULL || return_at_eof)
888 /* Lex a token into pfile->cur_token, which is also incremented, to
900 _cpp_lex_direct (cpp_reader *pfile)
905 cpp_token *result = pfile->cur_token++;
909 buffer = pfile->buffer;
912 if (pfile->state.in_deferred_pragma)
915 pfile->state.in_deferred_pragma = false;
916 if (!pfile->state.pragma_allow_expansion)
917 pfile->state.prevent_expansion--;
920 if (!_cpp_get_fresh_line (pfile))
923 if (!pfile->state.in_directive)
926 result->src_loc = pfile->line_table->highest_line;
931 if (!pfile->keep_tokens)
933 pfile->cur_run = &pfile->base_run;
934 result = pfile->base_run.base;
935 pfile->cur_token = result + 1;
938 if (pfile->state.parsing_args == 2)
941 buffer = pfile->buffer;
943 result->src_loc = pfile->line_table->highest_line;
947 && !pfile->overlaid_buffer)
949 _cpp_process_line_notes (pfile, false);
950 result->src_loc = pfile->line_table->highest_line;
954 LINEMAP_POSITION_FOR_COLUMN (result->src_loc, pfile->line_table,
961 skip_whitespace (pfile, c);
966 CPP_INCREMENT_LINE (pfile, 0);
975 lex_number (pfile, &result->val.str, &nst);
976 warn_about_normalization (pfile, result, &nst);
984 lex_string (pfile, result, buffer->cur - 1);
1003 result->val.node = lex_identifier (pfile, buffer->cur - 1, false,
1005 warn_about_normalization (pfile, result, &nst);
1018 lex_string (pfile, result, buffer->cur - 1);
1028 if (_cpp_skip_block_comment (pfile))
1029 cpp_error (pfile, CPP_DL_ERROR, "unterminated comment");
1031 else if (c == '/' && (CPP_OPTION (pfile, cplusplus_comments)
1032 || cpp_in_system_header (pfile)))
1036 if (CPP_OPTION (pfile, lang) == CLK_GNUC89 && CPP_PEDANTIC (pfile)
1039 cpp_error (pfile, CPP_DL_PEDWARN,
1041 cpp_error (pfile, CPP_DL_PEDWARN,
1046 if (skip_line_comment (pfile) && CPP_OPTION (pfile, warn_comments))
1047 cpp_error (pfile, CPP_DL_WARNING, "multi-line comment");
1061 if (!pfile->state.save_comments)
1068 save_comment (pfile, result, comment_start, c);
1072 if (pfile->state.angled_headers)
1074 lex_string (pfile, result, buffer->cur - 1);
1086 else if (CPP_OPTION (pfile, digraphs))
1118 else if (CPP_OPTION (pfile, digraphs))
1143 lex_number (pfile, &result->val.str, &nst);
1144 warn_about_normalization (pfile, result, &nst);
1148 else if (*buffer->cur == '*' && CPP_OPTION (pfile, cplusplus))
1166 if (*buffer->cur == '*' && CPP_OPTION (pfile, cplusplus))
1193 if (*buffer->cur == ':' && CPP_OPTION (pfile, cplusplus))
1195 else if (*buffer->cur == '>' && CPP_OPTION (pfile, digraphs))
1229 if (forms_identifier_p (pfile, true, &nst))
1232 result->val.node = lex_identifier (pfile, base, true, &nst);
1233 warn_about_normalization (pfile, result, &nst);
1240 create_literal (pfile, result, buffer->cur - 1, 1, CPP_OTHER);
1306 cpp_spell_token (cpp_reader *pfile, const cpp_token *token,
1359 cpp_error (pfile, CPP_DL_ICE,
1370 cpp_token_as_text (cpp_reader *pfile, const cpp_token *token)
1373 unsigned char *start = _cpp_unaligned_alloc (pfile, len), *end;
1375 end = cpp_spell_token (pfile, token, start, false);
1473 cpp_avoid_paste (cpp_reader *pfile, const cpp_token *token1,
1509 && name_p (pfile, &token2->val.str))
1517 || (CPP_OPTION (pfile, objc)
1530 cpp_output_line (cpp_reader *pfile, FILE *fp)
1534 token = cpp_get_token (pfile);
1538 token = cpp_get_token (pfile);
1584 _cpp_release_buff (cpp_reader *pfile, _cpp_buff *buff)
1590 end->next = pfile->free_buffs;
1591 pfile->free_buffs = buff;
1596 _cpp_get_buff (cpp_reader *pfile, size_t min_size)
1600 for (p = &pfile->free_buffs;; p = &(*p)->next)
1625 _cpp_append_extend_buff (cpp_reader *pfile, _cpp_buff *buff, size_t min_extra)
1628 _cpp_buff *new_buff = _cpp_get_buff (pfile, size);
1641 _cpp_extend_buff (cpp_reader *pfile, _cpp_buff **pbuff, size_t min_extra)
1646 new_buff = _cpp_get_buff (pfile, size);
1667 _cpp_unaligned_alloc (cpp_reader *pfile, size_t len)
1669 _cpp_buff *buff = pfile->u_buff;
1674 buff = _cpp_get_buff (pfile, len);
1675 buff->next = pfile->u_buff;
1676 pfile->u_buff = buff;
1695 _cpp_aligned_alloc (cpp_reader *pfile, size_t len)
1697 _cpp_buff *buff = pfile->a_buff;
1702 buff = _cpp_get_buff (pfile, len);
1703 buff->next = pfile->a_buff;
1704 pfile->a_buff = buff;