debase-ruby_core_source 0.7.4 → 0.7.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/lib/debase/ruby_core_source/{ruby-2.2.0-preview1 → ruby-2.2.0-p0}/addr2line.h +0 -0
  4. data/lib/debase/ruby_core_source/{ruby-2.2.0-preview1 → ruby-2.2.0-p0}/ccan/build_assert/build_assert.h +0 -0
  5. data/lib/debase/ruby_core_source/{ruby-2.2.0-preview1 → ruby-2.2.0-p0}/ccan/check_type/check_type.h +0 -0
  6. data/lib/debase/ruby_core_source/{ruby-2.2.0-preview1 → ruby-2.2.0-p0}/ccan/container_of/container_of.h +0 -0
  7. data/lib/debase/ruby_core_source/{ruby-2.2.0-preview1 → ruby-2.2.0-p0}/ccan/list/list.h +0 -0
  8. data/lib/debase/ruby_core_source/{ruby-2.2.0-preview1 → ruby-2.2.0-p0}/ccan/str/str.h +0 -0
  9. data/lib/debase/ruby_core_source/{ruby-2.2.0-preview2 → ruby-2.2.0-p0}/constant.h +0 -0
  10. data/lib/debase/ruby_core_source/{ruby-2.2.0-preview1 → ruby-2.2.0-p0}/dln.h +0 -0
  11. data/lib/debase/ruby_core_source/{ruby-2.2.0-preview1 → ruby-2.2.0-p0}/eval_intern.h +0 -0
  12. data/lib/debase/ruby_core_source/{ruby-2.2.0-preview1 → ruby-2.2.0-p0}/gc.h +0 -0
  13. data/lib/debase/ruby_core_source/{ruby-2.2.0-preview2 → ruby-2.2.0-p0}/id.h +0 -0
  14. data/lib/debase/ruby_core_source/{ruby-2.2.0-preview2 → ruby-2.2.0-p0}/insns.inc +0 -0
  15. data/lib/debase/ruby_core_source/{ruby-2.2.0-preview2 → ruby-2.2.0-p0}/insns_info.inc +0 -0
  16. data/lib/debase/ruby_core_source/{ruby-2.2.0-rc1 → ruby-2.2.0-p0}/internal.h +3 -0
  17. data/lib/debase/ruby_core_source/{ruby-2.2.0-rc1 → ruby-2.2.0-p0}/iseq.h +0 -0
  18. data/lib/debase/ruby_core_source/{ruby-2.2.0-preview2 → ruby-2.2.0-p0}/known_errors.inc +0 -0
  19. data/lib/debase/ruby_core_source/{ruby-2.2.0-preview1 → ruby-2.2.0-p0}/method.h +0 -0
  20. data/lib/debase/ruby_core_source/{ruby-2.2.0-preview2 → ruby-2.2.0-p0}/node.h +0 -0
  21. data/lib/debase/ruby_core_source/{ruby-2.2.0-preview1 → ruby-2.2.0-p0}/node_name.inc +0 -0
  22. data/lib/debase/ruby_core_source/{ruby-2.2.0-preview2 → ruby-2.2.0-p0}/opt_sc.inc +0 -0
  23. data/lib/debase/ruby_core_source/{ruby-2.2.0-preview1 → ruby-2.2.0-p0}/optinsn.inc +0 -0
  24. data/lib/debase/ruby_core_source/{ruby-2.2.0-preview2 → ruby-2.2.0-p0}/optunifs.inc +0 -0
  25. data/lib/debase/ruby_core_source/{ruby-2.2.0-preview2 → ruby-2.2.0-p0}/parse.h +0 -0
  26. data/lib/debase/ruby_core_source/{ruby-2.2.0-preview1 → ruby-2.2.0-p0}/probes_helper.h +0 -0
  27. data/lib/debase/ruby_core_source/{ruby-2.2.0-preview1 → ruby-2.2.0-p0}/regenc.h +0 -0
  28. data/lib/debase/ruby_core_source/{ruby-2.2.0-preview2 → ruby-2.2.0-p0}/regint.h +0 -0
  29. data/lib/debase/ruby_core_source/{ruby-2.2.0-preview1 → ruby-2.2.0-p0}/regparse.h +0 -0
  30. data/lib/debase/ruby_core_source/ruby-2.2.0-p0/revision.h +1 -0
  31. data/lib/debase/ruby_core_source/{ruby-2.2.0-preview2 → ruby-2.2.0-p0}/ruby_atomic.h +0 -0
  32. data/lib/debase/ruby_core_source/{ruby-2.2.0-preview1 → ruby-2.2.0-p0}/siphash.h +0 -0
  33. data/lib/debase/ruby_core_source/{ruby-2.2.0-preview2 → ruby-2.2.0-p0}/symbol.h +0 -0
  34. data/lib/debase/ruby_core_source/{ruby-2.2.0-preview1 → ruby-2.2.0-p0}/thread_pthread.h +0 -0
  35. data/lib/debase/ruby_core_source/{ruby-2.2.0-preview1 → ruby-2.2.0-p0}/thread_win32.h +0 -0
  36. data/lib/debase/ruby_core_source/{ruby-2.2.0-preview1 → ruby-2.2.0-p0}/timev.h +0 -0
  37. data/lib/debase/ruby_core_source/{ruby-2.2.0-preview1 → ruby-2.2.0-p0}/transcode_data.h +0 -0
  38. data/lib/debase/ruby_core_source/{ruby-2.2.0-rc1 → ruby-2.2.0-p0}/version.h +4 -5
  39. data/lib/debase/ruby_core_source/{ruby-2.2.0-preview2 → ruby-2.2.0-p0}/vm.inc +0 -0
  40. data/lib/debase/ruby_core_source/{ruby-2.2.0-rc1 → ruby-2.2.0-p0}/vm_core.h +0 -0
  41. data/lib/debase/ruby_core_source/{ruby-2.2.0-preview1 → ruby-2.2.0-p0}/vm_debug.h +0 -0
  42. data/lib/debase/ruby_core_source/{ruby-2.2.0-preview1 → ruby-2.2.0-p0}/vm_exec.h +0 -0
  43. data/lib/debase/ruby_core_source/{ruby-2.2.0-preview1 → ruby-2.2.0-p0}/vm_insnhelper.h +0 -0
  44. data/lib/debase/ruby_core_source/{ruby-2.2.0-preview1 → ruby-2.2.0-p0}/vm_opts.h +0 -0
  45. data/lib/debase/ruby_core_source/{ruby-2.2.0-preview2 → ruby-2.2.0-p0}/vmtc.inc +0 -0
  46. data/lib/debase/ruby_core_source/version.rb +1 -1
  47. metadata +45 -133
  48. data/lib/debase/ruby_core_source/ruby-2.2.0-preview1/constant.h +0 -37
  49. data/lib/debase/ruby_core_source/ruby-2.2.0-preview1/encdb.h +0 -170
  50. data/lib/debase/ruby_core_source/ruby-2.2.0-preview1/id.h +0 -198
  51. data/lib/debase/ruby_core_source/ruby-2.2.0-preview1/insns.inc +0 -193
  52. data/lib/debase/ruby_core_source/ruby-2.2.0-preview1/insns_info.inc +0 -745
  53. data/lib/debase/ruby_core_source/ruby-2.2.0-preview1/internal.h +0 -1094
  54. data/lib/debase/ruby_core_source/ruby-2.2.0-preview1/iseq.h +0 -157
  55. data/lib/debase/ruby_core_source/ruby-2.2.0-preview1/known_errors.inc +0 -731
  56. data/lib/debase/ruby_core_source/ruby-2.2.0-preview1/node.h +0 -544
  57. data/lib/debase/ruby_core_source/ruby-2.2.0-preview1/opt_sc.inc +0 -726
  58. data/lib/debase/ruby_core_source/ruby-2.2.0-preview1/optunifs.inc +0 -123
  59. data/lib/debase/ruby_core_source/ruby-2.2.0-preview1/parse.h +0 -202
  60. data/lib/debase/ruby_core_source/ruby-2.2.0-preview1/regint.h +0 -972
  61. data/lib/debase/ruby_core_source/ruby-2.2.0-preview1/revision.h +0 -1
  62. data/lib/debase/ruby_core_source/ruby-2.2.0-preview1/ruby_atomic.h +0 -170
  63. data/lib/debase/ruby_core_source/ruby-2.2.0-preview1/symbol.h +0 -54
  64. data/lib/debase/ruby_core_source/ruby-2.2.0-preview1/transdb.h +0 -193
  65. data/lib/debase/ruby_core_source/ruby-2.2.0-preview1/version.h +0 -53
  66. data/lib/debase/ruby_core_source/ruby-2.2.0-preview1/vm.inc +0 -3317
  67. data/lib/debase/ruby_core_source/ruby-2.2.0-preview1/vm_core.h +0 -1120
  68. data/lib/debase/ruby_core_source/ruby-2.2.0-preview1/vmtc.inc +0 -104
  69. data/lib/debase/ruby_core_source/ruby-2.2.0-preview2/addr2line.h +0 -21
  70. data/lib/debase/ruby_core_source/ruby-2.2.0-preview2/ccan/build_assert/build_assert.h +0 -40
  71. data/lib/debase/ruby_core_source/ruby-2.2.0-preview2/ccan/check_type/check_type.h +0 -63
  72. data/lib/debase/ruby_core_source/ruby-2.2.0-preview2/ccan/container_of/container_of.h +0 -142
  73. data/lib/debase/ruby_core_source/ruby-2.2.0-preview2/ccan/list/list.h +0 -635
  74. data/lib/debase/ruby_core_source/ruby-2.2.0-preview2/ccan/str/str.h +0 -16
  75. data/lib/debase/ruby_core_source/ruby-2.2.0-preview2/dln.h +0 -51
  76. data/lib/debase/ruby_core_source/ruby-2.2.0-preview2/eval_intern.h +0 -275
  77. data/lib/debase/ruby_core_source/ruby-2.2.0-preview2/gc.h +0 -107
  78. data/lib/debase/ruby_core_source/ruby-2.2.0-preview2/internal.h +0 -1178
  79. data/lib/debase/ruby_core_source/ruby-2.2.0-preview2/iseq.h +0 -157
  80. data/lib/debase/ruby_core_source/ruby-2.2.0-preview2/method.h +0 -141
  81. data/lib/debase/ruby_core_source/ruby-2.2.0-preview2/node_name.inc +0 -212
  82. data/lib/debase/ruby_core_source/ruby-2.2.0-preview2/optinsn.inc +0 -83
  83. data/lib/debase/ruby_core_source/ruby-2.2.0-preview2/probes_helper.h +0 -67
  84. data/lib/debase/ruby_core_source/ruby-2.2.0-preview2/regenc.h +0 -234
  85. data/lib/debase/ruby_core_source/ruby-2.2.0-preview2/regparse.h +0 -363
  86. data/lib/debase/ruby_core_source/ruby-2.2.0-preview2/revision.h +0 -1
  87. data/lib/debase/ruby_core_source/ruby-2.2.0-preview2/siphash.h +0 -48
  88. data/lib/debase/ruby_core_source/ruby-2.2.0-preview2/thread_pthread.h +0 -54
  89. data/lib/debase/ruby_core_source/ruby-2.2.0-preview2/thread_win32.h +0 -36
  90. data/lib/debase/ruby_core_source/ruby-2.2.0-preview2/timev.h +0 -42
  91. data/lib/debase/ruby_core_source/ruby-2.2.0-preview2/transcode_data.h +0 -123
  92. data/lib/debase/ruby_core_source/ruby-2.2.0-preview2/version.h +0 -53
  93. data/lib/debase/ruby_core_source/ruby-2.2.0-preview2/vm_core.h +0 -1158
  94. data/lib/debase/ruby_core_source/ruby-2.2.0-preview2/vm_debug.h +0 -37
  95. data/lib/debase/ruby_core_source/ruby-2.2.0-preview2/vm_exec.h +0 -182
  96. data/lib/debase/ruby_core_source/ruby-2.2.0-preview2/vm_insnhelper.h +0 -233
  97. data/lib/debase/ruby_core_source/ruby-2.2.0-preview2/vm_opts.h +0 -56
  98. data/lib/debase/ruby_core_source/ruby-2.2.0-rc1/addr2line.h +0 -21
  99. data/lib/debase/ruby_core_source/ruby-2.2.0-rc1/ccan/build_assert/build_assert.h +0 -40
  100. data/lib/debase/ruby_core_source/ruby-2.2.0-rc1/ccan/check_type/check_type.h +0 -63
  101. data/lib/debase/ruby_core_source/ruby-2.2.0-rc1/ccan/container_of/container_of.h +0 -142
  102. data/lib/debase/ruby_core_source/ruby-2.2.0-rc1/ccan/list/list.h +0 -635
  103. data/lib/debase/ruby_core_source/ruby-2.2.0-rc1/ccan/str/str.h +0 -16
  104. data/lib/debase/ruby_core_source/ruby-2.2.0-rc1/constant.h +0 -43
  105. data/lib/debase/ruby_core_source/ruby-2.2.0-rc1/dln.h +0 -51
  106. data/lib/debase/ruby_core_source/ruby-2.2.0-rc1/eval_intern.h +0 -275
  107. data/lib/debase/ruby_core_source/ruby-2.2.0-rc1/gc.h +0 -107
  108. data/lib/debase/ruby_core_source/ruby-2.2.0-rc1/id.h +0 -210
  109. data/lib/debase/ruby_core_source/ruby-2.2.0-rc1/insns.inc +0 -107
  110. data/lib/debase/ruby_core_source/ruby-2.2.0-rc1/insns_info.inc +0 -752
  111. data/lib/debase/ruby_core_source/ruby-2.2.0-rc1/known_errors.inc +0 -746
  112. data/lib/debase/ruby_core_source/ruby-2.2.0-rc1/method.h +0 -141
  113. data/lib/debase/ruby_core_source/ruby-2.2.0-rc1/node.h +0 -544
  114. data/lib/debase/ruby_core_source/ruby-2.2.0-rc1/node_name.inc +0 -212
  115. data/lib/debase/ruby_core_source/ruby-2.2.0-rc1/opt_sc.inc +0 -734
  116. data/lib/debase/ruby_core_source/ruby-2.2.0-rc1/optinsn.inc +0 -83
  117. data/lib/debase/ruby_core_source/ruby-2.2.0-rc1/optunifs.inc +0 -124
  118. data/lib/debase/ruby_core_source/ruby-2.2.0-rc1/parse.h +0 -203
  119. data/lib/debase/ruby_core_source/ruby-2.2.0-rc1/probes_helper.h +0 -67
  120. data/lib/debase/ruby_core_source/ruby-2.2.0-rc1/regenc.h +0 -234
  121. data/lib/debase/ruby_core_source/ruby-2.2.0-rc1/regint.h +0 -972
  122. data/lib/debase/ruby_core_source/ruby-2.2.0-rc1/regparse.h +0 -363
  123. data/lib/debase/ruby_core_source/ruby-2.2.0-rc1/revision.h +0 -1
  124. data/lib/debase/ruby_core_source/ruby-2.2.0-rc1/ruby_atomic.h +0 -170
  125. data/lib/debase/ruby_core_source/ruby-2.2.0-rc1/siphash.h +0 -48
  126. data/lib/debase/ruby_core_source/ruby-2.2.0-rc1/symbol.h +0 -87
  127. data/lib/debase/ruby_core_source/ruby-2.2.0-rc1/thread_pthread.h +0 -54
  128. data/lib/debase/ruby_core_source/ruby-2.2.0-rc1/thread_win32.h +0 -36
  129. data/lib/debase/ruby_core_source/ruby-2.2.0-rc1/timev.h +0 -42
  130. data/lib/debase/ruby_core_source/ruby-2.2.0-rc1/transcode_data.h +0 -123
  131. data/lib/debase/ruby_core_source/ruby-2.2.0-rc1/vm.inc +0 -3353
  132. data/lib/debase/ruby_core_source/ruby-2.2.0-rc1/vm_debug.h +0 -37
  133. data/lib/debase/ruby_core_source/ruby-2.2.0-rc1/vm_exec.h +0 -182
  134. data/lib/debase/ruby_core_source/ruby-2.2.0-rc1/vm_insnhelper.h +0 -233
  135. data/lib/debase/ruby_core_source/ruby-2.2.0-rc1/vm_opts.h +0 -56
  136. data/lib/debase/ruby_core_source/ruby-2.2.0-rc1/vmtc.inc +0 -105
