summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/assembler.c35
-rw-r--r--po/ProjetArchi.pot32
-rw-r--r--po/cat-id-tbl.c105
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;