OSDN Git Service

燃え尽き症候群ゆえにちょっとだけ。間違い結構あります。プロジェクト壊れていますので後で作り直し。
[ring-lang-081/annotated-ring-with-OmegaT.git] / omegat / project_save.tmx.bak
index 4db5f7f..4e57f95 100644 (file)
       <tuv lang="EN-US">
         <seg>#define RING_VM_ERROR_USINGNULLVARIABLE "Error (R24) : Using uninitialized variable "</seg>
       </tuv>
-      <tuv lang="JA" changeid="isVowel" changedate="20200520T055504Z" creationid="isVowel" creationdate="20200520T055504Z">
-        <seg>#define RING_VM_ERROR_USINGNULLVARIABLE "ã\82¨ã\83©ã\83¼ (R24) : æ\9cªå\88\9dæ\9c\9få\8c\96å¤\89æ\95°ã\82\92使ç\94¨ã\81\97ã\81\9f "</seg>
+      <tuv lang="JA" changeid="isVowel" changedate="20200520T090209Z" creationid="isVowel" creationdate="20200520T055504Z">
+        <seg>#define RING_VM_ERROR_USINGNULLVARIABLE "ã\82¨ã\83©ã\83¼ (R24) : æ\9cªå\88\9dæ\9c\9få\8c\96å¤\89æ\95°ã\81\8cã\81\82ã\82\8b "</seg>
       </tuv>
     </tu>
     <tu>
       </tuv>
     </tu>
     <tu>
+      <note>一行コメント</note>
+      <tuv lang="EN-US">
+        <seg>#define SCANNER_STATE_COMMENT 2</seg>
+      </tuv>
+    </tu>
+    <tu>
+      <note>複数行コメント</note>
+      <tuv lang="EN-US">
+        <seg>#define SCANNER_STATE_MLCOMMENT 3</seg>
+      </tuv>
+    </tu>
+    <tu>
       <tuv lang="EN-US">
         <seg>#include "ring.h"</seg>
       </tuv>
     </tu>
     <tu>
       <tuv lang="EN-US">
+        <seg>**  Constants</seg>
+      </tuv>
+      <tuv lang="JA" changeid="isVowel" changedate="20200521T085508Z" creationid="isVowel" creationdate="20200521T085508Z">
+        <seg>**  定数</seg>
+      </tuv>
+    </tu>
+    <tu>
+      <tuv lang="EN-US">
         <seg>**  Copyright (c) 2013-2019 Mahmoud Fayed &lt;msfclipper@yahoo.com&gt;</seg>
       </tuv>
       <tuv lang="JA" changeid="isVowel" changedate="20200520T011857Z" creationid="isVowel" creationdate="20200520T011857Z">
     </tu>
     <tu>
       <tuv lang="EN-US">
+        <seg>**  Macro</seg>
+      </tuv>
+      <tuv lang="JA" changeid="isVowel" changedate="20200524T071545Z" creationid="isVowel" creationdate="20200524T071545Z">
+        <seg>**  マクロ</seg>
+      </tuv>
+    </tu>
+    <tu>
+      <tuv lang="EN-US">
+        <seg>**  Memory pool is thread safe because ring_vm_runcodefromthread() create new state</seg>
+      </tuv>
+      <tuv lang="JA" changeid="isVowel" changedate="20200524T071847Z" creationid="isVowel" creationdate="20200524T071847Z">
+        <seg>**  ring_vm_runcodefromthread() は新規ステート生成するためメモリプールはスレッドセーフです</seg>
+      </tuv>
+    </tu>
+    <tu>
+      <tuv lang="EN-US">
         <seg>**  OOP</seg>
       </tuv>
       <tuv lang="JA" changeid="isVowel" changedate="20200518T002212Z" creationid="isVowel" creationdate="20200518T002212Z">
     </tu>
     <tu>
       <tuv lang="EN-US">
+        <seg>/* Keywords */</seg>
+      </tuv>
+      <tuv lang="JA" changeid="isVowel" changedate="20200521T082533Z" creationid="isVowel" creationdate="20200521T082533Z">
+        <seg>/* キーワード */</seg>
+      </tuv>
+    </tu>
+    <tu>
+      <tuv lang="EN-US">
         <seg>/* List Functions */</seg>
       </tuv>
       <tuv lang="JA" changeid="isVowel" changedate="20200518T004936Z" creationid="isVowel" creationdate="20200518T004936Z">
     </tu>
     <tu>
       <tuv lang="EN-US">
