Я пытался делать то, что ты пытаешься сделать. Неудачно. На данный момент нет способа заставить dropbox правильно синхронизировать символические ссылки. Тем не менее, есть запрос функции именно об этом . Так что отдавайте свои голоса по запросу и надейтесь на лучшее.
Набор программ, которые являются синтаксически правильными, не зависит от контекста почти для всех языков.
Набор программ, которые компилируются, не является бесконтекстным почти для всех языков. Например, если бы набор всех компилируемых программ C был контекстно-независимым, то при пересечении с обычным языком (также известным как регулярное выражение) набор всех компилируемых программ C, соответствующих
^int main\(void\) { int a+; a+ = a+; return 0; }$
, был бы контекстно-свободным, но это явно изоморфен языку a ^ kba ^ kba ^ k, который хорошо известен , но не контекстно-независимым.
VHDL в некоторой степени зависит от контекста:
VHDL в некоторой степени зависит от контекста. Рассмотрим это утверждение внутри процесс:
jinx: = foo (1);
Ну, в зависимости от объектов, определенных в области действия процесса (и его включая области действия), это может быть либо:
- Вызов функции
- Индексирование массива
- Индексирование массива, возвращаемого вызовом функции без параметров
Чтобы правильно проанализировать это, синтаксический анализатор должен нести иерархический таблица символов (с охватывающими областями действия), а текущего файла даже недостаточно.
foo
может быть функция, определенная в пакете. Итак, парсер должен сначала проанализировать пакеты импортированные файлом, который он анализирует, и вычислите символы, определенные в них.Это просто пример. Система типа / подтипа VHDL аналогична контекстно-зависимый беспорядок, который очень трудно разобрать.
(Эли Бендерски, «Разбор VHDL [очень] сложен» , 2009)
Если говорить о наиболее ярком примере неконтекстно-свободной грамматики, грамматика Perl, насколько я понимаю, полная по Тьюрингу .