プリプロセス
プリプロセスは、コンパイル前に行われる前処理です。
コンパイルエラー内で表示されるプログラムは、プリプロセス後のプログラムです。
プリプロセス結果は、-S
オプションを指定することで確認することができます。
shol -S myscript.shol
プリプロセス後のプログラムは、myscript.shi
に保存されます。
処理内容
入力されたソースに、以下の前処理を順に行います。
-
末尾に改行を追加
ファイルの末尾に改行がない場合、改行を追加します。
これは構文解析のために、文法の都合上、必要な処理です。 -
バックスラッシュで分割された行を 1 行に結合
バックスラッシュで行が分割されている場合、1 行に結合します。
コンパイルエラーで行番号がずれるのを防ぐため、結合されると消えてしまう行には空行が挿入されます。
例えば、以下のようなプログラムがある場合、%print
"Hello, \
World!"
"Hi!"プリプロセス後は以下のようになります。
%print
"Hello, World!"
"Hi!" -
ダブルクォートが省略された文字列リソース行をダブルクォートで囲む
ダブルクォートで囲まれていない文字列リソース行を、ダブルクォートで囲みます。
例えば、以下のようなプログラムがある場合、
%print
Hello, World!プリプロセス後は以下のようになります。
%print
"Hello, World!"