Catyの変更や拡張
http://d.hatena.ne.jp/m-hiyama-memo/20120227/1330299117 から後の2011年の変更拡張:
- text:verify-chars追加
- start.logにロギング
- _OPTS, _ARGV変数
- dribbleファイル機能
- smarty-mxの実装 https://bitbucket.org/project_caty/dev/issue/17/smarty-mx
- list:tightenを実装
- object-to-array, array-to-objectを実装
- テンプレートで仮想プロパティをサポート
- list:range コマンド追加
- smarty=smarty-mx とした
- ハイフン1個オプションを廃止
- path:matchesコマンド、テスト不十分
- パス式アクセスに$記法を導入(実装方式はけっこうヒドイ)
- ハイパーリンク記述を開始 https://bitbucket.org/project_caty/dev/issue/63/
- httpコンソール
- viva:draw
- gen-data -> gen:sampleに変更
- リソースのヘルプを追加
- viva:draw-action
- 環境変数LANGUAGEを追加。主にi18nメッセージの言語選択に使われる。
- viva:draw-actionに --loneオプション
- caraとcasmの統合
- call, forwardを追加。コマンド宣言にsignals節追加
- start{...}を追加、参考:https://bitbucket.org/project_caty/dev/issue/114/
- sleepを追加。
- キーボード割り込みでREPの中断、Windowsではまともに動かない。
- gen:urlを実装
- <?caty-* の出現位置の制限を先頭200文字→先頭10行に変更
- viva:draw/draw-action に --if-modified オプション
- vivaの描画フォーマットにsvgeを追加
- Literate形式のモジュール
- Wikiにignoreプラグイン
- caraにもlit形式
- h, hc, ht, hrをコンソールに出力するよう修正(helpはこれまで通り)
- schemata@this, actions@this を readonly で公開する。
- patternスキーマ属性
- userrole宣言、ユースケースのアクター概念を入れた(最小限)
- 不明なuserroleに疑問符
- --node=userrole の描画
- Catyの名前文字の日本語対応
- file:listでschemataやactionsを見られるように
- globalをアプリケーションとして扱えるように
- -マークで、別にどっちでもいいよトリガー
- globalのWebアクセス禁止(Webからは存在しない扱い)
- lexicalキーワードをsyntax宣言で使用可能に
- portのナンチャッテ実装
- ポートが束縛される機構/タイミングによりポートノードの色を変える
- 不明なノードのSVG出力時、classにunknownを追加
- 新CSSセレクターライブラリ
- filter:json フィルターコマンド
- filter:javascript フィルターコマンド
- with, withoutアノテーションを実装
- gv:drawを実装
- コマンドがエラーになったときに、スクリプトでの位置を同時に出力
- setモジュールを暫定的に追加
2011年までは以上。2012年に入ってからは次の機会に。
http://d.hatena.ne.jp/m-hiyama-memo/20120227/1330299117 再掲
- osモジュールにコマンド追加
- json:fix-on-selection
- json:fix-on-selection に、インライン・インクルード機能としての $embed
- pidファイル機能
- server status を server だけで参照可能。
- OSシグナル SIGTERM, SIGQUITに対応。Windowsでは不十分。
- キーボード割り込みをシグナルハンドラで対応するよう変更。Windowsでは不十分。
- isarray, isobjectフィルターを追加
- smarty3のfunctionを実装。
- その他 SmartyMinEx(smarty-mx)
- モジュールにアノテーションを付けられる。
- chcker.casm と checker:check-files、 まだ不十分。
http://d.hatena.ne.jp/m-hiyama-memo/20110623/1308807276 再掲
- when-otherwiseのワイルドカード
- PATH_INFO環境変数
- 環境変数が直接参照可能に。
- app.logとloggingモジュールを追加。
- osモジュール os:exec-scriptコマンドを追加。
- rc-once/*.caty による一回実行起動時スクリプト
- 複数候補から選択した値の解決 json:fix-on-selectionコマンド、$selection, $embed。
- モジュール循環依存性の検出
- 型コンパイル方式を少しずつ改善
- make-exception, throw-if-can。throw-if-canは今バグっている。
- pathモジュール
- when, eachにオプションが(構文上は)可能となる。
- gen-dataの改善、@[typical]アノテーション
- デーモンモードでのシグナル(SIGTERM, SIGHUPなど)に対応
- SIGHUPではリスタートする。
- PIDファイルをちゃんと消す。
- システム情報の公開性を少し高めた。
- 疑似タグのプロパティ名に文字列が使える。
- 疑似タグでundefinedが使える。
予定:
- 型の包含性判定
- データセットのサポート
http://d.hatena.ne.jp/m-hiyama-memo/20110506/1304662541 再掲。
- 変数生成 '>'
- 変数参照 '%'
- パイプラインの一時的終了 ';'
- eachによる変数スコープ(つうかエクステント)
- casmでスクリプトコマンド定義
- kindのナンチャッテ第一段階。
- バッグ型
- actions/*.cara
- 新しいスキーマ属性 maxProperties, minProperties, propNameFormat, tight。(remarkは以前から。)
- XJSONパス、XJSON get/put、パートはまだだが。
- ignore-tag-onceルール、pv, item, nth とXJSONパス
- 疑似タグ構文 '@?' '(' (name|string) ':' スカラーリテラル ')'
- 任意のタグ '@*'
- 任意の明示的タグ '@*!'
- 型名タグ '@&'
- undefined型と#'undefined
- @[register-public]
- CatyBNFのナンチャッテ実装: ::=, :=, = が使える。
- /*{{{, }}}*/ コメント
- debug特殊コマンド
- --no-ambient, --no-appオプション
- select-action, select-script, trace-dispatchコマンド
- スキーマ記述用のPythonファイルの分離
- *.caraにfiletypeを書ける
- 例外型の定義(exception宣言)
- deferred型
- お尻スラッシュ問題に対して、マニフェストに "missingSlash" 追加。
- _global.xjsonに "addrsAllowed", "addrsDenied"
- スタックトレースのWebへの出力
- throws only
- 総称コマンドの実行時具体化
- 国際化フレームワーク
- フィルターのコマンド化
- deprecatedアノテーションの処理
- defaultアノテーションの処理
- moduleにdocコメント
- 配列型の項目名
- HTTPメソッドトンネリング
- CatyFITのjudge欄
- ハッシュ記法
- timeメタコマンド
- CatyFITにignore-spaceオプション
予定:
- __integerスキーマ属性
- whenにotherwiseワイルドカード
- 複数プロファイル
- オブジェクトのeach
- ユニオン型のワイルドカード
- importと名前の本籍追跡
- tag-onlyデータ
- コマンドオーバーロード(優先度低し)
- テンプレートの elseif
中途半端または未着手: