| version 1.7, 2012/02/03 06:42:34 |
version 1.8, 2015/12/02 13:12:31 |
|
|
| * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
| * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
| * |
* |
| * $OpenXM: OpenXM_contrib2/asir2000/builtin/var.c,v 1.6 2006/08/09 10:08:46 noro Exp $ |
* $OpenXM: OpenXM_contrib2/asir2000/builtin/var.c,v 1.7 2012/02/03 06:42:34 noro Exp $ |
| */ |
*/ |
| #include "ca.h" |
#include "ca.h" |
| #include "parse.h" |
#include "parse.h" |
| |
|
| void Pvar(), Pvars(), Puc(), Pvars_recursive(),Psimple_is_eq(); |
void Pvar(), Pvars(), Puc(), Pvars_recursive(),Psimple_is_eq(); |
| |
void Pdelete_uc(); |
| |
|
| struct ftab var_tab[] = { |
struct ftab var_tab[] = { |
| {"var",Pvar,1}, |
{"var",Pvar,1}, |
| {"vars",Pvars,1}, |
{"vars",Pvars,1}, |
| {"vars_recursive",Pvars_recursive,1}, |
{"vars_recursive",Pvars_recursive,1}, |
| {"uc",Puc,0}, |
{"uc",Puc,0}, |
| |
{"delete_uc",Pdelete_uc,-1}, |
| {"simple_is_eq",Psimple_is_eq,2}, |
{"simple_is_eq",Psimple_is_eq,2}, |
| {0,0,0}, |
{0,0,0}, |
| }; |
}; |
| Line 252 void Puc(Obj *p) |
|
| Line 254 void Puc(Obj *p) |
|
| break; |
break; |
| } |
} |
| MKV(v,t); *p = (Obj)t; |
MKV(v,t); *p = (Obj)t; |
| |
} |
| |
|
| |
void Pdelete_uc(NODE arg,Obj *p) |
| |
{ |
| |
VL vl,prev; |
| |
V v; |
| |
|
| |
if ( argc(arg) == 1 ) { |
| |
asir_assert(ARG0(arg),O_P,"delete_uc"); |
| |
v = VR((P)ARG0(arg)); |
| |
} else |
| |
v = 0; |
| |
|
| |
for ( prev = 0, vl = CO; vl; vl = NEXT(vl) ) { |
| |
if ( (!v || v == vl->v) && vl->v->attr == (pointer)V_UC ) { |
| |
if ( prev == 0 ) |
| |
CO = NEXT(vl); |
| |
else |
| |
NEXT(prev) = NEXT(vl); |
| |
} else |
| |
prev = vl; |
| |
} |
| |
*p = 0; |
| } |
} |