next up previous contents
Next: コメント Up: PADELの文法について Previous: 例外処理

ラベルと参照

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 などの予約語は使えない。



Masayuki Kuwada
Fri Nov 8 15:33:42 JST 1996