(Расшифровка) Как pdf делает разницу между строкой и ее операторами? - PullRequest
0 голосов
/ 19 февраля 2019

Я не понимаю, как pdf делает разницу между строкой и ее синтаксисом (BT, ET, Tm, T *, TD, ...) .. Круглые скобки не являются надежными на 100%.Есть шаблон или что-то, чего я не вижу?

В чем разница между:

[( Hello world! )]

[( Hello ) 45 ( the ) 45 ( world )] -> 45 - позиция строки надокумент

[( Hel (lo ) 45 ( ) 45 ( wor) ld )] -> Не может подсчитатьскобки, потому что некоторые не закрываются

1 Ответ

0 голосов
/ 19 февраля 2019

Давайте рассмотрим примеры, которые вы показали:

  • [(Hello world !)] - это массив (прямоугольные скобки), содержащий одну строку (круглые скобки), содержащую Hello world !.
  • [(Hello) 45 (the) 45 (world)] - это массив (прямоугольные скобки), содержащий три строки и два числа: Hello, 45, the, 45, world.
  • [(Hel(lo) 45 (the) 45 (wor)ld)] - это массив (прямоугольные скобки), содержащийодна строка (круглые скобки), содержащая Hel(lo) 45 (the) 45 (wor)ld.

Третий элемент может вас удивить, но просто прочитайте спецификацию PDF ISO 32000-1:

A буквенная строка записывается в виде произвольного числа символов, заключенных в скобки.Любые символы могут появляться в строке, кроме несбалансированных скобок (ЛЕВОЙ ПАРЕНЕЗИС (28h) и ПРАВИЛЬНЫЙ ПАРЕНТЕЗИС (29h)) и обратной косой черты (REVERSE SOLIDUS (5Ch)) ... Внутри буквенной строки REVERSE SOLIDUS используется в качестве escape-символа.

(ISO 32000-1 раздел 7.3.4.2 Литеральные строки)

Таким образом, сбалансированные круглые скобки (сбалансированная пара, открывающаяся передочевидно, закрытие) дословно разрешены в строке!

Если вам захочется написать строку с несбалансированными скобками, у вас все еще есть возможность экранировать их, используя обратную косую черту.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...