Lines Matching defs:bidi
1168 namespace bidi {
1173 /* All the UTF-8 encodings of bidi characters start with E2. */
1199 /* A vector holding currently open bidi contexts. We use a char for
1202 by a bidi character written as a UCN, and 0 when it was UTF-8. */
1236 the bidi char which started this bidi context was written as a UCN. */
1251 /* We've read a bidi char, update the current vector as necessary.
1367 /* Parse a sequence of 3 bytes starting with P and return its bidi code. */
1369 static bidi::kind
1372 gcc_checking_assert (p[0] == bidi::utf8_start);
1378 return bidi::kind::LRE;
1380 return bidi::kind::RLE;
1382 return bidi::kind::PDF;
1384 return bidi::kind::LRO;
1386 return bidi::kind::RLO;
1388 return bidi::kind::LTR;
1390 return bidi::kind::RTL;
1398 return bidi::kind::LRI;
1400 return bidi::kind::RLI;
1402 return bidi::kind::FSI;
1404 return bidi::kind::PDI;
1409 return bidi::kind::NONE;
1412 /* Parse a sequence of 3 bytes starting with P and return its bidi code.
1415 static bidi::kind
1418 bidi::kind result = get_bidi_utf8_1 (p);
1419 if (result != bidi::kind::NONE)
1427 /* Parse a UCN where P points just past \u or \U and return its bidi code. */
1429 static bidi::kind
1440 return bidi::kind::NONE;
1447 return bidi::kind::NONE;
1453 return bidi::kind::LRE;
1456 return bidi::kind::RLE;
1459 return bidi::kind::PDF;
1462 return bidi::kind::LRO;
1465 return bidi::kind::RLO;
1473 return bidi::kind::LRI;
1475 return bidi::kind::RLI;
1477 return bidi::kind::FSI;
1479 return bidi::kind::PDI;
1488 return bidi::kind::LTR;
1491 return bidi::kind::RTL;
1496 return bidi::kind::NONE;
1499 /* Parse a UCN where P points just past \u or \U and return its bidi code.
1502 static bidi::kind
1506 bidi::kind result = get_bidi_ucn_1 (p, is_U);
1507 if (result != bidi::kind::NONE)
1519 bidi context, labelling everything. */
1530 is for bidi::vec[i]. */
1533 const bidi::context &ctxt (bidi::vec[range_idx - 1]);
1534 return label_text::borrow (bidi::to_str (ctxt.m_kind));
1545 for (unsigned i = 0; i < bidi::vec.count (); i++)
1546 add_range (bidi::vec[i].m_loc,
1555 /* We're closing a bidi context, that is, we've encountered a newline,
1565 if (bidi::vec.count () > 0
1567 && (!bidi::current_ctx_ucn_p ()
1576 if (bidi::vec.count () > 1)
1586 bidi::on_close ();
1590 literal/character constant. Warn if we've encountered a bidi character.
1591 KIND says which bidi control character it was; UCN_P is true iff this bidi
1593 character, but is only valid if KIND != bidi::kind::NONE. */
1596 maybe_warn_bidi_on_char (cpp_reader *pfile, bidi::kind kind,
1599 if (__builtin_expect (kind == bidi::kind::NONE, 1))
1613 if (kind == bidi::current_ctx ())
1616 && bidi::current_ctx_ucn_p () != ucn_p)
1618 rich_loc.add_range (bidi::current_ctx_loc ());
1621 "a context by \"%s\"", bidi::to_str (kind));
1627 if (kind == bidi::kind::PDF || kind == bidi::kind::PDI)
1630 bidi::to_str (kind));
1634 bidi::to_str (kind));
1638 bidi::on_char (kind, ucn_p, loc);
1704 else if (__builtin_expect (c == bidi::utf8_start, 0) && warn_bidi_p)
1707 bidi::kind kind = get_bidi_utf8 (pfile, cur - 1, &loc);
1733 && *buffer->cur != bidi::utf8_start)
1735 if (__builtin_expect (*buffer->cur == bidi::utf8_start, 0))
1739 if (__builtin_expect (*buffer->cur == bidi::utf8_start, 0))
1742 bidi::kind kind = get_bidi_utf8 (pfile, buffer->cur, &loc);
1889 if (__builtin_expect (*buffer->cur == bidi::utf8_start, 0)
1893 bidi::kind kind = get_bidi_utf8 (pfile, buffer->cur, &loc);
1907 bidi::kind kind = get_bidi_ucn (pfile,
2530 else if (__builtin_expect ((unsigned char) c == bidi::utf8_start, 0)
2534 bidi::kind kind = get_bidi_utf8 (pfile, pos - 1, &loc);
2647 bidi::kind kind = get_bidi_ucn (pfile, cur + 1, cur[0] == 'U',
2675 else if (__builtin_expect (c == bidi::utf8_start, 0) && warn_bidi_p)
2678 bidi::kind kind = get_bidi_utf8 (pfile, cur - 1, &loc);