オブジェクトコードの形式

この節ではパステルステッチのオブジェクトコード (object code) の形式を規定する。

パステルステッチのオブジェクトコードは XML ドキュメントである。この XML ドキュメントは全体が pastelstitch 要素である。pastelstitch 要素の内容は 0 個以上の code 要素の並びである。

オブジェクトコードの code 要素はコードブロックに対応する。code 要素の内容は 1 個の caption 要素と 1 個の sequence 要素である。

caption 要素はコードブロックキャプションに対応する。caption 要素は任意の文字列を含むことができるが、要素を含むことはできない。

sequence 要素はブロックまたは文の並びに対応する。sequence 要素の内容は 0 個以上の entity 要素である。

entity 要素の class 属性は必須である。class 属性の値は block または statement である。

entity 要素のうち class 属性の値が block であるものはブロックに対応する。ブロックである entity 要素は class 属性に加えて name 属性が必須である。name 属性の値は if, loop, procedure, initialize, continuation, dependency のいずれかである。ただし実装によっては他の値も使用できる。ブロックである entity 要素の内容は、0 個以上の argument 要素と 1 個の sequence 要素である。

argument 要素はブロック開始文または統合演算形式の引数に対応する。argument 要素の内容は 1 個の label 要素と 1 個の expression 要素である。label 要素の内容は有効な名前 (valid name) である。label 要素は引数のラベルに対応する。

互換性についての注意 過去の言語仕様との互換性のため、argument 要素には別の形式が許されている。互換形式の argument 要素は proposition 属性が必須である。この属性は引数のラベルに対応する。proposition 属性の値は有効な名前 (valid name) である。互換形式の argument 要素の内容は 1 個の expression 要素である。この仕様は将来的に削除される可能性がある。

expression 要素は式に対応する。expression 要素は class 属性が必須である。この属性の値は name, string, unified-operation のいずれかである。

互換性についての注意 過去の言語仕様との互換性のため、expression 要素の class 属性の値に、unified-operation のかわりに frame を使用できる。この仕様は将来的に削除される可能性がある。

expression 要素のうち class 属性の値が name であるものは複合名に相当する。複合名である expression 要素の内容は personal 要素と family 要素である。これらはそれぞれ固有名と姓に対応する。personal 要素と family 要素の内容はそれぞれ有効な名前である。

expression 要素のうち class 属性の値が string であるものは文字列に対応する。文字列である expression 要素の内容は要素を含まない文字列である。この文字列はクラス 1, 2, 3, 4, 5 の文字の 0 字以上の並びである。ただし、クラス 1, 2 の文字と、XML にとって特別な意味を持つ文字は、実体参照で表現する。

expression 要素のうち class 属性の値が unified-operation であるものは統合演算式に対応する。統合演算式である expression 要素の内容は 1 個の unified-operation 要素である。

unified-operation 要素は統合演算形式に対応する。unified-operation 要素の内容は 1 個の expression 要素と 0 個以上の argument 要素である。この expression 要素は演算指定子に対応する。

互換性についての注意 過去の言語仕様との互換性のため、unified-operation 要素のかわりに frame 要素を使用できる。この仕様は将来的に削除される可能性がある

statement 要素の内容は 1 個の unified-operation 要素である。

有効な名前とは、クラス 4 の文字の 1 字以上の並びである。