diff options
Diffstat (limited to 'ext/mbstring/oniguruma/testconv.rb')
-rw-r--r-- | ext/mbstring/oniguruma/testconv.rb | 223 |
1 files changed, 0 insertions, 223 deletions
diff --git a/ext/mbstring/oniguruma/testconv.rb b/ext/mbstring/oniguruma/testconv.rb deleted file mode 100644 index afaa673d90..0000000000 --- a/ext/mbstring/oniguruma/testconv.rb +++ /dev/null @@ -1,223 +0,0 @@ -#!/usr/local/bin/ruby -Ke -# testconv.rb -# Copyright (C) 2003 K.Kosako (kosako@sofnec.co.jp) - -WINDOWS = (ARGV.size > 0 && /^-win/i =~ ARGV[0]) -ARGV.shift if WINDOWS - -if WINDOWS - REGCODE = 'REGCODE_SJIS' - REGENC = 'REG_ENCODING_SJIS' -else - REGCODE = 'REGCODE_EUCJP' - REGENC = 'REG_ENCODING_EUC_JP' -end - -def conv_reg(s) - s = s.gsub(/\\/, '\\\\\\\\') #' - if (WINDOWS) - s = s.gsub(/\?\?/, '?\\\\?') # escape ANSI trigraph - end - s -end - -def conv_str(s) - if (s[0] == ?') - s = s[1..-2] - return s.gsub(/\\/, '\\\\\\\\') #' - else - return s[1..-2] - end -end - -print(<<"EOS") -/* - * This program was generated by testconv.rb. - */ -#include<stdio.h> - -#ifdef POSIX_TEST -#include "onigposix.h" -#else -#include "oniguruma.h" -#endif - -static int nsucc = 0; -static int nfail = 0; - -#ifndef POSIX_TEST -static RegRegion* region; -#endif - -static void xx(char* pattern, char* str, int from, int to, int mem, int not) -{ - int r; - -#ifdef POSIX_TEST - regex_t reg; - char buf[200]; - regmatch_t pmatch[20]; - - r = regcomp(®, pattern, REG_EXTENDED | REG_NEWLINE); - if (r) { - regerror(r, ®, buf, sizeof(buf)); - fprintf(stderr, "ERROR: %s\\n", buf); - exit(-1); - } - - r = regexec(®, str, reg.re_nsub + 1, pmatch, 0); - if (r != 0 && r != REG_NOMATCH) { - regerror(r, ®, buf, sizeof(buf)); - fprintf(stderr, "ERROR: %s\\n", buf); - exit(-1); - } - - if (r == REG_NOMATCH) { - if (not) { - fprintf(stdout, "OK(N): /%s/ '%s'\\n", pattern, str); - nsucc++; - } - else { - fprintf(stdout, "FAIL: /%s/ '%s'\\n", pattern, str); - nfail++; - } - } - else { - if (not) { - fprintf(stdout, "FAIL(N): /%s/ '%s'\\n", pattern, str); - nfail++; - } - else { - if (pmatch[mem].rm_so == from && pmatch[mem].rm_eo == to) { - fprintf(stdout, "OK: /%s/ '%s'\\n", pattern, str); - nsucc++; - } - else { - fprintf(stdout, "FAIL: /%s/ '%s' %d-%d : %d-%d\\n", pattern, str, - from, to, pmatch[mem].rm_so, pmatch[mem].rm_eo); - nfail++; - } - } - } - regfree(®); - -#else - regex_t* reg; - RegErrorInfo einfo; - - r = regex_new(®, (UChar* )pattern, (UChar* )(pattern + strlen(pattern)), - REG_OPTION_DEFAULT, #{REGCODE}, REG_SYNTAX_DEFAULT, &einfo); - if (r) { - char s[REG_MAX_ERROR_MESSAGE_LEN]; - regex_error_code_to_str(s, r, &einfo); - fprintf(stderr, "ERROR: %s\\n", s); - exit(-1); - } - - r = regex_search(reg, (UChar* )str, (UChar* )(str + strlen(str)), - (UChar* )str, (UChar* )(str + strlen(str)), - region, REG_OPTION_NONE); - if (r < REG_MISMATCH) { - char s[REG_MAX_ERROR_MESSAGE_LEN]; - regex_error_code_to_str(s, r); - fprintf(stderr, "ERROR: %s\\n", s); - exit(-1); - } - - if (r == REG_MISMATCH) { - if (not) { - fprintf(stdout, "OK(N): /%s/ '%s'\\n", pattern, str); - nsucc++; - } - else { - fprintf(stdout, "FAIL: /%s/ '%s'\\n", pattern, str); - nfail++; - } - } - else { - if (not) { - fprintf(stdout, "FAIL(N): /%s/ '%s'\\n", pattern, str); - nfail++; - } - else { - if (region->beg[mem] == from && region->end[mem] == to) { - fprintf(stdout, "OK: /%s/ '%s'\\n", pattern, str); - nsucc++; - } - else { - fprintf(stdout, "FAIL: /%s/ '%s' %d-%d : %d-%d\\n", pattern, str, - from, to, region->beg[mem], region->end[mem]); - nfail++; - } - } - } - regex_free(reg); -#endif -} - -static void x2(char* pattern, char* str, int from, int to) -{ - xx(pattern, str, from, to, 0, 0); -} - -static void x3(char* pattern, char* str, int from, int to, int mem) -{ - xx(pattern, str, from, to, mem, 0); -} - -static void n(char* pattern, char* str) -{ - xx(pattern, str, 0, 0, 0, 1); -} - -extern int main(int argc, char* argv[]) -{ -#ifdef POSIX_TEST - reg_set_encoding(#{REGENC}); -#else - region = regex_region_new(); -#endif - -EOS - -CM = '\s*,\s*' -RX2 = %r{^x\(/([^\/]*)/#{CM}('[^']*'|"[^"]*")#{CM}(\S+)#{CM}(\S+)\)$} -RI2 = %r{^i\(/([^\/]*)/#{CM}('[^']*'|"[^"]*")#{CM}(\S+)#{CM}(\S+)\)} -RX3 = %r{^x\(/([^\/]*)/#{CM}('[^']*'|"[^"]*")#{CM}(\S+)#{CM}(\S+)#{CM}(\S+)\)$} -RN = %r{^n\(/([^\/]*)/#{CM}('[^']*'|"[^"]*")\)$} #' - -while line = gets() - if (m = RX2.match(line)) - reg = conv_reg(m[1]) - str = conv_str(m[2]) - printf(" x2(\"%s\", \"%s\", %s, %s);\n", reg, str, m[3], m[4]) - elsif (m = RI2.match(line)) - reg = conv_reg(m[1]) - str = conv_str(m[2]) - printf(" x2(\"%s\", \"%s\", %s, %s);\n", reg, str, m[3], m[4]) - elsif (m = RX3.match(line)) - reg = conv_reg(m[1]) - str = conv_str(m[2]) - printf(" x3(\"%s\", \"%s\", %s, %s, %s);\n", reg, str, m[3], m[4], m[5]) - elsif (m = RN.match(line)) - reg = conv_reg(m[1]) - str = conv_str(m[2]) - printf(" n(\"%s\", \"%s\");\n", reg, str) - else - - end -end - -print(<<'EOS') - fprintf(stdout, "\nRESULT SUCC: %d, FAIL: %d\n", nsucc, nfail); - -#ifndef POSIX_TEST - regex_region_free(region, 1); - regex_end(); -#endif - - return 0; -} -EOS - -# END OF SCRIPT |