debase-ruby_core_source 0.9.9 → 0.9.10

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 (152) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/addr2line.h +0 -0
  4. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/ccan/build_assert/build_assert.h +0 -0
  5. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/ccan/check_type/check_type.h +0 -0
  6. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/ccan/container_of/container_of.h +0 -0
  7. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/ccan/list/list.h +28 -166
  8. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/ccan/str/str.h +0 -0
  9. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/constant.h +3 -10
  10. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/dln.h +0 -0
  11. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/eval_intern.h +49 -89
  12. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/gc.h +1 -8
  13. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/id.h +5 -15
  14. data/lib/debase/ruby_core_source/ruby-2.2.8-p477/insns.inc +107 -0
  15. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/insns_info.inc +45 -89
  16. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/internal.h +164 -666
  17. data/lib/debase/ruby_core_source/ruby-2.2.8-p477/iseq.h +158 -0
  18. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/known_errors.inc +0 -0
  19. data/lib/debase/ruby_core_source/ruby-2.2.8-p477/method.h +144 -0
  20. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/node.h +42 -18
  21. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/node_name.inc +6 -2
  22. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/opt_sc.inc +0 -40
  23. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/optinsn.inc +0 -0
  24. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/optunifs.inc +0 -5
  25. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/parse.h +8 -28
  26. data/lib/debase/ruby_core_source/ruby-2.2.8-p477/probes_helper.h +67 -0
  27. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/regenc.h +16 -16
  28. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/regint.h +10 -33
  29. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/regparse.h +1 -5
  30. data/lib/debase/ruby_core_source/ruby-2.2.8-p477/revision.h +1 -0
  31. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/ruby_atomic.h +5 -68
  32. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/siphash.h +0 -0
  33. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/symbol.h +13 -33
  34. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/thread_pthread.h +2 -2
  35. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/thread_win32.h +0 -0
  36. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/timev.h +0 -0
  37. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/transcode_data.h +7 -23
  38. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/version.h +10 -31
  39. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/vm.inc +497 -542
  40. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/vm_core.h +305 -784
  41. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/vm_debug.h +0 -0
  42. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.2.8-p477}/vm_exec.h +0 -0
  43. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.2.8-p477}/vm_insnhelper.h +56 -50
  44. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/vm_opts.h +7 -8
  45. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.2.8-p477}/vmtc.inc +0 -5
  46. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/addr2line.h +0 -0
  47. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/ccan/build_assert/build_assert.h +0 -0
  48. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/ccan/check_type/check_type.h +0 -0
  49. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/ccan/container_of/container_of.h +0 -0
  50. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/ccan/list/list.h +0 -0
  51. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/ccan/str/str.h +0 -0
  52. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/constant.h +1 -1
  53. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/dln.h +0 -0
  54. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/encindex.h +0 -0
  55. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/eval_intern.h +3 -4
  56. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/gc.h +0 -0
  57. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.3.5-p376}/id.h +0 -9
  58. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/id_table.h +0 -0
  59. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/insns.inc +46 -48
  60. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/insns_info.inc +0 -20
  61. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/internal.h +58 -290
  62. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/iseq.h +15 -18
  63. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/known_errors.inc +0 -0
  64. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/method.h +2 -2
  65. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.3.5-p376}/node.h +2 -2
  66. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/node_name.inc +0 -0
  67. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.3.5-p376}/opt_sc.inc +0 -16
  68. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/optinsn.inc +0 -0
  69. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.3.5-p376}/optunifs.inc +0 -2
  70. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.3.5-p376}/parse.h +8 -27
  71. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/probes_helper.h +0 -0
  72. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/regenc.h +14 -14
  73. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/regint.h +0 -8
  74. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/regparse.h +0 -0
  75. data/lib/debase/ruby_core_source/ruby-2.3.5-p376/revision.h +1 -0
  76. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/ruby_atomic.h +0 -0
  77. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/siphash.h +0 -0
  78. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.3.5-p376}/symbol.h +3 -3
  79. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/thread_pthread.h +0 -0
  80. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/thread_win32.h +0 -0
  81. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/timev.h +0 -0
  82. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/transcode_data.h +0 -0
  83. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.3.5-p376}/version.h +9 -27
  84. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/vm.inc +255 -264
  85. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/vm_call_iseq_optimized.inc +5 -5
  86. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/vm_core.h +37 -28
  87. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/vm_debug.h +0 -0
  88. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/vm_exec.h +0 -0
  89. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/vm_insnhelper.h +32 -16
  90. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.3.5-p376}/vm_opts.h +0 -0
  91. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.3.5-p376}/vmtc.inc +0 -2
  92. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/addr2line.h +0 -0
  93. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/ccan/build_assert/build_assert.h +0 -0
  94. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/ccan/check_type/check_type.h +0 -0
  95. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/ccan/container_of/container_of.h +0 -0
  96. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/ccan/list/list.h +0 -0
  97. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/ccan/str/str.h +0 -0
  98. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/constant.h +0 -0
  99. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/dln.h +0 -0
  100. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/encindex.h +0 -0
  101. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/eval_intern.h +0 -0
  102. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/gc.h +0 -0
  103. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/id.h +0 -0
  104. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/id_table.h +0 -0
  105. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/insns.inc +0 -0
  106. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/insns_info.inc +0 -0
  107. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/internal.h +116 -51
  108. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/iseq.h +0 -0
  109. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/known_errors.inc +0 -0
  110. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/method.h +0 -0
  111. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/node.h +2 -2
  112. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/node_name.inc +0 -0
  113. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/opt_sc.inc +0 -0
  114. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/optinsn.inc +0 -0
  115. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/optunifs.inc +0 -0
  116. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/parse.h +8 -27
  117. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/probes_helper.h +0 -0
  118. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/regenc.h +79 -67
  119. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/regint.h +187 -244
  120. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/regparse.h +30 -27
  121. data/lib/debase/ruby_core_source/ruby-2.4.2-p198/revision.h +1 -0
  122. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/ruby_assert.h +0 -0
  123. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/ruby_atomic.h +0 -0
  124. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/siphash.h +0 -0
  125. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/symbol.h +0 -0
  126. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/thread_pthread.h +0 -0
  127. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/thread_win32.h +0 -0
  128. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/timev.h +0 -0
  129. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/transcode_data.h +0 -0
  130. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/version.h +6 -6
  131. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/vm.inc +37 -34
  132. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/vm_call_iseq_optimized.inc +0 -0
  133. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/vm_core.h +9 -7
  134. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/vm_debug.h +0 -0
  135. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/vm_exec.h +0 -0
  136. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview3 → ruby-2.4.2-p198}/vm_insnhelper.h +30 -14
  137. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview2 → ruby-2.4.2-p198}/vm_opts.h +0 -0
  138. data/lib/debase/ruby_core_source/{ruby-2.4.0-preview1 → ruby-2.4.2-p198}/vmtc.inc +0 -0
  139. data/lib/debase/ruby_core_source/version.rb +1 -1
  140. metadata +138 -143
  141. data/lib/debase/ruby_core_source/ruby-2.4.0-preview1/method.h +0 -213
  142. data/lib/debase/ruby_core_source/ruby-2.4.0-preview1/revision.h +0 -1
  143. data/lib/debase/ruby_core_source/ruby-2.4.0-preview2/revision.h +0 -1
  144. data/lib/debase/ruby_core_source/ruby-2.4.0-preview2/ruby_assert.h +0 -54
  145. data/lib/debase/ruby_core_source/ruby-2.4.0-preview3/encindex.h +0 -67
  146. data/lib/debase/ruby_core_source/ruby-2.4.0-preview3/id_table.h +0 -31
  147. data/lib/debase/ruby_core_source/ruby-2.4.0-preview3/insns.inc +0 -112
  148. data/lib/debase/ruby_core_source/ruby-2.4.0-preview3/iseq.h +0 -252
  149. data/lib/debase/ruby_core_source/ruby-2.4.0-preview3/probes_helper.h +0 -43
  150. data/lib/debase/ruby_core_source/ruby-2.4.0-preview3/revision.h +0 -1
  151. data/lib/debase/ruby_core_source/ruby-2.4.0-preview3/ruby_assert.h +0 -54
  152. data/lib/debase/ruby_core_source/ruby-2.4.0-preview3/vm_call_iseq_optimized.inc +0 -212
@@ -2,7 +2,7 @@
2
2
 
3
3
  node.h -
4
4
 
