diff options
Diffstat (limited to 'contrib/flex/tables_shared.c')
-rw-r--r-- | contrib/flex/tables_shared.c | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/contrib/flex/tables_shared.c b/contrib/flex/tables_shared.c new file mode 100644 index 0000000..b962666 --- /dev/null +++ b/contrib/flex/tables_shared.c @@ -0,0 +1,70 @@ +#ifdef FLEX_SCANNER +/* +dnl tables_shared.c - tables serialization code +dnl +dnl Copyright (c) 1990 The Regents of the University of California. +dnl All rights reserved. +dnl +dnl This code is derived from software contributed to Berkeley by +dnl Vern Paxson. +dnl +dnl The United States Government has rights in this work pursuant +dnl to contract no. DE-AC03-76SF00098 between the United States +dnl Department of Energy and the University of California. +dnl +dnl This file is part of flex. +dnl +dnl Redistribution and use in source and binary forms, with or without +dnl modification, are permitted provided that the following conditions +dnl are met: +dnl +dnl 1. Redistributions of source code must retain the above copyright +dnl notice, this list of conditions and the following disclaimer. +dnl 2. Redistributions in binary form must reproduce the above copyright +dnl notice, this list of conditions and the following disclaimer in the +dnl documentation and/or other materials provided with the distribution. +dnl +dnl Neither the name of the University nor the names of its contributors +dnl may be used to endorse or promote products derived from this software +dnl without specific prior written permission. +dnl +dnl THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR +dnl IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +dnl WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +dnl PURPOSE. +dnl +*/ + +/* This file is meant to be included in both the skeleton and the actual + * flex code (hence the name "_shared"). + */ +#ifndef yyskel_static +#define yyskel_static static +#endif +#else +#include "flexdef.h" +#include "tables.h" +#ifndef yyskel_static +#define yyskel_static +#endif +#endif + + +/** Get the number of integers in this table. This is NOT the + * same thing as the number of elements. + * @param td the table + * @return the number of integers in the table + */ +yyskel_static flex_int32_t yytbl_calc_total_len (const struct yytbl_data *tbl) +{ + flex_int32_t n; + + /* total number of ints */ + n = tbl->td_lolen; + if (tbl->td_hilen > 0) + n *= tbl->td_hilen; + + if (tbl->td_id == YYTD_ID_TRANSITION) + n *= 2; + return n; +} |