Тишинуша Гамимеря (spamsink) wrote,
Тишинуша Гамимеря
spamsink

Еще парсерное восхитительное



Представьте себе язык, в котором можно описывать некоторые иерархические структуры: скажем, записи, поля в которых могут быть, кроме примитивных типов, еще и типа "запись". Обращаться к элементам этих структур можно с помощью Си-подобного синтаксиса, например, var.f1.f2.f3.
Блок отладчика, который получает от пользователя иерархическое имя поля и разбирает его на составные элементы, не глядя в таблицу имен, не вызывает затруднений.

Представьте себе, что в этом языке, кроме привычных нам идентификаторов, есть еще и "расширенные", состоящие из любых символов, кроме пробельных. Они записываются как \идентификатор<пробел>, т.е. "\\ " - легально (а вот "\ " - нет). И в этом случае разбор иерархического имени не представляет проблем, даже несмотря на то, что символы \ и . внутри расширенных идентификаторов допускаются.

А теперь представьте себе, что есть еще один очень похожий язык, в котором иерархические имена записываются точно так же через точку, оба языка позволяют использовать в качестве полей записи из другого языка (грубо, как opaque reference), но есть одна маленькая деталь - во втором языке тоже есть расширенные идентификаторы, состоящие из любых символов, кроме \. Они записываются как \идентификатор\, и пробелы в идентификаторе допускаются.

Отлаживать, понятное дело, нужно уметь и программы на смеси языков.

"\foo .\.\.\bar "



Та-да!

(Если кто не догадался, первый язык - Verilog, второй - VHDL).
Tags: work
Subscribe

  • Тьюринг был северный осетин

    СЯУ, что имя Alan (тж. Allan, Allen, и пр.) - не просто омоним демонима жителя Северной Осетии-Алании, и даже не просто когнат, а целый дериват.…

  • Фоносемантическая расстыковка

    ...или семантическое насыщение на новый лад. После того, как я несколько раз произнёс про себя "глоссохронология" и "глоттолалия", я на некоторое…

  • Просто так, амбулаторное

    А вы отдавали себе отчёт, что состояние зомби - это, в сущности, состояние амбулаторной смерти?

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 6 comments