bpriver_chain 0.16.0 copy "bpriver_chain: ^0.16.0" to clipboard
bpriver_chain: ^0.16.0 copied to clipboard

Implementation of chain language. Available as cui, argument parser or inter-appliation communication.

Chain Language

Chain is serial data description language.

Use #

  • cui
  • argument parser
  • inter-application communication
  • serialize for non nest data

データ型 #

Boolean(二値型) #

true or false の 二値 を扱う型.

Variety(多値型) #

true or false を含む 1つの 多値 を扱う型.

VarietyEnumeration(多値列挙型) #

複数の 多値型 を扱う型.

構文 #

Example - xxx ---a A AA AAA --b B -c true #

xxx, ---a 'A' 'AA' 'AAA', --b 'B', -c true はそれぞれ Chain Element という.
chain 文の開始にある hyphen で始まらない Chain Element は Head といい ここでは xxx である.
---a 'A' 'AA' 'AAA', --b 'B', -c true はそれぞれ Body という.
---a 'A' 'AA' 'AAA' という 3つの hyphen で始まる Body を VarietyEnumeration という.
--b 'B' という 2つの hyphen で始まる Body を Variety という.
-c true という 1つの hyphen で始まる Body を Flag という.

---aa, --bb, -cc, はそれぞれ名前を表す.
Head は必ず名前のみを持ち, 値を持たない.
Body は必ず名前を持ち, そのすぐ後ろに値を記述し 紐づけることができる.
Flag は 二値型 を, Variety は 多値型を, VarietyEnumeration は多値列挙型を, それぞれ紐づけることができる.

xxx, a, b, c, のように 1つの chain 文に存在する Chain Element の名前はすべて一意でなければならない.

区切り文字(Delimiter)は 1つ以上の連続する space である.
そのほかの white space である 改行 や tab は区切り文字として無効である.

Example - ---a A AA AAA #

Head は省略可能である.

Example - ---a A 'A A' '' "" --b "A B C" #

多値型を記述する際 space が値の中に含まれる場合 single quotation もしくは double quotation で囲むことができる.
また何も囲まないことで空文字の表現ができる.
a は A, A A, 空文字, 空文字, の計4つの値が紐づけられている.

Example - ---a 'A\'A' "B\"B" #

, でエスケープが可能.
A'A, B"B, の値が紐づけられた a という名前の VarietyEnumeration.

Example - ---a 'A"A' "A'A" #

異なる quotation にすれば エスケープ処理も不要.
A"A, A'A, の値が紐づけられた a という名前の VarietyEnumeration.

Example - '' ---a A AA AAA #

この chain 文は無効.
空文字を Head にすることはできない.

Example - --b B -c true ---a A AA AAA -d false ---e E --f F #

VarietyEnumeration, Variety, Flag, の配置順序に決まりはない.
また Head とは異なり それぞれ定義できる個数に制限はない.
ここでは下記の Chain Element が存在する.
A, AA, AAA, の値が紐づけられた a という名前の VarietyEnumeration.
B, の値が紐づけられた b という名前の Variety.
true, の値が紐づけられた c という名前の Flag.
false, の値が紐づけられた d という名前の Flag.
E, の値が紐づけられた e という名前の VarietyEnumeration.
F, の値が紐づけられた f という名前の Variety.

Example - ---a --b -c #

VarietyEnumeration, Variety, Flag, は同様に紐づける値を省略することができる.
VarietyEnumeration の場合 空のリスト が紐づけられたものとして扱われる.
Variety, Flag, においては何も値が紐づけられていないものとして扱われる.

Example - ---a \-A --b \-\-\-\-AAAA #

hyphen で開始する値を紐づけたい場合 \ で - をエスケープすることで値として扱われる.
-A, の値が紐づけられた a という名前の VarietyEnumeration.
----AAAA, の値が紐づけられた b という名前の Variety.

Example - ---a A AA #

区切り文字の space は複数連続しても有効.
A, AA, の値が紐づけられた a という名前の VarietyEnumeration.

0
likes
145
points
598
downloads

Documentation

API reference

Publisher

verified publisherbpriver.com

Weekly Downloads

Implementation of chain language. Available as cui, argument parser or inter-appliation communication.

Repository (GitLab)
View/report issues

License

BSD-2-Clause (license)

Dependencies

bpriver_box, bpriver_heat, bpriver_origin, bpriver_syntax_scanner

More

Packages that depend on bpriver_chain