+        <seg>/* Memory Functions (Ring StateAware) */</seg>
+      </tuv>
+      <tuv lang="JA" changeid="isVowel" changedate="20200524T025927Z" creationid="isVowel" creationdate="20200524T025927Z">
+        <seg>/* メモリ関数 (Ring StateAware) */</seg>
+      </tuv>
+    </tu>
+    <tu>
+      <tuv lang="EN-US">
         <seg>/* OS */</seg>
       </tuv>
       <tuv lang="JA" changeid="isVowel" changedate="20200518T004952Z" creationid="isVowel" creationdate="20200518T004952Z">
     </tu>
     <tu>
       <tuv lang="EN-US">
+        <seg>/* Operators */</seg>
+      </tuv>
+      <tuv lang="JA" changeid="isVowel" changedate="20200524T024244Z" creationid="isVowel" creationdate="20200524T024244Z">
+        <seg>/* 演算子 */</seg>
+      </tuv>
+    </tu>
+    <tu>
+      <tuv lang="EN-US">
         <seg>/* Options */</seg>
       </tuv>
       <tuv lang="JA" changeid="isVowel" changedate="20200518T043842Z" creationid="isVowel" creationdate="20200518T043842Z">
     </tu>
     <tu>
       <tuv lang="EN-US">
+        <seg>/* Virtual Machine */</seg>
+      </tuv>
+      <tuv lang="JA" changeid="isVowel" changedate="20200524T024054Z" creationid="isVowel" creationdate="20200524T024054Z">
+        <seg>/* 仮想マシン */</seg>
+      </tuv>
+    </tu>
+    <tu>
+      <tuv lang="EN-US">
         <seg>/* Windows only */</seg>
       </tuv>
       <tuv lang="JA" changeid="isVowel" changedate="20200520T002324Z" creationid="isVowel" creationdate="20200520T002324Z">
     </tu>
     <tu>
       <tuv lang="EN-US">
+        <seg>/* command line parameters */</seg>
+      </tuv>
+      <tuv lang="JA" changeid="isVowel" changedate="20200524T024110Z" creationid="isVowel" creationdate="20200524T024110Z">
+        <seg>/* コマンドライン引数 */</seg>
+      </tuv>
+    </tu>
+    <tu>
+      <tuv lang="EN-US">
         <seg>/* using list_addstring */</seg>
       </tuv>
       <tuv lang="JA" changeid="isVowel" changedate="20200520T000622Z" creationid="isVowel" creationdate="20200520T000622Z">
       </tuv>
     </tu>
     <tu>
+      <note>List            = リスト型 (ユーザ定義型)
+*                 = ポインタ型
+Operators = 演算子</note>
+      <tuv lang="EN-US">
+        <seg>List *Operators  ;</seg>
+      </tuv>
+    </tu>
+    <tu>
+      <note>List            = リスト型 (ユーザ定義型)
+*                 = ポインタ型
+Tokens      = トークン
+</note>
+      <tuv lang="EN-US">
+        <seg>List *Tokens  ;</seg>
+      </tuv>
+    </tu>
+    <tu>
       <tuv lang="EN-US">
         <seg>Local packages for tests.</seg>
       </tuv>
       </tuv>
     </tu>
     <tu>
+      <note>ただの malloc 関数のラッパーです。</note>
+      <tuv lang="EN-US">
+        <seg>RING_API void * ring_malloc ( size_t size )</seg>
+      </tuv>
+    </tu>
+    <tu>
+      <note>ring_state_malloc 
+
+引数
+void *pState : Ring ステート (デバッグオプション指定時のみ有効)
+
+size_t size : アロケーションサイズ (malloc関数へ渡されます)
+
+返値
+void * : 確保したメモリ領域の先頭アドレス (ポインタ)
+
+デバッグオプション
+・RING_USEPOOLMANAGER
+・RING_TRACKALLOCATIONS
+
+
+------------
+
+RING_USEPOOLMANAGER = 1 ならば、
+ring_poolmanager_allocate((RingState *) pState,size) ;
+
+
+</note>
+      <tuv lang="EN-US">
+        <seg>RING_API void * ring_state_malloc ( void *pState,size_t size )</seg>
+      </tuv>
+    </tu>
+    <tu>
       <tuv lang="EN-US">
         <seg>RING_API_ERROR("Assertion Failed!");</seg>
       </tuv>
       </tuv>
     </tu>
     <tu>
