33 lines
1.1 KiB
C
33 lines
1.1 KiB
C
#ifndef PYLIBLEX_H
|
|
#define PYLIBLEX_H
|
|
|
|
#include "Python.h"
|
|
|
|
static PyObject* pyliblex_init(PyObject* self, PyObject* args);
|
|
static PyObject* pyliblex_add_definition(PyObject* self, PyObject* args);
|
|
static PyObject* pyliblex_lex(PyObject* self, PyObject* args);
|
|
static PyObject* pyliblex_test(PyObject* self, PyObject* args);
|
|
|
|
static PyObject* invalid_regex_exception;
|
|
static PyObject* failed_lex_exception;
|
|
|
|
static const char module_docstring[] = "A wrapper around a homemade lexing library, liblex.";
|
|
static PyMethodDef module_methods[] = {
|
|
{"init", pyliblex_init, METH_VARARGS, "Initialize a liblex library object." },
|
|
{"add_definition", pyliblex_add_definition, METH_VARARGS, "Add a regular expression definition." },
|
|
{"lex", pyliblex_lex, METH_VARARGS, "Lex a string, converting it to tokens." },
|
|
{"test", pyliblex_test, METH_VARARGS, "Tests whether the library is working." },
|
|
{ NULL, NULL, 0, NULL }
|
|
};
|
|
static struct PyModuleDef module_object = {
|
|
PyModuleDef_HEAD_INIT,
|
|
"pyliblex",
|
|
module_docstring,
|
|
-1,
|
|
module_methods
|
|
};
|
|
|
|
PyMODINIT_FUNC PyInit_pyliblex();
|
|
|
|
#endif
|