構文抽出器

構文抽出器はパステルステッチのソースコードをオブジェクトコードに変換する。この章では ソースコードの文法オブジェクトコードの形式 の仕様から自明でない部分についてのみ規定する。

演算子

ソースコードでの演算子はオブジェクトコードでは統合演算式に変換される。演算子のうち ^and, ^or, ^not, ^unless, ^write を除くものは、複合名 operationmain を演算指定子とする統合演算式に変換される。この統合演算式の引数は operator, left, right である。operator 引数には演算子に対応する複合名が置かれる。引数 leftright はそれぞれ左辺と右辺に対応する。左辺のない +left 引数が省略される。右辺のない + 演算子は right 引数に offsetargument 複合名が置かれる。

^and 演算子と ^or 演算子はそれぞれ andmain 複合名と ormain 複合名を演算指定子とする統合演算式に変換される。右辺と左辺はそれぞれ引数 leftright に対応する。^not 演算子と ^unless 演算子は、どちらも notmain 複合名を演算指定子とする統合演算式に変換される。右辺は main 引数に置かれる。

^write 演算子は writemain 複合名を演算指定子とする統合演算式に変換される。左辺は to 引数に、右辺は value 引数に置かれる。

浮動小数点数

ソースコードでの浮動小数点数はオブジェクトコードでは decode constantmain 複合名を演算指定子とする統合演算式に変換される。この統合演算式の引数は typecode である。type 引数には floating point numbermain 複合名が置かれる。code 引数には文字列が置かれる。

mulde ブロック

ソースコードでの mulde ブロックは、オブジェクトコードでは統合演算形式と procedure ブロックの組み合わせで表現される。統合演算形式の演算指定子は muldestatic local name 複合名である。統合演算形式の引数は mulde ブロックの引数が使われる。procedure ブロックは main 引数を持つ。その main 引数には muldementioned above 複合名が置かれる。procedure ブロックの内容は mulde ブロックの内容である。