5
- $Author: hsbt $
5
+ $Author: nagachika $
6
6
  created at: Fri May 28 15:14:02 JST 1993
7
7
 
8
8
  Copyright (C) 1993-2007 Yukihiro Matsumoto
@@ -277,7 +277,7 @@ typedef struct RNode {
277
277
 
278
278
  #define NODE_LSHIFT (NODE_TYPESHIFT+7)
279
279
  #define NODE_LMASK (((SIGNED_VALUE)1<<(sizeof(VALUE)*CHAR_BIT-NODE_LSHIFT))-1)
280
- #define nd_line(n) (int)(RNODE(n)->flags>>NODE_LSHIFT)
280
+ #define nd_line(n) (int)(((SIGNED_VALUE)RNODE(n)->flags)>>NODE_LSHIFT)
281
281
  #define nd_set_line(n,l) \
282
282
  RNODE(n)->flags=((RNODE(n)->flags&~((VALUE)(-1)<<NODE_LSHIFT))|((VALUE)((l)&NODE_LMASK)<<NODE_LSHIFT))
283
283
 
@@ -1,8 +1,8 @@
1
- /* A Bison parser, made by GNU Bison 2.7.12-4996. */
1
+ /* A Bison parser, made by GNU Bison 2.5. */
2
2
 
3
3
  /* Bison interface for Yacc-like parsers in C
4
4
 
5
- Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
5
+ Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
6
6
 
7
7
  This program is free software: you can redistribute it and/or modify
8
8
  it under the terms of the GNU General Public License as published by
@@ -30,15 +30,6 @@
30
30
  This special exception was added by the Free Software Foundation in
31
31
  version 2.2 of Bison. */
32
32
 
33
- #ifndef YY_YY_Y_TAB_H_INCLUDED
34
- # define YY_YY_Y_TAB_H_INCLUDED
35
- /* Enabling traces. */
36
- #ifndef YYDEBUG
37
- # define YYDEBUG 0
38
- #endif
39
- #if YYDEBUG
40
- extern int yydebug;
41
- #endif
42
33
 
43
34
  /* Tokens. */
44
35
  #ifndef YYTOKENTYPE
@@ -167,10 +158,12 @@ extern int yydebug;
167
158
  #endif
168
159
 
169
160
 
161
+
170
162
  #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
171
163
  typedef union YYSTYPE
172
164
  {
173
- /* Line 2053 of yacc.c */
165
+
166
+ /* Line 2068 of yacc.c */
174
167
 
175
168
  VALUE val;
176
169
  NODE *node;
@@ -179,7 +172,8 @@ typedef union YYSTYPE
179
172
  const struct vtable *vars;
180
173
 
181
174
 
182
- /* Line 2053 of yacc.c */
175
+
176
+ /* Line 2068 of yacc.c */
183
177
  } YYSTYPE;
184
178
  # define YYSTYPE_IS_TRIVIAL 1
185
179
  # define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -187,18 +181,5 @@ typedef union YYSTYPE
187
181
  #endif
188
182
 
189
183
 
190
- #ifdef YYPARSE_PARAM
191
- #if defined __STDC__ || defined __cplusplus
192
- int yyparse (void *YYPARSE_PARAM);
193
- #else
194
- int yyparse ();
195
- #endif
196
- #else /* ! YYPARSE_PARAM */
197
- #if defined __STDC__ || defined __cplusplus
198
- int yyparse (struct parser_params *parser);
199
- #else
200
- int yyparse ();
201
- #endif
202
- #endif /* ! YYPARSE_PARAM */
203
184
 
204
- #endif /* !YY_YY_Y_TAB_H_INCLUDED */
185
+
@@ -1,11 +1,11 @@
1
- #ifndef ONIGURUMA_REGENC_H
2
- #define ONIGURUMA_REGENC_H
1
+ #ifndef ONIGMO_REGENC_H
2
+ #define ONIGMO_REGENC_H
3
3
  /**********************************************************************
4
4
  regenc.h - Onigmo (Oniguruma-mod) (regular expression library)
5
5
  **********************************************************************/
6
6
  /*-
7
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>
8
+ * Copyright (c) 2011-2016 K.Takata <kentkt AT csc DOT jp>
9
9
  * All rights reserved.
10
10
  *
11
11
  * Redistribution and use in source and binary forms, with or without
@@ -30,18 +30,32 @@
30
30
  * SUCH DAMAGE.
31
31
  */
32
32
 
33
- #ifndef REGINT_H
34
- #ifndef RUBY_EXTERN
35
- #include "ruby/config.h"
36
- #include "ruby/defines.h"
37
- #endif
33
+ #if !defined(RUBY) && (defined(RUBY_EXPORT) || defined(ONIG_ENC_REGISTER))
34
+ # define RUBY
38
35
  #endif
36
+ #ifdef RUBY
37
+ # ifndef ONIGMO_REGINT_H
38
+ # ifndef RUBY_EXTERN
39
+ # include "ruby/config.h"
40
+ # include "ruby/defines.h"
41
+ # endif
42
+ # endif
43
+ #else /* RUBY */
44
+ # ifndef PACKAGE
45
+ /* PACKAGE is defined in config.h */
46
+ # include "config.h"
47
+ # endif
48
+ #endif /* RUBY */
39
49
 
40
50
  #ifdef ONIG_ESCAPE_UCHAR_COLLISION
41
- #undef ONIG_ESCAPE_UCHAR_COLLISION
51
+ # undef ONIG_ESCAPE_UCHAR_COLLISION
42
52
  #endif
43
53
 
44
- #include "ruby/oniguruma.h"
54
+ #ifdef RUBY
55
+ # include "ruby/onigmo.h"
56
+ #else
57
+ # include "onigmo.h"
58
+ #endif
45
59
 
46
60
  RUBY_SYMBOL_EXPORT_BEGIN
47
61
 
@@ -52,23 +66,23 @@ typedef struct {
52
66
 
53
67
 
54
68
  #ifndef NULL
55
- #define NULL ((void* )0)
69
+ # define NULL ((void* )0)
56
70
  #endif
57
71
 
58
72
  #ifndef TRUE
59
- #define TRUE 1
73
+ # define TRUE 1
60
74
  #endif
61
75
 
62
76
  #ifndef FALSE
63
- #define FALSE 0
77
+ # define FALSE 0
64
78
  #endif
65
79
 
66
80
  #ifndef ARG_UNUSED
67
- #if defined(__GNUC__)
81
+ # if defined(__GNUC__)
68
82
  # define ARG_UNUSED __attribute__ ((unused))
69
- #else
83
+ # else
70
84
  # define ARG_UNUSED
71
- #endif
85
+ # endif
72
86
  #endif
73
87
 
74
88
  #define ONIG_IS_NULL(p) (((void*)(p)) == (void*)0)
@@ -111,7 +125,7 @@ typedef struct {
111
125
  {(short int )(sizeof(name) - 1), (name), (ctype)}
112
126
 
113
127
  #ifndef numberof
114
- #define numberof(array) (int )(sizeof(array) / sizeof((array)[0]))
128
+ # define numberof(array) (int )(sizeof(array) / sizeof((array)[0]))
115
129
  #endif
116
130
 
117
131
 
@@ -125,58 +139,56 @@ typedef struct {
125
139
  #define ONIG_ENCODING_INIT_DEFAULT ONIG_ENCODING_ASCII
126
140
 
127
141
  /* 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
- CONSTFUNC(ONIG_EXTERN int onigenc_not_support_get_ctype_code_range P_((OnigCtype ctype, OnigCodePoint* sb_out, const OnigCodePoint* ranges[], OnigEncoding enc)));
133
- PUREFUNC(ONIG_EXTERN int onigenc_is_mbc_newline_0x0a P_((const UChar* p, const UChar* end, OnigEncoding enc)));
134
-
135
- #ifdef ONIG_CASE_MAPPING
136
- ONIG_EXTERN int onigenc_single_byte_ascii_only_case_map P_((OnigCaseFoldType* flagP, const OnigUChar** pp, const OnigUChar* end, OnigUChar* to, OnigUChar* to_end, const struct OnigEncodingTypeST* enc));
137
- #endif /* ONIG_CASE_MAPPING */
142
+ ONIG_EXTERN int onigenc_ascii_apply_all_case_fold(OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void* arg, OnigEncoding enc);
143
+ ONIG_EXTERN int onigenc_ascii_get_case_fold_codes_by_str(OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem items[], OnigEncoding enc);
144
+ ONIG_EXTERN int onigenc_apply_all_case_fold_with_map(int map_size, const OnigPairCaseFoldCodes map[], int ess_tsett_flag, OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void* arg);
145
+ ONIG_EXTERN int onigenc_get_case_fold_codes_by_str_with_map(int map_size, const OnigPairCaseFoldCodes map[], int ess_tsett_flag, OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem items[]);
146
+ ONIG_EXTERN int onigenc_not_support_get_ctype_code_range(OnigCtype ctype, OnigCodePoint* sb_out, const OnigCodePoint* ranges[], OnigEncoding enc);
147
+ ONIG_EXTERN int onigenc_is_mbc_newline_0x0a(const UChar* p, const UChar* end, OnigEncoding enc);
148
+ ONIG_EXTERN int onigenc_single_byte_ascii_only_case_map(OnigCaseFoldType* flagP, const OnigUChar** pp, const OnigUChar* end, OnigUChar* to, OnigUChar* to_end, const struct OnigEncodingTypeST* enc);
138
149
 
139
150
 
140
151
  /* methods for single byte encoding */
141
- ONIG_EXTERN int onigenc_ascii_mbc_case_fold P_((OnigCaseFoldType flag, const UChar** p, const UChar* end, UChar* lower, OnigEncoding enc));
142
- CONSTFUNC(ONIG_EXTERN int onigenc_single_byte_mbc_enc_len P_((const UChar* p, const UChar* e, OnigEncoding enc)));
143
- PUREFUNC(ONIG_EXTERN OnigCodePoint onigenc_single_byte_mbc_to_code P_((const UChar* p, const UChar* end, OnigEncoding enc)));
144
- CONSTFUNC(ONIG_EXTERN int onigenc_single_byte_code_to_mbclen P_((OnigCodePoint code, OnigEncoding enc)));
145
- ONIG_EXTERN int onigenc_single_byte_code_to_mbc P_((OnigCodePoint code, UChar *buf, OnigEncoding enc));
146
- CONSTFUNC(ONIG_EXTERN UChar* onigenc_single_byte_left_adjust_char_head P_((const UChar* start, const UChar* s, const OnigUChar* end, OnigEncoding enc)));
147
- CONSTFUNC(ONIG_EXTERN int onigenc_always_true_is_allowed_reverse_match P_((const UChar* s, const UChar* end, OnigEncoding enc)));
148
- CONSTFUNC(ONIG_EXTERN int onigenc_always_false_is_allowed_reverse_match P_((const UChar* s, const UChar* end, OnigEncoding enc)));
149
- CONSTFUNC(ONIG_EXTERN int onigenc_ascii_is_code_ctype P_((OnigCodePoint code, unsigned int ctype, OnigEncoding enc)));
152
+ ONIG_EXTERN int onigenc_ascii_mbc_case_fold(OnigCaseFoldType flag, const UChar** p, const UChar* end, UChar* lower, OnigEncoding enc);
153
+ ONIG_EXTERN int onigenc_single_byte_mbc_enc_len(const UChar* p, const UChar* e, OnigEncoding enc);
154
+ ONIG_EXTERN OnigCodePoint onigenc_single_byte_mbc_to_code(const UChar* p, const UChar* end, OnigEncoding enc);
155
+ ONIG_EXTERN int onigenc_single_byte_code_to_mbclen(OnigCodePoint code, OnigEncoding enc);
156
+ ONIG_EXTERN int onigenc_single_byte_code_to_mbc(OnigCodePoint code, UChar *buf, OnigEncoding enc);
157
+ ONIG_EXTERN UChar* onigenc_single_byte_left_adjust_char_head(const UChar* start, const UChar* s, const OnigUChar* end, OnigEncoding enc);
158
+ ONIG_EXTERN int onigenc_always_true_is_allowed_reverse_match(const UChar* s, const UChar* end, OnigEncoding enc);
159
+ ONIG_EXTERN int onigenc_always_false_is_allowed_reverse_match(const UChar* s, const UChar* end, OnigEncoding enc);
160
+ ONIG_EXTERN int onigenc_ascii_is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc);
150
161
 
151
162
  /* methods for multi byte encoding */
152
- ONIG_EXTERN OnigCodePoint onigenc_mbn_mbc_to_code P_((OnigEncoding enc, const UChar* p, const UChar* end));
153
- ONIG_EXTERN int onigenc_mbn_mbc_case_fold P_((OnigEncoding enc, OnigCaseFoldType flag, const UChar** p, const UChar* end, UChar* lower));
154
- CONSTFUNC(ONIG_EXTERN int onigenc_mb2_code_to_mbclen P_((OnigCodePoint code, OnigEncoding enc)));
155
- ONIG_EXTERN int onigenc_mb2_code_to_mbc P_((OnigEncoding enc, OnigCodePoint code, UChar *buf));
156
- ONIG_EXTERN int onigenc_minimum_property_name_to_ctype P_((OnigEncoding enc, const UChar* p, const UChar* end));
157
- ONIG_EXTERN int onigenc_unicode_property_name_to_ctype P_((OnigEncoding enc, const UChar* p, const UChar* end));
158
- ONIG_EXTERN int onigenc_mb2_is_code_ctype P_((OnigEncoding enc, OnigCodePoint code, unsigned int ctype));
159
- CONSTFUNC(ONIG_EXTERN int onigenc_mb4_code_to_mbclen P_((OnigCodePoint code, OnigEncoding enc)));
160
- ONIG_EXTERN int onigenc_mb4_code_to_mbc P_((OnigEncoding enc, OnigCodePoint code, UChar *buf));
161
- ONIG_EXTERN int onigenc_mb4_is_code_ctype P_((OnigEncoding enc, OnigCodePoint code, unsigned int ctype));
162
-
163
- #ifdef ONIG_CASE_MAPPING
164
- ONIG_EXTERN int onigenc_unicode_case_map P_((OnigCaseFoldType* flagP, const OnigUChar** pp, const OnigUChar* end, OnigUChar* to, OnigUChar* to_end, const struct OnigEncodingTypeST* enc));
165
- #endif /* ONIG_CASE_MAPPING */
163
+ ONIG_EXTERN OnigCodePoint onigenc_mbn_mbc_to_code(OnigEncoding enc, const UChar* p, const UChar* end);
164
+ ONIG_EXTERN int onigenc_mbn_mbc_case_fold(OnigEncoding enc, OnigCaseFoldType flag, const UChar** p, const UChar* end, UChar* lower);
165
+ ONIG_EXTERN int onigenc_mb2_code_to_mbclen(OnigCodePoint code, OnigEncoding enc);
166
+ ONIG_EXTERN int onigenc_mb2_code_to_mbc(OnigEncoding enc, OnigCodePoint code, UChar *buf);
167
+ ONIG_EXTERN int onigenc_minimum_property_name_to_ctype(OnigEncoding enc, const UChar* p, const UChar* end);
168
+ ONIG_EXTERN int onigenc_unicode_property_name_to_ctype(OnigEncoding enc, const UChar* p, const UChar* end);
169
+ ONIG_EXTERN int onigenc_mb2_is_code_ctype(OnigEncoding enc, OnigCodePoint code, unsigned int ctype);
170
+ ONIG_EXTERN int onigenc_mb4_code_to_mbclen(OnigCodePoint code, OnigEncoding enc);
171
+ ONIG_EXTERN int onigenc_mb4_code_to_mbc(OnigEncoding enc, OnigCodePoint code, UChar *buf);
172
+ ONIG_EXTERN int onigenc_mb4_is_code_ctype(OnigEncoding enc, OnigCodePoint code, unsigned int ctype);
173
+
174
+ ONIG_EXTERN int onigenc_unicode_case_map(OnigCaseFoldType* flagP, const OnigUChar** pp, const OnigUChar* end, OnigUChar* to, OnigUChar* to_end, const struct OnigEncodingTypeST* enc);
166
175
 
167
176
 
168
177
  /* in enc/unicode.c */
169
- ONIG_EXTERN int onigenc_unicode_is_code_ctype P_((OnigCodePoint code, unsigned int ctype, OnigEncoding enc));
170
- ONIG_EXTERN int onigenc_utf16_32_get_ctype_code_range P_((OnigCtype ctype, OnigCodePoint *sb_out, const OnigCodePoint* ranges[], OnigEncoding enc));
171
- ONIG_EXTERN int onigenc_unicode_ctype_code_range P_((int ctype, const OnigCodePoint* ranges[]));
172
- ONIG_EXTERN int onigenc_unicode_get_case_fold_codes_by_str P_((OnigEncoding enc, OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem items[]));
173
- ONIG_EXTERN int onigenc_unicode_mbc_case_fold P_((OnigEncoding enc, OnigCaseFoldType flag, const UChar** pp, const UChar* end, UChar* fold));
174
- ONIG_EXTERN int onigenc_unicode_apply_all_case_fold P_((OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void* arg, OnigEncoding enc));
178
+ ONIG_EXTERN int onigenc_unicode_is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc);
179
+ ONIG_EXTERN int onigenc_utf16_32_get_ctype_code_range(OnigCtype ctype, OnigCodePoint *sb_out, const OnigCodePoint* ranges[], OnigEncoding enc);
180
+ ONIG_EXTERN int onigenc_unicode_ctype_code_range(int ctype, const OnigCodePoint* ranges[]);
181
+ ONIG_EXTERN int onigenc_unicode_get_case_fold_codes_by_str(OnigEncoding enc, OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem items[]);
182
+ ONIG_EXTERN int onigenc_unicode_mbc_case_fold(OnigEncoding enc, OnigCaseFoldType flag, const UChar** pp, const UChar* end, UChar* fold);
183
+ ONIG_EXTERN int onigenc_unicode_apply_all_case_fold(OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void* arg, OnigEncoding enc);
175
184
 
176
185
 
177
186
  #define UTF16_IS_SURROGATE_FIRST(c) (((c) & 0xfc) == 0xd8)
178
187
  #define UTF16_IS_SURROGATE_SECOND(c) (((c) & 0xfc) == 0xdc)
179
188
  #define UTF16_IS_SURROGATE(c) (((c) & 0xf8) == 0xd8)
189
+ #define UNICODE_VALID_CODEPOINT_P(c) ( \
190
+ ((c) <= 0x10ffff) && \
191
+ !((c) < 0x10000 && UTF16_IS_SURROGATE((c) >> 8)))
180
192
 
181
193
  #define ONIGENC_ISO_8859_1_TO_LOWER_CASE(c) \
182
194
  OnigEncISO_8859_1_ToLowerCaseTable[c]
@@ -187,14 +199,14 @@ ONIG_EXTERN const UChar OnigEncISO_8859_1_ToLowerCaseTable[];
187
199
  ONIG_EXTERN const UChar OnigEncISO_8859_1_ToUpperCaseTable[];
188
200
 
189
201
  ONIG_EXTERN int
190
- onigenc_with_ascii_strncmp P_((OnigEncoding enc, const UChar* p, const UChar* end, const UChar* sascii /* ascii */, int n));
202
+ onigenc_with_ascii_strncmp(OnigEncoding enc, const UChar* p, const UChar* end, const UChar* sascii /* ascii */, int n);
191
203
  ONIG_EXTERN int
192
- onigenc_with_ascii_strnicmp P_((OnigEncoding enc, const UChar* p, const UChar* end, const UChar* sascii /* ascii */, int n));
204
+ onigenc_with_ascii_strnicmp(OnigEncoding enc, const UChar* p, const UChar* end, const UChar* sascii /* ascii */, int n);
193
205
  ONIG_EXTERN UChar*
194
- onigenc_step P_((OnigEncoding enc, const UChar* p, const UChar* end, int n));
206
+ onigenc_step(OnigEncoding enc, const UChar* p, const UChar* end, int n);
195
207
 
196
208
  /* defined in regexec.c, but used in enc/xxx.c */
197
- extern int onig_is_in_code_range P_((const UChar* p, OnigCodePoint code));
209
+ extern int onig_is_in_code_range(const UChar* p, OnigCodePoint code);
198
210
 
199
211
  ONIG_EXTERN OnigEncoding OnigEncDefaultCharEncoding;
200
212
  ONIG_EXTERN const UChar OnigEncAsciiToLowerCaseTable[];
@@ -217,9 +229,9 @@ ONIG_EXTERN const unsigned short OnigEncAsciiCtypeTable[];
217
229
 
218
230
  #ifdef ONIG_ENC_REGISTER
219
231
  extern int ONIG_ENC_REGISTER(const char *, OnigEncoding);
220
- #define OnigEncodingName(n) encoding_##n
221
- #define OnigEncodingDeclare(n) static const OnigEncodingType OnigEncodingName(n)
222
- #define OnigEncodingDefine(f,n) \
232
+ # define OnigEncodingName(n) encoding_##n
233
+ # define OnigEncodingDeclare(n) static const OnigEncodingType OnigEncodingName(n)
234
+ # define OnigEncodingDefine(f,n) \
223
235
  OnigEncodingDeclare(n); \
224
236
  void Init_##f(void) { \
225
237
  ONIG_ENC_REGISTER(OnigEncodingName(n).name, \
@@ -227,9 +239,9 @@ extern int ONIG_ENC_REGISTER(const char *, OnigEncoding);
227
239
  } \
228
240
  OnigEncodingDeclare(n)
229
241
  #else
230
- #define OnigEncodingName(n) OnigEncoding##n
231
- #define OnigEncodingDeclare(n) const OnigEncodingType OnigEncodingName(n)
232
- #define OnigEncodingDefine(f,n) OnigEncodingDeclare(n)
242
+ # define OnigEncodingName(n) OnigEncoding##n
243
+ # define OnigEncodingDeclare(n) const OnigEncodingType OnigEncodingName(n)
244
+ # define OnigEncodingDefine(f,n) OnigEncodingDeclare(n)
233
245
  #endif
234
246
 
235
247
  /* macros for define replica encoding and encoding alias */
@@ -239,4 +251,4 @@ extern int ONIG_ENC_REGISTER(const char *, OnigEncoding);
239
251
 
240
252
  RUBY_SYMBOL_EXPORT_END
241
253
 
242
- #endif /* ONIGURUMA_REGENC_H */
254
+ #endif /* ONIGMO_REGENC_H */
@@ -1,11 +1,11 @@
1
- #ifndef ONIGURUMA_REGINT_H
2
- #define ONIGURUMA_REGINT_H
1
+ #ifndef ONIGMO_REGINT_H
2
+ #define ONIGMO_REGINT_H
3
3
  /**********************************************************************
4
4
  regint.h - Onigmo (Oniguruma-mod) (regular expression library)
5
5
  **********************************************************************/
6
6
  /*-
7
7
  * Copyright (c) 2002-2013 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>
8
- * Copyright (c) 2011-2014 K.Takata <kentkt AT csc DOT jp>
8
+ * Copyright (c) 2011-2016 K.Takata <kentkt AT csc DOT jp>
9
9
  * All rights reserved.
10
10
  *
11
11
  * Redistribution and use in source and binary forms, with or without
@@ -35,6 +35,7 @@
35
35
  /* #define ONIG_DEBUG_COMPILE */
36
36
  /* #define ONIG_DEBUG_SEARCH */
37
37
  /* #define ONIG_DEBUG_MATCH */
38
+ /* #define ONIG_DEBUG_MEMLEAK */
38
39
  /* #define ONIG_DONT_OPTIMIZE */
39
40
 
40
41
  /* for byte-code statistical data. */
@@ -42,25 +43,25 @@
42
43
 
43
44
  #if defined(ONIG_DEBUG_PARSE_TREE) || defined(ONIG_DEBUG_MATCH) || \
44
45
  defined(ONIG_DEBUG_SEARCH) || defined(ONIG_DEBUG_COMPILE) || \
45
- defined(ONIG_DEBUG_STATISTICS)
46
- #ifndef ONIG_DEBUG
47
- #define ONIG_DEBUG
48
- #endif
46
+ defined(ONIG_DEBUG_STATISTICS) || defined(ONIG_DEBUG_MEMLEAK)
47
+ # ifndef ONIG_DEBUG
48
+ # define ONIG_DEBUG
49
+ # endif
49
50
  #endif
50
51
 
51
52
  #ifndef UNALIGNED_WORD_ACCESS
52
- #if defined(__i386) || defined(__i386__) || defined(_M_IX86) || \
53
- defined(__x86_64) || defined(__x86_64__) || defined(_M_AMD64) || \
54
- defined(__powerpc64__) || \
55
- defined(__mc68020__)
56
- #define UNALIGNED_WORD_ACCESS 1
57
- #else
58
- #define UNALIGNED_WORD_ACCESS 0
59
- #endif
53
+ # if defined(__i386) || defined(__i386__) || defined(_M_IX86) || \
54
+ defined(__x86_64) || defined(__x86_64__) || defined(_M_AMD64) || \
55
+ defined(__powerpc64__) || \
56
+ defined(__mc68020__)
57
+ # define UNALIGNED_WORD_ACCESS 1
58
+ # else
59
+ # define UNALIGNED_WORD_ACCESS 0
60
+ # endif
60
61
  #endif
61
62
 
62
63
  #if UNALIGNED_WORD_ACCESS
63
- #define PLATFORM_UNALIGNED_WORD_ACCESS
64
+ # define PLATFORM_UNALIGNED_WORD_ACCESS
64
65
  #endif
65
66
 
66
67
  /* config */
@@ -73,213 +74,165 @@
73
74
  #define USE_MONOMANIAC_CHECK_CAPTURES_IN_ENDLESS_REPEAT /* /(?:()|())*\2/ */
74
75
  #define USE_NEWLINE_AT_END_OF_STRING_HAS_EMPTY_LINE /* /\n$/ =~ "\n" */
75
76
  #define USE_WARNING_REDUNDANT_NESTED_REPEAT_OPERATOR
76
- /* #define USE_RECOMPILE_API */
77
77
  /* !!! moved to regenc.h. */ /* #define USE_CRNL_AS_LINE_TERMINATOR */
78
78
  #define USE_NO_INVALID_QUANTIFIER
79
79
 
80
80
  /* internal config */
81
- #define USE_PARSE_TREE_NODE_RECYCLE
82
- #define USE_OP_PUSH_OR_JUMP_EXACT
81
+ /* #define USE_OP_PUSH_OR_JUMP_EXACT */
83
82
  #define USE_QTFR_PEEK_NEXT
84
83
  #define USE_ST_LIBRARY
85
- #define USE_SHARED_CCLASS_TABLE
86
84
  #define USE_SUNDAY_QUICK_SEARCH
87
85
 
88
86
  #define INIT_MATCH_STACK_SIZE 160
89
87
  #define DEFAULT_MATCH_STACK_LIMIT_SIZE 0 /* unlimited */
88
+ #define DEFAULT_PARSE_DEPTH_LIMIT 4096
89
+
90
+ #define OPT_EXACT_MAXLEN 24
90
91
 
91
92
  /* check config */
92
93
  #if defined(USE_PERL_SUBEXP_CALL) || defined(USE_CAPITAL_P_NAMED_GROUP)
93
- #if !defined(USE_NAMED_GROUP) || !defined(USE_SUBEXP_CALL)
94
- #error USE_NAMED_GROUP and USE_SUBEXP_CALL must be defined.
95
- #endif
94
+ # if !defined(USE_NAMED_GROUP) || !defined(USE_SUBEXP_CALL)
95
+ # error USE_NAMED_GROUP and USE_SUBEXP_CALL must be defined.
96
+ # endif
96
97
  #endif
97
98
 
98
99
  #if defined(__GNUC__)
99
- # define ARG_UNUSED __attribute__ ((unused))
100
+ # define ARG_UNUSED __attribute__ ((unused))
100
101
  #else
101
- # define ARG_UNUSED
102
+ # define ARG_UNUSED
102
103
  #endif
103
104
 
104
- #ifndef RUBY_DEFINES_H
105
- #include "ruby/ruby.h"
106
- #undef xmalloc
107
- #undef xrealloc
108
- #undef xcalloc
109
- #undef xfree
105
+ #if !defined(RUBY) && defined(RUBY_EXPORT)
106
+ # define RUBY
110
107
  #endif
108
+ #ifdef RUBY
109
+ # ifndef RUBY_DEFINES_H
110
+ # include "ruby/ruby.h"
111
+ # undef xmalloc
112
+ # undef xrealloc
113
+ # undef xcalloc
114
+ # undef xfree
115
+ # endif
116
+ #else /* RUBY */
117
+ # include "config.h"
118
+ # if SIZEOF_LONG_LONG > 0
119
+ # define LONG_LONG long long
120
+ # endif
121
+ #endif /* RUBY */
122
+
123
+ #include <stdarg.h>
111
124
 
112
125
  /* */
113
126
  /* escape other system UChar definition */
114
127
  #ifdef ONIG_ESCAPE_UCHAR_COLLISION
115
- #undef ONIG_ESCAPE_UCHAR_COLLISION
128
+ # undef ONIG_ESCAPE_UCHAR_COLLISION
116
129
  #endif
117
130
 
118
131
  #define USE_WORD_BEGIN_END /* "\<": word-begin, "\>": word-end */
119
- #undef USE_CAPTURE_HISTORY
132
+ #ifdef RUBY
133
+ # undef USE_CAPTURE_HISTORY
134
+ #else
135
+ # define USE_CAPTURE_HISTORY
136
+ #endif
120
137
  #define USE_VARIABLE_META_CHARS
121
- #define USE_POSIX_API_REGION_OPTION /* needed for POSIX API support */
122
138
  #define USE_FIND_LONGEST_SEARCH_ALL_OF_RANGE
123
139
  /* #define USE_COMBINATION_EXPLOSION_CHECK */ /* (X*)* */
124
140
 
125
- /* multithread config */
126
- /* #define USE_MULTI_THREAD_SYSTEM */
127
- /* #define USE_DEFAULT_MULTI_THREAD_SYSTEM */
128
-
129
- #if defined(USE_MULTI_THREAD_SYSTEM) \
130
- && defined(USE_DEFAULT_MULTI_THREAD_SYSTEM)
131
-
132
- #ifdef _WIN32
133
- #define WIN32_LEAN_AND_MEAN
134
- #include <windows.h>
135
- extern CRITICAL_SECTION gOnigMutex;
136
- #define THREAD_SYSTEM_INIT InitializeCriticalSection(&gOnigMutex)
137
- #define THREAD_SYSTEM_END DeleteCriticalSection(&gOnigMutex)
138
- #define THREAD_ATOMIC_START EnterCriticalSection(&gOnigMutex)
139
- #define THREAD_ATOMIC_END LeaveCriticalSection(&gOnigMutex)
140
- #define THREAD_PASS Sleep(0)
141
- #else /* _WIN32 */
142
- #include <pthread.h>
143
- #include <sched.h>
144
- extern pthread_mutex_t gOnigMutex;
145
- #define THREAD_SYSTEM_INIT pthread_mutex_init(&gOnigMutex, NULL)
146
- #define THREAD_SYSTEM_END pthread_mutex_destroy(&gOnigMutex)
147
- #define THREAD_ATOMIC_START pthread_mutex_lock(&gOnigMutex)
148
- #define THREAD_ATOMIC_END pthread_mutex_unlock(&gOnigMutex)
149
- #define THREAD_PASS sched_yield()
150
- #endif /* _WIN32 */
151
-
152
- #else /* USE_DEFAULT_MULTI_THREAD_SYSTEM */
153
-
154
- #ifndef THREAD_SYSTEM_INIT
155
- #define THREAD_SYSTEM_INIT /* depend on thread system */
156
- #endif
157
- #ifndef THREAD_SYSTEM_END
158
- #define THREAD_SYSTEM_END /* depend on thread system */
159
- #endif
160
- #ifndef THREAD_ATOMIC_START
161
- #define THREAD_ATOMIC_START /* depend on thread system */
162
- #endif
163
- #ifndef THREAD_ATOMIC_END
164
- #define THREAD_ATOMIC_END /* depend on thread system */
165
- #endif
166
- #ifndef THREAD_PASS
167
- #define THREAD_PASS /* depend on thread system */
168
- #endif
169
-
170
- #endif /* USE_DEFAULT_MULTI_THREAD_SYSTEM */
171
141
 
172
142
  #ifndef xmalloc
173
- #define xmalloc malloc
174
- #define xrealloc realloc
175
- #define xcalloc calloc
176
- #define xfree free
143
+ # define xmalloc malloc
144
+ # define xrealloc realloc
145
+ # define xcalloc calloc
146
+ # define xfree free
177
147
  #endif
178
148
 
179
149
  #ifdef RUBY
180
150
 
181
- #define CHECK_INTERRUPT_IN_MATCH_AT rb_thread_check_ints()
182
- #define onig_st_init_table st_init_table
183
- #define onig_st_init_table_with_size st_init_table_with_size
184
- #define onig_st_init_numtable st_init_numtable
185
- #define onig_st_init_numtable_with_size st_init_numtable_with_size
186
- #define onig_st_init_strtable st_init_strtable
187
- #define onig_st_init_strtable_with_size st_init_strtable_with_size
188
- #define onig_st_delete st_delete
189
- #define onig_st_delete_safe st_delete_safe
190
- #define onig_st_insert st_insert
191
- #define onig_st_lookup st_lookup
192
- #define onig_st_foreach st_foreach
193
- #define onig_st_add_direct st_add_direct
194
- #define onig_st_free_table st_free_table
195
- #define onig_st_cleanup_safe st_cleanup_safe
196
- #define onig_st_copy st_copy
197
- #define onig_st_nothing_key_clone st_nothing_key_clone
198
- #define onig_st_nothing_key_free st_nothing_key_free
199
- #define onig_st_is_member st_is_member
200
-
201
- #define USE_UPPER_CASE_TABLE
202
- #else
203
-
204
- #define CHECK_INTERRUPT_IN_MATCH_AT
205
-
206
- #define st_init_table onig_st_init_table
207
- #define st_init_table_with_size onig_st_init_table_with_size
208
- #define st_init_numtable onig_st_init_numtable
209
- #define st_init_numtable_with_size onig_st_init_numtable_with_size
210
- #define st_init_strtable onig_st_init_strtable
211
- #define st_init_strtable_with_size onig_st_init_strtable_with_size
212
- #define st_delete onig_st_delete
213
- #define st_delete_safe onig_st_delete_safe
214
- #define st_insert onig_st_insert
215
- #define st_lookup onig_st_lookup
216
- #define st_foreach onig_st_foreach
217
- #define st_add_direct onig_st_add_direct
218
- #define st_free_table onig_st_free_table
219
- #define st_cleanup_safe onig_st_cleanup_safe
220
- #define st_copy onig_st_copy
221
- #define st_nothing_key_clone onig_st_nothing_key_clone
222
- #define st_nothing_key_free onig_st_nothing_key_free
151
+ # define CHECK_INTERRUPT_IN_MATCH_AT rb_thread_check_ints()
152
+ # define onig_st_init_table st_init_table
153
+ # define onig_st_init_table_with_size st_init_table_with_size
154
+ # define onig_st_init_numtable st_init_numtable
155
+ # define onig_st_init_numtable_with_size st_init_numtable_with_size
156
+ # define onig_st_init_strtable st_init_strtable
157
+ # define onig_st_init_strtable_with_size st_init_strtable_with_size
158
+ # define onig_st_delete st_delete
159
+ # define onig_st_delete_safe st_delete_safe
160
+ # define onig_st_insert st_insert
161
+ # define onig_st_lookup st_lookup
162
+ # define onig_st_foreach st_foreach
163
+ # define onig_st_add_direct st_add_direct
164
+ # define onig_st_free_table st_free_table
165
+ # define onig_st_cleanup_safe st_cleanup_safe
166
+ # define onig_st_copy st_copy
167
+ # define onig_st_nothing_key_clone st_nothing_key_clone
168
+ # define onig_st_nothing_key_free st_nothing_key_free
169
+ # define onig_st_is_member st_is_member
170
+
171
+ # define USE_UPPER_CASE_TABLE
172
+ #else /* RUBY */
173
+
174
+ # define CHECK_INTERRUPT_IN_MATCH_AT
175
+
176
+ # define st_init_table onig_st_init_table
177
+ # define st_init_table_with_size onig_st_init_table_with_size
178
+ # define st_init_numtable onig_st_init_numtable
179
+ # define st_init_numtable_with_size onig_st_init_numtable_with_size
180
+ # define st_init_strtable onig_st_init_strtable
181
+ # define st_init_strtable_with_size onig_st_init_strtable_with_size
182
+ # define st_delete onig_st_delete
183
+ # define st_delete_safe onig_st_delete_safe
184
+ # define st_insert onig_st_insert
185
+ # define st_lookup onig_st_lookup
186
+ # define st_foreach onig_st_foreach
187
+ # define st_add_direct onig_st_add_direct
188
+ # define st_free_table onig_st_free_table
189
+ # define st_cleanup_safe onig_st_cleanup_safe
190
+ # define st_copy onig_st_copy
191
+ # define st_nothing_key_clone onig_st_nothing_key_clone
192
+ # define st_nothing_key_free onig_st_nothing_key_free
223
193
  /* */
224
- #define onig_st_is_member st_is_member
194
+ # define onig_st_is_member st_is_member
225
195
 
226
- #endif
196
+ #endif /* RUBY */
227
197
 
228
198
  #define STATE_CHECK_STRING_THRESHOLD_LEN 7
229
199
  #define STATE_CHECK_BUFF_MAX_SIZE 0x4000
230
200
 
231
- #define THREAD_PASS_LIMIT_COUNT 8
232
201
  #define xmemset memset
233
202
  #define xmemcpy memcpy
234
203
  #define xmemmove memmove
235
204
 
236
- #if defined(_WIN32) && !defined(__GNUC__)
237
- #define xalloca _alloca
238
- #define xvsnprintf _vsnprintf
205
+ #if ((defined(RUBY_MSVCRT_VERSION) && RUBY_MSVCRT_VERSION >= 90) \
206
+ || (!defined(RUBY_MSVCRT_VERSION) && defined(_WIN32))) \
207
+ && !defined(__GNUC__)
208
+ # define xalloca _alloca
209
+ # define xvsnprintf(buf,size,fmt,args) _vsnprintf_s(buf,size,_TRUNCATE,fmt,args)
210
+ # define xsnprintf sprintf_s
211
+ # define xstrcat(dest,src,size) strcat_s(dest,size,src)
239
212
  #else
