Комментарии 6
Не так понятно как первая статья, но напротив, мотивирует заняться разбором этого кода. Думаю займусь летом, когда времени побольше будет, тоже сделаю что-нибудь подобное. Или хотя бы разберусь с предложенным.
Спасибо, жду продолжения.
Спасибо, жду продолжения.
+2
Все-таки странно, что ничего не сказано про БНФ и синтаксически управляемый перевод, кроме кое-каких записей в комментариях. Весьма полезные при написании компиляторов концепции. И странно, что нет операций деления и сравнения на равенство.
Если интересно, я могу помочь с переводом.
Если интересно, я могу помочь с переводом.
+1
Мне кажется, для парсинга сложных выражений лучше использовать библиотеку boost.spirit. Но в целом статья полезная. Жду продолжения!
+1
О мой бог, у меня не хватает слов, и единственное, что приходит мне в голову о таком синтаксическом анализаторе это «а может ещё на ассемблере это сделать стоило?». Автор оригинала не слышал о yacc/lex/bison итп? Или это LLVM'а ограничение такое? Больно смотреть на мучения и нечитаемый код диких размеров.
0
Автор прекрасно знает и слышал о yacc/lex/bison и т.п. И никаких таких ограничений в LLVM нет, с LLVM это вобще пока никак не связано… И автор, на секундочку, один из основных разработчиков LLVM.
Дело не в незнании или ограничениях.
Во-первых — это прекрасные уроки, объясняющие как на самом деле работает лексический и синтаксический анализ и что находится внутри тех самых yacc/lex.
Во-вторых, автор хотел полностью сосредоточиться не на сторонних инструментах, а полностью контролировать код, а не заставлять читателя изучать ещё один лишний инструмент вроде antlr, bison, etc.
В-третьих, во введении автор говорит, что учебник построен так, что неинтересные и ненужные вам главы легко можно пропустить, ничего при этот не потеряв.
В-четвёртых, этот код очень даже легко читается.
Дело не в незнании или ограничениях.
Во-первых — это прекрасные уроки, объясняющие как на самом деле работает лексический и синтаксический анализ и что находится внутри тех самых yacc/lex.
Во-вторых, автор хотел полностью сосредоточиться не на сторонних инструментах, а полностью контролировать код, а не заставлять читателя изучать ещё один лишний инструмент вроде antlr, bison, etc.
В-третьих, во введении автор говорит, что учебник построен так, что неинтересные и ненужные вам главы легко можно пропустить, ничего при этот не потеряв.
В-четвёртых, этот код очень даже легко читается.
+2
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Создание языка программирования с использованием LLVM. Часть 2: Реализация парсера и AST