~ubuntu-branches/ubuntu/utopic/gridengine/utopic

« back to all changes in this revision

Viewing changes to source/3rdparty/qmon/Xmt310/Xmt/Lexer.h

  • Committer: Bazaar Package Importer
  • Author(s): Mark Hymers
  • Date: 2008-06-25 22:36:13 UTC
  • Revision ID: james.westby@ubuntu.com-20080625223613-tvd9xlhuoct9kyhm
Tags: upstream-6.2~beta2
ImportĀ upstreamĀ versionĀ 6.2~beta2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* 
 
2
 * Motif Tools Library, Version 3.1
 
3
 * $Id$
 
4
 * 
 
5
 * Written by David Flanagan.
 
6
 * Copyright (c) 1992-2001 by David Flanagan.
 
7
 * All Rights Reserved.  See the file COPYRIGHT for details.
 
8
 * This is open source software.  See the file LICENSE for details.
 
9
 * There is no warranty for this software.  See NO_WARRANTY for details.
 
10
 *
 
11
 * $Log$
 
12
 * Revision 1.1.1.1  2001/07/18 11:06:02  root
 
13
 * Initial checkin.
 
14
 *
 
15
 * Revision 1.2  2001/06/12 16:25:28  andre
 
16
 * *** empty log message ***
 
17
 *
 
18
 *
 
19
 */
 
20
 
 
21
#ifndef _XmtLexer_h
 
22
#define _XmtLexer_h    
 
23
 
 
24
#include <ctype.h>
 
25
 
 
26
typedef enum {
 
27
    XmtLexerNone,
 
28
    
 
29
    XmtLexerString,
 
30
    XmtLexerIdent,
 
31
    XmtLexerKeyword,
 
32
    XmtLexerInteger,
 
33
    
 
34
    XmtLexerLParen,
 
35
    XmtLexerRParen,
 
36
    XmtLexerLBracket,
 
37
    XmtLexerRBracket,
 
38
    XmtLexerLBrace,
 
39
    XmtLexerRBrace,
 
40
    XmtLexerLess,
 
41
    XmtLexerGreater,
 
42
    XmtLexerPlus,
 
43
    XmtLexerMinus,
 
44
    XmtLexerAsterisk,
 
45
    XmtLexerSlash,
 
46
    XmtLexerBar,
 
47
    XmtLexerEqual,
 
48
    XmtLexerSharp,
 
49
    XmtLexerTwiddle,
 
50
    XmtLexerPercent,
 
51
    XmtLexerDollar,
 
52
    XmtLexerPeriod,
 
53
    XmtLexerCaret,
 
54
    XmtLexerColon,
 
55
    XmtLexerSemicolon,
 
56
    XmtLexerComma,
 
57
    
 
58
    XmtLexerEndOfString,
 
59
    XmtLexerError
 
60
} XmtLexerToken;
 
61
 
 
62
typedef struct {
 
63
    _Xconst char *c;
 
64
    XmtLexerToken token;
 
65
    int intval;
 
66
    String strval;
 
67
    String *keywords;  /* must be in alphabetical order */
 
68
    int num_keywords;
 
69
} XmtLexerRec, *XmtLexer;
 
70
 
 
71
#define XmtLexerIntValue(l) ((l)->intval)
 
72
#define XmtLexerStrValue(l) ((l)->strval)
 
73
#define XmtLexerStrLength(l) ((l)->intval)
 
74
#define XmtLexerKeyValue(l) ((l)->intval)
 
75
#define XmtLexerGetToken(l) \
 
76
    (((l)->token != XmtLexerNone)?(l)->token:_XmtLexerGetToken(l))
 
77
#define XmtLexerConsumeToken(l) ((l)->token = XmtLexerNone)
 
78
#define XmtLexerSkipWhite(l) while (isspace((int)*(l)->c)) (l)->c++
 
79
/* ConsumeToken immediately followed by GetToken */
 
80
#define XmtLexerNextToken(l) _XmtLexerGetToken(l)    
 
81
 
 
82
_XFUNCPROTOBEGIN
 
83
#if NeedFunctionPrototypes
 
84
extern XmtLexer XmtLexerCreate(String *, int);
 
85
extern void XmtLexerDestroy(XmtLexer);
 
86
extern void XmtLexerInit(XmtLexer, StringConst);
 
87
extern XmtLexerToken _XmtLexerGetToken(XmtLexer);
 
88
extern XmtLexerToken XmtLexerScan(XmtLexer, StringConst, XmtWideBoolean);
 
89
extern Boolean XmtLexerGetArgList(XmtLexer, String *, Cardinal, Cardinal *);
 
90
#else
 
91
extern XmtLexer XmtLexerCreate();
 
92
extern void XmtLexerDestroy();
 
93
extern void XmtLexerInit();
 
94
extern XmtLexerToken _XmtLexerGetToken();
 
95
extern XmtLexerToken XmtLexerScan();
 
96
extern Boolean XmtLexerGetArgList();
 
97
#endif
 
98
_XFUNCPROTOEND
 
99
                  
 
100
#endif