240
- #define xalloca alloca
241
- #define xvsnprintf vsnprintf
213
+ # define xalloca alloca
214
+ # define xvsnprintf vsnprintf
215
+ # define xsnprintf snprintf
216
+ # define xstrcat(dest,src,size) strcat(dest,src)
242
217
  #endif
243
218
 
219
+ #if defined(ONIG_DEBUG_MEMLEAK) && defined(_MSC_VER)
220
+ # define _CRTDBG_MAP_ALLOC
221
+ # include <malloc.h>
222
+ # include <crtdbg.h>
223
+ #endif
244
224
 
245
- #if defined(USE_RECOMPILE_API) && defined(USE_MULTI_THREAD_SYSTEM)
246
- #define ONIG_STATE_INC(reg) (reg)->state++
247
- #define ONIG_STATE_DEC(reg) (reg)->state--
248
-
249
- #define ONIG_STATE_INC_THREAD(reg) do {\
250
- THREAD_ATOMIC_START;\
251
- (reg)->state++;\
252
- THREAD_ATOMIC_END;\
253
- } while(0)
254
- #define ONIG_STATE_DEC_THREAD(reg) do {\
255
- THREAD_ATOMIC_START;\
256
- (reg)->state--;\
257
- THREAD_ATOMIC_END;\
258
- } while(0)
259
- #else
260
- #define ONIG_STATE_INC(reg) /* Nothing */
261
- #define ONIG_STATE_DEC(reg) /* Nothing */
262
- #define ONIG_STATE_INC_THREAD(reg) /* Nothing */
263
- #define ONIG_STATE_DEC_THREAD(reg) /* Nothing */
264
- #endif /* USE_RECOMPILE_API && USE_MULTI_THREAD_SYSTEM */
265
-
266
- #ifdef HAVE_STDLIB_H
267
225
  #include <stdlib.h>
