/usr/include/styx/gls.h is in styx-dev 2.0.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 | /* ---------------------------------------------------------------------- */
/* */
/* [gls.h] Generic Language Support */
/* */
/* Copyright (c) 1994 by Lars D\olle, Heike Manns */
/* ---------------------------------------------------------------------- */
/* File generated by 'ctoh'. Don't change manually. */
#ifndef gls_INCL
#define gls_INCL
#include "standard.h"
#include "ptm.h"
#ifdef __cplusplus
extern "C" {
#endif
/*
[gls] provides a generic interface for the token and nonterminal lists of
the abstract derivation trees in the generated grammar-specific interface
modules ( <Language>_int.c ).
Beside that this module provides generic access to an optional token or
nonterminal (styx version >= 1).
*/
/* ------------------------------ Types ----------------------------------- */
#define GLS_Lst(A) GList_T
#define GLS_Opt(A) GOpt_T
AbstractType( GLS_Tok ); // Abstract token type
AbstractType( GLS_Lst(A) ); // Abstract term list type
AbstractType( GLS_Opt(A) ); // Abstract term option type
/* ------------------------------ Init ----------------------------------- */
void GLS_init(void); /* module initialisation */
/* --------------------------- Normalizer --------------------------------- */
/*
<p> <b>... to skip comments, keywords and ignore-nodes </b>
<br>moved to <a href="ptm.htm">[ptm]</a>
*/
#define XGLS_keycom_Skip XPT_keycom_Skip
#define GLS_keycom_Skip PT_keycom_Skip
#define GLS_ign_Skip PT_ign_Skip
/* -------------------------- Token services ------------------------------ */
PT_Term GLS_Tok_cfg(GLS_Tok x); /* the embedded lanuage of token 'x' */
symbol GLS_Tok_symbol(GLS_Tok x); /* the symbol of token 'x' */
c_string GLS_Tok_string(GLS_Tok x); /* the string value of token 'x' */
c_bool GLS_Term_Tok(PT_Term x, GLS_Tok *t); /* Term to token selector */
/* --------------------------- List Construction -------------------------- */
PT_Term GLS_Lst_nil_mk(void); /* nil production */
PT_Term GLS_Lst_cons_mk(PT_Term a, PT_Term b); /* cons production */
PT_Term XGLS_Lst_nil_mk(void); /* nil production (xaron) */
PT_Term XGLS_Lst_cons_mk(PT_Term a, GLS_Lst(PT_Term) *b)
/* cons production (xaron ALT? Speculate?) */
;
PT_Term X4GLS_Lst_cons_mk(PT_Term a, GLS_Lst(PT_Term) *b)
/* cons production (xaron) */
;
/* --------------------------- List service -------------------------------- */
c_bool GLS_Term_Lst(PT_Term x, GLS_Lst(PT_Term) *lst)
/* Term to GLS_Lst selector */
;
c_bool GLS_Lst_nil(GLS_Lst(PT_Term) x)
#define GLS_EMPTY(term) ( GLS_Lst_nil((PT_Term)(term)) )
/* nil - selector */
;
c_bool GLS_Lst_cons(GLS_Lst(PT_Term) x, PT_Term* fst_t, GLS_Lst(PT_Term)* rst_t)
/* cons - selector */
;
PT_Term GLS_Lst_first(GLS_Lst(PT_Term) x)
#define GLS_FIRST(type,term) ( (type)GLS_Lst_first((GLS_Lst(PT_Term))(term)) )
/* first element in list 'x' */
;
PT_Term GLS_Lst_rest(GLS_Lst(PT_Term) x)
#define GLS_REST(type,term) \
( (GLS_Lst(type))GLS_Lst_rest((GLS_Lst(PT_Term))(term)) )
/* remaining elements in list 'x' */
;
int GLS_Lst_length(GLS_Lst(PT_Term) x)
#define GLS_LENGTH(term) ( GLS_Lst_length((GLS_Lst(PT_Term))(term)) )
/* length of list 'x' */
;
PT_Term GLS_Lst_nth(GLS_Lst(PT_Term) x, int nth)
#define GLS_NTH(type,term,nth) ((type)GLS_Lst_nth((GLS_Lst(PT_Term))(term),nth))
/* nth element in list 'x' ( nth >= 1 ) */
;
/* --------------------------- Option service ------------------------------ */
c_bool GLS_Term_Opt(PT_Term x, GLS_Opt(PT_Term) *opt)
/* Term to GLS_Opt selector */
;
c_bool GLS_Opt_none(GLS_Opt(PT_Term) x)
#define GLS_OPT_NONE(term) ( GLS_Opt_none((PT_Term)(term)) )
/* none - selector */
;
c_bool GLS_Opt_some(GLS_Opt(PT_Term) x)
#define GLS_OPT_SOME(term) ( GLS_Opt_some((PT_Term)(term)) )
/* some - selector */
;
PT_Term GLS_Opt_term(GLS_Opt(PT_Term) x)
#define GLS_OPT_TERM(type,term) ( (type)GLS_Opt_term((GLS_Opt(PT_Term))(term)) )
/* element in option 'x' */
;
/* ---------------------- Convenient iterator macros ----------------------- */
#define GLS_FORALL(it,li) for( (it) = ((PT_Term)(li)); \
! GLS_EMPTY(it); \
it = GLS_REST(PT_Term,it) )
#define GLS_FORALLI(it,li,c) for( c=0, (it) = ((PT_Term)(li)); \
! GLS_EMPTY(it); \
++c, it = GLS_REST(PT_Term,it) )
#ifdef __cplusplus
}
#endif
#endif
|