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;
/**
* アセンブラ命令を表す番号
* マクロ命令を表す配列
*/
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; /**<コマンド名 */
SECOND = 1,
} PASS;
+/**
+ * ラベルのエラーをエラーリストに追加
+ */
+void addcerrlist_label();
+
/**
* プログラム名とラベルに対応するアドレスをラベル表から検索する
*/
OPD *opd; /**<オペランド */
} CMDLINE;
+/**
+ * トークン取得のエラーを追加
+ */
+void addcerrlist_tok();
+
/**
* 空白またはタブで区切られた1行から、トークンを取得する
*/
CMDLINE *linetok(const char *line);
+/**
+ * アセンブルエラーをエラーリストに追加
+ */
+void addcerrlist_assemble();
+
/**
* 指定された名前のファイルをアセンブル
* 2回実行される