X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=include%2Fassemble.h;h=f8faf8108df8e7cd02fc99b684eacf723b19856e;hb=5c3c2f08e16a3a682db878d66095f90e732194aa;hp=468f0826b21568f386ea5884ec8de2e195268982;hpb=a46594d66972fae37a609506bcf01f6b2bdc865e;p=YACASL2.git diff --git a/include/assemble.h b/include/assemble.h index 468f082..f8faf81 100644 --- a/include/assemble.h +++ b/include/assemble.h @@ -10,25 +10,11 @@ #include #include "cerr.h" #include "cmem.h" +#include "exec.h" #include "hash.h" #include "struct.h" #include "word.h" - -/** - * @brief CASL IIの仕様 - */ -enum { - LABELSIZE = 8, /**<ラベルの最大文字数 */ - OPDSIZE = 40, /**<オペラントの最大数。CASL IIシミュレータの制限 */ -}; - -/** - * @brief YACASL2の制限 - */ -enum { - LINESIZE = 1024, /**<行の最大文字数 */ - TOKENSIZE = 256, /**<トークンの最大文字数 */ -}; +#include "token.h" /** * @brief アセンブルモードを表すデータ型 @@ -134,39 +120,6 @@ void printlabel(); */ void freelabel(); -/** - * @brief オペランドを表すデータ型 - */ -typedef struct { - int opdc; /**<オペランド数 */ - char *opdv[OPDSIZE]; /**<オペランド配列 */ -} OPD; - -/** - * @brief 命令行を表すデータ型 - */ -typedef struct { - char *label; /**<ラベル */ - char *cmd; /**<コマンド */ - OPD *opd; /**<オペランド */ -} CMDLINE; - -/** - * @brief トークン取得のエラーを追加する - * - * @return なし - */ -void addcerrlist_tok(); - -/** - * @brief 行から、ラベル・コマンド・オペランドを取得する - * - * @return ラベル・コマンド・オペランド - * - * @param *line 行 - */ -CMDLINE *linetok(const char *line); - /** * @brief アセンブルエラーをエラーリストに追加する * @@ -186,6 +139,17 @@ void addcerrlist_assemble(); */ bool assemblefile(const char *file, PASS pass); +/** + * @brief 指定された1つまたは複数のファイルを2回アセンブル + * + * @return なし + * + * @param filec アセンブルするファイルの数 + * @param filev アセンブルするファイル名の配列 + * @param adr アセンブル結果を格納するアドレス + */ +void assemble(int filec, char *filev[], WORD adr); + /** * @brief ファイルにアセンブル結果を書き込む *