static INT ident_len ( LPCTSTR p ) { LPCTSTR p2 = p; if ( __iscsymf(*p) ) { ++p2; while ( __iscsym(*p2) ) ++p2; } return p2-p; }
BOOL IsValidSymbol(const TCHAR* psz) { #ifdef UNICODE if (!__iswcsymf(*psz)) #else if (!__iscsymf(*psz)) #endif return FALSE; ASSERT(*psz != 0); ++psz; while (*psz) { #ifdef UNICODE if (!__iswcsym(*psz)) #else if (!__iscsym(*psz)) #endif return FALSE; ++psz; } return TRUE; }
static BOOL seta_unaryTerm ( LPCTSTR* p_, INT* result ) { LPCTSTR p = *p_; if ( *p == _T('(') ) { INT rval; p = skip_ws ( p + 1 ); if ( !seta_stmt ( &p, &rval ) ) return FALSE; if ( *p++ != _T(')') ) { ConErrResPuts ( STRING_EXPECTED_CLOSE_PAREN ); return FALSE; } *result = rval; } else if ( isdigit(*p) ) { *result = _tcstol ( p, (LPTSTR *)&p, 0 ); } else if ( __iscsymf(*p) ) { LPTSTR ident; INT identlen; PARSE_IDENT(ident,identlen,p); if ( !seta_identval ( ident, result ) ) return FALSE; } else { ConErrResPuts ( STRING_EXPECTED_NUMBER_OR_VARIABLE ); return FALSE; } *p_ = skip_ws ( p ); return TRUE; }