Lines Matching refs:it
58 /* Current position (it's also updated when an included file is parsed) */
77 * example, if the keyword '_Generic' were not defined, it would be interpreted
432 * and return it as an unsigned char or as EOF.
729 quoted_next(const buffer *lit, quoted_iterator *it)
733 *it = (quoted_iterator){ .start = it->end };
737 bool in_the_middle = it->start > 0;
739 it->start = s[0] == 'L' ? 2 : 1;
740 it->end = it->start;
743 while (s[it->start] == delim) {
744 if (it->start + 1 == lit->len) {
745 it->end = it->start;
748 it->next_literal = in_the_middle;
749 it->start += 2;
751 it->end = it->start;
754 switch (s[it->end]) {
756 it->end++;
759 it->unescaped_newline = true;
762 it->value = (unsigned char)s[it->end++];
767 it->escaped = true;
768 if ('0' <= s[it->end] && s[it->end] <= '7')
770 switch (s[it->end++]) {
774 it->named_escape = true;
775 it->value = '\a';
776 it->invalid_escape = !allow_c90;
779 it->named_escape = true;
780 it->value = '\b';
783 it->named_escape = true;
784 it->value = '\033';
785 it->invalid_escape = !allow_gcc;
788 it->named_escape = true;
789 it->value = '\f';
792 it->named_escape = true;
793 it->value = '\n';
796 it->named_escape = true;
797 it->value = '\r';
800 it->named_escape = true;
801 it->value = '\t';
804 it->named_escape = true;
805 it->value = '\v';
806 it->invalid_escape = !allow_c90;
811 it->literal_escape = true;
812 it->value = '"';
813 it->invalid_escape = !allow_c90 && delim == '\'';
816 it->literal_escape = true;
817 it->value = '?';
818 it->invalid_escape = !allow_c90;
821 it->invalid_escape = true;
825 it->literal_escape = true;
826 it->value = (unsigned char)s[it->end - 1];
831 it->octal_digits++;
832 it->value = s[it->end++] - '0';
833 if ('0' <= s[it->end] && s[it->end] <= '7') {
834 it->octal_digits++;
835 it->value = 8 * it->value + (s[it->end++] - '0');
836 if ('0' <= s[it->end] && s[it->end] <= '7') {
837 it->octal_digits++;
838 it->value = 8 * it->value + (s[it->end++] - '0');
839 it->overflow = it->value > TARG_UCHAR_MAX
847 char ch = s[it->end];
858 it->end++;
859 it->value = 16 * it->value + digit_value;
861 if (it->value > limit)
862 it->overflow = true;
863 if (it->hex_digits < 3)
864 it->hex_digits++;
866 it->missing_hex_digits = it->hex_digits == 0;
873 quoted_iterator it = { .end = 0 }, prev = it;
874 for (; quoted_next(buf, &it); prev = it) {
875 if (it.missing_hex_digits)
878 if (it.hex_digits > 0 && !allow_c90)
881 else if (!it.invalid_escape)
883 else if (it.value == '8' || it.value == '9')
885 warning(77, (int)it.value);
886 else if (it.literal_escape && it.value == '?')
889 else if (it.literal_escape && it.value == '"')
892 else if (it.named_escape && it.value == '\a')
895 else if (it.named_escape && it.value == '\v')
899 unsigned char ch = buf->data[it.end - 1];
907 if (it.overflow && it.hex_digits > 0)
910 if (it.overflow && it.octal_digits > 0)
913 if (it.value < ' ' && !it.escaped && complete)
915 query_message(17, (unsigned)it.value, delim == '"'
918 && !it.escaped && it.value >= '8' && it.value <= '9')
921 buf->data + prev.start, buf->data[it.start]);
923 if (it.unescaped_newline)
951 quoted_iterator it = { .end = 0 };
952 while (quoted_next(&buf, &it)) {
953 val = (val << CHAR_SIZE) + it.value;
966 else if (n == 0 && !it.unescaped_newline)
991 quoted_iterator it = { .end = 0 };
992 while (quoted_next(&buf, &it)) {
994 wbuf[n] = (char)it.value;
1400 quoted_iterator it = { .end = 0 };
1401 while (quoted_next(&buf, &it))
1402 buf_add_char(&str, (char)it.value);
1434 * The scanner does not create new symbol table entries for symbols it cannot
1438 * getsym is called as soon as it is probably ok to put the symbol in the
1439 * symbol table. It is still possible that symbols are put in the symbol
1452 * During member declaration it is possible that name() looked for
1453 * symbols of type SK_VCFT, although it should have looked for symbols