/*
** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2003.
** See ../LICENSE for license information.
**
*/
/*
** mttok.h
*/
# ifndef MTTOK_H
# define MTTOK_H
struct s_mttok
{
int tok;
cstring text;
fileloc loc;
} ;
/* in forwardTypes.h: abst_typedef struct _mttok *mttok; */
extern mttok mttok_create (int p_tok,
/*@only@*/ cstring p_text,
/*@only@*/ fileloc p_loc) /*@modifies nothing@*/ ;
extern /*@only@*/ cstring mttok_unparse (mttok p_tok) /*@*/ ;
extern void mttok_free (/*@only@*/ mttok p_t) ;
extern int mttok_getTok (mttok p_t) /*@*/ ;
# define mttok_getTok(t) ((t)->tok)
extern /*@dependent@*/ /*@exposed@*/ fileloc mttok_getLoc (mttok p_t) /*@*/ ;
# define mttok_getLoc(t) ((t)->loc)
extern /*@only@*/ fileloc mttok_stealLoc (mttok p_t) /*@modifies p_t@*/ ;
extern /*@only@*/ cstring mttok_getText (mttok p_t) /*@*/ ;
# define mttok_getText(t) (cstring_copy ((t)->text))
extern /*@observer@*/ cstring mttok_observeText (mttok p_t) /*@*/ ;
# define mttok_observeText(t) ((t)->text)
extern bool mttok_isIdentifier (mttok p_t) /*@*/ ;
extern bool mttok_isError (mttok p_t) /*@*/ ;
# else
# error "Multiple include"
# endif
syntax highlighted by Code2HTML, v. 0.9.1