| /* tables.h - tables serialization code |
| * |
| * Copyright (c) 1990 The Regents of the University of California. |
| * All rights reserved. |
| * |
| * This code is derived from software contributed to Berkeley by |
| * Vern Paxson. |
| * |
| * The United States Government has rights in this work pursuant |
| * to contract no. DE-AC03-76SF00098 between the United States |
| * Department of Energy and the University of California. |
| * |
| * This file is part of flex. |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions |
| * are met: |
| * |
| * 1. Redistributions of source code must retain the above copyright |
| * notice, this list of conditions and the following disclaimer. |
| * 2. Redistributions in binary form must reproduce the above copyright |
| * notice, this list of conditions and the following disclaimer in the |
| * documentation and/or other materials provided with the distribution. |
| * |
| * Neither the name of the University nor the names of its contributors |
| * may be used to endorse or promote products derived from this software |
| * without specific prior written permission. |
| * |
| * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR |
| * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED |
| * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
| * PURPOSE. |
| */ |
| |
| #ifndef TABLES_H |
| #define TABLES_H |
| |
| #ifdef __cplusplus |
| /* *INDENT-OFF* */ |
| extern "C" { |
| /* *INDENT-ON* */ |
| #endif |
| |
| /* Tables serialization API declarations. */ |
| #include "tables_shared.h" |
| struct yytbl_writer { |
| FILE *out; |
| flex_uint32_t total_written; |
| /**< bytes written so far */ |
| fpos_t th_ssize_pos; |
| /**< position of th_ssize */ |
| }; |
| |
| /* These are used by main.c, gen.c, etc. |
| * tablesext - if true, create external tables |
| * tablesfilename - filename for external tables |
| * tablesname - name that goes in serialized data, e.g., "yytables" |
| * tableswr - writer for external tables |
| * tablesverify - true if tables-verify option specified |
| * gentables - true if we should spit out the normal C tables |
| */ |
| extern bool tablesext, tablesverify,gentables; |
| extern char *tablesfilename, *tablesname; |
| extern struct yytbl_writer tableswr; |
| |
| int yytbl_writer_init (struct yytbl_writer *, FILE *); |
| int yytbl_hdr_init (struct yytbl_hdr *th, const char *version_str, |
| const char *name); |
| int yytbl_data_init (struct yytbl_data *tbl, enum yytbl_id id); |
| int yytbl_data_destroy (struct yytbl_data *td); |
| int yytbl_hdr_fwrite (struct yytbl_writer *wr, |
| const struct yytbl_hdr *th); |
| int yytbl_data_fwrite (struct yytbl_writer *wr, struct yytbl_data *td); |
| void yytbl_data_compress (struct yytbl_data *tbl); |
| struct yytbl_data *mkftbl (void); |
| |
| |
| #ifdef __cplusplus |
| /* *INDENT-OFF* */ |
| } |
| /* *INDENT-ON* */ |
| #endif |
| #endif |
| |
| /* vim:set expandtab cindent tabstop=4 softtabstop=4 shiftwidth=4 textwidth=0: */ |