268
- #endif
269
226
 
270
227
  #if defined(HAVE_ALLOCA_H) && (defined(_AIX) || !defined(__GNUC__))
271
- #include <alloca.h>
228
+ # include <alloca.h>
272
229
  #endif
273
230
 
274
- #ifdef HAVE_STRING_H
275
- # include <string.h>
276
- #else
277
- # include <strings.h>
278
- #endif
231
+ #include <string.h>
279
232
 
280
233
  #include <ctype.h>
281
234
  #ifdef HAVE_SYS_TYPES_H
282
- #include <sys/types.h>
235
+ # include <sys/types.h>
283
236
  #endif
284
237
 
285
238
  #ifdef HAVE_STDINT_H
@@ -290,12 +243,10 @@ extern pthread_mutex_t gOnigMutex;
290
243
  # include <inttypes.h>
291
244
  #endif
292
245
 
293
- #ifdef STDC_HEADERS
294
- # include <stddef.h>
295
- #endif
246
+ #include <stddef.h>
296
247
 
297
248
  #ifdef _WIN32
298
- #include <malloc.h> /* for alloca() */
249
+ # include <malloc.h> /* for alloca() */
299
250
  #endif
300
251
 
301
252
  #ifdef ONIG_DEBUG
@@ -303,28 +254,32 @@ extern pthread_mutex_t gOnigMutex;
303
254
  #endif
