#ifndef INCLUDE_BLASSIC_KEYWORD_H
#define INCLUDE_BLASSIC_KEYWORD_H
// keyword.h
// Revision 9-jan-2005
#include "blassic.h"
const BlCode
keyColon= ':',
keyPlus= '+',
keyMinus= '-',
keyMult= '*',
keyDiv= '/',
keyDivInt= '\\',
keyEqual= '=',
keyMinor= '<',
keyGreater= '>',
keyOpenPar= '(',
keyClosePar= ')',
keyComma= ',',
keySharp= '#',
keyPower= '^',
keyEND= 0x0101,
keyLIST= 0x0102,
keyREM= 0x0103,
keyLOAD= 0x0104,
keySAVE= 0x0105,
keyNEW= 0x0106,
keyEXIT= 0x0107,
keyRUN= 0x0108,
keyPRINT= 0x0109,
keyFOR= 0x010A,
keyNEXT= 0x010B,
keyTO= 0x010C,
keySTEP= 0x010D,
keyIF= 0x010E,
keyTHEN= 0x010F,
keyELSE= 0x0110,
keyTRON= 0x0111,
keyTROFF= 0x0112,
keyLET= 0x0113,
keyGOTO= 0x0114,
keySTOP= 0x0115,
keyCONT= 0x0116,
keyCLEAR= 0x0117,
keyGOSUB= 0x0118,
keyRETURN= 0x0119,
keyPOKE= 0x011A,
keyDATA= 0x011B,
keyREAD= 0x011C,
keyRESTORE= 0x011D,
keyINPUT= 0x011E,
keyLINE= 0x011F,
keyRANDOMIZE= 0x0120,
keyPLEASE= 0x0121,
keyAUTO= 0x0122,
keyDIM= 0x0123,
keySYSTEM= 0x0124,
keyON= 0x0125,
keyERROR= 0x0126,
keyOPEN= 0x0127,
keyCLOSE= 0x0128,
keyOUTPUT= 0x0129,
keyAS= 0x012A,
keyLOCATE= 0x012B,
keyCLS= 0x012C,
keyAPPEND= 0x012D,
keyWRITE= 0x012E,
keyMODE= 0x012F,
keyMOVE= 0x0130,
keyCOLOR= 0x0131,
keyGET= 0x0132,
keyLABEL= 0x0133,
keyDELIMITER= 0x0134,
keyREPEAT= 0x0135,
keyUNTIL= 0x0136,
keyWHILE= 0x0137,
keyWEND= 0x0138,
keyPLOT= 0x0139,
keyPOPEN= 0x013A,
keyRESUME= 0x013B,
keyDELETE= 0x013C,
keyLOCAL= 0x013D,
keyRANDOM= 0x013E,
keyPUT= 0x013F,
keyFIELD= 0x0140,
keyLSET= 0x0141,
keyRSET= 0x0142,
keySOCKET= 0x0143,
keyDRAW= 0x0144,
keyDEF= 0x0145,
keyFN= 0x0146,
keyERASE= 0x0147,
keySWAP= 0x0148,
keySYMBOL= 0x0149,
keyZONE= 0x014A,
keyPOP= 0x014B,
keyNAME= 0x014C,
keyKILL= 0x014D,
keyFILES= 0x014E,
keyPAPER= 0x014F,
keyPEN= 0x0150,
keySHELL= 0x0151,
keyMERGE= 0x0152,
keyCHDIR= 0x0153,
keyMKDIR= 0x0154,
keyRMDIR= 0x0155,
keyBREAK= 0x0156,
keySYNCHRONIZE= 0x0157,
keyPAUSE= 0x0158,
keyCHAIN= 0x0159,
keySTR= 0x015A,
keyREAL= 0x015B,
keyENVIRON= 0x015C,
keyEDIT= 0x015D,
keyDRAWR= 0x015E,
keyPLOTR= 0x015F,
keyMOVER= 0x0160,
keyPOKE16= 0x0161,
keyPOKE32= 0x0162,
keyRENUM= 0x0163,
keyCIRCLE= 0x0164,
keyMASK= 0x0165,
keyWINDOW= 0x0166,
keyGRAPHICS= 0x0167,
keyAFTER= 0x0168,
keyBEEP= 0x0169,
keyDEFINT= 0x016A,
keyDEFSTR= 0x016B,
keyDEFREAL= 0x016C,
keyDEFSNG= 0x016D,
keyDEFDBL= 0x016E,
keyINK= 0x016F,
keySET_TITLE= 0x0170,
keyTAG= 0x0171,
keyTAGOFF= 0x0172,
keyORIGIN= 0x0173,
keyDEG= 0x0174,
keyRAD= 0x0175,
keyINVERSE= 0x0176,
keyIF_DEBUG= 0x0177,
keyLPRINT= 0x0178,
keyLLIST= 0x0179,
keyWIDTH= 0x017A,
keyBRIGHT= 0x017B,
keyBINARY= 0x017C,
keyDRAWARC= 0x017D,
keyPULL= 0x017E,
keyPAINT= 0x017F,
keyFREE_MEMORY= 0x0180,
keySCROLL= 0x0181,
keyZX_PLOT= 0x0182,
keyZX_UNPLOT= 0x0183,
keyMID_S= 0x0201,
keyLEFT_S= 0x0202,
keyRIGHT_S= 0x0203,
keyCHR_S= 0x0204,
keyENVIRON_S= 0x0205,
keySTRING_S= 0x0206,
keyOSFAMILY_S= 0x0207,
keyHEX_S= 0x0208,
keySPACE_S= 0x0209,
keyUPPER_S= 0x020A,
keyLOWER_S= 0x020B,
keySTR_S= 0x020C,
keyOCT_S= 0x020D,
keyBIN_S= 0x020E,
keyINKEY_S= 0x020F,
keyPROGRAMARG_S= 0x0210,
keyDATE_S= 0x0211,
keyTIME_S= 0x0212,
keyINPUT_S= 0x0213,
keyMKI_S= 0x0214,
keyMKS_S= 0x0215,
keyMKD_S= 0x0216,
keyMKL_S= 0x0217,
keyTRIM_S= 0x0218,
keyLTRIM_S= 0x0219,
keyRTRIM_S= 0x021A,
keyOSNAME_S= 0x021B,
keyFINDFIRST_S= 0x021C,
keyFINDNEXT_S= 0x021D,
keyCOPYCHR_S= 0x021E,
keySTRERR_S= 0x021F,
keyDEC_S= 0x0220,
keyVAL_S= 0x0221,
keySCREEN_S= 0x0222,
keyMKSMBF_S= 0x0223,
keyMKDMBF_S= 0x0224,
keyREGEXP_REPLACE_S= 0x0225,
keyUCASE_S= 0x0226,
keyLCASE_S= 0x0227,
keyASC= 0x0301,
keyLEN= 0x0302,
keyPEEK= 0x0303,
keyPROGRAMPTR= 0x0304,
keyRND= 0x0305,
keyINT= 0x0306,
keySIN= 0x0307,
keyCOS= 0x0308,
keyPI= 0x0309,
keyTAN= 0x030A,
keySQR= 0x030B,
keyASIN= 0x030C,
keyACOS= 0x030D,
keyINSTR= 0x030E,
keyATAN= 0x030F,
keyABS= 0x0310,
keyUSR= 0x0311,
keyVAL= 0x0312,
keyEOF= 0x0313,
keyVARPTR= 0x0314,
keySYSVARPTR= 0x0315,
keySGN= 0x0316,
keyLOG= 0x0317,
keyLOG10= 0x0318,
keyEXP= 0x0319,
keyTIME= 0x031A,
keyERR= 0x031B,
keyERL= 0x031C,
keyCVI= 0x031D,
keyCVS= 0x031E,
keyCVD= 0x031F,
keyCVL= 0x0320,
keyMIN= 0x0321,
keyMAX= 0x0322,
keyCINT= 0x0323,
keyFIX= 0x0324,
keyXMOUSE= 0x0325,
keyYMOUSE= 0x0326,
keyXPOS= 0x0327,
keyYPOS= 0x0328,
keyPEEK16= 0x0329,
keyPEEK32= 0x032A,
keyRINSTR= 0x032B,
keyFIND_FIRST_OF= 0x032C,
keyFIND_LAST_OF= 0x032D,
keyFIND_FIRST_NOT_OF= 0x032E,
keyFIND_LAST_NOT_OF= 0x032F,
keySINH= 0x0330,
keyCOSH= 0x0331,
keyTANH= 0x0332,
keyASINH= 0x0333,
keyACOSH= 0x0334,
keyATANH= 0x0335,
keyATAN2= 0x0336,
keyTEST= 0x0337,
keyTESTR= 0x0338,
keyPOS= 0x0339,
keyVPOS= 0x033A,
keyLOF= 0x033B,
keyFREEFILE= 0x033C,
keyINKEY= 0x033D,
keyROUND= 0x033E,
keyCVSMBF= 0x033F,
keyCVDMBF= 0x0340,
keyREGEXP_INSTR= 0x0341,
keyALLOC_MEMORY= 0x0342,
keyLOC= 0x0343,
keyNOT= 0x0401,
keyOR= 0x0402,
keyAND= 0x0403,
keyTAB= 0x0404,
keySPC= 0x0405,
keyAT= 0x0406,
keyXOR= 0x0407,
keyMOD= 0x0408,
keyUSING= 0x0409,
keyIDENTIFIER= 0x0601, // Not in program.
keyNUMBER= 0x0602, // Not in program.
keySTRING= 0x0603, // Not in program.
keyDISTINCT= 0x0604,
keyMINOREQUAL= 0x0605,
keyGREATEREQUAL= 0x0606,
keyINTEGER= 0x0607, // Not in program.
keyEQUALMINOR= 0x0608,
keyEQUALGREATER= 0x0609,
keyGREATERMINOR= 0x060A,
keyENDLINE= 0x06FF, // Not in program.
keyMAX_CODE_USED= 0x06FF;
inline bool iskey (unsigned char c)
{
// Por ahora.
return c == '\x01' || c == '\x02' || c == '\x03' ||
c == '\x04' || c == '\x06';
}
const BlChar INTEGER_PREFIX= '\x05';
void excludekeyword (const std::string & str);
BlCode keyword (const std::string & str);
std::string decodekeyword (BlCode s);
#endif
// Fin de keyword.h