04 REPLを作成し字句解析を行う [オリジナル言語インタプリタを作る]
REPLを作成し字句解析を行う 前回までで字句解析器の実装はひとまず完了となりました。ただ、ここまではエントリポイントとなる main() の実装を行っていません。 字句解析器を作成し、その動作をテストコードで確認しただけでした。なのでデフォルトのメイン関数の実装が残ったままで、おそらく実行すると “Hello World” が出力されるだけです。 今回は REPL を作成 […]
Web備忘録 プログラミングを中心に技術的な事柄を忘れないように書き残します。
REPLを作成し字句解析を行う 前回までで字句解析器の実装はひとまず完了となりました。ただ、ここまではエントリポイントとなる main() の実装を行っていません。 字句解析器を作成し、その動作をテストコードで確認しただけでした。なのでデフォルトのメイン関数の実装が残ったままで、おそらく実行すると “Hello World” が出力されるだけです。 今回は REPL を作成 […]
字句解析器の実装続き 続けて新たなテストを作成し、プログラムのソースコードに似た入力からトークン列を得られるようにしていきましょう。テストする入力データは以下の通り。 let five = 5; let ten = 10; let add = fn(x, y) { x + y; }; let result = add(five, ten); 早速テストコードを書きます。 LexerTest.cs […]
トークンと字句解析器の役割と実装 ここではトークンと字句解析器の実装を行います。 インタプリタがソースコードを実行するまでの流れ インタプリタはソースコードを入力として受け取り、それを実行します。コンパイラと違い実行形式のファイルを生成したりはせず、すぐにコードを実行します。 入力から実行までの大まかな流れは以下の通りです。 ソースコード(文字列)を入力として受け取る 字句解析によりトークン列を取 […]