304
255
 
305
256
  #ifdef _WIN32
306
- #if defined(_MSC_VER) && (_MSC_VER < 1300)
307
- #ifndef _INTPTR_T_DEFINED
308
- #define _INTPTR_T_DEFINED
257
+ # if defined(_MSC_VER) && (_MSC_VER < 1300)
258
+ # ifndef _INTPTR_T_DEFINED
259
+ # define _INTPTR_T_DEFINED
309
260
  typedef int intptr_t;
310
- #endif
311
- #ifndef _UINTPTR_T_DEFINED
312
- #define _UINTPTR_T_DEFINED
261
+ # endif
262
+ # ifndef _UINTPTR_T_DEFINED
263
+ # define _UINTPTR_T_DEFINED
313
264
  typedef unsigned int uintptr_t;
314
- #endif
315
- #endif
265
+ # endif
266
+ # endif
316
267
  #endif /* _WIN32 */
317
268
 
318
269
  #ifndef PRIdPTR
319
- #ifdef _WIN64
320
- #define PRIdPTR "I64d"
321
- #define PRIuPTR "I64u"
322
- #define PRIxPTR "I64x"
323
- #else
324
- #define PRIdPTR "ld"
325
- #define PRIuPTR "lu"
326
- #define PRIxPTR "lx"
270
+ # ifdef _WIN64
271
+ # define PRIdPTR "I64d"
272
+ # define PRIuPTR "I64u"
273
+ # define PRIxPTR "I64x"
274
+ # else
275
+ # define PRIdPTR "ld"
276
+ # define PRIuPTR "lu"
277
+ # define PRIxPTR "lx"
278
+ # endif
327
279
  #endif
