アセンブルの整理
[YACASL2.git] / include / assemble.h
index 8ab4255..112f8d3 100644 (file)
@@ -35,18 +35,15 @@ typedef struct {
 extern ASMODE asmode;
 
 /**
- * アセンブルのプロパティ
+ * アセンブル時の、現在およびリテラルのアドレスとプログラム入口名
  */
 typedef struct {
-    WORD ptr;     /**<ç\8f¾å\9c¨ã\81®ã\83\9dã\82¤ã\83³ã\82¿ */
-    WORD lptr;    /**<ã\83ªã\83\86ã\83©ã\83«ï¼\88=ä»\98ã\81\8dã\81®å\80¤ï¼\89ã\82\92æ ¼ç´\8dã\81\99ã\82\8bã\83\9dã\82¤ã\83³ã\82¿ */
+    WORD ptr;     /**<ç\8f¾å\9c¨ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ */
+    WORD lptr;    /**<ã\83ªã\83\86ã\83©ã\83«ï¼\88=ä»\98ã\81\8dã\81®å\80¤ï¼\89ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ */
     char *prog;   /**<他のプログラムで参照する入口名 */
-} ASPROP;
+} ASPTR;
 
-/**
- * アセンブルのプロパティ: ptr, lptr, *prog
- */
-extern ASPROP *asprop;
+extern ASPTR *asptr;
 
 /**
   * アセンブラ命令を表す番号
@@ -82,7 +79,7 @@ typedef enum {
  * マクロ命令を表す配列
  */
 typedef struct {
-    MACROCMDID cmdid;              /**<ã\82¢ã\82»ã\83³ã\83\96ã\83«命令のID */
+    MACROCMDID cmdid;              /**<ã\83\9eã\82¯ã\83­命令のID */
     int opdc_min;                  /**<最小オペランド数 */
     int opdc_max;                  /**<最大オペランド数 */
     char *cmd;                     /**<コマンド名 */
@@ -122,6 +119,11 @@ typedef enum {
     SECOND = 1,
 } PASS;
 
+/**
+ * ラベルのエラーをエラーリストに追加
+ */
+void addcerrlist_label();
+
 /**
  * プログラム名とラベルに対応するアドレスをラベル表から検索する
  */
@@ -176,9 +178,10 @@ void addcerrlist_assemble();
 
 /**
  * 指定された名前のファイルをアセンブル
- * 2回実行される
+ * 1回目ではラベルを登録し、2回目ではラベルからアドレスを読み込む
+ * アセンブル完了時はtrue、エラー発生時はfalseを返す
  */
-bool assemble(const char *file, PASS pass);
+bool assemblefile(const char *file, PASS pass);
 
 /**
  * 引数で指定したファイルにアセンブル結果を書込