PIONEの式

提供: Eospedia
2014年12月11日 (木) 00:38時点におけるKinoshita (トーク | 投稿記録)による版

移動: 案内検索

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