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

Анализ (не) структурированных данных для преобразования их в структурированный, нормализованный формат.

81
Должен ли я использовать генератор синтаксического анализатора или я должен свернуть свой собственный код лексера и анализатора?

Какие конкретные преимущества и недостатки каждого способа работы над грамматикой языка программирования? Почему / Когда я должен катиться самостоятельно? Почему / Когда я должен использовать...

60
Когда использовать Parser Combinator? Когда использовать Parser Generator?

Недавно я глубоко погрузился в мир парсеров, желая создать свой собственный язык программирования. Однако я обнаружил, что существуют два несколько разных подхода к написанию парсеров: Генераторы парсеров и Комбинаторы парсеров. Интересно, что мне не удалось найти какой-либо ресурс, объясняющий, в...

47
Как именно создается абстрактное синтаксическое дерево?

Я думаю, что понимаю цель AST, и раньше я построил пару древовидных структур, но не AST. Я в основном сбит с толку, потому что узлы - это текст, а не число, поэтому я не могу придумать хороший способ ввода токена / строки, когда я разбираю некоторый код. Например, когда я смотрел на диаграммы AST,...

38
Почему строгий анализ не был выбран для HTML?

Я часто задавался вопросом, почему строгий синтаксический анализ не был выбран при создании HTML. На протяжении большей части истории Интернета браузеры принимали любую разметку и старались изо всех сил ее анализировать. Этот процесс снижает производительность, позволяет людям писать бессмысленно и...

38
Современные языки все еще используют генераторы парсеров?

Я исследовал о наборе компиляторов GCC на википедии здесь , когда это придумал: GCC начал использовать парсеры LALR, сгенерированные с помощью Bison, но постепенно переключился на рукописные парсеры с рекурсивным спуском; для C ++ в 2004 году и для C и Objective-C в 2006 году. В настоящее время все...

37
C ++ 11 включает в себя std :: stoi, почему бы не std :: itos?

Я заметил, что в C ++ 11 есть std::sto@семейство функций для простой распаковки ints / float / longs из строк. Однако я удивлен, что обратное не реализовано. Почему комитет по стандартам не включает std::itosсемейство функций для перехода от int / float / что угодно (назад) к...

31
Как обычно анализируются комментарии?

Как обычно обрабатываются комментарии в языках программирования и разметке? Я пишу парсер для некоторого пользовательского языка разметки и хочу следовать принципу наименьшего удивления , поэтому я пытаюсь определить общее соглашение. Например, должен ли комментарий, встроенный в токен, «мешать»...

29
Инглиш парсер (для Хоббита 1982)

С увлечением прочитал о текстовой приключенческой игре The Hobbit, в которой был представлен невероятно мощный парсер под названием «Inglish»: ... Инглиш позволял набирать сложные предложения, такие как "спроси Гэндальфа о любопытной карте, затем возьми меч и убей тролля с ним". Парсер был сложным...

27
Имя для этого типа синтаксического анализатора, ИЛИ почему он не существует

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

27
Можно ли статически предсказать, когда освободить память - только из исходного кода?

Память (и блокировки ресурсов) возвращаются в ОС в детерминированных точках во время выполнения программы. Поток управления программой сам по себе достаточен, чтобы знать, где, без сомнения, данный ресурс может быть освобожден. Точно так же, как человек-программист знает, куда писать,...

24
Каковы аргументы против разбора пути Ктулху?

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

23
В каком процессе возникает синтаксическая ошибка? (токенизация или разбор)

Я пытаюсь понять компиляцию и интерпретацию, шаг за шагом выясняя общее изображение. Поэтому я поднялся на вопрос, читая http://www.cs.man.ac.uk/~pjj/farrell/comp3.html эту статью. Это говорит: Следующий этап компилятора называется Parser. Эта часть компилятора имеет понимание грамматики языка. Он...

23
Реализация шаблона посетителя для абстрактного синтаксического дерева

Я нахожусь в процессе создания своего собственного языка программирования, который я делаю для целей обучения. Я уже написал лексер и парсер рекурсивного спуска для подмножества моего языка (в настоящее время я поддерживаю математические выражения, такие как + - * /и круглые скобки). Парсер...

22
Как написать интерпретатор команд / парсер?

Этот вопрос был перенесен из переполнения стека, потому что на него можно ответить в Software Engineering Stack Exchange. Мигрировал 7 лет назад . Проблема: Запустите команды в виде строки. пример команды: /user/files/ list all; эквивалентно: /user/files/ ls -la; другой: post tw fb "HOW DO YOU...

19
Может ли формат csv быть определен регулярным выражением?

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

19
Общий анализатор правил для правил настольной игры RPG - как это сделать?

Я хочу создать общий синтаксический анализатор правил для ролевых и бумажных систем. Правило может включать в себя от 1 до N объектов от 1 до N ролей игральных костей и вычисления значений на основе нескольких атрибутов объекта. Например: У игрока есть STR 18, его экипированное оружие дает ему...

18
Являются ли отдельные операции синтаксического анализа и лексинга хорошей практикой с комбинаторами синтаксического анализа?

Когда я начал использовать комбинаторы синтаксического анализа, моей первой реакцией было чувство освобождения от того, что казалось искусственным различием между синтаксическим анализом и лексингом. Внезапно все было просто разбор! Однако недавно я наткнулся на эту публикацию на...

16
Используют ли компиляторы многопоточность для ускорения компиляции?

Если я правильно помню курс по компиляторам, типичный компилятор имеет следующую упрощенную схему: Лексический анализатор сканирует (или вызывает некоторую функцию сканирования) исходный код посимвольно Строка входных символов проверяется на соответствие словаря лексем Если лексема действительна,...

14
Придумать жетоны для лексера

Я пишу парсер для языка разметки, который я создал (пишу на python, но это не совсем относится к этому вопросу - на самом деле, если это кажется плохой идеей, я хотел бы предложить вариант для лучшего пути) , Я читаю о синтаксических анализаторах здесь: http://www.ferg.org/parsing/index.html и...

14
модульные тесты для парсера csv

Какие тесты я должен использовать для модульного тестирования парсера CSV? У меня есть простой синтаксический анализатор csv в C #, и я хочу быть уверенным, что у меня есть хороший охват модульных тестов для всех распространенных (и необычных) краевых случаев. Какие тесты я должен использовать для...