@@ -1,83 +0,0 @@
1
- /* -*-c-*- *********************************************************/
2
- /*******************************************************************/
3
- /*******************************************************************/
4
- /**
5
- This file is for threaded code.
6
-
7
- ----
8
- This file is auto generated by insns2vm.rb
9
- DO NOT TOUCH!
10
-
11
- If you want to fix something, you must edit 'template/optinsn.inc.tmpl'
12
- or tool/insns2vm.rb
13
- */
14
-
15
- static INSN *
16
- insn_operands_unification(INSN *insnobj){
17
- #ifdef OPT_OPERANDS_UNIFICATION
18
- /* optimize rule */
19
- switch(insnobj->insn_id){
20
-
21
- case BIN(getlocal):
22
- if(
23
- insnobj->operands[1] == INT2FIX(0)
24
- ){
25
- insnobj->insn_id = BIN(getlocal_OP__WC__0);
26
- insnobj->operand_size = 1;
27
- break;
28
- }
29
-
30
- if(
31
- insnobj->operands[1] == INT2FIX(1)
32
- ){
33
- insnobj->insn_id = BIN(getlocal_OP__WC__1);
34
- insnobj->operand_size = 1;
35
- break;
36
- }
37
-
38
- break;
39
- case BIN(setlocal):
40
- if(
41
- insnobj->operands[1] == INT2FIX(0)
42
- ){
43
- insnobj->insn_id = BIN(setlocal_OP__WC__0);
44
- insnobj->operand_size = 1;
45
- break;
46
- }
47
-
48
- if(
49
- insnobj->operands[1] == INT2FIX(1)
50
- ){
51
- insnobj->insn_id = BIN(setlocal_OP__WC__1);
52
- insnobj->operand_size = 1;
53
- break;
54
- }
55
-
56
- break;
57
- case BIN(putobject):
58
- if(
59
- insnobj->operands[0] == INT2FIX(0)
60
- ){
61
- insnobj->insn_id = BIN(putobject_OP_INT2FIX_O_0_C_);
62
- insnobj->operand_size = 0;
63
- break;
64
- }
65
-
66
- if(
67
- insnobj->operands[0] == INT2FIX(1)
68
- ){
69
- insnobj->insn_id = BIN(putobject_OP_INT2FIX_O_1_C_);
70
- insnobj->operand_size = 0;
71
- break;
72
- }
73
-
74
- break;
75
-
76
- default:
77
- /* do nothing */;
78
- break;
79
- }
80
- #endif
81
- return insnobj;
82
- }
83
-
@@ -1,67 +0,0 @@
1
- #ifndef RUBY_PROBES_HELPER_H
2
- #define RUBY_PROBES_HELPER_H
3
-
4
- #include "ruby/ruby.h"
5
- #include "probes.h"
6
-
7
- VALUE rb_class_path_no_cache(VALUE _klass);
8
-
9
- #define RUBY_DTRACE_HOOK(name, th, klazz, id) \
10
- do { \
11
- if (RUBY_DTRACE_##name##_ENABLED()) { \
12
- VALUE _klass = (klazz); \
13
- ID _id = (id); \
14
- const char * classname; \
15
- const char * methodname; \
16
- const char * filename; \
17
- if (!_klass) { \
18
- rb_thread_method_id_and_class((th), &_id, &_klass); \
19
- } \
20
- if (_klass) { \
21
- if (RB_TYPE_P(_klass, T_ICLASS)) { \
22
- _klass = RBASIC(_klass)->klass; \
23
- } \
24
- else if (FL_TEST(_klass, FL_SINGLETON)) { \
25
- _klass = rb_iv_get(_klass, "__attached__"); \
26
- } \
27
- switch (TYPE(_klass)) { \
28
- case T_CLASS: \
29
- case T_ICLASS: \
30
- case T_MODULE: \
31
- { \
32
- VALUE _name = rb_class_path_no_cache(_klass); \
33
- if (!NIL_P(_name)) { \
34
- classname = StringValuePtr(_name); \
35
- } \
36
- else { \
37
- classname = "<unknown>"; \
38
- } \
39
- methodname = rb_id2name(_id); \
40
- filename = rb_sourcefile(); \
41
- if (classname && methodname && filename) { \
42
- RUBY_DTRACE_##name( \
43
- classname, \
44
- methodname, \
45
- filename, \
46
- rb_sourceline()); \
47
- } \
48
- break; \
49
- } \
50
- } \
51
- } \
52
- } \
53
- } while (0)
54
-
55
- #define RUBY_DTRACE_METHOD_ENTRY_HOOK(th, klass, id) \
56
- RUBY_DTRACE_HOOK(METHOD_ENTRY, th, klass, id)
57
-
58
- #define RUBY_DTRACE_METHOD_RETURN_HOOK(th, klass, id) \
59
- RUBY_DTRACE_HOOK(METHOD_RETURN, th, klass, id)
60
-
61
- #define RUBY_DTRACE_CMETHOD_ENTRY_HOOK(th, klass, id) \
62
- RUBY_DTRACE_HOOK(CMETHOD_ENTRY, th, klass, id)
63
-
64
- #define RUBY_DTRACE_CMETHOD_RETURN_HOOK(th, klass, id) \
65
- RUBY_DTRACE_HOOK(CMETHOD_RETURN, th, klass, id)
66
-
67
- #endif /* RUBY_PROBES_HELPER_H */
@@ -1,234 +0,0 @@
1
- #ifndef ONIGURUMA_REGENC_H
2
- #define ONIGURUMA_REGENC_H
3
- /**********************************************************************
4
- regenc.h - Onigmo (Oniguruma-mod) (regular expression library)
5
- **********************************************************************/
6
- /*-
7
- * Copyright (c) 2002-2008 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>
8
- * Copyright (c) 2011 K.Takata <kentkt AT csc DOT jp>
9
- * All rights reserved.
10
- *
11
- * Redistribution and use in source and binary forms, with or without
12
- * modification, are permitted provided that the following conditions
13
- * are met:
14
- * 1. Redistributions of source code must retain the above copyright
15
- * notice, this list of conditions and the following disclaimer.
16
- * 2. Redistributions in binary form must reproduce the above copyright
17
- * notice, this list of conditions and the following disclaimer in the
18
- * documentation and/or other materials provided with the distribution.
19
- *
20
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
21
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
24
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30
- * SUCH DAMAGE.
31
- */
32
-
33
- #ifndef REGINT_H
34
- #ifndef RUBY_EXTERN
35
- #include "ruby/config.h"
36
- #include "ruby/defines.h"
37
- #endif
38
- #endif
39
-
40
- #ifdef ONIG_ESCAPE_UCHAR_COLLISION
41
- #undef ONIG_ESCAPE_UCHAR_COLLISION
42
- #endif
43
-
44
- #include "ruby/oniguruma.h"
45
-
46
- RUBY_SYMBOL_EXPORT_BEGIN
47
-
48
- typedef struct {
49
- OnigCodePoint from;
50
- OnigCodePoint to;
51
- } OnigPairCaseFoldCodes;
52
-
53
-
54
- #ifndef NULL
55
- #define NULL ((void* )0)
56
- #endif
57
-
58
- #ifndef TRUE
59
- #define TRUE 1
60
- #endif
61
-
62
- #ifndef FALSE
63
- #define FALSE 0
64
- #endif
65
-
66
- #ifndef ARG_UNUSED
67
- #if defined(__GNUC__)
68
- # define ARG_UNUSED __attribute__ ((unused))
69
- #else
70
- # define ARG_UNUSED
71
- #endif
72
- #endif
73
-
74
- #define ONIG_IS_NULL(p) (((void*)(p)) == (void*)0)
75
- #define ONIG_IS_NOT_NULL(p) (((void*)(p)) != (void*)0)
76
- #define ONIG_CHECK_NULL_RETURN(p) if (ONIG_IS_NULL(p)) return NULL
77
- #define ONIG_CHECK_NULL_RETURN_VAL(p,val) if (ONIG_IS_NULL(p)) return (val)
78
-
79
- #define enclen(enc,p,e) ((enc->max_enc_len == enc->min_enc_len) ? enc->min_enc_len : ONIGENC_MBC_ENC_LEN(enc,p,e))
80
-
81
- /* character types bit flag */
82
- #define BIT_CTYPE_NEWLINE (1<< ONIGENC_CTYPE_NEWLINE)
83
- #define BIT_CTYPE_ALPHA (1<< ONIGENC_CTYPE_ALPHA)
84
- #define BIT_CTYPE_BLANK (1<< ONIGENC_CTYPE_BLANK)
85
- #define BIT_CTYPE_CNTRL (1<< ONIGENC_CTYPE_CNTRL)
86
- #define BIT_CTYPE_DIGIT (1<< ONIGENC_CTYPE_DIGIT)
87
- #define BIT_CTYPE_GRAPH (1<< ONIGENC_CTYPE_GRAPH)
88
- #define BIT_CTYPE_LOWER (1<< ONIGENC_CTYPE_LOWER)
89
- #define BIT_CTYPE_PRINT (1<< ONIGENC_CTYPE_PRINT)
90
- #define BIT_CTYPE_PUNCT (1<< ONIGENC_CTYPE_PUNCT)
91
- #define BIT_CTYPE_SPACE (1<< ONIGENC_CTYPE_SPACE)
92
- #define BIT_CTYPE_UPPER (1<< ONIGENC_CTYPE_UPPER)
93
- #define BIT_CTYPE_XDIGIT (1<< ONIGENC_CTYPE_XDIGIT)
94
- #define BIT_CTYPE_WORD (1<< ONIGENC_CTYPE_WORD)
95
- #define BIT_CTYPE_ALNUM (1<< ONIGENC_CTYPE_ALNUM)
96
- #define BIT_CTYPE_ASCII (1<< ONIGENC_CTYPE_ASCII)
97
-
98
- #define CTYPE_TO_BIT(ctype) (1<<(ctype))
99
- #define CTYPE_IS_WORD_GRAPH_PRINT(ctype) \
100
- ((ctype) == ONIGENC_CTYPE_WORD || (ctype) == ONIGENC_CTYPE_GRAPH ||\
101
- (ctype) == ONIGENC_CTYPE_PRINT)
102
-
103
-
104
- typedef struct {
105
- short int len;
106
- const UChar name[6];
107
- int ctype;
108
- } PosixBracketEntryType;
109
-
110
- #define POSIX_BRACKET_ENTRY_INIT(name, ctype) \
111
- {(short int )(sizeof(name) - 1), (name), (ctype)}
112
-
113
- #ifndef numberof
114
- #define numberof(array) (int )(sizeof(array) / sizeof((array)[0]))
115
- #endif
116
-
117
-
118
- #define USE_CRNL_AS_LINE_TERMINATOR
119
- #define USE_UNICODE_PROPERTIES
120
- #define USE_UNICODE_AGE_PROPERTIES
121
- /* #define USE_UNICODE_CASE_FOLD_TURKISH_AZERI */
122
- /* #define USE_UNICODE_ALL_LINE_TERMINATORS */ /* see Unicode.org UTS #18 */
123
-
124
-
125
- #define ONIG_ENCODING_INIT_DEFAULT ONIG_ENCODING_ASCII
126
-
127
- /* for encoding system implementation (internal) */
128
- ONIG_EXTERN int onigenc_ascii_apply_all_case_fold P_((OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void* arg, OnigEncoding enc));
129
- ONIG_EXTERN int onigenc_ascii_get_case_fold_codes_by_str P_((OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem items[], OnigEncoding enc));
130
- ONIG_EXTERN int onigenc_apply_all_case_fold_with_map P_((int map_size, const OnigPairCaseFoldCodes map[], int ess_tsett_flag, OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void* arg));
131
- ONIG_EXTERN int onigenc_get_case_fold_codes_by_str_with_map P_((int map_size, const OnigPairCaseFoldCodes map[], int ess_tsett_flag, OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem items[]));
132
- ONIG_EXTERN int onigenc_not_support_get_ctype_code_range P_((OnigCtype ctype, OnigCodePoint* sb_out, const OnigCodePoint* ranges[], OnigEncoding enc));
133
- ONIG_EXTERN int onigenc_is_mbc_newline_0x0a P_((const UChar* p, const UChar* end, OnigEncoding enc));
134
-
135
-
136
- /* methods for single byte encoding */
137
- ONIG_EXTERN int onigenc_ascii_mbc_case_fold P_((OnigCaseFoldType flag, const UChar** p, const UChar* end, UChar* lower, OnigEncoding enc));
138
- ONIG_EXTERN int onigenc_single_byte_mbc_enc_len P_((const UChar* p, const UChar* e, OnigEncoding enc));
139
- ONIG_EXTERN OnigCodePoint onigenc_single_byte_mbc_to_code P_((const UChar* p, const UChar* end, OnigEncoding enc));
140
- ONIG_EXTERN int onigenc_single_byte_code_to_mbclen P_((OnigCodePoint code, OnigEncoding enc));
141
- ONIG_EXTERN int onigenc_single_byte_code_to_mbc P_((OnigCodePoint code, UChar *buf, OnigEncoding enc));
142
- ONIG_EXTERN UChar* onigenc_single_byte_left_adjust_char_head P_((const UChar* start, const UChar* s, const OnigUChar* end, OnigEncoding enc));
143
- ONIG_EXTERN int onigenc_always_true_is_allowed_reverse_match P_((const UChar* s, const UChar* end, OnigEncoding enc));
144
- ONIG_EXTERN int onigenc_always_false_is_allowed_reverse_match P_((const UChar* s, const UChar* end, OnigEncoding enc));
145
- ONIG_EXTERN int onigenc_ascii_is_code_ctype P_((OnigCodePoint code, unsigned int ctype, OnigEncoding enc));
146
-
147
- /* methods for multi byte encoding */
148
- ONIG_EXTERN OnigCodePoint onigenc_mbn_mbc_to_code P_((OnigEncoding enc, const UChar* p, const UChar* end));
149
- ONIG_EXTERN int onigenc_mbn_mbc_case_fold P_((OnigEncoding enc, OnigCaseFoldType flag, const UChar** p, const UChar* end, UChar* lower));
150
- ONIG_EXTERN int onigenc_mb2_code_to_mbclen P_((OnigCodePoint code, OnigEncoding enc));
151
- ONIG_EXTERN int onigenc_mb2_code_to_mbc P_((OnigEncoding enc, OnigCodePoint code, UChar *buf));
152
- ONIG_EXTERN int onigenc_minimum_property_name_to_ctype P_((OnigEncoding enc, UChar* p, UChar* end));
153
- ONIG_EXTERN int onigenc_unicode_property_name_to_ctype P_((OnigEncoding enc, UChar* p, UChar* end));
154
- ONIG_EXTERN int onigenc_mb2_is_code_ctype P_((OnigEncoding enc, OnigCodePoint code, unsigned int ctype));
155
- ONIG_EXTERN int onigenc_mb4_code_to_mbclen P_((OnigCodePoint code, OnigEncoding enc));
156
- ONIG_EXTERN int onigenc_mb4_code_to_mbc P_((OnigEncoding enc, OnigCodePoint code, UChar *buf));
157
- ONIG_EXTERN int onigenc_mb4_is_code_ctype P_((OnigEncoding enc, OnigCodePoint code, unsigned int ctype));
158
-
159
-
160
- /* in enc/unicode.c */
161
- ONIG_EXTERN int onigenc_unicode_is_code_ctype P_((OnigCodePoint code, unsigned int ctype, OnigEncoding enc));
162
- ONIG_EXTERN int onigenc_utf16_32_get_ctype_code_range P_((OnigCtype ctype, OnigCodePoint *sb_out, const OnigCodePoint* ranges[], OnigEncoding enc));
163
- ONIG_EXTERN int onigenc_unicode_ctype_code_range P_((int ctype, const OnigCodePoint* ranges[]));
164
- ONIG_EXTERN int onigenc_unicode_get_case_fold_codes_by_str P_((OnigEncoding enc, OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem items[]));
165
- ONIG_EXTERN int onigenc_unicode_mbc_case_fold P_((OnigEncoding enc, OnigCaseFoldType flag, const UChar** pp, const UChar* end, UChar* fold));
166
- ONIG_EXTERN int onigenc_unicode_apply_all_case_fold P_((OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void* arg, OnigEncoding enc));
167
-
168
-
169
- #define UTF16_IS_SURROGATE_FIRST(c) (((c) & 0xfc) == 0xd8)
170
- #define UTF16_IS_SURROGATE_SECOND(c) (((c) & 0xfc) == 0xdc)
171
- #define UTF16_IS_SURROGATE(c) (((c) & 0xf8) == 0xd8)
172
-
173
- #define ONIGENC_ISO_8859_1_TO_LOWER_CASE(c) \
174
- OnigEncISO_8859_1_ToLowerCaseTable[c]
175
- #define ONIGENC_ISO_8859_1_TO_UPPER_CASE(c) \
176
- OnigEncISO_8859_1_ToUpperCaseTable[c]
177
-
178
- ONIG_EXTERN const UChar OnigEncISO_8859_1_ToLowerCaseTable[];
179
- ONIG_EXTERN const UChar OnigEncISO_8859_1_ToUpperCaseTable[];
180
-
181
- ONIG_EXTERN int
182
- onigenc_with_ascii_strncmp P_((OnigEncoding enc, const UChar* p, const UChar* end, const UChar* sascii /* ascii */, int n));
183
- ONIG_EXTERN int
184
- onigenc_with_ascii_strnicmp P_((OnigEncoding enc, const UChar* p, const UChar* end, const UChar* sascii /* ascii */, int n));
185
- ONIG_EXTERN UChar*
186
- onigenc_step P_((OnigEncoding enc, const UChar* p, const UChar* end, int n));
187
-
188
- /* defined in regexec.c, but used in enc/xxx.c */
189
- extern int onig_is_in_code_range P_((const UChar* p, OnigCodePoint code));
190
-
191
- ONIG_EXTERN OnigEncoding OnigEncDefaultCharEncoding;
192
- ONIG_EXTERN const UChar OnigEncAsciiToLowerCaseTable[];
193
- ONIG_EXTERN const UChar OnigEncAsciiToUpperCaseTable[];
194
- ONIG_EXTERN const unsigned short OnigEncAsciiCtypeTable[];
195
-
196
- #define ONIGENC_IS_ASCII_CODE(code) ((code) < 0x80)
197
- #define ONIGENC_ASCII_CODE_TO_LOWER_CASE(c) OnigEncAsciiToLowerCaseTable[c]
198
- #define ONIGENC_ASCII_CODE_TO_UPPER_CASE(c) OnigEncAsciiToUpperCaseTable[c]
199
- #define ONIGENC_IS_ASCII_CODE_CTYPE(code,ctype) \
200
- ((OnigEncAsciiCtypeTable[code] & CTYPE_TO_BIT(ctype)) != 0)
201
- #define ONIGENC_IS_ASCII_CODE_CASE_AMBIG(code) \
202
- (ONIGENC_IS_ASCII_CODE_CTYPE(code, ONIGENC_CTYPE_UPPER) ||\
203
- ONIGENC_IS_ASCII_CODE_CTYPE(code, ONIGENC_CTYPE_LOWER))
204
-
205
- /* Check if the code is in the range. (from <= code && code <= to) */
206
- #define ONIGENC_IS_IN_RANGE(code, from, to) \
207
- ((OnigCodePoint )((code) - (from)) <= (OnigCodePoint )((to) - (from)))
208
-
209
-
210
- #ifdef ONIG_ENC_REGISTER
211
- extern int ONIG_ENC_REGISTER(const char *, OnigEncoding);
212
- #define OnigEncodingName(n) encoding_##n
213
- #define OnigEncodingDeclare(n) static const OnigEncodingType OnigEncodingName(n)
214
- #define OnigEncodingDefine(f,n) \
215
- OnigEncodingDeclare(n); \
216
- void Init_##f(void) { \
217
- ONIG_ENC_REGISTER(OnigEncodingName(n).name, \
218
- &OnigEncodingName(n)); \
219
- } \
220
- OnigEncodingDeclare(n)
221
- #else
222
- #define OnigEncodingName(n) OnigEncoding##n
223
- #define OnigEncodingDeclare(n) const OnigEncodingType OnigEncodingName(n)
224
- #define OnigEncodingDefine(f,n) OnigEncodingDeclare(n)
225
- #endif
226
-
227
- /* macros for define replica encoding and encoding alias */
228
- #define ENC_REPLICATE(name, orig)
229
- #define ENC_ALIAS(name, orig)
230
- #define ENC_DUMMY(name)
231
-
232
- RUBY_SYMBOL_EXPORT_END
233
-
234
- #endif /* ONIGURUMA_REGENC_H */
@@ -1,363 +0,0 @@
1
- #ifndef ONIGURUMA_REGPARSE_H
2
- #define ONIGURUMA_REGPARSE_H
3
- /**********************************************************************
4
- regparse.h - Onigmo (Oniguruma-mod) (regular expression library)
5
- **********************************************************************/
6
- /*-
7
- * Copyright (c) 2002-2007 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>
8
- * Copyright (c) 2011 K.Takata <kentkt AT csc DOT jp>
9
- * All rights reserved.
10
- *
11
- * Redistribution and use in source and binary forms, with or without
12
- * modification, are permitted provided that the following conditions
13
- * are met:
14
- * 1. Redistributions of source code must retain the above copyright
15
- * notice, this list of conditions and the following disclaimer.
16
- * 2. Redistributions in binary form must reproduce the above copyright
17
- * notice, this list of conditions and the following disclaimer in the
18
- * documentation and/or other materials provided with the distribution.
19
- *
20
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
21
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
24
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30
- * SUCH DAMAGE.
31
- */
32
-
33
- #include "regint.h"
34
-
35
- RUBY_SYMBOL_EXPORT_BEGIN
36
-
37
- /* node type */
38
- #define NT_STR 0
39
- #define NT_CCLASS 1
40
- #define NT_CTYPE 2
41
- #define NT_CANY 3
42
- #define NT_BREF 4
43
- #define NT_QTFR 5
44
- #define NT_ENCLOSE 6
45
- #define NT_ANCHOR 7
46
- #define NT_LIST 8
47
- #define NT_ALT 9
48
- #define NT_CALL 10
49
-
50
- /* node type bit */
51
- #define NTYPE2BIT(type) (1<<(type))
52
-
53
- #define BIT_NT_STR NTYPE2BIT(NT_STR)
54
- #define BIT_NT_CCLASS NTYPE2BIT(NT_CCLASS)
55
- #define BIT_NT_CTYPE NTYPE2BIT(NT_CTYPE)
56
- #define BIT_NT_CANY NTYPE2BIT(NT_CANY)
57
- #define BIT_NT_BREF NTYPE2BIT(NT_BREF)
58
- #define BIT_NT_QTFR NTYPE2BIT(NT_QTFR)
59
- #define BIT_NT_ENCLOSE NTYPE2BIT(NT_ENCLOSE)
60
- #define BIT_NT_ANCHOR NTYPE2BIT(NT_ANCHOR)
61
- #define BIT_NT_LIST NTYPE2BIT(NT_LIST)
62
- #define BIT_NT_ALT NTYPE2BIT(NT_ALT)
63
- #define BIT_NT_CALL NTYPE2BIT(NT_CALL)
64
-
65
- #define IS_NODE_TYPE_SIMPLE(type) \
66
- ((NTYPE2BIT(type) & (BIT_NT_STR | BIT_NT_CCLASS | BIT_NT_CTYPE |\
67
- BIT_NT_CANY | BIT_NT_BREF)) != 0)
68
-
69
- #define NTYPE(node) ((node)->u.base.type)
70
- #define SET_NTYPE(node, ntype) (node)->u.base.type = (ntype)
71
-
72
- #define NSTR(node) (&((node)->u.str))
73
- #define NCCLASS(node) (&((node)->u.cclass))
74
- #define NCTYPE(node) (&((node)->u.ctype))
75
- #define NBREF(node) (&((node)->u.bref))
76
- #define NQTFR(node) (&((node)->u.qtfr))
77
- #define NENCLOSE(node) (&((node)->u.enclose))
78
- #define NANCHOR(node) (&((node)->u.anchor))
79
- #define NCONS(node) (&((node)->u.cons))
80
- #define NCALL(node) (&((node)->u.call))
81
-
82
- #define NCAR(node) (NCONS(node)->car)
83
- #define NCDR(node) (NCONS(node)->cdr)
84
-
85
-
86
-
87
- #define ANCHOR_ANYCHAR_STAR_MASK (ANCHOR_ANYCHAR_STAR | ANCHOR_ANYCHAR_STAR_ML)
88
- #define ANCHOR_END_BUF_MASK (ANCHOR_END_BUF | ANCHOR_SEMI_END_BUF)
89
-
90
- #define ENCLOSE_MEMORY (1<<0)
91
- #define ENCLOSE_OPTION (1<<1)
92
- #define ENCLOSE_STOP_BACKTRACK (1<<2)
93
- #define ENCLOSE_CONDITION (1<<3)
94
-
95
- #define NODE_STR_MARGIN 16
96
- #define NODE_STR_BUF_SIZE 24 /* sizeof(CClassNode) - sizeof(int)*4 */
97
- #define NODE_BACKREFS_SIZE 6
98
-
99
- #define NSTR_RAW (1<<0) /* by backslashed number */
100
- #define NSTR_AMBIG (1<<1)
101
- #define NSTR_DONT_GET_OPT_INFO (1<<2)
102
-
103
- #define NSTRING_LEN(node) (OnigDistance )((node)->u.str.end - (node)->u.str.s)
104
- #define NSTRING_SET_RAW(node) (node)->u.str.flag |= NSTR_RAW
105
- #define NSTRING_CLEAR_RAW(node) (node)->u.str.flag &= ~NSTR_RAW
106
- #define NSTRING_SET_AMBIG(node) (node)->u.str.flag |= NSTR_AMBIG
107
- #define NSTRING_SET_DONT_GET_OPT_INFO(node) \
108
- (node)->u.str.flag |= NSTR_DONT_GET_OPT_INFO
109
- #define NSTRING_IS_RAW(node) (((node)->u.str.flag & NSTR_RAW) != 0)
110
- #define NSTRING_IS_AMBIG(node) (((node)->u.str.flag & NSTR_AMBIG) != 0)
111
- #define NSTRING_IS_DONT_GET_OPT_INFO(node) \
112
- (((node)->u.str.flag & NSTR_DONT_GET_OPT_INFO) != 0)
113
-
114
- #define BACKREFS_P(br) \
115
- (IS_NOT_NULL((br)->back_dynamic) ? (br)->back_dynamic : (br)->back_static);
116
-
117
- #define NQ_TARGET_ISNOT_EMPTY 0
118
- #define NQ_TARGET_IS_EMPTY 1
119
- #define NQ_TARGET_IS_EMPTY_MEM 2
120
- #define NQ_TARGET_IS_EMPTY_REC 3
121
-
122
- /* status bits */
123
- #define NST_MIN_FIXED (1<<0)
124
- #define NST_MAX_FIXED (1<<1)
125
- #define NST_CLEN_FIXED (1<<2)
126
- #define NST_MARK1 (1<<3)
127
- #define NST_MARK2 (1<<4)
128
- #define NST_MEM_BACKREFED (1<<5)
129
- #define NST_STOP_BT_SIMPLE_REPEAT (1<<6)
130
- #define NST_RECURSION (1<<7)
131
- #define NST_CALLED (1<<8)
132
- #define NST_ADDR_FIXED (1<<9)
133
- #define NST_NAMED_GROUP (1<<10)
134
- #define NST_NAME_REF (1<<11)
135
- #define NST_IN_REPEAT (1<<12) /* STK_REPEAT is nested in stack. */
136
- #define NST_NEST_LEVEL (1<<13)
137
- #define NST_BY_NUMBER (1<<14) /* {n,m} */
138
-
139
- #define SET_ENCLOSE_STATUS(node,f) (node)->u.enclose.state |= (f)
140
- #define CLEAR_ENCLOSE_STATUS(node,f) (node)->u.enclose.state &= ~(f)
141
-
142
- #define IS_ENCLOSE_CALLED(en) (((en)->state & NST_CALLED) != 0)
143
- #define IS_ENCLOSE_ADDR_FIXED(en) (((en)->state & NST_ADDR_FIXED) != 0)
144
- #define IS_ENCLOSE_RECURSION(en) (((en)->state & NST_RECURSION) != 0)
145
- #define IS_ENCLOSE_MARK1(en) (((en)->state & NST_MARK1) != 0)
146
- #define IS_ENCLOSE_MARK2(en) (((en)->state & NST_MARK2) != 0)
147
- #define IS_ENCLOSE_MIN_FIXED(en) (((en)->state & NST_MIN_FIXED) != 0)
148
- #define IS_ENCLOSE_MAX_FIXED(en) (((en)->state & NST_MAX_FIXED) != 0)
149
- #define IS_ENCLOSE_CLEN_FIXED(en) (((en)->state & NST_CLEN_FIXED) != 0)
150
- #define IS_ENCLOSE_STOP_BT_SIMPLE_REPEAT(en) \
151
- (((en)->state & NST_STOP_BT_SIMPLE_REPEAT) != 0)
152
- #define IS_ENCLOSE_NAMED_GROUP(en) (((en)->state & NST_NAMED_GROUP) != 0)
153
- #define IS_ENCLOSE_NAME_REF(en) (((en)->state & NST_NAME_REF) != 0)
154
-
155
- #define SET_CALL_RECURSION(node) (node)->u.call.state |= NST_RECURSION
156
- #define IS_CALL_RECURSION(cn) (((cn)->state & NST_RECURSION) != 0)
157
- #define IS_CALL_NAME_REF(cn) (((cn)->state & NST_NAME_REF) != 0)
158
- #define IS_BACKREF_NAME_REF(bn) (((bn)->state & NST_NAME_REF) != 0)
159
- #define IS_BACKREF_NEST_LEVEL(bn) (((bn)->state & NST_NEST_LEVEL) != 0)
160
- #define IS_QUANTIFIER_IN_REPEAT(qn) (((qn)->state & NST_IN_REPEAT) != 0)
161
- #define IS_QUANTIFIER_BY_NUMBER(qn) (((qn)->state & NST_BY_NUMBER) != 0)
162
-
163
- #define CALLNODE_REFNUM_UNDEF -1
164
-
165
- typedef struct {
166
- NodeBase base;
167
- UChar* s;
168
- UChar* end;
169
- unsigned int flag;
170
- int capa; /* (allocated size - 1) or 0: use buf[] */
171
- UChar buf[NODE_STR_BUF_SIZE];
172
- } StrNode;
173
-
174
- typedef struct {
175
- NodeBase base;
176
- int state;
177
- struct _Node* target;
178
- int lower;
179
- int upper;
180
- int greedy;
181
- int target_empty_info;
182
- struct _Node* head_exact;
183
- struct _Node* next_head_exact;
184
- int is_refered; /* include called node. don't eliminate even if {0} */
185
- #ifdef USE_COMBINATION_EXPLOSION_CHECK
186
- int comb_exp_check_num; /* 1,2,3...: check, 0: no check */
187
- #endif
188
- } QtfrNode;
189
-
190
- typedef struct {
191
- NodeBase base;
192
- int state;
193
- int type;
194
- int regnum;
195
- OnigOptionType option;
196
- AbsAddrType call_addr;
197
- struct _Node* target;
198
- /* for multiple call reference */
199
- OnigDistance min_len; /* min length (byte) */
200
- OnigDistance max_len; /* max length (byte) */
201
- int char_len; /* character length */
202
- int opt_count; /* referenced count in optimize_node_left() */
203
- } EncloseNode;
204
-
205
- #ifdef USE_SUBEXP_CALL
206
-
207
- typedef struct {
208
- int offset;
209
- struct _Node* target;
210
- } UnsetAddr;
211
-
212
- typedef struct {
213
- int num;
214
- int alloc;
215
- UnsetAddr* us;
216
- } UnsetAddrList;
217
-
218
- typedef struct {
219
- NodeBase base;
220
- int state;
221
- int group_num;
222
- UChar* name;
223
- UChar* name_end;
224
- struct _Node* target; /* EncloseNode : ENCLOSE_MEMORY */
225
- UnsetAddrList* unset_addr_list;
226
- } CallNode;
227
-
228
- #endif
229
-
230
- typedef struct {
231
- NodeBase base;
232
- int state;
233
- int back_num;
234
- int back_static[NODE_BACKREFS_SIZE];
235
- int* back_dynamic;
236
- int nest_level;
237
- } BRefNode;
238
-
239
- typedef struct {
240
- NodeBase base;
241
- int type;
242
- struct _Node* target;
243
- int char_len;
244
- int ascii_range;
245
- } AnchorNode;
246
-
247
- typedef struct {
248
- NodeBase base;
249
- struct _Node* car;
250
- struct _Node* cdr;
251
- } ConsAltNode;
252
-
253
- typedef struct {
254
- NodeBase base;
255
- int ctype;
256
- int not;
257
- int ascii_range;
258
- } CtypeNode;
259
-
260
- typedef struct _Node {
261
- union {
262
- NodeBase base;
263
- StrNode str;
264
- CClassNode cclass;
265
- QtfrNode qtfr;
266
- EncloseNode enclose;
267
- BRefNode bref;
268
- AnchorNode anchor;
269
- ConsAltNode cons;
270
- CtypeNode ctype;
271
- #ifdef USE_SUBEXP_CALL
272
- CallNode call;
273
- #endif
274
- } u;
275
- } Node;
276
-
277
-
278
- #define NULL_NODE ((Node* )0)
279
-
280
- #define SCANENV_MEMNODES_SIZE 8
281
- #define SCANENV_MEM_NODES(senv) \
282
- (IS_NOT_NULL((senv)->mem_nodes_dynamic) ? \
283
- (senv)->mem_nodes_dynamic : (senv)->mem_nodes_static)
284
-
285
- typedef struct {
286
- OnigOptionType option;
287
- OnigCaseFoldType case_fold_flag;
288
- OnigEncoding enc;
289
- const OnigSyntaxType* syntax;
290
- BitStatusType capture_history;
291
- BitStatusType bt_mem_start;
292
- BitStatusType bt_mem_end;
293
- BitStatusType backrefed_mem;
294
- UChar* pattern;
295
- UChar* pattern_end;
296
- UChar* error;
297
- UChar* error_end;
298
- regex_t* reg; /* for reg->names only */
299
- #ifdef USE_SUBEXP_CALL
300
- UnsetAddrList* unset_addr_list;
301
- #endif
302
- int num_call;
303
- int num_mem;
304
- #ifdef USE_NAMED_GROUP
305
- int num_named;
306
- #endif
307
- int mem_alloc;
308
- Node* mem_nodes_static[SCANENV_MEMNODES_SIZE];
309
- Node** mem_nodes_dynamic;
310
- #ifdef USE_COMBINATION_EXPLOSION_CHECK
311
- int num_comb_exp_check;
312
- int comb_exp_max_regnum;
313
- int curr_max_regnum;
314
- int has_recursion;
315
- #endif
316
- int warnings_flag;
317
- const char* sourcefile;
318
- int sourceline;
319
- } ScanEnv;
320
-
321
-
322
- #define IS_SYNTAX_OP(syn, opm) (((syn)->op & (opm)) != 0)
323
- #define IS_SYNTAX_OP2(syn, opm) (((syn)->op2 & (opm)) != 0)
324
- #define IS_SYNTAX_BV(syn, bvm) (((syn)->behavior & (bvm)) != 0)
325
-
326
- #ifdef USE_NAMED_GROUP
327
- typedef struct {
328
- int new_val;
329
- } GroupNumRemap;
330
-
331
- extern int onig_renumber_name_table P_((regex_t* reg, GroupNumRemap* map));
332
- #endif
333
-
334
- extern int onig_strncmp P_((const UChar* s1, const UChar* s2, int n));
335
- extern void onig_strcpy P_((UChar* dest, const UChar* src, const UChar* end));
336
- extern void onig_scan_env_set_error_string P_((ScanEnv* env, int ecode, UChar* arg, UChar* arg_end));
337
- extern int onig_scan_unsigned_number P_((UChar** src, const UChar* end, OnigEncoding enc));
338
- extern void onig_reduce_nested_quantifier P_((Node* pnode, Node* cnode));
339
- extern void onig_node_conv_to_str_node P_((Node* node, int raw));
340
- extern int onig_node_str_cat P_((Node* node, const UChar* s, const UChar* end));
341
- extern int onig_node_str_set P_((Node* node, const UChar* s, const UChar* end));
342
- extern void onig_node_free P_((Node* node));
343
- extern Node* onig_node_new_enclose P_((int type));
344
- extern Node* onig_node_new_anchor P_((int type));
345
- extern Node* onig_node_new_str P_((const UChar* s, const UChar* end));
346
- extern Node* onig_node_new_list P_((Node* left, Node* right));
347
- extern Node* onig_node_list_add P_((Node* list, Node* x));
348
- extern Node* onig_node_new_alt P_((Node* left, Node* right));
349
- extern void onig_node_str_clear P_((Node* node));
350
- extern int onig_free_node_list P_((void));
351
- extern int onig_names_free P_((regex_t* reg));
352
- extern int onig_parse_make_tree P_((Node** root, const UChar* pattern, const UChar* end, regex_t* reg, ScanEnv* env));
353
- extern int onig_free_shared_cclass_table P_((void));
354
-
355
- #ifdef ONIG_DEBUG
356
- #ifdef USE_NAMED_GROUP
357
- extern int onig_print_names(FILE*, regex_t*);
358
- #endif
359
- #endif
360
-
361
- RUBY_SYMBOL_EXPORT_END
362
-
363
- #endif /* ONIGURUMA_REGPARSE_H */