Проектные технические трудности, в последние годы, как и теория компилятор, абстрактный синтаксис дерево, редактор кода отношения. Теперь время немного пустое, начните с базовым пониманием им, пусть некоторое взаимодействие и некоторые советы могут быть более разумными.
В самом деле, теория компилятор, чтобы компьютер знать программированию сумму 437 «437 + 734» Эта строка 734 компьютера, чтобы понять машинный код. Текущая сцена из языка высокого уровня может быть составлена на язык низкого уровня.
Части процесса компиляции в два этапа:
1. лексический анализ
Лексический анализ определяется регулярным выражением, входной строки в один маркер (маркера).
"437 + 734" => NUM более NUM
2. разбор
Синтаксис по расписанию, маркер через верхнюю часть сдвига / уменьшить автомат , шаг за шагом в Положение, в абстрактного синтаксического дерева , чтобы произвести окончательную структуру.
Грамматика = Е> NUM PLUS , NUM => СУММА (437, 734);
Передняя часть генератора грамматики все еще скрывается много https://tomassetti.me/parsing-in-javascript/ , грамматика поддержки отличается генератором синтаксиса и некоторые отличия
Используется в проекте jison библиотека , которая поддерживает (Lr0, зеркалку, Lr1 Л.Л. , LALR) грамматику. Теория Compiler можно понять пути процесса отладчик http://nolanlawson.github.io/jison-debugger/ .
использование 3.jison
Есть простой в использовании, официальный сайт документа также более подробно, http://zaa.ch/jison/docs/ . Jison определения файла «jison командным узла файл» для создания скомпилированных JS;