Каково волшебство позади Escape (\) символ

Пожалуйста, посмотрите на следующую ссылку Документация d3 . Следуя этим примерам, вы получаете содержимое всплывающей подсказки в переменную при инициализации.

Выполнить: var methods = await jsonMethodsArray(d); при запуске.

Позже присоедините методы к элементу всплывающей подсказки.

5
задан Erik Funkenbusch 26 December 2011 в 20:09
поделиться

4 ответа

Большинство компиляторов разделено на части: фронтенд компилятора называют лексическим анализатором или сканером. Эта часть компилятора читает фактические символы и создает маркеры. Это имеет конечный автомат, который решает после наблюдения символа ESC, является ли это подлинным (например, когда это появляется в строке), или это изменяет следующий символ. Маркер производится соответственно как символ ESC или некоторый другой маркер (такой как вкладка или новая строка) к следующей части компилятора (синтаксический анализатор). Конечный автомат может сгруппировать несколько символов в маркер.

14
ответ дан 18 December 2019 в 07:11
поделиться

Интересное примечание по этому предмету находится На Доверии Доверию [ссылка PDF].

Бумага описывает один способ, которым компилятор мог решить эту проблему точно, шоу, как c-written-in-c компилятор не имеет явного перевода кодов в значения ASCII; и как загрузить новый управляющий код в компилятор так, чтобы понимание значения ASCII для нового кода было также неявно.

5
ответ дан 18 December 2019 в 07:11
поделиться

Это обычно выходит из следующего символа:

  • В строковом литерале или символьном литерале, это означает, выходят из следующего символа. \a означает 'предупреждение' (высвечивание терминала, подача звукового сигнала или безотносительно), \n означает 'перевод строки', \xNUM означает шестнадцатеричное число, например.
  • Если это появляется как последний видимый символ перед новой строкой, ли в строке или не (и даже в рамках комментария всей строки!), это действует как продолжение строки: следующий символ новой строки проигнорирован, и следующая строка объединяется с текущей строкой.
2
ответ дан 18 December 2019 в 07:11
поделиться

символ ESC со следующим символом (как \n) отдельный символ для компилятора C - сканер представляет его синтаксическому анализатору как символьный маркер, таким образом, нет никакой потребности в специальных синтаксических правилах в синтаксическом анализаторе для символа ESC.

1
ответ дан 18 December 2019 в 07:11
поделиться