126 lines
3.6 KiB
C
126 lines
3.6 KiB
C
/* */
|
|
#include <ctype.h>
|
|
|
|
#include "../interpreter.h"
|
|
|
|
|
|
void StdIsalnum(struct ParseState *Parser, struct Value *ReturnValue,
|
|
struct Value **Param, int NumArgs)
|
|
{
|
|
ReturnValue->Val->Integer = isalnum(Param[0]->Val->Integer);
|
|
}
|
|
|
|
void StdIsalpha(struct ParseState *Parser, struct Value *ReturnValue,
|
|
struct Value **Param, int NumArgs)
|
|
{
|
|
ReturnValue->Val->Integer = isalpha(Param[0]->Val->Integer);
|
|
}
|
|
|
|
void StdIsblank(struct ParseState *Parser, struct Value *ReturnValue,
|
|
struct Value **Param, int NumArgs)
|
|
{
|
|
int ch = Param[0]->Val->Integer;
|
|
ReturnValue->Val->Integer = (ch == ' ') | (ch == '\t');
|
|
}
|
|
|
|
void StdIscntrl(struct ParseState *Parser, struct Value *ReturnValue,
|
|
struct Value **Param, int NumArgs)
|
|
{
|
|
ReturnValue->Val->Integer = iscntrl(Param[0]->Val->Integer);
|
|
}
|
|
|
|
void StdIsdigit(struct ParseState *Parser, struct Value *ReturnValue,
|
|
struct Value **Param, int NumArgs)
|
|
{
|
|
ReturnValue->Val->Integer = isdigit(Param[0]->Val->Integer);
|
|
}
|
|
|
|
void StdIsgraph(struct ParseState *Parser, struct Value *ReturnValue,
|
|
struct Value **Param, int NumArgs)
|
|
{
|
|
ReturnValue->Val->Integer = isgraph(Param[0]->Val->Integer);
|
|
}
|
|
|
|
void StdIslower(struct ParseState *Parser, struct Value *ReturnValue,
|
|
struct Value **Param, int NumArgs)
|
|
{
|
|
ReturnValue->Val->Integer = islower(Param[0]->Val->Integer);
|
|
}
|
|
|
|
void StdIsprint(struct ParseState *Parser, struct Value *ReturnValue,
|
|
struct Value **Param, int NumArgs)
|
|
{
|
|
ReturnValue->Val->Integer = isprint(Param[0]->Val->Integer);
|
|
}
|
|
|
|
void StdIspunct(struct ParseState *Parser, struct Value *ReturnValue,
|
|
struct Value **Param, int NumArgs)
|
|
{
|
|
ReturnValue->Val->Integer = ispunct(Param[0]->Val->Integer);
|
|
}
|
|
|
|
void StdIsspace(struct ParseState *Parser, struct Value *ReturnValue,
|
|
struct Value **Param, int NumArgs)
|
|
{
|
|
ReturnValue->Val->Integer = isspace(Param[0]->Val->Integer);
|
|
}
|
|
|
|
void StdIsupper(struct ParseState *Parser, struct Value *ReturnValue,
|
|
struct Value **Param, int NumArgs)
|
|
{
|
|
ReturnValue->Val->Integer = isupper(Param[0]->Val->Integer);
|
|
}
|
|
|
|
void StdIsxdigit(struct ParseState *Parser, struct Value *ReturnValue,
|
|
struct Value **Param, int NumArgs)
|
|
{
|
|
ReturnValue->Val->Integer = isxdigit(Param[0]->Val->Integer);
|
|
}
|
|
|
|
void StdTolower(struct ParseState *Parser, struct Value *ReturnValue,
|
|
struct Value **Param, int NumArgs)
|
|
{
|
|
ReturnValue->Val->Integer = tolower(Param[0]->Val->Integer);
|
|
}
|
|
|
|
void StdToupper(struct ParseState *Parser, struct Value *ReturnValue,
|
|
struct Value **Param, int NumArgs)
|
|
{
|
|
ReturnValue->Val->Integer = toupper(Param[0]->Val->Integer);
|
|
}
|
|
|
|
void StdIsascii(struct ParseState *Parser, struct Value *ReturnValue,
|
|
struct Value **Param, int NumArgs)
|
|
{
|
|
ReturnValue->Val->Integer = isascii(Param[0]->Val->Integer);
|
|
}
|
|
|
|
void StdToascii(struct ParseState *Parser, struct Value *ReturnValue,
|
|
struct Value **Param, int NumArgs)
|
|
{
|
|
ReturnValue->Val->Integer = toascii(Param[0]->Val->Integer);
|
|
}
|
|
|
|
/* all string.h functions */
|
|
struct LibraryFunction StdCtypeFunctions[] =
|
|
{
|
|
{StdIsalnum, "int isalnum(int);"},
|
|
{StdIsalpha, "int isalpha(int);"},
|
|
{StdIsblank, "int isblank(int);"},
|
|
{StdIscntrl, "int iscntrl(int);"},
|
|
{StdIsdigit, "int isdigit(int);"},
|
|
{StdIsgraph, "int isgraph(int);"},
|
|
{StdIslower, "int islower(int);"},
|
|
{StdIsprint, "int isprint(int);"},
|
|
{StdIspunct, "int ispunct(int);"},
|
|
{StdIsspace, "int isspace(int);"},
|
|
{StdIsupper, "int isupper(int);"},
|
|
{StdIsxdigit, "int isxdigit(int);"},
|
|
{StdTolower, "int tolower(int);"},
|
|
{StdToupper, "int toupper(int);"},
|
|
{StdIsascii, "int isascii(int);"},
|
|
{StdToascii, "int toascii(int);"},
|
|
{NULL, NULL }
|
|
};
|
|
|