File: lex.h

package info (click to toggle)
sysfence 0.14-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k, sarge
  • size: 444 kB
  • ctags: 334
  • sloc: ansic: 2,443; makefile: 155
file content (68 lines) | stat: -rw-r--r-- 1,627 bytes parent folder | download | duplicates (2)
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 $ */