Запитання з тегом «parsing»

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

12
Чи варто використовувати генератор парсера чи слід накладати власний спеціальний лексер та код парсера?
Які конкретні переваги та недоліки кожного способу роботи над граматикою мови програмування? Чому / коли я повинен катати свою? Чому / коли я повинен використовувати генератор?

4
Коли використовувати комбінатор парсера? Коли використовувати генератор парсера?
Нещодавно я глибоко занурився у світ парсерів, бажаючи створити власну мову програмування. Однак я виявив, що існує два дещо різні підходи написання парсерів: Parser Generators і Parser Combinators. Цікаво, що мені не вдалося знайти жодного ресурсу, який би пояснив, у яких випадках кращий підхід; Швидше за все , багато ресурсів …

4
Як саме створюється абстрактне синтаксичне дерево?
Я думаю, що я розумію ціль AST, і раніше я побудував пару деревних структур, але ніколи AST. Я в основному плутаюся, оскільки вузли - це текст, а не число, тому я не можу придумати приємний спосіб ввести маркер / рядок, коли я аналізую якийсь код. Наприклад, коли я дивився на …

2
Чи використовують сучасні мови генератори парсера?
Я досліджував про набір компіляторів GCC на вікіпедії тут , коли це придумав: GCC почав використовувати парсери LALR, створені разом із Bison, але поступово перейшов на рукописний рекурсивно-десертний парсер; для C ++ в 2004 році, а для C і Objective-C в 2006 році. В даний час усі передні торці використовують …

6
Чому для HTML не було обрано суворий аналіз?
Я часто замислювався, чому при створенні HTML не було обрано суворого аналізу. Більшу частину історії Інтернету браузери приймали будь-яку розмітку та намагалися її проаналізувати. Процес погіршує продуктивність, дозволяє людям писати безглуздість і ускладнює припинення застарілих функцій. Чи є конкретна причина, чому HTML не є чітко проаналізованим?
38 html  history  parsing 

1
C ++ 11 включає std :: stoi, чому б не std :: itos?
Я зауважив, що C ++ 11 має std::sto@сімейство функцій для легкого розпакування ints / floats / longs незалежно від рядків. Однак я здивований, що навпаки не реалізується. Чому комітет зі стандартів не включив std::itosсімейство функцій для переходу від ints / floats / що завгодно (назад) до рядків?
37 c++  parsing  strings  c++11 

5
Як зазвичай аналізуються коментарі?
Як в основному трактуються коментарі в мовах програмування та розмітці? Я пишу парсер для якоїсь спеціальної мови розмітки і хочу слідувати принципу найменшого здивування , тому намагаюся визначити загальну умову. Наприклад, чи повинен коментар, вбудований в маркер, «втручається» у маркер чи ні? Як правило, це щось на кшталт: Sys/* comment …
31 parsing  comments 

1
Аналізатор англійської мови (для The Hobbit 1982)
Захоплювався читати про текстову пригодницьку гру «Хобіт», в якій був неймовірно надійний аналізатор під назвою «Інгліш»: ... Інгліш дозволено вводити розширені речення, такі як "запитайте Гендальфа про цікаву карту, тоді візьміть меч та вбийте троля" Аналізатор був складним та інтуїтивно зрозумілим: він вводив займенники, прислівники ("злісно атакують гобліна"), пунктуацію та …

8
Чи можна статично передбачити, коли розібрати пам'ять --- лише з вихідного коду?
Пам'ять (і блокування ресурсів) повертається в ОС у детермінованих точках під час виконання програми. Сам по собі керуючий потік програми достатньо, щоб знати, де, безумовно, може бути розміщений даний ресурс. Так само, як людський програміст знає, куди писати, fclose(file)коли програма робиться з ним. GC вирішують це, з'ясовуючи це безпосередньо під …
27 parsing  memory 

5
Ім'я для цього типу аналізатора, АБО чому його не існує
Звичайні парсери споживають весь свій внесок і виробляють єдине дерево розбору. Я шукаю той, який споживає безперервний потік і створює ліс розбору [ редагувати: див. Обговорення в коментарях щодо того, чому використання цього терміна може бути нетрадиційним ]. Моя кишка говорить, що я не можу бути першою людиною, яка потребує …
27 parsing 

6
Які аргументи проти розбору способу Ктулху?
Мені було доручено реалізувати мову домену для інструменту, який може стати досить важливим для компанії. Мова проста, але не тривіальна, вона вже дозволяє вкладати цикли, об'єднання рядків тощо, і практично впевнені, що інші конструкції будуть додані в міру просування проекту. З досвіду я знаю, що написання лексема / аналізатора вручну …

3
У якому процесі виникає помилка синтаксису? (токенізація чи розбір)
Я намагаюся зрозуміти компіляцію та інтерпретацію, крок за кроком з'ясовуючи загальний образ. Тому я підійшов до питання, читаючи http://www.cs.man.ac.uk/~pjj/farrell/comp3.html цю статтю Він говорить : Наступний етап компілятора називається Парсер. Ця частина укладача має розуміння граматики мови. Він несе відповідальність за виявлення синтаксичних помилок і за переклад програми без помилок у …

3
Реалізація шаблону відвідувачів для абстрактного синтаксичного дерева
Я в процесі створення власної мови програмування, яку я роблю для цілей навчання. Я вже написав лексеру та рекурсивний аналізатор спуску для підмножини моєї мови (на даний момент я підтримую математичні вирази, такі як + - * /дужки). Аналізатор передає мені Абстрактне синтаксичне дерево, на якому я називаю Evaluateметод отримання …

12
Як написати інтерпретатор / аналізатор команд?
Це питання було перенесено із переповнення стека, оскільки на нього можна відповісти на Exchange Software Stack Exchange. Мігрували 7 років тому . Проблема: запускайте команди у вигляді рядка. приклад команди: /user/files/ list all; дорівнює: /user/files/ ls -la; інший: post tw fb "HOW DO YOU STOP THE TICKLE MONSTER?;" дорівнює: post …

4
Загальний аналізатор правил для настільних ігор RPG - як це зробити?
Я хочу створити загальний аналізатор правил для систем RPG стилю пером та папером. Правило може включати зазвичай від 1 до N сутностей від 1 до N ролей кістки та обчислення значень на основі декількох атрибутів сутності. Наприклад: У гравця STR 18, його озброєна в даний час зброя дає йому бонус …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.