Skip to content

Latest commit

 

History

History

cop-range

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

項目演算子 range

この文書では、範囲判定を行う演算子を考えます。 SQL の範囲判定は X between L and H という構文をもっています。 ここでは、もう少し一般化された構文を考案しましょう。 演算子の名前は range とします。

使用例

0 以上、100 以下。

range /x : 0 and 100

大小符号を明示的に指定できます。

range /x : >= 0 and <= 100

0 以上、100 未満。

range /x : >= 0 and < 100

0 以上、100 未満だけど、50 ではない。

range /x : >= 0 and < 100 and <> 50

0 以上、10 以下、または、20 以上、30 以下。

range /x : >= 0 and <= 10 : >= 20 and <= 30

0 か 1 か 2。

range /x : = 0 : = 1 : = 2

0 か 1 か 2。

range /x : 0 : 1 : 2

構文規則

  1. range の引数を : で分割します。

  2. 先頭要素以外を論理和で結び、先頭要素を判定します。

  3. 論理和の各式を and で分割します。

  4. and の引数となる各式を、つぎのいずれかに分類します。 X、= X、<> X、< X、<= X、> X、>= X

  5. 等号、不等号のない X の形式であるときは、 and の左辺なら >= を補い、右辺なら <= を補い、 それ以外なら = を補います。