From e9940d072c811c67f2b3a13782fc40bf591491b7 Mon Sep 17 00:00:00 2001 From: Mark Wooding Date: Sat, 29 Jun 2013 14:49:41 +0100 Subject: [PATCH] conf.h, scan.h: Remove dead header files. --- conf.h | 284 ----------------------------------------------------------------- scan.h | 177 ---------------------------------------- 2 files changed, 461 deletions(-) delete mode 100644 conf.h delete mode 100644 scan.h diff --git a/conf.h b/conf.h deleted file mode 100644 index f12e7f8..0000000 --- a/conf.h +++ /dev/null @@ -1,284 +0,0 @@ -/* -*-c-*- - * - * Configuration parsing - * - * (c) 1999 Straylight/Edgeware - */ - -/*----- Licensing notice --------------------------------------------------* - * - * This file is part of the `fwd' port forwarder. - * - * `fwd' is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * `fwd' is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with `fwd'; if not, write to the Free Software Foundation, - * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - -#ifndef CONF_H -#define CONF_H - -#ifdef __cplusplus - extern "C" { -#endif - -/*----- Header files ------------------------------------------------------*/ - -#include - -#ifndef SCAN_H -# include "scan.h" -#endif - -/*----- Magic numbers -----------------------------------------------------*/ - -#define CTOK_EOF (-1) -#define CTOK_WORD 256 - -/*----- Functions provided ------------------------------------------------*/ - -/* --- @conf_undelim@ --- * - * - * Arguments: @scanner *sc@ = pointer to scanner definition - * @const char *d, *dd@ = pointer to characters to escape - * - * Returns: --- - * - * Use: Modifies the tokenizer. Characters in the first list will - * always be considered to begin a word. Characters in the - * second list will always be allowed to continue a word. - */ - -extern void conf_undelim(scanner */*sc*/, - const char */*d*/, const char */*dd*/); - -/* --- @token@ --- * - * - * Arguments: @scanner *sc@ = pointer to scanner definition - * - * Returns: Type of token scanned. - * - * Use: Reads the next token from the character scanner. - */ - -extern int token(scanner */*sc*/); - -/* --- @error@ --- * - * - * Arguments: @scanner *sc@ = pointer to scanner definition - * @const char *msg@ = message skeleton string - * @...@ = extra arguments for the skeleton - * - * Returns: Doesn't - * - * Use: Reports an error at the current scanner location. - */ - -extern void error(scanner */*sc*/, const char */*msg*/, ...); - -/* --- @pushback@ --- * - * - * Arguments: @scanner *sc@ = pointer to scanner definition - * - * Returns: --- - * - * Use: Pushes the current token back. This is normally a precursor - * to pushing a new scanner source. - */ - -extern void pushback(scanner */*sc*/); - -/* --- @conf_enum@ --- * - * - * Arguments: @scanner *sc@ = pointer to a scanner object - * @const char *list@ = comma-separated things to allow - * @unsigned @f = flags for the search - * @const char *err@ = error message if not found - * - * Returns: Index into list, zero-based, or @-1@. - * - * Use: Checks whether the current token is a string which matches - * one of the comma-separated items given. The return value is - * the index (zero-based) of the matched string in the list. - * - * The flags control the behaviour if no exact match is found. - * If @ENUM_ABBREV@ is set, and the current token is a left - * substring of exactly one of the possibilities, then that one - * is chosen. If @ENUM_NONE@ is set, the value @-1@ is - * returned; otherwise an error is reported and the program is - * terminated. - */ - -#define ENUM_ABBREV 1u -#define ENUM_NONE 2u - -extern int conf_enum(scanner */*sc*/, const char */*list*/, - unsigned /*flags*/, const char */*err*/); - -/* --- @conf_prefix@ --- * - * - * Arguments: @scanner *sc@ = pointer to a scanner object - * @const char *p@ = pointer to prefix string to check - * - * Returns: Nonzero if the prefix matches. - * - * Use: If the current token is a word matching the given prefix - * string, then it and an optional `.' character are removed and - * a nonzero result is returned. Otherwise the current token is - * left as it is, and zero is returned. - * - * Typical options parsing code would remove an expected prefix, - * scan an option anyway (since qualifying prefixes are - * optional) and if a match is found, claim the option. If no - * match is found, and a prefix was stripped, then an error - * should be reported. - */ - -extern int conf_prefix(scanner */*sc*/, const char */*p*/); - -/* --- @CONF_BEGIN@, @CONF_END@ --- * - * - * Arguments: @sc@ = scanner to read from - * @prefix@ = prefix to scan for - * @desc@ = description of what we're parsing - * - * Use: Bracket an options parsing routine. The current token is - * checked to see whether it matches the prefix. If so, it is - * removed and the following token examined. If that's a `.' - * then it's removed. If it's a `{' then the enclosed - * option-parsing code is executed in a loop until a matching - * '}' is found. If the options parser doesn't accept an - * option, the behaviour is dependent on whether a prefix was - * seen: if so, an error is reported; otherwse a zero return is - * made. - */ - -#define CS_PLAIN 0 -#define CS_PREFIX 1 -#define CS_BRACE 2 -#define CS_UNKNOWN 3 - -#define CONF_BEGIN(sc, prefix, desc) do { \ - scanner *_conf_sc = (sc); \ - const char *_conf_desc = (desc); \ - int _conf_state = CS_PLAIN; \ - \ - /* --- Read the initial prefix --- */ \ - \ - if (_conf_sc->t == CTOK_WORD && \ - strcmp(_conf_sc->d.buf, (prefix)) == 0) { \ - token(_conf_sc); \ - _conf_state = CS_PREFIX; \ - if (_conf_sc->t == '.') \ - token(_conf_sc); \ - else if (_conf_sc->t == '{') { \ - token(_conf_sc); \ - _conf_state = CS_BRACE; \ - } \ - } \ - \ - /* --- Ensure the next token is a word --- */ \ - \ - if (_conf_sc->t != CTOK_WORD) \ - error(_conf_sc, "parse error, expected option keyword"); \ - do { - -#define CONF_END \ - \ - /* --- Reject an option --- * \ - * \ - * We could get here as a result of an explicit @CONF_REJECT@ or \ - * because the option wasn't accepted. \ - */ \ - \ - goto _conf_reject; \ - _conf_reject: \ - if (_conf_state == CS_PLAIN) \ - _conf_state = CS_UNKNOWN; \ - else { \ - error(_conf_sc, "unknown %s option `%s'", \ - _conf_desc, _conf_sc->d.buf); \ - } \ - \ - /* --- Accept an option --- * \ - * \ - * It's safe to drop through from above. Either an error will have \ - * been reported, or the state is not @CS_BRACE@. \ - */ \ - \ - _conf_accept: \ - if (_conf_state == CS_BRACE && _conf_sc->t == ';') \ - token(_conf_sc); \ - } while (_conf_state == CS_BRACE && _conf_sc->t == CTOK_WORD); \ - \ - /* --- Check for a closing brace --- */ \ - \ - if (_conf_state == CS_BRACE) { \ - if (_conf_sc->t == '}') \ - token(_conf_sc); \ - else \ - error(_conf_sc, "parse error, expected `}'"); \ - } \ - \ - /* --- Return an appropriate value --- */ \ - \ - return (_conf_state != CS_UNKNOWN); \ -} while (0) - -/* --- @CONF_ACCEPT@, @CONF_REJECT@ --- * - * - * Arguments: --- - * - * Use: Within an options parser (between @CONF_BEGIN@ and - * @CONF_END@), accept or reject an option. - */ - -#define CONF_ACCEPT goto _conf_accept -#define CONF_REJECT goto _conf_reject - -/* --- @CONF_QUAL@ --- * - * - * Arguments: --- - * - * Use: Evaluates to a nonzero value if the current option is - * qualified. This can be used to decide whether abbreviations - * for options should be accepted. - */ - -#define CONF_QUAL (_conf_state != CS_PLAIN) - -/* --- @conf_name@ --- * - * - * Arguments: @scanner *sc@ = pointer to scanner - * @char delim@ = delimiter character to look for - * @dstr *d@ = pointer to dynamic string for output - * - * Returns: --- - * - * Use: Reads in a compound name consisting of words separated by - * delimiters. Leading and trailing delimiters are permitted, - * although they'll probably cause confusion if used. The name - * may be enclosed in square brackets if that helps at all. - * - * Examples of compound names are filenames (delimited by `/') - * and IP addresses (delimited by `.'). - */ - -extern void conf_name(scanner */*sc*/, char /*delim*/, dstr */*d*/); - -/*----- That's all, folks -------------------------------------------------*/ - -#ifdef __cplusplus - } -#endif - -#endif diff --git a/scan.h b/scan.h deleted file mode 100644 index 56c5e9a..0000000 --- a/scan.h +++ /dev/null @@ -1,177 +0,0 @@ -/* -*-c-*- - * - * Character scanners - * - * (c) 1999 Straylight/Edgeware - */ - -/*----- Licensing notice --------------------------------------------------* - * - * This file is part of the `fwd' port forwarder. - * - * `fwd' is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * `fwd' is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with `fwd'; if not, write to the Free Software Foundation, - * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - -#ifndef SCAN_H -#define SCAN_H - -#ifdef __cplusplus - extern "C" { -#endif - -/*----- Header files ------------------------------------------------------*/ - -#include - -#include - -/*----- Data structures ---------------------------------------------------*/ - -/* --- A low-level scanner source --- */ - -typedef struct scansrc { - struct scansrc *next; /* Next one in the list */ - struct scansrc_ops *ops; /* Pointer to operations table */ - char *src; /* Name of this source */ - int line; /* Current line number */ - dstr pushback; /* Pushback characters */ - char *tok; /* Token pushback */ - unsigned t; /* Token type pushback */ -} scansrc; - -/* --- Scanner source operations --- */ - -typedef struct scansrc_ops { - int (*scan)(scansrc */*ss*/); /* Read another character */ - void (*destroy)(scansrc */*ss*/); /* Destroy an unwanted source */ -} scansrc_ops; - -/* --- A character scanner --- */ - -typedef struct scanner { - scansrc *head, **tail; /* Scanner list head and tail */ - int t; /* Token type */ - dstr d; /* Current token value */ - const char *wbegin, *wcont; /* Parsing exception strings */ -} scanner; - -/*----- Particular scanner types ------------------------------------------*/ - -/* --- @scan_file@ --- * - * - * Arguments: @FILE *fp@ = pointer to file descriptor - * @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. - */ - -#define SCF_NOCLOSE 1u /* Don't close @fp@ when finished */ - -extern scansrc *scan_file(FILE */*fp*/, const char */*name*/, - unsigned /*f*/); - -/* --- @scan_argv@ --- * - * - * Arguments: @char **av@ = pointer to argument array (null terminated) - * - * Returns: A scanner source. - * - * Use: Creates a new scanner source for reading from an @argv@ - * array. - */ - -extern scansrc *scan_argv(char **/*av*/); - -/*----- General scanner handling ------------------------------------------*/ - -/* --- @scan@ --- * - * - * Arguments: @scanner *sc@ = pointer to main scanner context - * - * Returns: Character read, or end-of-file. - * - * Use: Scans a character from a source of characters. - */ - -extern int scan(scanner */*sc*/); - -/* --- @unscan@ --- * - * - * Arguments: @scanner *sc@ = pointer to main scanner context - * @int ch@ = character to unscan - * - * Returns: --- - * - * Use: Scans a character from a source of characters. - */ - -extern void unscan(scanner */*sc*/, int /*ch*/); - -/* --- @scan_push@ --- * - * - * Arguments: @scanner *sc@ = pointer to main scanner context - * @scansrc *ss@ = souorce to push - * - * Returns: --- - * - * Use: Pushes a scanner source onto the front of the queue. - */ - -extern void scan_push(scanner */*sc*/, scansrc */*ss*/); - -/* --- @scan_add@ --- * - * - * Arguments: @scanner *sc@ = pointer to main scanner context - * @scansrc *ss@ = souorce to push - * - * Returns: --- - * - * Use: Adds a scanner source onto the end of the queue. - */ - -extern void scan_add(scanner */*sc*/, scansrc */*ss*/); - -/* --- @scan_create@ --- * - * - * Arguments: @scanner *sc@ = scanner context to initialize - * - * Returns: --- - * - * Use: Initializes a scanner block ready for use. - */ - -extern void scan_create(scanner */*sc*/); - -/* --- @scan_destroy@ --- * - * - * Arguments: @scanner *sc@ = pointer to scanner context - * - * Returns: --- - * - * Use: Destroys a scanner and all the sources attached to it. - */ - -extern void scan_destroy(scanner */*sc*/); - -/*----- That's all, folks -------------------------------------------------*/ - -#ifdef __cplusplus - } -#endif - -#endif -- 2.11.0