X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/f7d4d87ac96c21df87b67b211c57cfba849602d0..95e36146a5be4c921c14f82ab80e3612866c4518:/src/lex.h diff --git a/src/lex.h b/src/lex.h index fc03adc7..3831e5af 100644 --- a/src/lex.h +++ b/src/lex.h @@ -1,47 +1,78 @@ /* Token type definitions for bison's input reader, - Copyright (C) 1984, 1989 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 ILLEGAL 24 - -#define MAXTOKEN 1024 + Copyright (C) 1984, 1989, 1992, 2000 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. */ +# 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 + + +/* Allocated size of token_buffer, not including space for terminator. */ +extern int maxtoken; +extern char *token_buffer; +char *grow_token_buffer PARAMS ((char *)); + +void init_lex PARAMS ((void)); +int skip_white_space PARAMS ((void)); +void unlex PARAMS ((int)); + +/* 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. */ + +int lex PARAMS ((void)); + +int parse_percent_token PARAMS ((void)); + +extern bucket *symval; +extern int numval; + +#endif /* !LEX_H_ */