Поддержка C++ в парсере
Issue #245
new
Originally reported on Google Code with ID 245
Сейчас в силу приоритета скорости не будет реализована часть возможностей, которая должна
быть реализована в будущем.
Сейчас нет и пока не будет следующих возможностей?
1) Шаблоны - очень много конфликтов
2) Выражения в скобках - конфликтуют со сверткой типов
Список будет пополняться по возможности.
Reported by mamontov.dp
on 2013-11-07 04:58:43
Comments (13)
-
repo owner -
repo owner Reported by
oasychev
on 2013-11-07 22:35:27 - Labels added: Component-WritingCompetently -
repo owner Фиксированный парсер на С++ давно уже пора сделать! От него зависит многое, в том числе и реализация алгоритмов обработки дерева - на чем с ними работать?! Во-первых, можно написать основную грамматику и текстовые описания для нее с плейсхолдерами (плюс примеры генерации описаний узлов) и показать мне на консультации - заодно ваши вопросы по статьям уточняться. А потом уже доделывать настройку с настраиваемым (или плавающим) стартовым символом и возвращением группы кустов вместо дерева когда не собирается...
Reported by
oasychev
on 2013-11-27 21:40:37 - Labels added: Priority-Critical - Labels removed: Priority-Low -
Account Deleted Шаблоны реализованы через список типов и C-style typecast. реализован через хак с символьной таблицей.
Reported by
mamontov.dp
on 2013-12-16 16:53:48 -
repo owner Что-то я в коммитах ничего такого не вижу...
Reported by
oasychev
on 2013-12-16 18:10:46 -
Account Deleted Я пока не коммичу эту часть, ибо, возможно она потребует каких-либо изменений в самом своем коде. По делу: goto оставляю также на потом, однако break остается для реализации switch.
Reported by
mamontov.dp
on 2013-12-16 18:34:03 -
repo owner break и continue лучше оставить.
Reported by
oasychev
on 2013-12-16 18:38:29 -
repo owner в смысле сделать сейчас.
Reported by
oasychev
on 2013-12-16 18:38:50 -
repo owner ну и пускай будут изменения закоммичены отдельными коммитами потом с объяснением, зачем они взялись; всяко лучше чем отдельный огромный коммит с комментом типа "сделано xxxx"
Reported by
oasychev
on 2013-12-16 19:12:58 -
Account Deleted Хорошо, в ближайшее время закоммичу. Break и Continue остаются - они никаких конфликтов не вызывают. Еще может еще раз гляну - goto, может получится оставить.
Reported by
mamontov.dp
on 2013-12-16 20:21:53 -
repo owner Надо будет если потребуется поменять заголовок функции парсинга и уточнить настройки в processed_string. Нам нужна функция парсинга, которая могла бы принимать следующие параметры 1) тип ожидаемого стартового состояния (с вариантом типа any если любое годится) 2) при невозможности свернуть в дерево со стартовым состоянием на конце, выдавать ли в ответ "куст" (как понадобится syntax_analyzer в cw) или сообщения о синтаксических ошибках (как понадобится например на форме редактирования cw если преподаватель ввел строку с ошибкой) Мне переработать заголовок или сами сделаете?
Reported by
oasychev
on 2014-01-17 15:30:45 -
Account Deleted Мы уже говорили на эту тему стартовых состояний - парсер сам сворачивает насколько может все, что к нему пришло. Оказалось, что пока они не нужны. Сейчас нужен только флаг указывающий на то, нужен ли нам полностью корректный разбор или куст нас устроит (ибо куст не устраивает при анализе ответа преподавателя). Что возвращать в случае установленного этого флага - неизвестно, пока не придумал.
Reported by
mamontov.dp
on 2014-01-20 06:22:48 -
repo owner Куст это массив корневых вершин. При наличии ошибок возвращается список ошибок (отдельной функцией), по возможности строится дерево в котором есть вершины-ошибки (тут надо думать, с регексами в этом плане проще - но если не получится с ходу, пусть не строится - не страшно) - посмотрите, как это устроено в preg_regex_handler - вполне удобно. Есть отдельные классы для ошибок парсера...
Reported by
oasychev
on 2014-01-21 20:02:19 - Log in to comment
Reported by
oasychev
on 2013-11-07 11:52:28