PADELでは、PAD図の中にラベルを描くことができる。
PAD図ではラベルは円形に描かれる。
ラベルを描くためには、 label 命令を使う。
ラベル名はどのようなものでも構わない。
つまり、空白や { }
なども自由に使うことができる。
また、そのラベルを参照するには、 refer 命令を使う。 参照するラベルも、PAD図では円形に描かれる。 refer文でも、任意のラベル名を使うことができる。 参照するラベルの存在はチェックしていないので、存在しないラベル名を書くこ ともできる。
では例を挙げておこう。
label Let's start! input x label Repeat 10 times. for (i = 1, 10) print x*i refer (Let's start!) { goto }
この結果は次のようになる。
この例を見ても分かるように、ラベルは label命令の後に記述するだけで ある。1行に書かないといけないこと以外に特に注意することもない。
refer文による参照については、もう少し詳しい解説が必要だろう。
refer文では、まず参照先のラベル名を ( )
で囲んで書き、その
後で { }
で囲んで文を書く。
よって、例えば ''goto ラベル'' として、このラベルを円の中に書きたい時に
は、次のように3行に渡って書く。
refer (LABEL) { goto }
この書き方は既に述べた反復や条件分岐などとほぼ同じであり、改行コードや空
白の入れ方についてはここでは省略する。
但し、{ }
の中身の扱いは反復や条件分岐とは異なるので注意が必要で
ある。
refer文では、{ }
の中身はブロック文と同じで、単なる文字列と
して扱われる。
例えば
refer (EXIT) { if (x = 0) print '\n' print 'The End' }
の結果は
となる。
また、ラベルには省略形がある。 C言語のラベルと同じで、英数字及び _ (アンダースコア)を組み合わせたラ ベル名の後ろに : (コロン)をつけただけの行はラベルの省略形と見なされる。 PADELでは更に日本語も含めることができる。 例えば、
LABEL1:
は
label LABEL1
と同じ結果になる。
但し、1行1命令の原則より、: (コロン)の後に続けて別の PADEL の命令を書い
てはならず、必ず改行しなければいけない。
空白は、ラベル名の前、ラベル名と : の間、: の後のいずれにも入れて構わな
いが、ラベル名が空白を含んではいけない。
また、省略形のラベル名には for
などの予約語は使えない。