280
+
281
+ #ifndef PRIdPTRDIFF
282
+ # define PRIdPTRDIFF PRIdPTR
328
283
  #endif
329
284
 
330
285
  #include "regenc.h"
@@ -332,10 +287,10 @@ typedef unsigned int uintptr_t;
332
287
  RUBY_SYMBOL_EXPORT_BEGIN
333
288
 
334
289
  #ifdef MIN
335
- #undef MIN
290
+ # undef MIN
336
291
  #endif
337
292
  #ifdef MAX
338
- #undef MAX
293
+ # undef MAX
339
294
  #endif
340
295
  #define MIN(a,b) (((a)>(b))?(b):(a))
341
296
  #define MAX(a,b) (((a)<(b))?(b):(a))
@@ -350,28 +305,28 @@ RUBY_SYMBOL_EXPORT_BEGIN
350
305
 
351
306
  #ifdef PLATFORM_UNALIGNED_WORD_ACCESS
352
307
 
353
- #define PLATFORM_GET_INC(val,p,type) do{\
308
+ # define PLATFORM_GET_INC(val,p,type) do{\
354
309
  val = *(type* )p;\
355
310
  (p) += sizeof(type);\
356
311
  } while(0)
357
312
 
358
313
  #else
359
314
 
360
- #define PLATFORM_GET_INC(val,p,type) do{\
315
+ # define PLATFORM_GET_INC(val,p,type) do{\
361
316
  xmemcpy(&val, (p), sizeof(type));\
