diff options
author | Pixel <> | 2001-04-15 17:36:16 +0000 |
---|---|---|
committer | Pixel <> | 2001-04-15 17:36:16 +0000 |
commit | 2317325a463b1cd52ee0a9444ec1a70064d4531c (patch) | |
tree | a9fb79f881b7ca3a557d663753e2a3576129c4ed | |
parent | 978e188288e755b82503eb27069eb3adae5f3d8c (diff) |
Bug fixe
-rw-r--r-- | lib/assembler.c | 35 | ||||
-rw-r--r-- | po/ProjetArchi.pot | 32 | ||||
-rw-r--r-- | po/cat-id-tbl.c | 105 |
3 files changed, 104 insertions, 68 deletions
diff --git a/lib/assembler.c b/lib/assembler.c index 8bceaec..b472ce1 100644 --- a/lib/assembler.c +++ b/lib/assembler.c @@ -1354,7 +1354,7 @@ static void evaluate_pattern(_TableauVariable * it, expression_t * e) m = m->left; if (m->string) { if (m->type) { - if (strcmp(m->name, "I") || strcmp(m->string, "O")) { + if (strcmp(m->name, "I") || strcmp(m->string, "O") || strcmp(m->string, "o")) { exception(1, _("Unknow constant type in the meta language")); } tv = 0; @@ -1596,7 +1596,7 @@ void asm_eol(void) exception(1, _("Unmatched instruction")); } - /* Operation crutiale: nous avons l'instruction qui correspond le mieux à notre + /* Operation cruciale: nous avons l'instruction qui correspond le mieux à notre expression, on va tenter de l'évaluer */ Initialise(&it); @@ -1623,6 +1623,37 @@ void asm_eol(void) CreerElement(instr->names[i], e_current)); } break; + case 'O': + if (instr->etypes) { + if (!strcmp(instr->names[i], "I")) { + if (e_current->e_subtype == E_VALUE) { + pushdword(e_current->avalue, 0); + } else { + pushdword(0, e_current); + } + } else { + exception(1, + _ + ("Unknow constant type in the meta language")); + } + } + break; + case 'o': + if (instr->etypes) { + if (!strcmp(instr->names[i], "I")) { + if (e_current->e_subtype == E_VALUE) { + exception(1, _("Can't have a direct value for a relative offset")); + } else { + pi = pushdword(0, e_current); + } + pi->Encoded -= pi->offset; + } else { + exception(1, + _ + ("Unknow constant type in the meta language")); + } + } + break; case 'P': t = (expression_t *) Emalloc(sizeof(expression_t)); t->e_type = t->e_subtype = E_VALUE; diff --git a/po/ProjetArchi.pot b/po/ProjetArchi.pot index 67a0380..ce20811 100644 --- a/po/ProjetArchi.pot +++ b/po/ProjetArchi.pot @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2001-04-15 18:45+0200\n" +"POT-Creation-Date: 2001-04-15 19:31+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -132,7 +132,7 @@ msgid "Pattern not matching..." msgstr "" #: lib/assembler.c:1325 lib/assembler.c:1358 lib/assembler.c:1619 -#: lib/assembler.c:1637 +#: lib/assembler.c:1637 lib/assembler.c:1653 lib/assembler.c:1668 msgid "Unknow constant type in the meta language" msgstr "" @@ -142,7 +142,7 @@ msgid "" msgstr "" #: lib/assembler.c:1370 lib/assembler.c:1398 lib/assembler.c:1406 -#: lib/assembler.c:1660 +#: lib/assembler.c:1691 msgid "Logical error in meta language" msgstr "" @@ -158,7 +158,7 @@ msgstr "" msgid "Value too large for field" msgstr "" -#: lib/assembler.c:1516 lib/assembler.c:1686 +#: lib/assembler.c:1516 lib/assembler.c:1717 msgid "Unknow instruction" msgstr "" @@ -186,46 +186,50 @@ msgstr "" msgid "Unmatched instruction" msgstr "" -#: lib/assembler.c:1652 +#: lib/assembler.c:1645 +msgid "Can't have a direct value for a relative offset" +msgstr "" + +#: lib/assembler.c:1683 msgid "Syntax error in meta language" msgstr "" -#: lib/assembler.c:1725 +#: lib/assembler.c:1756 msgid "Loading file" msgstr "" -#: lib/assembler.c:1726 lib/meta.c:516 +#: lib/assembler.c:1757 lib/meta.c:516 #, c-format msgid "Opening file '%s'" msgstr "" -#: lib/assembler.c:1734 lib/meta.c:524 +#: lib/assembler.c:1765 lib/meta.c:524 msgid "Reading file" msgstr "" -#: lib/assembler.c:1736 lib/meta.c:526 +#: lib/assembler.c:1767 lib/meta.c:526 #, c-format msgid "Reading line %i" msgstr "" -#: lib/assembler.c:1745 +#: lib/assembler.c:1776 #, c-format msgid "Summering line %s" msgstr "" -#: lib/assembler.c:1761 +#: lib/assembler.c:1792 msgid "Opening output file" msgstr "" -#: lib/assembler.c:1764 +#: lib/assembler.c:1795 msgid "Error writing output file" msgstr "" -#: lib/assembler.c:1768 +#: lib/assembler.c:1799 msgid "Error reading file" msgstr "" -#: lib/assembler.c:1770 +#: lib/assembler.c:1801 msgid "Writing output file" msgstr "" diff --git a/po/cat-id-tbl.c b/po/cat-id-tbl.c index f675359..7188a69 100644 --- a/po/cat-id-tbl.c +++ b/po/cat-id-tbl.c @@ -50,69 +50,70 @@ Error in the metalanguage (pattern should be here if not a constant type)", 31}, {"Bad array size", 40}, {"You can only have an instruction into a .text segment", 41}, {"Unmatched instruction", 42}, - {"Syntax error in meta language", 43}, - {"Loading file", 44}, - {"Opening file '%s'", 45}, - {"Reading file", 46}, - {"Reading line %i", 47}, - {"Summering line %s", 48}, - {"Opening output file", 49}, - {"Error writing output file", 50}, - {"Error reading file", 51}, - {"Writing output file", 52}, - {"Internal error into hashing", 53}, - {"Read line '%s'", 54}, - {"Analysing word '%s'", 55}, - {"Missing operator ':'", 56}, - {"Invalid number.", 57}, - {"Expecting ';' for field separator.", 58}, - {"Expecting ',' for field separator.", 59}, - {"Identifier incorrect.", 60}, - {"Error: Expecting a . after a =", 61}, - {"Extra parameters for field 'p'.", 62}, - {"Unexpected char at end of line.", 63}, - {"Expecting operator '=' for field 'p'.", 64}, - {"Error: character . expected.", 65}, - {"= expected after an implicit name", 66}, - {"Identifier incorrect", 67}, - {"expecting ; as field separator", 68}, - {"Loading meta file", 69}, - {"Meta parser init failed.", 70}, - {"Too many nested operators in expression.\n", 71}, - {"Too many nested functions calls in expression.\n", 72}, - {"Invalid unary operator", 73}, - {"Invalid binary operator", 74}, - {"Parse error: too much left parenthesis", 75}, - {"Parse error: too much right parenthesis", 76}, - {"Parse error: enclosure mismatch", 77}, - {"Invalid character", 78}, - {"Out of memory.", 79}, - {"Too much error contexts during pushcontext().", 80}, - {"Error context empty, but popcontext() called.", 81}, - {"FPU not implemented", 82}, + {"Can't have a direct value for a relative offset", 43}, + {"Syntax error in meta language", 44}, + {"Loading file", 45}, + {"Opening file '%s'", 46}, + {"Reading file", 47}, + {"Reading line %i", 48}, + {"Summering line %s", 49}, + {"Opening output file", 50}, + {"Error writing output file", 51}, + {"Error reading file", 52}, + {"Writing output file", 53}, + {"Internal error into hashing", 54}, + {"Read line '%s'", 55}, + {"Analysing word '%s'", 56}, + {"Missing operator ':'", 57}, + {"Invalid number.", 58}, + {"Expecting ';' for field separator.", 59}, + {"Expecting ',' for field separator.", 60}, + {"Identifier incorrect.", 61}, + {"Error: Expecting a . after a =", 62}, + {"Extra parameters for field 'p'.", 63}, + {"Unexpected char at end of line.", 64}, + {"Expecting operator '=' for field 'p'.", 65}, + {"Error: character . expected.", 66}, + {"= expected after an implicit name", 67}, + {"Identifier incorrect", 68}, + {"expecting ; as field separator", 69}, + {"Loading meta file", 70}, + {"Meta parser init failed.", 71}, + {"Too many nested operators in expression.\n", 72}, + {"Too many nested functions calls in expression.\n", 73}, + {"Invalid unary operator", 74}, + {"Invalid binary operator", 75}, + {"Parse error: too much left parenthesis", 76}, + {"Parse error: too much right parenthesis", 77}, + {"Parse error: enclosure mismatch", 78}, + {"Invalid character", 79}, + {"Out of memory.", 80}, + {"Too much error contexts during pushcontext().", 81}, + {"Error context empty, but popcontext() called.", 82}, + {"FPU not implemented", 83}, {"\ Assembler\n\ -\n", 83}, - {" o Initialising the meta engine... ", 84}, +\n", 84}, + {" o Initialising the meta engine... ", 85}, {"\ Done!\n\ - o Meta language loading... ", 85}, - {"Meta language loading failed.", 86}, + o Meta language loading... ", 86}, + {"Meta language loading failed.", 87}, {"\ Done!\n\ - o Initialising the assembler core...", 87}, - {"Assembler core init failed.", 88}, - {" Done!\n", 89}, - {"Signal received: segfault", 90}, + o Initialising the assembler core...", 88}, + {"Assembler core init failed.", 89}, + {" Done!\n", 90}, + {"Signal received: segfault", 91}, {"\ \n\ Performing initialisation...\n\ -\n", 91}, +\n", 92}, {"\ \n\ Performing shutdown...\n\ -\n", 92}, - {"Exitting, bye!\n", 93}, +\n", 93}, + {"Exitting, bye!\n", 94}, }; -int _msg_tbl_length = 93; +int _msg_tbl_length = 94; |