esruby 0.0.0 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/LICENSE +6 -6
- data/bin/esruby +9 -0
- data/lib/esruby.rb +8 -0
- data/resources/mruby/build_config.rb +0 -1
- data/resources/mruby/mrbgems/mruby-print/mrblib/print.rb +1 -1
- data/resources/project_template/app/app.rb +2 -0
- data/resources/project_template/config.rb +35 -0
- data/resources/project_template/www/index.html +17 -0
- metadata +6 -377
- data/resources/mruby/bin/mirb +0 -0
- data/resources/mruby/bin/mrbc +0 -0
- data/resources/mruby/bin/mruby +0 -0
- data/resources/mruby/bin/mruby-strip +0 -0
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/README.md +0 -82
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/mrbgem.rake +0 -63
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/mrblib/regexp_pcre.rb +0 -232
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/mrblib/string_pcre.rb +0 -333
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/132html +0 -313
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/AUTHORS +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/CMakeLists.txt +0 -959
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/COPYING +0 -5
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/ChangeLog +0 -4981
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/CheckMan +0 -67
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/CleanTxt +0 -113
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/Detrail +0 -35
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/HACKING +0 -473
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/INSTALL +0 -370
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/LICENCE +0 -92
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/Makefile.am +0 -877
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/Makefile.in +0 -2917
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/NEWS +0 -611
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/NON-AUTOTOOLS-BUILD +0 -639
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/NON-UNIX-USE +0 -7
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/PrepareRelease +0 -253
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/README +0 -935
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/RunGrepTest +0 -551
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/RunTest +0 -1015
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/RunTest.bat +0 -616
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/aclocal.m4 +0 -1230
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/autom4te.cache/output.0 +0 -21280
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/autom4te.cache/output.1 +0 -21280
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/autom4te.cache/requests +0 -273
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/autom4te.cache/traces.0 +0 -2421
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/autom4te.cache/traces.1 +0 -1144
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/cmake/COPYING-CMAKE-SCRIPTS +0 -22
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/cmake/FindEditline.cmake +0 -17
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/cmake/FindPackageHandleStandardArgs.cmake +0 -58
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/cmake/FindReadline.cmake +0 -29
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/compile +0 -343
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/config-cmake.h.in +0 -54
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/config.guess +0 -1552
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/config.h +0 -392
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/config.h.generic +0 -392
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/config.h.in +0 -343
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/config.sub +0 -1804
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/configure +0 -21280
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/configure.ac +0 -1082
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/depcomp +0 -708
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/dftables.c +0 -212
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/index.html +0 -180
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre-config.html +0 -109
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre.html +0 -204
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre16.html +0 -383
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_assign_jit_stack.html +0 -76
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_compile.html +0 -108
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_compile2.html +0 -112
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_config.html +0 -91
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_copy_named_substring.html +0 -65
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_copy_substring.html +0 -61
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_dfa_exec.html +0 -128
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_exec.html +0 -110
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_free_study.html +0 -46
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_free_substring.html +0 -46
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_free_substring_list.html +0 -46
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_fullinfo.html +0 -108
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_get_named_substring.html +0 -68
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_get_stringnumber.html +0 -57
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_get_stringtable_entries.html +0 -60
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_get_substring.html +0 -64
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_get_substring_list.html +0 -61
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_jit_exec.html +0 -108
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_jit_stack_alloc.html +0 -55
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_jit_stack_free.html +0 -48
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_maketables.html +0 -48
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_pattern_to_host_byte_order.html +0 -58
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_refcount.html +0 -51
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_study.html +0 -68
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_utf16_to_host_byte_order.html +0 -57
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_version.html +0 -46
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcreapi.html +0 -2786
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcrebuild.html +0 -517
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcrecallout.html +0 -243
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcrecompat.html +0 -216
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcrecpp.html +0 -368
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcredemo.html +0 -426
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcregrep.html +0 -757
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcrejit.html +0 -458
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcrelimits.html +0 -86
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcrematching.html +0 -233
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcrepartial.html +0 -474
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcrepattern.html +0 -2953
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcreperform.html +0 -195
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcreposix.html +0 -292
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcreprecompile.html +0 -158
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcresample.html +0 -110
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcrestack.html +0 -225
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcresyntax.html +0 -521
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcretest.html +0 -1082
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcreunicode.html +0 -270
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/index.html.src +0 -180
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre-config.1 +0 -92
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre-config.txt +0 -86
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre.3 +0 -202
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre.txt +0 -9909
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre16.3 +0 -390
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre32.3 +0 -389
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_assign_jit_stack.3 +0 -61
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_compile.3 +0 -98
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_compile2.3 +0 -106
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_config.3 +0 -76
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_copy_named_substring.3 +0 -59
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_copy_substring.3 +0 -52
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_dfa_exec.3 +0 -125
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_exec.3 +0 -103
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_free_study.3 +0 -31
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_free_substring.3 +0 -31
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_free_substring_list.3 +0 -31
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_fullinfo.3 +0 -95
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_get_named_substring.3 +0 -62
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_get_stringnumber.3 +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_get_stringtable_entries.3 +0 -48
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_get_substring.3 +0 -55
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_get_substring_list.3 +0 -49
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_jit_exec.3 +0 -104
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_jit_stack_alloc.3 +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_jit_stack_free.3 +0 -35
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_maketables.3 +0 -33
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_pattern_to_host_byte_order.3 +0 -46
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_refcount.3 +0 -36
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_study.3 +0 -56
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_utf16_to_host_byte_order.3 +0 -46
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_utf32_to_host_byte_order.3 +0 -46
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_version.3 +0 -31
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcreapi.3 +0 -2823
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcrebuild.3 +0 -520
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcrecallout.3 +0 -214
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcrecompat.3 +0 -185
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcrecpp.3 +0 -348
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcregrep.1 +0 -679
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcregrep.txt +0 -740
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcrejit.3 +0 -437
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcrelimits.3 +0 -67
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcrematching.3 +0 -206
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcrepartial.3 +0 -445
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcrepattern.3 +0 -2983
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcreperform.3 +0 -177
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcreposix.3 +0 -270
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcreprecompile.3 +0 -151
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcresample.3 +0 -99
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcrestack.3 +0 -215
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcresyntax.3 +0 -496
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcretest.1 +0 -1079
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcretest.txt +0 -1012
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcreunicode.3 +0 -255
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/perltest.txt +0 -42
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/install-sh +0 -527
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/libpcre.pc.in +0 -12
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/libpcre16.pc.in +0 -12
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/libpcre32.pc.in +0 -12
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/libpcrecpp.pc.in +0 -12
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/libpcreposix.pc.in +0 -13
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/ltmain.sh +0 -9636
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/m4/ax_pthread.m4 +0 -309
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/m4/libtool.m4 +0 -7844
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/m4/ltoptions.m4 +0 -369
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/m4/ltsugar.m4 +0 -123
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/m4/ltversion.m4 +0 -23
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/m4/lt~obsolete.m4 +0 -98
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/m4/pcre_visibility.m4 +0 -89
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/makevp.bat +0 -66
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/makevp_c.txt +0 -20
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/makevp_l.txt +0 -20
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/missing +0 -331
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre-config.in +0 -133
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre.h +0 -653
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre.h.generic +0 -653
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre.h.in +0 -653
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_byte_order.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_chartables.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_compile.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_config.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_dfa_exec.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_exec.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_fullinfo.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_get.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_globals.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_jit_compile.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_maketables.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_newline.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_ord2utf16.c +0 -90
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_printint.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_refcount.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_string_utils.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_study.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_tables.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_ucd.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_utf16_utils.c +0 -130
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_valid_utf16.c +0 -156
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_version.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_xclass.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_byte_order.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_chartables.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_compile.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_config.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_dfa_exec.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_exec.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_fullinfo.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_get.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_globals.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_jit_compile.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_maketables.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_newline.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_ord2utf32.c +0 -82
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_printint.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_refcount.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_string_utils.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_study.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_tables.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_ucd.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_utf32_utils.c +0 -141
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_valid_utf32.c +0 -131
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_version.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_xclass.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_byte_order.c +0 -318
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_chartables.c +0 -198
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_chartables.c.dist +0 -198
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_compile.c +0 -8386
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_config.c +0 -186
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_dfa_exec.c +0 -3582
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_exec.c +0 -7049
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_fullinfo.c +0 -231
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_get.c +0 -662
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_globals.c +0 -84
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_internal.h +0 -2744
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_jit_compile.c +0 -8560
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_jit_test.c +0 -1614
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_maketables.c +0 -151
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_newline.c +0 -210
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_ord2utf8.c +0 -94
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_printint.c +0 -766
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_refcount.c +0 -92
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_scanner.cc +0 -199
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_scanner.h +0 -172
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_scanner_unittest.cc +0 -159
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_string_utils.c +0 -211
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_stringpiece.cc +0 -43
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_stringpiece.h.in +0 -179
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_stringpiece_unittest.cc +0 -150
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_study.c +0 -1562
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_tables.c +0 -655
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_ucd.c +0 -3298
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_valid_utf8.c +0 -312
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_version.c +0 -98
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_xclass.c +0 -198
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcrecpp.cc +0 -922
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcrecpp.h +0 -710
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcrecpp_internal.h +0 -71
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcrecpp_unittest.cc +0 -1291
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcrecpparg.h.in +0 -174
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcredemo.c +0 -406
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcregexp.pas +0 -845
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcregrep.c +0 -3180
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcreposix.c +0 -419
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcreposix.h +0 -146
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcretest.c +0 -5488
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/perltest.pl +0 -237
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitConfig.h +0 -110
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitConfigInternal.h +0 -484
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitExecAllocator.c +0 -289
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitLir.c +0 -1766
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitLir.h +0 -985
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitNativeARM_Thumb2.c +0 -2008
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitNativeARM_v5.c +0 -2515
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitNativeMIPS_32.c +0 -404
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitNativeMIPS_common.c +0 -1881
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitNativePPC_32.c +0 -269
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitNativePPC_64.c +0 -421
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitNativePPC_common.c +0 -2014
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitNativeSPARC_32.c +0 -164
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitNativeSPARC_common.c +0 -1348
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitNativeX86_32.c +0 -547
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitNativeX86_64.c +0 -810
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitNativeX86_common.c +0 -2836
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitUtils.c +0 -332
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/grepbinary +0 -0
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/grepfilelist +0 -3
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/grepinput +0 -611
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/grepinput3 +0 -15
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/grepinput8 +0 -11
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/grepinputv +0 -4
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/grepinputx +0 -43
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/greplist +0 -7
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/grepoutput +0 -707
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/grepoutput8 +0 -12
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/grepoutputN +0 -17
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/greppatN4 +0 -2
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/saved16 +0 -0
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/saved16BE-1 +0 -0
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/saved16BE-2 +0 -0
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/saved16LE-1 +0 -0
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/saved16LE-2 +0 -0
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/saved32 +0 -0
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/saved32BE-1 +0 -0
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/saved32BE-2 +0 -0
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/saved32LE-1 +0 -0
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/saved32LE-2 +0 -0
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/saved8 +0 -0
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput1 +0 -5306
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput10 +0 -1337
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput11 +0 -135
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput12 +0 -89
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput13 +0 -9
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput14 +0 -329
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput15 +0 -430
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput16 +0 -35
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput17 +0 -296
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput18 +0 -296
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput19 +0 -22
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput2 +0 -3813
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput20 +0 -19
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput21 +0 -16
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput22 +0 -13
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput23 +0 -16
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput24 +0 -77
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput25 +0 -32
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput26 +0 -80
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput3 +0 -95
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput4 +0 -624
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput5 +0 -772
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput6 +0 -1319
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput7 +0 -672
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput8 +0 -4801
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput9 +0 -717
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinputEBC +0 -121
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput1 +0 -8798
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput10 +0 -2726
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput11-16 +0 -713
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput11-32 +0 -713
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput11-8 +0 -713
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput12 +0 -181
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput13 +0 -21
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput14 +0 -476
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput15 +0 -1269
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput16 +0 -121
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput17 +0 -505
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput18-16 +0 -1022
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput18-32 +0 -1019
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput19 +0 -88
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput2 +0 -12484
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput20 +0 -27
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput21-16 +0 -90
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput21-32 +0 -90
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput22-16 +0 -71
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput22-32 +0 -71
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput23 +0 -42
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput24 +0 -145
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput25 +0 -79
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput26 +0 -148
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput3 +0 -169
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput4 +0 -1094
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput5 +0 -1849
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput6 +0 -2137
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput7 +0 -1473
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput8 +0 -8019
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput9 +0 -1371
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutputEBC +0 -182
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/wintestinput3 +0 -91
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/wintestoutput3 +0 -166
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/ucp.h +0 -197
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/run_test.rb +0 -23
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/src/mruby_regexp_pcre.c +0 -364
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/test/matchdata.rb +0 -94
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/test/regexp.rb +0 -264
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/test/string.rb +0 -201
@@ -1,67 +0,0 @@
|
|
1
|
-
#! /usr/bin/perl
|
2
|
-
|
3
|
-
# A script to scan PCRE's man pages to check for typos in the control
|
4
|
-
# sequences. I use only a small set of the available repertoire, so it is
|
5
|
-
# straightforward to check that nothing else has slipped in by mistake. This
|
6
|
-
# script should be called in the doc directory.
|
7
|
-
|
8
|
-
$yield = 0;
|
9
|
-
|
10
|
-
while (scalar(@ARGV) > 0)
|
11
|
-
{
|
12
|
-
$line = 0;
|
13
|
-
$file = shift @ARGV;
|
14
|
-
|
15
|
-
open (IN, $file) || die "Failed to open $file\n";
|
16
|
-
|
17
|
-
while (<IN>)
|
18
|
-
{
|
19
|
-
$line++;
|
20
|
-
if (/^\s*$/)
|
21
|
-
{
|
22
|
-
printf "Empty line $line of $file\n";
|
23
|
-
$yield = 1;
|
24
|
-
}
|
25
|
-
elsif (/^\./)
|
26
|
-
{
|
27
|
-
if (!/^\.\s*$|
|
28
|
-
^\.B\s+\S|
|
29
|
-
^\.TH\s\S|
|
30
|
-
^\.SH\s\S|
|
31
|
-
^\.SS\s\S|
|
32
|
-
^\.TP(?:\s\d+)?\s*$|
|
33
|
-
^\.ti\s\S|
|
34
|
-
^\.SM\s*$|
|
35
|
-
^\.rs\s*$|
|
36
|
-
^\.sp\s*$|
|
37
|
-
^\.nf\s*$|
|
38
|
-
^\.fi\s*$|
|
39
|
-
^\.P\s*$|
|
40
|
-
^\.PP\s*$|
|
41
|
-
^\.\\"(?:\ HREF)?\s*$|
|
42
|
-
^\.\\"\sHTML\s<a\shref="[^"]+?">\s*$|
|
43
|
-
^\.\\"\sHTML\s<a\sname="[^"]+?"><\/a>\s*$|
|
44
|
-
^\.\\"\s<\/a>\s*$|
|
45
|
-
^\.\\"\sJOINSH\s*$|
|
46
|
-
^\.\\"\sJOIN\s*$/x
|
47
|
-
)
|
48
|
-
{
|
49
|
-
printf "Bad control line $line of $file\n";
|
50
|
-
$yield = 1;
|
51
|
-
}
|
52
|
-
}
|
53
|
-
else
|
54
|
-
{
|
55
|
-
if (/\\[^ef]|\\f[^IBP]/)
|
56
|
-
{
|
57
|
-
printf "Bad backslash in line $line of $file\n";
|
58
|
-
$yield = 1;
|
59
|
-
}
|
60
|
-
}
|
61
|
-
}
|
62
|
-
|
63
|
-
close(IN);
|
64
|
-
}
|
65
|
-
|
66
|
-
exit $yield;
|
67
|
-
# End
|
@@ -1,113 +0,0 @@
|
|
1
|
-
#! /usr/bin/perl -w
|
2
|
-
|
3
|
-
# Script to take the output of nroff -man and remove all the backspacing and
|
4
|
-
# the page footers and the screen commands etc so that it is more usefully
|
5
|
-
# readable online. In fact, in the latest nroff, intermediate footers don't
|
6
|
-
# seem to be generated any more.
|
7
|
-
|
8
|
-
$blankcount = 0;
|
9
|
-
$lastwascut = 0;
|
10
|
-
$firstheader = 1;
|
11
|
-
|
12
|
-
# Input on STDIN; output to STDOUT.
|
13
|
-
|
14
|
-
while (<STDIN>)
|
15
|
-
{
|
16
|
-
s/\x1b\[\d+m//g; # Remove screen controls "ESC [ number m"
|
17
|
-
s/.\x8//g; # Remove "char, backspace"
|
18
|
-
|
19
|
-
# Handle header lines. Retain only the first one we encounter, but remove
|
20
|
-
# the blank line that follows. Any others (e.g. at end of document) and the
|
21
|
-
# following blank line are dropped.
|
22
|
-
|
23
|
-
if (/^PCRE(\w*)\(([13])\)\s+PCRE\1\(\2\)$/)
|
24
|
-
{
|
25
|
-
if ($firstheader)
|
26
|
-
{
|
27
|
-
$firstheader = 0;
|
28
|
-
print;
|
29
|
-
$lastprinted = $_;
|
30
|
-
$lastwascut = 0;
|
31
|
-
}
|
32
|
-
$_=<STDIN>; # Remove a blank that follows
|
33
|
-
next;
|
34
|
-
}
|
35
|
-
|
36
|
-
# Count runs of empty lines
|
37
|
-
|
38
|
-
if (/^\s*$/)
|
39
|
-
{
|
40
|
-
$blankcount++;
|
41
|
-
$lastwascut = 0;
|
42
|
-
next;
|
43
|
-
}
|
44
|
-
|
45
|
-
# If a chunk of lines has been cut out (page footer) and the next line
|
46
|
-
# has a different indentation, put back one blank line.
|
47
|
-
|
48
|
-
if ($lastwascut && $blankcount < 1 && defined($lastprinted))
|
49
|
-
{
|
50
|
-
($a) = $lastprinted =~ /^(\s*)/;
|
51
|
-
($b) = $_ =~ /^(\s*)/;
|
52
|
-
$blankcount++ if ($a ne $b);
|
53
|
-
}
|
54
|
-
|
55
|
-
# We get here only when we have a non-blank line in hand. If it was preceded
|
56
|
-
# by 3 or more blank lines, read the next 3 lines and see if they are blank.
|
57
|
-
# If so, remove all 7 lines, and remember that we have just done a cut.
|
58
|
-
|
59
|
-
if ($blankcount >= 3)
|
60
|
-
{
|
61
|
-
for ($i = 0; $i < 3; $i++)
|
62
|
-
{
|
63
|
-
$next[$i] = <STDIN>;
|
64
|
-
$next[$i] = "" if !defined $next[$i];
|
65
|
-
$next[$i] =~ s/\x1b\[\d+m//g; # Remove screen controls "ESC [ number m"
|
66
|
-
$next[$i] =~ s/.\x8//g; # Remove "char, backspace"
|
67
|
-
}
|
68
|
-
|
69
|
-
# Cut out chunks of the form <3 blanks><non-blank><3 blanks>
|
70
|
-
|
71
|
-
if ($next[0] =~ /^\s*$/ &&
|
72
|
-
$next[1] =~ /^\s*$/ &&
|
73
|
-
$next[2] =~ /^\s*$/)
|
74
|
-
{
|
75
|
-
$blankcount -= 3;
|
76
|
-
$lastwascut = 1;
|
77
|
-
}
|
78
|
-
|
79
|
-
# Otherwise output the saved blanks, the current, and the next three
|
80
|
-
# lines. Remember the last printed line.
|
81
|
-
|
82
|
-
else
|
83
|
-
{
|
84
|
-
for ($i = 0; $i < $blankcount; $i++) { print "\n"; }
|
85
|
-
print;
|
86
|
-
for ($i = 0; $i < 3; $i++)
|
87
|
-
{
|
88
|
-
$next[$i] =~ s/.\x8//g;
|
89
|
-
print $next[$i];
|
90
|
-
$lastprinted = $_;
|
91
|
-
}
|
92
|
-
$lastwascut = 0;
|
93
|
-
$blankcount = 0;
|
94
|
-
}
|
95
|
-
}
|
96
|
-
|
97
|
-
# This non-blank line is not preceded by 3 or more blank lines. Output
|
98
|
-
# any blanks there are, and the line. Remember it. Force two blank lines
|
99
|
-
# before headings.
|
100
|
-
|
101
|
-
else
|
102
|
-
{
|
103
|
-
$blankcount = 2 if /^\S/ && !/^Last updated/ && !/^Copyright/ &&
|
104
|
-
defined($lastprinted);
|
105
|
-
for ($i = 0; $i < $blankcount; $i++) { print "\n"; }
|
106
|
-
print;
|
107
|
-
$lastprinted = $_;
|
108
|
-
$lastwascut = 0;
|
109
|
-
$blankcount = 0;
|
110
|
-
}
|
111
|
-
}
|
112
|
-
|
113
|
-
# End
|
@@ -1,35 +0,0 @@
|
|
1
|
-
#!/usr/bin/perl
|
2
|
-
|
3
|
-
# This is a script for removing trailing whitespace from lines in files that
|
4
|
-
# are listed on the command line.
|
5
|
-
|
6
|
-
# This subroutine does the work for one file.
|
7
|
-
|
8
|
-
sub detrail {
|
9
|
-
my($file) = $_[0];
|
10
|
-
my($changed) = 0;
|
11
|
-
open(IN, "$file") || die "Can't open $file for input";
|
12
|
-
@lines = <IN>;
|
13
|
-
close(IN);
|
14
|
-
foreach (@lines)
|
15
|
-
{
|
16
|
-
if (/\s+\n$/)
|
17
|
-
{
|
18
|
-
s/\s+\n$/\n/;
|
19
|
-
$changed = 1;
|
20
|
-
}
|
21
|
-
}
|
22
|
-
if ($changed)
|
23
|
-
{
|
24
|
-
open(OUT, ">$file") || die "Can't open $file for output";
|
25
|
-
print OUT @lines;
|
26
|
-
close(OUT);
|
27
|
-
}
|
28
|
-
}
|
29
|
-
|
30
|
-
# This is the main program
|
31
|
-
|
32
|
-
$, = ""; # Output field separator
|
33
|
-
for ($i = 0; $i < @ARGV; $i++) { &detrail($ARGV[$i]); }
|
34
|
-
|
35
|
-
# End
|
@@ -1,473 +0,0 @@
|
|
1
|
-
Technical Notes about PCRE
|
2
|
-
--------------------------
|
3
|
-
|
4
|
-
These are very rough technical notes that record potentially useful information
|
5
|
-
about PCRE internals. For information about testing PCRE, see the pcretest
|
6
|
-
documentation and the comment at the head of the RunTest file.
|
7
|
-
|
8
|
-
|
9
|
-
Historical note 1
|
10
|
-
-----------------
|
11
|
-
|
12
|
-
Many years ago I implemented some regular expression functions to an algorithm
|
13
|
-
suggested by Martin Richards. These were not Unix-like in form, and were quite
|
14
|
-
restricted in what they could do by comparison with Perl. The interesting part
|
15
|
-
about the algorithm was that the amount of space required to hold the compiled
|
16
|
-
form of an expression was known in advance. The code to apply an expression did
|
17
|
-
not operate by backtracking, as the original Henry Spencer code and current
|
18
|
-
Perl code does, but instead checked all possibilities simultaneously by keeping
|
19
|
-
a list of current states and checking all of them as it advanced through the
|
20
|
-
subject string. In the terminology of Jeffrey Friedl's book, it was a "DFA
|
21
|
-
algorithm", though it was not a traditional Finite State Machine (FSM). When
|
22
|
-
the pattern was all used up, all remaining states were possible matches, and
|
23
|
-
the one matching the longest subset of the subject string was chosen. This did
|
24
|
-
not necessarily maximize the individual wild portions of the pattern, as is
|
25
|
-
expected in Unix and Perl-style regular expressions.
|
26
|
-
|
27
|
-
|
28
|
-
Historical note 2
|
29
|
-
-----------------
|
30
|
-
|
31
|
-
By contrast, the code originally written by Henry Spencer (which was
|
32
|
-
subsequently heavily modified for Perl) compiles the expression twice: once in
|
33
|
-
a dummy mode in order to find out how much store will be needed, and then for
|
34
|
-
real. (The Perl version probably doesn't do this any more; I'm talking about
|
35
|
-
the original library.) The execution function operates by backtracking and
|
36
|
-
maximizing (or, optionally, minimizing in Perl) the amount of the subject that
|
37
|
-
matches individual wild portions of the pattern. This is an "NFA algorithm" in
|
38
|
-
Friedl's terminology.
|
39
|
-
|
40
|
-
|
41
|
-
OK, here's the real stuff
|
42
|
-
-------------------------
|
43
|
-
|
44
|
-
For the set of functions that form the "basic" PCRE library (which are
|
45
|
-
unrelated to those mentioned above), I tried at first to invent an algorithm
|
46
|
-
that used an amount of store bounded by a multiple of the number of characters
|
47
|
-
in the pattern, to save on compiling time. However, because of the greater
|
48
|
-
complexity in Perl regular expressions, I couldn't do this. In any case, a
|
49
|
-
first pass through the pattern is helpful for other reasons.
|
50
|
-
|
51
|
-
|
52
|
-
Support for 16-bit and 32-bit data strings
|
53
|
-
-------------------------------------------
|
54
|
-
|
55
|
-
From release 8.30, PCRE supports 16-bit as well as 8-bit data strings; and from
|
56
|
-
release 8.32, PCRE supports 32-bit data strings. The library can be compiled
|
57
|
-
in any combination of 8-bit, 16-bit or 32-bit modes, creating different
|
58
|
-
libraries. In the description that follows, the word "short" is
|
59
|
-
used for a 16-bit data quantity, and the word "unit" is used for a quantity
|
60
|
-
that is a byte in 8-bit mode, a short in 16-bit mode and a 32-bit unsigned
|
61
|
-
integer in 32-bit mode. However, so as not to over-complicate the text, the
|
62
|
-
names of PCRE functions are given in 8-bit form only.
|
63
|
-
|
64
|
-
|
65
|
-
Computing the memory requirement: how it was
|
66
|
-
--------------------------------------------
|
67
|
-
|
68
|
-
Up to and including release 6.7, PCRE worked by running a very degenerate first
|
69
|
-
pass to calculate a maximum store size, and then a second pass to do the real
|
70
|
-
compile - which might use a bit less than the predicted amount of memory. The
|
71
|
-
idea was that this would turn out faster than the Henry Spencer code because
|
72
|
-
the first pass is degenerate and the second pass can just store stuff straight
|
73
|
-
into the vector, which it knows is big enough.
|
74
|
-
|
75
|
-
|
76
|
-
Computing the memory requirement: how it is
|
77
|
-
-------------------------------------------
|
78
|
-
|
79
|
-
By the time I was working on a potential 6.8 release, the degenerate first pass
|
80
|
-
had become very complicated and hard to maintain. Indeed one of the early
|
81
|
-
things I did for 6.8 was to fix Yet Another Bug in the memory computation. Then
|
82
|
-
I had a flash of inspiration as to how I could run the real compile function in
|
83
|
-
a "fake" mode that enables it to compute how much memory it would need, while
|
84
|
-
actually only ever using a few hundred bytes of working memory, and without too
|
85
|
-
many tests of the mode that might slow it down. So I refactored the compiling
|
86
|
-
functions to work this way. This got rid of about 600 lines of source. It
|
87
|
-
should make future maintenance and development easier. As this was such a major
|
88
|
-
change, I never released 6.8, instead upping the number to 7.0 (other quite
|
89
|
-
major changes were also present in the 7.0 release).
|
90
|
-
|
91
|
-
A side effect of this work was that the previous limit of 200 on the nesting
|
92
|
-
depth of parentheses was removed. However, there is a downside: pcre_compile()
|
93
|
-
runs more slowly than before (30% or more, depending on the pattern) because it
|
94
|
-
is doing a full analysis of the pattern. My hope was that this would not be a
|
95
|
-
big issue, and in the event, nobody has commented on it.
|
96
|
-
|
97
|
-
|
98
|
-
Traditional matching function
|
99
|
-
-----------------------------
|
100
|
-
|
101
|
-
The "traditional", and original, matching function is called pcre_exec(), and
|
102
|
-
it implements an NFA algorithm, similar to the original Henry Spencer algorithm
|
103
|
-
and the way that Perl works. This is not surprising, since it is intended to be
|
104
|
-
as compatible with Perl as possible. This is the function most users of PCRE
|
105
|
-
will use most of the time. From release 8.20, if PCRE is compiled with
|
106
|
-
just-in-time (JIT) support, and studying a compiled pattern with JIT is
|
107
|
-
successful, the JIT code is run instead of the normal pcre_exec() code, but the
|
108
|
-
result is the same.
|
109
|
-
|
110
|
-
|
111
|
-
Supplementary matching function
|
112
|
-
-------------------------------
|
113
|
-
|
114
|
-
From PCRE 6.0, there is also a supplementary matching function called
|
115
|
-
pcre_dfa_exec(). This implements a DFA matching algorithm that searches
|
116
|
-
simultaneously for all possible matches that start at one point in the subject
|
117
|
-
string. (Going back to my roots: see Historical Note 1 above.) This function
|
118
|
-
intreprets the same compiled pattern data as pcre_exec(); however, not all the
|
119
|
-
facilities are available, and those that are do not always work in quite the
|
120
|
-
same way. See the user documentation for details.
|
121
|
-
|
122
|
-
The algorithm that is used for pcre_dfa_exec() is not a traditional FSM,
|
123
|
-
because it may have a number of states active at one time. More work would be
|
124
|
-
needed at compile time to produce a traditional FSM where only one state is
|
125
|
-
ever active at once. I believe some other regex matchers work this way.
|
126
|
-
|
127
|
-
|
128
|
-
Changeable options
|
129
|
-
------------------
|
130
|
-
|
131
|
-
The /i, /m, or /s options (PCRE_CASELESS, PCRE_MULTILINE, PCRE_DOTALL) may
|
132
|
-
change in the middle of patterns. From PCRE 8.13, their processing is handled
|
133
|
-
entirely at compile time by generating different opcodes for the different
|
134
|
-
settings. The runtime functions do not need to keep track of an options state
|
135
|
-
any more.
|
136
|
-
|
137
|
-
|
138
|
-
Format of compiled patterns
|
139
|
-
---------------------------
|
140
|
-
|
141
|
-
The compiled form of a pattern is a vector of units (bytes in 8-bit mode, or
|
142
|
-
shorts in 16-bit mode, 32-bit unsigned integers in 32-bit mode), containing
|
143
|
-
items of variable length. The first unit in an item contains an opcode, and
|
144
|
-
the length of the item is either implicit in the opcode or contained in the
|
145
|
-
data that follows it.
|
146
|
-
|
147
|
-
In many cases listed below, LINK_SIZE data values are specified for offsets
|
148
|
-
within the compiled pattern. LINK_SIZE always specifies a number of bytes. The
|
149
|
-
default value for LINK_SIZE is 2, but PCRE can be compiled to use 3-byte or
|
150
|
-
4-byte values for these offsets, although this impairs the performance. (3-byte
|
151
|
-
LINK_SIZE values are available only in 8-bit mode.) Specifing a LINK_SIZE
|
152
|
-
larger than 2 is necessary only when patterns whose compiled length is greater
|
153
|
-
than 64K are going to be processed. In this description, we assume the "normal"
|
154
|
-
compilation options. Data values that are counts (e.g. for quantifiers) are
|
155
|
-
always just two bytes long (one short in 16-bit mode).
|
156
|
-
|
157
|
-
Opcodes with no following data
|
158
|
-
------------------------------
|
159
|
-
|
160
|
-
These items are all just one unit long
|
161
|
-
|
162
|
-
OP_END end of pattern
|
163
|
-
OP_ANY match any one character other than newline
|
164
|
-
OP_ALLANY match any one character, including newline
|
165
|
-
OP_ANYBYTE match any single byte, even in UTF-8 mode
|
166
|
-
OP_SOD match start of data: \A
|
167
|
-
OP_SOM, start of match (subject + offset): \G
|
168
|
-
OP_SET_SOM, set start of match (\K)
|
169
|
-
OP_CIRC ^ (start of data)
|
170
|
-
OP_CIRCM ^ multiline mode (start of data or after newline)
|
171
|
-
OP_NOT_WORD_BOUNDARY \W
|
172
|
-
OP_WORD_BOUNDARY \w
|
173
|
-
OP_NOT_DIGIT \D
|
174
|
-
OP_DIGIT \d
|
175
|
-
OP_NOT_HSPACE \H
|
176
|
-
OP_HSPACE \h
|
177
|
-
OP_NOT_WHITESPACE \S
|
178
|
-
OP_WHITESPACE \s
|
179
|
-
OP_NOT_VSPACE \V
|
180
|
-
OP_VSPACE \v
|
181
|
-
OP_NOT_WORDCHAR \W
|
182
|
-
OP_WORDCHAR \w
|
183
|
-
OP_EODN match end of data or \n at end: \Z
|
184
|
-
OP_EOD match end of data: \z
|
185
|
-
OP_DOLL $ (end of data, or before final newline)
|
186
|
-
OP_DOLLM $ multiline mode (end of data or before newline)
|
187
|
-
OP_EXTUNI match an extended Unicode character
|
188
|
-
OP_ANYNL match any Unicode newline sequence
|
189
|
-
|
190
|
-
OP_ACCEPT ) These are Perl 5.10's "backtracking control
|
191
|
-
OP_COMMIT ) verbs". If OP_ACCEPT is inside capturing
|
192
|
-
OP_FAIL ) parentheses, it may be preceded by one or more
|
193
|
-
OP_PRUNE ) OP_CLOSE, followed by a 2-byte number,
|
194
|
-
OP_SKIP ) indicating which parentheses must be closed.
|
195
|
-
|
196
|
-
|
197
|
-
Backtracking control verbs with (optional) data
|
198
|
-
-----------------------------------------------
|
199
|
-
|
200
|
-
(*THEN) without an argument generates the opcode OP_THEN and no following data.
|
201
|
-
OP_MARK is followed by the mark name, preceded by a one-unit length, and
|
202
|
-
followed by a binary zero. For (*PRUNE), (*SKIP), and (*THEN) with arguments,
|
203
|
-
the opcodes OP_PRUNE_ARG, OP_SKIP_ARG, and OP_THEN_ARG are used, with the name
|
204
|
-
following in the same format.
|
205
|
-
|
206
|
-
|
207
|
-
Matching literal characters
|
208
|
-
---------------------------
|
209
|
-
|
210
|
-
The OP_CHAR opcode is followed by a single character that is to be matched
|
211
|
-
casefully. For caseless matching, OP_CHARI is used. In UTF-8 or UTF-16 modes,
|
212
|
-
the character may be more than one unit long. In UTF-32 mode, characters
|
213
|
-
are always exactly one unit long.
|
214
|
-
|
215
|
-
|
216
|
-
Repeating single characters
|
217
|
-
---------------------------
|
218
|
-
|
219
|
-
The common repeats (*, +, ?), when applied to a single character, use the
|
220
|
-
following opcodes, which come in caseful and caseless versions:
|
221
|
-
|
222
|
-
Caseful Caseless
|
223
|
-
OP_STAR OP_STARI
|
224
|
-
OP_MINSTAR OP_MINSTARI
|
225
|
-
OP_POSSTAR OP_POSSTARI
|
226
|
-
OP_PLUS OP_PLUSI
|
227
|
-
OP_MINPLUS OP_MINPLUSI
|
228
|
-
OP_POSPLUS OP_POSPLUSI
|
229
|
-
OP_QUERY OP_QUERYI
|
230
|
-
OP_MINQUERY OP_MINQUERYI
|
231
|
-
OP_POSQUERY OP_POSQUERYI
|
232
|
-
|
233
|
-
Each opcode is followed by the character that is to be repeated. In ASCII mode,
|
234
|
-
these are two-unit items; in UTF-8 or UTF-16 modes, the length is variable; in
|
235
|
-
UTF-32 mode these are one-unit items.
|
236
|
-
Those with "MIN" in their names are the minimizing versions. Those with "POS"
|
237
|
-
in their names are possessive versions. Other repeats make use of these
|
238
|
-
opcodes:
|
239
|
-
|
240
|
-
Caseful Caseless
|
241
|
-
OP_UPTO OP_UPTOI
|
242
|
-
OP_MINUPTO OP_MINUPTOI
|
243
|
-
OP_POSUPTO OP_POSUPTOI
|
244
|
-
OP_EXACT OP_EXACTI
|
245
|
-
|
246
|
-
Each of these is followed by a two-byte (one short) count (most significant
|
247
|
-
byte first in 8-bit mode) and then the repeated character. OP_UPTO matches from
|
248
|
-
0 to the given number. A repeat with a non-zero minimum and a fixed maximum is
|
249
|
-
coded as an OP_EXACT followed by an OP_UPTO (or OP_MINUPTO or OPT_POSUPTO).
|
250
|
-
|
251
|
-
|
252
|
-
Repeating character types
|
253
|
-
-------------------------
|
254
|
-
|
255
|
-
Repeats of things like \d are done exactly as for single characters, except
|
256
|
-
that instead of a character, the opcode for the type is stored in the data
|
257
|
-
unit. The opcodes are:
|
258
|
-
|
259
|
-
OP_TYPESTAR
|
260
|
-
OP_TYPEMINSTAR
|
261
|
-
OP_TYPEPOSSTAR
|
262
|
-
OP_TYPEPLUS
|
263
|
-
OP_TYPEMINPLUS
|
264
|
-
OP_TYPEPOSPLUS
|
265
|
-
OP_TYPEQUERY
|
266
|
-
OP_TYPEMINQUERY
|
267
|
-
OP_TYPEPOSQUERY
|
268
|
-
OP_TYPEUPTO
|
269
|
-
OP_TYPEMINUPTO
|
270
|
-
OP_TYPEPOSUPTO
|
271
|
-
OP_TYPEEXACT
|
272
|
-
|
273
|
-
|
274
|
-
Match by Unicode property
|
275
|
-
-------------------------
|
276
|
-
|
277
|
-
OP_PROP and OP_NOTPROP are used for positive and negative matches of a
|
278
|
-
character by testing its Unicode property (the \p and \P escape sequences).
|
279
|
-
Each is followed by two units that encode the desired property as a type and a
|
280
|
-
value.
|
281
|
-
|
282
|
-
Repeats of these items use the OP_TYPESTAR etc. set of opcodes, followed by
|
283
|
-
three units: OP_PROP or OP_NOTPROP, and then the desired property type and
|
284
|
-
value.
|
285
|
-
|
286
|
-
|
287
|
-
Character classes
|
288
|
-
-----------------
|
289
|
-
|
290
|
-
If there is only one character in the class, OP_CHAR or OP_CHARI is used for a
|
291
|
-
positive class, and OP_NOT or OP_NOTI for a negative one (that is, for
|
292
|
-
something like [^a]).
|
293
|
-
|
294
|
-
Another set of 13 repeating opcodes (called OP_NOTSTAR etc.) are used for
|
295
|
-
repeated, negated, single-character classes. The normal single-character
|
296
|
-
opcodes (OP_STAR, etc.) are used for repeated positive single-character
|
297
|
-
classes.
|
298
|
-
|
299
|
-
When there is more than one character in a class and all the characters are
|
300
|
-
less than 256, OP_CLASS is used for a positive class, and OP_NCLASS for a
|
301
|
-
negative one. In either case, the opcode is followed by a 32-byte (16-short)
|
302
|
-
bit map containing a 1 bit for every character that is acceptable. The bits are
|
303
|
-
counted from the least significant end of each unit. In caseless mode, bits for
|
304
|
-
both cases are set.
|
305
|
-
|
306
|
-
The reason for having both OP_CLASS and OP_NCLASS is so that, in UTF-8/16/32 mode,
|
307
|
-
subject characters with values greater than 255 can be handled correctly. For
|
308
|
-
OP_CLASS they do not match, whereas for OP_NCLASS they do.
|
309
|
-
|
310
|
-
For classes containing characters with values greater than 255, OP_XCLASS is
|
311
|
-
used. It optionally uses a bit map (if any characters lie within it), followed
|
312
|
-
by a list of pairs (for a range) and single characters. In caseless mode, both
|
313
|
-
cases are explicitly listed. There is a flag character than indicates whether
|
314
|
-
it is a positive or a negative class.
|
315
|
-
|
316
|
-
|
317
|
-
Back references
|
318
|
-
---------------
|
319
|
-
|
320
|
-
OP_REF (caseful) or OP_REFI (caseless) is followed by two bytes (one short)
|
321
|
-
containing the reference number.
|
322
|
-
|
323
|
-
|
324
|
-
Repeating character classes and back references
|
325
|
-
-----------------------------------------------
|
326
|
-
|
327
|
-
Single-character classes are handled specially (see above). This section
|
328
|
-
applies to OP_CLASS and OP_REF[I]. In both cases, the repeat information
|
329
|
-
follows the base item. The matching code looks at the following opcode to see
|
330
|
-
if it is one of
|
331
|
-
|
332
|
-
OP_CRSTAR
|
333
|
-
OP_CRMINSTAR
|
334
|
-
OP_CRPLUS
|
335
|
-
OP_CRMINPLUS
|
336
|
-
OP_CRQUERY
|
337
|
-
OP_CRMINQUERY
|
338
|
-
OP_CRRANGE
|
339
|
-
OP_CRMINRANGE
|
340
|
-
|
341
|
-
All but the last two are just single-unit items. The others are followed by
|
342
|
-
four bytes (two shorts) of data, comprising the minimum and maximum repeat
|
343
|
-
counts. There are no special possessive opcodes for these repeats; a possessive
|
344
|
-
repeat is compiled into an atomic group.
|
345
|
-
|
346
|
-
|
347
|
-
Brackets and alternation
|
348
|
-
------------------------
|
349
|
-
|
350
|
-
A pair of non-capturing (round) brackets is wrapped round each expression at
|
351
|
-
compile time, so alternation always happens in the context of brackets.
|
352
|
-
|
353
|
-
[Note for North Americans: "bracket" to some English speakers, including
|
354
|
-
myself, can be round, square, curly, or pointy. Hence this usage rather than
|
355
|
-
"parentheses".]
|
356
|
-
|
357
|
-
Non-capturing brackets use the opcode OP_BRA. Originally PCRE was limited to 99
|
358
|
-
capturing brackets and it used a different opcode for each one. From release
|
359
|
-
3.5, the limit was removed by putting the bracket number into the data for
|
360
|
-
higher-numbered brackets. From release 7.0 all capturing brackets are handled
|
361
|
-
this way, using the single opcode OP_CBRA.
|
362
|
-
|
363
|
-
A bracket opcode is followed by LINK_SIZE bytes which give the offset to the
|
364
|
-
next alternative OP_ALT or, if there aren't any branches, to the matching
|
365
|
-
OP_KET opcode. Each OP_ALT is followed by LINK_SIZE bytes giving the offset to
|
366
|
-
the next one, or to the OP_KET opcode. For capturing brackets, the bracket
|
367
|
-
number immediately follows the offset, always as a 2-byte (one short) item.
|
368
|
-
|
369
|
-
OP_KET is used for subpatterns that do not repeat indefinitely, and
|
370
|
-
OP_KETRMIN and OP_KETRMAX are used for indefinite repetitions, minimally or
|
371
|
-
maximally respectively (see below for possessive repetitions). All three are
|
372
|
-
followed by LINK_SIZE bytes giving (as a positive number) the offset back to
|
373
|
-
the matching bracket opcode.
|
374
|
-
|
375
|
-
If a subpattern is quantified such that it is permitted to match zero times, it
|
376
|
-
is preceded by one of OP_BRAZERO, OP_BRAMINZERO, or OP_SKIPZERO. These are
|
377
|
-
single-unit opcodes that tell the matcher that skipping the following
|
378
|
-
subpattern entirely is a valid branch. In the case of the first two, not
|
379
|
-
skipping the pattern is also valid (greedy and non-greedy). The third is used
|
380
|
-
when a pattern has the quantifier {0,0}. It cannot be entirely discarded,
|
381
|
-
because it may be called as a subroutine from elsewhere in the regex.
|
382
|
-
|
383
|
-
A subpattern with an indefinite maximum repetition is replicated in the
|
384
|
-
compiled data its minimum number of times (or once with OP_BRAZERO if the
|
385
|
-
minimum is zero), with the final copy terminating with OP_KETRMIN or OP_KETRMAX
|
386
|
-
as appropriate.
|
387
|
-
|
388
|
-
A subpattern with a bounded maximum repetition is replicated in a nested
|
389
|
-
fashion up to the maximum number of times, with OP_BRAZERO or OP_BRAMINZERO
|
390
|
-
before each replication after the minimum, so that, for example, (abc){2,5} is
|
391
|
-
compiled as (abc)(abc)((abc)((abc)(abc)?)?)?, except that each bracketed group
|
392
|
-
has the same number.
|
393
|
-
|
394
|
-
When a repeated subpattern has an unbounded upper limit, it is checked to see
|
395
|
-
whether it could match an empty string. If this is the case, the opcode in the
|
396
|
-
final replication is changed to OP_SBRA or OP_SCBRA. This tells the matcher
|
397
|
-
that it needs to check for matching an empty string when it hits OP_KETRMIN or
|
398
|
-
OP_KETRMAX, and if so, to break the loop.
|
399
|
-
|
400
|
-
Possessive brackets
|
401
|
-
-------------------
|
402
|
-
|
403
|
-
When a repeated group (capturing or non-capturing) is marked as possessive by
|
404
|
-
the "+" notation, e.g. (abc)++, different opcodes are used. Their names all
|
405
|
-
have POS on the end, e.g. OP_BRAPOS instead of OP_BRA and OP_SCPBRPOS instead
|
406
|
-
of OP_SCBRA. The end of such a group is marked by OP_KETRPOS. If the minimum
|
407
|
-
repetition is zero, the group is preceded by OP_BRAPOSZERO.
|
408
|
-
|
409
|
-
|
410
|
-
Assertions
|
411
|
-
----------
|
412
|
-
|
413
|
-
Forward assertions are just like other subpatterns, but starting with one of
|
414
|
-
the opcodes OP_ASSERT or OP_ASSERT_NOT. Backward assertions use the opcodes
|
415
|
-
OP_ASSERTBACK and OP_ASSERTBACK_NOT, and the first opcode inside the assertion
|
416
|
-
is OP_REVERSE, followed by a two byte (one short) count of the number of
|
417
|
-
characters to move back the pointer in the subject string. In ASCII mode, the
|
418
|
-
count is a number of units, but in UTF-8/16 mode each character may occupy more
|
419
|
-
than one unit; in UTF-32 mode each character occupies exactly one unit.
|
420
|
-
A separate count is present in each alternative of a lookbehind
|
421
|
-
assertion, allowing them to have different fixed lengths.
|
422
|
-
|
423
|
-
|
424
|
-
Once-only (atomic) subpatterns
|
425
|
-
------------------------------
|
426
|
-
|
427
|
-
These are also just like other subpatterns, but they start with the opcode
|
428
|
-
OP_ONCE. The check for matching an empty string in an unbounded repeat is
|
429
|
-
handled entirely at runtime, so there is just this one opcode.
|
430
|
-
|
431
|
-
|
432
|
-
Conditional subpatterns
|
433
|
-
-----------------------
|
434
|
-
|
435
|
-
These are like other subpatterns, but they start with the opcode OP_COND, or
|
436
|
-
OP_SCOND for one that might match an empty string in an unbounded repeat. If
|
437
|
-
the condition is a back reference, this is stored at the start of the
|
438
|
-
subpattern using the opcode OP_CREF followed by two bytes (one short)
|
439
|
-
containing the reference number. OP_NCREF is used instead if the reference was
|
440
|
-
generated by name (so that the runtime code knows to check for duplicate
|
441
|
-
names).
|
442
|
-
|
443
|
-
If the condition is "in recursion" (coded as "(?(R)"), or "in recursion of
|
444
|
-
group x" (coded as "(?(Rx)"), the group number is stored at the start of the
|
445
|
-
subpattern using the opcode OP_RREF or OP_NRREF (cf OP_NCREF), and a value of
|
446
|
-
zero for "the whole pattern". For a DEFINE condition, just the single unit
|
447
|
-
OP_DEF is used (it has no associated data). Otherwise, a conditional subpattern
|
448
|
-
always starts with one of the assertions.
|
449
|
-
|
450
|
-
|
451
|
-
Recursion
|
452
|
-
---------
|
453
|
-
|
454
|
-
Recursion either matches the current regex, or some subexpression. The opcode
|
455
|
-
OP_RECURSE is followed by an value which is the offset to the starting bracket
|
456
|
-
from the start of the whole pattern. From release 6.5, OP_RECURSE is
|
457
|
-
automatically wrapped inside OP_ONCE brackets (because otherwise some patterns
|
458
|
-
broke it). OP_RECURSE is also used for "subroutine" calls, even though they
|
459
|
-
are not strictly a recursion.
|
460
|
-
|
461
|
-
|
462
|
-
Callout
|
463
|
-
-------
|
464
|
-
|
465
|
-
OP_CALLOUT is followed by one unit of data that holds a callout number in the
|
466
|
-
range 0 to 254 for manual callouts, or 255 for an automatic callout. In both
|
467
|
-
cases there follows a two-byte (one short) value giving the offset in the
|
468
|
-
pattern to the start of the following item, and another two-byte (one short)
|
469
|
-
item giving the length of the next item.
|
470
|
-
|
471
|
-
|
472
|
-
Philip Hazel
|
473
|
-
February 2012
|