362
317
  (p) += sizeof(type);\
363
318
  } while(0)
364
319
 
365
320
  /* sizeof(OnigCodePoint) */
366
- #define WORD_ALIGNMENT_SIZE SIZEOF_LONG
321
+ # define WORD_ALIGNMENT_SIZE SIZEOF_LONG
367
322
 
368
- #define GET_ALIGNMENT_PAD_SIZE(addr,pad_size) do {\
323
+ # define GET_ALIGNMENT_PAD_SIZE(addr,pad_size) do {\
369
324
  (pad_size) = WORD_ALIGNMENT_SIZE \
370
325
  - ((uintptr_t )(addr) % WORD_ALIGNMENT_SIZE);\
371
326
  if ((pad_size) == WORD_ALIGNMENT_SIZE) (pad_size) = 0;\
372
327
  } while (0)
373
328
 
374
- #define ALIGNMENT_RIGHT(addr) do {\
329
+ # define ALIGNMENT_RIGHT(addr) do {\
375
330
  (addr) += (WORD_ALIGNMENT_SIZE - 1);\
376
331
  (addr) -= ((uintptr_t )(addr) % WORD_ALIGNMENT_SIZE);\
377
332
  } while (0)
@@ -435,7 +390,6 @@ typedef unsigned int BitStatusType;
435
390
  #define IS_NOTEOL(option) ((option) & ONIG_OPTION_NOTEOL)
436
391
  #define IS_NOTBOS(option) ((option) & ONIG_OPTION_NOTBOS)
437
392
  #define IS_NOTEOS(option) ((option) & ONIG_OPTION_NOTEOS)
438
- #define IS_POSIX_REGION(option) ((option) & ONIG_OPTION_POSIX_REGION)
439
393
  #define IS_ASCII_RANGE(option) ((option) & ONIG_OPTION_ASCII_RANGE)
440
394
  #define IS_POSIX_BRACKET_ALL_RANGE(option) ((option) & ONIG_OPTION_POSIX_BRACKET_ALL_RANGE)
441
395
  #define IS_WORD_BOUND_ALL_RANGE(option) ((option) & ONIG_OPTION_WORD_BOUND_ALL_RANGE)
