DPLの構文
DPLの構文をBNF記法で示します。ただし,個々のステートメントの形式は,それぞれの項目(DPLステートメント一覧)を参照してください。また,式その他の構成要素の構文については,式の構文を参照してください。BNF記法については構文の記述法で説明しています。
ここではテキストファイルとしてのDPLファイルの形を示します。DPL作成ウィンドウでDPLファイルを作成する場合,ステートメントの最後のセミコロン ; ,<行末注釈> および先頭の --- はDPL作成ウィンドウが自動的に補うので不要です。
プログラムとステートメント
- <プログラム> ::= <ブロック>
- <ブロック> ::= [ <注釈行> | <行末注釈> | <ラベル> | <ステートメント> ]...
- <注釈行> ::= -- [ <文字> ]... <改行>
- <行末注釈> ::= --- [ <文字> ]... <改行>
- <ラベル> ::= <ラベル名> :
- <ステートメント> ::= <宣言ステートメント>
- | <構造ステートメント>
- | <制御ステートメント>
- | <式ステートメント>
- | <コマンドステートメント>
<注釈行> も <行末注釈> も,どちらも -- から改行までの文字が無視されるというだけで,DPLファイル中での意味は同じです。DPL作成ウィンドウに読み込んだときに,<注釈行>は構造項目に読み込まれ,<行末注釈>は注釈項目に読み込まれるという違いがあります。また,実際には注釈をステートメントの途中(文字列定数中や識別子中を除く)に書いても構いません。その場合も,-- から改行までが無視されます。
- <宣言ステートメント> ::= <変数宣言ステートメント>
- | <PROCEDUREステートメント>
- | <CARDPROCEDUREステートメント>
- | <REGISTERROUTINEステートメント>
- <変数宣言ステートメント> ::= <LOCALステートメント>
- | <GLOBALステートメント>
- <LOCALステートメント> ::= LOCAL <変数> [ , <変数> ]... ;
- <GLOBALステートメント> ::= GLOBAL <変数> [ , <変数> ]... ;
- <変数> ::= <変数名>
- | <カーソル変数名>
- <PROCEDUREステートメント> ::=
- PROCEDURE <手続き名>[ ( <仮引数>[ , <仮引数> ]... ) ] DO <ブロック> ENDPROCEDURE
- <仮引数> ::= <変数>
- <CARDPROCEDUREステートメント> ::=
- CARDPROCEDURE <手続き名> DO [ <カード手続き本体> ]... ENDCARDPROCEDURE
- <カード手続き本体> ::= ON <オブジェクト名> DO <ブロック>
- | ON DEFAULT [ DO ] <ブロック>
- <REGISTERROUTINEステートメント> ::=
- REGISTERROUTINE <DLL名> , <DLL関数名> [ , <DLL関数仕様> [ , <DLL関数別名> ] ] ;
- <DLL 名> ::= <文字列定数式>
- <DLL 関数名> ::= <文字列定数式> | <算術定数式>
- <DLL 関数仕様> ::= <文字列定数式>
- <DLL 関数別名> ::= <通常識別子>
- <文字列定数式> ::= <文字列式>
- <算術定数式> ::= <算術式>
- <構造ステートメント> ::= <IFステートメント>
- | <SWITCHステートメント>
- | <FORステートメント>
- | <WHILEステートメント>
- | <REPEATステートメント>
- <IFステートメント> ::=
- IF <論理式> THEN <ブロック> [ ELSEIF <論理式> THEN <ブロック> ]... [ ELSE <ブロック>] ENDIF
- <SWITCHステートメント> ::=
- SWITCH [ <単純式> ] [ CASE <単純式> DO <ブロック> ]... [ DEFAULT [ DO ] <ブロック> ] ENDSWITCH
- <FORステートメント> ::=
- FOR [ <変数名> [ FROM <始値式> ] [ TO <終値式> | DOWNTO <終値式> ] [ STEP <刻み値式> ] ] DO <ブロック> ENDFOR
- <始値式> ::= <単純式>
- <終値式> ::= <単純式>
- <刻み値式> ::= <単純式>
- <WHILEステートメント> ::= WHILE [ <論理式> ] DO <ブロック> ENDWHILE
- <REPEATステートメント> ::= REPEAT <ブロック> UNTIL [ <論理式> ] ;
- <制御ステートメント> ::= <GOTOステートメント>
- | <CALLステートメント>
- | <NEXTLOOPステートメント>
- | <EXITLOOPステートメント>
- | <EXITSWITCHステートメント>
- | <RETURNステートメント>
- | <STOPステートメント>
- <GOTOステートメント> ::= GOTO <ラベル名> ;
- <CALLステートメント> ::= CALL <手続き名> [ ( [ <実引数> ] [ , [ <実引数> ] ]... ) ] ;
- <NEXTLOOPステートメント> ::= NEXTLOOP ;
- <EXITLOOPステートメント> ::= EXITLOOP ;
- <EXITSWITCHステートメント> ::= EXITSWITCH ;
- <RETURNステートメント> ::= RETURN [ <式> ] ;
- <STOPステートメント> ::= STOP ;
- <式ステートメント> ::= <式> ;
- <コマンドステートメント> ::=
- <コマンド名> [ <カーソル名> , ] [ <キーワードパラメータ> [ , <キーワードパラメータ> ]... ] ;
- | <コマンド名> [ <カーソル名> , ] [ <順序パラメータ> ] [ , [ <順序パラメータ> ] ]... [ , <キーワードパラメータ> ]... ;
- <コマンド名> ::= <通常識別子>
- <キーワードパラメータ> ::= <キーワード> = <単純パラメータ>
- <単純パラメータ> ::= <単純式> | <キーワード>
- <順序パラメータ> ::= <単純パラメータ>
<コマンドステートメント>は,機能別に以下のように分類されています。個々のステートメントの構文は,各ステートメントごとの「形式」を参照してください。DPLステートメント一覧
- 宣言ステートメント
- 構造ステートメント
- 制御ステートメント
- 実行関連ステートメント
- 代入ステートメント
- 式ステートメント
- ファイル操作関連ステートメント
- レコード操作関連ステートメント
- 探索関連ステートメント
- 表操作関連ステートメント
- 表示関連ステートメント
- その他のステートメント
一般的に,<コマンドステートメント> の <キーワードパラメータ> は,自由な順序で書くことができます。<順序パラメータ> は,決められた順序で書かなければなりません。<順序パラメータ> を省略する場合,<順序パラメータ> を区切るコンマは省略できません。
- DPLの機能
- 式の構文