|
@@ -1,85 +0,0 @@
|
|
|
-#ifndef LANG_CEM_CEMCOM_ANSI_LLLEX_H
|
|
|
-#define LANG_CEM_CEMCOM_ANSI_LLLEX_H
|
|
|
-/*
|
|
|
- * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
|
|
|
- * See the copyright notice in the ACK home directory, in the file "Copyright".
|
|
|
- */
|
|
|
-/* $Id$ */
|
|
|
-/* D E F I N I T I O N S F O R T H E L E X I C A L A N A L Y Z E R */
|
|
|
-
|
|
|
-/* A token from the input stream is represented by an integer,
|
|
|
- called a "symbol", but it may have other information associated
|
|
|
- to it.
|
|
|
-*/
|
|
|
-
|
|
|
-#include "file_info.h"
|
|
|
-#include "nopp.h"
|
|
|
-
|
|
|
-/* the structure of a token: */
|
|
|
-struct token {
|
|
|
- int tok_symb; /* the token itself */
|
|
|
- char *tok_file; /* the file it (probably) comes from */
|
|
|
- unsigned int tok_line; /* the line it (probably) comes from */
|
|
|
- int tok_fund;
|
|
|
- union {
|
|
|
- struct idf *tok_idf; /* for IDENTIFIER & TYPE_IDENTIFIER */
|
|
|
- struct { /* for STRING */
|
|
|
- char *tok_bts; /* row of bytes */
|
|
|
- int tok_len; /* length of row of bytes */
|
|
|
- } tok_string;
|
|
|
- arith tok_ival; /* for INTEGER */
|
|
|
- char *tok_fval; /* for FLOATING */
|
|
|
- } tok_data;
|
|
|
-};
|
|
|
-
|
|
|
-#define tk_symb tok_symb
|
|
|
-#define tk_file tok_file
|
|
|
-#define tk_line tok_line
|
|
|
-#define tk_fund tok_fund
|
|
|
-#define tk_idf tok_data.tok_idf
|
|
|
-#define tk_bts tok_data.tok_string.tok_bts
|
|
|
-#define tk_len tok_data.tok_string.tok_len
|
|
|
-#define tk_ival tok_data.tok_ival
|
|
|
-#define tk_fval tok_data.tok_fval
|
|
|
-
|
|
|
-extern struct token dot, ahead, aside;
|
|
|
-extern int token_nmb; /* number of the ahead token */
|
|
|
-extern int tk_nmb_at_last_syn_err; /* token number at last syntax error */
|
|
|
-
|
|
|
-#ifndef NOPP
|
|
|
-extern int ReplaceMacros; /* "LLlex.c" */
|
|
|
-extern int AccDefined; /* "LLlex.c" */
|
|
|
-extern int Unstacked; /* "LLlex.c" */
|
|
|
-extern int UnknownIdIsZero; /* "LLlex.c" */
|
|
|
-#endif /* NOPP */
|
|
|
-extern int EoiForNewline; /* "LLlex.c" */
|
|
|
-extern int AccFileSpecifier; /* "LLlex.c" */
|
|
|
-extern int File_Inserted; /* "LLlex.c" */
|
|
|
-
|
|
|
-extern int NoUnstack; /* buffer.c */
|
|
|
-
|
|
|
-extern int err_occurred; /* "error.c" */
|
|
|
-
|
|
|
-#define DOT dot.tk_symb
|
|
|
-#define AHEAD ahead.tk_symb
|
|
|
-#define ASIDE aside.tk_symb
|
|
|
-
|
|
|
-#define EOF (-1)
|
|
|
-
|
|
|
-/* lang/cem/cemcom.ansi/LLlex.c */
|
|
|
-void PushLex(void);
|
|
|
-void PopLex(void);
|
|
|
-int LLlex(void);
|
|
|
-int GetToken(struct token *ptok);
|
|
|
-void skipcomment(void);
|
|
|
-arith char_constant(char *nm);
|
|
|
-char *string_token(char *nm, int stop_char, int *plen);
|
|
|
-int quoted(int ch);
|
|
|
-int hex_val(int ch);
|
|
|
-int GetChar(void);
|
|
|
-int trigraph(void);
|
|
|
-void strflt2tok(char fltbuf[], struct token *ptok);
|
|
|
-void strint2tok(char intbuf[], struct token *ptok);
|
|
|
-
|
|
|
-#endif /* LANG_CEM_CEMCOM_ANSI_LLLEX_H */
|
|
|
-
|