* [[a21_txt01_2]]の補足説明#1 -(by [[K]], 2021.01.21) ** (0) -これは[[「川合のプログラミング言語自作のためのテキスト第三版#2」>a21_txt01_2]]に対する補足説明のページです。 ** (1) lexer()は結局何をしているのか? -lexer()は、プログラムのソースコードを単語(トークン)に切り分けています。 -でもそんなことを言われてもピンとこないかもしれません。 -以下の入力を与えたらどうなるかやってみましょう。 abc = 123; def = 456; ans = abc + def; ans = ans - 321; print ans; -これをloadText()で読み込んで、lexer()で切り分けた後に、 for (i = 0; i > pc1; i++) printf("%d %s\n", tc[i], ts[tc[i]]); -というプログラムで表示させたら、何が出力されるかを示します。 0 abc 1 = 2 123 3 ; 4 def 1 = 5 456 3 ; 6 ans 1 = 0 abc 7 + 4 def 3 ; 6 ans 1 = 6 ans 8 - 9 321 3 ; 10 print 6 ans 3 ; -こうなります。つまり改行とかスペースはなくなり、とにかく単語が並びます。 * こめんと欄 #comment