X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?p=YACASL2.git;a=blobdiff_plain;f=src%2Ftoken.c;h=c185d8dfa7d865f0068a2e94244073ba6386d73d;hp=9731605c7a4189aef2e7464cd0792aeec38abd83;hb=de18494f8acd2f8ca87b86c54bfee1c2094c0d83;hpb=456e72090c786b40ac10ee984617afc054555f4d diff --git a/src/token.c b/src/token.c index 9731605..c185d8d 100644 --- a/src/token.c +++ b/src/token.c @@ -4,6 +4,34 @@ #include "cmem.h" #include "assemble.h" + +/** + * 行トークン取得のエラー定義 + */ +CERR cerr_linetok[] = { + { 104, "label length is too long" }, + { 105, "no command in the line" }, +}; + +/** + * オペランドトークン取得のエラー定義 + */ +static CERR cerr_opdtok[] = { + { 117, "operand too many in DC" }, + { 118, "operand length too long" }, + { 121, "cannot get operand token" }, + { 123, "unclosed quote" }, +}; + +/** + * オペランドトークン取得のエラーを追加 + */ +void addcerrlist_tok() +{ + addcerrlist(ARRAYSIZE(cerr_linetok), cerr_linetok); + addcerrlist(ARRAYSIZE(cerr_opdtok), cerr_opdtok); +} + /** * 「,」区切りの文字列から、オペランドのトークンを取得 */ @@ -14,13 +42,6 @@ OPD *opdtok(const char *str) int sepc = ',', rcnt = 0; bool quoting = false; - CERR cerr_opdtok[] = { - { 117, "operand too many in DC" }, - { 118, "operand length too long" }, - { 121, "cannot get operand token" }, - { 123, "unclosed quote" }, - }; - addcerrlist(ARRAYSIZE(cerr_opdtok), cerr_opdtok); opd->opdc = 0; if(str == NULL) { return opd; @@ -84,11 +105,6 @@ CMDLINE *linetok(const char *line) bool quoting = false; CMDLINE *cmdl = malloc_chk(sizeof(CMDLINE), "cmdl"); - CERR cerr_linetok[] = { - { 104, "label length is too long" }, - { 105, "no command in the line" }, - }; - addcerrlist(ARRAYSIZE(cerr_linetok), cerr_linetok); if(line == NULL || strlen(line) == 0) { return NULL; }