Fix test_boost boost handling. Also show the number of loops per second.
[kugel-rb.git] / apps / codecs / libasap / anylang.h
blob4d955d60260813c6474b5b098320ee54a95b5ba0
1 /*
2 * anylang.h - C/Java/C#/JavaScript/ActionScript abstraction layer
4 * Copyright (C) 2007-2010 Piotr Fusik
6 * This file is part of ASAP (Another Slight Atari Player),
7 * see http://asap.sourceforge.net
9 * ASAP is free software; you can redistribute it and/or modify it
10 * under the terms of the GNU General Public License as published
11 * by the Free Software Foundation; either version 2 of the License,
12 * or (at your option) any later version.
14 * ASAP is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty
16 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
17 * See the GNU General Public License for more details.
19 * You should have received a copy of the GNU General Public License
20 * along with ASAP; if not, write to the Free Software Foundation, Inc.,
21 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
24 #ifndef _ANYLANG_H_
25 #define _ANYLANG_H_
27 #if defined(JAVA) || defined(CSHARP) || defined(JAVASCRIPT) || defined(ACTIONSCRIPT)
29 #define FALSE false
30 #define TRUE true
31 #define NULL null
32 #define _ .
33 #define PRIVATE
34 #define CONST
35 #define OUT_STRING STRING
37 #else
39 #define C
40 #include <string.h>
42 #define PRIVATE static
43 #define FUNC(type, name, pars) type name pars
44 #define P(type, name) type name
45 #define V(type, name) type name
46 #define CONST const
47 #define _ ->
48 #define PTR *
49 #define ADDRESSOF &
50 #define CAST(type) (type)
51 #define TO_INT(x) (int) (x)
52 #define TO_BYTE(x) (byte) (x)
53 #define BYTEARRAY byte *
54 #define BOOLARRAY abool *
55 #define VOIDPTR void *
56 #define UBYTE(data) (data)
57 #define SBYTE(data) (signed char) (data)
58 #define CONST_ARRAY(type, name) static const type name[] = {
59 #define END_CONST_ARRAY }
60 #define ZERO_ARRAY(array) memset(array, 0, sizeof(array))
61 #define COPY_ARRAY(dest, dest_offset, src, src_offset, len) \
62 memcpy(dest + dest_offset, src + src_offset, len)
63 #define NEW_ARRAY(type, name, size) \
64 type name[size]
65 #define INIT_ARRAY(array) memset(array, 0, sizeof(array))
66 #define STRING const char *
67 #define OUT_STRING char *
68 #define CHARAT(s, i) (s)[i]
69 #define CHARCODEAT(s, i) (s)[i]
70 #define CHARCODE(c) (c)
71 #define EQUAL_STRINGS(s1, s2) (strcmp(s1, s2) == 0)
72 #define EMPTY_STRING(s) (s)[0] = '\0'
73 #define SUBSTR(s, i) (s + i)
74 #define BYTES_TO_STRING(dest, src, src_offset, len) \
75 do { memcpy(dest, src + src_offset, len); (dest)[len] = '\0'; } while (FALSE)
76 #define SUBSTRING(dest, src, src_offset, len) \
77 do { memcpy(dest, src + src_offset, len); (dest)[len] = '\0'; } while (FALSE)
79 #define RESOURCE const byte *
80 #define GET_RESOURCE(name, ext) name##_##ext
82 #endif /* defined(JAVA) || defined(CSHARP) || defined(JAVASCRIPT) || defined(ACTIONSCRIPT) */
84 #ifdef JAVA
86 #define abool boolean
87 #define FUNC(type, name, pars) private static type name pars
88 #define P(type, name) type name
89 #define V(type, name) type name
90 #define PTR
91 #define ADDRESSOF
92 #define CAST(type) (type)
93 #define TO_INT(x) (int) (x)
94 #define TO_BYTE(x) (byte) (x)
95 #define BYTEARRAY byte[]
96 #define BOOLARRAY boolean[]
97 #define VOIDPTR byte[]
98 #define UBYTE(data) ((data) & 0xff)
99 #define SBYTE(data) (byte) (data)
100 #define CONST_ARRAY(type, name) private static final type[] name = {
101 #define END_CONST_ARRAY }
102 #define sizeof(array) array.length
103 #define ZERO_ARRAY(array) for (int ii = 0; ii < array.length; ii++) array[ii] = 0
104 #define COPY_ARRAY(dest, dest_offset, src, src_offset, len) \
105 System.arraycopy(src, src_offset, dest, dest_offset, len)
106 #define NEW_ARRAY(type, name, size) \
107 type[] name = new type[size]
108 #define INIT_ARRAY(array)
109 #define STRING String
110 #define CHARAT(s, i) (s).charAt(i)
111 #define CHARCODEAT(s, i) (s).charAt(i)
112 #define CHARCODE(c) (c)
113 #define strlen(s) (s).length()
114 #define EQUAL_STRINGS(s1, s2) (s1).equals(s2)
115 #define EMPTY_STRING(s) (s) = ""
116 #define SUBSTR(s, i) (s).substring(i)
117 #define BYTES_TO_STRING(dest, src, src_offset, len) \
118 (dest) = new String(src, src_offset, len)
119 #define SUBSTRING(dest, src, src_offset, len) \
120 (dest) = (src).substring(src_offset, src_offset + len)
122 #define RESOURCE byte[]
123 #define GET_RESOURCE(name, ext) getResourceBytes(#name + "." + #ext)
125 #elif defined(CSHARP)
127 #define abool bool
128 #define FUNC(type, name, pars) private static type name pars
129 #define P(type, name) type name
130 #define V(type, name) type name
131 #define PTR
132 #define ADDRESSOF
133 #define CAST(type) (type)
134 #define TO_INT(x) (int) (x)
135 #define TO_BYTE(x) (byte) (x)
136 #define BYTEARRAY byte[]
137 #define BOOLARRAY bool[]
138 #define VOIDPTR byte[]
139 #define UBYTE(data) (data)
140 #define SBYTE(data) (sbyte) (data)
141 #define CONST_ARRAY(type, name) private static readonly type[] name = {
142 #define END_CONST_ARRAY }
143 #define sizeof(array) array.Length
144 #define ZERO_ARRAY(array) Array.Clear(array, 0, array.Length)
145 #define COPY_ARRAY(dest, dest_offset, src, src_offset, len) \
146 Array.Copy(src, src_offset, dest, dest_offset, len)
147 #define NEW_ARRAY(type, name, size) \
148 type[] name = new type[size]
149 #define INIT_ARRAY(array)
150 #define STRING string
151 #define CHARAT(s, i) (s)[i]
152 #define CHARCODEAT(s, i) (s)[i]
153 #define CHARCODE(c) (c)
154 #define strlen(s) (s).Length
155 #define EQUAL_STRINGS(s1, s2) ((s1) == (s2))
156 #define EMPTY_STRING(s) (s) = string.Empty
157 #define SUBSTR(s, i) (s).Substring(i)
158 #define BYTES_TO_STRING(dest, src, src_offset, len) \
159 (dest) = System.Text.Encoding.ASCII.GetString(src, src_offset, len)
160 #define SUBSTRING(dest, src, src_offset, len) \
161 (dest) = (src).Substring(src_offset, len)
163 #define RESOURCE byte[]
164 #define GET_RESOURCE(name, ext) name##_##ext
166 #elif defined(JAVASCRIPT) || defined(ACTIONSCRIPT)
168 #ifdef ACTIONSCRIPT
169 #define abool Boolean
170 #define char String
171 #define STRING String
172 #define BYTEARRAY ByteArray
173 #define BOOLARRAY Array
174 #define VOIDPTR ByteArray
175 #define RESOURCE Array
176 #define FUNC(type, name, pars) private static function name pars : type
177 #define P(type, name) name : type
178 #define V(type, name) var name : type
179 #define TO_INT(x) int(x)
180 #define CONST_ARRAY(type, name) private static const name : Array = [
181 #else
182 #define FUNC(type, name, pars) function name pars
183 #define P(type, name) name
184 #define V(type, name) var name
185 #define TO_INT(x) Math.floor(x)
186 #define CONST_ARRAY(type, name) var name = [
187 #endif
188 #define PTR
189 #define ADDRESSOF
190 #define CAST(type)
191 #define TO_BYTE(x) ((x) & 0xff)
192 #define UBYTE(data) (data)
193 #define SBYTE(data) ((data) < 0x80 ? (data) : (data) - 256)
194 #define END_CONST_ARRAY ]
195 #define sizeof(array) array.length
196 #define ZERO_ARRAY(array) for (V(int, ii) = 0; ii < array.length; ii++) array[ii] = 0
197 #define COPY_ARRAY(dest, dest_offset, src, src_offset, len) \
198 for (V(int, ii) = 0; ii < len; ii++) dest[dest_offset + ii] = src[src_offset + ii]
199 #define NEW_ARRAY(type, name, size) \
200 V(Array, name) = new Array(size)
201 #define INIT_ARRAY(array) for (V(int, ii) = 0; ii < array.length; ii++) array[ii] = 0
202 #define CHARAT(s, i) (s).charAt(i)
203 #define CHARCODEAT(s, i) (s).charCodeAt(i)
204 #define CHARCODE(c) (c).charCodeAt(0)
205 #define strlen(s) (s).length
206 #define EQUAL_STRINGS(s1, s2) ((s1) == (s2))
207 #define EMPTY_STRING(s) s = ""
208 #define SUBSTR(s, i) (s).substr(i)
209 #define BYTES_TO_STRING(dest, src, src_offset, len) \
210 { dest = ""; for (V(int, ii) = 0; ii < len; ii++) dest += String.fromCharCode(src[src_offset + ii]); }
211 #define SUBSTRING(dest, src, src_offset, len) \
212 dest = (src).substring(src_offset, src_offset + len)
214 #define GET_RESOURCE(name, ext) name##_##ext
216 #endif
218 #endif /* _ANYLANG_H_ */