nabaztag_hack_kit 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (122) hide show
  1. data/.gitignore +7 -0
  2. data/.travis.yml +3 -0
  3. data/CHANGELOG.md +11 -0
  4. data/Gemfile +4 -0
  5. data/README.md +119 -0
  6. data/Rakefile +21 -0
  7. data/bin/mtl_comp +41 -0
  8. data/bin/mtl_merge +22 -0
  9. data/bin/mtl_simu +40 -0
  10. data/bytecode/lib/buffer.mtl +109 -0
  11. data/bytecode/lib/button.mtl +27 -0
  12. data/bytecode/lib/data_helper.mtl +88 -0
  13. data/bytecode/lib/ear.mtl +90 -0
  14. data/bytecode/lib/led.mtl +33 -0
  15. data/bytecode/lib/rfid.mtl +50 -0
  16. data/bytecode/main.mtl +129 -0
  17. data/config.ru +6 -0
  18. data/ext/bytecode/Commands.md +172 -0
  19. data/ext/bytecode/Docs.md +488 -0
  20. data/ext/bytecode/README.md +5 -0
  21. data/ext/bytecode/lib/arp.mtl +159 -0
  22. data/ext/bytecode/lib/cfg.mtl +74 -0
  23. data/ext/bytecode/lib/choreos.mtl +1487 -0
  24. data/ext/bytecode/lib/dhcp.mtl +152 -0
  25. data/ext/bytecode/lib/dns.mtl +89 -0
  26. data/ext/bytecode/lib/http.mtl +84 -0
  27. data/ext/bytecode/lib/tcp.mtl +340 -0
  28. data/ext/bytecode/lib/udp.mtl +49 -0
  29. data/ext/bytecode/lib/util.mtl +74 -0
  30. data/ext/bytecode/lib/var.mtl +15 -0
  31. data/ext/bytecode/lib/wifi.mtl +243 -0
  32. data/ext/bytecode/nominal-ping.mtl +5828 -0
  33. data/ext/mtl/Makefile +42 -0
  34. data/ext/mtl/README.md +13 -0
  35. data/ext/mtl/bc.cpp +1891 -0
  36. data/ext/mtl/conf.bin.sans_password +0 -0
  37. data/ext/mtl/config.txt +5 -0
  38. data/ext/mtl/dumpbc.c +2566 -0
  39. data/ext/mtl/extconf.rb +1 -0
  40. data/ext/mtl/linux_simu.c +271 -0
  41. data/ext/mtl/linux_simuaudio.c +16 -0
  42. data/ext/mtl/linux_simuaudio.h +18 -0
  43. data/ext/mtl/linux_simunet.c +620 -0
  44. data/ext/mtl/linux_simunet.h +7 -0
  45. data/ext/mtl/log.c +297 -0
  46. data/ext/mtl/log.h +20 -0
  47. data/ext/mtl/main_compiler.cpp +104 -0
  48. data/ext/mtl/main_simu.cpp +221 -0
  49. data/ext/mtl/mp3/GTKANAL.H +97 -0
  50. data/ext/mtl/mp3/LAYER3.C +2090 -0
  51. data/ext/mtl/mp3/TABINIT.C +82 -0
  52. data/ext/mtl/mp3/common.c +265 -0
  53. data/ext/mtl/mp3/dct64_i386.c +316 -0
  54. data/ext/mtl/mp3/decode_i386.c +155 -0
  55. data/ext/mtl/mp3/huffman.h +332 -0
  56. data/ext/mtl/mp3/interface.c +258 -0
  57. data/ext/mtl/mp3/mpg123.h +182 -0
  58. data/ext/mtl/mp3/mpglib.h +44 -0
  59. data/ext/mtl/properties.c +293 -0
  60. data/ext/mtl/properties.h +10 -0
  61. data/ext/mtl/simu.c +750 -0
  62. data/ext/mtl/simuaudio.c +662 -0
  63. data/ext/mtl/simuaudio.h +74 -0
  64. data/ext/mtl/simunet.c +400 -0
  65. data/ext/mtl/simunet.h +30 -0
  66. data/ext/mtl/utils/correct_const.sh +34 -0
  67. data/ext/mtl/vaudio.c +677 -0
  68. data/ext/mtl/vaudio.h +46 -0
  69. data/ext/mtl/vbc.h +160 -0
  70. data/ext/mtl/vbc_str.h +166 -0
  71. data/ext/mtl/vcomp/Makefile +29 -0
  72. data/ext/mtl/vcomp/bootstrap.cpp +89 -0
  73. data/ext/mtl/vcomp/compiler.cpp +470 -0
  74. data/ext/mtl/vcomp/compiler.h +200 -0
  75. data/ext/mtl/vcomp/compiler_file.cpp +929 -0
  76. data/ext/mtl/vcomp/compiler_prog.cpp +250 -0
  77. data/ext/mtl/vcomp/compiler_term.cpp +1053 -0
  78. data/ext/mtl/vcomp/compiler_type.cpp +872 -0
  79. data/ext/mtl/vcomp/compiler_var.cpp +289 -0
  80. data/ext/mtl/vcomp/file.cpp +79 -0
  81. data/ext/mtl/vcomp/file.h +39 -0
  82. data/ext/mtl/vcomp/filesystem.h +14 -0
  83. data/ext/mtl/vcomp/interpreter.cpp +85 -0
  84. data/ext/mtl/vcomp/interpreter.h +121 -0
  85. data/ext/mtl/vcomp/memory.cpp +241 -0
  86. data/ext/mtl/vcomp/memory.h +326 -0
  87. data/ext/mtl/vcomp/param.h +95 -0
  88. data/ext/mtl/vcomp/parser.cpp +427 -0
  89. data/ext/mtl/vcomp/parser.h +97 -0
  90. data/ext/mtl/vcomp/parser_xml.cpp +124 -0
  91. data/ext/mtl/vcomp/prodbuffer.cpp +125 -0
  92. data/ext/mtl/vcomp/prodbuffer.h +42 -0
  93. data/ext/mtl/vcomp/resource.h +17 -0
  94. data/ext/mtl/vcomp/stdlib_core.cpp +122 -0
  95. data/ext/mtl/vcomp/terminal.cpp +73 -0
  96. data/ext/mtl/vcomp/terminal.h +30 -0
  97. data/ext/mtl/vcomp/util.cpp +48 -0
  98. data/ext/mtl/vcomp/util.h +31 -0
  99. data/ext/mtl/vinterp.c +1349 -0
  100. data/ext/mtl/vinterp.h +11 -0
  101. data/ext/mtl/vloader.c +127 -0
  102. data/ext/mtl/vloader.h +31 -0
  103. data/ext/mtl/vlog.c +589 -0
  104. data/ext/mtl/vlog.h +69 -0
  105. data/ext/mtl/vmem.c +424 -0
  106. data/ext/mtl/vmem.h +107 -0
  107. data/ext/mtl/vnet.c +255 -0
  108. data/ext/mtl/vnet.h +19 -0
  109. data/lib/nabaztag_hack_kit/message/api.rb +39 -0
  110. data/lib/nabaztag_hack_kit/message/helper.rb +39 -0
  111. data/lib/nabaztag_hack_kit/message.rb +36 -0
  112. data/lib/nabaztag_hack_kit/server.rb +50 -0
  113. data/lib/nabaztag_hack_kit/version.rb +3 -0
  114. data/lib/nabaztag_hack_kit.rb +4 -0
  115. data/nabaztag_hack_kit.gemspec +29 -0
  116. data/public/bytecode.bin +0 -0
  117. data/test/bytecode/helper.mtl +60 -0
  118. data/test/bytecode/native.mtl +28 -0
  119. data/test/bytecode/test.mtl +221 -0
  120. data/test/spec_helper.rb +5 -0
  121. data/test/unit/message_spec.rb +56 -0
  122. metadata +209 -0
