/* -*-c-*-
*
- * $Id: scan.h,v 1.3 2002/01/13 14:50:07 mdw Exp $
+ * $Id: scan.h,v 1.4 2002/02/22 23:44:16 mdw Exp $
*
* Character scanners
*
/*----- Revision history --------------------------------------------------*
*
* $Log: scan.h,v $
+ * Revision 1.4 2002/02/22 23:44:16 mdw
+ * Miscellaneous tidying up, to make this code independent of `fw'. It
+ * might end up in a library somewhere.
+ *
* Revision 1.3 2002/01/13 14:50:07 mdw
* Make delimiters be a property of a scanner.
*
struct scansrc_ops *ops; /* Pointer to operations table */
char *src; /* Name of this source */
int line; /* Current line number */
- int pushback; /* Pushback character */
+ dstr pushback; /* Pushback characters */
char *tok; /* Token pushback */
unsigned t; /* Token type pushback */
} scansrc;
/* --- @scan_file@ --- *
*
* Arguments: @FILE *fp@ = pointer to file descriptor
- * @char *name@ = pointer to source file name
+ * @const char *name@ = pointer to source file name
* @unsigned f@ = flags
*
* Returns: A scanner source.
* Use: Creates a new scanner source for reading from a file.
*/
-extern scansrc *scan_file(FILE */*fp*/, char */*name*/, unsigned /*f*/);
+#define SCF_NOCLOSE 1u /* Don't close @fp@ when finished */
-#define SCF_NOCLOSE 1u
-#define SCF_FREENAME 2u
+extern scansrc *scan_file(FILE */*fp*/, const char */*name*/,
+ unsigned /*f*/);
/* --- @scan_argv@ --- *
*