forked from sqmedeiros/lpeglabel
-
Notifications
You must be signed in to change notification settings - Fork 0
/
lplcode.h
40 lines (29 loc) · 831 Bytes
/
lplcode.h
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
/*
** $Id: lplcode.h $
*/
#if !defined(lplcode_h)
#define lplcode_h
#include "lua.h"
#include "lpltypes.h"
#include "lpltree.h"
#include "lplvm.h"
LUAI_FUNC int tocharset (TTree *tree, Charset *cs);
LUAI_FUNC int checkaux (TTree *tree, int pred);
LUAI_FUNC int fixedlen (TTree *tree);
LUAI_FUNC int hascaptures (TTree *tree);
LUAI_FUNC int lp_gc (lua_State *L);
LUAI_FUNC Instruction *compile (lua_State *L, Pattern *p);
LUAI_FUNC void realloccode (lua_State *L, Pattern *p, int nsize);
LUAI_FUNC int sizei (const Instruction *i);
#define PEnullable 0
#define PEnofail 1
/*
** nofail(t) implies that 't' cannot fail with any input
*/
#define nofail(t) checkaux(t, PEnofail)
/*
** (not nullable(t)) implies 't' cannot match without consuming
** something
*/
#define nullable(t) checkaux(t, PEnullable)
#endif