source: vendor/current/source3/include/debugparse.h

Last change on this file was 414, checked in by Herwig Bauernfeind, 15 years ago

Samba 3.5.0: Initial import

File size: 5.3 KB
Line 
1#ifndef DEBUGPARSE_H
2#define DEBUGPARSE_H
3/* ========================================================================== **
4 * debugparse.c
5 *
6 * Copyright (C) 1998 by Christopher R. Hertel
7 *
8 * Email: crh@ubiqx.mn.org
9 *
10 * -------------------------------------------------------------------------- **
11 * This module is a very simple parser for Samba debug log files.
12 * -------------------------------------------------------------------------- **
13 *
14 * This library is free software; you can redistribute it and/or
15 * modify it under the terms of the GNU Lesser General Public
16 * License as published by the Free Software Foundation; either
17 * version 3 of the License, or (at your option) any later version.
18 *
19 * This library is distributed in the hope that it will be useful,
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
22 * Library General Public License for more details.
23 *
24 * You should have received a copy of the GNU Lesser General Public
25 * License along with this library; if not, see <http://www.gnu.org/licenses/>.
26 *
27 * -------------------------------------------------------------------------- **
28 * The important function in this module is dbg_char2token(). The rest is
29 * basically fluff. (Potentially useful fluff, but still fluff.)
30 * ========================================================================== **
31 */
32
33#include "includes.h"
34
35/* This module compiles quite nicely outside of the Samba environment.
36 * You'll need the following headers:
37#include <ctype.h>
38#include <stdio.h>
39#include <string.h>
40 */
41
42/* -------------------------------------------------------------------------- **
43 * These are the tokens returned by dbg_char2token().
44 */
45
46typedef enum
47 {
48 dbg_null = 0,
49 dbg_ignore,
50 dbg_header,
51 dbg_timestamp,
52 dbg_level,
53 dbg_sourcefile,
54 dbg_function,
55 dbg_lineno,
56 dbg_message,
57 dbg_eof
58 } dbg_Token;
59
60/* -------------------------------------------------------------------------- **
61 * Function prototypes...
62 */
63
64 const char *dbg_token2string( dbg_Token tok );
65 /* ------------------------------------------------------------------------ **
66 * Given a token, return a string describing the token.
67 *
68 * Input: tok - One of the set of dbg_Tokens defined in debugparse.h.
69 *
70 * Output: A string identifying the token. This is useful for debugging,
71 * etc.
72 *
73 * Note: If the token is not known, this function will return the
74 * string "<unknown>".
75 *
76 * ------------------------------------------------------------------------ **
77 */
78
79 dbg_Token dbg_char2token( dbg_Token *state, int c );
80 /* ------------------------------------------------------------------------ **
81 * Parse input one character at a time.
82 *
83 * Input: state - A pointer to a token variable. This is used to
84 * maintain the parser state between calls. For
85 * each input stream, you should set up a separate
86 * state variable and initialize it to dbg_null.
87 * Pass a pointer to it into this function with each
88 * character in the input stream. See dbg_test()
89 * for an example.
90 * c - The "current" character in the input stream.
91 *
92 * Output: A token.
93 * The token value will change when delimiters are found,
94 * which indicate a transition between syntactical objects.
95 * Possible return values are:
96 *
97 * dbg_null - The input character was an end-of-line.
98 * This resets the parser to its initial state
99 * in preparation for parsing the next line.
100 * dbg_eof - Same as dbg_null, except that the character
101 * was an end-of-file.
102 * dbg_ignore - Returned for whitespace and delimiters.
103 * These lexical tokens are only of interest
104 * to the parser.
105 * dbg_header - Indicates the start of a header line. The
106 * input character was '[' and was the first on
107 * the line.
108 * dbg_timestamp - Indicates that the input character was part
109 * of a header timestamp.
110 * dbg_level - Indicates that the input character was part
111 * of the debug-level value in the header.
112 * dbg_sourcefile - Indicates that the input character was part
113 * of the sourcefile name in the header.
114 * dbg_function - Indicates that the input character was part
115 * of the function name in the header.
116 * dbg_lineno - Indicates that the input character was part
117 * of the DEBUG call line number in the header.
118 * dbg_message - Indicates that the input character was part
119 * of the DEBUG message text.
120 *
121 * ------------------------------------------------------------------------ **
122 */
123
124
125/* -------------------------------------------------------------------------- */
126#endif /* DEBUGPARSE_H */
Note: See TracBrowser for help on using the repository browser.