summaryrefslogtreecommitdiff
path: root/doc/protocol.txt
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@lorry>2009-02-07 16:32:56 +0000
committerLorry Tar Creator <lorry-tar-importer@lorry>2009-02-07 16:32:56 +0000
commita7a06a7ccfe0af1e134357678b8fa6cf87dff3b0 (patch)
treea966aeee62e69ae3ad13275d07ddb15049b14e0e /doc/protocol.txt
downloadanthy-a7a06a7ccfe0af1e134357678b8fa6cf87dff3b0.tar.gz
Diffstat (limited to 'doc/protocol.txt')
-rw-r--r--doc/protocol.txt130
1 files changed, 130 insertions, 0 deletions
diff --git a/doc/protocol.txt b/doc/protocol.txt
new file mode 100644
index 0000000..1fbb225
--- /dev/null
+++ b/doc/protocol.txt
@@ -0,0 +1,130 @@
+EGG との通信のプロトコル
+ anthy-agentコマンドに--eggオプションを設定して起動することで利用可能です。
+
+挨拶
+ greeting = server-name " (" version ") " options " :" string CRLF
+ server-name = string
+ version = 1*(DIGIT)
+ options = "[" string 1*(", " string ) "]"
+
+Command Semantics and Syntax
+
+ context-desc = 1*( DIGIT)
+ ; context descriptor
+
+ seg-no = 1*(DIGIT)
+ ; segment number (0 origin)
+
+ candidate-offset = 1*(DIGIT)
+
+ max-candidates = 1*(DIGIT)
+
+ cand-no = 1*(DIGIT)
+ ; candidate number (0 origin)
+
+ string = 1*<any CHAR excluding control characters>
+
+ error = "-ERR" SP error-code SP string CRLF
+
+ error-code = 1*( DIGIT )
+
+ success-with-number = "+OK" SP number CRLF
+
+ number = 1*( DIGIT )
+
+ success = "+OK" CRLF
+
+ segments = "+DATA" SP seg-no SP number-of-segments-removed SP
+ number-of-segments-inserted CRLF
+ 1*( number-of-candidates SP converted SP yomi CRLF )
+ CRLF
+
+ number-of-replaced = 1*( DIGIT )
+
+ offset = 1*( DIGIT )
+
+ number-of-segments = 1*( DIGIT )
+
+ converted = string
+
+ yomi = string
+
+ candidates = "+DATA" SP offset SP number-of-candidates CRLF
+ 1*( converted CRLF )
+ CRLF
+
+ number-of-candidates = 1*( DIGIT )
+
+
+1. コンテクスト生成
+ Command:
+ command-new-context = "NEW-CONTEXT" parameters CRLF
+ parameters = *( SP expression )
+ ; e.g. : Encoding specification, etc.
+ expression = var "=" value
+ var = 1*(ALPHA) 1*(ALPHA / DIGIT)
+ value = string
+ ; INPUT=UTF-8 OUTPUT=UTF-8
+ ; INPUT=#106 OUTPUT=#106
+ ; INPUT=EUC-JP OUTPUT=EUC-JP
+ ; INPUT=#18 OUTPUT=#18
+
+ Reply:
+ reply-of-new-context = error
+ / success-with-number
+ ; number: context-descriptor
+
+2. コンテクスト解放
+ Command:
+ command-release-context = "RELEASE-CONTEXT" SP context-desc CRLF
+
+ Reply:
+ reply-of-release-context = error / success
+
+3. 変換
+ Command:
+ command-convert = "CONVERT" SP context-desc SP input CRLF
+ input = string
+
+ Reply:
+ reply-of-convert = error / segments
+
+4. 変換結果コミット/キャンセル
+ Command:
+ command-commit-or-cancel = "COMMIT" SP context-desc SP do-cancel CRLF
+ do-cancel = "0" / "1"
+ ; 0 のとき確定。その他のときキャンセル。
+ Reply:
+ reply-of-commit-or-cancel = error / success
+
+5.候補取得
+ Command:
+ command-get-candidates = "GET-CANDIDATES" SP context-desc SP
+ seg-no SP candidate-offset SP
+ max-candidates CRLF
+
+ Reply:
+ reply-of-get-candidates = error / candidates
+
+6. 候補確定
+ Command:
+ command-select-candidate = "SELECT-CANDIDATE" SP context-desc SP
+ seg-no SP cand-no CRLF
+ Reply:
+ reply-of-select-candidate = error / success / segments
+
+7. 文節伸縮
+ Command:
+ command-resize-segment = "RESIZE-SEGMENT" SP context-desc SP
+ seg-no SP inc-dec CRLF
+ inc-dec = "0" / "1"
+ ; "0" means increment, while "1" means decrement
+ Reply:
+ reply-of-resize-segment = error / segments
+
+8. 終了
+ Command:
+ command-quit = "QUIT" CRLF
+ Reply:
+ no reply, connection will be closed by server.
+--