summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/Makefile.am2
-rw-r--r--lib/Makefile.am6
-rw-r--r--lib/assembler.c71
-rw-r--r--po/POTFILES.in12
-rw-r--r--po/ProjetArchi.pot295
-rw-r--r--po/cat-id-tbl.c159
-rw-r--r--po/fr.po311
-rw-r--r--src/Makefile.am6
8 files changed, 588 insertions, 274 deletions
diff --git a/include/Makefile.am b/include/Makefile.am
index 1efe00a..c0bc500 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -1 +1 @@
-include_HEADERS = hash.h assembler.h meta.h parser.h numbers.h exceptions.h types.h
+include_HEADERS = alu.h archi.h assembler.h exceptions.h fpu.h hash.h interne.h memoire.h meta.h numbers.h parser.h registre.h types.h
diff --git a/lib/Makefile.am b/lib/Makefile.am
index b463138..f6172b3 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -2,10 +2,12 @@ localedir = $(datadir)/locale
DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@
AM_CFLAGS = -O3 -Wall -Wstrict-prototypes $(CFLAGS)
INCLUDES = -I. -I.. -I$(includedir) -I../include
-lib_LTLIBRARIES = libCompilo.la
+lib_LTLIBRARIES = libCompilo.la libSimul.la
libCompilo_la_SOURCES = assembler.c parser.c meta.c numbers.c hash.c exceptions.c
+libSimul_la_SOURCES = alu.c archi.c exceptions.c fpu.c interne.c memoire.c registre.c
libCompilo_la_LDFLAGS = -version-info $(ProjetArchi_VERSION_INFO)
+libSimul_la_LFDLAGS = -version-info $(ProjetArchi_VERSION_INFO)
-EXTRA_DIST = instructions.txt \ No newline at end of file
+EXTRA_DIST = instructions.txt
diff --git a/lib/assembler.c b/lib/assembler.c
index e727ce2..513a6be 100644
--- a/lib/assembler.c
+++ b/lib/assembler.c
@@ -1289,10 +1289,13 @@ static void evaluate_pattern(_TableauVariable * it, expression_t * e)
{
metaexpr_t *m, *n;
expression_t *t;
+ int tv;
if (!e->pattern) {
exception(1, _("Pattern not matching..."));
}
+
+ fprintf(stderr, "Evaluation de la pattern %s, index %i\n", e->pattern->name, e->index);
m = e->pattern->expr[e->index];
@@ -1309,7 +1312,7 @@ static void evaluate_pattern(_TableauVariable * it, expression_t * e)
}
} else {
if (m->string) {
- if (m->string != 'P') {
+ if (m->string[0] != 'P') {
exception(1,
_
("Error in the metalanguage (pattern should be here if not a constant type)"));
@@ -1319,8 +1322,8 @@ static void evaluate_pattern(_TableauVariable * it, expression_t * e)
t->e_type = t->e_subtype = E_VALUE;
t->avalue = e->index;
t->symbol = NULL;
- InsererVarDansTab(it, CreerElement(m->name, t))
- free(t);
+ InsererVarDansTab(it, CreerElement(m->name, t));
+ free(t);
}
}
}
@@ -1330,17 +1333,28 @@ static void evaluate_pattern(_TableauVariable * it, expression_t * e)
m = m->left;
if (m->string) {
if (m->type) {
- if (!strcmp(m->name, "I")) {
+ if (strcmp(m->name, "I") || strcmp(m->string, "O")) {
exception(1, _("Unknow constant type in the meta language"));
}
- if (e->child->e_subtype == E_VALUE) {
- pushdword(e->avalue, NULL);
- } else {
- pushdword(0, e);
+ tv = 0;
+ if (e->child->next->e_subtype == E_VALUE) {
+ tv = e->child->next->avalue;
+ }
+ if ((e->child->next->e_subtype == E_OPERATION)
+ && (e->child->next->child->e_subtype == E_VALUE)) {
+ tv = e->child->next->child->avalue;
}
+ pushdword(tv, e->child);
+ } else {
+ }
+ }
+ m = n;
+ m = m->right;
+ if (m->string) {
+ if (m->type) {
} else {
if (m->string) {
- if (m->string != 'P') {
+ if (m->string[0] != 'P') {
exception(1,
_
("Error in the metalanguage (pattern should be here if not a constant type)"));
@@ -1348,28 +1362,27 @@ static void evaluate_pattern(_TableauVariable * it, expression_t * e)
t = (expression_t *) Emalloc(sizeof(expression_t));
t->next = t->child = t->prev = t->father = NULL;
t->e_type = t->e_subtype = E_VALUE;
- t->avalue = e->index;
+ if (e->child->next->e_subtype == E_PATTERN) {
+ t->avalue = e->child->next->index;
+ } else {
+ t->avalue = e->child->next->child->next->index;
+ }
t->symbol = NULL;
- InsererVarDansTab(it, CreerElement(m->name, t))
- free(t);
+ InsererVarDansTab(it, CreerElement(m->name, t));
+ free(t);
+ } else {
+ exception(1, _("Logical error in meta language"));
}
}
}
- } else {
+ } else { /* Unaire */
m = m->right;
if (m->string) {
if (m->type) {
- if (!strcmp(m->name, "I")) {
- exception(1, _("Unknow constant type in the meta language"));
- }
- if (e->e_subtype == E_VALUE) {
- pushdword(e->avalue, NULL);
- } else {
- pushdword(0, e);
- }
+ exception(1, _("Logical error in meta language"));
} else {
if (m->string) {
- if (m->string != 'P') {
+ if (m->string[0] != 'P') {
exception(1,
_
("Error in the metalanguage (pattern should be here if not a constant type)"));
@@ -1377,10 +1390,10 @@ static void evaluate_pattern(_TableauVariable * it, expression_t * e)
t = (expression_t *) Emalloc(sizeof(expression_t));
t->next = t->child = t->prev = t->father = NULL;
t->e_type = t->e_subtype = E_VALUE;
- t->avalue = e->index;
+ t->avalue = e->child->index;
t->symbol = NULL;
- InsererVarDansTab(it, CreerElement(m->name, t))
- free(t);
+ InsererVarDansTab(it, CreerElement(m->name, t));
+ free(t);
}
}
}
@@ -1523,9 +1536,6 @@ void asm_eol(void)
InsererVarDansTab(&it, CreerElement(instr->names[i], t));
free(t);
evaluate_pattern(&it, e_current);
-
-
-
break;
default:
exception(1, _("Unknow constant type in the meta language"));
@@ -1537,6 +1547,11 @@ void asm_eol(void)
free_expr(e_current);
e_current = e_line;
}
+
+ fprintf(stderr, "Variables explicites:\n");
+ AfficheTableau(it);
+
+ DetruitTab(&it);
diff --git a/po/POTFILES.in b/po/POTFILES.in
index fadcafe..9bc5c82 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -1,6 +1,14 @@
+lib/assembler.c
lib/hash.c
lib/meta.c
-lib/parser.c
-lib/assembler.c
lib/numbers.c
+lib/parser.c
+lib/exceptions.c
+lib/interne.c
+lib/alu.c
+lib/archi.c
+lib/fpu.c
+lib/memoire.c
+lib/registre.c
src/compilo.c
+src/simul.c
diff --git a/po/ProjetArchi.pot b/po/ProjetArchi.pot
index 574e0d7..3c84869 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 03:08+0200\n"
+"POT-Creation-Date: 2001-04-15 04:18+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"
@@ -14,128 +14,6 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: ENCODING\n"
-#: lib/hash.c:14
-msgid "Internal error into hashing"
-msgstr ""
-
-#: lib/meta.c:79
-#, c-format
-msgid "Read line '%s'"
-msgstr ""
-
-#: lib/meta.c:84 lib/meta.c:164 lib/meta.c:177 lib/meta.c:252 lib/meta.c:262
-#: lib/meta.c:287 lib/meta.c:294
-#, c-format
-msgid "Analysing word '%s'"
-msgstr ""
-
-#: lib/meta.c:89
-msgid "Missing operator ':'"
-msgstr ""
-
-#: lib/meta.c:118
-msgid "Invalid number."
-msgstr ""
-
-#: lib/meta.c:122
-msgid "Expecting ';' for field separator."
-msgstr ""
-
-#: lib/meta.c:142
-msgid "Expecting ',' for field separator."
-msgstr ""
-
-#: lib/meta.c:168 lib/meta.c:180 lib/meta.c:220 lib/meta.c:240 lib/meta.c:265
-#: lib/meta.c:279
-msgid "Identifier incorrect."
-msgstr ""
-
-#: lib/meta.c:173
-msgid "Error: Expecting a . after a ="
-msgstr ""
-
-#: lib/meta.c:215
-msgid "Extra parameters for field 'p'."
-msgstr ""
-
-#: lib/meta.c:223
-msgid "Unexpected char at end of line."
-msgstr ""
-
-#: lib/meta.c:236
-msgid "Expecting operator '=' for field 'p'."
-msgstr ""
-
-#: lib/meta.c:258
-msgid "Error: character . expected."
-msgstr ""
-
-#: lib/meta.c:283
-msgid "= expected after an implicit name"
-msgstr ""
-
-#: lib/meta.c:297 lib/meta.c:306
-msgid "Identifier incorrect"
-msgstr ""
-
-#: lib/meta.c:316
-msgid "expecting ; as field separator"
-msgstr ""
-
-#: lib/meta.c:515
-msgid "Loading meta file"
-msgstr ""
-
-#: lib/assembler.c:1600 lib/meta.c:516
-#, c-format
-msgid "Opening file '%s'"
-msgstr ""
-
-#: lib/assembler.c:1608 lib/meta.c:524
-msgid "Reading file"
-msgstr ""
-
-#: lib/assembler.c:1610 lib/meta.c:526
-#, c-format
-msgid "Reading line %i"
-msgstr ""
-
-#: lib/meta.c:558 src/compilo.c:22
-msgid "Meta parser init failed."
-msgstr ""
-
-#: lib/parser.c:96
-msgid "Too many nested operators in expression.\n"
-msgstr ""
-
-#: lib/parser.c:127
-msgid "Too many nested functions calls in expression.\n"
-msgstr ""
-
-#: lib/parser.c:202
-msgid "Invalid unary operator"
-msgstr ""
-
-#: lib/parser.c:204
-msgid "Invalid binary operator"
-msgstr ""
-
-#: lib/parser.c:228
-msgid "Parse error: too much left parenthesis"
-msgstr ""
-
-#: lib/parser.c:238 lib/parser.c:258
-msgid "Parse error: too much right parenthesis"
-msgstr ""
-
-#: lib/parser.c:243 lib/parser.c:263
-msgid "Parse error: enclosure mismatch"
-msgstr ""
-
-#: lib/parser.c:279
-msgid "Invalid character"
-msgstr ""
-
#: lib/assembler.c:167
msgid "You have to be into the .text or the .data segment to define a value."
msgstr ""
@@ -245,44 +123,191 @@ msgstr ""
msgid "Unknow predefined string into the meta language"
msgstr ""
-#: lib/assembler.c:1294 lib/assembler.c:1355 lib/assembler.c:1390
-#: lib/assembler.c:1395 lib/assembler.c:1402
+#: lib/assembler.c:1295
msgid "Pattern not matching..."
msgstr ""
-#: lib/assembler.c:1449 lib/assembler.c:1561
+#: lib/assembler.c:1306 lib/assembler.c:1337 lib/assembler.c:1524
+#: lib/assembler.c:1541
+msgid "Unknow constant type in the meta language"
+msgstr ""
+
+#: lib/assembler.c:1318 lib/assembler.c:1360 lib/assembler.c:1388
+msgid ""
+"Error in the metalanguage (pattern should be here if not a constant type)"
+msgstr ""
+
+#: lib/assembler.c:1374 lib/assembler.c:1382
+msgid "Logical error in meta language"
+msgstr ""
+
+#: lib/assembler.c:1446 lib/assembler.c:1560
msgid "Unknow instruction"
msgstr ""
-#: lib/assembler.c:1476
+#: lib/assembler.c:1473
msgid "Bad constant for an immediate value"
msgstr ""
-#: lib/assembler.c:1493
+#: lib/assembler.c:1490
msgid "Bad constant for a string"
msgstr ""
-#: lib/assembler.c:1501
+#: lib/assembler.c:1498
msgid "You can only have an instruction into a .text segment"
msgstr ""
-#: lib/assembler.c:1504
+#: lib/assembler.c:1501
msgid "Unmatched instruction"
msgstr ""
-#: lib/assembler.c:1527 lib/assembler.c:1547
-msgid "Unknow constant type in the meta language"
+#: lib/assembler.c:1598
+msgid "Loading file"
msgstr ""
-#: lib/assembler.c:1599
-msgid "Loading file"
+#: lib/assembler.c:1599 lib/meta.c:516
+#, c-format
+msgid "Opening file '%s'"
+msgstr ""
+
+#: lib/assembler.c:1607 lib/meta.c:524
+msgid "Reading file"
msgstr ""
-#: lib/assembler.c:1619
+#: lib/assembler.c:1609 lib/meta.c:526
+#, c-format
+msgid "Reading line %i"
+msgstr ""
+
+#: lib/assembler.c:1618
#, c-format
msgid "Summering line %s"
msgstr ""
+#: lib/hash.c:14
+msgid "Internal error into hashing"
+msgstr ""
+
+#: lib/meta.c:79
+#, c-format
+msgid "Read line '%s'"
+msgstr ""
+
+#: lib/meta.c:84 lib/meta.c:164 lib/meta.c:177 lib/meta.c:252 lib/meta.c:262
+#: lib/meta.c:287 lib/meta.c:294
+#, c-format
+msgid "Analysing word '%s'"
+msgstr ""
+
+#: lib/meta.c:89
+msgid "Missing operator ':'"
+msgstr ""
+
+#: lib/meta.c:118
+msgid "Invalid number."
+msgstr ""
+
+#: lib/meta.c:122
+msgid "Expecting ';' for field separator."
+msgstr ""
+
+#: lib/meta.c:142
+msgid "Expecting ',' for field separator."
+msgstr ""
+
+#: lib/meta.c:168 lib/meta.c:180 lib/meta.c:220 lib/meta.c:240 lib/meta.c:265
+#: lib/meta.c:279
+msgid "Identifier incorrect."
+msgstr ""
+
+#: lib/meta.c:173
+msgid "Error: Expecting a . after a ="
+msgstr ""
+
+#: lib/meta.c:215
+msgid "Extra parameters for field 'p'."
+msgstr ""
+
+#: lib/meta.c:223
+msgid "Unexpected char at end of line."
+msgstr ""
+
+#: lib/meta.c:236
+msgid "Expecting operator '=' for field 'p'."
+msgstr ""
+
+#: lib/meta.c:258
+msgid "Error: character . expected."
+msgstr ""
+
+#: lib/meta.c:283
+msgid "= expected after an implicit name"
+msgstr ""
+
+#: lib/meta.c:297 lib/meta.c:306
+msgid "Identifier incorrect"
+msgstr ""
+
+#: lib/meta.c:316
+msgid "expecting ; as field separator"
+msgstr ""
+
+#: lib/meta.c:515
+msgid "Loading meta file"
+msgstr ""
+
+#: lib/meta.c:558 src/compilo.c:22
+msgid "Meta parser init failed."
+msgstr ""
+
+#: lib/parser.c:96
+msgid "Too many nested operators in expression.\n"
+msgstr ""
+
+#: lib/parser.c:127
+msgid "Too many nested functions calls in expression.\n"
+msgstr ""
+
+#: lib/parser.c:202
+msgid "Invalid unary operator"
+msgstr ""
+
+#: lib/parser.c:204
+msgid "Invalid binary operator"
+msgstr ""
+
+#: lib/parser.c:228
+msgid "Parse error: too much left parenthesis"
+msgstr ""
+
+#: lib/parser.c:238 lib/parser.c:258
+msgid "Parse error: too much right parenthesis"
+msgstr ""
+
+#: lib/parser.c:243 lib/parser.c:263
+msgid "Parse error: enclosure mismatch"
+msgstr ""
+
+#: lib/parser.c:279
+msgid "Invalid character"
+msgstr ""
+
+#: lib/exceptions.c:26 lib/exceptions.c:40
+msgid "Out of memory."
+msgstr ""
+
+#: lib/exceptions.c:51
+msgid "Too much error contexts during pushcontext()."
+msgstr ""
+
+#: lib/exceptions.c:59
+msgid "Error context empty, but popcontext() called."
+msgstr ""
+
+#: lib/fpu.c:14
+msgid "FPU not implemented"
+msgstr ""
+
#: src/compilo.c:15
msgid ""
"Assembler\n"
diff --git a/po/cat-id-tbl.c b/po/cat-id-tbl.c
index e9facc5..f351e39 100644
--- a/po/cat-id-tbl.c
+++ b/po/cat-id-tbl.c
@@ -8,93 +8,100 @@
const struct _msg_ent _msg_tbl[] = {
{"", 1},
- {"Internal error into hashing", 2},
- {"Read line '%s'", 3},
- {"Analysing word '%s'", 4},
- {"Missing operator ':'", 5},
- {"Invalid number.", 6},
- {"Expecting ';' for field separator.", 7},
- {"Expecting ',' for field separator.", 8},
- {"Identifier incorrect.", 9},
- {"Error: Expecting a . after a =", 10},
- {"Extra parameters for field 'p'.", 11},
- {"Unexpected char at end of line.", 12},
- {"Expecting operator '=' for field 'p'.", 13},
- {"Error: character . expected.", 14},
- {"= expected after an implicit name", 15},
- {"Identifier incorrect", 16},
- {"expecting ; as field separator", 17},
- {"Loading meta file", 18},
- {"Opening file '%s'", 19},
- {"Reading file", 20},
- {"Reading line %i", 21},
- {"Meta parser init failed.", 22},
- {"Too many nested operators in expression.\n", 23},
- {"Too many nested functions calls in expression.\n", 24},
- {"Invalid unary operator", 25},
- {"Invalid binary operator", 26},
- {"Parse error: too much left parenthesis", 27},
- {"Parse error: too much right parenthesis", 28},
- {"Parse error: enclosure mismatch", 29},
- {"Invalid character", 30},
- {"You have to be into the .text or the .data segment to define a value.", 31},
- {"Label already defined", 32},
- {"You can't have the startpoint elsewhere than the .text segment", 33},
- {"Not a valid . directive", 34},
- {"Not a valid # directive", 35},
- {"Error: extra parameters to a . directive.", 36},
- {"Too much arguments to #undef", 37},
- {"Defined symbol not found.", 38},
- {"Too much arguments to #include", 39},
- {"Including file at line %i", 40},
- {"Zero divide.", 41},
- {"Error: unable to compute the immediate value", 42},
- {"Function unknow", 43},
- {"Addresses addition not allowed", 44},
- {"You can only use the decal operator on labels", 45},
- {"Address operation invalid", 46},
- {"Addresses operations not allowed", 47},
- {"Expression too complex or invalid", 48},
- {"Address type not supported", 49},
- {"Address addition not supported", 50},
- {"Expression invalid", 51},
- {"Expression too complex", 52},
- {"Something wrong, nested operator called...", 53},
- {"Something wrong, lparenthesis operator called...", 54},
- {"Something wrong, should never got here...", 55},
- {"Unknow predefined string into the meta language", 56},
- {"Pattern not matching...", 57},
- {"Unknow instruction", 58},
- {"Bad constant for an immediate value", 59},
- {"Bad constant for a string", 60},
- {"You can only have an instruction into a .text segment", 61},
- {"Unmatched instruction", 62},
- {"Unknow constant type in the meta language", 63},
- {"Loading file", 64},
- {"Summering line %s", 65},
+ {"You have to be into the .text or the .data segment to define a value.", 2},
+ {"Label already defined", 3},
+ {"You can't have the startpoint elsewhere than the .text segment", 4},
+ {"Not a valid . directive", 5},
+ {"Not a valid # directive", 6},
+ {"Error: extra parameters to a . directive.", 7},
+ {"Too much arguments to #undef", 8},
+ {"Defined symbol not found.", 9},
+ {"Too much arguments to #include", 10},
+ {"Including file at line %i", 11},
+ {"Zero divide.", 12},
+ {"Error: unable to compute the immediate value", 13},
+ {"Function unknow", 14},
+ {"Addresses addition not allowed", 15},
+ {"You can only use the decal operator on labels", 16},
+ {"Address operation invalid", 17},
+ {"Addresses operations not allowed", 18},
+ {"Expression too complex or invalid", 19},
+ {"Address type not supported", 20},
+ {"Address addition not supported", 21},
+ {"Expression invalid", 22},
+ {"Expression too complex", 23},
+ {"Something wrong, nested operator called...", 24},
+ {"Something wrong, lparenthesis operator called...", 25},
+ {"Something wrong, should never got here...", 26},
+ {"Unknow predefined string into the meta language", 27},
+ {"Pattern not matching...", 28},
+ {"Unknow constant type in the meta language", 29},
+ {"\
+Error in the metalanguage (pattern should be here if not a constant type)", 30},
+ {"Logical error in meta language", 31},
+ {"Unknow instruction", 32},
+ {"Bad constant for an immediate value", 33},
+ {"Bad constant for a string", 34},
+ {"You can only have an instruction into a .text segment", 35},
+ {"Unmatched instruction", 36},
+ {"Loading file", 37},
+ {"Opening file '%s'", 38},
+ {"Reading file", 39},
+ {"Reading line %i", 40},
+ {"Summering line %s", 41},
+ {"Internal error into hashing", 42},
+ {"Read line '%s'", 43},
+ {"Analysing word '%s'", 44},
+ {"Missing operator ':'", 45},
+ {"Invalid number.", 46},
+ {"Expecting ';' for field separator.", 47},
+ {"Expecting ',' for field separator.", 48},
+ {"Identifier incorrect.", 49},
+ {"Error: Expecting a . after a =", 50},
+ {"Extra parameters for field 'p'.", 51},
+ {"Unexpected char at end of line.", 52},
+ {"Expecting operator '=' for field 'p'.", 53},
+ {"Error: character . expected.", 54},
+ {"= expected after an implicit name", 55},
+ {"Identifier incorrect", 56},
+ {"expecting ; as field separator", 57},
+ {"Loading meta file", 58},
+ {"Meta parser init failed.", 59},
+ {"Too many nested operators in expression.\n", 60},
+ {"Too many nested functions calls in expression.\n", 61},
+ {"Invalid unary operator", 62},
+ {"Invalid binary operator", 63},
+ {"Parse error: too much left parenthesis", 64},
+ {"Parse error: too much right parenthesis", 65},
+ {"Parse error: enclosure mismatch", 66},
+ {"Invalid character", 67},
+ {"Out of memory.", 68},
+ {"Too much error contexts during pushcontext().", 69},
+ {"Error context empty, but popcontext() called.", 70},
+ {"FPU not implemented", 71},
{"\
Assembler\n\
-\n", 66},
- {" o Initialising the meta engine... ", 67},
+\n", 72},
+ {" o Initialising the meta engine... ", 73},
{"\
Done!\n\
- o Meta language loading... ", 68},
- {"Meta language loading failed.", 69},
+ o Meta language loading... ", 74},
+ {"Meta language loading failed.", 75},
{"\
Done!\n\
- o Initialising the assembler core...", 70},
- {"Assembler core init failed.", 71},
- {" Done!\n", 72},
- {"Signal received: segfault", 73},
+ o Initialising the assembler core...", 76},
+ {"Assembler core init failed.", 77},
+ {" Done!\n", 78},
+ {"Signal received: segfault", 79},
{"\
\n\
Performing initialisation...\n\
-\n", 74},
+\n", 80},
{"\
\n\
Performing shutdown...\n\
-\n", 75},
- {"Exitting, bye!\n", 76},
+\n", 81},
+ {"Exitting, bye!\n", 82},
};
-int _msg_tbl_length = 76;
+int _msg_tbl_length = 82;
diff --git a/po/fr.po b/po/fr.po
index 05b84a9..3c84869 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2001-03-30 01:19+0200\n"
+"POT-Creation-Date: 2001-04-15 04:18+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"
@@ -14,98 +14,353 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: ENCODING\n"
-#: lib/meta.c:68
+#: lib/assembler.c:167
+msgid "You have to be into the .text or the .data segment to define a value."
+msgstr ""
+
+#: lib/assembler.c:190
+msgid "Label already defined"
+msgstr ""
+
+#: lib/assembler.c:253
+msgid "You can't have the startpoint elsewhere than the .text segment"
+msgstr ""
+
+#: lib/assembler.c:394
+msgid "Not a valid . directive"
+msgstr ""
+
+#: lib/assembler.c:423
+msgid "Not a valid # directive"
+msgstr ""
+
+#. Cas des directives .
+#: lib/assembler.c:431
+msgid "Error: extra parameters to a . directive."
+msgstr ""
+
+#: lib/assembler.c:534
+msgid "Too much arguments to #undef"
+msgstr ""
+
+#: lib/assembler.c:538
+msgid "Defined symbol not found."
+msgstr ""
+
+#: lib/assembler.c:544
+msgid "Too much arguments to #include"
+msgstr ""
+
+#: lib/assembler.c:546
+#, c-format
+msgid "Including file at line %i"
+msgstr ""
+
+#: lib/assembler.c:599 lib/assembler.c:605
+msgid "Zero divide."
+msgstr ""
+
+#: lib/assembler.c:618 lib/assembler.c:625
+msgid "Error: unable to compute the immediate value"
+msgstr ""
+
+#: lib/assembler.c:634
+msgid "Function unknow"
+msgstr ""
+
+#: lib/assembler.c:641
+msgid "Addresses addition not allowed"
+msgstr ""
+
+#: lib/assembler.c:645
+msgid "You can only use the decal operator on labels"
+msgstr ""
+
+#: lib/assembler.c:650 lib/assembler.c:653 lib/assembler.c:684
+msgid "Address operation invalid"
+msgstr ""
+
+#: lib/assembler.c:656 lib/assembler.c:688
+msgid "Addresses operations not allowed"
+msgstr ""
+
+#: lib/assembler.c:659 lib/assembler.c:781 lib/assembler.c:818
+#: lib/assembler.c:892
+msgid "Expression too complex or invalid"
+msgstr ""
+
+#: lib/assembler.c:692 lib/assembler.c:705 lib/assembler.c:758
+#: lib/assembler.c:770 lib/assembler.c:807
+msgid "Address type not supported"
+msgstr ""
+
+#: lib/assembler.c:774
+msgid "Address addition not supported"
+msgstr ""
+
+#: lib/assembler.c:811 lib/assembler.c:863
+msgid "Expression invalid"
+msgstr ""
+
+#. Bon si l'on est ici, c'est pas bon signe non plus...
+#: lib/assembler.c:936
+msgid "Expression too complex"
+msgstr ""
+
+#: lib/assembler.c:997
+msgid "Something wrong, nested operator called..."
+msgstr ""
+
+#: lib/assembler.c:1068
+msgid "Something wrong, lparenthesis operator called..."
+msgstr ""
+
+#: lib/assembler.c:1071
+msgid "Something wrong, should never got here..."
+msgstr ""
+
+#: lib/assembler.c:1238
+msgid "Unknow predefined string into the meta language"
+msgstr ""
+
+#: lib/assembler.c:1295
+msgid "Pattern not matching..."
+msgstr ""
+
+#: lib/assembler.c:1306 lib/assembler.c:1337 lib/assembler.c:1524
+#: lib/assembler.c:1541
+msgid "Unknow constant type in the meta language"
+msgstr ""
+
+#: lib/assembler.c:1318 lib/assembler.c:1360 lib/assembler.c:1388
+msgid ""
+"Error in the metalanguage (pattern should be here if not a constant type)"
+msgstr ""
+
+#: lib/assembler.c:1374 lib/assembler.c:1382
+msgid "Logical error in meta language"
+msgstr ""
+
+#: lib/assembler.c:1446 lib/assembler.c:1560
+msgid "Unknow instruction"
+msgstr ""
+
+#: lib/assembler.c:1473
+msgid "Bad constant for an immediate value"
+msgstr ""
+
+#: lib/assembler.c:1490
+msgid "Bad constant for a string"
+msgstr ""
+
+#: lib/assembler.c:1498
+msgid "You can only have an instruction into a .text segment"
+msgstr ""
+
+#: lib/assembler.c:1501
+msgid "Unmatched instruction"
+msgstr ""
+
+#: lib/assembler.c:1598
+msgid "Loading file"
+msgstr ""
+
+#: lib/assembler.c:1599 lib/meta.c:516
+#, c-format
+msgid "Opening file '%s'"
+msgstr ""
+
+#: lib/assembler.c:1607 lib/meta.c:524
+msgid "Reading file"
+msgstr ""
+
+#: lib/assembler.c:1609 lib/meta.c:526
+#, c-format
+msgid "Reading line %i"
+msgstr ""
+
+#: lib/assembler.c:1618
+#, c-format
+msgid "Summering line %s"
+msgstr ""
+
+#: lib/hash.c:14
+msgid "Internal error into hashing"
+msgstr ""
+
+#: lib/meta.c:79
+#, c-format
+msgid "Read line '%s'"
+msgstr ""
+
+#: lib/meta.c:84 lib/meta.c:164 lib/meta.c:177 lib/meta.c:252 lib/meta.c:262
+#: lib/meta.c:287 lib/meta.c:294
+#, c-format
+msgid "Analysing word '%s'"
+msgstr ""
+
+#: lib/meta.c:89
msgid "Missing operator ':'"
msgstr ""
-#: lib/meta.c:96
+#: lib/meta.c:118
msgid "Invalid number."
msgstr ""
-#: lib/meta.c:100
+#: lib/meta.c:122
msgid "Expecting ';' for field separator."
msgstr ""
-#: lib/meta.c:119
+#: lib/meta.c:142
msgid "Expecting ',' for field separator."
msgstr ""
-#: lib/meta.c:142 lib/meta.c:151 lib/meta.c:189 lib/meta.c:209 lib/meta.c:228
-#: lib/meta.c:242
+#: lib/meta.c:168 lib/meta.c:180 lib/meta.c:220 lib/meta.c:240 lib/meta.c:265
+#: lib/meta.c:279
msgid "Identifier incorrect."
msgstr ""
-#: lib/meta.c:147
+#: lib/meta.c:173
msgid "Error: Expecting a . after a ="
msgstr ""
-#: lib/meta.c:184
+#: lib/meta.c:215
msgid "Extra parameters for field 'p'."
msgstr ""
-#: lib/meta.c:192
+#: lib/meta.c:223
msgid "Unexpected char at end of line."
msgstr ""
-#: lib/meta.c:205
+#: lib/meta.c:236
msgid "Expecting operator '=' for field 'p'."
msgstr ""
-#: lib/meta.c:224
+#: lib/meta.c:258
msgid "Error: character . expected."
msgstr ""
-#: lib/meta.c:246
+#: lib/meta.c:283
msgid "= expected after an implicit name"
msgstr ""
-#: lib/meta.c:254 lib/meta.c:263
+#: lib/meta.c:297 lib/meta.c:306
msgid "Identifier incorrect"
msgstr ""
-#: lib/meta.c:273
+#: lib/meta.c:316
msgid "expecting ; as field separator"
msgstr ""
-#: lib/meta.c:455 lib/meta.c:464 src/compilo.c:12 src/compilo.c:21
-msgid "Out of memory."
+#: lib/meta.c:515
+msgid "Loading meta file"
msgstr ""
-#: lib/meta.c:486
+#: lib/meta.c:558 src/compilo.c:22
msgid "Meta parser init failed."
msgstr ""
-#: lib/parser.c:81
+#: lib/parser.c:96
msgid "Too many nested operators in expression.\n"
msgstr ""
-#: lib/parser.c:110
+#: lib/parser.c:127
msgid "Too many nested functions calls in expression.\n"
msgstr ""
-#: lib/parser.c:174
+#: lib/parser.c:202
msgid "Invalid unary operator"
msgstr ""
-#: lib/parser.c:176
+#: lib/parser.c:204
msgid "Invalid binary operator"
msgstr ""
-#: lib/parser.c:196
+#: lib/parser.c:228
msgid "Parse error: too much left parenthesis"
msgstr ""
-#: lib/parser.c:203 lib/parser.c:222
+#: lib/parser.c:238 lib/parser.c:258
msgid "Parse error: too much right parenthesis"
msgstr ""
-#: lib/parser.c:208 lib/parser.c:227
+#: lib/parser.c:243 lib/parser.c:263
msgid "Parse error: enclosure mismatch"
msgstr ""
-#: lib/parser.c:240
+#: lib/parser.c:279
msgid "Invalid character"
msgstr ""
-#~ msgid "Hello World!\n"
-#~ msgstr "Bonjour le monde!\n"
+#: lib/exceptions.c:26 lib/exceptions.c:40
+msgid "Out of memory."
+msgstr ""
+
+#: lib/exceptions.c:51
+msgid "Too much error contexts during pushcontext()."
+msgstr ""
+
+#: lib/exceptions.c:59
+msgid "Error context empty, but popcontext() called."
+msgstr ""
+
+#: lib/fpu.c:14
+msgid "FPU not implemented"
+msgstr ""
+
+#: src/compilo.c:15
+msgid ""
+"Assembler\n"
+"\n"
+msgstr ""
+
+#: src/compilo.c:19
+msgid " o Initialising the meta engine... "
+msgstr ""
+
+#: src/compilo.c:25
+msgid ""
+" Done!\n"
+" o Meta language loading... "
+msgstr ""
+
+#: src/compilo.c:28
+msgid "Meta language loading failed."
+msgstr ""
+
+#: src/compilo.c:31
+msgid ""
+" Done!\n"
+" o Initialising the assembler core..."
+msgstr ""
+
+#: src/compilo.c:34
+msgid "Assembler core init failed."
+msgstr ""
+
+#: src/compilo.c:37
+msgid " Done!\n"
+msgstr ""
+
+#: src/compilo.c:46
+msgid "Signal received: segfault"
+msgstr ""
+
+#. signal(SIGSEGV, segfaulthand);
+#: src/compilo.c:54
+msgid ""
+"\n"
+"Performing initialisation...\n"
+"\n"
+msgstr ""
+
+#: src/compilo.c:59
+msgid ""
+"\n"
+"Performing shutdown...\n"
+"\n"
+msgstr ""
+
+#: src/compilo.c:62
+msgid "Exitting, bye!\n"
+msgstr ""
diff --git a/src/Makefile.am b/src/Makefile.am
index 0dfd182..f340432 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -3,10 +3,12 @@ DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@
AM_CFLAGS = -O3 -Wall -Wstrict-prototypes $(CFLAGS)
INCLUDES = -I. -I.. -I$(includedir) -I../include
-bin_PROGRAMS = compilo
+bin_PROGRAMS = compilo simul
compilo_SOURCES = compilo.c
+simul_SOURCES = simul.c
LDADD = ../lib/libCompilo.la
-compilo_LDADD = $(LDADD)
+compilo_LDADD = ../lib/libCompilo.la
+simul_LDADD = ../lib/libSimul.la