2 * Copyright 1993, 1995 Christopher Seiwald.
4 * This file is part of Jam - see jam.c for Copyright information.
7 * scan.h - the jam yacc scanner
11 * yyerror(char *s) - print a parsing error message
12 * yyfparse(char *s) - scan include file s
13 * yylex() - parse the next token, returning its type
14 * yymode() - adjust lexicon of scanner
15 * yyparse() - declaration for yacc parser
16 * yyanyerrors() - indicate if any parsing errors occured
18 * The yymode() function is for the parser to adjust the lexicon of the
19 * scanner. Aside from normal keyword scanning, there is a mode to
20 * handle action strings (look only for the closing }) and a mode to
21 * ignore most keywords when looking for a punctuation keyword. This
22 * allows non-punctuation keywords to be used in lists without quoting.
24 * 11/04/02 (seiwald) - const-ing for string literals
31 * token_t - value of a lexical token
36 int strlit
; /* !0: don't do variable expansion in string */
42 const char *file
; // newstr()
45 extern token_t yylval
;
47 extern void yyerror (const token_t
*tk
, const char *s
);
48 extern void yyfparse (const char *s
);
49 extern int yylex (void);
53 SCAN_NORMAL
, /* normal parsing */
54 SCAN_STRING
, /* look only for matching '}' */
55 SCAN_PUNCT
/* only punctuation keywords */
58 extern void yymode (int n
);