1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
  
     | 
    
      /*
 
  copyright (c) 2004, Michal Salaban <emes@pld-linux.org>
  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License, version 2 as
  published by the Free Software Foundation (see file COPYING for details).
  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  
  $Id: lex.h,v 1.7 2004/06/05 12:49:41 emes Exp $
 
*/
#define MAXREP  4
char            *lexptr;
typedef enum
{
    /* comparison operators */
    CO_EQ,      CO_NEQ,     CO_LE,      CO_LT,      CO_GE,      CO_GT,
    /* logical operators */
    LO_OR,      LO_AND,
    /* list separator */
    LI_SEP,
    /* keywords */
    KW_IF,      KW_RUN,     KW_LOG,     KW_ONCE,    KW_STEP,
    /* block beginning/end */
    BL_BEGIN,   BL_END,
    /* identifiers */
    ID_LA1,     ID_LA5,     ID_LA15,
    ID_MFREE,   ID_MUSED,
    ID_SFREE,   ID_SUSED,
    ID_FSFREE,  ID_FSAVAIL, ID_FSUSED,
    ID_NPROC,
    /* process states */
    PR_RUN,     PR_STOP,    PR_SLEEP,   PR_UNINT,   PR_ZOMBIE,
    /* values */
    VA_INT,     VA_SIZ,     VA_DBL,     VA_STR,
    /* special token, must be last */
    END
} token;
typedef struct
{
    token   type;
    char    *repv[MAXREP];  /* representations table */
} literal;
typedef struct
{
    token           type;
    unsigned int    line;
    void            *val;
} tokdata;
/*
 * Functions
 */
tokdata next_token ();
char * tok2string (token t);
/* $Id: lex.h,v 1.7 2004/06/05 12:49:41 emes Exp $ */
 
     |