Previous: Gperf Declarations, Up: Declarations


3.1.1.3 C Code Inclusion

Using a syntax similar to GNU utilities flex and bison, it is possible to directly include C source text and comments verbatim into the generated output file. This is accomplished by enclosing the region inside left-justified surrounding ‘%{’, ‘%}’ pairs. Here is an input fragment based on the previous example that illustrates this feature:

     %{
     #include <assert.h>
     /* This section of code is inserted directly into the output. */
     int return_month_days (struct month *months, int is_leap_year);
     %}
     struct month { char *name; int number; int days; int leap_days; };
     %%
     january,   1, 31, 31
     february,  2, 28, 29
     march,     3, 31, 31
     ...