User:Karthik0112358/Classify Var
Jump to navigation
Jump to search
static symchar *g_symbols[3]; #define STATEFLAG g_symbols[0] #define STATEINDEX g_symbols[1] #define OBSINDEX g_symbols[2] #define INTEG_OTHER_VAR -1L #define INTEG_ALGEBRAIC_VAR 0L #define INTEG_STATE_VAR 1L long Classify)Var(struct var_variable *v,long *index){ struct Instance *c, *d, *i; i = var_instance(v); asc_assert(i!=NULL); asc_assert(STATEFLAG!=NULL); asc_assert(STATEINDEX!=NULL); c = ChildByChar(i,STATEFLAG); d = ChildByChar(i,STATEINDEX); if(c == NULL || d == NULL || InstanceKind(c) != INTEGER_INST || InstanceKind(d) != INTEGER_INST || !AtomAssigned(c) || (!AtomAssigned(d) && GetIntegerAtomValue(c) != INTEG_OTHER_VAR)){ return INTEG_ALGEBRAIC_VAR; } if (index != NULL) { *index = GetIntegerAtomValue(d); } return GetIntegerAtomValue(c); }