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