イントロダクション

せりか式 - Satsuki system - イントロダクション

このページはサンプルプログラム Introductionを実行した結果を一部修正したものです.

Introduction

Satuki sysytemを使う上での基本的な構文等です

タグ

<@...> あるいは <$...> がSatsuki systemのタグとして認識されます.

@$の違い

ともにSatsuki systemが評価することに代わりはありませんが,@は評価した結果が出力され,$は評価した結果が出力されません. 単にメソッドを呼びたいだけ,変数に値を代入するときなどは$を使うようにします.
ソース
変数xに値を代入 [<@x=100>]<br> <@> 代入した結果を出力する
変数yに値を代入 [<$y=200>]<br> <@> 代入した結果を出力しない
x = <@x><br>
y = <@y><br>
<@ifexec(1, begin)>
    ここは表示される
<$end>
<$ifexec(1, begin)>
    ここは表示されない
<$end>
実行結果
変数xに値を代入 [100]
変数yに値を代入 []
x = 100
y = 200
ここは表示される

コメント

<@>以降はコメント扱いになります.
ソース
↓<br>
<@> この部分はコメントになる<br>
↑<br>
行の途中であっても <@> この部分はコメントになります<br>
実行例


行の途中であっても

基本構文

変数への値の代入

変数に値を入れます.値の代入は = で行います.

ソース
<$x = 100><$y = 200>
x = <@x>, y = <@y>
実行例
x = 100, y = 200

配列

配列を作成するときに利用します.値は#を利用することで取り出すことができます.

ソース
<$a = array(100, 200)>
<@a#0>, <@a#1>
実行例
100, 200

連想配列(ハッシュ)

連想配列(ハッシュ)を作成するときに利用します.値は.を利用することで取り出すことができます.

ソース
<$h = begin_hash>
    x = 100
    y = 200
<$end>
<@h.x>, <@h.y>
実行例
100, 200

分岐

if

処理を分岐させるときに利用します.

ソース
absolute(<@x=-10>) = <@if(x<0, -1*x, x)><br>

<@if(Now.mon == 1 && Now.day == 1, "あけましておめでとう<br>")>
<@if(Now.hour < 12, "AM", "PM")> <@Now.hour>:<@Now.min><br>
実行例
absolute(-10) = 10
PM 20:24

ifexec

処理を分岐させるときに利用します.ifとは違いブロックを実行します.
ifでできることはifexecでもすることもできます.

ブロックはbegin, endで指定します.この2つは必ず1対1で対応します. ネストが複雑になった場合などは,.を利用しブロックに名前を付けることもできます. ただし,この名前はソースを分かりやすくするために付けるものなので,指定した名前のブロックを抜けるといった使い方はできません. ですが,1対1の対応関係が間違えている場合にはエラーが出るため,不安な場所には付ける方がいいかもしれません.

ソース
absolute(<@x=-10>) = <@ifexec(x < 0, begin, begin)><@-1*x><$end><@x><$end><br>

<@ifexec(Now.mon == 1 && Now.day == 1, begin)>
    あけましておめでとう<br>
<$end>
<br>
<@ifexec(Now.hour < 12, begin, begin)>
    AM
<$end>
    PM
<$end>
<@Now.hour>:<@Now.min><br>

Good
<@ifexec(Now.hour < 12, begin.am, begin.pm)> <@> ブロックにそれぞれAM, PMの名前を付けておく.
    morning
<$end.am>
    <@ifexec(Now.hour < 18, begin, begin)> <@> ネストすることもできます.
        afternoon
    <$end>
        evening
    <$end>
<$end.pm>.
実行例
absolute(-10) = 10
PM 20:24
Good evening .

繰り返し

forexec

配列の処理など,繰り返しを行いたいときに利用します.

ソース
<$x = array('a', 'b', 'c')>
<@forexec(t, x, begin)>
    <@t><br>
<$end>
<$undef(t)>
実行例
a
b
c

forexec_num

指定した回数だけ繰り返しを行いたいときに利用します.

ソース
<@forexec_num(t, 3, begin)>
    <@t><br>
<$end>
<$undef(t)>
実行例
1
2
3

forexec_hash

連想配列を処理する点を除き,forexecと同じです.

ソース
<@forexec_hash(t, Now, begin)>
    <@t.key> = <@t.val><br>
<$end>
<$undef(t)>
実行例
wday = 5
_day = 20
hour = 20
min = 24
isdst = 0
tm = 1213961069
sec = 29
day = 20
mon = 06
yday = 171
_mon = 6
year = 2008

メソッドの呼び出し

システムのメソッド

システムの持つメソッドを呼び出す場合はそのまま呼び出します.

ソース
<@undef(t)> <@> undefというメソッドを引数tを渡して呼び出している.
実行例

自作モジュールのメソッド

システムの持つメソッドを呼び出す場合は変数vを通して呼び出します.
vは自作モジュールを指す変数です.これはconfファイルにおいてメインクラスをロードした時点で作成されます.

ソース
<@v.add(10, 20)><br>
<@v.greeting()><br>
<@v.version()>
実行例
30
Good evening
Sample Application (intro) ver. 1.00

組み込み変数

システム変数など,定義しなくても利用できる変数です.

変数vはロードされているメインオブジェクトを指す変数です.

  Value Source
メインオブジェクトSatsuki::intro=HASH(0x8249934) <@v>
Satsuki systemのversion 1.22 <@VERSION>
サーバのURL http://127.0.0.1 <@Server_url>
cgi本体 /intro.cgi <@Myself>
現在時刻 2008/06/20 20:24:29 <@Timestamp>
06 <@Now.mon>
20 <@Now.day>
20 <@Now.hour>
24 <@Now.min>

copyright

Copyright(C) 2008 せりか / せりか式

トップへ