私は自分のJavaScriptベースのプログラミング言語を作っています(ええ、それは狂っていますが、それは学ぶためだけです... 多分?)。まあ、私は、パーサーについて読んだし、最初のパスは次のように、トークンにコードソースを変換することです:私のロジックが正しいかどうかはわからないパーサーを構築する(パートI)
T_IF "if"
T_LPAREN "("
T_IDENTIFIER "x"
T_GT ">"
T_NUMBER "5"
T_RPAREN ")"
T_IDENTIFIER "return"
T_TRUE "true"
T_TERMINATOR ";"
:に
if(x > 5)
return true;
トークナイザその間ずっと。私のパーサではそれも良いですし、(ええ、多次元配列)、それに変換(か?):
T_IF "if"
T_EXPRESSION ...
T_IDENTIFIER "x"
T_GT ">"
T_NUMBER "5"
T_CLOSURE ...
T_IDENTIFIER "return"
T_TRUE "true"
私はいくつかの疑問があります。
- を良くも悪くもその私の方法ですオリジナルの方法?私のコードはいつも解釈されるのではなく、PHPのような別の言語に翻訳されて読み込まれ、コンパイルされることに注意してください。
- 私はトークナイザーの後、正確に何をする必要がありますか?私はこのパスで本当に失われています!
- 私はそれを行う方法を学ぶための良いチュートリアルがありますか?
これはそうです。さようなら!
ちょっと、プログラミング言語を作ることは狂っていません。ここの多くの人が同じことをしています。 – ApprenticeHacker
ドラゴンブックを試しましたか?基本的には、レクサーの段階、実際の構文解析段階 - >理想的には何らかのAST(抽象構文木)を出力し、意味的に解析(構文解析)またはターゲット言語に変換することができます。 – stryba
@IntermediateHacker Haha ...ええ、クレイジー*の部分は、それは1人の人にとって非常に複雑です。しかし、学ぶことは本当にとても良いことです。プロの使用のためには、私はチームが必要だと思うので、狂っているだけでそれを行うのです。 :p –