JWM Source Documentation
lex.h
Go to the documentation of this file.
00001 00010 #ifndef LEX_H 00011 #define LEX_H 00012 00017 typedef enum { 00018 00019 TOK_INVALID, 00020 00021 TOK_ACTIVE, 00022 TOK_ACTIVEBACKGROUND, 00023 TOK_ACTIVEFOREGROUND, 00024 TOK_BACKGROUND, 00025 TOK_BORDER, 00026 TOK_BUTTONCLOSE, 00027 TOK_BUTTONMAX, 00028 TOK_BUTTONMAXACTIVE, 00029 TOK_BUTTONMIN, 00030 TOK_CLASS, 00031 TOK_CLOCK, 00032 TOK_CLOCKSTYLE, 00033 TOK_CLOSE, 00034 TOK_DESKTOPS, 00035 TOK_DESKTOP, 00036 TOK_DOCK, 00037 TOK_DOUBLECLICKSPEED, 00038 TOK_DOUBLECLICKDELTA, 00039 TOK_EXIT, 00040 TOK_FOCUSMODEL, 00041 TOK_FONT, 00042 TOK_FOREGROUND, 00043 TOK_GROUP, 00044 TOK_HEIGHT, 00045 TOK_ICONPATH, 00046 TOK_INACTIVE, 00047 TOK_INCLUDE, 00048 TOK_JWM, 00049 TOK_KEY, 00050 TOK_KILL, 00051 TOK_LAYER, 00052 TOK_MAXIMIZE, 00053 TOK_MENU, 00054 TOK_MENUSTYLE, 00055 TOK_MINIMIZE, 00056 TOK_MOVE, 00057 TOK_MOVEMODE, 00058 TOK_NAME, 00059 TOK_OPACITY, 00060 TOK_OPTION, 00061 TOK_OUTLINE, 00062 TOK_PAGER, 00063 TOK_PAGERSTYLE, 00064 TOK_POPUP, 00065 TOK_POPUPSTYLE, 00066 TOK_PROGRAM, 00067 TOK_RESIZE, 00068 TOK_RESIZEMODE, 00069 TOK_RESTART, 00070 TOK_RESTARTCOMMAND, 00071 TOK_ROOTMENU, 00072 TOK_SENDTO, 00073 TOK_SEPARATOR, 00074 TOK_SHADE, 00075 TOK_SHUTDOWNCOMMAND, 00076 TOK_SNAPMODE, 00077 TOK_SPACER, 00078 TOK_STARTUPCOMMAND, 00079 TOK_STICK, 00080 TOK_SWALLOW, 00081 TOK_TASKLISTSTYLE, 00082 TOK_TASKLIST, 00083 TOK_TEXT, 00084 TOK_TITLE, 00085 TOK_TRAY, 00086 TOK_TRAYBUTTON, 00087 TOK_TRAYBUTTONSTYLE, 00088 TOK_TRAYSTYLE, 00089 TOK_WIDTH, 00090 TOK_WINDOWSTYLE 00091 00092 } TokenType; 00093 00095 typedef struct AttributeNode { 00096 00097 char *name; 00098 char *value; 00099 struct AttributeNode *next; 00101 } AttributeNode; 00102 00104 typedef struct TokenNode { 00105 00106 TokenType type; 00107 char *invalidName; 00108 char *value; 00109 char *fileName; 00110 int line; 00111 struct AttributeNode *attributes; 00112 struct TokenNode *parent; 00113 struct TokenNode *subnodeHead; 00114 struct TokenNode *subnodeTail; 00115 struct TokenNode *next; 00117 } TokenNode; 00118 00124 TokenNode *Tokenize(const char *line, const char *fileName); 00125 00131 const char *GetTokenName(const TokenNode *tp); 00132 00137 const char *GetTokenTypeName(TokenType type); 00138 00139 #endif /* LEX_H */ 00140