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; | 