+      <note>ring        = メインモジュール名
+scanner = サブモジュール名 (字句解析器)
+delete        =  削除、消去、抹消、破棄、使用終了、開放
+p            = ポインタ
+Ring      = プログラミング言語 Ring のことを指します。
+State     = ステート
+
+0. ここではプロトタイプ宣言である
+1. 返値はスキャナ型のポインタ (Scanner *) を返す
+2. 引数は RingState 型のポインタ (pRingState)</note>
+      <tuv lang="EN-US">
+        <seg>Scanner * ring_scanner_delete ( Scanner *pScanner ) ;</seg>
+      </tuv>
+      <tuv lang="JA" changeid="isVowel" changedate="20200524T024332Z" creationid="isVowel" creationdate="20200524T024332Z">
+        <seg>Scanner * ring_scanner_delete ( Scanner *pScanner ) ; /* removeScanner じゃないの? */</seg>
+      </tuv>
+    </tu>
+    <tu>
+      <note>スキャナの初期化
+
+関数の動作
+1. ローカル変数の宣言
+2. ステート用メモリの動的確保 - ring_state_malloc()
+3. メモリ不足判定 (不足時はエラーメッセージと0を返して異常終了)
+4. ring_scanner_keywords()
+5. ring_scanner_operators()
+6. スキャナのメンバ初期値設定
+7. pScanner を返して終了
+
+変数
+- pScanner
+- *pScanner
+- pRingState
+
+型
+- Scanner
+</note>
+      <tuv lang="EN-US">
+        <seg>Scanner * ring_scanner_new ( RingState *pRingState )</seg>
+      </tuv>
+    </tu>
+    <tu>
+      <note>ring        = メインモジュール名
+scanner = サブモジュール名 (字句解析器)
+new        =  新規作成、使用前の初期化、準備
+p            = ポインタ
+Ring      = プログラミング言語 Ring のことを指します。
+State     = ステート
+
+0. ここではプロトタイプ宣言である
+1. 返値はスキャナ型のポインタ (Scanner *) を返す
+2. 引数は RingState 型のポインタ (pRingState)
+
+</note>
+      <tuv lang="EN-US">
+        <seg>Scanner * ring_scanner_new ( RingState *pRingState ) ;</seg>
+      </tuv>
+      <tuv lang="JA" changeid="isVowel" changedate="20200522T155505Z">
+        <seg>Scanner * ring_scanner_new ( RingState *pRingState ) ; /* newScanner じゃないの? */</seg>
+      </tuv>
+    </tu>
+    <tu>
+      <note>Scanner 型のポインタ変数*pScanner を宣言</note>
+      <tuv lang="EN-US">
+        <seg>Scanner *pScanner  ;</seg>
+      </tuv>
+    </tu>
+    <tu>
       <tuv lang="EN-US">
         <seg>See "Error executing code : " + aFunc[C_INS_CODE] + nl</seg>
       </tuv>
       </tuv>
     </tu>
     <tu>
+      <note>char          = 文字型 (charactor)
+c               = 接頭辞 : 文字 (charactor)
+ML            = 複数行 ("M"ulti-"L"ine)
+Comment = 注釈、コメント
+</note>
+      <tuv lang="EN-US">
+        <seg>char cMLComment  ;</seg>
+      </tuv>
+    </tu>
+    <tu>
       <tuv lang="EN-US">
         <seg>cl /DEBUG:FULL /Z7 ring.c  ^</seg>
       </tuv>
       </tuv>
     </tu>
     <tu>
+      <note>int         = 整数型 (integer)
+Line(s) = 行
+Count   = 数
+ </note>
+      <tuv lang="EN-US">
+        <seg>int LinesCount  ;</seg>
+      </tuv>
+    </tu>
+    <tu>
+      <note>int         = 整数型 (integer)
+n           = 接頭辞 : 数値型
+Literal  = リテラル
+Line     = 行
+</note>
+      <tuv lang="EN-US">
+        <seg>int nLiteralLine  ;</seg>
+      </tuv>
+    </tu>
+    <tu>
       <tuv lang="EN-US">
         <seg>int ring_parser_epslion ( Parser *pParser )</seg>
       </tuv>
       </tuv>
     </tu>
     <tu>
