近年のプロジェクトの技術的な問題の両方とコンパイラの理論、抽象構文木、コードエディタの関係。今の時間は少し空で、基本的な理解彼らと一緒に始める、いくつかの相互作用およびいくつかのヒントは、よりインテリジェントなことができましょう。
実際には、コンパイラの理論は、コンピュータがマシンコードを理解する「437 + 734」この文字列プログラミング合計437、734コンピュータをお知らせすることです。高レベル言語から実際のシーンは、低レベルの言語にコンパイルすることができます。
2つのステップにコンパイルプロセスのパーツ:
1.字句解析
字句解析は、正規表現、一つのマーカー(トークン)に入力された文字列によって定義されます。
"437 + 734" => NUMより NUM
2.解析
スケジュールされた構文は、の頂部を通ってトークンシフト/オートマトンを減らす最終構造を製造するための抽象構文ツリーに、法令に、段階的に。
文法= E> NUM PLUS NUM => SUM(437、734)。
文法・ジェネレータのフロントエンドは、まだ多くの隠れている https://tomassetti.me/parsing-in-javascript/を、異なる構文ジェネレータ・サポート・文法もいくつかの違いです
プロジェクトで使用(LR0、一眼レフ、LR1、LLサポートjisonライブラリで 、LALR) 文法を。コンパイラの理論は、デバッガの処理方法によって理解することができるhttp://nolanlawson.github.io/jison-debugger/。
3.jison使用
使用するのは簡単です、文書の公式ウェブサイトでは、また、より詳細であるhttp://zaa.ch/jison/docs/。Jisonは、「ノードのコマンドによってjisonファイル、定義 コンパイル済みのJSを生成するファイルを」;