/*
* scan.h
* Lexical scanner structures and prototypes.
* $Id: scan.h 139 2008-07-16 09:56:31Z catseye $
*/
#ifndef __SCAN_H_
#define __SCAN_H_
#include "report.h"
struct scanner;
struct scanner *scanner_new(struct reporter *);
void scanner_free(struct scanner *);
void scanner_reset(struct scanner *);
int scanner_attach(struct scanner *, struct process *, const char *);
int scanner_open(struct scanner *, const char *);
void scanner_close(struct scanner *);
void scanner_scan(struct scanner *);
void scanner_expect(struct scanner *, const char *);
void scanner_scanline(struct scanner *);
int scanner_tokeq(struct scanner *, const char *);
const char *scanner_token_string(struct scanner *);
int scanner_token_length(struct scanner *);
int scanner_eof(struct scanner *);
const char *scanner_filename(struct scanner *);
int scanner_line(struct scanner *);
int scanner_column(struct scanner *);
void scanner_report(struct scanner *, enum report_type, const char *, ...);
#endif /* !__SCAN_H_ */