| /* |
| ** $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 |