式の構文
式は,定数,項目参照 (項目の値),関数呼出し,演算子などで構成されます。式の全体構成を理解しやすいように,式の構文をBNF記法で示します。BNF記法については構文の記述法で説明しています。
- <式リスト> ::= <式> [ , <式> ]...
- <式> ::= <単純式>
- | <比較式>
- | <論理式>
- | <代入式>
- <単純式> ::= <文字列式>
- | <算術式>
- | <日付式>
- | <時刻式>
- | <年月間隔式>
- | <日時間隔式>
- | <カーソル式>
- | <キーワード式>
- | <ポインタ式>
- <文字列式> ::= <文字列一次子>
- | <文字列式> <連結演算子> <文字列一次子>
- | <文字列式> <差分演算子> <文字列一次子>
- <文字列一次子> ::= <文字列定数>
- | <項目参照>
- | <オブジェクト参照>
- | <変数参照>
- | <関数呼出し>
- | <ナル>
- | ( [ <式リスト> , ] <文字列式> )
- <連結演算子> ::= + | ||
- <差分演算子> ::= -
- <算術式> ::= <算術項>
- | <算術式> <加法演算子> <算術項>
- <算術項> ::= <算術因子>
- | <算術項> <乗法演算子> <算術因子>
- | <年月間隔項> <除算演算子> <年月間隔因子>
- | <日時間隔項> <除算演算子> <日時間隔因子>
- <算術因子> ::= [ <単項演算子> ] <算術一次子>
- <算術一次子> ::= <算術定数>
- | <項目参照>
- | <オブジェクト参照>
- | <変数参照>
- | <関数呼出し>
- | <ナル>
- | ( [ <式リスト> , ] <算術式> )
- <加法演算子> ::= + | -
- <乗法演算子> ::= <乗算演算子>
- | <除算演算子>
- | <剰余演算子>
- <乗算演算子> ::= * | ×
- <除算演算子> ::= / | ÷
- <剰余演算子> ::= MOD
- <単項演算子> ::= + | -
- <日付式> ::= <日付一次子>
- | <日付式> <加法演算子> <年月間隔項>
- | <日付式> <加法演算子> <日時間隔項>
- <日付一次子> ::= <日付定数>
- | <項目参照>
- | <オブジェクト参照>
- | <変数参照>
- | <関数呼出し>
- | <ナル>
- | ( [ <式リスト> , ] <日付式> )
- <時刻式> ::= <時刻一次子>
- | <時刻式> <加法演算子> <日時間隔項>
- <時刻一次子> ::= <時刻定数>
- | <項目参照>
- | <オブジェクト参照>
- | <変数参照>
- | <関数呼出し>
- | <ナル>
- | ( [ <式リスト> , ] <時刻式> )
- <年月間隔式> ::= <年月間隔項>
- | <年月間隔式> <加法演算子> <年月間隔項>
- | <日付式> <時間隔演算子> <日付一次子>
- <年月間隔項> ::= <年月間隔因子>
- | <年月間隔項> <乗法演算子> <算術因子>
- | <年月間隔項> <剰余演算子> <年月間隔因子>
- | <年月間隔項> <剰余演算子> <算術因子>
- <年月間隔因子> ::= [ <単項演算子> ] <年月間隔一次子>
- <年月間隔一次子> ::= <年月間隔定数>
- | <項目参照>
- | <オブジェクト参照>
- | <変数参照>
- | <関数呼出し>
- | <ナル>
- | ( [ <式リスト> , ] <年月間隔式> )
- <日時間隔式> ::= <日時間隔項>
- | <日時間隔式> <加法演算子> <日時間隔項>
- | <時刻式> <時間隔演算子> <時刻一次子>
- <日時間隔項> ::= <日時間隔因子>
- | <日時間隔項> <乗法演算子> <算術因子>
- | <日時間隔項> <剰余演算子> <日時間隔因子>
- | <日時間隔項> <剰余演算子> <算術因子>
- <日時間隔因子> ::= [ <単項演算子> ] <日時間隔一次子>
- <日時間隔一次子> ::= <日時間隔定数>
- | <項目参照>
- | <オブジェクト参照>
- | <変数参照>
- | <関数呼出し>
- | <ナル>
- | ( [ <式リスト> , ] <日時間隔式> )
- <時間隔演算子> ::= -
- <カーソル式> ::= <カーソル一次子>
- <カーソル一次子> ::= <カーソル名>
- | <変数参照>
- | <関数呼出し>
- | <ナル>
- | ( [ <式リスト> , ] <カーソル式> )
- <キーワード式> ::= <キーワード定数>
- | <変数参照>
- | <関数呼出し>
- | <ナル>
- <ポインタ式> ::= <ポインタ項>
- | <ポインタ式> <加法演算子> <算術項>
- | <ポインタ式> <減算演算子> <算術項>
- | <ポインタ式> <減算演算子> <ポインタ項>
- <ポインタ項> ::= <変数参照>
- | <関数呼出し>
- | <ナル>
- <比較式> ::= <文字列比較式>
- | <算術比較式>
- | <日付比較式>
- | <時刻比較式>
- | <年月間隔比較式>
- | <日時間隔比較式>
- | <キーワード比較式>
- | <ポインタ比較式>
- <文字列比較式> ::=
- <文字列式> <文字列比較演算子> <文字列式> [ <文字列比較演算子> <文字列式> ]
- <算術比較式> ::=
- <算術式> <算術比較演算子> <算術式> [ <算術比較演算子> <算術式> ]
- <日付比較式> ::=
- <日付式> <日付比較演算子> <日付式> [ <日付比較演算子> <日付式> ]
- <時刻比較式> ::=
- <時刻式> <時刻比較演算子> <時刻式> [ <時刻比較演算子> <時刻式> ]
- <年月間隔比較式> ::=
- <年月間隔式> <年月間隔比較演算子> <年月間隔式> [ <年月間隔比較演算子> <年月間隔式> ]
- <日時間隔比較式> ::=
- <日時間隔式> <日時間隔比較演算子> <日時間隔式> [ <日時間隔比較演算子> <日時間隔式> ]
- <キーワード比較式> ::=
- <キーワード式> <等値比較演算子> <キーワード式>
- <ポインタ比較式> ::=
- <ポインタ式> <ポインタ比較演算子> <ポインタ式> [ <ポインタ比較演算子> <ポインタ式> ]
- <文字列比較演算子> ::= <大小比較演算子>
- | <辞書順比較演算子>
- | <基本つづり比較演算子>
- <等値比較演算子> ::= = | <> | >< | ≠
- <大小比較演算子> ::= <等値比較演算子> | < | > | <= | =< | ≦ | >= | => | ≧
- <辞書順比較演算子> ::= << | >> | <<= | =<< | ≦≦ | >>= | =>> | ≧≧
- <基本つづり比較演算子> ::= <=> | ≒
- <算術比較演算子> ::= <大小比較演算子>
- <日付比較演算子> ::= <大小比較演算子>
- <時刻比較演算子> ::= <大小比較演算子>
- <年月間隔比較演算子> ::= <大小比較演算子>
- <日時間隔比較演算子> ::= <大小比較演算子>
- <ポインタ比較演算子> ::= <大小比較演算子>
- <論理式> ::= <論理項>
- | <論理式> OR <論理項>
- <論理項> ::= <論理因子>
- | <論理項> AND <論理因子>
- <論理因子> ::= [ NOT ] <論理一次子>
- <論理一次子> ::= <単純式>
- | <比較式>
- | ( <式リスト> )
- <代入式> ::= <左辺> := <式>
- <左辺> ::= <変数参照>
- | <項目参照>
- | <オブジェクト参照>
- | <カーソル名>
- <項目参照> ::= <項目名>
- | [ <表修飾子> ] . <項目名>
- | <カーソル名> . <項目名>
- <表修飾子> ::= <表名>
- | " <表名> "
- | ' <表名> '
- <オブジェクト参照> ::= <オブジェクト名> (データオブジェクト/式オブジェクトのみ)
- | [ <表修飾子> ] . <オブジェクト名>
- | <カーソル名> . <オブジェクト名>
- <変数参照> ::= <変数名>
- | <システム変数名>
- <関数呼出し> ::= <関数名> [ ( [ <実引数> ] [ , [ <実引数> ] ]... ) ]
- <実引数> ::= <式>
- <表名> ::= (表ファイル名/拡張子の省略可)
- <項目名> ::= <通常識別子>
- | <区切り識別子>
- <オブジェクト名> ::= <通常識別子>
- | <区切り識別子>
- <変数名> ::= $ <通常識別子>
- <システム変数名> ::= $$ <通常識別子>
- <カーソル変数名> ::= @ <通常識別子>
- <カーソル名> ::= <カーソル変数名>
- | @@
- <関数名> ::= # <通常識別子>
- <ラベル名> ::= <通常識別子>
- <手続き名> ::= <通常識別子>
- <通常識別子> ::= (英字,仮名,漢字,下線で始まる英仮名漢字下線数字列)
- <区切り識別子> ::= [ (角括弧を除く文字列) ]
- | " (二重引用符および角括弧を除く文字列) "
- <文字列定数> ::= ' [ <文字> ]... '
- | ` [ <文字> ]... `
- <文字> ::= <漢字符号系文字>
- | <8単位符号系文字>
- | <エスケープ文字>
- <漢字符号系文字> ::= (JIS X 0208 区点 1-1 〜 94-94 の文字)
- <8単位符号系文字> ::= (JIS X 0201 位置 2/0〜7/14 および 10/0〜13/15 の文字)
- <エスケープ文字> ::= !n | !t | !' | !’ | !! | !` (ここでは半角/全角区別されます)
- <算術定数> ::= <十進数定数>
- | <十六進数定数>
- | <八進数定数>
- | <二進数定数>
- | <数値定数>
- | <ビット定数>
- <十進数定数> ::= <真数定数>
- | <概数定数>
- <真数定数> ::= <数字>...[ . [ <数字> ]...]
- | . <数字>...
- <概数定数> ::= <仮数部> E <指数部>
- <仮数部> ::= <真数定数>
- <指数部> ::= [ + | - ] <数字>...
- <数字> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
- <十六進数定数> ::= X ' <十六進数字>... '
- <十六進数字> ::= <数字> | A | B | C | D | E | F (小文字でもよい)
- <八進数定数> ::= O ' <八進数字>... '
- <八進数字> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7
- <二進数定数> ::= B ' <二進数字>... '
- <二進数字> ::= 0 | 1
- <数値定数> ::= NUM ' <数値文字列> '
- | 数値 ' <数値文字列> '
- <数値文字列> ::= (数値の入力を参照してください)
- <ビット定数> ::=
- BIT1 | BIT2 | BIT3 | BIT4 | BIT5 | BIT6 | BIT7 | BIT8
| BIT9 | BIT10 | BIT11 | BIT12 | BIT13 | BIT14 | BIT15 | BIT16 | BIT17 | BIT18 | BIT19 | BIT20 | BIT21
| BIT22 | BIT23 | BIT24 | BIT25 | BIT26 | BIT27 | BIT28 | BIT29 | BIT30 | BIT31 | BIT32
- <日付定数> ::= DATE ' <日付文字列> '
- | 日付 ' <日付文字列> '
- <日付文字列> ::= (日付の入力を参照してください)
- <時刻定数> ::= TIME' <時刻文字列> '
- | 時刻 ' <時刻文字列> '
- <時刻文字列> ::= (時刻の入力を参照してください)
- <年月間隔定数> ::= YMINTERVAL ' <年月間隔文字列> '
- | YMI ' <年月間隔文字列> '
- | 年月間隔 ' <年月間隔文字列> '
- <年月間隔文字列> ::= (年月間隔の入力を参照してください)
- <日時間隔定数> ::= DTINTERVAL' <日時間隔文字列> '
- | DTI' <日時間隔文字列> '
- | 日時間隔' <日時間隔文字列> '
- <日時間隔文字列> ::= (日時間隔の入力を参照してください)
- <キーワード定数> ::= KEYWORD ' <キーワード> '
- <キーワード> ::= <通常識別子>
- <ナル> ::= NULL
関連項目
- DPLの構文
- 構文の記述法