nabaztag_hack_kit 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +7 -0
- data/.travis.yml +3 -0
- data/CHANGELOG.md +11 -0
- data/Gemfile +4 -0
- data/README.md +119 -0
- data/Rakefile +21 -0
- data/bin/mtl_comp +41 -0
- data/bin/mtl_merge +22 -0
- data/bin/mtl_simu +40 -0
- data/bytecode/lib/buffer.mtl +109 -0
- data/bytecode/lib/button.mtl +27 -0
- data/bytecode/lib/data_helper.mtl +88 -0
- data/bytecode/lib/ear.mtl +90 -0
- data/bytecode/lib/led.mtl +33 -0
- data/bytecode/lib/rfid.mtl +50 -0
- data/bytecode/main.mtl +129 -0
- data/config.ru +6 -0
- data/ext/bytecode/Commands.md +172 -0
- data/ext/bytecode/Docs.md +488 -0
- data/ext/bytecode/README.md +5 -0
- data/ext/bytecode/lib/arp.mtl +159 -0
- data/ext/bytecode/lib/cfg.mtl +74 -0
- data/ext/bytecode/lib/choreos.mtl +1487 -0
- data/ext/bytecode/lib/dhcp.mtl +152 -0
- data/ext/bytecode/lib/dns.mtl +89 -0
- data/ext/bytecode/lib/http.mtl +84 -0
- data/ext/bytecode/lib/tcp.mtl +340 -0
- data/ext/bytecode/lib/udp.mtl +49 -0
- data/ext/bytecode/lib/util.mtl +74 -0
- data/ext/bytecode/lib/var.mtl +15 -0
- data/ext/bytecode/lib/wifi.mtl +243 -0
- data/ext/bytecode/nominal-ping.mtl +5828 -0
- data/ext/mtl/Makefile +42 -0
- data/ext/mtl/README.md +13 -0
- data/ext/mtl/bc.cpp +1891 -0
- data/ext/mtl/conf.bin.sans_password +0 -0
- data/ext/mtl/config.txt +5 -0
- data/ext/mtl/dumpbc.c +2566 -0
- data/ext/mtl/extconf.rb +1 -0
- data/ext/mtl/linux_simu.c +271 -0
- data/ext/mtl/linux_simuaudio.c +16 -0
- data/ext/mtl/linux_simuaudio.h +18 -0
- data/ext/mtl/linux_simunet.c +620 -0
- data/ext/mtl/linux_simunet.h +7 -0
- data/ext/mtl/log.c +297 -0
- data/ext/mtl/log.h +20 -0
- data/ext/mtl/main_compiler.cpp +104 -0
- data/ext/mtl/main_simu.cpp +221 -0
- data/ext/mtl/mp3/GTKANAL.H +97 -0
- data/ext/mtl/mp3/LAYER3.C +2090 -0
- data/ext/mtl/mp3/TABINIT.C +82 -0
- data/ext/mtl/mp3/common.c +265 -0
- data/ext/mtl/mp3/dct64_i386.c +316 -0
- data/ext/mtl/mp3/decode_i386.c +155 -0
- data/ext/mtl/mp3/huffman.h +332 -0
- data/ext/mtl/mp3/interface.c +258 -0
- data/ext/mtl/mp3/mpg123.h +182 -0
- data/ext/mtl/mp3/mpglib.h +44 -0
- data/ext/mtl/properties.c +293 -0
- data/ext/mtl/properties.h +10 -0
- data/ext/mtl/simu.c +750 -0
- data/ext/mtl/simuaudio.c +662 -0
- data/ext/mtl/simuaudio.h +74 -0
- data/ext/mtl/simunet.c +400 -0
- data/ext/mtl/simunet.h +30 -0
- data/ext/mtl/utils/correct_const.sh +34 -0
- data/ext/mtl/vaudio.c +677 -0
- data/ext/mtl/vaudio.h +46 -0
- data/ext/mtl/vbc.h +160 -0
- data/ext/mtl/vbc_str.h +166 -0
- data/ext/mtl/vcomp/Makefile +29 -0
- data/ext/mtl/vcomp/bootstrap.cpp +89 -0
- data/ext/mtl/vcomp/compiler.cpp +470 -0
- data/ext/mtl/vcomp/compiler.h +200 -0
- data/ext/mtl/vcomp/compiler_file.cpp +929 -0
- data/ext/mtl/vcomp/compiler_prog.cpp +250 -0
- data/ext/mtl/vcomp/compiler_term.cpp +1053 -0
- data/ext/mtl/vcomp/compiler_type.cpp +872 -0
- data/ext/mtl/vcomp/compiler_var.cpp +289 -0
- data/ext/mtl/vcomp/file.cpp +79 -0
- data/ext/mtl/vcomp/file.h +39 -0
- data/ext/mtl/vcomp/filesystem.h +14 -0
- data/ext/mtl/vcomp/interpreter.cpp +85 -0
- data/ext/mtl/vcomp/interpreter.h +121 -0
- data/ext/mtl/vcomp/memory.cpp +241 -0
- data/ext/mtl/vcomp/memory.h +326 -0
- data/ext/mtl/vcomp/param.h +95 -0
- data/ext/mtl/vcomp/parser.cpp +427 -0
- data/ext/mtl/vcomp/parser.h +97 -0
- data/ext/mtl/vcomp/parser_xml.cpp +124 -0
- data/ext/mtl/vcomp/prodbuffer.cpp +125 -0
- data/ext/mtl/vcomp/prodbuffer.h +42 -0
- data/ext/mtl/vcomp/resource.h +17 -0
- data/ext/mtl/vcomp/stdlib_core.cpp +122 -0
- data/ext/mtl/vcomp/terminal.cpp +73 -0
- data/ext/mtl/vcomp/terminal.h +30 -0
- data/ext/mtl/vcomp/util.cpp +48 -0
- data/ext/mtl/vcomp/util.h +31 -0
- data/ext/mtl/vinterp.c +1349 -0
- data/ext/mtl/vinterp.h +11 -0
- data/ext/mtl/vloader.c +127 -0
- data/ext/mtl/vloader.h +31 -0
- data/ext/mtl/vlog.c +589 -0
- data/ext/mtl/vlog.h +69 -0
- data/ext/mtl/vmem.c +424 -0
- data/ext/mtl/vmem.h +107 -0
- data/ext/mtl/vnet.c +255 -0
- data/ext/mtl/vnet.h +19 -0
- data/lib/nabaztag_hack_kit/message/api.rb +39 -0
- data/lib/nabaztag_hack_kit/message/helper.rb +39 -0
- data/lib/nabaztag_hack_kit/message.rb +36 -0
- data/lib/nabaztag_hack_kit/server.rb +50 -0
- data/lib/nabaztag_hack_kit/version.rb +3 -0
- data/lib/nabaztag_hack_kit.rb +4 -0
- data/nabaztag_hack_kit.gemspec +29 -0
- data/public/bytecode.bin +0 -0
- data/test/bytecode/helper.mtl +60 -0
- data/test/bytecode/native.mtl +28 -0
- data/test/bytecode/test.mtl +221 -0
- data/test/spec_helper.rb +5 -0
- data/test/unit/message_spec.rb +56 -0
- metadata +209 -0
@@ -0,0 +1,125 @@
|
|
1
|
+
//-------------------
|
2
|
+
// MV
|
3
|
+
// version WIN32 et POCKETPC
|
4
|
+
// Sylvain Huet
|
5
|
+
// Premiere version : 07/01/2003
|
6
|
+
// Derniere mise a jour : 07/01/2003
|
7
|
+
//
|
8
|
+
|
9
|
+
#include <stdio.h>
|
10
|
+
#include <string.h>
|
11
|
+
#include <stdarg.h>
|
12
|
+
|
13
|
+
#include "param.h"
|
14
|
+
#include "prodbuffer.h"
|
15
|
+
|
16
|
+
|
17
|
+
Prodbuffer::Prodbuffer()
|
18
|
+
{
|
19
|
+
size=PRODBUFFER_FIRSTSIZE;
|
20
|
+
buffer=new char[size];
|
21
|
+
index=0;
|
22
|
+
};
|
23
|
+
|
24
|
+
Prodbuffer::~Prodbuffer()
|
25
|
+
{
|
26
|
+
delete buffer;
|
27
|
+
};
|
28
|
+
|
29
|
+
|
30
|
+
// initialiation du buffer (à appeler au début de toute nouvelle production)
|
31
|
+
void Prodbuffer::reinit()
|
32
|
+
{
|
33
|
+
index=0;
|
34
|
+
}
|
35
|
+
|
36
|
+
void Prodbuffer::bigger()
|
37
|
+
{
|
38
|
+
char* newbuf=new char[size*2];
|
39
|
+
memcpy(newbuf,buffer,size);
|
40
|
+
delete buffer;
|
41
|
+
size*=2;
|
42
|
+
buffer=newbuf;
|
43
|
+
}
|
44
|
+
|
45
|
+
// ajout d'un caractère en fin de buffer
|
46
|
+
void Prodbuffer::addchar(char c)
|
47
|
+
{
|
48
|
+
if (index>=size) bigger();
|
49
|
+
buffer[index++]=c;
|
50
|
+
}
|
51
|
+
|
52
|
+
// printf à la suite du buffer
|
53
|
+
void Prodbuffer::printf(const char *format, ...)
|
54
|
+
{
|
55
|
+
va_list arglist;
|
56
|
+
int sizeout;
|
57
|
+
|
58
|
+
va_start(arglist,format);
|
59
|
+
//while(((sizeout=vsnprintf(buffer+index,size-index-1,format,arglist))<0)||(sizeout>=size-index-1)) bigger();
|
60
|
+
va_end(arglist);
|
61
|
+
index+=sizeout;
|
62
|
+
}
|
63
|
+
|
64
|
+
// ajout d'un entier en fin de buffer
|
65
|
+
void Prodbuffer::addint(int i)
|
66
|
+
{
|
67
|
+
addchar(i); i>>=8;
|
68
|
+
addchar(i); i>>=8;
|
69
|
+
addchar(i); i>>=8;
|
70
|
+
addchar(i);
|
71
|
+
}
|
72
|
+
|
73
|
+
// ajout d'un short en fin de buffer
|
74
|
+
void Prodbuffer::addshort(int i)
|
75
|
+
{
|
76
|
+
addchar(i); i>>=8;
|
77
|
+
addchar(i);
|
78
|
+
}
|
79
|
+
|
80
|
+
// ajout d'une chaîne
|
81
|
+
void Prodbuffer::addstr(char *src,int len)
|
82
|
+
{
|
83
|
+
// addint(len);
|
84
|
+
int i; for(i=0;i<len;i++) addchar(*(src++));
|
85
|
+
}
|
86
|
+
|
87
|
+
// modification d'un caractère dans le buffer
|
88
|
+
void Prodbuffer::setchar(int ind,char c)
|
89
|
+
{
|
90
|
+
buffer[ind]=c;
|
91
|
+
}
|
92
|
+
|
93
|
+
// modification d'un entier dans le buffer
|
94
|
+
void Prodbuffer::setint(int ind,int i)
|
95
|
+
{
|
96
|
+
setchar(ind,i); i>>=8;
|
97
|
+
setchar(ind+1,i); i>>=8;
|
98
|
+
setchar(ind+2,i); i>>=8;
|
99
|
+
setchar(ind+3,i);
|
100
|
+
}
|
101
|
+
|
102
|
+
// modification d'un short dans le buffer
|
103
|
+
void Prodbuffer::setshort(int ind,int i)
|
104
|
+
{
|
105
|
+
setchar(ind,i); i>>=8;
|
106
|
+
setchar(ind+1,i);
|
107
|
+
}
|
108
|
+
|
109
|
+
// diminue la taille actuelle
|
110
|
+
void Prodbuffer::cut(int len)
|
111
|
+
{
|
112
|
+
if ((len>=0)&&(len<index)) index=len;
|
113
|
+
}
|
114
|
+
|
115
|
+
// retourne la taille actuelle
|
116
|
+
int Prodbuffer::getsize()
|
117
|
+
{
|
118
|
+
return index;
|
119
|
+
}
|
120
|
+
|
121
|
+
// retourne un pointeur vers le début du buffer
|
122
|
+
char* Prodbuffer::getstart()
|
123
|
+
{
|
124
|
+
return buffer;
|
125
|
+
}
|
@@ -0,0 +1,42 @@
|
|
1
|
+
//-------------------
|
2
|
+
// MV
|
3
|
+
// version WIN32 et POCKETPC
|
4
|
+
// Sylvain Huet
|
5
|
+
// Premiere version : 07/01/2003
|
6
|
+
// Derniere mise a jour : 07/01/2003
|
7
|
+
//
|
8
|
+
|
9
|
+
#ifndef _PRODBUFFER_
|
10
|
+
#define _PRODBUFFER_
|
11
|
+
|
12
|
+
class Prodbuffer
|
13
|
+
{
|
14
|
+
//public:
|
15
|
+
private:
|
16
|
+
int size; // taille du buffer de bytecode
|
17
|
+
char* buffer; // buffer de bytecode
|
18
|
+
int index; // index du buffer de bytecode
|
19
|
+
|
20
|
+
void bigger(); // augmentation de la taille du buffer
|
21
|
+
|
22
|
+
public:
|
23
|
+
// buffer bytecode
|
24
|
+
Prodbuffer();
|
25
|
+
~Prodbuffer();
|
26
|
+
void reinit();
|
27
|
+
void addchar(char c);
|
28
|
+
void addint(int i);
|
29
|
+
void addshort(int i);
|
30
|
+
void setchar(int index,char c);
|
31
|
+
void setint(int index,int i);
|
32
|
+
void setshort(int index,int i);
|
33
|
+
void addstr(char *src,int len);
|
34
|
+
void printf(const char *format, ...);
|
35
|
+
void cut(int len);
|
36
|
+
int getsize();
|
37
|
+
char* getstart();
|
38
|
+
};
|
39
|
+
|
40
|
+
#define PRODBUFFER_FIRSTSIZE 128
|
41
|
+
|
42
|
+
#endif
|
@@ -0,0 +1,17 @@
|
|
1
|
+
//{{NO_DEPENDENCIES}}
|
2
|
+
// Microsoft Developer Studio generated include file.
|
3
|
+
// Used by Script1.rc
|
4
|
+
//
|
5
|
+
#define IDI_ICON1 101
|
6
|
+
#define IDI_ICON2 103
|
7
|
+
|
8
|
+
// Next default values for new objects
|
9
|
+
//
|
10
|
+
#ifdef APSTUDIO_INVOKED
|
11
|
+
#ifndef APSTUDIO_READONLY_SYMBOLS
|
12
|
+
#define _APS_NEXT_RESOURCE_VALUE 104
|
13
|
+
#define _APS_NEXT_COMMAND_VALUE 40001
|
14
|
+
#define _APS_NEXT_CONTROL_VALUE 1000
|
15
|
+
#define _APS_NEXT_SYMED_VALUE 101
|
16
|
+
#endif
|
17
|
+
#endif
|
@@ -0,0 +1,122 @@
|
|
1
|
+
//-------------------
|
2
|
+
// MV
|
3
|
+
// version WIN32 et POCKETPC
|
4
|
+
// Sylvain Huet
|
5
|
+
// Premiere version : 07/01/2003
|
6
|
+
// Derniere mise a jour : 07/01/2003
|
7
|
+
//
|
8
|
+
|
9
|
+
#include "param.h"
|
10
|
+
#include <stdio.h>
|
11
|
+
|
12
|
+
#include <stdlib.h>
|
13
|
+
#include <string.h>
|
14
|
+
#include <time.h>
|
15
|
+
#include <math.h>
|
16
|
+
|
17
|
+
|
18
|
+
#include "terminal.h"
|
19
|
+
#include "prodbuffer.h"
|
20
|
+
#include "memory.h"
|
21
|
+
#include "util.h"
|
22
|
+
#include "interpreter.h"
|
23
|
+
#include "parser.h"
|
24
|
+
#include "compiler.h"
|
25
|
+
|
26
|
+
|
27
|
+
// types de base
|
28
|
+
#define NBcore 115 /******** A ACTUALISER! ************/
|
29
|
+
const char* corename[]=
|
30
|
+
{NULL,NULL,NULL,NULL,NULL,"hd","tl","Secholn","Secho","Iecholn", //10
|
31
|
+
"Iecho","time_ms","tabnew","abs","min","max","rand","srand", //8
|
32
|
+
"time","strnew","strset","strcpy","vstrcmp","strfind","strfindrev","strlen", //8
|
33
|
+
"strget","strsub","strcat","tablen","strcatlist","led","motorset","motorget", //8
|
34
|
+
"fixarg1","fixarg2","fixarg3","fixarg4","fixarg5","fixarg6","fixarg7","fixarg8", //8
|
35
|
+
"button2","button3","playStart","playFeed","playStop","recStart","recStop","recVol", //8
|
36
|
+
"load","gc","save","bytecode","loopcb", // 5
|
37
|
+
"udpStart","udpCb","udpStop","udpSend","tcpOpen","tcpClose","tcpSend","tcpCb","tcpListen","tcpEnable", //10
|
38
|
+
"envget","envset","sndVol","rfidGet","playTime","sndRefresh","sndWrite","sndRead","sndFeed","sndAmpli", //10
|
39
|
+
"netCb","netSend","netState","netMac","netChk","netSetmode","netScan","netAuth","netPmk","netRssi", //10
|
40
|
+
"netSeqAdd","strgetword","strputword","atoi","htoi","itoa","ctoa","itoh", // 8
|
41
|
+
"ctoh","itobin2","listswitch","listswitchstr","corePP","corePush","corePull","coreBit0", //8
|
42
|
+
"reboot","flashFirmware","strcmp","adp2wav","wav2adp","alaw2wav","wav2alaw", //7
|
43
|
+
"crypt","uncrypt","rfidGetList","rfidRead","rfidWrite", // 5
|
44
|
+
"i2cRead", "i2cWrite" // 2
|
45
|
+
};
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
int coreval[]=
|
50
|
+
{0,0,0,0,0,OPhd,OPtl,OPSecholn,OPSecho,OPIecholn,
|
51
|
+
OPIecho,OPtime_ms,OPtabnew,OPabs,OPmin,OPmax,OPrand,OPsrand,
|
52
|
+
OPtime,OPstrnew,OPstrset,OPstrcpy,OPvstrcmp,OPstrfind,OPstrfindrev,OPstrlen,
|
53
|
+
OPstrget,OPstrsub,OPstrcat,OPtablen,OPstrcatlist,OPled,OPmotorset,OPmotorget,
|
54
|
+
OPfixarg,OPfixarg,OPfixarg,OPfixarg,OPfixarg,OPfixarg,OPfixarg,OPfixarg,
|
55
|
+
OPbutton2,OPbutton3,OPplayStart,OPplayFeed,OPplayStop,OPrecStart,OPrecStop,OPrecVol,
|
56
|
+
OPload,OPgc,OPsave,OPbytecode,OPloopcb,
|
57
|
+
OPudpStart,OPudpCb,OPudpStop,OPudpSend,OPtcpOpen,OPtcpClose,OPtcpSend,OPtcpCb,OPtcpListen,OPtcpEnable,
|
58
|
+
OPenvget,OPenvset,OPsndVol,OPrfidGet,OPplayTime,OPsndRefresh,OPsndWrite,OPsndRead,OPsndFeed,OPsndAmpli,
|
59
|
+
OPnetCb,OPnetSend,OPnetState,OPnetMac,OPnetChk,OPnetSetmode,OPnetScan,OPnetAuth,OPnetPmk,OPnetRssi,
|
60
|
+
OPnetSeqAdd,OPstrgetword,OPstrputword,OPatoi,OPhtoi,OPitoa,OPctoa,OPitoh,
|
61
|
+
OPctoh,OPitobin2,OPlistswitch,OPlistswitchstr,OPcorePP,OPcorePush,OPcorePull,OPcoreBit0,
|
62
|
+
OPreboot,OPflashFirmware,OPstrcmp,OPadp2wav,OPwav2adp,OPalaw2wav,OPwav2alaw,
|
63
|
+
OPcrypt,OPuncrypt,OPrfidGetList,OPrfidRead,OPrfidWrite,
|
64
|
+
OPi2cRead, OPi2cWrite
|
65
|
+
};
|
66
|
+
|
67
|
+
int corecode[]=
|
68
|
+
{CODE_TYPE,CODE_TYPE,CODE_TYPE,CODE_TYPE,CODE_TYPE,1,1,1,1,1,
|
69
|
+
1,0,2,1,2,2,0,1,
|
70
|
+
0,1,3,5,5,5,5,1,
|
71
|
+
2,3,2,1,1,2,2,1,
|
72
|
+
2,2,2,2,2,2,2,2,
|
73
|
+
0,0,2,3,0,3,0,2,
|
74
|
+
5,0,5,1,1,
|
75
|
+
1,1,1,6,2,1,4,1,1,2,
|
76
|
+
0,1,1,0,0,0,2,1,3,1,
|
77
|
+
1,6,0,0,4,3,1,4,2,0,
|
78
|
+
2,2,3,1,1,1,1,1,
|
79
|
+
1,1,2,2,0,1,1,2,
|
80
|
+
2,3,2,5,5,6,6,
|
81
|
+
5,5,0,2,3,
|
82
|
+
2,3
|
83
|
+
};
|
84
|
+
|
85
|
+
const char* coretype[]=
|
86
|
+
{"I","S","F","Env","Xml","fun[list u0]u0","fun[list u0]list u0","fun[S]S","fun[S]S","fun[u0]u0",
|
87
|
+
"fun[u0]u0","fun[]I","fun[u0 I]tab u0","fun[I]I","fun[I I]I","fun[I I]I","fun[]I","fun[I]I",
|
88
|
+
"fun[]I","fun[I]S","fun[S I I]S","fun[S I S I I]S","fun[S I S I I]I","fun[S I S I I]I","fun[S I S I I]I","fun[S]I",
|
89
|
+
"fun[S I]I","fun[S I I]S","fun[S S]S","fun[tab u0]I","fun[list S]S","fun[I I]I","fun[I I]I","fun[I]I",
|
90
|
+
"fun[fun[u0]u100 u0]fun[]u100",
|
91
|
+
"fun[fun[u1 u0]u100 u0]fun[u1]u100",
|
92
|
+
"fun[fun[u1 u2 u0]u100 u0]fun[u1 u2]u100",
|
93
|
+
"fun[fun[u1 u2 u3 u0]u100 u0]fun[u1 u2 u3]u100",
|
94
|
+
"fun[fun[u1 u2 u3 u4 u0]u100 u0]fun[u1 u2 u3 u4]u100",
|
95
|
+
"fun[fun[u1 u2 u3 u4 u5 u0]u100 u0]fun[u1 u2 u3 u4 u5]u100",
|
96
|
+
"fun[fun[u1 u2 u3 u4 u5 u6 u0]u100 u0]fun[u1 u2 u3 u4 u5 u6]u100",
|
97
|
+
"fun[fun[u1 u2 u3 u4 u5 u6 u7 u0]u100 u0]fun[u1 u2 u3 u4 u5 u6 u7]u100",
|
98
|
+
"fun[]I","fun[]I","fun[I fun[I]I]I","fun[S I I]I","fun[]I","fun[I I fun[S]I]I","fun[]I","fun[S I]I",
|
99
|
+
"fun[S I S I I]I","fun[]I","fun[S I S I I]I","fun[S]S","fun[fun[]I]fun[]I",
|
100
|
+
"fun[I]I","fun[fun[I S S]I]fun[I S S]I","fun[I]I","fun[I S I S I I]I","fun[S I]I","fun[I]I","fun[I S I I]I","fun[fun[I I S]I]fun[I I S]I","fun[I]I","fun[I I]I",
|
101
|
+
"fun[]S","fun[S]S","fun[I]I","fun[]S","fun[]I","fun[]I","fun[I I]I","fun[I]I","fun[S I I]I","fun[I]I",
|
102
|
+
"fun[fun[S S]I]fun[S S]I","fun[S I I S I I]I","fun[]I","fun[]S","fun[S I I I]I","fun[I S I]I","fun[S]list[S S S I I I I]","fun[[S S S I I I I] I I S][S S S I I I I]","fun[S S]S","fun[]I",
|
103
|
+
"fun[S I]S","fun[S I]I","fun[S I I]S","fun[S]I","fun[S]I","fun[I]S","fun[I]S","fun[I]S",
|
104
|
+
"fun[I]S","fun[I]S","fun[list[u0 u1] u0]u1","fun[list[S u1] S]u1","fun[]I","fun[u0]u0","fun[I]I","fun[u0 I]u0",
|
105
|
+
"fun[I I]I","fun[S I I]I","fun[S S]I","fun[S I S I I]S","fun[S I S I I]S","fun[S I S I I I]S","fun[S I S I I I]S",
|
106
|
+
"fun[S I I I I]I","fun[S I I I I]I","fun[]list S","fun[S I]S","fun[S I S]I",
|
107
|
+
"fun[I I]S", "fun[I S I]I"
|
108
|
+
};
|
109
|
+
|
110
|
+
|
111
|
+
int Compiler::addstdlibcore()
|
112
|
+
{
|
113
|
+
int k;
|
114
|
+
if (k=addnative(NBcore,corename,coreval,corecode,coretype,m)) return k;
|
115
|
+
/* FILE* f=fopen("bc.txt","w");
|
116
|
+
for(k=0;k<NBcore;k++)
|
117
|
+
{
|
118
|
+
if (corename[k]) fprintf(f,"%s%c%s\n",corename[k],9,coretype[k]);
|
119
|
+
}
|
120
|
+
fclose(f);
|
121
|
+
*/ return 0;
|
122
|
+
}
|
@@ -0,0 +1,73 @@
|
|
1
|
+
//-------------------
|
2
|
+
// MV
|
3
|
+
// version WIN32 et POCKETPC
|
4
|
+
// Sylvain Huet
|
5
|
+
// Premiere version : 07/01/2003
|
6
|
+
// Derniere mise a jour : 07/01/2003
|
7
|
+
//
|
8
|
+
|
9
|
+
#include "resource.h"
|
10
|
+
|
11
|
+
#include "param.h"
|
12
|
+
#include <stdio.h>
|
13
|
+
#include <stdlib.h>
|
14
|
+
#include <string.h>
|
15
|
+
|
16
|
+
#include "filesystem.h"
|
17
|
+
#include "file.h"
|
18
|
+
#include "terminal.h"
|
19
|
+
#include "memory.h"
|
20
|
+
#include <stdarg.h>
|
21
|
+
|
22
|
+
|
23
|
+
Terminal::Terminal(void)
|
24
|
+
{
|
25
|
+
m=NULL;
|
26
|
+
sizeinternalbuffer=64;
|
27
|
+
internalbuffer=new char[sizeinternalbuffer];
|
28
|
+
}
|
29
|
+
|
30
|
+
Terminal::~Terminal()
|
31
|
+
{
|
32
|
+
|
33
|
+
}
|
34
|
+
|
35
|
+
|
36
|
+
void Terminal::echo(int msk,char *s)
|
37
|
+
{
|
38
|
+
if (s)
|
39
|
+
{
|
40
|
+
if (msk&LOG_USER) fprintf(stdout,"%s",s);
|
41
|
+
else fprintf(stderr,"%s",s);
|
42
|
+
}
|
43
|
+
}
|
44
|
+
|
45
|
+
void Terminal::echo(int msk,char* s,int size)
|
46
|
+
{
|
47
|
+
if (size+1>sizeinternalbuffer)
|
48
|
+
{
|
49
|
+
delete internalbuffer;
|
50
|
+
sizeinternalbuffer=size+1;
|
51
|
+
internalbuffer=new char[sizeinternalbuffer];
|
52
|
+
}
|
53
|
+
memcpy(internalbuffer,s,size);
|
54
|
+
internalbuffer[size]=0;
|
55
|
+
echo(msk,internalbuffer);
|
56
|
+
}
|
57
|
+
|
58
|
+
void Terminal::printf(int msk,const char *format, ...)
|
59
|
+
{
|
60
|
+
va_list arglist;
|
61
|
+
int sizeout;
|
62
|
+
va_start(arglist,format);
|
63
|
+
while(((sizeout=vsnprintf(internalbuffer,sizeinternalbuffer-1,format,arglist))<0)||(sizeout>=sizeinternalbuffer-1))
|
64
|
+
{
|
65
|
+
delete internalbuffer;
|
66
|
+
sizeinternalbuffer*=2;
|
67
|
+
internalbuffer=new char[sizeinternalbuffer];
|
68
|
+
}
|
69
|
+
va_end(arglist);
|
70
|
+
echo(msk,internalbuffer);
|
71
|
+
}
|
72
|
+
|
73
|
+
|
@@ -0,0 +1,30 @@
|
|
1
|
+
//-------------------
|
2
|
+
// MV
|
3
|
+
// version WIN32 et POCKETPC
|
4
|
+
// Sylvain Huet
|
5
|
+
// Premiere version : 07/01/2003
|
6
|
+
// Derniere mise a jour : 07/01/2003
|
7
|
+
//
|
8
|
+
|
9
|
+
#ifndef _TERMINAL_
|
10
|
+
#define _TERMINAL_
|
11
|
+
|
12
|
+
class File;
|
13
|
+
class FileSystem;
|
14
|
+
class Memory;
|
15
|
+
class Terminal
|
16
|
+
{
|
17
|
+
private:
|
18
|
+
char* internalbuffer;
|
19
|
+
int sizeinternalbuffer;
|
20
|
+
public:
|
21
|
+
Memory* m;
|
22
|
+
Terminal();
|
23
|
+
~Terminal();
|
24
|
+
|
25
|
+
void echo(int mask,char *s);
|
26
|
+
void echo(int mask,char *s,int size);
|
27
|
+
void printf(int mask,const char *format, ...);
|
28
|
+
};
|
29
|
+
|
30
|
+
#endif
|
@@ -0,0 +1,48 @@
|
|
1
|
+
//-------------------
|
2
|
+
// MV
|
3
|
+
// version WIN32 et POCKETPC
|
4
|
+
// Sylvain Huet
|
5
|
+
// Premiere version : 07/01/2003
|
6
|
+
// Derniere mise a jour : 07/01/2003
|
7
|
+
//
|
8
|
+
|
9
|
+
|
10
|
+
#include <stdio.h>
|
11
|
+
|
12
|
+
#include "param.h"
|
13
|
+
#include "filesystem.h"
|
14
|
+
#include "terminal.h"
|
15
|
+
#include "memory.h"
|
16
|
+
|
17
|
+
#include "parser.h"
|
18
|
+
#include "compiler.h"
|
19
|
+
#include "interpreter.h"
|
20
|
+
#include "util.h"
|
21
|
+
|
22
|
+
Util::Util(Memory* mem)
|
23
|
+
{
|
24
|
+
m=mem;
|
25
|
+
compiler=new Compiler(m);
|
26
|
+
interpreter=new Interpreter(m);
|
27
|
+
}
|
28
|
+
|
29
|
+
Util::~Util()
|
30
|
+
{
|
31
|
+
delete interpreter;
|
32
|
+
delete compiler;
|
33
|
+
}
|
34
|
+
|
35
|
+
void Util::stop()
|
36
|
+
{
|
37
|
+
interpreter->stop();
|
38
|
+
compiler->stop();
|
39
|
+
}
|
40
|
+
|
41
|
+
int Util::start()
|
42
|
+
{
|
43
|
+
int k;
|
44
|
+
if (k=compiler->start()) return k;
|
45
|
+
if (k=interpreter->start()) return k;
|
46
|
+
return 0;
|
47
|
+
}
|
48
|
+
|
@@ -0,0 +1,31 @@
|
|
1
|
+
//-------------------
|
2
|
+
// Moteur 3d
|
3
|
+
// version WIN32 et POCKETPC
|
4
|
+
// Sylvain Huet
|
5
|
+
// Premiere version : 03/09/2002
|
6
|
+
// Derniere mise a jour : 05/10/2002
|
7
|
+
//
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
#ifndef _UTIL_
|
12
|
+
#define _UTIL_
|
13
|
+
|
14
|
+
class Memory;
|
15
|
+
class Compiler;
|
16
|
+
class Interpreter;
|
17
|
+
|
18
|
+
class Util
|
19
|
+
{
|
20
|
+
private :
|
21
|
+
Memory* m;
|
22
|
+
public:
|
23
|
+
Util(Memory* mem);
|
24
|
+
~Util();
|
25
|
+
int start();
|
26
|
+
void stop();
|
27
|
+
|
28
|
+
Compiler* compiler;
|
29
|
+
Interpreter* interpreter;
|
30
|
+
};
|
31
|
+
#endif
|