data/ext/mtl/vinterp.h ADDED
@@ -0,0 +1,11 @@
1
+ // VLISP Virtual Machine - 2006 - by Sylvain Huet
2
+ // Lowcost IS Powerfull
3
+
4
+ #ifndef _INTERPRETER_
5
+ #define _INTERPRETER_
6
+
7
+ void interpGo();
8
+
9
+ #include"vbc.h"
10
+ #endif
11
+
data/ext/mtl/vloader.c ADDED
@@ -0,0 +1,127 @@
1
+ // VLISP Virtual Machine - 2006 - by Sylvain Huet
2
+ // Lowcost IS Powerfull
3
+
4
+ #include <string.h>
5
+ #include"vmem.h"
6
+ #include"vloader.h"
7
+
8
+ char *bc_tabfun;
9
+ int bc_nbfun;
10
+ int sys_start;
11
+ int global_start;
12
+
13
+ int loaderGetByte(char *src)
14
+ {
15
+ int i;
16
+ i=(src[0]&255);
17
+ return i;
18
+ }
19
+ int loaderGetShort(char *src)
20
+ {
21
+ int i;
22
+ i=((src[1]&255)<<8)+(src[0]&255);
23
+ return i;
24
+ }
25
+ int loaderGetInt(char *src)
26
+ {
27
+ int i;
28
+ i=((src[3]&255)<<24)+((src[2]&255)<<16)+((src[1]&255)<<8)+(src[0]&255);
29
+ return i;
30
+ }
31
+
32
+ /**
33
+ Charge les variables globales
34
+ */
35
+ char *loaderInitRec(char *src)
36
+ {
37
+ int l,i;
38
+
39
+ l=loaderGetInt(src);
40
+ src+=4;
41
+ if (l==-1)
42
+ {
43
+ // printf("nil\n",l>>1);
44
+ VPUSH(NIL);
45
+ }
46
+ else if (l&1)
47
+ {
48
+ l>>=1;
49
+ if (l&1)
50
+ {
51
+ l>>=1;
52
+ // printf("tuple %d\n",l);
53
+ for(i=0;i<l;i++) src=loaderInitRec(src);
54
+ VMKTAB(l);
55
+ }
56
+ else
57
+ {
58
+ l>>=1;
59
+ // printf("string taille %d\n",l);
60
+ VPUSH(PNTTOVAL(VMALLOCSTR(src,l)));
61
+ src+=l;
62
+ }
63
+ }
64
+ else
65
+ {
66
+ // printf("int %d\n",l>>1);
67
+ VPUSH(l);
68
+ }
69
+ return src;
70
+ }
71
+
72
+ int loaderSizeBC(char *src)
73
+ {
74
+ int n,b;
75
+ n=loaderGetInt(src);
76
+ src+=n;
77
+ b=loaderGetInt(src);
78
+ src+=4+b;
79
+ n+=4+b;
80
+ n+=2+(loaderGetShort(src)<<2);
81
+ return n;
82
+ }
83
+
84
+ int loaderInit(char *src)
85
+ {
86
+ int n,nw,i;
87
+ char* src0;
88
+ char* dst;
89
+
90
+ n=loaderSizeBC(src);
91
+ dst=(char*)vmem_heap;
92
+ memcpy(dst,src,n);
93
+ nw=(n+3)>>2;
94
+ vmemInit(nw);
95
+
96
+ src=(char*)vmem_heap;
97
+
98
+ sys_start=vmem_stack-1;
99
+ for(i=0;i<SYS_NB;i++) VPUSH(NIL);
100
+
101
+ src0=src;
102
+ n=loaderGetInt(src);
103
+ src+=4;
104
+ global_start=vmem_stack-1;
105
+ while(((int)(src-src0))<n) src=loaderInitRec(src);
106
+
107
+ n=loaderGetInt(src);
108
+ src+=4;
109
+
110
+ bc_tabfun=&bytecode[n+2]; // bytecode == vmem_heap == src ...
111
+ bc_nbfun=loaderGetShort(src+n);
112
+ n+=2+(bc_nbfun<<2);
113
+ for(i=0;i<n;i++) bytecode[i]=src[i];
114
+ vmemSetstart((n+3)>>2);
115
+
116
+ return 0;
117
+ }
118
+
119
+
120
+ /**
121
+ Retourne l'adresse du début d'une fonction dans le bytecode
122
+ */
123
+ int loaderFunstart(int funnumber)
124
+ {
125
+ return loaderGetInt(bc_tabfun+(funnumber<<2));
126
+ }
127
+
data/ext/mtl/vloader.h ADDED
@@ -0,0 +1,31 @@
1
+ // VLISP Virtual Machine - 2006 - by Sylvain Huet
2
+ // Lowcost IS Powerfull
3
+
4
+ #ifndef _LOADER_
5
+ #define _LOADER_
6
+
7
+ #define SYS_NB 6
8
+ #define SYS_CBPLAY 0
9
+ #define SYS_CBUDP 1
10
+ #define SYS_CBTCP 2
11
+ #define SYS_CBLOOP 3
12
+ #define SYS_ENV 4
13
+ #define SYS_CBREC 5
14
+
15
+ #define bytecode ((char*)vmem_heap)
16
+ //extern char bytecode[65536];
17
+ //extern char *bytecode;
18
+
19
+
20
+ extern char *bc_tabfun;
21
+ extern int bc_nbfun;
22
+ extern int sys_start;
23
+ extern int global_start;
24
+
25
+ int loaderGetInt(char *src);
26
+ int loaderGetShort(char *src);
27
+ int loaderFunstart(int funnumber);
28
+ int loaderInit(char *src);
29
+
30
+ #endif
31
+