summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xXenogears/Makefile15
-rw-r--r--Xenogears/compil-2.lex11
-rw-r--r--Xenogears/compil.lex7
3 files changed, 24 insertions, 9 deletions
diff --git a/Xenogears/Makefile b/Xenogears/Makefile
index 65a1121..4fec754 100755
--- a/Xenogears/Makefile
+++ b/Xenogears/Makefile
@@ -2,8 +2,9 @@
CPPFLAGS=-Wall -g -O3 -mcpu=i686 -pedantic -pedantic-errors -I../includes
CXX=g++
+CC=gcc
-TARGET = reinsert main_dump Decrypt script-comp script-dec XenoCD1.sqr XenoCD2.sqr
+TARGET = reinsert main_dump Decrypt script-comp script-dec XenoCD1.sqr XenoCD2.sqr compil compil-2
all: ${TARGET}
@@ -22,6 +23,18 @@ script-comp: script-comp.o ../includes/fileutils.h ../includes/generic.h ../incl
script-dec: script-dec.o ../includes/fileutils.h ../includes/generic.h ../includes/lzss.h ../lib/lib.a ../generic/generic.a Makefile
${CXX} ${LDFLAGS} script-dec.o ../lib/lib.a ../generic/generic.a -o script-dec
+compil: compil.o
+ ${CC} ${LDFLAGS} compil.o -o compil
+
+compil-2: compil-2.o
+ ${CC} ${LDFLAGS} compil-2.o -o compil-2
+
+compil.c: compil.lex
+ lex -ocompil.c compil.lex
+
+compil-2.c: compil-2.lex
+ lex -ocompil-2.c compil-2.lex
+
clean:
rm -f *.o ${TARGET} compil.c
diff --git a/Xenogears/compil-2.lex b/Xenogears/compil-2.lex
index 805a964..931a04c 100644
--- a/Xenogears/compil-2.lex
+++ b/Xenogears/compil-2.lex
@@ -7,6 +7,8 @@
/* Waiting for OpCode arguments */
%s Op
+ #include <string.h>
+
int num_blocks = 0;
int num_lines = 0;
int cur_num_lines = 0;
@@ -21,8 +23,6 @@
%%
<INITIAL>"<Blocks:"\ *[[:digit:]]+">"\n {
- int i;
- char zeros[4] = {0, 0, 0, 0};
num_blocks = atoi(yytext + 8);
fprintf(stderr, "Number of blocks: %i\n", num_blocks);
@@ -175,9 +175,10 @@
<I>"<Bare"\ +[[:xdigit:]]{1,2}">" {
char str[5] = {'0', 'x', 0, 0, 0};
int d;
- for (yytext += 6; *yytext == ' '; yytext++);
- str[2] = *(yytext++);
- str[3] = *(yytext++);
+ char * _yytext = yytext;
+ for (_yytext += 6; *_yytext == ' '; _yytext++);
+ str[2] = *(_yytext++);
+ str[3] = *(_yytext++);
sscanf(str, "%i", &d);
if (d > 255) {
fprintf(stderr, "Error: Bare number too important: %i\n", d);
diff --git a/Xenogears/compil.lex b/Xenogears/compil.lex
index f6ceda8..7d221df 100644
--- a/Xenogears/compil.lex
+++ b/Xenogears/compil.lex
@@ -254,9 +254,10 @@
<I>"<Bare"\ +[[:xdigit:]]{1,2}">" {
char str[5] = {'0', 'x', 0, 0, 0};
int d;
- for (yytext += 6; *yytext == ' '; yytext++);
- str[2] = *(yytext++);
- str[3] = *(yytext++);
+ char * _yytext = yytext;
+ for (_yytext += 6; *_yytext == ' '; _yytext++);
+ str[2] = *(_yytext++);
+ str[3] = *(_yytext++);
sscanf(str, "%i", &d);
if (d > 255) {
fprintf(stderr, "Error: Bare number too important: %i\n", d);