PIONEの式
提供: Eospedia
PIONEで使用する式のメソッド一覧を型ごとに示します。pione-valによる実行例を記載しています。PIONE定義書の条件などで使用するときは' '内のみを使用します。
真偽型(boolean)
$ pione-val 'true==true' true $ pione-val 'true!=true' false $ pione-val 'true and false' false $ pione-val 'true or false' true $ pione-val 'true.not()' false $ pione-val 'true.as_string()' true $ pione-val 'true.as_integer()' 1 $ pione-val 'true.as_float()' 1.0 $ pione-val 'true.as_boolean()' true
.as_string(), .as_integer(), .as_float()はそれぞれの型に変換するメソッドですが、以下のような簡易表記があります。以降は簡易表記で記述します。
$ pione-val 'true.str()' true $ pione-val 'true.i()' 1 $ pione-val 'true.f()' 1.0
文字列型(string)
$ pione-val '"abc"=="def"' false $ pione-val '"abc"!="def"' true $ pione-val '"abc"+"def"' abcdef $ pione-val '"abc".count()' 3 $ pione-val '"abc".include?("ab")' true $ pione-val '"abc".include?("ac")' false $ pione-val '"abcdefg".substring(2,3)' bcd $ pione-val '"abc".str()' abc $ pione-val '"12.3".i()' 12 $ pione-val '"12.3".f()' 12.3
整数型(integer)
$ pione-val '1==2' false $ pione-val '1!=2' true $ pione-val '1>2' false $ pione-val '1>=2' false $ pione-val '1<2' true $ pione-val '1<=2' true $ pione-val '1+2' 3 $ pione-val '1-2' -1 $ pione-val '1*2' 2 $ pione-val '11%2' 1 $ pione-val '1/2' 0 $ pione-val '1.next()' 2 $ pione-val '1.prev()' 0 $ pione-val '1.even?()' false $ pione-val '1.odd?()' true $ pione-val '123.str()' 123 $ pione-val '123.i()' 123 $ pione-val '123.f()' 123.0
浮動小数点型(float)
基本的には整数型と同じです。(但し、next(), prev(), even?(), odd?()は無い)
$ pione-val '1.0==1.00' true $ pione-val '10.0!=1.00' true $ pione-val '1.0>1.00' false $ pione-val '1.0>=1.00' true $ pione-val '1.00<10.0' true $ pione-val '1.00<=10.0' true $ pione-val '1.01+10.0' 11.01 $ pione-val '1.01-10.0' -8.99 $ pione-val '1.01*10.0' 10.1 $ pione-val '1.01/10.0' 0.101 $ pione-val '101.0%10.0' 1.0 $ pione-val '12.3.str()' 12.3 $ pione-val '12.3.i()' 12 $ pione-val '12.3.f()' 12.3
整数型の演算を浮動小数点型で出力したいときには予め.f()または.as_float()で型変換を行います。
$ pione-val '1.01/10' fatal: PIONE method "/" is not found: #<Type integer>. #<Type float> [/pione/lib/pione/command/basic-command.rb:48:in `abort'] (2014-12-08T11:51:11.481+09:00, #8995) $ pione-val '1.01/10.f()' 0.101
ルール表現型
pione-valには対応していないので、式の定義のみ示します。
データ表現型
pione-valには対応していないので、式の定義のみ示します。
シーケンス
$ pione-val '("a"|"b"|"c").length()' 3