PHP 8.2.30
Preview: grammar.h Size: 2.00 KB
//proc/self/root/opt/alt/python35/include/python3.5m/grammar.h

/* Grammar interface */

#ifndef Py_GRAMMAR_H
#define Py_GRAMMAR_H
#ifdef __cplusplus
extern "C" {
#endif

#include "bitset.h" /* Sigh... */

/* A label of an arc */

typedef struct {
    int		 lb_type;
    char	*lb_str;
} label;

#define EMPTY 0		/* Label number 0 is by definition the empty label */

/* A list of labels */

typedef struct {
    int		 ll_nlabels;
    label	*ll_label;
} labellist;

/* An arc from one state to another */

typedef struct {
    short	a_lbl;		/* Label of this arc */
    short	a_arrow;	/* State where this arc goes to */
} arc;

/* A state in a DFA */

typedef struct {
    int		 s_narcs;
    arc		*s_arc;		/* Array of arcs */

    /* Optional accelerators */
    int		 s_lower;	/* Lowest label index */
    int		 s_upper;	/* Highest label index */
    int		*s_accel;	/* Accelerator */
    int		 s_accept;	/* Nonzero for accepting state */
} state;

/* A DFA */

typedef struct {
    int		 d_type;	/* Non-terminal this represents */
    char	*d_name;	/* For printing */
    int		 d_initial;	/* Initial state */
    int		 d_nstates;
    state	*d_state;	/* Array of states */
    bitset	 d_first;
} dfa;

/* A grammar */

typedef struct {
    int		 g_ndfas;
    dfa		*g_dfa;		/* Array of DFAs */
    labellist	 g_ll;
    int		 g_start;	/* Start symbol of the grammar */
    int		 g_accel;	/* Set if accelerators present */
} grammar;

/* FUNCTIONS */

grammar *newgrammar(int start);
dfa *adddfa(grammar *g, int type, const char *name);
int addstate(dfa *d);
void addarc(dfa *d, int from, int to, int lbl);
dfa *PyGrammar_FindDFA(grammar *g, int type);

int addlabel(labellist *ll, int type, const char *str);
int findlabel(labellist *ll, int type, const char *str);
const char *PyGrammar_LabelRepr(label *lb);
void translatelabels(grammar *g);

void addfirstsets(grammar *g);

void PyGrammar_AddAccelerators(grammar *g);
void PyGrammar_RemoveAccelerators(grammar *);

void printgrammar(grammar *g, FILE *fp);
void printnonterminals(grammar *g, FILE *fp);

#ifdef __cplusplus
}
#endif
#endif /* !Py_GRAMMAR_H */

Directory Contents

Dirs: 0 × Files: 99

Name Size Perms Modified Actions
42.79 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
1016 B lrw-r--r-- 2019-11-01 23:02:34
Edit Download
1.16 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
477 B lrw-r--r-- 2019-11-01 23:02:34
Edit Download
792 B lrw-r--r-- 2019-11-01 23:02:34
Edit Download
264 B lrw-r--r-- 2019-11-01 23:02:34
Edit Download
886 B lrw-r--r-- 2019-11-01 23:02:34
Edit Download
2.06 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
4.87 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
1.99 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
701 B lrw-r--r-- 2019-11-01 23:02:34
Edit Download
7.46 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
1.63 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
5.14 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
6.54 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
2.11 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
1.76 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
8.34 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
2.84 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
6.19 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
458 B lrw-r--r-- 2019-11-01 23:02:34
Edit Download
21.94 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
253 B lrw-r--r-- 2019-11-01 23:02:34
Edit Download
1.46 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
597 B lrw-r--r-- 2019-11-01 23:02:34
Edit Download
1.48 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
2.81 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
4.53 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
3.45 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
3.68 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
2.61 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
1.90 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
2.00 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
3.81 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
460 B lrw-r--r-- 2019-11-01 23:02:34
Edit Download
567 B lrw-r--r-- 2019-11-01 23:02:34
Edit Download
2.83 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
3.90 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
8.09 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
803 B lrw-r--r-- 2019-11-01 23:02:34
Edit Download
2.63 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
253 B lrw-r--r-- 2019-11-01 23:02:34
Edit Download
3.29 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
5.91 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
2.09 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
297 B lrw-r--r-- 2019-11-01 23:02:34
Edit Download
1007 B lrw-r--r-- 2019-11-01 23:02:34
Edit Download
39.07 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
13.65 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
1.30 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
4.81 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
691 B lrw-r--r-- 2019-11-01 23:02:34
Edit Download
2.82 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
1.10 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
253 B lrw-r--r-- 2019-11-01 23:02:34
Edit Download
1.12 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
2.68 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
7.94 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
1.69 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
42.80 KB lrw-r--r-- 2024-05-31 13:49:53
Edit Download
162 B lrw-r--r-- 2024-05-31 13:51:34
Edit Download
1.29 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
1.11 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
15.95 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
2.39 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
8.27 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
388 B lrw-r--r-- 2019-11-01 23:02:34
Edit Download
4.17 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
3.72 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
2.92 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
3.22 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
7.05 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
6.87 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
31.27 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
9.27 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
436 B lrw-r--r-- 2019-11-01 23:02:34
Edit Download
443 B lrw-r--r-- 2019-11-01 23:02:34
Edit Download
1.25 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
20.36 KB lrw-r--r-- 2019-11-01 23:03:20
Edit Download
2.84 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
6.53 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
2.96 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
6.50 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
4.08 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
629 B lrw-r--r-- 2019-11-01 23:02:34
Edit Download
3.21 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
2.43 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
2.02 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
1.32 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
4.75 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
1.32 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
1.90 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
2.16 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
2.39 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
2.20 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
1.03 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
77.34 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
1.39 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download
2.80 KB lrw-r--r-- 2019-11-01 23:02:34
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).