X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=include%2Fassemble.h;h=3ab7a86b0ae11cd546266afa1407788e142ab2ca;hb=refs%2Ftags%2Fv0.5p23;hp=468f0826b21568f386ea5884ec8de2e195268982;hpb=a46594d66972fae37a609506bcf01f6b2bdc865e;p=YACASL2.git diff --git a/include/assemble.h b/include/assemble.h index 468f082..3ab7a86 100644 --- a/include/assemble.h +++ b/include/assemble.h @@ -1,5 +1,5 @@ -#ifndef YACASL2_ASSEMBLE_INCLUDED -#define YACASL2_ASSEMBLE_INCLUDED +#ifndef YACASL2_ASSEMBLE_H_INCLUDED +#define YACASL2_ASSEMBLE_H_INCLUDED #include #include @@ -9,26 +9,8 @@ #include #include #include "cerr.h" -#include "cmem.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 +116,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 +135,17 @@ void addcerrlist_assemble(); */ bool assemblefile(const char *file, PASS pass); +/** + * @brief 指定された1つまたは複数のファイルを2回アセンブル + * + * @return アセンブル完了時はtrue、エラー発生時はfalseを返す + * + * @param filec アセンブルするファイルの数 + * @param filev アセンブルするファイル名の配列 + * @param adr アセンブル結果を格納するアドレス + */ +bool assemble(int filec, char *filev[], WORD adr); + /** * @brief ファイルにアセンブル結果を書き込む * @@ -195,4 +155,4 @@ bool assemblefile(const char *file, PASS pass); */ void outassemble(const char *file); -#endif /* YACASL2_ASSEMBLE_INCLUDEDの終端 */ +#endif