mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-16 22:02:58 -06:00
234 lines
No EOL
10 KiB
C++
234 lines
No EOL
10 KiB
C++
topic "Switch";
|
||
[2 $$0,0#00000000000000000000000000000000:Default]
|
||
[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class]
|
||
[l288;2 $$2,0#27521748481378242620020725143825:desc]
|
||
[0 $$3,0#96390100711032703541132217272105:end]
|
||
[H6;0 $$4,0#05600065144404261032431302351956:begin]
|
||
[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item]
|
||
[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement]
|
||
[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param]
|
||
[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam]
|
||
[b42;2 $$9,9#13035079074754324216151401829390:normal]
|
||
[{_}%EN-US
|
||
[ {{10000@3 [s0; [*@(229)4 Switch]]}}&]
|
||
[s3;%- &]
|
||
[s1;:Switch`:`:class:%- [@(0.0.255)3 class][3 _][*3 Switch][3 _:_][@(0.0.255)3 public][3 _][*@3;3 Ct
|
||
rl]&]
|
||
[s0; Switch provides selection of mutually exclusive options (cases).&]
|
||
[s0; &]
|
||
[s2;
|
||
@@image:1287&131
|
||
cホ斧<EFBFBD><EFBFBD><EFBFBD>懦力<EFBFBD>チニ佝<EFBFBD><EFBFBD><EFBFBD>茗箸、<EFBFBD>シэマケヲ<EFBFBD>ヤシ<EFBFBD><EFBFBD>椄、ミタケ靄隹<EFBFBD>ミタツ<EFBFBD>糟箍櫛ツテ囑・エ
|
||
キチ蕉リチ亥シ唾シ<EFBFBD><EFBFBD>ヌルル撈酩」ヲ艷<EFBFBD>豼<EFBFBD><EFBFBD>釮マフサッメョゥメメメメメ<EFBFBD>メメメメモ・ヤ<EFBFBD><EFBFBD>洄ロナナ<EFBFBD>タワワ屶・璢ニニ゙コ<EFBFBD><EFBFBD>
|
||
ヲヲ奕イゥネ戦鈐シ樅シ<EFBFBD>フ・<EFBFBD>ラキ゚鴟ナ<EFBFBD>ヌキ冥ーオ<EFBFBD>ハ逃奕イゥフケイ<EFBFBD>セネセ<EFBFBD>」ワャョラォユレュヨ<EFBFBD>ラ寫ニ。<EFBFBD>并ア<EFBFBD>ュヒ
|
||
募篁ウ肓懣<EFBFBD>オアノ*イ蟠粫<EFBFBD>鄒頌スヒサы聚<EFBFBD>リ字・酖蝪ロフセリセスカ嶇ヨォリ<EFBFBD>ラツムフ譚噬酎ハミメ沍瘁リ゚<EFBFBD>
|
||
象悶皃マ來ナ<EFBFBD><EFBFBD>ッ<EFBFBD>ィ顗<EFBFBD>ホ莅褪<EFBFBD><EFBFBD>「ユ菴<EFBFBD>ン楫⊥杦ム<EFBFBD>セオ<EFBFBD>蕫酔ホ砕Κ<EFBFBD>屡ト赶怙ク鯉エィク<EFBFBD>刻<EFBFBD>
|
||
。リミ鰯埓。紗ワユン幻サ<EFBFBD>椄<EFBFBD>、「<EFBFBD>ム<EFBFBD><EFBFBD><EFBFBD>ュ榻ァ突ンャッチ<EFBFBD><EFBFBD>嵯ツ釥ヘッ<EFBFBD>テ<EFBFBD>チ<EFBFBD>ー蟆聖ソヘ渚<EFBFBD>ワ<EFBFBD><EFBFBD>ハ⊥ナ
|
||
ク蜈テqゥ、<EFBFBD>襁樛朋ニテ「ク迢ル<EFBFBD>讙ヘヨ<EFBFBD>ュヘレ槃耶ナ﨧葩ャ末癒カ♂ヲ髯アエ隴ミ<EFBFBD>勢髙牴ぺア整魑<EFBFBD>ヒ鴪<EFBFBD>
|
||
ノユ楠≦メルイコ込エモ<EFBFBD>ノ<EFBFBD><EFBFBD>靱タャル<EFBFBD>ェ「隱カラ<EFBFBD>スウ溽帆者<EFBFBD>ホマ<EFBFBD><EFBFBD><EFBFBD>菠匈リエ<EFBFBD>閥タア茶ミ厠」トケ蕀ト恃粒フ
|
||
ヌ阿イ<EFBFBD><EFBFBD>忠マ<EFBFBD><EFBFBD>楴笊エェ狆シスト<EFBFBD>ト裵屎゙<EFBFBD>氓ウ゚<EFBFBD>餧<EFBFBD>援゚アク嵯蠻閠<EFBFBD>ク哿ュ墳<EFBFBD>ヌ<EFBFBD>ゥワ髴ヤ<EFBFBD>渙ン酘鰄
|
||
宅<EFBFBD>擲レリ呆セキ沂<EFBFBD>ぜ宦ウメ<EFBFBD>競鉗<EFBFBD>ケゥ・琲η杏タ尊碯ェ趨モ<EFBFBD>モクィィセテアェヌ<EFBFBD>麿岔竿゚髙待<EFBFBD>靱<EFBFBD>ゥ
|
||
ケ釛ル夏罅<EFBFBD>ネヒネメ」浙ぬ・タャケノ矜*乖オロャ<EFBFBD>霏糂モ郤テコ呪据鑅ノナ竍槃雀アレ菩<EFBFBD>「ク聆ナョ<EFBFBD>ハイ<EFBFBD>ク
|
||
ウタ空寺イ堰応<EFBFBD>ヲ<EFBFBD>ョ器肭俗玩<EFBFBD>「ク瞳タサ昌髷賻ホ愼ア戟モ<EFBFBD><EFBFBD>ホマヘナ<EFBFBD>トこ<EFBFBD>ハハハハ猝ハハハハ<EFBFBD>潟ヲ<EFBFBD>ス
|
||
|
||
&]
|
||
[s2;
|
||
@@image:406&312
|
||
γイπ<EFBFBD><EFBFBD>懦ルマヒ崔ョ佻<EFBFBD>翆<EFBFBD>ワェ橳昼<EFBFBD>専薯オ茯宙ス<EFBFBD>ィミシ<EFBFBD>レメツロィ「鱗ヒ<EFBFBD>「態゚萋瑙ルナヤフヨ
|
||
<EFBFBD>浯ンャヒィ檮<EFBFBD>ュ小ン纐<EFBFBD>アホ讒ルキ<EFBFBD><EFBFBD>嶇'<EFBFBD>キ゚<EFBFBD>シ曙<EFBFBD>掠舌<EFBFBD>萩滓譫障庄訣ス尨ョリ悄゚ャ偏<EFBFBD>酣唱・<EFBFBD>
|
||
<EFBFBD>リ箘ラィ<EFBFBD>ォァァ逾メ<EFBFBD>レレ嶝ム<EFBFBD>オ勉濯」菫<EFBFBD>スワュ<EFBFBD>ョユ<EFBFBD>瓦エ嚶ユホユ嶇ヲ、ン癲<EFBFBD>ェ所ト「<EFBFBD><EFBFBD>遐<EFBFBD>石<EFBFBD>崛レ暝<EFBFBD>
|
||
檐圜鮗<EFBFBD><EFBFBD><EFBFBD>マ庶ホシ<EFBFBD>凋エ」斧<EFBFBD>ヌ<EFBFBD>ク<EFBFBD>ン<EFBFBD>リ揉皰ッソハヘァ゚トルれェ煉<EFBFBD>キ<EFBFBD>ワ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>セェ宝ノノ跨ラsケヒ謝<EFBFBD>
|
||
ワ<EFBFBD>・癩逝<EFBFBD>コチ<EFBFBD>レ<EFBFBD><EFBFBD>晟<EFBFBD>渤。ヒキ爛」ゥハ迦ゥキ<EFBFBD>テ<EFBFBD>ミソヘム<EFBFBD>懴<EFBFBD>屹<EFBFBD>サンセコ咊エ均ホ<EFBFBD>鉢ヌ科・カムソュム<EFBFBD>シ<EFBFBD><EFBFBD>ホ
|
||
<EFBFBD>ウア<EFBFBD>遁槙亭帷ァ・メ<EFBFBD>泝<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ォ<EFBFBD>戛<EFBFBD><EFBFBD><EFBFBD><EFBFBD>叝、<EFBFBD>ラ届セト<EFBFBD>ヌ<EFBFBD>ェト<EFBFBD>チ<EFBFBD>コ<EFBFBD><EFBFBD>ュ銓ッスキコ裾鏡褌コ
|
||
オ贔ホ役<EFBFBD>ユ<EFBFBD>ヌ<EFBFBD>ト<EFBFBD>チ<EFBFBD>カ「<EFBFBD>汰袷ッォ<EFBFBD>リぱッ<EFBFBD>蕚ョ叝゙<EFBFBD>巫<EFBFBD>ナ箭癆活ト<EFBFBD>ット<EFBFBD>ソラソ煕<EFBFBD>犱ロ陵ッ熏スレ麺エ<EFBFBD>。
|
||
ヤ検セ凋<EFBFBD>。ャ<EFBFBD>傚ク得夷ァ<EFBFBD>サ僚割ソ崇鍾岡ホソ<EFBFBD>﨨゙ム<EFBFBD>ロセ﨟<EFBFBD>トーフ<EFBFBD>萓゙燧芹<EFBFBD>マ釚椏磊<EFBFBD>ヤ堡<EFBFBD><EFBFBD>ウ゚<EFBFBD>
|
||
タ<EFBFBD><EFBFBD>ユ儒シ倶<EFBFBD>ョ罌ウノ┃<EFBFBD>鱗チー<EFBFBD><EFBFBD>ッ<EFBFBD><EFBFBD>ャ<EFBFBD>ノ<EFBFBD>珎樰イ<EFBFBD>ゃ鋠鯒<EFBFBD>トコ<EFBFBD>ラツ<EFBFBD>カ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>め「<EFBFBD><EFBFBD>ッ廻ェ
|
||
憔<EFBFBD>矣<EFBFBD>メフ・ォ<EFBFBD><EFBFBD>。<EFBFBD>トイル<EFBFBD>ゃ斎圜憚キミ<EFBFBD>訂<EFBFBD><EFBFBD>梵マ<EFBFBD>ネ賦<EFBFBD>レ。<EFBFBD>蕈咢メ猟エ卆<EFBFBD>恢<EFBFBD>。フ浄壁タシソ澄歌
|
||
襠灸ャ患タ<EFBFBD>スヲ」フ<EFBFBD>ま<EFBFBD>釤フ聟<EFBFBD><EFBFBD>艱<EFBFBD>ッ<EFBFBD>鉛莚ー峵ッ<EFBFBD>た完<EFBFBD>錦ヲ痛萠領<EFBFBD>ネ睫瞼<EFBFBD>螳卍弍<EFBFBD><EFBFBD>゙タ
|
||
ア<EFBFBD><EFBFBD>諱<EFBFBD>
|
||
&]
|
||
[s9; Options can be visually aligned horizontally or vertically `-
|
||
U`+`+ choses alignment based on size of options and Ctrl rectangle.
|
||
Each option represents a case with associated text and value.
|
||
Switch can be assigned any Value (not only Values associated
|
||
with current cases); if there is no case with Value equal to
|
||
the Value of Switch, no case is highlighted.&]
|
||
[s0;* &]
|
||
[s0;%- [%%/ Derived from][%% ][^topic`:`/`/CtrlCore`/src`/Ctrl`$en`-us^ Ctrl]&]
|
||
[s3; &]
|
||
[s0; &]
|
||
[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&]
|
||
[s3;%- &]
|
||
[s5;:Switch`:`:Switch`(`):%- [* Switch]()&]
|
||
[s2; Initializes the switch.&]
|
||
[s3; &]
|
||
[s4;%- &]
|
||
[s5;:Switch`:`:`~Switch`(`):%- [@(0.0.255) `~][* Switch]()&]
|
||
[s2; Default destructor.&]
|
||
[s3; &]
|
||
[s0;%- &]
|
||
[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&]
|
||
[s3;%- &]
|
||
[s5;:Switch`:`:SetLabel`(int`,const char`*`):%- [_^Switch^ Switch][@(0.0.255) `&]_[* SetLab
|
||
el]([@(0.0.255) int]_[*@3 i], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&]
|
||
[s2; Sets text of case with specified index [*@3 i]. Text can contain
|
||
`'`\b`' for access`-key assignment. Value of case is set to [*@3 i].
|
||
If [*@3 i] is greater than current number of cases, empty cases
|
||
are added to Switch with values equivalent to their indexes.&]
|
||
[s7; [%-*C@3 i]-|Index of the case.&]
|
||
[s7; [%-*C@3 text]-|Text of the case.&]
|
||
[s7; [*/ Return value]-|`*this for chaining.&]
|
||
[s3; &]
|
||
[s4;%- &]
|
||
[s5;:Switch`:`:SetLabel`(const char`*`):%- [_^Switch^ Switch][@(0.0.255) `&]_[* SetLabel]([@(0.0.255) c
|
||
onst]_[@(0.0.255) char]_`*[*@3 text])&]
|
||
[s2; Sets content of Switch. Each line of [*@3 text ]represents one
|
||
case with value equivalent to the index of line.&]
|
||
[s7; [%-*C@3 text]-|Content of the Switch.&]
|
||
[s7; [*/ Return value]-|`*this for chaining.&]
|
||
[s3; &]
|
||
[s4;%- &]
|
||
[s5;:Switch`:`:GetLabel`(int`)const:%- [_^String^ String]_[* GetLabel]([@(0.0.255) int]_[*@3 i
|
||
])_[@(0.0.255) const]&]
|
||
[s2; Returns the text of case with specified index [*@3 i].&]
|
||
[s3; &]
|
||
[s4;%- &]
|
||
[s5;:Switch`:`:GetLabel`(`)const:%- [_^String^ String]_[* GetLabel]()_[@(0.0.255) const]&]
|
||
[s2; Returns the context of the Switch.&]
|
||
[s3;%- &]
|
||
[s4;%- &]
|
||
[s5;:Switch`:`:Set`(int`,const Value`&`,const char`*`):%- [_^Switch^ Switch][@(0.0.255) `&
|
||
]_[* Set]([@(0.0.255) int]_[*@3 i], [@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 val
|
||
], [@(0.0.255) const]_[@(0.0.255) char]_`*[*@3 text])&]
|
||
[s2; Sets text of case with specified index [*@3 i]. Text can contain
|
||
`'`\b`' for access`-key assignment. Value of case is set to [*@3 val].
|
||
If [*@3 i] is greater than current number of cases, empty cases
|
||
are added to Switch with values equivalent to their indexes.&]
|
||
[s7; [%-*C@3 i]-|Index of the case.&]
|
||
[s7; [%-*C@3 val]-|Value of the case.&]
|
||
[s7; [%-*C@3 text]-|Text of the case.&]
|
||
[s7; [*/ Return value]-|`*this for chaining.&]
|
||
[s3; &]
|
||
[s4;%- &]
|
||
[s5;:Switch`:`:Set`(int`,const Value`&`):%- [_^Switch^ Switch][@(0.0.255) `&]_[* Set]([@(0.0.255) i
|
||
nt]_[*@3 i], [@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 val])&]
|
||
[s2; Sets the Value of of case with specified index [*@3 i]. The text
|
||
of case is unaltered.&]
|
||
[s7; [%-*C@3 i]-|Index of the case.&]
|
||
[s7; [%-*C@3 val]-|Value of the case.&]
|
||
[s7; [*/ Return value]-|`*this for chaining.&]
|
||
[s3; &]
|
||
[s4;%- &]
|
||
[s5;:Switch`:`:Add`(const Value`&`,const char`*`):%- [_^Switch^ Switch][@(0.0.255) `&]_[* A
|
||
dd]([@(0.0.255) const]_[_^Value^ Value][@(0.0.255) `&]_[*@3 val], [@(0.0.255) const]_[@(0.0.255) c
|
||
har]_`*[*@3 text])&]
|
||
[s2; Adds a new case to the Switch.&]
|
||
[s7; [%-*C@3 val]-|Value of the case.&]
|
||
[s7; [%-*C@3 text]-|Text of the case.&]
|
||
[s7; [*/ Return value]-|`*this for chaining.&]
|
||
[s3; &]
|
||
[s4;%- &]
|
||
[s5;:Switch`:`:Add`(const char`*`):%- [_^Switch^ Switch][@(0.0.255) `&]_[* Add]([@(0.0.255) c
|
||
onst]_[@(0.0.255) char]_`*[*@3 text])&]
|
||
[s2; Adds a new case to the Switch. Value of the case is equal to
|
||
its index.&]
|
||
[s7; [%-*C@3 text]-|Text of the case.&]
|
||
[s7; [*/ Return value]-|`*this for chaining&]
|
||
[s3; &]
|
||
[s4;%- &]
|
||
[s5;:Switch`:`:EnableCase`(int`,bool`):%- [@(0.0.255) void]_[* EnableCase]([@(0.0.255) int]_
|
||
[*@3 i], [@(0.0.255) bool]_[*@3 enable]_`=_[@(0.0.255) true])&]
|
||
[s2; Enables or disables case with the specified index [*@3 i].&]
|
||
[s7; [%-*C@3 i]-|Index of the case to be enabled or disabled.&]
|
||
[s7; [%-*C@3 enable]-|Enable flag (true if case is to be enabled).&]
|
||
[s3; &]
|
||
[s4;%- &]
|
||
[s5;:Switch`:`:DisableCase`(int`):%- [@(0.0.255) void]_[* DisableCase]([@(0.0.255) int]_[*@3 i
|
||
])&]
|
||
[s2; Same as [^topic`:`/`/CtrlLib`/src`/Switch`$en`-us`#Switch`:`:EnableCase`(int`,bool`)^ E
|
||
nableCase](i, false).&]
|
||
[s3; &]
|
||
[s4;%- &]
|
||
[s5;:Switch`:`:EnableValue`(const Value`&`,bool`):%- [@(0.0.255) void]_[* EnableValue]([@(0.0.255) c
|
||
onst]_[_^Value^ Value][@(0.0.255) `&]_[*@3 val], [@(0.0.255) bool]_[*@3 enable]_`=_[@(0.0.255) t
|
||
rue])&]
|
||
[s2; Enables or disables case based on its value.&]
|
||
[s7; [%-*C@3 val]-|Value of the case to be enabled / disabled.&]
|
||
[s7; [%-*C@3 enable]-|Enable flag (true if case is to be enabled).&]
|
||
[s3; &]
|
||
[s4;%- &]
|
||
[s5;:Switch`:`:DisableValue`(const Value`&`):%- [@(0.0.255) void]_[* DisableValue]([@(0.0.255) c
|
||
onst]_[_^Value^ Value][@(0.0.255) `&]_[*@3 val])&]
|
||
[s2; Same as [^topic`:`/`/CtrlLib`/src`/Switch`$en`-us`#Switch`:`:EnableValue`(const Value`&`,bool`)^ E
|
||
nableValue](val, false).&]
|
||
[s3; &]
|
||
[s4;%- &]
|
||
[s5;:Switch`:`:Reset`(`):%- [@(0.0.255) void]_[* Reset]()&]
|
||
[s2; Removes content of the Switch.&]
|
||
[s3; &]
|
||
[s4;%- &]
|
||
[s5;:Switch`:`:GetCases`(`)const:%- [@(0.0.255) const]_[_^Array^ Array][@(0.0.255) <][_^Switch`:`:Case^ C
|
||
ase][@(0.0.255) >`&]_[* GetCases]()_[@(0.0.255) const]&]
|
||
[s2;%- Retrieves information of all cases in the Switch.&]
|
||
[s7; [*/ Return value]-|Array of [^topic`:`/`/CtrlLib`/src`/Switch`$en`-us`#Switch`:`:Case`:`:struct^ S
|
||
witch`::Case] structures.&]
|
||
[s3; &]
|
||
[s4;%- &]
|
||
[s5;:Switch`:`:operator int`(`)const:%- [* operator_int]()_[@(0.0.255) const]&]
|
||
[s2; Simplified access to Switch Value. Equivalent to (int)GetData().&]
|
||
[s6; Switch must be assigned an integer value.&]
|
||
[s7; [*/ Return value]-|Integer Value of Switch.&]
|
||
[s3; &]
|
||
[s4;%- &]
|
||
[s5;:Switch`:`:operator`=`(const Value`&`):%- [@(0.0.255) void]_[* operator`=]([@(0.0.255) c
|
||
onst]_[_^Value^ Value][@(0.0.255) `&]_[*@3 v])&]
|
||
[s2; Equivalent to SetData([%-*@3 v]).&]
|
||
[s3; &]
|
||
[s4;%- &]
|
||
[s5;:Switch`:`:SetFont`(Font`):%- [_^Switch^ Switch][@(0.0.255) `&]_[* SetFont]([_^Font^ Font
|
||
]_[*@3 f])&]
|
||
[s2; Alters the font to be used in the Switch.&]
|
||
[s7; [%-*C@3 f]-|Font to be used.&]
|
||
[s7; [*/ Return value]-|`*this for chaining.&]
|
||
[s3; &]
|
||
[s4;%- &]
|
||
[s5;:Switch`:`:GetFont`(`)const:%- [_^Font^ Font]_[* GetFont]()_[@(0.0.255) const]&]
|
||
[s2; Retrieves the font used in the Switch.&]
|
||
[s7; [*/ Return value]-|`*this for chaining.&]
|
||
[s3; &]
|
||
[s4;%- &]
|
||
[s5;:Switch`:`:MinCaseHeight`(int`):%- [_^Switch^ Switch][@(0.0.255) `&]_[* MinCaseHeight](
|
||
[@(0.0.255) int]_[*@3 cy])&]
|
||
[s2; Sets the minimal height of a case in the switch.&]
|
||
[s7; [%-*C@3 f]-|Font to be used.&]
|
||
[s7; [*/ Return value]-|`*this for chaining.&]
|
||
[s3; &]
|
||
[s0; &]
|
||
[s0; &]
|
||
[s0;%- &]
|
||
[ {{10000@3 [s0; [*@(229)4 Switch`::Case]]}}&]
|
||
[s3; &]
|
||
[s1;:Switch`:`:Case`:`:struct:%- [@(0.0.255)3 struct][3 _][*3 Case][3 _:_][@(0.0.255)3 public][3 _
|
||
][*@3;3 Moveable][@(0.0.255)3 <][*3 Case][@(0.0.255)3 >][3 _]&]
|
||
[s9; This structure is returned by the [^topic`:`/`/CtrlLib`/src`/Switch`$en`-us`#Switch`:`:GetCases`(`)const^ S
|
||
witch`::GetCases] method.&]
|
||
[s3; &]
|
||
[s0;%- &]
|
||
[ {{10000F(128)G(128)@1 [s0; [* Public Field List]]}}&]
|
||
[s3;%- &]
|
||
[s5;:Switch`:`:Case`:`:label:%- [_^String^ String]_[* label]&]
|
||
[s2; Text of the case.&]
|
||
[s3; &]
|
||
[s4;%- &]
|
||
[s5;:Switch`:`:Case`:`:value:%- [_^Value^ Value]_[* value]&]
|
||
[s2; Value of the case.&]
|
||
[s3; &]
|
||
[s4;%- &]
|
||
[s5;:Switch`:`:Case`:`:accesskey:%- [@(0.0.255) int]_[* accesskey]&]
|
||
[s2; Access key.&]
|
||
[s5; &]
|
||
[s4;%- &]
|
||
[s5;:Switch`:`:Case`:`:enabled:%- [@(0.0.255) bool]_[* enabled]&]
|
||
[s2; Enable flag.&]
|
||
[s3; &]
|
||
[s0; ] |