Сообщение от cyber
|
слушай, а расскажи как ты парсер js писал, как он работает?
|
Библиотеки для работы с JS: парсинг, валидация, преобразование в AST и обратно в код:
esprima +
estools;
babel (
babylon);
acorn
Библиотеки для написания парсеров:
jison (аналог Bison, его использует CoffeeScript)
bison
***
Если интересует сам принцип парсинга - то это посимвольный обход строки и формирование последовательностей токенов (лексем), затем на основе лексем строится AST, в котором учитываются приоритеты операторов, уровни вложенности и т.д. Затем работа идёт с АСТ, а после всех преобразований из АСТ мы генерим нужный нам код (будь то js, байткод, LLVM и т.д.).
Хотя это примитивное описание, т.к. алгоритмов парсинга и построения AST существует несколько, например низходящий или восходящий и т.д. Для уточнения этих нюансов лучше читать специальную литературу