mirror of
https://github.com/kingToolbox/WindTerm.git
synced 2026-10-08 17:06:16 -08:00
463 lines
16 KiB
Python
463 lines
16 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
"""Using Onigmo (Oniguruma-mod) regular expression library.
|
|
|
|
This is a low level wrapper for Onigmo regular expression DLL/shared object.
|
|
(This module does not support static link library.)
|
|
This provides almost same API as the original C API, so the API is not
|
|
object oriented.
|
|
|
|
Onigmo DLL (onig.dll, libonig.so, etc.) must be placed in the
|
|
default search path. The default search path depends on the system.
|
|
"""
|
|
|
|
import ctypes
|
|
import os
|
|
import sys
|
|
|
|
#__all__ = ["onig_new", "onig_free",
|
|
# "onig_search", "onig_match",
|
|
# "onig_region_new", "onig_region_free",
|
|
# "onig_version", "onig_copyright"]
|
|
|
|
|
|
#
|
|
# Type Definitions
|
|
#
|
|
|
|
OnigCodePoint = ctypes.c_uint
|
|
|
|
class OnigRegexType(ctypes.Structure):
|
|
_fields_ = [
|
|
]
|
|
regex_t = OnigRegexType
|
|
OnigRegex = ctypes.POINTER(OnigRegexType)
|
|
|
|
try:
|
|
# Python 2.7
|
|
_c_ssize_t = ctypes.c_ssize_t
|
|
except AttributeError:
|
|
# Python 2.6
|
|
if ctypes.sizeof(ctypes.c_int) == ctypes.sizeof(ctypes.c_void_p):
|
|
_c_ssize_t = ctypes.c_int
|
|
elif ctypes.sizeof(ctypes.c_long) == ctypes.sizeof(ctypes.c_void_p):
|
|
_c_ssize_t = ctypes.c_long
|
|
elif ctypes.sizeof(ctypes.c_longlong) == ctypes.sizeof(ctypes.c_void_p):
|
|
_c_ssize_t = ctypes.c_longlong
|
|
|
|
class OnigRegion(ctypes.Structure):
|
|
_fields_ = [
|
|
("allocated", ctypes.c_int),
|
|
("num_regs", ctypes.c_int),
|
|
("beg", ctypes.POINTER(_c_ssize_t)),
|
|
("end", ctypes.POINTER(_c_ssize_t)),
|
|
("history_root",ctypes.c_void_p),
|
|
]
|
|
re_registers = OnigRegion
|
|
|
|
OnigOptionType = ctypes.c_int
|
|
|
|
class OnigEncodingType(ctypes.Structure):
|
|
_fields_ = [
|
|
("mbc_enc_len", ctypes.c_void_p),
|
|
("name", ctypes.c_char_p),
|
|
("max_enc_len", ctypes.c_int),
|
|
("min_enc_len", ctypes.c_int),
|
|
("is_mbc_newline", ctypes.c_void_p),
|
|
("mbc_to_code", ctypes.c_void_p),
|
|
("code_to_mbclen", ctypes.c_void_p),
|
|
("code_to_mbc", ctypes.c_void_p),
|
|
("mbc_case_fold", ctypes.c_void_p),
|
|
("apply_all_case_fold", ctypes.c_void_p),
|
|
("get_case_fold_codes_by_str", ctypes.c_void_p),
|
|
("property_name_to_ctype", ctypes.c_void_p),
|
|
("is_code_ctype", ctypes.c_void_p),
|
|
("get_ctype_code_range", ctypes.c_void_p),
|
|
("left_adjust_char_head", ctypes.c_void_p),
|
|
("is_allowed_reverse_match",ctypes.c_void_p),
|
|
]
|
|
OnigEncoding = ctypes.POINTER(OnigEncodingType)
|
|
|
|
class OnigMetaCharTableType(ctypes.Structure):
|
|
_fields_ = [
|
|
("esc", OnigCodePoint),
|
|
("anychar", OnigCodePoint),
|
|
("anytime", OnigCodePoint),
|
|
("zero_or_one_time",OnigCodePoint),
|
|
("one_or_one_time", OnigCodePoint),
|
|
("anychar_anytime", OnigCodePoint),
|
|
]
|
|
|
|
class OnigSyntaxType(ctypes.Structure):
|
|
_fields_ = [
|
|
("op", ctypes.c_uint),
|
|
("op2", ctypes.c_uint),
|
|
("behavior", ctypes.c_uint),
|
|
("options", OnigOptionType),
|
|
("meta_char_table", OnigMetaCharTableType),
|
|
]
|
|
|
|
class OnigErrorInfo(ctypes.Structure):
|
|
_fields_ = [
|
|
("enc", OnigEncoding),
|
|
("par", ctypes.c_char_p),
|
|
("par_end", ctypes.c_char_p),
|
|
]
|
|
|
|
|
|
# load the DLL or the shared library
|
|
|
|
if os.name in ("nt", "ce"):
|
|
_libname = "onig.dll"
|
|
elif sys.platform == "cygwin":
|
|
_libname = "libonig.dll"
|
|
else:
|
|
_libname = "libonig.so"
|
|
|
|
libonig = ctypes.cdll.LoadLibrary(_libname)
|
|
|
|
#
|
|
# Encodings
|
|
#
|
|
def _load_encoding(enc):
|
|
return ctypes.pointer(OnigEncodingType.in_dll(libonig, enc))
|
|
|
|
ONIG_ENCODING_ASCII = _load_encoding("OnigEncodingASCII")
|
|
ONIG_ENCODING_ISO_8859_1 = _load_encoding("OnigEncodingISO_8859_1")
|
|
ONIG_ENCODING_ISO_8859_2 = _load_encoding("OnigEncodingISO_8859_2")
|
|
ONIG_ENCODING_ISO_8859_3 = _load_encoding("OnigEncodingISO_8859_3")
|
|
ONIG_ENCODING_ISO_8859_4 = _load_encoding("OnigEncodingISO_8859_4")
|
|
ONIG_ENCODING_ISO_8859_5 = _load_encoding("OnigEncodingISO_8859_5")
|
|
ONIG_ENCODING_ISO_8859_6 = _load_encoding("OnigEncodingISO_8859_6")
|
|
ONIG_ENCODING_ISO_8859_7 = _load_encoding("OnigEncodingISO_8859_7")
|
|
ONIG_ENCODING_ISO_8859_8 = _load_encoding("OnigEncodingISO_8859_8")
|
|
ONIG_ENCODING_ISO_8859_9 = _load_encoding("OnigEncodingISO_8859_9")
|
|
ONIG_ENCODING_ISO_8859_10 = _load_encoding("OnigEncodingISO_8859_10")
|
|
ONIG_ENCODING_ISO_8859_11 = _load_encoding("OnigEncodingISO_8859_11")
|
|
ONIG_ENCODING_ISO_8859_13 = _load_encoding("OnigEncodingISO_8859_13")
|
|
ONIG_ENCODING_ISO_8859_14 = _load_encoding("OnigEncodingISO_8859_14")
|
|
ONIG_ENCODING_ISO_8859_15 = _load_encoding("OnigEncodingISO_8859_15")
|
|
ONIG_ENCODING_ISO_8859_16 = _load_encoding("OnigEncodingISO_8859_16")
|
|
ONIG_ENCODING_UTF8 = _load_encoding("OnigEncodingUTF8")
|
|
ONIG_ENCODING_UTF16_LE = _load_encoding("OnigEncodingUTF16_LE")
|
|
ONIG_ENCODING_UTF16_BE = _load_encoding("OnigEncodingUTF16_BE")
|
|
ONIG_ENCODING_UTF32_LE = _load_encoding("OnigEncodingUTF32_LE")
|
|
ONIG_ENCODING_UTF32_BE = _load_encoding("OnigEncodingUTF32_BE")
|
|
ONIG_ENCODING_EUC_JP = _load_encoding("OnigEncodingEUC_JP")
|
|
ONIG_ENCODING_EUC_TW = _load_encoding("OnigEncodingEUC_TW")
|
|
ONIG_ENCODING_EUC_KR = _load_encoding("OnigEncodingEUC_KR")
|
|
ONIG_ENCODING_EUC_CN = _load_encoding("OnigEncodingEUC_CN")
|
|
ONIG_ENCODING_SJIS = _load_encoding("OnigEncodingSJIS")
|
|
try:
|
|
ONIG_ENCODING_CP932 = _load_encoding("OnigEncodingCP932")
|
|
except ValueError:
|
|
pass
|
|
#ONIG_ENCODING_KOI8 = _load_encoding("OnigEncodingKOI8")
|
|
ONIG_ENCODING_KOI8_R = _load_encoding("OnigEncodingKOI8_R")
|
|
ONIG_ENCODING_CP1251 = _load_encoding("OnigEncodingCP1251")
|
|
ONIG_ENCODING_BIG5 = _load_encoding("OnigEncodingBIG5")
|
|
ONIG_ENCODING_GB18030 = _load_encoding("OnigEncodingGB18030")
|
|
|
|
#ONIG_ENCODING_UNDEF = None
|
|
|
|
|
|
#
|
|
# Syntaxes
|
|
#
|
|
def _load_syntax(syn):
|
|
return ctypes.pointer(OnigSyntaxType.in_dll(libonig, syn))
|
|
|
|
ONIG_SYNTAX_ASIS = _load_syntax("OnigSyntaxASIS")
|
|
ONIG_SYNTAX_POSIX_BASIC = _load_syntax("OnigSyntaxPosixBasic")
|
|
ONIG_SYNTAX_POSIX_EXTENDED = _load_syntax("OnigSyntaxPosixExtended")
|
|
ONIG_SYNTAX_EMACS = _load_syntax("OnigSyntaxEmacs")
|
|
ONIG_SYNTAX_GREP = _load_syntax("OnigSyntaxGrep")
|
|
ONIG_SYNTAX_GNU_REGEX = _load_syntax("OnigSyntaxGnuRegex")
|
|
ONIG_SYNTAX_JAVA = _load_syntax("OnigSyntaxJava")
|
|
ONIG_SYNTAX_PERL = _load_syntax("OnigSyntaxPerl")
|
|
try:
|
|
ONIG_SYNTAX_PERL58 = _load_syntax("OnigSyntaxPerl58")
|
|
ONIG_SYNTAX_PERL58_NG = _load_syntax("OnigSyntaxPerl58_NG")
|
|
except ValueError:
|
|
pass
|
|
try:
|
|
ONIG_SYNTAX_PERL_NG = _load_syntax("OnigSyntaxPerl_NG")
|
|
except ValueError:
|
|
pass
|
|
ONIG_SYNTAX_RUBY = _load_syntax("OnigSyntaxRuby")
|
|
try:
|
|
ONIG_SYNTAX_PYTHON = _load_syntax("OnigSyntaxPython")
|
|
except ValueError:
|
|
pass
|
|
|
|
ONIG_SYNTAX_DEFAULT = ctypes.POINTER(OnigSyntaxType).in_dll(
|
|
libonig, "OnigDefaultSyntax")
|
|
|
|
|
|
#
|
|
# Constants
|
|
#
|
|
|
|
ONIG_MAX_ERROR_MESSAGE_LEN = 90
|
|
|
|
# options
|
|
ONIG_OPTION_NONE = 0
|
|
ONIG_OPTION_IGNORECASE = 1
|
|
ONIG_OPTION_EXTEND = (ONIG_OPTION_IGNORECASE << 1)
|
|
ONIG_OPTION_MULTILINE = (ONIG_OPTION_EXTEND << 1)
|
|
ONIG_OPTION_DOTALL = ONIG_OPTION_MULTILINE
|
|
ONIG_OPTION_SINGLELINE = (ONIG_OPTION_MULTILINE << 1)
|
|
ONIG_OPTION_FIND_LONGEST = (ONIG_OPTION_SINGLELINE << 1)
|
|
ONIG_OPTION_FIND_NOT_EMPTY = (ONIG_OPTION_FIND_LONGEST << 1)
|
|
ONIG_OPTION_NEGATE_SINGLELINE = (ONIG_OPTION_FIND_NOT_EMPTY << 1)
|
|
ONIG_OPTION_DONT_CAPTURE_GROUP = (ONIG_OPTION_NEGATE_SINGLELINE << 1)
|
|
ONIG_OPTION_CAPTURE_GROUP = (ONIG_OPTION_DONT_CAPTURE_GROUP << 1)
|
|
# options (search time)
|
|
ONIG_OPTION_NOTBOL = (ONIG_OPTION_CAPTURE_GROUP << 1)
|
|
ONIG_OPTION_NOTEOL = (ONIG_OPTION_NOTBOL << 1)
|
|
ONIG_OPTION_POSIX_REGION = (ONIG_OPTION_NOTEOL << 1)
|
|
# options (ctype range)
|
|
ONIG_OPTION_ASCII_RANGE = (ONIG_OPTION_POSIX_REGION << 1)
|
|
ONIG_OPTION_POSIX_BRACKET_ALL_RANGE = (ONIG_OPTION_ASCII_RANGE << 1)
|
|
ONIG_OPTION_WORD_BOUND_ALL_RANGE = (ONIG_OPTION_POSIX_BRACKET_ALL_RANGE << 1)
|
|
# options (newline)
|
|
ONIG_OPTION_NEWLINE_CRLF = (ONIG_OPTION_WORD_BOUND_ALL_RANGE << 1)
|
|
|
|
ONIG_OPTION_DEFAULT = ONIG_OPTION_NONE
|
|
|
|
|
|
# syntax (operators)
|
|
ONIG_SYN_OP_VARIABLE_META_CHARACTERS = (1<<0)
|
|
ONIG_SYN_OP_DOT_ANYCHAR = (1<<1)
|
|
ONIG_SYN_OP_ASTERISK_ZERO_INF = (1<<2)
|
|
ONIG_SYN_OP_ESC_ASTERISK_ZERO_INF = (1<<3)
|
|
ONIG_SYN_OP_PLUS_ONE_INF = (1<<4)
|
|
ONIG_SYN_OP_ESC_PLUS_ONE_INF = (1<<5)
|
|
ONIG_SYN_OP_QMARK_ZERO_ONE = (1<<6)
|
|
ONIG_SYN_OP_ESC_QMARK_ZERO_ONE = (1<<7)
|
|
ONIG_SYN_OP_BRACE_INTERVAL = (1<<8)
|
|
ONIG_SYN_OP_ESC_BRACE_INTERVAL = (1<<9)
|
|
ONIG_SYN_OP_VBAR_ALT = (1<<10)
|
|
ONIG_SYN_OP_ESC_VBAR_ALT = (1<<11)
|
|
ONIG_SYN_OP_LPAREN_SUBEXP = (1<<12)
|
|
ONIG_SYN_OP_ESC_LPAREN_SUBEXP = (1<<13)
|
|
ONIG_SYN_OP_ESC_AZ_BUF_ANCHOR = (1<<14)
|
|
ONIG_SYN_OP_ESC_CAPITAL_G_BEGIN_ANCHOR = (1<<15)
|
|
ONIG_SYN_OP_DECIMAL_BACKREF = (1<<16)
|
|
ONIG_SYN_OP_BRACKET_CC = (1<<17)
|
|
ONIG_SYN_OP_ESC_W_WORD = (1<<18)
|
|
ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END = (1<<19)
|
|
ONIG_SYN_OP_ESC_B_WORD_BOUND = (1<<20)
|
|
ONIG_SYN_OP_ESC_S_WHITE_SPACE = (1<<21)
|
|
ONIG_SYN_OP_ESC_D_DIGIT = (1<<22)
|
|
ONIG_SYN_OP_LINE_ANCHOR = (1<<23)
|
|
ONIG_SYN_OP_POSIX_BRACKET = (1<<24)
|
|
ONIG_SYN_OP_QMARK_NON_GREEDY = (1<<25)
|
|
ONIG_SYN_OP_ESC_CONTROL_CHARS = (1<<26)
|
|
ONIG_SYN_OP_ESC_C_CONTROL = (1<<27)
|
|
ONIG_SYN_OP_ESC_OCTAL3 = (1<<28)
|
|
ONIG_SYN_OP_ESC_X_HEX2 = (1<<29)
|
|
ONIG_SYN_OP_ESC_X_BRACE_HEX8 = (1<<30)
|
|
ONIG_SYN_OP_ESC_O_BRACE_OCTAL = (1<<31)
|
|
|
|
ONIG_SYN_OP2_ESC_CAPITAL_Q_QUOTE = (1<<0)
|
|
ONIG_SYN_OP2_QMARK_GROUP_EFFECT = (1<<1)
|
|
ONIG_SYN_OP2_OPTION_PERL = (1<<2)
|
|
ONIG_SYN_OP2_OPTION_RUBY = (1<<3)
|
|
ONIG_SYN_OP2_PLUS_POSSESSIVE_REPEAT = (1<<4)
|
|
ONIG_SYN_OP2_PLUS_POSSESSIVE_INTERVAL = (1<<5)
|
|
ONIG_SYN_OP2_CCLASS_SET_OP = (1<<6)
|
|
ONIG_SYN_OP2_QMARK_LT_NAMED_GROUP = (1<<7)
|
|
ONIG_SYN_OP2_ESC_K_NAMED_BACKREF = (1<<8)
|
|
ONIG_SYN_OP2_ESC_G_SUBEXP_CALL = (1<<9)
|
|
ONIG_SYN_OP2_ATMARK_CAPTURE_HISTORY = (1<<10)
|
|
ONIG_SYN_OP2_ESC_CAPITAL_C_BAR_CONTROL = (1<<11)
|
|
ONIG_SYN_OP2_ESC_CAPITAL_M_BAR_META = (1<<12)
|
|
ONIG_SYN_OP2_ESC_V_VTAB = (1<<13)
|
|
ONIG_SYN_OP2_ESC_U_HEX4 = (1<<14)
|
|
ONIG_SYN_OP2_ESC_GNU_BUF_ANCHOR = (1<<15)
|
|
ONIG_SYN_OP2_ESC_P_BRACE_CHAR_PROPERTY = (1<<16)
|
|
ONIG_SYN_OP2_ESC_P_BRACE_CIRCUMFLEX_NOT = (1<<17)
|
|
#ONIG_SYN_OP2_CHAR_PROPERTY_PREFIX_IS = (1<<18)
|
|
ONIG_SYN_OP2_ESC_H_XDIGIT = (1<<19)
|
|
ONIG_SYN_OP2_INEFFECTIVE_ESCAPE = (1<<20)
|
|
ONIG_SYN_OP2_ESC_CAPITAL_R_LINEBREAK = (1<<21)
|
|
ONIG_SYN_OP2_ESC_CAPITAL_X_EXTENDED_GRAPHEME_CLUSTER = (1<<22)
|
|
ONIG_SYN_OP2_ESC_V_VERTICAL_WHITESPACE = (1<<23)
|
|
ONIG_SYN_OP2_ESC_H_HORIZONTAL_WHITESPACE = (1<<24)
|
|
ONIG_SYN_OP2_ESC_CAPITAL_K_KEEP = (1<<25)
|
|
ONIG_SYN_OP2_ESC_G_BRACE_BACKREF = (1<<26)
|
|
ONIG_SYN_OP2_QMARK_SUBEXP_CALL = (1<<27)
|
|
ONIG_SYN_OP2_QMARK_VBAR_BRANCH_RESET = (1<<28)
|
|
ONIG_SYN_OP2_QMARK_LPAREN_CONDITION = (1<<29)
|
|
ONIG_SYN_OP2_QMARK_CAPITAL_P_NAMED_GROUP = (1<<30)
|
|
ONIG_SYN_OP2_OPTION_JAVA = (1<<31)
|
|
|
|
# syntax (behavior)
|
|
ONIG_SYN_CONTEXT_INDEP_ANCHORS = (1<<31)
|
|
ONIG_SYN_CONTEXT_INDEP_REPEAT_OPS = (1<<0)
|
|
ONIG_SYN_CONTEXT_INVALID_REPEAT_OPS = (1<<1)
|
|
ONIG_SYN_ALLOW_UNMATCHED_CLOSE_SUBEXP = (1<<2)
|
|
ONIG_SYN_ALLOW_INVALID_INTERVAL = (1<<3)
|
|
ONIG_SYN_ALLOW_INTERVAL_LOW_ABBREV = (1<<4)
|
|
ONIG_SYN_STRICT_CHECK_BACKREF = (1<<5)
|
|
ONIG_SYN_DIFFERENT_LEN_ALT_LOOK_BEHIND = (1<<6)
|
|
ONIG_SYN_CAPTURE_ONLY_NAMED_GROUP = (1<<7)
|
|
ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME = (1<<8)
|
|
ONIG_SYN_FIXED_INTERVAL_IS_GREEDY_ONLY = (1<<9)
|
|
ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME_CALL = (1<<10)
|
|
|
|
# (behavior) in char class [...]
|
|
ONIG_SYN_POSIX_BRACKET_ALWAYS_ALL_RANGE = (1<<19)
|
|
ONIG_SYN_NOT_NEWLINE_IN_NEGATIVE_CC = (1<<20)
|
|
ONIG_SYN_BACKSLASH_ESCAPE_IN_CC = (1<<21)
|
|
ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC = (1<<22)
|
|
ONIG_SYN_ALLOW_DOUBLE_RANGE_OP_IN_CC = (1<<23)
|
|
# syntax (behavior) warning
|
|
ONIG_SYN_WARN_CC_OP_NOT_ESCAPED = (1<<24)
|
|
ONIG_SYN_WARN_REDUNDANT_NESTED_REPEAT = (1<<25)
|
|
|
|
# meta character specifiers (onig_set_meta_char())
|
|
ONIG_META_CHAR_ESCAPE = 0
|
|
ONIG_META_CHAR_ANYCHAR = 1
|
|
ONIG_META_CHAR_ANYTIME = 2
|
|
ONIG_META_CHAR_ZERO_OR_ONE_TIME = 3
|
|
ONIG_META_CHAR_ONE_OR_MORE_TIME = 4
|
|
ONIG_META_CHAR_ANYCHAR_ANYTIME = 5
|
|
|
|
ONIG_INEFFECTIVE_META_CHAR = 0
|
|
|
|
|
|
# error codes
|
|
def ONIG_IS_PATTERN_ERROR(ecode):
|
|
return ((ecode) <= -100 and (ecode) > -1000)
|
|
# normal return
|
|
ONIG_NORMAL = 0
|
|
ONIG_MISMATCH = -1
|
|
ONIG_NO_SUPPORT_CONFIG = -2
|
|
# internal error
|
|
# general error
|
|
ONIGERR_INVALID_ARGUMENT = -30
|
|
# syntax error
|
|
# values error (syntax error)
|
|
# errors related to thread
|
|
ONIGERR_OVER_THREAD_PASS_LIMIT_COUNT = -1001
|
|
|
|
|
|
#
|
|
# Onigmo APIs
|
|
#
|
|
|
|
# onig_init
|
|
onig_init = libonig.onig_init
|
|
|
|
# onig_error_code_to_str
|
|
libonig.onig_error_code_to_str.argtypes = [ctypes.c_char_p, ctypes.c_int,
|
|
ctypes.POINTER(OnigErrorInfo)]
|
|
def onig_error_code_to_str(err_buf, err_code, err_info=None):
|
|
return libonig.onig_error_code_to_str(err_buf, err_code, err_info)
|
|
|
|
# onig_set_warn_func
|
|
# onig_set_verb_warn_func
|
|
|
|
# onig_new
|
|
libonig.onig_new.argtypes = [ctypes.POINTER(OnigRegex),
|
|
ctypes.c_void_p, ctypes.c_void_p,
|
|
OnigOptionType, OnigEncoding, ctypes.POINTER(OnigSyntaxType),
|
|
ctypes.POINTER(OnigErrorInfo)]
|
|
onig_new = libonig.onig_new
|
|
|
|
# onig_reg_init
|
|
# onig_new_without_alloc
|
|
# onig_new_deluxe
|
|
|
|
# onig_free
|
|
libonig.onig_free.argtypes = [OnigRegex]
|
|
onig_free = libonig.onig_free
|
|
|
|
# onig_free_body
|
|
# onig_recompile
|
|
# onig_recompile_deluxe
|
|
|
|
# onig_search
|
|
libonig.onig_search.argtypes = [OnigRegex,
|
|
ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p,
|
|
ctypes.POINTER(OnigRegion), OnigOptionType]
|
|
libonig.onig_search.restype = _c_ssize_t
|
|
onig_search = libonig.onig_search
|
|
|
|
# onig_search_gpos
|
|
|
|
# onig_match
|
|
libonig.onig_match.argtypes = [OnigRegex,
|
|
ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p,
|
|
ctypes.POINTER(OnigRegion), OnigOptionType]
|
|
libonig.onig_match.restype = _c_ssize_t
|
|
onig_match = libonig.onig_match
|
|
|
|
# onig_region_new
|
|
libonig.onig_region_new.argtypes = []
|
|
libonig.onig_region_new.restype = ctypes.POINTER(OnigRegion)
|
|
onig_region_new = libonig.onig_region_new
|
|
|
|
# onig_region_init
|
|
|
|
# onig_region_free
|
|
libonig.onig_region_free.argtypes = [ctypes.POINTER(OnigRegion), ctypes.c_int]
|
|
onig_region_free = libonig.onig_region_free
|
|
|
|
# onig_region_copy
|
|
# onig_region_clear
|
|
# onig_region_resize
|
|
# onig_region_set
|
|
# onig_name_to_group_numbers
|
|
# onig_name_to_backref_number
|
|
# onig_foreach_name
|
|
# onig_number_of_names
|
|
# onig_number_of_captures
|
|
# onig_number_of_capture_histories
|
|
# onig_get_capture_tree
|
|
# onig_capture_tree_traverse
|
|
# onig_noname_group_capture_is_active
|
|
# onig_get_encoding
|
|
# onig_get_options
|
|
# onig_get_case_fold_flag
|
|
# onig_get_syntax
|
|
# onig_set_default_syntax
|
|
|
|
# onig_copy_syntax
|
|
libonig.onig_copy_syntax.argtypes = [ctypes.POINTER(OnigSyntaxType),
|
|
ctypes.POINTER(OnigSyntaxType)]
|
|
onig_copy_syntax = libonig.onig_copy_syntax
|
|
|
|
# onig_get_syntax_op
|
|
# onig_get_syntax_op2
|
|
# onig_get_syntax_behavior
|
|
# onig_get_syntax_options
|
|
# onig_set_syntax_op
|
|
# onig_set_syntax_op2
|
|
# onig_set_syntax_behavior
|
|
# onig_set_syntax_options
|
|
# onig_set_meta_char
|
|
# onig_copy_encoding
|
|
# onig_get_default_case_fold_flag
|
|
# onig_set_default_case_fold_flag
|
|
# onig_get_match_stack_limit_size
|
|
# onig_set_match_stack_limit_size
|
|
|
|
# onig_end
|
|
libonig.onig_end.argtypes = []
|
|
onig_end = libonig.onig_end
|
|
|
|
# onig_version
|
|
libonig.onig_version.argtypes = []
|
|
libonig.onig_version.restype = ctypes.c_char_p
|
|
def onig_version():
|
|
return libonig.onig_version().decode()
|
|
|
|
# onig_copyright
|
|
libonig.onig_copyright.argtypes = []
|
|
libonig.onig_copyright.restype = ctypes.c_char_p
|
|
def onig_copyright():
|
|
return libonig.onig_copyright().decode()
|