mirror of https://github.com/odrling/Aegisub
39 lines
1.2 KiB
C
39 lines
1.2 KiB
C
|
/*
|
||
|
** $Id: lpeg.h,v 1.1 2009/12/23 16:15:36 roberto Exp $
|
||
|
** LPeg - PEG pattern matching for Lua
|
||
|
** Copyright 2009, Lua.org & PUC-Rio (see 'lpeg.html' for license)
|
||
|
** written by Roberto Ierusalimschy
|
||
|
*/
|
||
|
|
||
|
#ifndef lpeg_h
|
||
|
#define lpeg_h
|
||
|
|
||
|
#include "lua.h"
|
||
|
|
||
|
|
||
|
#define KEYNEWPATT "lpeg.newpf"
|
||
|
|
||
|
|
||
|
/*
|
||
|
** type of extension functions that define new "patterns" for LPEG
|
||
|
** It should return the new current position or NULL if match fails
|
||
|
*/
|
||
|
typedef const char *(*PattFunc) (const char *s, /* current position */
|
||
|
const char *e, /* string end */
|
||
|
const char *o, /* string start */
|
||
|
const void *ud); /* user data */
|
||
|
|
||
|
/*
|
||
|
** function to create new patterns based on 'PattFunc' functions.
|
||
|
** This function is available at *registry[KEYNEWPATT]. (Notice
|
||
|
** the extra indirection; the userdata at the registry points to
|
||
|
** a variable that points to the function. In ANSI C a void* cannot
|
||
|
** point to a function.)
|
||
|
*/
|
||
|
typedef void (*Newpf) (lua_State *L,
|
||
|
PattFunc f, /* pattern */
|
||
|
const void *ud, /* (user) data to be passed to 'f' */
|
||
|
size_t l); /* size of data to be passed to 'f' */
|
||
|
|
||
|
#endif
|