タグ演算
grepでタグを出せるが、もう少し複雑なことがしたい
やりたいこと
- AND
-- AとBのタグが付いている
- NOT
-- Aのタグが付いているがBのタグが付いていない
- OR
-- Aのタグ、またはBのタグが付いている
記法の案
- grepに複数書くとANDになるのは直感的
- 他の記法をgrepに入れるのは難しそう(エスケープの問題あり)
- egrep とかにするか
- 条件の前に演算子が書けるとかでどうか?
> pre
文字列A
& 文字列B
| 文字列C
<<
みたいな感じ?
- 優先順などが書けないが大丈夫か?
-- 現状はそこまで複雑なことはしないつもりだが、ある程度は考えておきたい
例を考える
> egrep
<<
> egrep
<<
> egrep
<<
> egrep
<<
こんな感じかな
仕様整理
上から順に評価される
- 初期条件は記号無し扱い(| と同じ)
-- 明示的に| を書いても良し
- 演算子
-- | 文字列
--- ここまでの集合に文字列でgrepした集合を加える
-- & 文字列
--- ここまでの集合で文字列を含むもの
-- &! 文字列
--- ここまでの集合で文字列を含まないもの
対象行は1行で良いのか?
ドキュメント全体か?
- 1行
-- クライアント側でも処理可能
-- タグを含む行が複数ある場合の挙動が非直感的
--- しかし実際はこれでよさそう
- ドキュメント全体
-- サーバ側で処理が必要
-- サーバの特殊な処理を減らしたい