@@ -61,12 +61,12 @@ struct LmnString {
6161 (TO_ATOM), \
6262 (TO_ATTR), \
6363 LMN_ATTR_GET_VALUE((TO_ATTR)), \
64- LMN_ATOM(( STR_ATOM) ), \
64+ ( STR_ATOM), \
6565 LMN_SP_ATOM_ATTR, 0)
6666
6767static int string_atom_type ;
6868
69- BOOL lmn_is_string (LmnAtom atom , LmnLinkAttr attr )
69+ BOOL lmn_is_string (LmnAtomRef atom , LmnLinkAttr attr )
7070{
7171 return
7272 attr == LMN_SP_ATOM_ATTR &&
@@ -200,8 +200,8 @@ unsigned long lmn_string_len(LmnStringRef s)
200200
201201void cb_string_make (LmnReactCxtRef rc ,
202202 LmnMembraneRef mem ,
203- LmnAtom a0 , LmnLinkAttr t0 ,
204- LmnAtom a1 , LmnLinkAttr t1 )
203+ LmnAtomRef a0 , LmnLinkAttr t0 ,
204+ LmnAtomRef a1 , LmnLinkAttr t1 )
205205{
206206 const char * s ;
207207 char buf [64 ];
@@ -210,11 +210,11 @@ void cb_string_make(LmnReactCxtRef rc,
210210 if (LMN_ATTR_IS_DATA (t0 )) {
211211 switch (t0 ) {
212212 case LMN_INT_ATTR :
213- s = int_to_str (a0 );
213+ s = int_to_str (( LmnWord ) a0 );
214214 to_be_freed = TRUE;
215215 break ;
216216 case LMN_DBL_ATTR :
217- sprintf (buf , "%#g" , lmn_get_double (a0 ));
217+ sprintf (buf , "%#g" , lmn_get_double (( LmnDataAtomRef ) a0 ));
218218 s = buf ;
219219 break ;
220220 case LMN_STRING_ATTR :
@@ -226,7 +226,7 @@ void cb_string_make(LmnReactCxtRef rc,
226226 break ;
227227 }
228228 } else { /* symbol atom */
229- s = LMN_SATOM_STR (a0 );
229+ s = LMN_SATOM_STR (( LmnSymbolAtomRef ) a0 );
230230 }
231231
232232 LINK_STR (mem , a1 , t1 , lmn_string_make (s ));
@@ -236,9 +236,9 @@ void cb_string_make(LmnReactCxtRef rc,
236236
237237void cb_string_concat (LmnReactCxtRef rc ,
238238 LmnMembraneRef mem ,
239- LmnAtom a0 , LmnLinkAttr t0 ,
240- LmnAtom a1 , LmnLinkAttr t1 ,
241- LmnAtom a2 , LmnLinkAttr t2 )
239+ LmnAtomRef a0 , LmnLinkAttr t0 ,
240+ LmnAtomRef a1 , LmnLinkAttr t1 ,
241+ LmnAtomRef a2 , LmnLinkAttr t2 )
242242{
243243 LmnStringRef s = lmn_string_concat (LMN_STRING (a0 ), LMN_STRING (a1 ));
244244 LINK_STR (mem , a2 , t2 , s );
@@ -249,21 +249,21 @@ void cb_string_concat(LmnReactCxtRef rc,
249249
250250void cb_string_length (LmnReactCxtRef rc ,
251251 LmnMembraneRef mem ,
252- LmnAtom a0 , LmnLinkAttr t0 ,
253- LmnAtom a1 , LmnLinkAttr t1 )
252+ LmnAtomRef a0 , LmnLinkAttr t0 ,
253+ LmnAtomRef a1 , LmnLinkAttr t1 )
254254{
255- int len = LMN_STRING_LEN (a0 );
255+ LmnWord len = LMN_STRING_LEN (a0 );
256256
257257 lmn_mem_newlink (mem , a1 , t1 , LMN_ATTR_GET_VALUE (t1 ),
258- len , LMN_INT_ATTR , 0 );
258+ ( LmnAtomRef ) len , LMN_INT_ATTR , 0 );
259259
260260 lmn_mem_delete_atom (mem , a0 , t0 );
261261}
262262
263263void cb_string_reverse (LmnReactCxtRef rc ,
264264 LmnMembraneRef mem ,
265- LmnAtom a0 , LmnLinkAttr t0 ,
266- LmnAtom a1 , LmnLinkAttr t1 )
265+ LmnAtomRef a0 , LmnLinkAttr t0 ,
266+ LmnAtomRef a1 , LmnLinkAttr t1 )
267267{
268268 int i , j ;
269269 char * s = LMN_STRING_BUF (a0 );
@@ -280,18 +280,19 @@ void cb_string_reverse(LmnReactCxtRef rc,
280280
281281void cb_string_substr (LmnReactCxtRef rc ,
282282 LmnMembraneRef mem ,
283- LmnAtom a0 , LmnLinkAttr t0 ,
284- long begin , LmnLinkAttr t1 ,
285- long end , LmnLinkAttr t2 ,
286- LmnAtom a3 , LmnLinkAttr t3 )
283+ LmnAtomRef a0 , LmnLinkAttr t0 ,
284+ LmnAtomRef begin_ , LmnLinkAttr t1 ,
285+ LmnAtomRef end_ , LmnLinkAttr t2 ,
286+ LmnAtomRef a3 , LmnLinkAttr t3 )
287287{
288288 const char * src = (const char * )LMN_STRING_BUF (a0 );
289289 char * s ;
290290 LmnStringRef ret ;
291+ LmnWord begin = (LmnWord )begin_ ;
292+ LmnWord end = (LmnWord )end_ ;
291293
292294 if (begin <= end ) {
293295 int len = strlen (src );
294- if (begin < 0 ) begin = 0 ;
295296 if (end > len ) end = len ;
296297 s = LMN_NALLOC (char , end - begin + 1 );
297298 snprintf (s , end - begin + 1 , "%s" , src + begin );
@@ -301,37 +302,37 @@ void cb_string_substr(LmnReactCxtRef rc,
301302
302303 ret = lmn_string_make (s );
303304 LMN_FREE (s );
304- lmn_mem_push_atom (mem , LMN_ATOM ( ret ) , LMN_SP_ATOM_ATTR );
305+ lmn_mem_push_atom (mem , ret , LMN_SP_ATOM_ATTR );
305306 LINK_STR (mem , a3 , t3 , ret );
306307
307308 lmn_mem_delete_atom (mem , a0 , t0 );
308- lmn_mem_delete_atom (mem , begin , t1 );
309- lmn_mem_delete_atom (mem , end , t2 );
309+ lmn_mem_delete_atom (mem , begin_ , t1 );
310+ lmn_mem_delete_atom (mem , end_ , t2 );
310311}
311312
312313void cb_string_substr_right (LmnReactCxtRef rc ,
313314 LmnMembraneRef mem ,
314- LmnAtom a0 , LmnLinkAttr t0 ,
315- long begin , LmnLinkAttr t1 ,
316- LmnAtom a2 , LmnLinkAttr t2 )
315+ LmnAtomRef a0 , LmnLinkAttr t0 ,
316+ LmnAtomRef begin_ , LmnLinkAttr t1 ,
317+ LmnAtomRef a2 , LmnLinkAttr t2 )
317318{
318319 const char * src = LMN_STRING_BUF (a0 );
319320 char * s ;
320321 int len = strlen (src );
321322 LmnStringRef ret ;
323+ LmnWord begin = (LmnWord )begin_ ;
322324
323- if (begin < 0 ) { begin = 0 ;}
324325 if (begin > len ) begin = len ;
325326 s = LMN_NALLOC (char , len - begin + 1 );
326327 snprintf (s , len - begin + 1 , "%s" , src + begin );
327328
328329 ret = lmn_string_make (s );
329330 LMN_FREE (s );
330- lmn_mem_push_atom (mem , LMN_ATOM ( ret ) , LMN_SP_ATOM_ATTR );
331+ lmn_mem_push_atom (mem , ret , LMN_SP_ATOM_ATTR );
331332 LINK_STR (mem , a2 , t2 , ret );
332333
333334 lmn_mem_delete_atom (mem , a0 , t0 );
334- lmn_mem_delete_atom (mem , begin , t1 );
335+ lmn_mem_delete_atom (mem , begin_ , t1 );
335336}
336337
337338
0 commit comments