[BACK]Return to parse.h CVS log [TXT][DIR] Up to [local] / OpenXM / src / ox_toolkit

File: [local] / OpenXM / src / ox_toolkit / parse.h (download)

Revision 1.3, Mon Jan 17 19:55:56 2000 UTC (24 years, 4 months ago) by ohara
Branch: MAIN
CVS Tags: RELEASE_20000124
Changes since 1.2: +7 -10 lines

Now we can parse large integers.

/* -*- mode: C -*- */
/* $OpenXM: OpenXM/src/ox_toolkit/parse.h,v 1.3 2000/01/17 19:55:56 ohara Exp $ */

#ifndef _PARSE_H_

#include "ox.h"

#define _PARSE_H_

/* Remarks: a token, which is less than 256, means a one character token. */

/* The followings are definitions of some tokens. */
#define T_DIGIT         257
#define T_STRING        258
#define T_MAGIC         2048
#define TOKEN(x)        (T_MAGIC + (x))
#define SM              SM_popCMO

/* Macros for distinction of kinds of tokens. */
#define MIN_T_CMO     TOKEN(0)
#define MAX_T_CMO     TOKEN(256)
#define MIN_T_OX      TOKEN(512)
#define MAX_T_OX      TOKEN(600)

#define IS_CMO   1
#define IS_SM    2
#define IS_OX    3

#define PFLAG_ADDREV   1

int setflag_parse(int flag);
cmo *parse();
int init_parser(char *s);

typedef struct {
    char *key;
    int  tag;
    int  token;
    int  type;
} symbol; 

symbol* lookup_by_symbol(char *key);
symbol* lookup_by_token(int tok);
symbol* lookup_by_tag(int tag);
symbol* lookup(int i);

#endif /* _PARSE_H_ */