Какие конкретные преимущества и недостатки каждого способа работы над грамматикой языка программирования? Почему / Когда я должен катиться самостоятельно? Почему / Когда я должен использовать...
Анализ (не) структурированных данных для преобразования их в структурированный, нормализованный формат.
Какие конкретные преимущества и недостатки каждого способа работы над грамматикой языка программирования? Почему / Когда я должен катиться самостоятельно? Почему / Когда я должен использовать...
Недавно я глубоко погрузился в мир парсеров, желая создать свой собственный язык программирования. Однако я обнаружил, что существуют два несколько разных подхода к написанию парсеров: Генераторы парсеров и Комбинаторы парсеров. Интересно, что мне не удалось найти какой-либо ресурс, объясняющий, в...
Я думаю, что понимаю цель AST, и раньше я построил пару древовидных структур, но не AST. Я в основном сбит с толку, потому что узлы - это текст, а не число, поэтому я не могу придумать хороший способ ввода токена / строки, когда я разбираю некоторый код. Например, когда я смотрел на диаграммы AST,...
Я часто задавался вопросом, почему строгий синтаксический анализ не был выбран при создании HTML. На протяжении большей части истории Интернета браузеры принимали любую разметку и старались изо всех сил ее анализировать. Этот процесс снижает производительность, позволяет людям писать бессмысленно и...
Я исследовал о наборе компиляторов GCC на википедии здесь , когда это придумал: GCC начал использовать парсеры LALR, сгенерированные с помощью Bison, но постепенно переключился на рукописные парсеры с рекурсивным спуском; для C ++ в 2004 году и для C и Objective-C в 2006 году. В настоящее время все...
Я заметил, что в C ++ 11 есть std::sto@семейство функций для простой распаковки ints / float / longs из строк. Однако я удивлен, что обратное не реализовано. Почему комитет по стандартам не включает std::itosсемейство функций для перехода от int / float / что угодно (назад) к...
Как обычно обрабатываются комментарии в языках программирования и разметке? Я пишу парсер для некоторого пользовательского языка разметки и хочу следовать принципу наименьшего удивления , поэтому я пытаюсь определить общее соглашение. Например, должен ли комментарий, встроенный в токен, «мешать»...
С увлечением прочитал о текстовой приключенческой игре The Hobbit, в которой был представлен невероятно мощный парсер под названием «Inglish»: ... Инглиш позволял набирать сложные предложения, такие как "спроси Гэндальфа о любопытной карте, затем возьми меч и убей тролля с ним". Парсер был сложным...
Обычные синтаксические анализаторы используют весь свой ввод и создают одно дерево синтаксического анализа. Я ищу тот, который использует непрерывный поток и создает лес синтаксического анализа [ править: см. Обсуждение в комментариях относительно того, почему такое использование этого термина...
Память (и блокировки ресурсов) возвращаются в ОС в детерминированных точках во время выполнения программы. Поток управления программой сам по себе достаточен, чтобы знать, где, без сомнения, данный ресурс может быть освобожден. Точно так же, как человек-программист знает, куда писать,...
Передо мной была поставлена задача внедрения предметно-ориентированного языка для инструмента, который может стать весьма важным для компании. Язык простой, но не тривиальный, он уже допускает вложенные циклы, конкатенацию строк и т. Д., И практически уверен, что другие конструкции будут...
Я пытаюсь понять компиляцию и интерпретацию, шаг за шагом выясняя общее изображение. Поэтому я поднялся на вопрос, читая http://www.cs.man.ac.uk/~pjj/farrell/comp3.html эту статью. Это говорит: Следующий этап компилятора называется Parser. Эта часть компилятора имеет понимание грамматики языка. Он...
Я нахожусь в процессе создания своего собственного языка программирования, который я делаю для целей обучения. Я уже написал лексер и парсер рекурсивного спуска для подмножества моего языка (в настоящее время я поддерживаю математические выражения, такие как + - * /и круглые скобки). Парсер...
Этот вопрос был перенесен из переполнения стека, потому что на него можно ответить в Software Engineering Stack Exchange. Мигрировал 7 лет назад . Проблема: Запустите команды в виде строки. пример команды: /user/files/ list all; эквивалентно: /user/files/ ls -la; другой: post tw fb "HOW DO YOU...
Мы с коллегой недавно спорили о том, способен ли чистый регулярный код полностью инкапсулировать формат csv, так что он способен анализировать все файлы с любым заданным escape-символом, символом кавычек и символом-разделителем. Регулярное выражение не должно быть способно изменять эти символы...
Я хочу создать общий синтаксический анализатор правил для ролевых и бумажных систем. Правило может включать в себя от 1 до N объектов от 1 до N ролей игральных костей и вычисления значений на основе нескольких атрибутов объекта. Например: У игрока есть STR 18, его экипированное оружие дает ему...
Когда я начал использовать комбинаторы синтаксического анализа, моей первой реакцией было чувство освобождения от того, что казалось искусственным различием между синтаксическим анализом и лексингом. Внезапно все было просто разбор! Однако недавно я наткнулся на эту публикацию на...
Если я правильно помню курс по компиляторам, типичный компилятор имеет следующую упрощенную схему: Лексический анализатор сканирует (или вызывает некоторую функцию сканирования) исходный код посимвольно Строка входных символов проверяется на соответствие словаря лексем Если лексема действительна,...
Я пишу парсер для языка разметки, который я создал (пишу на python, но это не совсем относится к этому вопросу - на самом деле, если это кажется плохой идеей, я хотел бы предложить вариант для лучшего пути) , Я читаю о синтаксических анализаторах здесь: http://www.ferg.org/parsing/index.html и...
Какие тесты я должен использовать для модульного тестирования парсера CSV? У меня есть простой синтаксический анализатор csv в C #, и я хочу быть уверенным, что у меня есть хороший охват модульных тестов для всех распространенных (и необычных) краевых случаев. Какие тесты я должен использовать для...