PHP で基本的なトークナイザーを作成しました。現在、ステートメントを区切るためにセミコロンは必要ありませんが、javascript に似たものを解析します。
a = 1
b = a + 1
echo b
T_IDENTIFIER a
T_EQUAL =
T_NUMBER 1
T_IDENTIFIER b
T_EQUAL =
T_IDENTIFIER a
T_NUMBER 1
T_IDENTIFIER echo
T_IDENTIFIER b
これは私の最初のコンパイラなので、解析に進む準備ができているかどうかわかりません。レクサーでは改行を無視しているため、ステートメント間に区切りはありませんが、DSL ではセミコロンの代わりに改行を使用できます。
私の質問は、レクサーでステートメントを分離することについて心配し始めるべきですか、それともトークナイザーを変更して改行を含める必要があるのでしょうか?