X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Ftoken.c;h=95df50f66e00347bf0dab10835b30ca22d16218d;hb=9a1bf3c55911d68225635c91b68de98490c25a6f;hp=713a61fef8172d0828548aea44c3ad703b282a34;hpb=019b584feedf0402e473fba3e0e7752db78e616a;p=YACASL2.git diff --git a/src/token.c b/src/token.c index 713a61f..95df50f 100644 --- a/src/token.c +++ b/src/token.c @@ -4,9 +4,17 @@ #include "cmem.h" #include "assemble.h" +/** + * @brief 「,」区切りの文字列から、オペランドのトークンを取得 + * + * @return オペランドのトークン + * + * @param *str 「,」区切りの文字列 + */ +OPD *opdtok(const char *str); /** - * 行トークン取得のエラー定義 + * @brief 行トークン取得のエラー定義 */ CERR cerr_linetok[] = { { 104, "label length is too long" }, @@ -14,7 +22,7 @@ CERR cerr_linetok[] = { }; /** - * オペランドトークン取得のエラー定義 + * @brief オペランドトークン取得のエラー定義 */ static CERR cerr_opdtok[] = { { 117, "operand too many in DC" }, @@ -23,18 +31,6 @@ static CERR cerr_opdtok[] = { { 123, "unclosed quote" }, }; -/** - * オペランドトークン取得のエラーを追加 - */ -void addcerrlist_tok() -{ - addcerrlist(ARRAYSIZE(cerr_linetok), cerr_linetok); - addcerrlist(ARRAYSIZE(cerr_opdtok), cerr_opdtok); -} - -/** - * 「,」区切りの文字列から、オペランドのトークンを取得 - */ OPD *opdtok(const char *str) { OPD *opd = malloc_chk(sizeof(OPD), "opd"); @@ -84,7 +80,7 @@ OPD *opdtok(const char *str) break; } if(strlen(q) - rcnt > OPDSIZE) { - setcerr(118, ""); /* operand length is too long */ + setcerr(118, ""); /* operand length too long */ break; } opd->opdv[(++opd->opdc)-1] = strdup_chk(q, "opd.opdv[]"); @@ -96,9 +92,13 @@ OPD *opdtok(const char *str) return opd; } -/** - * 空白またはタブで区切られた1行から、トークンを取得する - */ +/* assemble.hで定義された関数群 */ +void addcerrlist_tok() +{ + addcerrlist(ARRAYSIZE(cerr_linetok), cerr_linetok); + addcerrlist(ARRAYSIZE(cerr_opdtok), cerr_opdtok); +} + CMDLINE *linetok(const char *line) { char *tokens, *p, *sepp;