+      <note>pScanner = 変数
+(Scanner *) = void ポインタから Scanner 型ポインタへのキャスト
+
+ring_state_malloc
+
+--------------------
+メモリ確保
+
+sizeof(Scanner) で Scanner 構造体のサイズを算出
+
+NULL ならばメモリ確保に失敗。
+
+呼び出し階層
+・ring_state_malloc →
+・ring_poolmanager_allocate → ・ring_malloc  →
+・malloc
+</note>
+      <tuv lang="EN-US">
+        <seg>pScanner = (Scanner *) ring_state_malloc(pRingState,sizeof(Scanner));</seg>
+      </tuv>
+      <tuv lang="JA" changeid="isVowel" changedate="20200524T070938Z">
+        <seg>pScanner = (Scanner *) ring_state_malloc(pRingState,sizeof(Scanner)); /* ただの malloc() 関数のラッパー */</seg>
+      </tuv>
+    </tu>
+    <tu>
       <tuv lang="EN-US">
         <seg>printf( " Operand : %.5f ",nValue ) ;</seg>
       </tuv>
     </tu>
     <tu>
       <tuv lang="EN-US">
+        <seg>printf( "%10s : %s \n","Identifier",cString ) ;</seg>
+      </tuv>
+      <tuv lang="JA" changeid="isVowel" changedate="20200521T082712Z" creationid="isVowel" creationdate="20200521T082712Z">
+        <seg>printf( "%10s : %s \n","識別子",cString ) ;</seg>
+      </tuv>
+    </tu>
+    <tu>
+      <tuv lang="EN-US">
+        <seg>printf( "%10s : %s \n","Keyword",RING_KEYWORDS[nPos-1] ) ;</seg>
+      </tuv>
+      <tuv lang="JA" changeid="isVowel" changedate="20200521T082645Z" creationid="isVowel" creationdate="20200521T082645Z">
+        <seg>printf( "%10s : %s \n","キーワード",RING_KEYWORDS[nPos-1] ) ;</seg>
+      </tuv>
+    </tu>
+    <tu>
+      <tuv lang="EN-US">
+        <seg>printf( "%10s : %s \n","Literal",cString ) ;</seg>
+      </tuv>
+      <tuv lang="JA" changeid="isVowel" changedate="20200521T082722Z" creationid="isVowel" creationdate="20200521T082722Z">
+        <seg>printf( "%10s : %s \n","リテラル",cString ) ;</seg>
+      </tuv>
+    </tu>
+    <tu>
+      <tuv lang="EN-US">
+        <seg>printf( "%10s : %s \n","Number",cString ) ;</seg>
+      </tuv>
+      <tuv lang="JA" changeid="isVowel" changedate="20200521T082704Z" creationid="isVowel" creationdate="20200521T082704Z">
+        <seg>printf( "%10s : %s \n","数値",cString ) ;</seg>
+      </tuv>
+    </tu>
+    <tu>
+      <tuv lang="EN-US">
+        <seg>printf( "%10s : %s \n","Operator",cString ) ;</seg>
+      </tuv>
+      <tuv lang="JA" changeid="isVowel" changedate="20200521T082655Z" creationid="isVowel" creationdate="20200521T082655Z">
+        <seg>printf( "%10s : %s \n","演算子",cString ) ;</seg>
+      </tuv>
+    </tu>
+    <tu>
+      <tuv lang="EN-US">
         <seg>printf( "Can't open file %s \n  ",cFileName ) ;</seg>
       </tuv>
       <tuv lang="JA" changeid="isVowel" changedate="20200520T012049Z" creationid="isVowel" creationdate="20200520T012049Z">
       </tuv>
     </tu>
     <tu>
+      <note>typedef   = 型の定義 (type defined)
+struct      = 構造体      (structure)
+Scanner = 字句解析器型 (Scanner)</note>
+      <tuv lang="EN-US">
+        <seg>typedef struct Scanner {</seg>
+      </tuv>
+    </tu>
+    <tu>
       <tuv lang="EN-US">
         <seg>version : " + aVersion[:Version] +</seg>
       </tuv>
         <seg>write("main.ring","# メインファイル"+WindowsNL()+WindowsNL()+</seg>
       </tuv>
     </tu>
+    <tu>
+      <tuv lang="EN-US">
+        <seg>{</seg>
+      </tuv>
+      <tuv lang="JA" changeid="isVowel" changedate="20200524T024830Z" creationid="isVowel" creationdate="20200524T024830Z">
+        <seg>{</seg>
+      </tuv>
+    </tu>
 <!-- Alternative translations -->
   </body>
 </tmx>