/* %Z%%M% %I% %E% */

/*
 * Copyright (c) 1990, 1991, 1992, 1995 by Wayne C. Gramlich.
 * All rights reserved.
 *
 * Permission to use, copy, modify, distribute, and sell this software
 * for any purpose is hereby granted without fee provided that the above
 * copyright notice and this permission are retained.  The author makes
 * no representations about the suitability of this software for any purpose.
 * It is provided "as is" without express or implied warranty.
 */

/* This file declares the routines used for parsing: */

#ifndef PARSER_EXPORTS_H
#define PARSER_EXPORTS_H

#ifndef FLAGS_TYPES_H
#include "flags_types.h"
#endif

#ifndef HEAP_TYPES_H
#include "heap_types.h"
#endif

#ifndef KEYWORD_TYPES_H
#include "keyword_types.h"
#endif

#ifndef MSG_TYPES_H
#include "msg_types.h"
#endif

#ifndef PARSER_TYPES_H
#include "parser_types.h"
#endif

#ifndef STR_TYPES_H
#include "str_types.h"
#endif

#ifndef TOKEN_TYPES_H
#include "token_types.h"
#endif

#ifndef TYPE_TYPES_H
#include "type_types.h"
#endif

#ifndef UNIX_STDIO_H
#include "unix_stdio.h"
#endif

#ifndef VECTOR_TYPES_H
#include "vector_types.h"
#endif

extern Vec(Pointer) parser_comma_list_parse(Parser, Parser_routine, Str);
extern Str	parser_eol_read(Parser);
extern Parser	parser_file_open(Str, Msg, int, Type_tables, Flags, Heap);
extern Vec(Pointer) parser_indented_list_parse(Parser, Parser_routine, Str);
extern Keyword	parser_keyword_parse(Parser, int, int);
extern void	parser_loop_init(Parser);
extern int	parser_loop_next(Parser);
extern Token	parser_symbol_parse(Parser);
extern Token	parser_token_peek(Parser);
extern Token	parser_token_read(Parser);
extern Str	parser_untranslated_string_read(Parser);

#endif /* PARSER_EXPORTS_H */
