__attribute__((constructor)) static void setup () { static OnigSyntaxType syntax; onig_copy_syntax(&syntax, ONIG_SYNTAX_RUBY); onig_set_syntax_options(&syntax, ONIG_OPTION_OFF(syntax.options, ONIG_OPTION_ASCII_RANGE)); onig_set_default_syntax(&syntax); }
/* Open the library */ REX_API int REX_OPENLIB (lua_State *L) { if (ONIGURUMA_VERSION_MAJOR > atoi (onig_version ())) { return luaL_error (L, "%s requires at least version %d of Oniguruma library", REX_LIBNAME, (int)ONIGURUMA_VERSION_MAJOR); } onig_init(); onig_set_default_syntax(ONIG_SYNTAX_RUBY); alg_register(L, r_methods, r_functions, "Oniguruma"); return 1; }
/* Open the library */ REX_API int REX_OPENLIB (lua_State *L) { if (ONIGURUMA_VERSION_MAJOR > atoi (onig_version ())) { return luaL_error (L, "%s requires at least version %d of Oniguruma library", REX_LIBNAME, (int)ONIGURUMA_VERSION_MAJOR); } onig_init(); onig_set_default_syntax(ONIG_SYNTAX_RUBY); /* create a new function environment to serve as a metatable for methods */ lua_newtable (L); lua_pushvalue (L, -1); lua_replace (L, LUA_ENVIRONINDEX); lua_pushvalue(L, -1); /* mt.__index = mt */ lua_setfield(L, -2, "__index"); luaL_register (L, NULL, regex_meta); /* register functions */ luaL_register (L, REX_LIBNAME, rexlib); lua_pushliteral (L, REX_VERSION" (for Oniguruma)"); lua_setfield (L, -2, "_VERSION"); return 1; }
extern int main(int argc, char* argv[]) { int r; char buf[200]; regex_t reg; UChar* pattern; reg_set_encoding(REG_POSIX_ENCODING_ASCII); /* default syntax (ONIG_SYNTAX_RUBY) */ pattern = (UChar* )"^a+b{2,7}[c-f]?$|uuu"; r = regcomp(®, (char* )pattern, REG_EXTENDED); if (r) { regerror(r, ®, buf, sizeof(buf)); fprintf(stderr, "ERROR: %s\n", buf); return -1; } x(®, pattern, (UChar* )"aaabbbbd"); /* POSIX Basic RE (REG_EXTENDED is not specified.) */ pattern = (UChar* )"^a+b{2,7}[c-f]?|uuu"; r = regcomp(®, (char* )pattern, 0); if (r) { regerror(r, ®, buf, sizeof(buf)); fprintf(stderr, "ERROR: %s\n", buf); return -1; } x(®, pattern, (UChar* )"a+b{2,7}d?|uuu"); /* POSIX Basic RE (REG_EXTENDED is not specified.) */ pattern = (UChar* )"^a*b\\{2,7\\}\\([c-f]\\)$"; r = regcomp(®, (char* )pattern, 0); if (r) { regerror(r, ®, buf, sizeof(buf)); fprintf(stderr, "ERROR: %s\n", buf); return -1; } x(®, pattern, (UChar* )"aaaabbbbbbd"); /* POSIX Extended RE */ onig_set_default_syntax(ONIG_SYNTAX_POSIX_EXTENDED); pattern = (UChar* )"^a+b{2,7}[c-f]?)$|uuu"; r = regcomp(®, (char* )pattern, REG_EXTENDED); if (r) { regerror(r, ®, buf, sizeof(buf)); fprintf(stderr, "ERROR: %s\n", buf); return -1; } x(®, pattern, (UChar* )"aaabbbbd)"); pattern = (UChar* )"^b."; r = regcomp(®, (char* )pattern, REG_EXTENDED | REG_NEWLINE); if (r) { regerror(r, ®, buf, sizeof(buf)); fprintf(stderr, "ERROR: %s\n", buf); return -1; } x(®, pattern, (UChar* )"a\nb\n"); regfree(®); onig_end(); return 0; }
/* rex.setdefaultsyntax (syntax) @param syntax: one of the predefined strings listed in array 'Syntaxes' @return: nothing */ static int LOnig_setdefaultsyntax (lua_State *L) { (void)luaL_checkstring(L, 1); onig_set_default_syntax(getsyntax(L, 1)); return 0; }
cell AMX_NATIVE_CALL pawn_regex_def_syntax(AMX* amx, cell* params) { switch(params[1]) { case 1: { onig_set_default_syntax(ONIG_SYNTAX_PERL); logprintf("[REGEX] Default syntax set to ONIG_SYNTAX_PERL."); return 1; } case 2: { onig_set_default_syntax(ONIG_SYNTAX_RUBY); logprintf("[REGEX] Default syntax set to ONIG_SYNTAX_RUBY."); return 1; } case 3: { onig_set_default_syntax(ONIG_SYNTAX_JAVA); logprintf("[REGEX] Default syntax set to ONIG_SYNTAX_JAVA."); return 1; } case 4: { onig_set_default_syntax(ONIG_SYNTAX_GNU_REGEX); logprintf("[REGEX] Default syntax set to ONIG_SYNTAX_GNU_REGEX."); return 1; } case 5: { onig_set_default_syntax(ONIG_SYNTAX_GREP); logprintf("[REGEX] Default syntax set to ONIG_SYNTAX_GREP."); return 1; } case 6: { onig_set_default_syntax(ONIG_SYNTAX_EMACS); logprintf("[REGEX] Default syntax set to ONIG_SYNTAX_EMACS."); return 1; } case 7: { onig_set_default_syntax(ONIG_SYNTAX_POSIX_EXTENDED); logprintf("[REGEX] Default syntax set to ONIG_SYNTAX_POSIX_EXTENDED."); return 1; } case 8: { onig_set_default_syntax(ONIG_SYNTAX_POSIX_BASIC); logprintf("[REGEX] Default syntax set to ONIG_SYNTAX_POSIX_BASIC."); return 1; } default: { onig_set_default_syntax(ONIG_SYNTAX_PERL); logprintf("[REGEX] Default syntax set to ONIG_SYNTAX_PERL."); return 1; } } return 1; }