---------------------------------------------------------------------

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 
    }

この結果は次のようになる。

tex2html_wrap2621

この例を見ても分かるように、ラベルは label命令の後に記述するだけで ある。1行に書かないといけないこと以外に特に注意することもない。

refer文による参照については、もう少し詳しい解説が必要だろう。 refer文では、まず参照先のラベル名を ( ) で囲んで書き、その 後で { } で囲んで文を書く。 よって、例えば ''goto ラベル'' として、このラベルを円の中に書きたい時に は、次のように3行に渡って書く。

    refer (LABEL) {
        goto 
    }

この書き方は既に述べた反復や条件分岐などとほぼ同じであり、改行コードや空 白の入れ方についてはここでは省略する。 但し、{ } の中身の扱いは反復や条件分岐とは異なるので注意が必要で ある。 refer文では、{ } の中身はブロック文と同じで、単なる文字列と して扱われる。 例えば

    refer (EXIT) {
        if (x = 0)
            print '\n'
        print 'The End'
    }

の結果は

tex2html_wrap2623

となる。

また、ラベルには省略形がある。 C言語のラベルと同じで、英数字及び _ (アンダースコア)を組み合わせたラ ベル名の後ろに : (コロン)をつけただけの行はラベルの省略形と見なされる。 PADELでは更に日本語も含めることができる。 例えば、

    LABEL1:

    label LABEL1

と同じ結果になる。 但し、1行1命令の原則より、: (コロン)の後に続けて別の PADEL の命令を書い てはならず、必ず改行しなければいけない。 空白は、ラベル名の前、ラベル名と : の間、: の後のいずれにも入れて構わな いが、ラベル名が空白を含んではいけない。 また、省略形のラベル名には for などの予約語は使えない。

---------------------------------------------------------------------

プログラムのPAD図自動描画ソフト pad2ps に戻る。
吉田 誠一のホームページ に戻る。
Copyright(C) Seiichi Yoshida (comet@aerith.net). All rights reserved.
Sat Nov 9 21:27:17 JST 1996