source: vendor/flex/2.5.33/tables.h@ 3031

Last change on this file since 3031 was 3031, checked in by bird, 18 years ago

flex 2.5.33.

File size: 2.8 KB
Line 
1/* tables.h - tables serialization code
2 *
3 * Copyright (c) 1990 The Regents of the University of California.
4 * All rights reserved.
5 *
6 * This code is derived from software contributed to Berkeley by
7 * Vern Paxson.
8 *
9 * The United States Government has rights in this work pursuant
10 * to contract no. DE-AC03-76SF00098 between the United States
11 * Department of Energy and the University of California.
12 *
13 * This file is part of flex.
14 *
15 * Redistribution and use in source and binary forms, with or without
16 * modification, are permitted provided that the following conditions
17 * are met:
18 *
19 * 1. Redistributions of source code must retain the above copyright
20 * notice, this list of conditions and the following disclaimer.
21 * 2. Redistributions in binary form must reproduce the above copyright
22 * notice, this list of conditions and the following disclaimer in the
23 * documentation and/or other materials provided with the distribution.
24 *
25 * Neither the name of the University nor the names of its contributors
26 * may be used to endorse or promote products derived from this software
27 * without specific prior written permission.
28 *
29 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
30 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
31 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
32 * PURPOSE.
33 */
34
35
36#ifndef TABLES_H
37#define TABLES_H
38
39#ifdef __cplusplus
40/* *INDENT-OFF* */
41extern "C" {
42/* *INDENT-ON* */
43#endif
44
45/* Tables serialization API declarations. */
46#include "tables_shared.h"
47struct yytbl_writer {
48 FILE *out;
49 flex_uint32_t total_written;
50 /**< bytes written so far */
51 fpos_t th_ssize_pos;
52 /**< position of th_ssize */
53};
54
55/* These are used by main.c, gen.c, etc.
56 * tablesext - if true, create external tables
57 * tablesfilename - filename for external tables
58 * tablesname - name that goes in serialized data, e.g., "yytables"
59 * tableswr - writer for external tables
60 * tablesverify - true if tables-verify option specified
61 * gentables - true if we should spit out the normal C tables
62 */
63extern bool tablesext, tablesverify,gentables;
64extern char *tablesfilename, *tablesname;
65extern struct yytbl_writer tableswr;
66
67int yytbl_writer_init (struct yytbl_writer *, FILE *);
68int yytbl_hdr_init (struct yytbl_hdr *th, const char *version_str,
69 const char *name);
70int yytbl_data_init (struct yytbl_data *tbl, enum yytbl_id id);
71int yytbl_data_destroy (struct yytbl_data *td);
72int yytbl_hdr_fwrite (struct yytbl_writer *wr,
73 const struct yytbl_hdr *th);
74int yytbl_data_fwrite (struct yytbl_writer *wr, struct yytbl_data *td);
75void yytbl_data_compress (struct yytbl_data *tbl);
76struct yytbl_data *mkftbl (void);
77
78
79#ifdef __cplusplus
80/* *INDENT-OFF* */
81}
82/* *INDENT-ON* */
83#endif
84#endif
85
86/* vim:set expandtab cindent tabstop=4 softtabstop=4 shiftwidth=4 textwidth=0: */
Note: See TracBrowser for help on using the repository browser.