@@ -618,7 +572,6 @@ enum OpCode {
618
572
  OP_CCLASS_NOT,
619
573
  OP_CCLASS_MB_NOT,
620
574
  OP_CCLASS_MIX_NOT,
621
- OP_CCLASS_NODE, /* pointer to CClassNode node */
622
575
 
623
576
  OP_ANYCHAR, /* "." */
624
577
  OP_ANYCHAR_ML, /* "." multi-line */
@@ -647,7 +600,6 @@ enum OpCode {
647
600
  OP_END_LINE,
648
601
  OP_SEMI_END_BUF,
649
602
  OP_BEGIN_POSITION,
650
- OP_BEGIN_POS_OR_LINE, /* used for implicit anchor optimization */
651
603
 
652
604
  OP_BACKREF1,
653
605
  OP_BACKREF2,
@@ -692,6 +644,9 @@ enum OpCode {
692
644
  OP_LOOK_BEHIND, /* (?<=...) start (no needs end opcode) */
693
645
  OP_PUSH_LOOK_BEHIND_NOT, /* (?<!...) start */
694
646
  OP_FAIL_LOOK_BEHIND_NOT, /* (?<!...) end */
647
+ OP_PUSH_ABSENT_POS, /* (?~...) start */
648
+ OP_ABSENT, /* (?~...) start of inner loop */
649
+ OP_ABSENT_END, /* (?~...) end */
695
650
 
696
651
  OP_CALL, /* \g<name> */
697
652
  OP_RETURN,
@@ -779,12 +734,15 @@ typedef void* PointerType;
779
734
  #define SIZE_OP_CALL (SIZE_OPCODE + SIZE_ABSADDR)
780
735
  #define SIZE_OP_RETURN SIZE_OPCODE
781
736
  #define SIZE_OP_CONDITION (SIZE_OPCODE + SIZE_MEMNUM + SIZE_RELADDR)
737
+ #define SIZE_OP_PUSH_ABSENT_POS SIZE_OPCODE
738
+ #define SIZE_OP_ABSENT (SIZE_OPCODE + SIZE_RELADDR)
739
+ #define SIZE_OP_ABSENT_END SIZE_OPCODE
782
740
 
783
741
  #ifdef USE_COMBINATION_EXPLOSION_CHECK
784
- #define SIZE_OP_STATE_CHECK (SIZE_OPCODE + SIZE_STATE_CHECK_NUM)
785
- #define SIZE_OP_STATE_CHECK_PUSH (SIZE_OPCODE + SIZE_STATE_CHECK_NUM + SIZE_RELADDR)
786
- #define SIZE_OP_STATE_CHECK_PUSH_OR_JUMP (SIZE_OPCODE + SIZE_STATE_CHECK_NUM + SIZE_RELADDR)
787
- #define SIZE_OP_STATE_CHECK_ANYCHAR_STAR (SIZE_OPCODE + SIZE_STATE_CHECK_NUM)
742
+ # define SIZE_OP_STATE_CHECK (SIZE_OPCODE + SIZE_STATE_CHECK_NUM)
743
+ # define SIZE_OP_STATE_CHECK_PUSH (SIZE_OPCODE + SIZE_STATE_CHECK_NUM + SIZE_RELADDR)
744
+ # define SIZE_OP_STATE_CHECK_PUSH_OR_JUMP (SIZE_OPCODE + SIZE_STATE_CHECK_NUM + SIZE_RELADDR)
745
+ # define SIZE_OP_STATE_CHECK_ANYCHAR_STAR (SIZE_OPCODE + SIZE_STATE_CHECK_NUM)
788
746
  #endif
789
747
 
790
748
  #define MC_ESC(syn) (syn)->meta_char_table.esc
@@ -832,13 +790,10 @@ typedef void* PointerType;
832
790
 
833
791
  /* cclass node */
834
792
  #define FLAG_NCCLASS_NOT (1<<0)
835
- #define FLAG_NCCLASS_SHARE (1<<1)
836
793
 
837
794
  #define NCCLASS_SET_NOT(nd) NCCLASS_FLAG_SET(nd, FLAG_NCCLASS_NOT)
838
- #define NCCLASS_SET_SHARE(nd) NCCLASS_FLAG_SET(nd, FLAG_NCCLASS_SHARE)
839
795
  #define NCCLASS_CLEAR_NOT(nd) NCCLASS_FLAG_CLEAR(nd, FLAG_NCCLASS_NOT)
840
796
  #define IS_NCCLASS_NOT(nd) IS_NCCLASS_FLAG_ON(nd, FLAG_NCCLASS_NOT)
841
- #define IS_NCCLASS_SHARE(nd) IS_NCCLASS_FLAG_ON(nd, FLAG_NCCLASS_SHARE)
842
797
 
843
798
  typedef struct {
844
799
  int type;
@@ -893,6 +848,10 @@ typedef struct _OnigStackType {
893
848
  UChar *pstr; /* string position */
894
849
  } call_frame;
895
850
  #endif
851
+ struct {
852
+ UChar *abs_pstr; /* absent start position */
853
+ const UChar *end_pstr; /* end position */
854
+ } absent_pos;
896
855
  } u;
897
856
  } OnigStackType;
898
857
 
@@ -936,60 +895,44 @@ typedef struct {
936
895
  extern OnigOpInfoType OnigOpInfo[];
937
896
 
938
897
 
939
- extern void onig_print_compiled_byte_code P_((FILE* f, UChar* bp, UChar* bpend, UChar** nextp, OnigEncoding enc));
898
+ extern void onig_print_compiled_byte_code(FILE* f, UChar* bp, UChar* bpend, UChar** nextp, OnigEncoding enc);
940
899
 
941
- #ifdef ONIG_DEBUG_STATISTICS
942
- extern void onig_statistics_init P_((void));
943
- extern void onig_print_statistics P_((FILE* f));
944
- #endif
900
+ # ifdef ONIG_DEBUG_STATISTICS
901
+ extern void onig_statistics_init(void);
902
+ extern void onig_print_statistics(FILE* f);
903
+ # endif
945
904
  #endif
946
905
 
947
- extern UChar* onig_error_code_to_format P_((OnigPosition code));
948
- extern void onig_snprintf_with_pattern PV_((UChar buf[], int bufsize, OnigEncoding enc, UChar* pat, UChar* pat_end, const UChar *fmt, ...));
949
- extern int onig_bbuf_init P_((BBuf* buf, OnigDistance size));
950
- extern int onig_compile P_((regex_t* reg, const UChar* pattern, const UChar* pattern_end, OnigErrorInfo* einfo, const char *sourcefile, int sourceline));
951
- extern void onig_chain_reduce P_((regex_t* reg));
952
- extern void onig_chain_link_add P_((regex_t* to, regex_t* add));
953
- extern void onig_transfer P_((regex_t* to, regex_t* from));
954
- extern int onig_is_code_in_cc P_((OnigEncoding enc, OnigCodePoint code, CClassNode* cc));
955
- extern int onig_is_code_in_cc_len P_((int enclen, OnigCodePoint code, CClassNode* cc));
906
+ extern UChar* onig_error_code_to_format(OnigPosition code);
907
+ extern void onig_vsnprintf_with_pattern(UChar buf[], int bufsize, OnigEncoding enc, UChar* pat, UChar* pat_end, const UChar *fmt, va_list args);
908
+ extern void onig_snprintf_with_pattern(UChar buf[], int bufsize, OnigEncoding enc, UChar* pat, UChar* pat_end, const UChar *fmt, ...);
909
+ extern int onig_bbuf_init(BBuf* buf, OnigDistance size);
910
+ extern int onig_compile(regex_t* reg, const UChar* pattern, const UChar* pattern_end, OnigErrorInfo* einfo);
911
+ #ifdef RUBY
912
+ extern int onig_compile_ruby(regex_t* reg, const UChar* pattern, const UChar* pattern_end, OnigErrorInfo* einfo, const char *sourcefile, int sourceline);
913
+ #endif
914
+ extern void onig_transfer(regex_t* to, regex_t* from);
915
+ extern int onig_is_code_in_cc(OnigEncoding enc, OnigCodePoint code, CClassNode* cc);
916
+ extern int onig_is_code_in_cc_len(int enclen, OnigCodePoint code, CClassNode* cc);
956
917
 
957
918
  /* strend hash */
958
919
  typedef void hash_table_type;
959
920
  #ifdef RUBY
960
- #include "ruby/st.h"
961
- typedef st_data_t hash_data_type;
921
+ # include "ruby/st.h"
962
922
  #else
963
- #include "st.h"
964
- typedef uintptr_t hash_data_type;
923
+ # include "st.h"
965
924
  #endif
925
+ typedef st_data_t hash_data_type;
966
926
 
967
- extern hash_table_type* onig_st_init_strend_table_with_size P_((st_index_t size));
968
- extern int onig_st_lookup_strend P_((hash_table_type* table, const UChar* str_key, const UChar* end_key, hash_data_type *value));
969
- extern int onig_st_insert_strend P_((hash_table_type* table, const UChar* str_key, const UChar* end_key, hash_data_type value));
970
-
971
- /* encoding property management */
972
- #define PROPERTY_LIST_ADD_PROP(Name, CR) \
973
- r = onigenc_property_list_add_property((UChar* )Name, CR,\
974
- &PropertyNameTable, &PropertyList, &PropertyListNum,\
975
- &PropertyListSize);\
976
- if (r != 0) goto end
977
-
978
- #define PROPERTY_LIST_INIT_CHECK \
979
- if (PropertyInited == 0) {\
980
- int r = onigenc_property_list_init(init_property_list);\
981
- if (r != 0) return r;\
982
- }
983
-
984
- extern int onigenc_property_list_add_property P_((UChar* name, const OnigCodePoint* prop, hash_table_type **table, const OnigCodePoint*** plist, int *pnum, int *psize));
985
-
986
- typedef int (*ONIGENC_INIT_PROPERTY_LIST_FUNC_TYPE)(void);
987
-
988
- extern int onigenc_property_list_init P_((ONIGENC_INIT_PROPERTY_LIST_FUNC_TYPE));
927
+ extern hash_table_type* onig_st_init_strend_table_with_size(st_index_t size);
928
+ extern int onig_st_lookup_strend(hash_table_type* table, const UChar* str_key, const UChar* end_key, hash_data_type *value);
929
+ extern int onig_st_insert_strend(hash_table_type* table, const UChar* str_key, const UChar* end_key, hash_data_type value);
989
930
 
990
- extern size_t onig_memsize P_((const regex_t *reg));
991
- extern size_t onig_region_memsize P_((const struct re_registers *regs));
931
+ #ifdef RUBY
932
+ extern size_t onig_memsize(const regex_t *reg);
933
+ extern size_t onig_region_memsize(const struct re_registers *regs);
934
+ #endif
992
935
 
993
936
  RUBY_SYMBOL_EXPORT_END
994
937
 
995
- #endif /* ONIGURUMA_REGINT_H */
938
+ #endif /* ONIGMO_REGINT_H */