extern ASMODE asmode;
/**
- * アセンブル時の、現在およびリテラルのアドレスと入口名
+ * アセンブル時の、現在およびリテラルのアドレスとプログラム入口名
*/
typedef struct {
WORD ptr; /**<現在のアドレス */
extern ASPTR *asptr;
-/**
- * アセンブラ命令を表す番号
- */
-typedef enum {
- START = 01,
- END = 02,
- DS = 03,
- DC = 04,
-} ASCMDID;
-
-/**
- * アセンブラ命令を表す配列
- */
-typedef struct {
- ASCMDID cmdid; /**<アセンブル命令のID */
- int opdc_min; /**<最小オペランド数 */
- int opdc_max; /**<最大オペランド数 */
- char *cmd; /**<コマンド名 */
-} ASCMD;
-
-/**
- * マクロ命令を表す番号
- */
-typedef enum {
- IN = 011,
- OUT = 012,
- RPUSH = 013,
- RPOP = 014,
-} MACROCMDID;
-
-/**
- * マクロ命令を表す配列
- */
-typedef struct {
- MACROCMDID cmdid; /**<マクロ命令のID */
- int opdc_min; /**<最小オペランド数 */
- int opdc_max; /**<最大オペランド数 */
- char *cmd; /**<コマンド名 */
-} MACROCMD;
-
/**
* ラベル配列
*/
SECOND = 1,
} PASS;
+/**
+ * ラベルのエラーをエラーリストに追加
+ */
+void addcerrlist_label();
+
/**
* プログラム名とラベルに対応するアドレスをラベル表から検索する
*/
/**
* 指定された名前のファイルをアセンブル
- * 2回実行される
+ * 1回目ではラベルを登録し、2回目ではラベルからアドレスを読み込む
+ * アセンブル完了時はtrue、エラー発生時はfalseを返す
*/
-bool assemble(const char *file, PASS pass);
+bool assemblefile(const char *file, PASS pass);
/**
* 引数で指定したファイルにアセンブル結果を書込