投稿日
2013/8/21 水曜日
LLVMによるプログラミング言語の実装チュートリアル日本語訳
第2章 万華鏡: 構文解析器とASTの実装
第8節 結論
コメント付きで400行弱のコード(コメント、空行無しだと240行程度)によって、字句解析器、構文解析器、AST構築のためのコードを含む、我々の小さな言語を完全に定義することが出来た。
これによって完成した実行ファイルによって、万華鏡のコードは検証され、もし文法的な間違いがあればその旨表示されるだろう。
以下は、操作のサンプルである。
$ ./a.out ready> def foo(x y) x+foo(y, 4.0); Parsed a function definition. ready> def foo(x y) x+y y; Parsed a function definition. Parsed a top-level expr ready> def foo(x y) x+y ); Parsed a function definition. Error: unknown token when expecting an expression ready> extern sin(a); ready> Parsed an extern ready> ^D $
これには改良の余地がまだまだある。
新たなASTノードを定義したりして、いろんな方法で言語を拡張することが出来る。
次の章では、ASTからLLVM中間表現(LLVM IR)を生成する方法について説明する。
訳注: まだこの時点では一般的な意味におけるコンパイラになってない点に注意。
現時点では万華鏡のコードを解析し、ASTを構築するところまでである。
最近のコメント
名前
しゅごい
Jane Doe
FYI Avoid Annoying Unexpe…
Jane Doe
ご存じとは思いますが、whileには、”~の間”と…
peta_okechan
針金みたいなパーツを引っ張ると外れます。 他の方の…
虎徹ファン交換
虎徹の標準ファンを外す際に、どのようにして外されま…
花粉症対策2019 – 日曜研究室
[…] 花粉症対策についてはこれまで次の記事を書いてきました。https://…
花粉症対策2019 – 日曜研究室
[…] 花粉症対策についてはこれまで次の記事を書いてきました。https://…
花粉症対策2019 – 日曜研究室
[…] 花粉症対策についてはこれまで次の記事を書いてきました。https://…
花粉症対策2019 – 日曜研究室
[…] 花粉症対策についてはこれまで次の記事を書いてきました。https://…
花粉症対策2019 – 日曜研究室
[…] 花粉症対策についてはこれまで次の記事を書いてきました。https://…