File: const_lex.h

package info (click to toggle)
pcb-rnd 3.0.6-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 29,624 kB
  • sloc: ansic: 197,571; yacc: 6,153; sh: 5,808; awk: 2,708; makefile: 2,139; lex: 1,107; python: 519; xml: 261; lisp: 169; tcl: 67; perl: 34; javascript: 6; ruby: 5
file content (80 lines) | stat: -rw-r--r-- 2,364 bytes parent folder | download | duplicates (3)
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
/* strtree.h BEGIN { */
#ifndef UREGLEX_STRTREE_H
#define UREGLEX_STRTREE_H 
typedef enum {ULX_REQ = 1, ULX_BRA, ULX_FIN, ULX_BAD} ureglex_stree_op_t;
typedef struct ureglex_strtree_s { int *code, *ip; } ureglex_strtree_t;
int ureglex_strtree_exec(ureglex_strtree_t *ctx, int chr);
#define UREGLEX_STRTREE_MORE -5
#endif
/* strtree.h END } */

/* exec.h BEGIN { */
#ifndef UREGLEX_EXEC_COMMON_H
#define UREGLEX_EXEC_COMMON_H 
#define MAXTAG 10
typedef struct ureglex_precomp_s {
 const unsigned char *nfa;
 const unsigned char *bittab;
 const unsigned char *chrtyp;
 double weight;
} ureglex_precomp_t;
typedef struct ureglex_s {
 ureglex_precomp_t *pc;
 const char *bol;
 const char *bopat[MAXTAG];
 const char *eopat[MAXTAG];
 int score;
 const char *endp;
 union { const void *ptr; int i; } pmstk[30];
 int pmsp;
 const unsigned char *pm_ap;
 const char *pm_lp;
 int pm_c;
 const char *pm_bp;
 const char *pm_ep;
 const char *pm_are;
 const char *ex_lp;
 unsigned char ex_c;
 int ex_loop, pm_loop, pm_loop2, pm_loop2_later;
 int exec_state;
} ureglex_t;
typedef enum {
 UREGLEX_MORE = -1,
 UREGLEX_TOO_LONG = -2,
 UREGLEX_NO_MATCH = -3,
 UREGLEX_NOP = -4
} ureglex_error_t;
extern const unsigned char ureglex_nfa_str[];
#define ULX_BUF ctx->buff
#define ULX_TAGP(n) (ctx->state[ruleid].bopat[(n)])
#define ULX_TAGL(n) (ctx->state[ruleid].eopat[(n)] - ctx->state[ruleid].bopat[(n)])
#define ULX_IGNORE goto ureglex_ignore;
void ureglex_exec_init(ureglex_t *r, const char *lp, int buff_used);
int ureglex_exec(ureglex_t *r);
#endif
/* exec.h END } */

#define pcb_ordc_num_rules 20
typedef struct pcb_ordc_ureglex_s {
	ureglex_precomp_t *rules;
	char buff[256];
	int num_rules, buff_used, step_back_to, buff_save_term, by_len;
	long loc_offs[2], loc_line[2], loc_col[2];
	ureglex_t state[pcb_ordc_num_rules];
	const char *sp;
	int strtree_state, strtree_len, strtree_score;
	ureglex_strtree_t strtree;
	ureglex_t *pending_intcode;
} pcb_ordc_ureglex_t;

/* exec_spec.h BEGIN { */
void pcb_ordc_lex_reset(pcb_ordc_ureglex_t *ctx);
void pcb_ordc_lex_init(pcb_ordc_ureglex_t *ctx, ureglex_precomp_t *rules);
int pcb_ordc_lex_char(pcb_ordc_ureglex_t *ctx, void *user_ctx, int chr);
/* exec_spec.h END } */

#ifndef URELGLEX_EXEC_pcb_ordc_H
#define URELGLEX_EXEC_pcb_ordc_H
extern ureglex_precomp_t pcb_ordc_rules[];
#define URELGLEX_EXEC_pcb_ordc_HAS_COMMON 0
#endif