W3cubDocs

/Nim

Module pcre

Exec-time and get/set-time error codesSpecific error codes for UTF-8 validity checksSpecific error codes for UTF-16 validity checksSpecific error codes for UTF-32 validity checksRequest types for pcre_fullinfo()Request types for pcre_config(). Do not re-arrange, in order to remain compatible.Request types for pcre_study(). Do not re-arrange, in order to remain compatible.Bit flags for the pcre[16|32]_extra structure. Do not re-arrange or redefine these bits, just add new ones on the end, in order to remain compatible.TypesThe structure for passing additional data to pcre_exec(). This is defined in such as way as to be extensible. Always add new fields at the end, in order to remain compatible.The structure for passing out data via the pcre_callout_function. We use a structure so that new fields can be added on the end in future versions, without changing the API of the function, thereby allowing old clients to work without modification.User defined callback which provides a stack just before the match starts.

Types

Pcre = object
Pcre16 = object
Pcre32 = object
JitStack = object
JitStack16 = object
JitStack32 = object
ExtraData = object
  flags*: clong
  study_data*: pointer         ## Opaque data from pcre_study()
  match_limit*: clong          ## Maximum number of calls to match()
  callout_data*: pointer       ## Data passed back in callouts
  tables*: pointer             ## Pointer to character tables
  match_limit_recursion*: clong ## Max recursive calls to match()
  mark*: pointer               ## For passing back a mark pointer
  executable_jit*: pointer     ## Contains a pointer to a compiled jit code
Bits for which fields are set
CalloutBlock = object
  version*: cint
  callout_number*: cint        ## Number compiled into pattern
  offset_vector*: ptr cint      ## The offset vector
  subject*: cstring            ## The subject being matched
  subject_length*: cint        ## The length of the subject
  start_match*: cint           ## Offset to start of this match attempt
  current_position*: cint      ## Where we currently are in the subject
  capture_top*: cint           ## Max current capture
  capture_last*: cint          ## Most recently closed capture
  callout_data*: pointer       ## Data passed in with the call
  pattern_position*: cint      ## Offset to next item in the pattern
  next_item_length*: cint      ## Length of next item in the pattern
  mark*: pointer               ## Pointer to current mark or NULL
Identifies version of block
JitCallback = proc (a: pointer): ptr JitStack {...}{.cdecl.}
PPcre {...}{.deprecated.} = ptr Pcre
PJitStack {...}{.deprecated.} = ptr JitStack

Consts

