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 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
|
/*
* Motif Tools Library, Version 3.1
* $Id$
*
* Written by David Flanagan.
* Copyright (c) 1992-2001 by David Flanagan.
* All Rights Reserved. See the file COPYRIGHT for details.
* This is open source software. See the file LICENSE for details.
* There is no warranty for this software. See NO_WARRANTY for details.
*
* $Log$
* Revision 1.1.1.1 2001/07/18 11:06:02 root
* Initial checkin.
*
* Revision 1.2 2001/06/12 16:25:28 andre
* *** empty log message ***
*
*
*/
#ifndef _XmtLexer_h
#define _XmtLexer_h
#include <ctype.h>
typedef enum {
XmtLexerNone,
XmtLexerString,
XmtLexerIdent,
XmtLexerKeyword,
XmtLexerInteger,
XmtLexerLParen,
XmtLexerRParen,
XmtLexerLBracket,
XmtLexerRBracket,
XmtLexerLBrace,
XmtLexerRBrace,
XmtLexerLess,
XmtLexerGreater,
XmtLexerPlus,
XmtLexerMinus,
XmtLexerAsterisk,
XmtLexerSlash,
XmtLexerBar,
XmtLexerEqual,
XmtLexerSharp,
XmtLexerTwiddle,
XmtLexerPercent,
XmtLexerDollar,
XmtLexerPeriod,
XmtLexerCaret,
XmtLexerColon,
XmtLexerSemicolon,
XmtLexerComma,
XmtLexerEndOfString,
XmtLexerError
} XmtLexerToken;
typedef struct {
_Xconst char *c;
XmtLexerToken token;
int intval;
String strval;
String *keywords; /* must be in alphabetical order */
int num_keywords;
} XmtLexerRec, *XmtLexer;
#define XmtLexerIntValue(l) ((l)->intval)
#define XmtLexerStrValue(l) ((l)->strval)
#define XmtLexerStrLength(l) ((l)->intval)
#define XmtLexerKeyValue(l) ((l)->intval)
#define XmtLexerGetToken(l) \
(((l)->token != XmtLexerNone)?(l)->token:_XmtLexerGetToken(l))
#define XmtLexerConsumeToken(l) ((l)->token = XmtLexerNone)
#define XmtLexerSkipWhite(l) while (isspace((int)*(l)->c)) (l)->c++
/* ConsumeToken immediately followed by GetToken */
#define XmtLexerNextToken(l) _XmtLexerGetToken(l)
_XFUNCPROTOBEGIN
#if NeedFunctionPrototypes
extern XmtLexer XmtLexerCreate(String *, int);
extern void XmtLexerDestroy(XmtLexer);
extern void XmtLexerInit(XmtLexer, StringConst);
extern XmtLexerToken _XmtLexerGetToken(XmtLexer);
extern XmtLexerToken XmtLexerScan(XmtLexer, StringConst, XmtWideBoolean);
extern Boolean XmtLexerGetArgList(XmtLexer, String *, Cardinal, Cardinal *);
#else
extern XmtLexer XmtLexerCreate();
extern void XmtLexerDestroy();
extern void XmtLexerInit();
extern XmtLexerToken _XmtLexerGetToken();
extern XmtLexerToken XmtLexerScan();
extern Boolean XmtLexerGetArgList();
#endif
_XFUNCPROTOEND
#endif
|