Вопросы с тегом «grammar»

405
Является ли C ++ контекстно-зависимым или контекстно-зависимым?

Я часто слышу заявления о том, что C ++ является контекстно-зависимым языком. Возьмите следующий пример: a b(c); Это определение переменной или объявление функции? Это зависит от значения символа c. Если cэто переменная , то a b(c);определяет переменную с именем bтипа a. Это напрямую...

335
int a [] = {1,2,}; Странная запятая разрешена. Любая конкретная причина?

Возможно, я не с этой планеты, но мне кажется, что синтаксическая ошибка должна быть следующей: int a[] = {1,2,}; //extra comma in the end Но это не так. Я был удивлен , когда этот код скомпилирован на Visual Studio, но я научился не доверять MSVC компилятор, насколько правила C ++ обеспокоены, так...

153
Почему C ++ не может быть проанализирован с помощью анализатора LR (1)?

Я читал о парсерах и генераторах парсеров и нашел это утверждение на странице анализа LR в Википедии: Многие языки программирования могут быть проанализированы с использованием некоторого варианта синтаксического анализатора LR. Одним заметным исключением является C ++. Почему это так? Какое...

104
Что такое контекстно-свободная грамматика?

Может ли кто-нибудь объяснить мне, что такое контекстно-свободная грамматика? Посмотрев статью в Википедии, а затем статью о формальной грамматике в Википедии, я совершенно сбит с толку. Не мог бы кто-нибудь объяснить, что это такое? Мне это интересно, потому что я хочу исследовать синтаксический...

103
В чем разница между парсерами LR, SLR и LALR?

В чем разница между парсерами LR, SLR и LALR? Я знаю, что SLR и LALR являются типами парсеров LR, но какова реальная разница в их таблицах синтаксического анализа? И как показать, является ли грамматика LR, SLR или LALR? Для грамматики LL мы просто должны показать, что любая ячейка таблицы...

98
Обычные и контекстно-свободные грамматики

Я готовлюсь к экзамену по компьютерным языкам , и есть одна идея, что у меня проблемы с головой. Я понял, что обычные грамматики проще и не могут содержать двусмысленности, но не могут выполнять множество задач, которые требуются для языков программирования. Я также понял, что контекстно-свободные...

90
Что упрощает синтаксический анализ Java, чем C?

Я знаком с тем фактом, что грамматики C и C ++ контекстно-зависимы , и, в частности, вам понадобится «взлом лексера» в C. С другой стороны, у меня сложилось впечатление, что вы можете анализировать Java только с 2 токена предвидения, несмотря на значительное сходство между двумя языками. Что бы...

83
Признающая сила «современных» регулярных выражений

Какой класс языков действительно распознают настоящие современные регулярные выражения? Всякий раз, когда есть группа захвата неограниченной длины с обратной ссылкой (например (.*)_\1), регулярное выражение теперь соответствует нерегулярному языку. Но S ::= '(' S ')' | εодного этого недостаточно,...

28
Почему грамматика BNF в C допускает объявления с пустой последовательностью init-деклараторов?

Просматривая грамматику BNF в C, я подумал, что странно, что производственное правило для объявления выглядит следующим образом (согласно https://cs.wmich.edu/~gupta/teaching/cs4850/sumII06/The%20syntax%20of% 20C% 20in% 20Backus-Naur% 20form.htm ): <declaration> ::=...

13
Как я могу определить грамматику Raku для анализа текста TSV?

У меня есть некоторые данные TSV ID Name Email 1 test test@email.com 321 stan stan@nowhere.net Я хотел бы разобрать это в список хэшей @entities[0]<Name> eq "test"; @entities[1]<Email> eq "stan@nowhere.net"; У меня возникли проблемы с использованием метасимвола новой строки для...

9
Как установить грамматику, которая может справиться с неоднозначностью

Я пытаюсь создать грамматику для анализа некоторых формул, подобных Excel, которые я разработал, где специальный символ в начале строки обозначает другой источник. Например, $может означать строку, поэтому " $This is text" будет рассматриваться как строковый ввод в программе и &может означать...

9
Остановка грамматики Раку в EOS (конец строки)

В процессе написания переводчика одного музыкального языка на другой (ABC для Alda) в качестве предлога для изучения DSL-способности Raku, я заметил, что, похоже, нет способа прекратить a .parse! Вот мой сокращенный демонстрационный код: #!/home/hsmyers/rakudo741/bin/perl6 use v6d; # use...