PCRE_MAJOR = 8
PCRE_MINOR = 36
PCRE_PRERELEASE = true
PCRE_DATE = "2014-09-26"
CASELESS = 0x00000001
MULTILINE = 0x00000002
DOTALL = 0x00000004
EXTENDED = 0x00000008
ANCHORED = 0x00000010
DOLLAR_ENDONLY = 0x00000020
EXTRA = 0x00000040
NOTBOL = 0x00000080
NOTEOL = 0x00000100
UNGREEDY = 0x00000200
NOTEMPTY = 0x00000400
UTF8 = 0x00000800
UTF16 = 0x00000800
UTF32 = 0x00000800
NO_AUTO_CAPTURE = 0x00001000
NO_UTF8_CHECK = 0x00002000
NO_UTF16_CHECK = 0x00002000
NO_UTF32_CHECK = 0x00002000
AUTO_CALLOUT = 0x00004000
PARTIAL_SOFT = 0x00008000
PARTIAL = 0x00008000
NEVER_UTF = 0x00010000
DFA_SHORTEST = 0x00010000
NO_AUTO_POSSESS = 0x00020000
DFA_RESTART = 0x00020000
FIRSTLINE = 0x00040000
DUPNAMES = 0x00080000
NEWLINE_CR = 0x00100000
NEWLINE_LF = 0x00200000
NEWLINE_CRLF = 0x00300000
NEWLINE_ANY = 0x00400000
NEWLINE_ANYCRLF = 0x00500000
BSR_ANYCRLF = 0x00800000
BSR_UNICODE = 0x01000000
JAVASCRIPT_COMPAT = 0x02000000
NO_START_OPTIMIZE = 0x04000000
NO_START_OPTIMISE = 0x04000000
PARTIAL_HARD = 0x08000000
NOTEMPTY_ATSTART = 0x10000000
UCP = 0x20000000
ERROR_NOMATCH = -1
ERROR_NULL = -2
ERROR_BADOPTION = -3
ERROR_BADMAGIC = -4
ERROR_UNKNOWN_OPCODE = -5
ERROR_UNKNOWN_NODE = -5
For backward compatibility
ERROR_NOMEMORY = -6
ERROR_NOSUBSTRING = -7
ERROR_MATCHLIMIT = -8
ERROR_CALLOUT = -9
Never used by PCRE itself
ERROR_BADUTF8 = -10
Same for 8/16/32
ERROR_BADUTF16 = -10
Same for 8/16/32
ERROR_BADUTF32 = -10
Same for 8/16/32
ERROR_BADUTF8_OFFSET = -11
Same for 8/16
ERROR_BADUTF16_OFFSET = -11
Same for 8/16
ERROR_PARTIAL = -12
ERROR_BADPARTIAL = -13
ERROR_INTERNAL = -14
ERROR_BADCOUNT = -15
ERROR_DFA_UITEM = -16
ERROR_DFA_UCOND = -17
ERROR_DFA_UMLIMIT = -18
ERROR_DFA_WSSIZE = -19
ERROR_DFA_RECURSE = -20
ERROR_RECURSIONLIMIT = -21
ERROR_NULLWSLIMIT = -22
No longer actually used
ERROR_BADNEWLINE = -23
ERROR_BADOFFSET = -24
ERROR_SHORTUTF8 = -25
ERROR_SHORTUTF16 = -25
Same for 8/16
ERROR_RECURSELOOP = -26
ERROR_JIT_STACKLIMIT = -27
ERROR_BADMODE = -28
ERROR_BADENDIANNESS = -29
ERROR_DFA_BADRESTART = -30
ERROR_JIT_BADOPTION = -31
ERROR_BADLENGTH = -32
ERROR_UNSET = -33
UTF8_ERR0 = 0
UTF8_ERR1 = 1
UTF8_ERR2 = 2
UTF8_ERR3 = 3
UTF8_ERR4 = 4
UTF8_ERR5 = 5
UTF8_ERR6 = 6
UTF8_ERR7 = 7
UTF8_ERR8 = 8
UTF8_ERR9 = 9
UTF8_ERR10 = 10
UTF8_ERR11 = 11
UTF8_ERR12 = 12
UTF8_ERR13 = 13
UTF8_ERR14 = 14
UTF8_ERR15 = 15
UTF8_ERR16 = 16
UTF8_ERR17 = 17
UTF8_ERR18 = 18
UTF8_ERR19 = 19
UTF8_ERR20 = 20
UTF8_ERR21 = 21
UTF8_ERR22 = 22
UTF16_ERR0 = 0
UTF16_ERR1 = 1
UTF16_ERR2 = 2
UTF16_ERR3 = 3
UTF16_ERR4 = 4
UTF32_ERR0 = 0
UTF32_ERR1 = 1
UTF32_ERR2 = 2
UTF32_ERR3 = 3
INFO_OPTIONS = 0
INFO_SIZE = 1
INFO_CAPTURECOUNT = 2
INFO_BACKREFMAX = 3
INFO_FIRSTBYTE = 4
INFO_FIRSTCHAR = 4
For backwards compatibility
INFO_FIRSTTABLE = 5
INFO_LASTLITERAL = 6
INFO_NAMEENTRYSIZE = 7
INFO_NAMECOUNT = 8
INFO_NAMETABLE = 9
INFO_STUDYSIZE = 10
INFO_DEFAULT_TABLES = 11
INFO_OKPARTIAL = 12
INFO_JCHANGED = 13
INFO_HASCRORLF = 14
INFO_MINLENGTH = 15
INFO_JIT = 16
INFO_JITSIZE = 17
INFO_MAXLOOKBEHIND = 18
INFO_FIRSTCHARACTER = 19
INFO_FIRSTCHARACTERFLAGS = 20
INFO_REQUIREDCHAR = 21
INFO_REQUIREDCHARFLAGS = 22
INFO_MATCHLIMIT = 23
INFO_RECURSIONLIMIT = 24
INFO_MATCH_EMPTY = 25
CONFIG_UTF8 = 0
CONFIG_NEWLINE = 1
CONFIG_LINK_SIZE = 2
CONFIG_POSIX_MALLOC_THRESHOLD = 3
CONFIG_MATCH_LIMIT = 4
CONFIG_STACKRECURSE = 5
CONFIG_UNICODE_PROPERTIES = 6
CONFIG_MATCH_LIMIT_RECURSION = 7
CONFIG_BSR = 8
CONFIG_JIT = 9
CONFIG_UTF16 = 10
CONFIG_JITTARGET = 11
CONFIG_UTF32 = 12
CONFIG_PARENS_LIMIT = 13
STUDY_JIT_COMPILE = 0x00000001
STUDY_JIT_PARTIAL_SOFT_COMPILE = 0x00000002
STUDY_JIT_PARTIAL_HARD_COMPILE = 0x00000004
STUDY_EXTRA_NEEDED = 0x00000008
EXTRA_STUDY_DATA = 0x00000001
EXTRA_MATCH_LIMIT = 0x00000002
EXTRA_CALLOUT_DATA = 0x00000004
EXTRA_TABLES = 0x00000008
EXTRA_MATCH_LIMIT_RECURSION = 0x00000010
EXTRA_MARK = 0x00000020
EXTRA_EXECUTABLE_JIT = 0x00000040

