X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/7da4d69f8a109d426d17cf6f103e8fa04d3b0d5b..e9f87b5b7df2e328d2e4196d276c0d96594c906b:/src/lex.h?ds=sidebyside diff --git a/src/lex.h b/src/lex.h index 6cbaebcb..9f3cfe3a 100644 --- a/src/lex.h +++ b/src/lex.h @@ -1,50 +1,81 @@ /* Token type definitions for bison's input reader, - Copyright (C) 1984, 1989, 1992 Free Software Foundation, Inc. - -This file is part of Bison, the GNU Compiler Compiler. - -Bison is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -Bison is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with Bison; see the file COPYING. If not, write to -the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ - - -#define ENDFILE 0 -#define IDENTIFIER 1 -#define COMMA 2 -#define COLON 3 -#define SEMICOLON 4 -#define BAR 5 -#define LEFT_CURLY 6 -#define TWO_PERCENTS 7 -#define PERCENT_LEFT_CURLY 8 -#define TOKEN 9 -#define NTERM 10 -#define GUARD 11 -#define TYPE 12 -#define UNION 13 -#define START 14 -#define LEFT 15 -#define RIGHT 16 -#define NONASSOC 17 -#define PREC 18 -#define SEMANTIC_PARSER 19 -#define PURE_PARSER 20 -#define TYPENAME 21 -#define NUMBER 22 -#define EXPECT 23 -#define THONG 24 -#define NOOP 25 -#define SETOPT 26 -#define ILLEGAL 27 - -#define MAXTOKEN 1024 + Copyright 1984, 1989, 1992, 2000, 2001 Free Software Foundation, Inc. + + This file is part of Bison, the GNU Compiler Compiler. + + Bison is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + Bison is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bison; see the file COPYING. If not, write to + the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#ifndef LEX_H_ +# define LEX_H_ + +/* Token-type codes. */ +typedef enum token_e + { + tok_undef, /* Not defined. Used to initial token_t vars. */ + tok_eof, + tok_identifier, + tok_comma, + tok_colon, + tok_semicolon, + tok_bar, + tok_left_curly, + tok_two_percents, + tok_percent_left_curly, + tok_token, + tok_nterm, + tok_guard, + tok_type, + tok_union, + tok_start, + tok_left, + tok_right, + tok_nonassoc, + tok_prec, + tok_typename, + tok_number, + tok_expect, + tok_thong, + tok_define, + tok_skel, + tok_noop, + tok_intopt, + tok_stropt, + tok_illegal, + tok_obsolete + } token_t; + +extern const char *token_buffer; +extern bucket *symval; +extern int numval; + +void lex_init PARAMS ((void)); +void lex_free PARAMS ((void)); +int skip_white_space PARAMS ((void)); +void unlex PARAMS ((token_t)); +void read_type_name PARAMS ((FILE *fin)); +int xgetc PARAMS ((FILE *fin)); + +/* Return one of the token-type codes. When an identifier is seen, + the code IDENTIFIER is returned and the name is looked up in the + symbol table using symtab.c; symval is set to a pointer to the + entry found. */ + +token_t lex PARAMS ((void)); +char literalchar PARAMS ((void)); + +token_t parse_percent_token PARAMS ((void)); + +#endif /* !LEX_H_ */