X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?p=YACASL2.git;a=blobdiff_plain;f=include%2Fassemble.h;h=112f8d386498a68568601770cbbc991168ab171a;hp=8ab4255d10aef3a4fd12c873019e7947df518b16;hb=f9ad3a081e1777bb6d892af65d0e4090cb31bbfa;hpb=de18494f8acd2f8ca87b86c54bfee1c2094c0d83 diff --git a/include/assemble.h b/include/assemble.h index 8ab4255..112f8d3 100644 --- a/include/assemble.h +++ b/include/assemble.h @@ -35,18 +35,15 @@ typedef struct { extern ASMODE asmode; /** - * アセンブルのプロパティ + * アセンブル時の、現在およびリテラルのアドレスとプログラム入口名 */ typedef struct { - WORD ptr; /**<現在のポインタ */ - WORD lptr; /**<リテラル(=付きの値)を格納するポインタ */ + WORD ptr; /**<現在のアドレス */ + WORD lptr; /**<リテラル(=付きの値)のアドレス */ char *prog; /**<他のプログラムで参照する入口名 */ -} ASPROP; +} ASPTR; -/** - * アセンブルのプロパティ: ptr, lptr, *prog - */ -extern ASPROP *asprop; +extern ASPTR *asptr; /** * アセンブラ命令を表す番号 @@ -82,7 +79,7 @@ typedef enum { * マクロ命令を表す配列 */ typedef struct { - MACROCMDID cmdid; /**<アセンブル命令のID */ + MACROCMDID cmdid; /**<マクロ命令の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); /** * 引数で指定したファイルにアセンブル結果を書込