| /* |
| * Copyright 1993, 1995 Christopher Seiwald. |
| * |
| * This file is part of Jam - see jam.c for Copyright information. |
| */ |
| |
| /* |
| * scan.h - the jam yacc scanner |
| * |
| * External functions: |
| * |
| * yyerror( char *s ) - print a parsing error message. |
| * yyfparse( char *s ) - scan include file s. |
| * yylex() - parse the next token, returning its type. |
| * yymode() - adjust lexicon of scanner. |
| * yyparse() - declaration for yacc parser. |
| * yyanyerrors() - indicate if any parsing errors occured. |
| * |
| * The yymode() function is for the parser to adjust the lexicon of the scanner. |
| * Aside from normal keyword scanning, there is a mode to handle action strings |
| * (look only for the closing }) and a mode to ignore most keywords when looking |
| * for a punctuation keyword. This allows non-punctuation keywords to be used in |
| * lists without quoting. |
| */ |
| |
| /* |
| * YYSTYPE - value of a lexical token |
| */ |
| |
| #define YYSTYPE YYSYMBOL |
| |
| typedef struct _YYSTYPE |
| { |
| int type; |
| char * string; |
| PARSE * parse; |
| LIST * list; |
| int number; |
| char * file; |
| int line; |
| } YYSTYPE; |
| |
| extern YYSTYPE yylval; |
| |
| void yymode( int n ); |
| void yyerror( char * s ); |
| int yyanyerrors(); |
| void yyfparse( char * s ); |
| int yyline(); |
| int yylex(); |
| int yyparse(); |
| void yyinput_stream( char * * name, int * line ); |
| |
| # define SCAN_NORMAL 0 /* normal parsing */ |
| # define SCAN_STRING 1 /* look only for matching } */ |
| # define SCAN_PUNCT 2 /* only punctuation keywords */ |