Procs

proc compile(pattern: cstring; options: cint; errptr: ptr cstring; erroffset: ptr cint;
            tableptr: pointer): ptr Pcre
proc compile2(pattern: cstring; options: cint; errorcodeptr: ptr cint;
             errptr: ptr cstring; erroffset: ptr cint; tableptr: pointer): ptr Pcre
proc config(what: cint; where: pointer): cint
proc copy_named_substring(code: ptr Pcre; subject: cstring; ovector: ptr cint;
                         stringcount: cint; stringname: cstring; buffer: cstring;
                         buffersize: cint): cint
proc copy_substring(subject: cstring; ovector: ptr cint; stringcount: cint;
                   stringnumber: cint; buffer: cstring; buffersize: cint): cint
proc dfa_exec(code: ptr Pcre; extra: ptr ExtraData; subject: cstring; length: cint;
             startoffset: cint; options: cint; ovector: ptr cint; ovecsize: cint;
             workspace: ptr cint; wscount: cint): cint
proc exec(code: ptr Pcre; extra: ptr ExtraData; subject: cstring; length: cint;
         startoffset: cint; options: cint; ovector: ptr cint; ovecsize: cint): cint
proc jit_exec(code: ptr Pcre; extra: ptr ExtraData; subject: cstring; length: cint;
             startoffset: cint; options: cint; ovector: ptr cint; ovecsize: cint;
             jstack: ptr JitStack): cint
proc free_substring(stringptr: cstring)
proc free_substring_list(stringptr: cstringArray)
proc fullinfo(code: ptr Pcre; extra: ptr ExtraData; what: cint; where: pointer): cint
proc get_named_substring(code: ptr Pcre; subject: cstring; ovector: ptr cint;
                        stringcount: cint; stringname: cstring;
                        stringptr: cstringArray): cint
proc get_stringnumber(code: ptr Pcre; name: cstring): cint
proc get_stringtable_entries(code: ptr Pcre; name: cstring; first: cstringArray;
                            last: cstringArray): cint
proc get_substring(subject: cstring; ovector: ptr cint; stringcount: cint;
                  stringnumber: cint; stringptr: cstringArray): cint
proc get_substring_list(subject: cstring; ovector: ptr cint; stringcount: cint;
                       listptr: ptr cstringArray): cint
proc maketables(): pointer
proc refcount(code: ptr Pcre; adjust: cint): cint
proc study(code: ptr Pcre; options: cint; errptr: ptr cstring): ptr ExtraData
proc free_study(extra: ptr ExtraData)
proc version(): cstring
proc pattern_to_host_byte_order(code: ptr Pcre; extra: ptr ExtraData; tables: pointer): cint
proc jit_stack_alloc(startsize: cint; maxsize: cint): ptr JitStack
proc jit_stack_free(stack: ptr JitStack)
proc assign_jit_stack(extra: ptr ExtraData; callback: JitCallback; data: pointer)
proc jit_free_unused_memory()
proc study(code: ptr Pcre; options: cint; errptr: var cstring): ptr ExtraData {...}{.deprecated.}

© 2006–2018 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/pcre.html