2007-11-13 20:23:26 +00:00
|
|
|
/*
|
|
|
|
File: exprutil.c
|
|
|
|
Auth: Brian Allen Vanderburg II
|
|
|
|
Date: Monday, April 28, 2003
|
|
|
|
Desc: Utility functions for use by this library
|
|
|
|
|
|
|
|
This file is part of ExprEval.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/* Include files */
|
|
|
|
#include "exprincl.h"
|
|
|
|
|
|
|
|
#include "exprpriv.h"
|
|
|
|
|
|
|
|
|
|
|
|
/* Return the version number */
|
|
|
|
void exprGetVersion(int *major, int *minor)
|
2008-05-27 04:54:52 +00:00
|
|
|
{
|
|
|
|
*major = EXPR_VERSIONMAJOR;
|
|
|
|
*minor = EXPR_VERSIONMINOR;
|
|
|
|
}
|
2007-11-13 20:23:26 +00:00
|
|
|
|
|
|
|
/* This utility function determines if an identifier is valid */
|
|
|
|
int exprValidIdent(char *name)
|
2008-05-27 04:54:52 +00:00
|
|
|
{
|
|
|
|
if (name == NULL) /* Null string */
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
/* First must be letter or underscore */
|
|
|
|
if (isalpha(*name) || *name == '_')
|
|
|
|
name++; /* Point to next letter */
|
|
|
|
else
|
|
|
|
return 0; /* Not letter or underscore, maybe empty */
|
|
|
|
|
|
|
|
/* others can be letter, number, or underscore */
|
|
|
|
while (isalnum(*name) || *name == '_')
|
|
|
|
name++;
|
|
|
|
|
|
|
|
/* When the while breaks out, we should be at the end */
|
|
|
|
return (*name == '\0') ? 1 : 0;
|
|
|
|
}
|