TOP>>OBAQ>>OBAQシェル 概略ツアー<OBAQ>構成定義アプリケーションサーバリファレンスサイトマップ

OBAQフォーマット


Obaqフォーマットの行の種類
種類判別方法処理内容
オブジェクト生成行先頭文字が大文字指定したクラスのオブジェクトを生成するFolder xxxx
オプション設定行先頭文字が小文字直前のオブジェクトに対するオプション設定recuresive=true
メソッド行先頭文字が.(ピリオド)直前のオブジェクトに対するメソッド呼び出し.add_subfolder yyy
内部コマンド行先頭文字が%OBAQシェルに対する処理指示
コメント行先頭文字が#lコメント
Folder                                   # オブジェクト生成行
 title="Walrus sample(navigation_bar)"   # オプション設定
 target_dir=target                       # オプション設定
.def_acq header_title ' parent.title.to_s + "--" + title.to_s '
                                         # ↑メソッド呼びだし行

HtmlDocument index.html                  # オブジェクト生成行
 prettyprint                             # オプション設定
 role=index                              # オプション設定

HtmlDocument java.html                   # オブジェクト生成行
 title=javaについて

HtmlDocument perl.html                   # オブジェクト生成行
 title=perlの特徴

オブジェクト生成行

OBAQフォーマットでは、単にクラス名を書くとそのクラスのオブジェクトを生成します。 生成時に渡すパラメータは、クラス名の後に空白を置いて記述します。 生成時のパラメータの種類や指定方法は各クラスの仕様を参照してください。

オブジェクト生成行に--があると、その後はオプション設定行と見なします。

HtmlDocument java.html                   
 title=javaについて

上と下は同じ意味になります。

HtmlDocument java.html --  title=javaについて

クラス名の前にある空白の数(インデント)によってオジェクト間の親子関係が決定します。

Folder aaa
  HtmlDocument xxx.html

  Folder bbb
    HtmlDocument yyy.html
    HtmlDocument zzz.html        

この例では、xxx.htmlはaaaの子供、 yyy.htmlとzzz.htmlはbbbの子供になります。

オプション設定行

オプション設定行は、○○=××という形式で記述して○○というオプションに××という値を設定します。

○○としてどのようなオプションが許されるのかは、各クラスの仕様を参照してください。

=の前後にはスペースがあってもいいしなくてもかまいません。××は"や'で挟むことも可能です。

イコールと値が省略されていた場合は,○○ == trueが省略さてているものと します。

メソッド呼び出し行

メソッド呼び出し行には、メソッド名と(必要ならば)引数を記述します。 OBAQシェルから呼び出すメソッドは、全ての引数を文字列として受けつけるようにします。

ヒアドキュメント

OBAQシェルは、bashやRubyと同様のヒアドキュメントを理解します。 オプションに複数行にわたる内容を設定する時に使用します。

HtmlDocument
  title = Rubyについて
  .description = <<END
このドキュメントにはRubyについての説明が記述してあります。
Ruby言語についてよく知っている人は飛ばしてください。
END
ヒアドキュメントの記述方法
開始マーク終了マーク備考
>>END行の先頭のENDENDの所には任意の文字列を指定可能
>>-ENDENDだけの行-があると終了マークをインデントできる
>**だけの行*のかわりに任意の文字を指定可能
{}だけの行[] <> ()も同様
{{}}だけの行[[]] <<>> (())も同様

メソッド定義

.def メソッド名 メソッド本体という形式でオブジェクトにメソッドを定義できます。 メソッド本体にはヒアドキュメント形式を使用することができます。

SomeObject xxxx
.def method1 "puts hello"
.def method2 {
  puts "hello"
}
.def method3 <*
  puts "hello"
*

同様に、 .def_acq メソッド名 メソッド本体でACQメソッドを定義できます。 ACQメソッドについては「環境獲得」を参照してください。


ページトップへ