1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
/* This file is part of the Project Athena Zephyr Notification System.
* It is one of the source files comprising zwgc, the Zephyr WindowGram
* client.
*
* Created by: Marc Horowitz <marc@athena.mit.edu>
*
* $Id: 92724ddcc370e9aa2ad174001c4c932645b868f2 $
*
* Copyright (c) 1989 by the Massachusetts Institute of Technology.
* For copying and distribution information, see the file
* "mit-copyright.h".
*/
#include <zephyr/mit-copyright.h>
#ifndef parser_MODULE
#define parser_MODULE
/*
* Parser-Lexer Internal Routine:
*
* void report_parse_error(char *error_message, int line_number)
* Modifies: error_occured, stderr
* Effects: This routine is called to report a parser or lexer
* error. Error_message is the error message and line_number
* the line number it occured on. The reported error message
* is of the form "....<error_message> on line <line #>.\n".
* This routine sets error_occured (local to parser.y) to
* true. If it was previously false, the error message
* is reported to the user via stderr.
*/
extern void report_parse_error(char *, int);
/*
* struct _Node *parse_file(FILE *input_file)
* Requires: input_file is opened for reading, no pointers to
* existing nodes will ever be dereferened.
* Modifies: *input_file, stderr, all existing nodes
* Effects: First this routine destroys all nodes. Then it parses
* input_file as a zwgc description langauge file. If
* an error is encountered, an error message is printed
* on stderr and NULL is returned. If no error is
* encountered, a pointer to the node representation of
* the parsed program is returned, suitable for passing to
* exec.c. Note that NULL will also be returned for a
* empty file & is a valid program. Either way, input_file
* is closed before this routine returns.
*/
extern struct _Node *parse_file(FILE *);
#endif
|