couchbase-memcached 1.2.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (539) hide show
  1. data.tar.gz.sig +2 -0
  2. data/BENCHMARKS +134 -0
  3. data/CHANGELOG +127 -0
  4. data/LICENSE +184 -0
  5. data/Manifest +535 -0
  6. data/README +118 -0
  7. data/Rakefile +83 -0
  8. data/TODO +4 -0
  9. data/couchbase-memcached.gemspec +33 -0
  10. data/ext/extconf-make.rb +25 -0
  11. data/ext/extconf.rb +91 -0
  12. data/ext/libmemcached-0.50/AUTHORS +11 -0
  13. data/ext/libmemcached-0.50/COPYING +33 -0
  14. data/ext/libmemcached-0.50/ChangeLog +392 -0
  15. data/ext/libmemcached-0.50/Makefile.am +114 -0
  16. data/ext/libmemcached-0.50/Makefile.in +4232 -0
  17. data/ext/libmemcached-0.50/NEWS +1 -0
  18. data/ext/libmemcached-0.50/README +43 -0
  19. data/ext/libmemcached-0.50/README.FIRST +31 -0
  20. data/ext/libmemcached-0.50/README.win32 +25 -0
  21. data/ext/libmemcached-0.50/THANKS +14 -0
  22. data/ext/libmemcached-0.50/TODO +11 -0
  23. data/ext/libmemcached-0.50/aclocal.m4 +1077 -0
  24. data/ext/libmemcached-0.50/clients/client_options.h +45 -0
  25. data/ext/libmemcached-0.50/clients/execute.cc +131 -0
  26. data/ext/libmemcached-0.50/clients/execute.h +30 -0
  27. data/ext/libmemcached-0.50/clients/generator.cc +96 -0
  28. data/ext/libmemcached-0.50/clients/generator.h +36 -0
  29. data/ext/libmemcached-0.50/clients/include.am +116 -0
  30. data/ext/libmemcached-0.50/clients/memaslap.c +908 -0
  31. data/ext/libmemcached-0.50/clients/memcapable.cc +2094 -0
  32. data/ext/libmemcached-0.50/clients/memcat.cc +242 -0
  33. data/ext/libmemcached-0.50/clients/memcp.cc +317 -0
  34. data/ext/libmemcached-0.50/clients/memdump.cc +183 -0
  35. data/ext/libmemcached-0.50/clients/memerror.cc +102 -0
  36. data/ext/libmemcached-0.50/clients/memflush.cc +154 -0
  37. data/ext/libmemcached-0.50/clients/memparse.cc +68 -0
  38. data/ext/libmemcached-0.50/clients/memrm.cc +177 -0
  39. data/ext/libmemcached-0.50/clients/memslap.cc +495 -0
  40. data/ext/libmemcached-0.50/clients/memstat.cc +349 -0
  41. data/ext/libmemcached-0.50/clients/ms_atomic.h +69 -0
  42. data/ext/libmemcached-0.50/clients/ms_conn.c +3413 -0
  43. data/ext/libmemcached-0.50/clients/ms_conn.h +241 -0
  44. data/ext/libmemcached-0.50/clients/ms_memslap.h +132 -0
  45. data/ext/libmemcached-0.50/clients/ms_setting.c +1068 -0
  46. data/ext/libmemcached-0.50/clients/ms_setting.h +181 -0
  47. data/ext/libmemcached-0.50/clients/ms_sigsegv.c +126 -0
  48. data/ext/libmemcached-0.50/clients/ms_sigsegv.h +34 -0
  49. data/ext/libmemcached-0.50/clients/ms_stats.c +307 -0
  50. data/ext/libmemcached-0.50/clients/ms_stats.h +69 -0
  51. data/ext/libmemcached-0.50/clients/ms_task.c +1114 -0
  52. data/ext/libmemcached-0.50/clients/ms_task.h +94 -0
  53. data/ext/libmemcached-0.50/clients/ms_thread.c +351 -0
  54. data/ext/libmemcached-0.50/clients/ms_thread.h +78 -0
  55. data/ext/libmemcached-0.50/clients/utilities.cc +231 -0
  56. data/ext/libmemcached-0.50/clients/utilities.h +64 -0
  57. data/ext/libmemcached-0.50/config.h.in +647 -0
  58. data/ext/libmemcached-0.50/config/autorun.sh +126 -0
  59. data/ext/libmemcached-0.50/config/compile +143 -0
  60. data/ext/libmemcached-0.50/config/config.guess +1517 -0
  61. data/ext/libmemcached-0.50/config/config.rpath +666 -0
  62. data/ext/libmemcached-0.50/config/config.sub +1760 -0
  63. data/ext/libmemcached-0.50/config/depcomp +630 -0
  64. data/ext/libmemcached-0.50/config/install-sh +520 -0
  65. data/ext/libmemcached-0.50/config/ltmain.sh +9642 -0
  66. data/ext/libmemcached-0.50/config/missing +376 -0
  67. data/ext/libmemcached-0.50/config/pandora-plugin +752 -0
  68. data/ext/libmemcached-0.50/config/uncrustify.cfg +1112 -0
  69. data/ext/libmemcached-0.50/configure +27103 -0
  70. data/ext/libmemcached-0.50/configure.ac +186 -0
  71. data/ext/libmemcached-0.50/docs/conf.py.in +354 -0
  72. data/ext/libmemcached-0.50/docs/include.am +240 -0
  73. data/ext/libmemcached-0.50/docs/man/hashkit_clone.3 +88 -0
  74. data/ext/libmemcached-0.50/docs/man/hashkit_crc32.3 +105 -0
  75. data/ext/libmemcached-0.50/docs/man/hashkit_create.3 +88 -0
  76. data/ext/libmemcached-0.50/docs/man/hashkit_fnv1_32.3 +105 -0
  77. data/ext/libmemcached-0.50/docs/man/hashkit_fnv1_64.3 +105 -0
  78. data/ext/libmemcached-0.50/docs/man/hashkit_fnv1a_32.3 +105 -0
  79. data/ext/libmemcached-0.50/docs/man/hashkit_fnv1a_64.3 +105 -0
  80. data/ext/libmemcached-0.50/docs/man/hashkit_free.3 +88 -0
  81. data/ext/libmemcached-0.50/docs/man/hashkit_functions.3 +105 -0
  82. data/ext/libmemcached-0.50/docs/man/hashkit_hsieh.3 +105 -0
  83. data/ext/libmemcached-0.50/docs/man/hashkit_is_allocated.3 +88 -0
  84. data/ext/libmemcached-0.50/docs/man/hashkit_jenkins.3 +105 -0
  85. data/ext/libmemcached-0.50/docs/man/hashkit_md5.3 +105 -0
  86. data/ext/libmemcached-0.50/docs/man/hashkit_murmur.3 +105 -0
  87. data/ext/libmemcached-0.50/docs/man/hashkit_value.3 +66 -0
  88. data/ext/libmemcached-0.50/docs/man/libhashkit.3 +57 -0
  89. data/ext/libmemcached-0.50/docs/man/libmemcached.3 +208 -0
  90. data/ext/libmemcached-0.50/docs/man/libmemcached_check_configuration.3 +293 -0
  91. data/ext/libmemcached-0.50/docs/man/libmemcached_configuration.3 +293 -0
  92. data/ext/libmemcached-0.50/docs/man/libmemcached_examples.3 +144 -0
  93. data/ext/libmemcached-0.50/docs/man/libmemcachedutil.3 +68 -0
  94. data/ext/libmemcached-0.50/docs/man/memaslap.1 +1222 -0
  95. data/ext/libmemcached-0.50/docs/man/memcached.3 +293 -0
  96. data/ext/libmemcached-0.50/docs/man/memcached_add.3 +132 -0
  97. data/ext/libmemcached-0.50/docs/man/memcached_add_by_key.3 +132 -0
  98. data/ext/libmemcached-0.50/docs/man/memcached_analyze.3 +77 -0
  99. data/ext/libmemcached-0.50/docs/man/memcached_append.3 +111 -0
  100. data/ext/libmemcached-0.50/docs/man/memcached_append_by_key.3 +111 -0
  101. data/ext/libmemcached-0.50/docs/man/memcached_behavior_get.3 +333 -0
  102. data/ext/libmemcached-0.50/docs/man/memcached_behavior_set.3 +333 -0
  103. data/ext/libmemcached-0.50/docs/man/memcached_callback_get.3 +159 -0
  104. data/ext/libmemcached-0.50/docs/man/memcached_callback_set.3 +159 -0
  105. data/ext/libmemcached-0.50/docs/man/memcached_cas.3 +91 -0
  106. data/ext/libmemcached-0.50/docs/man/memcached_cas_by_key.3 +91 -0
  107. data/ext/libmemcached-0.50/docs/man/memcached_clone.3 +99 -0
  108. data/ext/libmemcached-0.50/docs/man/memcached_create.3 +99 -0
  109. data/ext/libmemcached-0.50/docs/man/memcached_decrement.3 +124 -0
  110. data/ext/libmemcached-0.50/docs/man/memcached_decrement_with_initial.3 +124 -0
  111. data/ext/libmemcached-0.50/docs/man/memcached_delete.3 +83 -0
  112. data/ext/libmemcached-0.50/docs/man/memcached_delete_by_key.3 +83 -0
  113. data/ext/libmemcached-0.50/docs/man/memcached_destroy_sasl_auth_data.3 +95 -0
  114. data/ext/libmemcached-0.50/docs/man/memcached_dump.3 +77 -0
  115. data/ext/libmemcached-0.50/docs/man/memcached_fetch.3 +174 -0
  116. data/ext/libmemcached-0.50/docs/man/memcached_fetch_execute.3 +174 -0
  117. data/ext/libmemcached-0.50/docs/man/memcached_fetch_result.3 +174 -0
  118. data/ext/libmemcached-0.50/docs/man/memcached_flush_buffers.3 +72 -0
  119. data/ext/libmemcached-0.50/docs/man/memcached_free.3 +99 -0
  120. data/ext/libmemcached-0.50/docs/man/memcached_generate_hash.3 +85 -0
  121. data/ext/libmemcached-0.50/docs/man/memcached_generate_hash_value.3 +85 -0
  122. data/ext/libmemcached-0.50/docs/man/memcached_get.3 +174 -0
  123. data/ext/libmemcached-0.50/docs/man/memcached_get_by_key.3 +174 -0
  124. data/ext/libmemcached-0.50/docs/man/memcached_get_memory_allocators.3 +111 -0
  125. data/ext/libmemcached-0.50/docs/man/memcached_get_sasl_callbacks.3 +95 -0
  126. data/ext/libmemcached-0.50/docs/man/memcached_get_user_data.3 +79 -0
  127. data/ext/libmemcached-0.50/docs/man/memcached_increment.3 +124 -0
  128. data/ext/libmemcached-0.50/docs/man/memcached_increment_with_initial.3 +124 -0
  129. data/ext/libmemcached-0.50/docs/man/memcached_lib_version.3 +76 -0
  130. data/ext/libmemcached-0.50/docs/man/memcached_mget.3 +174 -0
  131. data/ext/libmemcached-0.50/docs/man/memcached_mget_by_key.3 +174 -0
  132. data/ext/libmemcached-0.50/docs/man/memcached_mget_execute.3 +174 -0
  133. data/ext/libmemcached-0.50/docs/man/memcached_mget_execute_by_key.3 +174 -0
  134. data/ext/libmemcached-0.50/docs/man/memcached_pool_behavior_get.3 +139 -0
  135. data/ext/libmemcached-0.50/docs/man/memcached_pool_behavior_set.3 +139 -0
  136. data/ext/libmemcached-0.50/docs/man/memcached_pool_create.3 +139 -0
  137. data/ext/libmemcached-0.50/docs/man/memcached_pool_destroy.3 +139 -0
  138. data/ext/libmemcached-0.50/docs/man/memcached_pool_pop.3 +139 -0
  139. data/ext/libmemcached-0.50/docs/man/memcached_pool_push.3 +139 -0
  140. data/ext/libmemcached-0.50/docs/man/memcached_pool_st.3 +139 -0
  141. data/ext/libmemcached-0.50/docs/man/memcached_prepend.3 +111 -0
  142. data/ext/libmemcached-0.50/docs/man/memcached_prepend_by_key.3 +111 -0
  143. data/ext/libmemcached-0.50/docs/man/memcached_quit.3 +74 -0
  144. data/ext/libmemcached-0.50/docs/man/memcached_replace.3 +132 -0
  145. data/ext/libmemcached-0.50/docs/man/memcached_replace_by_key.3 +132 -0
  146. data/ext/libmemcached-0.50/docs/man/memcached_sasl_set_auth_data.3 +95 -0
  147. data/ext/libmemcached-0.50/docs/man/memcached_server_add.3 +141 -0
  148. data/ext/libmemcached-0.50/docs/man/memcached_server_count.3 +141 -0
  149. data/ext/libmemcached-0.50/docs/man/memcached_server_cursor.3 +141 -0
  150. data/ext/libmemcached-0.50/docs/man/memcached_server_list.3 +141 -0
  151. data/ext/libmemcached-0.50/docs/man/memcached_server_list_append.3 +111 -0
  152. data/ext/libmemcached-0.50/docs/man/memcached_server_list_count.3 +111 -0
  153. data/ext/libmemcached-0.50/docs/man/memcached_server_list_free.3 +111 -0
  154. data/ext/libmemcached-0.50/docs/man/memcached_server_push.3 +141 -0
  155. data/ext/libmemcached-0.50/docs/man/memcached_servers_parse.3 +111 -0
  156. data/ext/libmemcached-0.50/docs/man/memcached_set.3 +132 -0
  157. data/ext/libmemcached-0.50/docs/man/memcached_set_by_key.3 +132 -0
  158. data/ext/libmemcached-0.50/docs/man/memcached_set_memory_allocators.3 +111 -0
  159. data/ext/libmemcached-0.50/docs/man/memcached_set_sasl_callbacks.3 +95 -0
  160. data/ext/libmemcached-0.50/docs/man/memcached_set_user_data.3 +79 -0
  161. data/ext/libmemcached-0.50/docs/man/memcached_stat.3 +116 -0
  162. data/ext/libmemcached-0.50/docs/man/memcached_stat_execute.3 +116 -0
  163. data/ext/libmemcached-0.50/docs/man/memcached_stat_get_keys.3 +116 -0
  164. data/ext/libmemcached-0.50/docs/man/memcached_stat_get_value.3 +116 -0
  165. data/ext/libmemcached-0.50/docs/man/memcached_stat_servername.3 +116 -0
  166. data/ext/libmemcached-0.50/docs/man/memcached_strerror.3 +69 -0
  167. data/ext/libmemcached-0.50/docs/man/memcached_verbosity.3 +66 -0
  168. data/ext/libmemcached-0.50/docs/man/memcached_version.3 +76 -0
  169. data/ext/libmemcached-0.50/docs/man/memcapable.1 +92 -0
  170. data/ext/libmemcached-0.50/docs/man/memcat.1 +71 -0
  171. data/ext/libmemcached-0.50/docs/man/memcp.1 +77 -0
  172. data/ext/libmemcached-0.50/docs/man/memdump.1 +66 -0
  173. data/ext/libmemcached-0.50/docs/man/memerror.1 +65 -0
  174. data/ext/libmemcached-0.50/docs/man/memflush.1 +73 -0
  175. data/ext/libmemcached-0.50/docs/man/memrm.1 +72 -0
  176. data/ext/libmemcached-0.50/docs/man/memslap.1 +59 -0
  177. data/ext/libmemcached-0.50/docs/man/memstat.1 +70 -0
  178. data/ext/libmemcached-0.50/example/include.am +24 -0
  179. data/ext/libmemcached-0.50/example/interface_v0.c +594 -0
  180. data/ext/libmemcached-0.50/example/interface_v1.c +411 -0
  181. data/ext/libmemcached-0.50/example/memcached_light.c +474 -0
  182. data/ext/libmemcached-0.50/example/memcached_light.h +7 -0
  183. data/ext/libmemcached-0.50/example/storage.c +172 -0
  184. data/ext/libmemcached-0.50/example/storage.h +27 -0
  185. data/ext/libmemcached-0.50/example/storage_innodb.c +535 -0
  186. data/ext/libmemcached-0.50/libhashkit/algorithm.cc +69 -0
  187. data/ext/libmemcached-0.50/libhashkit/algorithm.h +96 -0
  188. data/ext/libmemcached-0.50/libhashkit/behavior.cc +9 -0
  189. data/ext/libmemcached-0.50/libhashkit/behavior.h +26 -0
  190. data/ext/libmemcached-0.50/libhashkit/common.h +33 -0
  191. data/ext/libmemcached-0.50/libhashkit/configure.h.in +19 -0
  192. data/ext/libmemcached-0.50/libhashkit/crc32.cc +86 -0
  193. data/ext/libmemcached-0.50/libhashkit/digest.cc +62 -0
  194. data/ext/libmemcached-0.50/libhashkit/digest.h +30 -0
  195. data/ext/libmemcached-0.50/libhashkit/fnv.cc +75 -0
  196. data/ext/libmemcached-0.50/libhashkit/function.cc +156 -0
  197. data/ext/libmemcached-0.50/libhashkit/function.h +44 -0
  198. data/ext/libmemcached-0.50/libhashkit/hashkit.cc +100 -0
  199. data/ext/libmemcached-0.50/libhashkit/hashkit.h +95 -0
  200. data/ext/libmemcached-0.50/libhashkit/hashkit.hpp +97 -0
  201. data/ext/libmemcached-0.50/libhashkit/hsieh.cc +70 -0
  202. data/ext/libmemcached-0.50/libhashkit/include.am +69 -0
  203. data/ext/libmemcached-0.50/libhashkit/jenkins.cc +214 -0
  204. data/ext/libmemcached-0.50/libhashkit/ketama.cc +164 -0
  205. data/ext/libmemcached-0.50/libhashkit/md5.cc +367 -0
  206. data/ext/libmemcached-0.50/libhashkit/murmur.cc +77 -0
  207. data/ext/libmemcached-0.50/libhashkit/one_at_a_time.cc +34 -0
  208. data/ext/libmemcached-0.50/libhashkit/str_algorithm.cc +58 -0
  209. data/ext/libmemcached-0.50/libhashkit/str_algorithm.h +48 -0
  210. data/ext/libmemcached-0.50/libhashkit/strerror.cc +25 -0
  211. data/ext/libmemcached-0.50/libhashkit/strerror.h +23 -0
  212. data/ext/libmemcached-0.50/libhashkit/types.h +90 -0
  213. data/ext/libmemcached-0.50/libhashkit/visibility.h +48 -0
  214. data/ext/libmemcached-0.50/libmemcached/allocators.cc +119 -0
  215. data/ext/libmemcached-0.50/libmemcached/allocators.h +87 -0
  216. data/ext/libmemcached-0.50/libmemcached/analyze.cc +110 -0
  217. data/ext/libmemcached-0.50/libmemcached/analyze.h +66 -0
  218. data/ext/libmemcached-0.50/libmemcached/array.c +128 -0
  219. data/ext/libmemcached-0.50/libmemcached/array.h +75 -0
  220. data/ext/libmemcached-0.50/libmemcached/auto.cc +383 -0
  221. data/ext/libmemcached-0.50/libmemcached/auto.h +111 -0
  222. data/ext/libmemcached-0.50/libmemcached/basic_string.h +55 -0
  223. data/ext/libmemcached-0.50/libmemcached/behavior.cc +590 -0
  224. data/ext/libmemcached-0.50/libmemcached/behavior.h +86 -0
  225. data/ext/libmemcached-0.50/libmemcached/byteorder.cc +90 -0
  226. data/ext/libmemcached-0.50/libmemcached/byteorder.h +52 -0
  227. data/ext/libmemcached-0.50/libmemcached/callback.cc +160 -0
  228. data/ext/libmemcached-0.50/libmemcached/callback.h +61 -0
  229. data/ext/libmemcached-0.50/libmemcached/common.h +182 -0
  230. data/ext/libmemcached-0.50/libmemcached/configure.h.in +52 -0
  231. data/ext/libmemcached-0.50/libmemcached/connect.cc +626 -0
  232. data/ext/libmemcached-0.50/libmemcached/constants.h +167 -0
  233. data/ext/libmemcached-0.50/libmemcached/delete.cc +266 -0
  234. data/ext/libmemcached-0.50/libmemcached/delete.h +57 -0
  235. data/ext/libmemcached-0.50/libmemcached/do.cc +100 -0
  236. data/ext/libmemcached-0.50/libmemcached/do.hpp +49 -0
  237. data/ext/libmemcached-0.50/libmemcached/dump.cc +107 -0
  238. data/ext/libmemcached-0.50/libmemcached/dump.h +51 -0
  239. data/ext/libmemcached-0.50/libmemcached/error.cc +419 -0
  240. data/ext/libmemcached-0.50/libmemcached/error.h +61 -0
  241. data/ext/libmemcached-0.50/libmemcached/error.hpp +87 -0
  242. data/ext/libmemcached-0.50/libmemcached/exception.hpp +63 -0
  243. data/ext/libmemcached-0.50/libmemcached/fetch.cc +267 -0
  244. data/ext/libmemcached-0.50/libmemcached/fetch.h +53 -0
  245. data/ext/libmemcached-0.50/libmemcached/flush.cc +149 -0
  246. data/ext/libmemcached-0.50/libmemcached/flush.h +49 -0
  247. data/ext/libmemcached-0.50/libmemcached/flush_buffers.cc +66 -0
  248. data/ext/libmemcached-0.50/libmemcached/flush_buffers.h +49 -0
  249. data/ext/libmemcached-0.50/libmemcached/get.cc +842 -0
  250. data/ext/libmemcached-0.50/libmemcached/get.h +135 -0
  251. data/ext/libmemcached-0.50/libmemcached/hash.cc +178 -0
  252. data/ext/libmemcached-0.50/libmemcached/hash.h +68 -0
  253. data/ext/libmemcached-0.50/libmemcached/hosts.cc +516 -0
  254. data/ext/libmemcached-0.50/libmemcached/include.am +183 -0
  255. data/ext/libmemcached-0.50/libmemcached/initialize_query.cc +70 -0
  256. data/ext/libmemcached-0.50/libmemcached/initialize_query.h +51 -0
  257. data/ext/libmemcached-0.50/libmemcached/internal.h +46 -0
  258. data/ext/libmemcached-0.50/libmemcached/io.cc +920 -0
  259. data/ext/libmemcached-0.50/libmemcached/io.h +119 -0
  260. data/ext/libmemcached-0.50/libmemcached/is.h +48 -0
  261. data/ext/libmemcached-0.50/libmemcached/key.cc +23 -0
  262. data/ext/libmemcached-0.50/libmemcached/libmemcached_probes.d +30 -0
  263. data/ext/libmemcached-0.50/libmemcached/libmemcached_probes.h +118 -0
  264. data/ext/libmemcached-0.50/libmemcached/memcached.cc +437 -0
  265. data/ext/libmemcached-0.50/libmemcached/memcached.h +214 -0
  266. data/ext/libmemcached-0.50/libmemcached/memcached.hpp +799 -0
  267. data/ext/libmemcached-0.50/libmemcached/memcached/README.txt +7 -0
  268. data/ext/libmemcached-0.50/libmemcached/memcached/protocol_binary.h +726 -0
  269. data/ext/libmemcached-0.50/libmemcached/memcached/vbucket.h +26 -0
  270. data/ext/libmemcached-0.50/libmemcached/memcached_util.h +44 -0
  271. data/ext/libmemcached-0.50/libmemcached/memory.h +79 -0
  272. data/ext/libmemcached-0.50/libmemcached/options.cc +178 -0
  273. data/ext/libmemcached-0.50/libmemcached/options.h +49 -0
  274. data/ext/libmemcached-0.50/libmemcached/options.hpp +56 -0
  275. data/ext/libmemcached-0.50/libmemcached/options/context.h +151 -0
  276. data/ext/libmemcached-0.50/libmemcached/options/include.am +19 -0
  277. data/ext/libmemcached-0.50/libmemcached/options/parser.am +0 -0
  278. data/ext/libmemcached-0.50/libmemcached/options/parser.cc +2324 -0
  279. data/ext/libmemcached-0.50/libmemcached/options/parser.h +122 -0
  280. data/ext/libmemcached-0.50/libmemcached/options/scanner.cc +3203 -0
  281. data/ext/libmemcached-0.50/libmemcached/options/scanner.h +479 -0
  282. data/ext/libmemcached-0.50/libmemcached/options/server.h +60 -0
  283. data/ext/libmemcached-0.50/libmemcached/options/symbol.h +57 -0
  284. data/ext/libmemcached-0.50/libmemcached/parse.cc +110 -0
  285. data/ext/libmemcached-0.50/libmemcached/parse.h +23 -0
  286. data/ext/libmemcached-0.50/libmemcached/platform.h +56 -0
  287. data/ext/libmemcached-0.50/libmemcached/prefix_key.cc +65 -0
  288. data/ext/libmemcached-0.50/libmemcached/prefix_key.h +49 -0
  289. data/ext/libmemcached-0.50/libmemcached/protocol/ascii_handler.c +963 -0
  290. data/ext/libmemcached-0.50/libmemcached/protocol/ascii_handler.h +40 -0
  291. data/ext/libmemcached-0.50/libmemcached/protocol/binary_handler.c +1121 -0
  292. data/ext/libmemcached-0.50/libmemcached/protocol/binary_handler.h +47 -0
  293. data/ext/libmemcached-0.50/libmemcached/protocol/cache.c +149 -0
  294. data/ext/libmemcached-0.50/libmemcached/protocol/cache.h +116 -0
  295. data/ext/libmemcached-0.50/libmemcached/protocol/callback.h +418 -0
  296. data/ext/libmemcached-0.50/libmemcached/protocol/common.h +163 -0
  297. data/ext/libmemcached-0.50/libmemcached/protocol/include.am +26 -0
  298. data/ext/libmemcached-0.50/libmemcached/protocol/pedantic.c +202 -0
  299. data/ext/libmemcached-0.50/libmemcached/protocol/protocol_handler.c +365 -0
  300. data/ext/libmemcached-0.50/libmemcached/protocol_handler.h +215 -0
  301. data/ext/libmemcached-0.50/libmemcached/purge.cc +90 -0
  302. data/ext/libmemcached-0.50/libmemcached/quit.cc +139 -0
  303. data/ext/libmemcached-0.50/libmemcached/quit.h +55 -0
  304. data/ext/libmemcached-0.50/libmemcached/response.cc +619 -0
  305. data/ext/libmemcached-0.50/libmemcached/response.h +57 -0
  306. data/ext/libmemcached-0.50/libmemcached/result.cc +173 -0
  307. data/ext/libmemcached-0.50/libmemcached/result.h +100 -0
  308. data/ext/libmemcached-0.50/libmemcached/return.h +98 -0
  309. data/ext/libmemcached-0.50/libmemcached/sasl.c +408 -0
  310. data/ext/libmemcached-0.50/libmemcached/sasl.h +86 -0
  311. data/ext/libmemcached-0.50/libmemcached/server.cc +351 -0
  312. data/ext/libmemcached-0.50/libmemcached/server.h +169 -0
  313. data/ext/libmemcached-0.50/libmemcached/server_list.cc +88 -0
  314. data/ext/libmemcached-0.50/libmemcached/server_list.h +77 -0
  315. data/ext/libmemcached-0.50/libmemcached/stats.cc +623 -0
  316. data/ext/libmemcached-0.50/libmemcached/stats.h +96 -0
  317. data/ext/libmemcached-0.50/libmemcached/storage.cc +567 -0
  318. data/ext/libmemcached-0.50/libmemcached/storage.h +133 -0
  319. data/ext/libmemcached-0.50/libmemcached/strerror.cc +189 -0
  320. data/ext/libmemcached-0.50/libmemcached/strerror.h +50 -0
  321. data/ext/libmemcached-0.50/libmemcached/string.cc +253 -0
  322. data/ext/libmemcached-0.50/libmemcached/string.h +121 -0
  323. data/ext/libmemcached-0.50/libmemcached/touch.cc +106 -0
  324. data/ext/libmemcached-0.50/libmemcached/touch.h +59 -0
  325. data/ext/libmemcached-0.50/libmemcached/types.h +117 -0
  326. data/ext/libmemcached-0.50/libmemcached/util.h +40 -0
  327. data/ext/libmemcached-0.50/libmemcached/util/flush.cc +61 -0
  328. data/ext/libmemcached-0.50/libmemcached/util/flush.h +50 -0
  329. data/ext/libmemcached-0.50/libmemcached/util/include.am +34 -0
  330. data/ext/libmemcached-0.50/libmemcached/util/ping.cc +62 -0
  331. data/ext/libmemcached-0.50/libmemcached/util/ping.h +49 -0
  332. data/ext/libmemcached-0.50/libmemcached/util/pool.cc +392 -0
  333. data/ext/libmemcached-0.50/libmemcached/util/pool.h +78 -0
  334. data/ext/libmemcached-0.50/libmemcached/util/version.cc +87 -0
  335. data/ext/libmemcached-0.50/libmemcached/util/version.h +53 -0
  336. data/ext/libmemcached-0.50/libmemcached/verbosity.cc +97 -0
  337. data/ext/libmemcached-0.50/libmemcached/verbosity.h +50 -0
  338. data/ext/libmemcached-0.50/libmemcached/version.cc +214 -0
  339. data/ext/libmemcached-0.50/libmemcached/version.h +52 -0
  340. data/ext/libmemcached-0.50/libmemcached/virtual_bucket.c +118 -0
  341. data/ext/libmemcached-0.50/libmemcached/virtual_bucket.h +59 -0
  342. data/ext/libmemcached-0.50/libmemcached/visibility.h +51 -0
  343. data/ext/libmemcached-0.50/libmemcached/watchpoint.h +110 -0
  344. data/ext/libmemcached-0.50/libtest/callbacks.h +21 -0
  345. data/ext/libmemcached-0.50/libtest/collection.h +19 -0
  346. data/ext/libmemcached-0.50/libtest/common.h +50 -0
  347. data/ext/libmemcached-0.50/libtest/core.h +11 -0
  348. data/ext/libmemcached-0.50/libtest/error.h +18 -0
  349. data/ext/libmemcached-0.50/libtest/failed.h +52 -0
  350. data/ext/libmemcached-0.50/libtest/framework.cc +57 -0
  351. data/ext/libmemcached-0.50/libtest/framework.h +137 -0
  352. data/ext/libmemcached-0.50/libtest/get.h +22 -0
  353. data/ext/libmemcached-0.50/libtest/include.am +52 -0
  354. data/ext/libmemcached-0.50/libtest/runner.h +19 -0
  355. data/ext/libmemcached-0.50/libtest/server.c +355 -0
  356. data/ext/libmemcached-0.50/libtest/server.h +43 -0
  357. data/ext/libmemcached-0.50/libtest/stats.h +30 -0
  358. data/ext/libmemcached-0.50/libtest/strerror.h +14 -0
  359. data/ext/libmemcached-0.50/libtest/test.cc +319 -0
  360. data/ext/libmemcached-0.50/libtest/test.h +162 -0
  361. data/ext/libmemcached-0.50/libtest/test.hpp +46 -0
  362. data/ext/libmemcached-0.50/libtest/visibility.h +69 -0
  363. data/ext/libmemcached-0.50/m4/ac_cxx_header_stdcxx_98.m4 +83 -0
  364. data/ext/libmemcached-0.50/m4/acx_pthread.m4 +271 -0
  365. data/ext/libmemcached-0.50/m4/byteorder.m4 +19 -0
  366. data/ext/libmemcached-0.50/m4/deprecated.m4 +17 -0
  367. data/ext/libmemcached-0.50/m4/eagain.m4 +28 -0
  368. data/ext/libmemcached-0.50/m4/enable_utillib.m4 +16 -0
  369. data/ext/libmemcached-0.50/m4/gettext.m4 +379 -0
  370. data/ext/libmemcached-0.50/m4/hsieh.m4 +18 -0
  371. data/ext/libmemcached-0.50/m4/iconv.m4 +214 -0
  372. data/ext/libmemcached-0.50/m4/lib-ld.m4 +110 -0
  373. data/ext/libmemcached-0.50/m4/lib-link.m4 +767 -0
  374. data/ext/libmemcached-0.50/m4/lib-prefix.m4 +221 -0
  375. data/ext/libmemcached-0.50/m4/libtool.m4 +7851 -0
  376. data/ext/libmemcached-0.50/m4/ltoptions.m4 +369 -0
  377. data/ext/libmemcached-0.50/m4/ltsugar.m4 +123 -0
  378. data/ext/libmemcached-0.50/m4/ltversion.m4 +23 -0
  379. data/ext/libmemcached-0.50/m4/lt~obsolete.m4 +98 -0
  380. data/ext/libmemcached-0.50/m4/memaslap.m4 +9 -0
  381. data/ext/libmemcached-0.50/m4/memcached.m4 +31 -0
  382. data/ext/libmemcached-0.50/m4/murmur.m4 +18 -0
  383. data/ext/libmemcached-0.50/m4/pandora_64bit.m4 +60 -0
  384. data/ext/libmemcached-0.50/m4/pandora_bison.m4 +33 -0
  385. data/ext/libmemcached-0.50/m4/pandora_canonical.m4 +418 -0
  386. data/ext/libmemcached-0.50/m4/pandora_check_compiler_version.m4 +37 -0
  387. data/ext/libmemcached-0.50/m4/pandora_check_cxx_standard.m4 +23 -0
  388. data/ext/libmemcached-0.50/m4/pandora_cinttypes.m4 +39 -0
  389. data/ext/libmemcached-0.50/m4/pandora_clock_gettime.m4 +15 -0
  390. data/ext/libmemcached-0.50/m4/pandora_compile_stdcxx_0x.m4 +103 -0
  391. data/ext/libmemcached-0.50/m4/pandora_cstdint.m4 +38 -0
  392. data/ext/libmemcached-0.50/m4/pandora_cxx_demangle.m4 +27 -0
  393. data/ext/libmemcached-0.50/m4/pandora_enable_dtrace.m4 +60 -0
  394. data/ext/libmemcached-0.50/m4/pandora_ensure_gcc_version.m4 +62 -0
  395. data/ext/libmemcached-0.50/m4/pandora_extensions.m4 +16 -0
  396. data/ext/libmemcached-0.50/m4/pandora_fdatasync.m4 +25 -0
  397. data/ext/libmemcached-0.50/m4/pandora_flex.m4 +33 -0
  398. data/ext/libmemcached-0.50/m4/pandora_have_better_malloc.m4 +66 -0
  399. data/ext/libmemcached-0.50/m4/pandora_have_boost.m4 +93 -0
  400. data/ext/libmemcached-0.50/m4/pandora_have_gcc_atomics.m4 +37 -0
  401. data/ext/libmemcached-0.50/m4/pandora_have_innodb.m4 +41 -0
  402. data/ext/libmemcached-0.50/m4/pandora_have_libaio.m4 +56 -0
  403. data/ext/libmemcached-0.50/m4/pandora_have_libavahi.m4 +41 -0
  404. data/ext/libmemcached-0.50/m4/pandora_have_libbdb.m4 +40 -0
  405. data/ext/libmemcached-0.50/m4/pandora_have_libboost_date_time.m4 +46 -0
  406. data/ext/libmemcached-0.50/m4/pandora_have_libboost_filesystem.m4 +47 -0
  407. data/ext/libmemcached-0.50/m4/pandora_have_libboost_iostreams.m4 +49 -0
  408. data/ext/libmemcached-0.50/m4/pandora_have_libboost_options.m4 +47 -0
  409. data/ext/libmemcached-0.50/m4/pandora_have_libboost_regex.m4 +54 -0
  410. data/ext/libmemcached-0.50/m4/pandora_have_libboost_test.m4 +45 -0
  411. data/ext/libmemcached-0.50/m4/pandora_have_libboost_thread.m4 +54 -0
  412. data/ext/libmemcached-0.50/m4/pandora_have_libcassandra.m4 +44 -0
  413. data/ext/libmemcached-0.50/m4/pandora_have_libcurl.m4 +62 -0
  414. data/ext/libmemcached-0.50/m4/pandora_have_libdl.m4 +51 -0
  415. data/ext/libmemcached-0.50/m4/pandora_have_libdrizzle.m4 +61 -0
  416. data/ext/libmemcached-0.50/m4/pandora_have_libevent.m4 +66 -0
  417. data/ext/libmemcached-0.50/m4/pandora_have_libgearman.m4 +41 -0
  418. data/ext/libmemcached-0.50/m4/pandora_have_libgtest.m4 +47 -0
  419. data/ext/libmemcached-0.50/m4/pandora_have_libhaildb.m4 +43 -0
  420. data/ext/libmemcached-0.50/m4/pandora_have_libhashkit.m4 +42 -0
  421. data/ext/libmemcached-0.50/m4/pandora_have_libinnodb.m4 +64 -0
  422. data/ext/libmemcached-0.50/m4/pandora_have_libldap.m4 +73 -0
  423. data/ext/libmemcached-0.50/m4/pandora_have_libmemcached.m4 +106 -0
  424. data/ext/libmemcached-0.50/m4/pandora_have_libmysqlclient.m4 +146 -0
  425. data/ext/libmemcached-0.50/m4/pandora_have_libndbclient.m4 +80 -0
  426. data/ext/libmemcached-0.50/m4/pandora_have_libpcre.m4 +73 -0
  427. data/ext/libmemcached-0.50/m4/pandora_have_libpq.m4 +46 -0
  428. data/ext/libmemcached-0.50/m4/pandora_have_libpqxx.m4 +44 -0
  429. data/ext/libmemcached-0.50/m4/pandora_have_libsqlite3.m4 +42 -0
  430. data/ext/libmemcached-0.50/m4/pandora_have_libtokyocabinet.m4 +54 -0
  431. data/ext/libmemcached-0.50/m4/pandora_have_libuuid.m4 +55 -0
  432. data/ext/libmemcached-0.50/m4/pandora_have_libvbucket.m4 +40 -0
  433. data/ext/libmemcached-0.50/m4/pandora_have_libxml2.m4 +52 -0
  434. data/ext/libmemcached-0.50/m4/pandora_have_libz.m4 +51 -0
  435. data/ext/libmemcached-0.50/m4/pandora_have_protobuf.m4 +82 -0
  436. data/ext/libmemcached-0.50/m4/pandora_have_sasl.m4 +133 -0
  437. data/ext/libmemcached-0.50/m4/pandora_have_thrift.m4 +45 -0
  438. data/ext/libmemcached-0.50/m4/pandora_header_assert.m4 +23 -0
  439. data/ext/libmemcached-0.50/m4/pandora_header_stdcxx_98.m4 +83 -0
  440. data/ext/libmemcached-0.50/m4/pandora_intltool.m4 +225 -0
  441. data/ext/libmemcached-0.50/m4/pandora_libtool.m4 +25 -0
  442. data/ext/libmemcached-0.50/m4/pandora_optimize.m4 +75 -0
  443. data/ext/libmemcached-0.50/m4/pandora_platform.m4 +117 -0
  444. data/ext/libmemcached-0.50/m4/pandora_plugins.m4 +62 -0
  445. data/ext/libmemcached-0.50/m4/pandora_print_callstack.m4 +61 -0
  446. data/ext/libmemcached-0.50/m4/pandora_pthread.m4 +258 -0
  447. data/ext/libmemcached-0.50/m4/pandora_python3_devel.m4 +236 -0
  448. data/ext/libmemcached-0.50/m4/pandora_run_cpplint.m4 +8 -0
  449. data/ext/libmemcached-0.50/m4/pandora_sasl.m4 +133 -0
  450. data/ext/libmemcached-0.50/m4/pandora_shared_ptr.m4 +59 -0
  451. data/ext/libmemcached-0.50/m4/pandora_stack_direction.m4 +39 -0
  452. data/ext/libmemcached-0.50/m4/pandora_stl_hash.m4 +94 -0
  453. data/ext/libmemcached-0.50/m4/pandora_swig.m4 +39 -0
  454. data/ext/libmemcached-0.50/m4/pandora_use_pipe.m4 +36 -0
  455. data/ext/libmemcached-0.50/m4/pandora_vc_build.m4 +168 -0
  456. data/ext/libmemcached-0.50/m4/pandora_version.m4 +11 -0
  457. data/ext/libmemcached-0.50/m4/pandora_visibility.m4 +75 -0
  458. data/ext/libmemcached-0.50/m4/pandora_warnings.m4 +447 -0
  459. data/ext/libmemcached-0.50/m4/pandora_with_gettext.m4 +44 -0
  460. data/ext/libmemcached-0.50/m4/pandora_with_lua.m4 +55 -0
  461. data/ext/libmemcached-0.50/m4/pandora_with_memcached.m4 +41 -0
  462. data/ext/libmemcached-0.50/m4/pandora_with_perl.m4 +81 -0
  463. data/ext/libmemcached-0.50/m4/pandora_with_php.m4 +56 -0
  464. data/ext/libmemcached-0.50/m4/pandora_with_python.m4 +37 -0
  465. data/ext/libmemcached-0.50/m4/pandora_with_python3.m4 +44 -0
  466. data/ext/libmemcached-0.50/m4/pandora_with_r.m4 +33 -0
  467. data/ext/libmemcached-0.50/m4/pandora_with_ruby.m4 +79 -0
  468. data/ext/libmemcached-0.50/m4/pandora_with_valgrind.m4 +17 -0
  469. data/ext/libmemcached-0.50/m4/pkg.m4 +157 -0
  470. data/ext/libmemcached-0.50/m4/po.m4 +449 -0
  471. data/ext/libmemcached-0.50/m4/progtest.m4 +92 -0
  472. data/ext/libmemcached-0.50/m4/protocol_binary.m4 +36 -0
  473. data/ext/libmemcached-0.50/m4/setsockopt.m4 +73 -0
  474. data/ext/libmemcached-0.50/m4/socket_send_flags.m4 +66 -0
  475. data/ext/libmemcached-0.50/poll/include.am +8 -0
  476. data/ext/libmemcached-0.50/poll/poll.c +77 -0
  477. data/ext/libmemcached-0.50/poll/poll.h +45 -0
  478. data/ext/libmemcached-0.50/support/include.am +11 -0
  479. data/ext/libmemcached-0.50/support/libmemcached-fc.spec.in +105 -0
  480. data/ext/libmemcached-0.50/support/libmemcached.pc.in +10 -0
  481. data/ext/libmemcached-0.50/support/libmemcached.spec.in +281 -0
  482. data/ext/libmemcached-0.50/support/set_benchmark.sh +5 -0
  483. data/ext/libmemcached-0.50/tests/atomsmasher.cc +295 -0
  484. data/ext/libmemcached-0.50/tests/basic.cc +134 -0
  485. data/ext/libmemcached-0.50/tests/basic.h +66 -0
  486. data/ext/libmemcached-0.50/tests/cpp_example.cc +195 -0
  487. data/ext/libmemcached-0.50/tests/deprecated.cc +72 -0
  488. data/ext/libmemcached-0.50/tests/deprecated.h +49 -0
  489. data/ext/libmemcached-0.50/tests/error_conditions.cc +63 -0
  490. data/ext/libmemcached-0.50/tests/error_conditions.h +48 -0
  491. data/ext/libmemcached-0.50/tests/hash_plus.cc +225 -0
  492. data/ext/libmemcached-0.50/tests/hash_results.h +127 -0
  493. data/ext/libmemcached-0.50/tests/hashkit_functions.cc +619 -0
  494. data/ext/libmemcached-0.50/tests/include.am +342 -0
  495. data/ext/libmemcached-0.50/tests/ketama_test_cases.h +121 -0
  496. data/ext/libmemcached-0.50/tests/ketama_test_cases_spy.h +118 -0
  497. data/ext/libmemcached-0.50/tests/libmemcached_world.h +205 -0
  498. data/ext/libmemcached-0.50/tests/mem_functions.cc +6648 -0
  499. data/ext/libmemcached-0.50/tests/mem_udp.cc +510 -0
  500. data/ext/libmemcached-0.50/tests/output_plus.res +5 -0
  501. data/ext/libmemcached-0.50/tests/parser.cc +599 -0
  502. data/ext/libmemcached-0.50/tests/parser.h +109 -0
  503. data/ext/libmemcached-0.50/tests/plus.cpp +240 -0
  504. data/ext/libmemcached-0.50/tests/pool.cc +78 -0
  505. data/ext/libmemcached-0.50/tests/pool.h +49 -0
  506. data/ext/libmemcached-0.50/tests/print.cc +58 -0
  507. data/ext/libmemcached-0.50/tests/print.h +51 -0
  508. data/ext/libmemcached-0.50/tests/replication.cc +333 -0
  509. data/ext/libmemcached-0.50/tests/replication.h +64 -0
  510. data/ext/libmemcached-0.50/tests/start.cc +29 -0
  511. data/ext/libmemcached-0.50/tests/string.cc +174 -0
  512. data/ext/libmemcached-0.50/tests/string.h +67 -0
  513. data/ext/libmemcached-0.50/tests/virtual_buckets.cc +143 -0
  514. data/ext/libmemcached-0.50/tests/virtual_buckets.h +51 -0
  515. data/ext/libmemcached-0.50/win32/include.am +11 -0
  516. data/ext/libmemcached-0.50/win32/wrappers.h +55 -0
  517. data/ext/rlibmemcached.i +263 -0
  518. data/ext/rlibmemcached_wrap.c +16732 -0
  519. data/lib/memcached.rb +32 -0
  520. data/lib/memcached/auth.rb +16 -0
  521. data/lib/memcached/behaviors.rb +77 -0
  522. data/lib/memcached/exceptions.rb +84 -0
  523. data/lib/memcached/experimental.rb +48 -0
  524. data/lib/memcached/memcached.rb +660 -0
  525. data/lib/memcached/rails.rb +133 -0
  526. data/test/profile/benchmark.rb +245 -0
  527. data/test/profile/c_profiler.rb +14 -0
  528. data/test/profile/exercise.rb +185 -0
  529. data/test/profile/rb_profiler.rb +21 -0
  530. data/test/profile/valgrind.rb +10 -0
  531. data/test/setup.rb +30 -0
  532. data/test/teardown.rb +0 -0
  533. data/test/test_helper.rb +19 -0
  534. data/test/unit/binding_test.rb +8 -0
  535. data/test/unit/memcached_experimental_test.rb +274 -0
  536. data/test/unit/memcached_test.rb +1293 -0
  537. data/test/unit/rails_test.rb +122 -0
  538. metadata +650 -0
  539. metadata.gz.sig +0 -0
@@ -0,0 +1,122 @@
1
+ /* A Bison parser, made by GNU Bison 2.4.3. */
2
+
3
+ /* Skeleton interface for Bison's Yacc-like parsers in C
4
+
5
+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
6
+ 2009, 2010 Free Software Foundation, Inc.
7
+
8
+ This program is free software: you can redistribute it and/or modify
9
+ it under the terms of the GNU General Public License as published by
10
+ the Free Software Foundation, either version 3 of the License, or
11
+ (at your option) any later version.
12
+
13
+ This program is distributed in the hope that it will be useful,
14
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ GNU General Public License for more details.
17
+
18
+ You should have received a copy of the GNU General Public License
19
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
20
+
21
+ /* As a special exception, you may create a larger work that contains
22
+ part or all of the Bison parser skeleton and distribute that work
23
+ under terms of your choice, so long as that work isn't itself a
24
+ parser generator using the skeleton or a modified version thereof
25
+ as a parser skeleton. Alternatively, if you modify or redistribute
26
+ the parser skeleton itself, you may (at your option) remove this
27
+ special exception, which will cause the skeleton and the resulting
28
+ Bison output files to be licensed under the GNU General Public
29
+ License without this special exception.
30
+
31
+ This special exception was added by the Free Software Foundation in
32
+ version 2.2 of Bison. */
33
+
34
+
35
+ /* Tokens. */
36
+ #ifndef YYTOKENTYPE
37
+ # define YYTOKENTYPE
38
+ /* Put the tokens into the symbol table, so that GDB and other debuggers
39
+ know about them. */
40
+ enum yytokentype {
41
+ COMMENT = 258,
42
+ END = 259,
43
+ ERROR = 260,
44
+ RESET = 261,
45
+ PARSER_DEBUG = 262,
46
+ INCLUDE = 263,
47
+ CONFIGURE_FILE = 264,
48
+ EMPTY_LINE = 265,
49
+ SERVER = 266,
50
+ SERVERS = 267,
51
+ SERVERS_OPTION = 268,
52
+ UNKNOWN_OPTION = 269,
53
+ UNKNOWN = 270,
54
+ BINARY_PROTOCOL = 271,
55
+ BUFFER_REQUESTS = 272,
56
+ CONNECT_TIMEOUT = 273,
57
+ DISTRIBUTION = 274,
58
+ HASH = 275,
59
+ HASH_WITH_NAMESPACE = 276,
60
+ IO_BYTES_WATERMARK = 277,
61
+ IO_KEY_PREFETCH = 278,
62
+ IO_MSG_WATERMARK = 279,
63
+ KETAMA_HASH = 280,
64
+ KETAMA_WEIGHTED = 281,
65
+ NOREPLY = 282,
66
+ NUMBER_OF_REPLICAS = 283,
67
+ POLL_TIMEOUT = 284,
68
+ RANDOMIZE_REPLICA_READ = 285,
69
+ RCV_TIMEOUT = 286,
70
+ REMOVE_FAILED_SERVERS = 287,
71
+ RETRY_TIMEOUT = 288,
72
+ SND_TIMEOUT = 289,
73
+ SOCKET_RECV_SIZE = 290,
74
+ SOCKET_SEND_SIZE = 291,
75
+ SORT_HOSTS = 292,
76
+ SUPPORT_CAS = 293,
77
+ USER_DATA = 294,
78
+ USE_UDP = 295,
79
+ VERIFY_KEY = 296,
80
+ _TCP_KEEPALIVE = 297,
81
+ _TCP_KEEPIDLE = 298,
82
+ _TCP_NODELAY = 299,
83
+ NAMESPACE = 300,
84
+ POOL_MIN = 301,
85
+ POOL_MAX = 302,
86
+ MD5 = 303,
87
+ CRC = 304,
88
+ FNV1_64 = 305,
89
+ FNV1A_64 = 306,
90
+ FNV1_32 = 307,
91
+ FNV1A_32 = 308,
92
+ HSIEH = 309,
93
+ MURMUR = 310,
94
+ JENKINS = 311,
95
+ CONSISTENT = 312,
96
+ MODULA = 313,
97
+ RANDOM = 314,
98
+ TRUE = 315,
99
+ FALSE = 316,
100
+ FLOAT = 317,
101
+ NUMBER = 318,
102
+ PORT = 319,
103
+ WEIGHT_START = 320,
104
+ IPADDRESS = 321,
105
+ HOSTNAME = 322,
106
+ STRING = 323,
107
+ QUOTED_STRING = 324,
108
+ FILE_PATH = 325
109
+ };
110
+ #endif
111
+
112
+
113
+
114
+ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
115
+
116
+ # define yystype YYSTYPE /* obsolescent; will be withdrawn */
117
+ # define YYSTYPE_IS_DECLARED 1
118
+ #endif
119
+
120
+
121
+
122
+
@@ -0,0 +1,3203 @@
1
+ #line 2 "libmemcached/options/scanner.cc"
2
+ #line 22 "libmemcached/options/scanner.l"
3
+
4
+ #include <libmemcached/common.h>
5
+ #include <libmemcached/options/context.h>
6
+ #include <libmemcached/options/parser.h>
7
+ #include <libmemcached/options/symbol.h>
8
+
9
+ #pragma GCC diagnostic ignored "-Wold-style-cast"
10
+ #pragma GCC diagnostic ignored "-Wsign-compare"
11
+ #pragma GCC diagnostic ignored "-Wunused-parameter"
12
+
13
+ #define YY_EXTRA_TYPE Context*
14
+
15
+
16
+
17
+
18
+ #line 19 "libmemcached/options/scanner.cc"
19
+
20
+ #define YY_INT_ALIGNED short int
21
+
22
+ /* A lexical scanner generated by flex */
23
+
24
+ /* %not-for-header */
25
+
26
+ /* %if-c-only */
27
+ /* %if-not-reentrant */
28
+ /* %endif */
29
+ /* %endif */
30
+ /* %ok-for-header */
31
+
32
+ #define FLEX_SCANNER
33
+ #define YY_FLEX_MAJOR_VERSION 2
34
+ #define YY_FLEX_MINOR_VERSION 5
35
+ #define YY_FLEX_SUBMINOR_VERSION 35
36
+ #if YY_FLEX_SUBMINOR_VERSION > 0
37
+ #define FLEX_BETA
38
+ #endif
39
+
40
+ /* %if-c++-only */
41
+ /* %endif */
42
+
43
+ /* %if-c-only */
44
+
45
+ /* %endif */
46
+
47
+ /* %if-c-only */
48
+
49
+ /* %endif */
50
+
51
+ /* First, we deal with platform-specific or compiler-specific issues. */
52
+
53
+ /* begin standard C headers. */
54
+ /* %if-c-only */
55
+ #include <stdio.h>
56
+ #include <string.h>
57
+ #include <errno.h>
58
+ #include <stdlib.h>
59
+ /* %endif */
60
+
61
+ /* %if-tables-serialization */
62
+ /* %endif */
63
+ /* end standard C headers. */
64
+
65
+ /* %if-c-or-c++ */
66
+ /* flex integer type definitions */
67
+
68
+ #ifndef FLEXINT_H
69
+ #define FLEXINT_H
70
+
71
+ /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
72
+
73
+ #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
74
+
75
+ /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
76
+ * if you want the limit (max/min) macros for int types.
77
+ */
78
+ #ifndef __STDC_LIMIT_MACROS
79
+ #define __STDC_LIMIT_MACROS 1
80
+ #endif
81
+
82
+ #include <inttypes.h>
83
+ typedef int8_t flex_int8_t;
84
+ typedef uint8_t flex_uint8_t;
85
+ typedef int16_t flex_int16_t;
86
+ typedef uint16_t flex_uint16_t;
87
+ typedef int32_t flex_int32_t;
88
+ typedef uint32_t flex_uint32_t;
89
+ #else
90
+ typedef signed char flex_int8_t;
91
+ typedef short int flex_int16_t;
92
+ typedef int flex_int32_t;
93
+ typedef unsigned char flex_uint8_t;
94
+ typedef unsigned short int flex_uint16_t;
95
+ typedef unsigned int flex_uint32_t;
96
+ #endif /* ! C99 */
97
+
98
+ /* Limits of integral types. */
99
+ #ifndef INT8_MIN
100
+ #define INT8_MIN (-128)
101
+ #endif
102
+ #ifndef INT16_MIN
103
+ #define INT16_MIN (-32767-1)
104
+ #endif
105
+ #ifndef INT32_MIN
106
+ #define INT32_MIN (-2147483647-1)
107
+ #endif
108
+ #ifndef INT8_MAX
109
+ #define INT8_MAX (127)
110
+ #endif
111
+ #ifndef INT16_MAX
112
+ #define INT16_MAX (32767)
113
+ #endif
114
+ #ifndef INT32_MAX
115
+ #define INT32_MAX (2147483647)
116
+ #endif
117
+ #ifndef UINT8_MAX
118
+ #define UINT8_MAX (255U)
119
+ #endif
120
+ #ifndef UINT16_MAX
121
+ #define UINT16_MAX (65535U)
122
+ #endif
123
+ #ifndef UINT32_MAX
124
+ #define UINT32_MAX (4294967295U)
125
+ #endif
126
+
127
+ #endif /* ! FLEXINT_H */
128
+
129
+ /* %endif */
130
+
131
+ /* %if-c++-only */
132
+ /* %endif */
133
+
134
+ #ifdef __cplusplus
135
+
136
+ /* The "const" storage-class-modifier is valid. */
137
+ #define YY_USE_CONST
138
+
139
+ #else /* ! __cplusplus */
140
+
141
+ /* C99 requires __STDC__ to be defined as 1. */
142
+ #if defined (__STDC__)
143
+
144
+ #define YY_USE_CONST
145
+
146
+ #endif /* defined (__STDC__) */
147
+ #endif /* ! __cplusplus */
148
+
149
+ #ifdef YY_USE_CONST
150
+ #define yyconst const
151
+ #else
152
+ #define yyconst
153
+ #endif
154
+
155
+ /* %not-for-header */
156
+
157
+ /* Returned upon end-of-file. */
158
+ #define YY_NULL 0
159
+ /* %ok-for-header */
160
+
161
+ /* %not-for-header */
162
+
163
+ /* Promotes a possibly negative, possibly signed char to an unsigned
164
+ * integer for use as an array index. If the signed char is negative,
165
+ * we want to instead treat it as an 8-bit unsigned char, hence the
166
+ * double cast.
167
+ */
168
+ #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
169
+ /* %ok-for-header */
170
+
171
+ /* %if-reentrant */
172
+
173
+ /* An opaque pointer. */
174
+ #ifndef YY_TYPEDEF_YY_SCANNER_T
175
+ #define YY_TYPEDEF_YY_SCANNER_T
176
+ typedef void* yyscan_t;
177
+ #endif
178
+
179
+ /* For convenience, these vars (plus the bison vars far below)
180
+ are macros in the reentrant scanner. */
181
+ #define yyin yyg->yyin_r
182
+ #define yyout yyg->yyout_r
183
+ #define yyextra yyg->yyextra_r
184
+ #define yyleng yyg->yyleng_r
185
+ #define yytext yyg->yytext_r
186
+ #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
187
+ #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
188
+ #define yy_flex_debug yyg->yy_flex_debug_r
189
+
190
+ /* %endif */
191
+
192
+ /* %if-not-reentrant */
193
+ /* %endif */
194
+
195
+ /* Enter a start condition. This macro really ought to take a parameter,
196
+ * but we do it the disgusting crufty way forced on us by the ()-less
197
+ * definition of BEGIN.
198
+ */
199
+ #define BEGIN yyg->yy_start = 1 + 2 *
200
+
201
+ /* Translate the current start state into a value that can be later handed
202
+ * to BEGIN to return to the state. The YYSTATE alias is for lex
203
+ * compatibility.
204
+ */
205
+ #define YY_START ((yyg->yy_start - 1) / 2)
206
+ #define YYSTATE YY_START
207
+
208
+ /* Action number for EOF rule of a given start state. */
209
+ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
210
+
211
+ /* Special action meaning "start processing a new file". */
212
+ #define YY_NEW_FILE config_restart(yyin ,yyscanner )
213
+
214
+ #define YY_END_OF_BUFFER_CHAR 0
215
+
216
+ /* Size of default input buffer. */
217
+ #ifndef YY_BUF_SIZE
218
+ #define YY_BUF_SIZE 16384
219
+ #endif
220
+
221
+ /* The state buf must be large enough to hold one state per character in the main buffer.
222
+ */
223
+ #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
224
+
225
+ #ifndef YY_TYPEDEF_YY_BUFFER_STATE
226
+ #define YY_TYPEDEF_YY_BUFFER_STATE
227
+ typedef struct yy_buffer_state *YY_BUFFER_STATE;
228
+ #endif
229
+
230
+ /* %if-not-reentrant */
231
+ /* %endif */
232
+
233
+ /* %if-c-only */
234
+ /* %if-not-reentrant */
235
+ /* %endif */
236
+ /* %endif */
237
+
238
+ #define EOB_ACT_CONTINUE_SCAN 0
239
+ #define EOB_ACT_END_OF_FILE 1
240
+ #define EOB_ACT_LAST_MATCH 2
241
+
242
+ #define YY_LESS_LINENO(n)
243
+
244
+ /* Return all but the first "n" matched characters back to the input stream. */
245
+ #define yyless(n) \
246
+ do \
247
+ { \
248
+ /* Undo effects of setting up yytext. */ \
249
+ int yyless_macro_arg = (n); \
250
+ YY_LESS_LINENO(yyless_macro_arg);\
251
+ *yy_cp = yyg->yy_hold_char; \
252
+ YY_RESTORE_YY_MORE_OFFSET \
253
+ yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
254
+ YY_DO_BEFORE_ACTION; /* set up yytext again */ \
255
+ } \
256
+ while ( 0 )
257
+
258
+ #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
259
+
260
+ #ifndef YY_TYPEDEF_YY_SIZE_T
261
+ #define YY_TYPEDEF_YY_SIZE_T
262
+ typedef size_t yy_size_t;
263
+ #endif
264
+
265
+ #ifndef YY_STRUCT_YY_BUFFER_STATE
266
+ #define YY_STRUCT_YY_BUFFER_STATE
267
+ struct yy_buffer_state
268
+ {
269
+ /* %if-c-only */
270
+ FILE *yy_input_file;
271
+ /* %endif */
272
+
273
+ /* %if-c++-only */
274
+ /* %endif */
275
+
276
+ char *yy_ch_buf; /* input buffer */
277
+ char *yy_buf_pos; /* current position in input buffer */
278
+
279
+ /* Size of input buffer in bytes, not including room for EOB
280
+ * characters.
281
+ */
282
+ yy_size_t yy_buf_size;
283
+
284
+ /* Number of characters read into yy_ch_buf, not including EOB
285
+ * characters.
286
+ */
287
+ int yy_n_chars;
288
+
289
+ /* Whether we "own" the buffer - i.e., we know we created it,
290
+ * and can realloc() it to grow it, and should free() it to
291
+ * delete it.
292
+ */
293
+ int yy_is_our_buffer;
294
+
295
+ /* Whether this is an "interactive" input source; if so, and
296
+ * if we're using stdio for input, then we want to use getc()
297
+ * instead of fread(), to make sure we stop fetching input after
298
+ * each newline.
299
+ */
300
+ int yy_is_interactive;
301
+
302
+ /* Whether we're considered to be at the beginning of a line.
303
+ * If so, '^' rules will be active on the next match, otherwise
304
+ * not.
305
+ */
306
+ int yy_at_bol;
307
+
308
+ int yy_bs_lineno; /**< The line count. */
309
+ int yy_bs_column; /**< The column count. */
310
+
311
+ /* Whether to try to fill the input buffer when we reach the
312
+ * end of it.
313
+ */
314
+ int yy_fill_buffer;
315
+
316
+ int yy_buffer_status;
317
+
318
+ #define YY_BUFFER_NEW 0
319
+ #define YY_BUFFER_NORMAL 1
320
+ /* When an EOF's been seen but there's still some text to process
321
+ * then we mark the buffer as YY_EOF_PENDING, to indicate that we
322
+ * shouldn't try reading from the input source any more. We might
323
+ * still have a bunch of tokens to match, though, because of
324
+ * possible backing-up.
325
+ *
326
+ * When we actually see the EOF, we change the status to "new"
327
+ * (via config_restart()), so that the user can continue scanning by
328
+ * just pointing yyin at a new input file.
329
+ */
330
+ #define YY_BUFFER_EOF_PENDING 2
331
+
332
+ };
333
+ #endif /* !YY_STRUCT_YY_BUFFER_STATE */
334
+
335
+ /* %if-c-only Standard (non-C++) definition */
336
+ /* %not-for-header */
337
+
338
+ /* %if-not-reentrant */
339
+ /* %endif */
340
+ /* %ok-for-header */
341
+
342
+ /* %endif */
343
+
344
+ /* We provide macros for accessing buffer states in case in the
345
+ * future we want to put the buffer states in a more general
346
+ * "scanner state".
347
+ *
348
+ * Returns the top of the stack, or NULL.
349
+ */
350
+ #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
351
+ ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
352
+ : NULL)
353
+
354
+ /* Same as previous macro, but useful when we know that the buffer stack is not
355
+ * NULL or when we need an lvalue. For internal use only.
356
+ */
357
+ #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
358
+
359
+ /* %if-c-only Standard (non-C++) definition */
360
+
361
+ /* %if-not-reentrant */
362
+ /* %not-for-header */
363
+
364
+ /* %ok-for-header */
365
+
366
+ /* %endif */
367
+
368
+ void config_restart (FILE *input_file ,yyscan_t yyscanner );
369
+ void config__switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
370
+ YY_BUFFER_STATE config__create_buffer (FILE *file,int size ,yyscan_t yyscanner );
371
+ void config__delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
372
+ void config__flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
373
+ void config_push_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
374
+ void config_pop_buffer_state (yyscan_t yyscanner );
375
+
376
+ static void config_ensure_buffer_stack (yyscan_t yyscanner );
377
+ static void config__load_buffer_state (yyscan_t yyscanner );
378
+ static void config__init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner );
379
+
380
+ #define YY_FLUSH_BUFFER config__flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
381
+
382
+ YY_BUFFER_STATE config__scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
383
+ YY_BUFFER_STATE config__scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
384
+ YY_BUFFER_STATE config__scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner );
385
+
386
+ /* %endif */
387
+
388
+ void *config_alloc (yy_size_t ,yyscan_t yyscanner );
389
+ void *config_realloc (void *,yy_size_t ,yyscan_t yyscanner );
390
+ void config_free (void * ,yyscan_t yyscanner );
391
+
392
+ #define yy_new_buffer config__create_buffer
393
+
394
+ #define yy_set_interactive(is_interactive) \
395
+ { \
396
+ if ( ! YY_CURRENT_BUFFER ){ \
397
+ config_ensure_buffer_stack (yyscanner); \
398
+ YY_CURRENT_BUFFER_LVALUE = \
399
+ config__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
400
+ } \
401
+ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
402
+ }
403
+
404
+ #define yy_set_bol(at_bol) \
405
+ { \
406
+ if ( ! YY_CURRENT_BUFFER ){\
407
+ config_ensure_buffer_stack (yyscanner); \
408
+ YY_CURRENT_BUFFER_LVALUE = \
409
+ config__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
410
+ } \
411
+ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
412
+ }
413
+
414
+ #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
415
+
416
+ /* %% [1.0] yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here */
417
+ /* Begin user sect3 */
418
+
419
+ #define config_wrap(n) 1
420
+ #define YY_SKIP_YYWRAP
421
+
422
+ #define FLEX_DEBUG
423
+
424
+ typedef unsigned char YY_CHAR;
425
+
426
+ typedef int yy_state_type;
427
+
428
+ #define yytext_ptr yytext_r
429
+
430
+ /* %if-c-only Standard (non-C++) definition */
431
+
432
+ static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
433
+ static yy_state_type yy_try_NUL_trans (yy_state_type current_state ,yyscan_t yyscanner);
434
+ static int yy_get_next_buffer (yyscan_t yyscanner );
435
+ static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
436
+
437
+ /* %endif */
438
+
439
+ /* Done after the current pattern has been matched and before the
440
+ * corresponding action - sets up yytext.
441
+ */
442
+ #define YY_DO_BEFORE_ACTION \
443
+ yyg->yytext_ptr = yy_bp; \
444
+ /* %% [2.0] code to fiddle yytext and yyleng for yymore() goes here \ */\
445
+ yyleng = (size_t) (yy_cp - yy_bp); \
446
+ yyg->yy_hold_char = *yy_cp; \
447
+ *yy_cp = '\0'; \
448
+ /* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\
449
+ yyg->yy_c_buf_p = yy_cp;
450
+
451
+ /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */
452
+ #define YY_NUM_RULES 64
453
+ #define YY_END_OF_BUFFER 65
454
+ /* This struct is not used in this scanner,
455
+ but its presence is necessary. */
456
+ struct yy_trans_info
457
+ {
458
+ flex_int32_t yy_verify;
459
+ flex_int32_t yy_nxt;
460
+ };
461
+ static yyconst flex_int16_t yy_accept[514] =
462
+ { 0,
463
+ 0, 0, 65, 63, 5, 5, 1, 63, 63, 63,
464
+ 2, 63, 63, 63, 63, 63, 63, 63, 63, 63,
465
+ 63, 63, 63, 63, 63, 0, 62, 47, 0, 0,
466
+ 0, 2, 3, 0, 0, 0, 0, 0, 0, 0,
467
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
468
+ 0, 6, 47, 47, 47, 47, 47, 47, 47, 47,
469
+ 47, 47, 47, 47, 47, 4, 61, 61, 2, 3,
470
+ 61, 52, 61, 43, 61, 61, 61, 61, 61, 61,
471
+ 51, 61, 61, 61, 61, 61, 61, 47, 47, 47,
472
+ 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
473
+
474
+ 47, 47, 47, 47, 47, 47, 47, 4, 0, 61,
475
+ 2, 3, 61, 61, 61, 61, 61, 61, 61, 61,
476
+ 61, 61, 61, 61, 61, 45, 47, 47, 47, 47,
477
+ 47, 0, 47, 47, 47, 47, 47, 47, 47, 47,
478
+ 47, 47, 47, 47, 47, 47, 47, 47, 47, 4,
479
+ 61, 61, 3, 61, 41, 44, 46, 61, 0, 57,
480
+ 61, 61, 61, 61, 61, 40, 61, 47, 47, 47,
481
+ 47, 47, 47, 0, 0, 0, 47, 47, 47, 47,
482
+ 47, 47, 0, 47, 47, 47, 0, 47, 47, 47,
483
+ 0, 0, 47, 47, 4, 0, 61, 3, 61, 0,
484
+
485
+ 61, 61, 61, 61, 49, 58, 50, 61, 47, 47,
486
+ 47, 47, 47, 0, 14, 0, 0, 0, 47, 47,
487
+ 47, 0, 0, 47, 0, 47, 47, 47, 0, 47,
488
+ 0, 47, 0, 0, 0, 0, 47, 4, 60, 61,
489
+ 61, 61, 61, 55, 53, 39, 59, 42, 47, 47,
490
+ 47, 47, 47, 0, 0, 0, 0, 47, 47, 47,
491
+ 0, 0, 47, 0, 47, 0, 47, 0, 47, 0,
492
+ 47, 0, 0, 0, 0, 47, 60, 61, 56, 54,
493
+ 0, 0, 47, 47, 47, 0, 0, 0, 0, 47,
494
+ 18, 0, 0, 0, 0, 47, 0, 0, 0, 7,
495
+
496
+ 0, 0, 0, 47, 0, 0, 33, 0, 0, 60,
497
+ 61, 0, 0, 47, 0, 47, 0, 0, 0, 0,
498
+ 47, 0, 0, 0, 0, 47, 0, 0, 0, 0,
499
+ 0, 0, 0, 0, 0, 0, 0, 0, 48, 0,
500
+ 0, 47, 0, 47, 0, 0, 0, 0, 47, 0,
501
+ 0, 37, 36, 47, 0, 0, 0, 0, 0, 0,
502
+ 0, 0, 0, 0, 0, 34, 0, 0, 0, 0,
503
+ 0, 47, 0, 0, 0, 0, 38, 0, 0, 0,
504
+ 0, 0, 0, 0, 0, 0, 28, 0, 0, 0,
505
+ 0, 35, 0, 0, 0, 0, 47, 0, 0, 0,
506
+
507
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
508
+ 29, 0, 0, 32, 0, 0, 0, 0, 47, 0,
509
+ 0, 0, 0, 0, 0, 0, 22, 0, 0, 25,
510
+ 0, 0, 0, 31, 0, 0, 0, 0, 12, 0,
511
+ 0, 0, 0, 0, 20, 0, 0, 0, 0, 0,
512
+ 30, 0, 0, 0, 0, 0, 0, 0, 0, 0,
513
+ 0, 0, 24, 0, 0, 8, 9, 10, 0, 0,
514
+ 0, 0, 0, 0, 0, 0, 0, 0, 11, 0,
515
+ 0, 16, 0, 0, 0, 0, 0, 0, 0, 0,
516
+ 17, 0, 0, 0, 26, 27, 0, 0, 0, 0,
517
+
518
+ 0, 13, 15, 19, 0, 0, 0, 0, 0, 0,
519
+ 21, 23, 0
520
+ } ;
521
+
522
+ static yyconst flex_int32_t yy_ec[256] =
523
+ { 0,
524
+ 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
525
+ 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
526
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
527
+ 1, 4, 1, 5, 6, 1, 1, 1, 1, 1,
528
+ 1, 1, 1, 7, 8, 9, 10, 11, 12, 13,
529
+ 14, 15, 16, 17, 11, 11, 11, 18, 1, 1,
530
+ 19, 1, 20, 1, 21, 22, 23, 24, 25, 26,
531
+ 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
532
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
533
+ 1, 1, 1, 1, 47, 1, 48, 49, 50, 51,
534
+
535
+ 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
536
+ 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
537
+ 72, 73, 1, 1, 1, 1, 1, 1, 1, 1,
538
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
539
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
540
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
541
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
542
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
543
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
544
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
545
+
546
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
547
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
548
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
549
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
550
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
551
+ 1, 1, 1, 1, 1
552
+ } ;
553
+
554
+ static yyconst flex_int32_t yy_meta[74] =
555
+ { 0,
556
+ 1, 1, 2, 1, 3, 1, 1, 3, 3, 1,
557
+ 3, 3, 3, 3, 3, 3, 3, 1, 1, 1,
558
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
559
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
560
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
561
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
562
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
563
+ 3, 3, 3
564
+ } ;
565
+
566
+ static yyconst flex_int16_t yy_base[518] =
567
+ { 0,
568
+ 0, 641, 636, 1648, 1648, 1648, 1648, 629, 625, 604,
569
+ 65, 72, 0, 55, 50, 57, 71, 55, 62, 72,
570
+ 74, 78, 75, 63, 619, 616, 613, 132, 195, 103,
571
+ 208, 251, 215, 235, 228, 230, 237, 245, 265, 281,
572
+ 286, 294, 296, 311, 313, 327, 343, 354, 361, 370,
573
+ 610, 1648, 417, 305, 69, 77, 86, 75, 347, 78,
574
+ 362, 402, 91, 113, 189, 417, 397, 482, 525, 489,
575
+ 413, 466, 502, 507, 509, 514, 516, 542, 550, 557,
576
+ 569, 576, 578, 590, 621, 598, 623, 215, 232, 246,
577
+ 242, 248, 604, 278, 275, 293, 354, 295, 303, 402,
578
+
579
+ 311, 330, 427, 331, 335, 355, 358, 638, 671, 714,
580
+ 757, 645, 634, 686, 669, 692, 694, 747, 738, 703,
581
+ 749, 775, 701, 781, 790, 783, 376, 423, 566, 421,
582
+ 453, 778, 521, 523, 530, 532, 537, 569, 602, 573,
583
+ 627, 624, 597, 638, 631, 688, 594, 759, 708, 838,
584
+ 851, 824, 861, 874, 876, 881, 883, 888, 894, 896,
585
+ 901, 910, 928, 942, 937, 951, 953, 711, 735, 749,
586
+ 768, 769, 501, 767, 788, 775, 778, 782, 794, 593,
587
+ 582, 796, 840, 845, 850, 875, 872, 901, 568, 903,
588
+ 932, 913, 560, 929, 997, 1014, 1057, 1648, 996, 969,
589
+
590
+ 959, 987, 1012, 1036, 1030, 1041, 1043, 1048, 943, 995,
591
+ 1013, 1031, 1026, 1015, 1648, 1036, 1033, 1052, 1044, 1052,
592
+ 1048, 1049, 1058, 1059, 1064, 1069, 552, 1058, 1068, 1058,
593
+ 1071, 1062, 1076, 1073, 1085, 1086, 1067, 1648, 1135, 1124,
594
+ 1133, 1148, 1154, 1159, 1165, 1167, 1178, 1183, 549, 537,
595
+ 1113, 1126, 1155, 1149, 1159, 527, 524, 1168, 1145, 523,
596
+ 1165, 1178, 1167, 1164, 519, 1160, 507, 1169, 481, 1173,
597
+ 1169, 1185, 1189, 1179, 1197, 440, 1241, 1239, 1223, 1254,
598
+ 1197, 1200, 1201, 439, 1200, 1211, 1225, 1231, 1226, 1248,
599
+ 0, 1237, 1242, 1232, 1243, 1233, 1255, 1255, 1253, 1648,
600
+
601
+ 1258, 1246, 1248, 417, 1253, 1265, 1648, 1252, 1262, 1313,
602
+ 1318, 1259, 1280, 1288, 1275, 1285, 1300, 411, 1291, 1309,
603
+ 1309, 1309, 1311, 384, 381, 1312, 1304, 1320, 1310, 1309,
604
+ 1320, 1321, 1307, 1325, 1330, 1317, 1329, 1328, 1374, 1319,
605
+ 1330, 383, 1340, 1355, 376, 1344, 1363, 1349, 336, 339,
606
+ 1355, 1648, 1648, 331, 1350, 1363, 1368, 1354, 1374, 1364,
607
+ 1360, 1379, 1369, 1378, 1382, 1648, 1359, 1365, 1365, 1381,
608
+ 1375, 1374, 1376, 1391, 1387, 1398, 1648, 1400, 1400, 1404,
609
+ 1403, 1412, 1410, 1406, 1405, 1424, 1648, 1410, 1422, 1420,
610
+ 1408, 1648, 1419, 1430, 1427, 1432, 1424, 1438, 1420, 1436,
611
+
612
+ 1424, 1438, 1424, 1441, 312, 1442, 1436, 306, 301, 298,
613
+ 1648, 1450, 1470, 1648, 1473, 1458, 1466, 1464, 281, 1467,
614
+ 1476, 1462, 1470, 1469, 274, 1470, 1648, 1483, 1468, 1648,
615
+ 1470, 1471, 1486, 1648, 1477, 1473, 1489, 1474, 1648, 1491,
616
+ 1479, 1495, 1499, 1489, 1648, 1499, 264, 252, 1517, 1520,
617
+ 1648, 1518, 1512, 238, 1512, 1514, 1521, 1527, 1518, 1528,
618
+ 1530, 1521, 1648, 1515, 1516, 1648, 1648, 1648, 229, 1527,
619
+ 1543, 228, 1534, 1543, 1544, 1543, 1544, 1545, 1648, 1550,
620
+ 1534, 1648, 215, 1553, 1554, 1547, 199, 196, 1577, 1572,
621
+ 1648, 1565, 143, 1563, 1648, 1648, 1581, 120, 119, 1569,
622
+
623
+ 1583, 1648, 1648, 1648, 1584, 1572, 1590, 1574, 1590, 116,
624
+ 1648, 1648, 1648, 1641, 126, 1644, 113
625
+ } ;
626
+
627
+ static yyconst flex_int16_t yy_def[518] =
628
+ { 0,
629
+ 513, 1, 513, 513, 513, 513, 513, 514, 513, 513,
630
+ 515, 513, 515, 515, 515, 515, 515, 515, 515, 515,
631
+ 515, 515, 515, 515, 516, 514, 514, 513, 513, 517,
632
+ 517, 517, 513, 517, 517, 517, 517, 517, 517, 517,
633
+ 517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
634
+ 516, 513, 28, 53, 53, 53, 53, 53, 53, 53,
635
+ 53, 53, 53, 53, 53, 513, 517, 517, 517, 513,
636
+ 517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
637
+ 517, 517, 517, 517, 517, 517, 517, 53, 53, 53,
638
+ 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
639
+
640
+ 53, 53, 53, 53, 53, 53, 53, 513, 517, 517,
641
+ 517, 513, 517, 517, 517, 517, 517, 517, 517, 517,
642
+ 517, 517, 517, 517, 517, 517, 53, 53, 53, 53,
643
+ 53, 513, 53, 53, 53, 53, 53, 53, 53, 53,
644
+ 53, 53, 53, 53, 53, 53, 53, 53, 53, 513,
645
+ 517, 517, 513, 517, 517, 517, 517, 517, 517, 517,
646
+ 517, 517, 517, 517, 517, 517, 517, 53, 53, 53,
647
+ 53, 53, 53, 513, 513, 513, 53, 53, 53, 53,
648
+ 53, 53, 513, 53, 53, 53, 513, 53, 53, 53,
649
+ 513, 513, 53, 53, 513, 517, 517, 513, 517, 517,
650
+
651
+ 517, 517, 517, 517, 517, 517, 517, 517, 53, 53,
652
+ 53, 53, 53, 513, 513, 513, 513, 513, 53, 53,
653
+ 53, 513, 513, 53, 513, 53, 53, 53, 513, 53,
654
+ 513, 53, 513, 513, 513, 513, 53, 513, 517, 517,
655
+ 517, 517, 517, 517, 517, 517, 517, 517, 53, 53,
656
+ 53, 53, 53, 513, 513, 513, 513, 53, 53, 53,
657
+ 513, 513, 53, 513, 53, 513, 53, 513, 53, 513,
658
+ 53, 513, 513, 513, 513, 53, 517, 517, 517, 517,
659
+ 513, 513, 53, 53, 53, 513, 513, 513, 513, 53,
660
+ 53, 513, 513, 513, 513, 53, 513, 513, 513, 513,
661
+
662
+ 513, 513, 513, 53, 513, 513, 513, 513, 513, 517,
663
+ 517, 513, 513, 53, 513, 53, 513, 513, 513, 513,
664
+ 53, 513, 513, 513, 513, 53, 513, 513, 513, 513,
665
+ 513, 513, 513, 513, 513, 513, 513, 513, 517, 513,
666
+ 513, 53, 513, 53, 513, 513, 513, 513, 53, 513,
667
+ 513, 513, 513, 53, 513, 513, 513, 513, 513, 513,
668
+ 513, 513, 513, 513, 513, 513, 513, 513, 513, 513,
669
+ 513, 53, 513, 513, 513, 513, 513, 513, 513, 513,
670
+ 513, 513, 513, 513, 513, 513, 513, 513, 513, 513,
671
+ 513, 513, 513, 513, 513, 513, 53, 513, 513, 513,
672
+
673
+ 513, 513, 513, 513, 513, 513, 513, 513, 513, 513,
674
+ 513, 513, 513, 513, 513, 513, 513, 513, 53, 513,
675
+ 513, 513, 513, 513, 513, 513, 513, 513, 513, 513,
676
+ 513, 513, 513, 513, 513, 513, 513, 513, 513, 513,
677
+ 513, 513, 513, 513, 513, 513, 513, 513, 513, 513,
678
+ 513, 513, 513, 513, 513, 513, 513, 513, 513, 513,
679
+ 513, 513, 513, 513, 513, 513, 513, 513, 513, 513,
680
+ 513, 513, 513, 513, 513, 513, 513, 513, 513, 513,
681
+ 513, 513, 513, 513, 513, 513, 513, 513, 513, 513,
682
+ 513, 513, 513, 513, 513, 513, 513, 513, 513, 513,
683
+
684
+ 513, 513, 513, 513, 513, 513, 513, 513, 513, 513,
685
+ 513, 513, 0, 513, 513, 513, 513
686
+ } ;
687
+
688
+ static yyconst flex_int16_t yy_nxt[1722] =
689
+ { 0,
690
+ 4, 5, 6, 7, 8, 4, 7, 9, 4, 10,
691
+ 11, 11, 11, 11, 11, 11, 11, 12, 7, 4,
692
+ 13, 13, 14, 15, 16, 17, 13, 18, 19, 20,
693
+ 13, 13, 21, 13, 13, 13, 13, 22, 23, 24,
694
+ 13, 13, 13, 13, 13, 13, 4, 13, 13, 14,
695
+ 15, 16, 17, 13, 18, 19, 20, 13, 13, 21,
696
+ 13, 13, 13, 13, 22, 23, 24, 13, 13, 13,
697
+ 13, 13, 13, 31, 36, 32, 32, 32, 32, 32,
698
+ 32, 32, 33, 33, 33, 33, 33, 33, 33, 34,
699
+ 37, 39, 35, 41, 38, 42, 43, 44, 47, 49,
700
+
701
+ 50, 36, 48, 90, 40, 91, 92, 30, 45, 93,
702
+ 30, 30, 97, 105, 46, 67, 34, 37, 39, 35,
703
+ 41, 38, 42, 43, 44, 47, 49, 50, 30, 48,
704
+ 90, 40, 91, 92, 512, 45, 93, 504, 503, 97,
705
+ 105, 46, 53, 53, 53, 53, 53, 53, 53, 30,
706
+ 500, 106, 53, 54, 55, 56, 53, 53, 53, 57,
707
+ 58, 53, 53, 53, 53, 59, 53, 60, 53, 61,
708
+ 62, 63, 64, 65, 53, 53, 53, 53, 106, 53,
709
+ 54, 55, 56, 53, 53, 53, 57, 58, 53, 53,
710
+ 53, 53, 59, 53, 60, 53, 61, 62, 63, 64,
711
+
712
+ 65, 53, 53, 53, 53, 66, 66, 66, 66, 66,
713
+ 66, 66, 30, 107, 496, 30, 30, 495, 68, 68,
714
+ 68, 68, 68, 68, 68, 70, 70, 70, 70, 70,
715
+ 70, 70, 30, 491, 30, 30, 30, 30, 30, 30,
716
+ 107, 30, 30, 30, 30, 30, 482, 479, 127, 30,
717
+ 72, 73, 30, 30, 30, 30, 468, 128, 30, 31,
718
+ 74, 69, 69, 69, 69, 69, 69, 69, 71, 30,
719
+ 463, 462, 30, 30, 30, 127, 30, 72, 73, 129,
720
+ 130, 30, 75, 30, 128, 30, 131, 74, 30, 30,
721
+ 30, 30, 445, 30, 30, 71, 76, 30, 30, 439,
722
+
723
+ 30, 30, 30, 30, 30, 432, 129, 130, 431, 75,
724
+ 133, 30, 134, 131, 78, 30, 79, 30, 30, 30,
725
+ 30, 30, 77, 76, 430, 135, 81, 30, 138, 80,
726
+ 427, 30, 30, 88, 30, 30, 82, 133, 380, 134,
727
+ 30, 78, 30, 79, 139, 89, 378, 30, 142, 77,
728
+ 30, 30, 135, 143, 377, 138, 80, 30, 30, 30,
729
+ 88, 30, 30, 82, 83, 30, 146, 94, 30, 30,
730
+ 147, 139, 89, 30, 30, 142, 84, 30, 30, 148,
731
+ 143, 95, 98, 373, 99, 136, 100, 96, 137, 30,
732
+ 370, 83, 85, 146, 94, 149, 168, 147, 86, 353,
733
+
734
+ 30, 30, 352, 84, 30, 30, 148, 30, 95, 98,
735
+ 87, 99, 136, 100, 96, 137, 30, 30, 346, 85,
736
+ 30, 30, 149, 168, 334, 86, 101, 108, 108, 108,
737
+ 108, 108, 108, 108, 140, 102, 103, 87, 53, 53,
738
+ 53, 141, 104, 30, 53, 53, 315, 309, 169, 144,
739
+ 53, 113, 53, 101, 53, 53, 53, 53, 53, 30,
740
+ 172, 140, 102, 103, 145, 53, 53, 53, 141, 104,
741
+ 30, 53, 53, 30, 30, 169, 144, 53, 113, 53,
742
+ 173, 53, 53, 53, 53, 53, 30, 172, 302, 30,
743
+ 109, 145, 110, 110, 110, 110, 110, 110, 110, 112,
744
+
745
+ 112, 112, 112, 112, 112, 112, 30, 173, 214, 30,
746
+ 30, 30, 30, 30, 30, 30, 30, 30, 30, 215,
747
+ 30, 30, 30, 30, 30, 300, 298, 117, 30, 30,
748
+ 292, 289, 30, 31, 288, 111, 111, 111, 111, 111,
749
+ 111, 111, 114, 115, 282, 177, 30, 178, 30, 30,
750
+ 30, 179, 116, 30, 30, 30, 281, 30, 30, 266,
751
+ 30, 30, 30, 180, 30, 30, 118, 236, 181, 114,
752
+ 115, 30, 177, 30, 178, 231, 30, 30, 179, 116,
753
+ 30, 119, 30, 30, 30, 30, 30, 120, 30, 223,
754
+ 180, 170, 182, 118, 30, 181, 30, 30, 30, 171,
755
+
756
+ 222, 191, 30, 30, 187, 30, 30, 184, 119, 183,
757
+ 122, 132, 52, 123, 120, 30, 121, 27, 170, 182,
758
+ 27, 52, 30, 29, 30, 30, 171, 30, 30, 30,
759
+ 30, 30, 28, 27, 184, 513, 30, 122, 30, 125,
760
+ 123, 30, 30, 121, 30, 124, 25, 126, 150, 150,
761
+ 150, 150, 150, 150, 150, 153, 153, 153, 153, 153,
762
+ 153, 153, 154, 513, 185, 186, 125, 30, 188, 30,
763
+ 189, 513, 124, 30, 126, 30, 30, 30, 30, 30,
764
+ 30, 151, 151, 151, 151, 151, 151, 151, 513, 154,
765
+ 30, 185, 186, 30, 30, 188, 30, 189, 30, 30,
766
+
767
+ 30, 30, 30, 513, 513, 30, 156, 30, 30, 30,
768
+ 30, 30, 155, 513, 158, 30, 157, 30, 30, 513,
769
+ 513, 30, 109, 190, 152, 152, 152, 152, 152, 152,
770
+ 152, 162, 30, 156, 513, 165, 194, 513, 30, 155,
771
+ 159, 158, 30, 157, 513, 30, 30, 30, 209, 30,
772
+ 190, 30, 513, 30, 30, 30, 30, 30, 162, 210,
773
+ 30, 30, 165, 194, 30, 30, 192, 111, 111, 111,
774
+ 111, 111, 111, 111, 160, 209, 513, 211, 161, 30,
775
+ 163, 513, 30, 30, 30, 30, 210, 30, 30, 30,
776
+ 30, 30, 212, 30, 30, 30, 193, 30, 30, 174,
777
+
778
+ 513, 160, 513, 30, 211, 161, 213, 163, 175, 513,
779
+ 176, 216, 217, 218, 167, 164, 219, 220, 221, 212,
780
+ 166, 30, 513, 193, 513, 513, 174, 30, 30, 30,
781
+ 224, 30, 109, 213, 513, 175, 30, 176, 216, 217,
782
+ 218, 167, 164, 219, 220, 221, 513, 166, 195, 195,
783
+ 195, 195, 195, 195, 195, 30, 513, 224, 30, 196,
784
+ 513, 197, 197, 197, 197, 197, 197, 197, 513, 513,
785
+ 30, 198, 198, 198, 198, 198, 198, 198, 30, 225,
786
+ 30, 30, 30, 30, 30, 30, 226, 30, 30, 30,
787
+ 30, 30, 30, 513, 227, 30, 30, 30, 30, 228,
788
+
789
+ 30, 30, 30, 30, 30, 30, 225, 201, 30, 30,
790
+ 202, 229, 199, 226, 30, 513, 513, 30, 30, 513,
791
+ 30, 227, 30, 513, 203, 230, 228, 30, 513, 30,
792
+ 513, 513, 30, 513, 200, 30, 30, 232, 229, 199,
793
+ 30, 30, 30, 204, 30, 30, 30, 30, 205, 30,
794
+ 30, 203, 230, 235, 237, 30, 30, 30, 30, 30,
795
+ 30, 30, 233, 30, 232, 234, 30, 30, 513, 207,
796
+ 204, 244, 513, 30, 30, 205, 30, 30, 513, 206,
797
+ 235, 237, 242, 30, 513, 243, 513, 249, 30, 233,
798
+ 208, 30, 234, 513, 30, 30, 207, 30, 513, 30,
799
+
800
+ 30, 245, 513, 30, 30, 30, 206, 238, 238, 238,
801
+ 238, 238, 238, 238, 249, 30, 30, 208, 30, 30,
802
+ 30, 30, 30, 513, 239, 239, 239, 239, 239, 239,
803
+ 239, 513, 250, 30, 30, 241, 246, 30, 30, 251,
804
+ 30, 513, 30, 30, 30, 30, 513, 30, 30, 30,
805
+ 30, 30, 30, 252, 253, 30, 30, 254, 30, 250,
806
+ 30, 30, 241, 246, 30, 196, 251, 240, 240, 240,
807
+ 240, 240, 240, 240, 247, 255, 30, 256, 257, 258,
808
+ 252, 253, 30, 259, 254, 260, 248, 30, 261, 30,
809
+ 262, 263, 264, 265, 30, 267, 268, 269, 270, 271,
810
+
811
+ 272, 247, 255, 30, 256, 257, 258, 273, 274, 275,
812
+ 259, 276, 260, 248, 513, 261, 513, 262, 263, 264,
813
+ 265, 513, 267, 268, 269, 270, 271, 272, 30, 513,
814
+ 513, 30, 196, 513, 273, 274, 275, 30, 276, 30,
815
+ 30, 30, 30, 30, 513, 277, 277, 277, 277, 277,
816
+ 277, 277, 30, 283, 513, 30, 30, 278, 30, 513,
817
+ 279, 30, 30, 30, 513, 284, 30, 30, 280, 30,
818
+ 30, 30, 30, 30, 30, 30, 285, 286, 513, 30,
819
+ 283, 30, 30, 287, 278, 30, 30, 30, 290, 291,
820
+ 30, 30, 284, 293, 30, 296, 297, 513, 294, 299,
821
+
822
+ 30, 301, 513, 285, 286, 30, 295, 303, 304, 305,
823
+ 287, 30, 306, 30, 307, 290, 291, 308, 513, 513,
824
+ 293, 513, 296, 297, 30, 294, 299, 30, 301, 30,
825
+ 30, 30, 312, 295, 303, 304, 305, 313, 314, 306,
826
+ 316, 307, 513, 30, 308, 30, 30, 30, 30, 30,
827
+ 317, 310, 310, 310, 310, 310, 310, 310, 30, 312,
828
+ 513, 30, 30, 318, 313, 314, 319, 316, 320, 30,
829
+ 321, 322, 311, 513, 323, 324, 325, 317, 326, 327,
830
+ 328, 329, 330, 331, 332, 30, 333, 30, 335, 336,
831
+ 318, 337, 338, 319, 513, 320, 340, 321, 322, 311,
832
+
833
+ 30, 323, 324, 325, 341, 326, 327, 328, 329, 330,
834
+ 331, 332, 342, 333, 343, 335, 336, 30, 337, 338,
835
+ 30, 30, 30, 340, 344, 30, 30, 345, 347, 348,
836
+ 513, 341, 513, 349, 350, 351, 354, 513, 355, 342,
837
+ 356, 343, 357, 358, 359, 360, 361, 362, 365, 366,
838
+ 363, 344, 367, 368, 345, 347, 348, 339, 364, 30,
839
+ 349, 350, 351, 354, 30, 355, 369, 356, 371, 357,
840
+ 358, 359, 360, 361, 362, 365, 366, 363, 30, 367,
841
+ 368, 30, 30, 372, 339, 364, 374, 375, 376, 379,
842
+ 381, 382, 383, 369, 384, 371, 385, 386, 387, 388,
843
+
844
+ 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
845
+ 372, 399, 400, 374, 375, 376, 379, 381, 382, 383,
846
+ 30, 384, 401, 385, 386, 387, 388, 389, 390, 391,
847
+ 392, 393, 394, 395, 396, 397, 398, 402, 399, 400,
848
+ 403, 404, 405, 406, 407, 408, 409, 410, 411, 401,
849
+ 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
850
+ 422, 423, 424, 425, 402, 426, 428, 403, 404, 405,
851
+ 406, 407, 408, 409, 410, 411, 429, 412, 413, 414,
852
+ 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
853
+ 425, 433, 426, 428, 434, 435, 436, 437, 438, 440,
854
+
855
+ 441, 442, 443, 429, 444, 446, 447, 448, 449, 450,
856
+ 451, 452, 453, 454, 455, 456, 457, 458, 433, 459,
857
+ 460, 434, 435, 436, 437, 438, 440, 441, 442, 443,
858
+ 461, 444, 446, 447, 448, 449, 450, 451, 452, 453,
859
+ 454, 455, 456, 457, 458, 464, 459, 460, 465, 466,
860
+ 467, 469, 470, 471, 472, 473, 474, 461, 475, 476,
861
+ 477, 478, 480, 481, 483, 484, 485, 486, 487, 488,
862
+ 489, 490, 464, 492, 493, 465, 466, 467, 469, 470,
863
+ 471, 472, 473, 474, 494, 475, 476, 477, 478, 480,
864
+ 481, 483, 484, 485, 486, 487, 488, 489, 490, 497,
865
+
866
+ 492, 493, 498, 499, 501, 502, 505, 506, 507, 508,
867
+ 509, 494, 510, 511, 513, 513, 513, 513, 513, 513,
868
+ 513, 513, 513, 513, 513, 513, 497, 513, 513, 498,
869
+ 499, 501, 502, 505, 506, 507, 508, 509, 513, 510,
870
+ 511, 26, 513, 26, 51, 51, 51, 3, 513, 513,
871
+ 513, 513, 513, 513, 513, 513, 513, 513, 513, 513,
872
+ 513, 513, 513, 513, 513, 513, 513, 513, 513, 513,
873
+ 513, 513, 513, 513, 513, 513, 513, 513, 513, 513,
874
+ 513, 513, 513, 513, 513, 513, 513, 513, 513, 513,
875
+ 513, 513, 513, 513, 513, 513, 513, 513, 513, 513,
876
+
877
+ 513, 513, 513, 513, 513, 513, 513, 513, 513, 513,
878
+ 513, 513, 513, 513, 513, 513, 513, 513, 513, 513,
879
+ 513
880
+ } ;
881
+
882
+ static yyconst flex_int16_t yy_chk[1722] =
883
+ { 0,
884
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
885
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
886
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
887
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
888
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
889
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
890
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
891
+ 1, 1, 1, 11, 15, 11, 11, 11, 11, 11,
892
+ 11, 11, 12, 12, 12, 12, 12, 12, 12, 14,
893
+ 16, 17, 14, 18, 16, 19, 20, 21, 22, 23,
894
+
895
+ 24, 15, 22, 55, 17, 56, 57, 30, 21, 58,
896
+ 30, 30, 60, 63, 21, 517, 14, 16, 17, 14,
897
+ 18, 16, 19, 20, 21, 22, 23, 24, 515, 22,
898
+ 55, 17, 56, 57, 510, 21, 58, 499, 498, 60,
899
+ 63, 21, 28, 28, 28, 28, 28, 28, 28, 30,
900
+ 493, 64, 28, 28, 28, 28, 28, 28, 28, 28,
901
+ 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
902
+ 28, 28, 28, 28, 28, 28, 28, 28, 64, 28,
903
+ 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
904
+ 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
905
+
906
+ 28, 28, 28, 28, 28, 29, 29, 29, 29, 29,
907
+ 29, 29, 31, 65, 488, 31, 31, 487, 31, 31,
908
+ 31, 31, 31, 31, 31, 33, 33, 33, 33, 33,
909
+ 33, 33, 35, 483, 36, 35, 35, 36, 36, 34,
910
+ 65, 37, 34, 34, 37, 37, 472, 469, 88, 38,
911
+ 35, 36, 38, 38, 31, 32, 454, 89, 32, 32,
912
+ 37, 32, 32, 32, 32, 32, 32, 32, 34, 39,
913
+ 448, 447, 39, 39, 35, 88, 36, 35, 36, 90,
914
+ 91, 34, 38, 37, 89, 40, 92, 37, 40, 40,
915
+ 41, 38, 425, 41, 41, 34, 39, 32, 42, 419,
916
+
917
+ 43, 42, 42, 43, 43, 410, 90, 91, 409, 38,
918
+ 94, 39, 95, 92, 41, 44, 42, 45, 44, 44,
919
+ 45, 45, 40, 39, 408, 96, 44, 40, 98, 43,
920
+ 405, 46, 41, 54, 46, 46, 45, 94, 354, 95,
921
+ 42, 41, 43, 42, 99, 54, 350, 47, 101, 40,
922
+ 47, 47, 96, 102, 349, 98, 43, 44, 48, 45,
923
+ 54, 48, 48, 45, 46, 49, 104, 59, 49, 49,
924
+ 105, 99, 54, 46, 50, 101, 47, 50, 50, 106,
925
+ 102, 59, 61, 345, 61, 97, 61, 59, 97, 47,
926
+ 342, 46, 48, 104, 59, 107, 127, 105, 49, 325,
927
+
928
+ 48, 67, 324, 47, 67, 67, 106, 49, 59, 61,
929
+ 50, 61, 97, 61, 59, 97, 50, 71, 318, 48,
930
+ 71, 71, 107, 127, 304, 49, 62, 66, 66, 66,
931
+ 66, 66, 66, 66, 100, 62, 62, 50, 53, 53,
932
+ 53, 100, 62, 67, 53, 53, 284, 276, 128, 103,
933
+ 53, 71, 53, 62, 53, 53, 53, 53, 53, 71,
934
+ 130, 100, 62, 62, 103, 53, 53, 53, 100, 62,
935
+ 72, 53, 53, 72, 72, 128, 103, 53, 71, 53,
936
+ 131, 53, 53, 53, 53, 53, 68, 130, 269, 68,
937
+ 68, 103, 68, 68, 68, 68, 68, 68, 68, 70,
938
+
939
+ 70, 70, 70, 70, 70, 70, 73, 131, 173, 73,
940
+ 73, 74, 72, 75, 74, 74, 75, 75, 76, 173,
941
+ 77, 76, 76, 77, 77, 267, 265, 77, 68, 69,
942
+ 260, 257, 69, 69, 256, 69, 69, 69, 69, 69,
943
+ 69, 69, 73, 75, 250, 133, 78, 134, 73, 78,
944
+ 78, 135, 76, 74, 79, 75, 249, 79, 79, 227,
945
+ 76, 80, 77, 136, 80, 80, 78, 193, 137, 73,
946
+ 75, 69, 133, 81, 134, 189, 81, 81, 135, 76,
947
+ 82, 79, 83, 82, 82, 83, 83, 80, 78, 181,
948
+ 136, 129, 138, 78, 84, 137, 79, 84, 84, 129,
949
+
950
+ 180, 147, 86, 80, 143, 86, 86, 140, 79, 139,
951
+ 83, 93, 51, 84, 80, 81, 82, 27, 129, 138,
952
+ 26, 25, 82, 10, 83, 85, 129, 87, 85, 85,
953
+ 87, 87, 9, 8, 140, 3, 84, 83, 113, 86,
954
+ 84, 113, 113, 82, 86, 85, 2, 87, 108, 108,
955
+ 108, 108, 108, 108, 108, 112, 112, 112, 112, 112,
956
+ 112, 112, 113, 0, 141, 142, 86, 85, 144, 87,
957
+ 145, 0, 85, 115, 87, 109, 115, 115, 109, 109,
958
+ 113, 109, 109, 109, 109, 109, 109, 109, 0, 113,
959
+ 114, 141, 142, 114, 114, 144, 116, 145, 117, 116,
960
+
961
+ 116, 117, 117, 0, 0, 123, 115, 120, 123, 123,
962
+ 120, 120, 114, 0, 117, 115, 116, 109, 110, 0,
963
+ 0, 110, 110, 146, 110, 110, 110, 110, 110, 110,
964
+ 110, 120, 114, 115, 0, 123, 149, 0, 116, 114,
965
+ 117, 117, 119, 116, 0, 119, 119, 123, 168, 120,
966
+ 146, 118, 0, 121, 118, 118, 121, 121, 120, 169,
967
+ 110, 111, 123, 149, 111, 111, 148, 111, 111, 111,
968
+ 111, 111, 111, 111, 118, 168, 0, 170, 119, 122,
969
+ 121, 0, 122, 122, 119, 124, 169, 126, 124, 124,
970
+ 126, 126, 171, 118, 125, 121, 148, 125, 125, 132,
971
+
972
+ 0, 118, 0, 111, 170, 119, 172, 121, 132, 0,
973
+ 132, 174, 175, 176, 125, 122, 177, 178, 179, 171,
974
+ 124, 122, 0, 148, 0, 0, 132, 124, 152, 126,
975
+ 182, 152, 152, 172, 0, 132, 125, 132, 174, 175,
976
+ 176, 125, 122, 177, 178, 179, 0, 124, 150, 150,
977
+ 150, 150, 150, 150, 150, 151, 0, 182, 151, 151,
978
+ 0, 151, 151, 151, 151, 151, 151, 151, 0, 0,
979
+ 152, 153, 153, 153, 153, 153, 153, 153, 154, 183,
980
+ 155, 154, 154, 155, 155, 156, 184, 157, 156, 156,
981
+ 157, 157, 158, 0, 185, 158, 158, 151, 159, 186,
982
+
983
+ 160, 159, 159, 160, 160, 161, 183, 159, 161, 161,
984
+ 159, 187, 154, 184, 162, 0, 0, 162, 162, 0,
985
+ 154, 185, 155, 0, 161, 188, 186, 156, 0, 157,
986
+ 0, 0, 163, 0, 158, 163, 163, 190, 187, 154,
987
+ 159, 165, 160, 162, 165, 165, 164, 161, 163, 164,
988
+ 164, 161, 188, 192, 194, 166, 162, 167, 166, 166,
989
+ 167, 167, 191, 201, 190, 191, 201, 201, 0, 165,
990
+ 162, 201, 0, 200, 163, 163, 200, 200, 0, 164,
991
+ 192, 194, 200, 165, 0, 200, 0, 209, 164, 191,
992
+ 167, 202, 191, 0, 202, 202, 165, 166, 0, 167,
993
+
994
+ 199, 202, 0, 199, 199, 201, 164, 195, 195, 195,
995
+ 195, 195, 195, 195, 209, 200, 203, 167, 196, 203,
996
+ 203, 196, 196, 0, 196, 196, 196, 196, 196, 196,
997
+ 196, 0, 210, 202, 205, 199, 203, 205, 205, 211,
998
+ 204, 0, 199, 204, 204, 206, 0, 207, 206, 206,
999
+ 207, 207, 208, 212, 213, 208, 208, 214, 203, 210,
1000
+ 196, 197, 199, 203, 197, 197, 211, 197, 197, 197,
1001
+ 197, 197, 197, 197, 204, 216, 205, 217, 218, 219,
1002
+ 212, 213, 204, 220, 214, 221, 208, 206, 222, 207,
1003
+ 223, 224, 225, 226, 208, 228, 229, 230, 231, 232,
1004
+
1005
+ 233, 204, 216, 197, 217, 218, 219, 234, 235, 236,
1006
+ 220, 237, 221, 208, 0, 222, 0, 223, 224, 225,
1007
+ 226, 0, 228, 229, 230, 231, 232, 233, 240, 0,
1008
+ 0, 240, 240, 0, 234, 235, 236, 241, 237, 239,
1009
+ 241, 241, 239, 239, 0, 239, 239, 239, 239, 239,
1010
+ 239, 239, 242, 251, 0, 242, 242, 241, 243, 0,
1011
+ 242, 243, 243, 244, 0, 252, 244, 244, 243, 245,
1012
+ 240, 246, 245, 245, 246, 246, 253, 254, 0, 241,
1013
+ 251, 239, 247, 255, 241, 247, 247, 248, 258, 259,
1014
+ 248, 248, 252, 261, 242, 263, 264, 0, 262, 266,
1015
+
1016
+ 243, 268, 0, 253, 254, 244, 262, 270, 271, 272,
1017
+ 255, 245, 273, 246, 274, 258, 259, 275, 0, 0,
1018
+ 261, 0, 263, 264, 247, 262, 266, 279, 268, 248,
1019
+ 279, 279, 281, 262, 270, 271, 272, 282, 283, 273,
1020
+ 285, 274, 0, 278, 275, 277, 278, 278, 277, 277,
1021
+ 286, 277, 277, 277, 277, 277, 277, 277, 280, 281,
1022
+ 0, 280, 280, 287, 282, 283, 288, 285, 289, 279,
1023
+ 290, 292, 278, 0, 293, 294, 295, 286, 296, 297,
1024
+ 298, 299, 301, 302, 302, 278, 303, 277, 305, 306,
1025
+ 287, 308, 309, 288, 0, 289, 312, 290, 292, 278,
1026
+
1027
+ 280, 293, 294, 295, 313, 296, 297, 298, 299, 301,
1028
+ 302, 302, 314, 303, 315, 305, 306, 310, 308, 309,
1029
+ 310, 310, 311, 312, 316, 311, 311, 317, 319, 320,
1030
+ 0, 313, 0, 321, 322, 323, 326, 0, 327, 314,
1031
+ 328, 315, 329, 330, 331, 332, 333, 334, 336, 337,
1032
+ 335, 316, 338, 340, 317, 319, 320, 311, 335, 310,
1033
+ 321, 322, 323, 326, 311, 327, 341, 328, 343, 329,
1034
+ 330, 331, 332, 333, 334, 336, 337, 335, 339, 338,
1035
+ 340, 339, 339, 344, 311, 335, 346, 347, 348, 351,
1036
+ 355, 356, 357, 341, 358, 343, 359, 360, 361, 362,
1037
+
1038
+ 363, 364, 365, 367, 368, 369, 370, 371, 372, 373,
1039
+ 344, 374, 375, 346, 347, 348, 351, 355, 356, 357,
1040
+ 339, 358, 376, 359, 360, 361, 362, 363, 364, 365,
1041
+ 367, 368, 369, 370, 371, 372, 373, 378, 374, 375,
1042
+ 379, 380, 381, 382, 383, 384, 385, 386, 388, 376,
1043
+ 389, 390, 391, 393, 394, 395, 396, 397, 398, 399,
1044
+ 400, 401, 402, 403, 378, 404, 406, 379, 380, 381,
1045
+ 382, 383, 384, 385, 386, 388, 407, 389, 390, 391,
1046
+ 393, 394, 395, 396, 397, 398, 399, 400, 401, 402,
1047
+ 403, 412, 404, 406, 413, 415, 416, 417, 418, 420,
1048
+
1049
+ 421, 422, 423, 407, 424, 426, 428, 429, 431, 432,
1050
+ 433, 435, 436, 437, 438, 440, 441, 442, 412, 443,
1051
+ 444, 413, 415, 416, 417, 418, 420, 421, 422, 423,
1052
+ 446, 424, 426, 428, 429, 431, 432, 433, 435, 436,
1053
+ 437, 438, 440, 441, 442, 449, 443, 444, 450, 452,
1054
+ 453, 455, 456, 457, 458, 459, 460, 446, 461, 462,
1055
+ 464, 465, 470, 471, 473, 474, 475, 476, 477, 478,
1056
+ 480, 481, 449, 484, 485, 450, 452, 453, 455, 456,
1057
+ 457, 458, 459, 460, 486, 461, 462, 464, 465, 470,
1058
+ 471, 473, 474, 475, 476, 477, 478, 480, 481, 489,
1059
+
1060
+ 484, 485, 490, 492, 494, 497, 500, 501, 505, 506,
1061
+ 507, 486, 508, 509, 0, 0, 0, 0, 0, 0,
1062
+ 0, 0, 0, 0, 0, 0, 489, 0, 0, 490,
1063
+ 492, 494, 497, 500, 501, 505, 506, 507, 0, 508,
1064
+ 509, 514, 0, 514, 516, 516, 516, 513, 513, 513,
1065
+ 513, 513, 513, 513, 513, 513, 513, 513, 513, 513,
1066
+ 513, 513, 513, 513, 513, 513, 513, 513, 513, 513,
1067
+ 513, 513, 513, 513, 513, 513, 513, 513, 513, 513,
1068
+ 513, 513, 513, 513, 513, 513, 513, 513, 513, 513,
1069
+ 513, 513, 513, 513, 513, 513, 513, 513, 513, 513,
1070
+
1071
+ 513, 513, 513, 513, 513, 513, 513, 513, 513, 513,
1072
+ 513, 513, 513, 513, 513, 513, 513, 513, 513, 513,
1073
+ 513
1074
+ } ;
1075
+
1076
+ static yyconst flex_int16_t yy_rule_linenum[64] =
1077
+ { 0,
1078
+ 77, 79, 81, 83, 85, 88, 92, 94, 95, 96,
1079
+ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1080
+ 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
1081
+ 117, 118, 119, 120, 121, 123, 124, 126, 128, 129,
1082
+ 130, 131, 132, 133, 135, 136, 139, 144, 145, 146,
1083
+ 148, 149, 150, 151, 152, 153, 154, 155, 156, 158,
1084
+ 167, 185, 191
1085
+ } ;
1086
+
1087
+ /* The intent behind this definition is that it'll catch
1088
+ * any uses of REJECT which flex missed.
1089
+ */
1090
+ #define REJECT reject_used_but_not_detected
1091
+ #define yymore() yymore_used_but_not_detected
1092
+ #define YY_MORE_ADJ 0
1093
+ #define YY_RESTORE_YY_MORE_OFFSET
1094
+ #line 1 "libmemcached/options/scanner.l"
1095
+ /* vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
1096
+ *
1097
+ * Libmemcached Scanner and Parser
1098
+ *
1099
+ * Copyright (C) 2011 DataDifferental, http://datadifferential.com
1100
+ *
1101
+ * This program is free software: you can redistribute it and/or modify
1102
+ * it under the terms of the GNU Affero General Public License as
1103
+ * published by the Free Software Foundation, either version 3 of the
1104
+ * License, or (at your option) any later version.
1105
+ *
1106
+ * This program is distributed in the hope that it will be useful,
1107
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
1108
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1109
+ * GNU Affero General Public License for more details.
1110
+ *
1111
+ * You should have received a copy of the GNU Affero General Public License
1112
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
1113
+ */
1114
+
1115
+ #line 38 "libmemcached/options/scanner.l"
1116
+ #include <cstdlib>
1117
+ #include <cstring>
1118
+
1119
+ #define PARAM config_get_extra(yyscanner)
1120
+
1121
+ #define get_lex_chars(buffer, result, max_size, context) \
1122
+ { \
1123
+ if (context->pos >= context->length) \
1124
+ { \
1125
+ result= YY_NULL; \
1126
+ } \
1127
+ else \
1128
+ { \
1129
+ result= (int)(context->length - context->pos); \
1130
+ (size_t)result > (size_t)max_size ? result= max_size : 0; \
1131
+ memcpy(buffer, context->buf + context->pos, result); \
1132
+ context->pos += result; \
1133
+ } \
1134
+ }
1135
+
1136
+
1137
+ #define YY_INPUT(buffer, result, max_size) get_lex_chars(buffer, result, max_size, PARAM)
1138
+
1139
+ #line 1140 "libmemcached/options/scanner.cc"
1140
+
1141
+ #define INITIAL 0
1142
+
1143
+ #ifndef YY_NO_UNISTD_H
1144
+ /* Special case for "unistd.h", since it is non-ANSI. We include it way
1145
+ * down here because we want the user's section 1 to have been scanned first.
1146
+ * The user has a chance to override it with an option.
1147
+ */
1148
+ /* %if-c-only */
1149
+ #include <unistd.h>
1150
+ /* %endif */
1151
+ /* %if-c++-only */
1152
+ /* %endif */
1153
+ #endif
1154
+
1155
+ #ifndef YY_EXTRA_TYPE
1156
+ #define YY_EXTRA_TYPE void *
1157
+ #endif
1158
+
1159
+ /* %if-c-only Reentrant structure and macros (non-C++). */
1160
+ /* %if-reentrant */
1161
+
1162
+ /* Holds the entire state of the reentrant scanner. */
1163
+ struct yyguts_t
1164
+ {
1165
+
1166
+ /* User-defined. Not touched by flex. */
1167
+ YY_EXTRA_TYPE yyextra_r;
1168
+
1169
+ /* The rest are the same as the globals declared in the non-reentrant scanner. */
1170
+ FILE *yyin_r, *yyout_r;
1171
+ size_t yy_buffer_stack_top; /**< index of top of stack. */
1172
+ size_t yy_buffer_stack_max; /**< capacity of stack. */
1173
+ YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
1174
+ char yy_hold_char;
1175
+ int yy_n_chars;
1176
+ int yyleng_r;
1177
+ char *yy_c_buf_p;
1178
+ int yy_init;
1179
+ int yy_start;
1180
+ int yy_did_buffer_switch_on_eof;
1181
+ int yy_start_stack_ptr;
1182
+ int yy_start_stack_depth;
1183
+ int *yy_start_stack;
1184
+ yy_state_type yy_last_accepting_state;
1185
+ char* yy_last_accepting_cpos;
1186
+
1187
+ int yylineno_r;
1188
+ int yy_flex_debug_r;
1189
+
1190
+ char *yytext_r;
1191
+ int yy_more_flag;
1192
+ int yy_more_len;
1193
+
1194
+ YYSTYPE * yylval_r;
1195
+
1196
+ }; /* end struct yyguts_t */
1197
+
1198
+ /* %if-c-only */
1199
+
1200
+ static int yy_init_globals (yyscan_t yyscanner );
1201
+
1202
+ /* %endif */
1203
+
1204
+ /* %if-reentrant */
1205
+
1206
+ /* This must go here because YYSTYPE and YYLTYPE are included
1207
+ * from bison output in section 1.*/
1208
+ # define yylval yyg->yylval_r
1209
+
1210
+ int config_lex_init (yyscan_t* scanner);
1211
+
1212
+ int config_lex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner);
1213
+
1214
+ /* %endif */
1215
+
1216
+ /* %endif End reentrant structures and macros. */
1217
+
1218
+ /* Accessor methods to globals.
1219
+ These are made visible to non-reentrant scanners for convenience. */
1220
+
1221
+ int config_lex_destroy (yyscan_t yyscanner );
1222
+
1223
+ int config_get_debug (yyscan_t yyscanner );
1224
+
1225
+ void config_set_debug (int debug_flag ,yyscan_t yyscanner );
1226
+
1227
+ YY_EXTRA_TYPE config_get_extra (yyscan_t yyscanner );
1228
+
1229
+ void config_set_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
1230
+
1231
+ FILE *config_get_in (yyscan_t yyscanner );
1232
+
1233
+ void config_set_in (FILE * in_str ,yyscan_t yyscanner );
1234
+
1235
+ FILE *config_get_out (yyscan_t yyscanner );
1236
+
1237
+ void config_set_out (FILE * out_str ,yyscan_t yyscanner );
1238
+
1239
+ int config_get_leng (yyscan_t yyscanner );
1240
+
1241
+ char *config_get_text (yyscan_t yyscanner );
1242
+
1243
+ int config_get_lineno (yyscan_t yyscanner );
1244
+
1245
+ void config_set_lineno (int line_number ,yyscan_t yyscanner );
1246
+
1247
+ int config_get_column (yyscan_t yyscanner );
1248
+
1249
+ void config_set_column (int column_no ,yyscan_t yyscanner );
1250
+
1251
+ /* %if-bison-bridge */
1252
+
1253
+ YYSTYPE * config_get_lval (yyscan_t yyscanner );
1254
+
1255
+ void config_set_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner );
1256
+
1257
+ /* %endif */
1258
+
1259
+ /* Macros after this point can all be overridden by user definitions in
1260
+ * section 1.
1261
+ */
1262
+
1263
+ #ifndef YY_SKIP_YYWRAP
1264
+ #ifdef __cplusplus
1265
+ extern "C" int config_wrap (yyscan_t yyscanner );
1266
+ #else
1267
+ extern int config_wrap (yyscan_t yyscanner );
1268
+ #endif
1269
+ #endif
1270
+
1271
+ /* %not-for-header */
1272
+
1273
+ /* %ok-for-header */
1274
+
1275
+ /* %endif */
1276
+
1277
+ #ifndef yytext_ptr
1278
+ static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
1279
+ #endif
1280
+
1281
+ #ifdef YY_NEED_STRLEN
1282
+ static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
1283
+ #endif
1284
+
1285
+ #ifndef YY_NO_INPUT
1286
+ /* %if-c-only Standard (non-C++) definition */
1287
+ /* %not-for-header */
1288
+
1289
+ #ifdef __cplusplus
1290
+ static int yyinput (yyscan_t yyscanner );
1291
+ #else
1292
+ static int input (yyscan_t yyscanner );
1293
+ #endif
1294
+ /* %ok-for-header */
1295
+
1296
+ /* %endif */
1297
+ #endif
1298
+
1299
+ /* %if-c-only */
1300
+
1301
+ /* %endif */
1302
+
1303
+ /* Amount of stuff to slurp up with each read. */
1304
+ #ifndef YY_READ_BUF_SIZE
1305
+ #define YY_READ_BUF_SIZE 8192
1306
+ #endif
1307
+
1308
+ /* Copy whatever the last rule matched to the standard output. */
1309
+ #ifndef ECHO
1310
+ /* %if-c-only Standard (non-C++) definition */
1311
+ /* This used to be an fputs(), but since the string might contain NUL's,
1312
+ * we now use fwrite().
1313
+ */
1314
+ #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
1315
+ /* %endif */
1316
+ /* %if-c++-only C++ definition */
1317
+ /* %endif */
1318
+ #endif
1319
+
1320
+ /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1321
+ * is returned in "result".
1322
+ */
1323
+ #ifndef YY_INPUT
1324
+ #define YY_INPUT(buf,result,max_size) \
1325
+ /* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\
1326
+ if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1327
+ { \
1328
+ int c = '*'; \
1329
+ unsigned n; \
1330
+ for ( n = 0; n < max_size && \
1331
+ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1332
+ buf[n] = (char) c; \
1333
+ if ( c == '\n' ) \
1334
+ buf[n++] = (char) c; \
1335
+ if ( c == EOF && ferror( yyin ) ) \
1336
+ YY_FATAL_ERROR( "input in flex scanner failed" ); \
1337
+ result = n; \
1338
+ } \
1339
+ else \
1340
+ { \
1341
+ errno=0; \
1342
+ while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
1343
+ { \
1344
+ if( errno != EINTR) \
1345
+ { \
1346
+ YY_FATAL_ERROR( "input in flex scanner failed" ); \
1347
+ break; \
1348
+ } \
1349
+ errno=0; \
1350
+ clearerr(yyin); \
1351
+ } \
1352
+ }\
1353
+ \
1354
+ /* %if-c++-only C++ definition \ */\
1355
+ /* %endif */
1356
+
1357
+ #endif
1358
+
1359
+ /* No semi-colon after return; correct usage is to write "yyterminate();" -
1360
+ * we don't want an extra ';' after the "return" because that will cause
1361
+ * some compilers to complain about unreachable statements.
1362
+ */
1363
+ #ifndef yyterminate
1364
+ #define yyterminate() return YY_NULL
1365
+ #endif
1366
+
1367
+ /* Number of entries by which start-condition stack grows. */
1368
+ #ifndef YY_START_STACK_INCR
1369
+ #define YY_START_STACK_INCR 25
1370
+ #endif
1371
+
1372
+ /* Report a fatal error. */
1373
+ #ifndef YY_FATAL_ERROR
1374
+ /* %if-c-only */
1375
+ #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
1376
+ /* %endif */
1377
+ /* %if-c++-only */
1378
+ /* %endif */
1379
+ #endif
1380
+
1381
+ /* %if-tables-serialization structures and prototypes */
1382
+ /* %not-for-header */
1383
+
1384
+ /* %ok-for-header */
1385
+
1386
+ /* %not-for-header */
1387
+
1388
+ /* %tables-yydmap generated elements */
1389
+ /* %endif */
1390
+ /* end tables serialization structures and prototypes */
1391
+
1392
+ /* %ok-for-header */
1393
+
1394
+ /* Default declaration of generated scanner - a define so the user can
1395
+ * easily add parameters.
1396
+ */
1397
+ #ifndef YY_DECL
1398
+ #define YY_DECL_IS_OURS 1
1399
+ /* %if-c-only Standard (non-C++) definition */
1400
+
1401
+ extern int config_lex \
1402
+ (YYSTYPE * yylval_param ,yyscan_t yyscanner);
1403
+
1404
+ #define YY_DECL int config_lex \
1405
+ (YYSTYPE * yylval_param , yyscan_t yyscanner)
1406
+ /* %endif */
1407
+ /* %if-c++-only C++ definition */
1408
+ /* %endif */
1409
+ #endif /* !YY_DECL */
1410
+
1411
+ /* Code executed at the beginning of each rule, after yytext and yyleng
1412
+ * have been set up.
1413
+ */
1414
+ #ifndef YY_USER_ACTION
1415
+ #define YY_USER_ACTION
1416
+ #endif
1417
+
1418
+ /* Code executed at the end of each rule. */
1419
+ #ifndef YY_BREAK
1420
+ #define YY_BREAK break;
1421
+ #endif
1422
+
1423
+ /* %% [6.0] YY_RULE_SETUP definition goes here */
1424
+ #define YY_RULE_SETUP \
1425
+ if ( yyleng > 0 ) \
1426
+ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
1427
+ (yytext[yyleng - 1] == '\n'); \
1428
+ YY_USER_ACTION
1429
+
1430
+ /* %not-for-header */
1431
+
1432
+ /** The main scanner function which does all the work.
1433
+ */
1434
+ YY_DECL
1435
+ {
1436
+ register yy_state_type yy_current_state;
1437
+ register char *yy_cp, *yy_bp;
1438
+ register int yy_act;
1439
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1440
+
1441
+ /* %% [7.0] user's declarations go here */
1442
+ #line 74 "libmemcached/options/scanner.l"
1443
+
1444
+
1445
+
1446
+ #line 1447 "libmemcached/options/scanner.cc"
1447
+
1448
+ yylval = yylval_param;
1449
+
1450
+ if ( !yyg->yy_init )
1451
+ {
1452
+ yyg->yy_init = 1;
1453
+
1454
+ #ifdef YY_USER_INIT
1455
+ YY_USER_INIT;
1456
+ #endif
1457
+
1458
+ if ( ! yyg->yy_start )
1459
+ yyg->yy_start = 1; /* first start state */
1460
+
1461
+ if ( ! yyin )
1462
+ /* %if-c-only */
1463
+ yyin = stdin;
1464
+ /* %endif */
1465
+ /* %if-c++-only */
1466
+ /* %endif */
1467
+
1468
+ if ( ! yyout )
1469
+ /* %if-c-only */
1470
+ yyout = stdout;
1471
+ /* %endif */
1472
+ /* %if-c++-only */
1473
+ /* %endif */
1474
+
1475
+ if ( ! YY_CURRENT_BUFFER ) {
1476
+ config_ensure_buffer_stack (yyscanner);
1477
+ YY_CURRENT_BUFFER_LVALUE =
1478
+ config__create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
1479
+ }
1480
+
1481
+ config__load_buffer_state(yyscanner );
1482
+ }
1483
+
1484
+ while ( 1 ) /* loops until end-of-file is reached */
1485
+ {
1486
+ /* %% [8.0] yymore()-related code goes here */
1487
+ yy_cp = yyg->yy_c_buf_p;
1488
+
1489
+ /* Support of yytext. */
1490
+ *yy_cp = yyg->yy_hold_char;
1491
+
1492
+ /* yy_bp points to the position in yy_ch_buf of the start of
1493
+ * the current run.
1494
+ */
1495
+ yy_bp = yy_cp;
1496
+
1497
+ /* %% [9.0] code to set up and find next match goes here */
1498
+ yy_current_state = yyg->yy_start;
1499
+ yy_current_state += YY_AT_BOL();
1500
+ yy_match:
1501
+ do
1502
+ {
1503
+ register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1504
+ if ( yy_accept[yy_current_state] )
1505
+ {
1506
+ yyg->yy_last_accepting_state = yy_current_state;
1507
+ yyg->yy_last_accepting_cpos = yy_cp;
1508
+ }
1509
+ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1510
+ {
1511
+ yy_current_state = (int) yy_def[yy_current_state];
1512
+ if ( yy_current_state >= 514 )
1513
+ yy_c = yy_meta[(unsigned int) yy_c];
1514
+ }
1515
+ yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1516
+ ++yy_cp;
1517
+ }
1518
+ while ( yy_base[yy_current_state] != 1648 );
1519
+
1520
+ yy_find_action:
1521
+ /* %% [10.0] code to find the action number goes here */
1522
+ yy_act = yy_accept[yy_current_state];
1523
+ if ( yy_act == 0 )
1524
+ { /* have to back up */
1525
+ yy_cp = yyg->yy_last_accepting_cpos;
1526
+ yy_current_state = yyg->yy_last_accepting_state;
1527
+ yy_act = yy_accept[yy_current_state];
1528
+ }
1529
+
1530
+ YY_DO_BEFORE_ACTION;
1531
+
1532
+ /* %% [11.0] code for yylineno update goes here */
1533
+
1534
+ do_action: /* This label is used only to access EOF actions. */
1535
+
1536
+ /* %% [12.0] debug code goes here */
1537
+ if ( yy_flex_debug )
1538
+ {
1539
+ if ( yy_act == 0 )
1540
+ fprintf( stderr, "--scanner backing up\n" );
1541
+ else if ( yy_act < 64 )
1542
+ fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
1543
+ (long)yy_rule_linenum[yy_act], yytext );
1544
+ else if ( yy_act == 64 )
1545
+ fprintf( stderr, "--accepting default rule (\"%s\")\n",
1546
+ yytext );
1547
+ else if ( yy_act == 65 )
1548
+ fprintf( stderr, "--(end of buffer or a NUL)\n" );
1549
+ else
1550
+ fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
1551
+ }
1552
+
1553
+ switch ( yy_act )
1554
+ { /* beginning of action switch */
1555
+ /* %% [13.0] actions go here */
1556
+ case 0: /* must back up */
1557
+ /* undo the effects of YY_DO_BEFORE_ACTION */
1558
+ *yy_cp = yyg->yy_hold_char;
1559
+ yy_cp = yyg->yy_last_accepting_cpos;
1560
+ yy_current_state = yyg->yy_last_accepting_state;
1561
+ goto yy_find_action;
1562
+
1563
+ case 1:
1564
+ YY_RULE_SETUP
1565
+ #line 77 "libmemcached/options/scanner.l"
1566
+ { return yytext[0];}
1567
+ YY_BREAK
1568
+ case 2:
1569
+ YY_RULE_SETUP
1570
+ #line 79 "libmemcached/options/scanner.l"
1571
+ { yylval->number= atoi(yytext); return (NUMBER); }
1572
+ YY_BREAK
1573
+ case 3:
1574
+ YY_RULE_SETUP
1575
+ #line 81 "libmemcached/options/scanner.l"
1576
+ { yylval->number= atoi(yytext +1); return PORT; }
1577
+ YY_BREAK
1578
+ case 4:
1579
+ YY_RULE_SETUP
1580
+ #line 83 "libmemcached/options/scanner.l"
1581
+ { yylval->number= atoi(yytext +2); return WEIGHT_START; }
1582
+ YY_BREAK
1583
+ case 5:
1584
+ /* rule 5 can match eol */
1585
+ YY_RULE_SETUP
1586
+ #line 85 "libmemcached/options/scanner.l"
1587
+ ; /* skip whitespace */
1588
+ YY_BREAK
1589
+ case 6:
1590
+ *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
1591
+ yyg->yy_c_buf_p = yy_cp -= 1;
1592
+ YY_DO_BEFORE_ACTION; /* set up yytext again */
1593
+ YY_RULE_SETUP
1594
+ #line 88 "libmemcached/options/scanner.l"
1595
+ {
1596
+ return COMMENT;
1597
+ }
1598
+ YY_BREAK
1599
+ case 7:
1600
+ YY_RULE_SETUP
1601
+ #line 92 "libmemcached/options/scanner.l"
1602
+ { yyextra->begin= yytext; yyextra->set_server(); return SERVER; }
1603
+ YY_BREAK
1604
+ case 8:
1605
+ YY_RULE_SETUP
1606
+ #line 94 "libmemcached/options/scanner.l"
1607
+ { yyextra->begin= yytext; return BINARY_PROTOCOL; }
1608
+ YY_BREAK
1609
+ case 9:
1610
+ YY_RULE_SETUP
1611
+ #line 95 "libmemcached/options/scanner.l"
1612
+ { yyextra->begin= yytext; return BUFFER_REQUESTS; }
1613
+ YY_BREAK
1614
+ case 10:
1615
+ YY_RULE_SETUP
1616
+ #line 96 "libmemcached/options/scanner.l"
1617
+ { yyextra->begin= yytext; return CONFIGURE_FILE; }
1618
+ YY_BREAK
1619
+ case 11:
1620
+ YY_RULE_SETUP
1621
+ #line 97 "libmemcached/options/scanner.l"
1622
+ { yyextra->begin= yytext; return CONNECT_TIMEOUT; }
1623
+ YY_BREAK
1624
+ case 12:
1625
+ YY_RULE_SETUP
1626
+ #line 98 "libmemcached/options/scanner.l"
1627
+ { yyextra->begin= yytext; return DISTRIBUTION; }
1628
+ YY_BREAK
1629
+ case 13:
1630
+ YY_RULE_SETUP
1631
+ #line 99 "libmemcached/options/scanner.l"
1632
+ { yyextra->begin= yytext; return HASH_WITH_NAMESPACE; }
1633
+ YY_BREAK
1634
+ case 14:
1635
+ YY_RULE_SETUP
1636
+ #line 100 "libmemcached/options/scanner.l"
1637
+ { yyextra->begin= yytext; return HASH; }
1638
+ YY_BREAK
1639
+ case 15:
1640
+ YY_RULE_SETUP
1641
+ #line 101 "libmemcached/options/scanner.l"
1642
+ { yyextra->begin= yytext; return IO_BYTES_WATERMARK; }
1643
+ YY_BREAK
1644
+ case 16:
1645
+ YY_RULE_SETUP
1646
+ #line 102 "libmemcached/options/scanner.l"
1647
+ { yyextra->begin= yytext; return IO_KEY_PREFETCH; }
1648
+ YY_BREAK
1649
+ case 17:
1650
+ YY_RULE_SETUP
1651
+ #line 103 "libmemcached/options/scanner.l"
1652
+ { yyextra->begin= yytext; return IO_MSG_WATERMARK; }
1653
+ YY_BREAK
1654
+ case 18:
1655
+ YY_RULE_SETUP
1656
+ #line 104 "libmemcached/options/scanner.l"
1657
+ { yyextra->begin= yytext; return NOREPLY; }
1658
+ YY_BREAK
1659
+ case 19:
1660
+ YY_RULE_SETUP
1661
+ #line 105 "libmemcached/options/scanner.l"
1662
+ { yyextra->begin= yytext; return NUMBER_OF_REPLICAS; }
1663
+ YY_BREAK
1664
+ case 20:
1665
+ YY_RULE_SETUP
1666
+ #line 106 "libmemcached/options/scanner.l"
1667
+ { yyextra->begin= yytext; return POLL_TIMEOUT; }
1668
+ YY_BREAK
1669
+ case 21:
1670
+ YY_RULE_SETUP
1671
+ #line 107 "libmemcached/options/scanner.l"
1672
+ { yyextra->begin= yytext; return RANDOMIZE_REPLICA_READ; }
1673
+ YY_BREAK
1674
+ case 22:
1675
+ YY_RULE_SETUP
1676
+ #line 108 "libmemcached/options/scanner.l"
1677
+ { yyextra->begin= yytext; return RCV_TIMEOUT; }
1678
+ YY_BREAK
1679
+ case 23:
1680
+ YY_RULE_SETUP
1681
+ #line 109 "libmemcached/options/scanner.l"
1682
+ { yyextra->begin= yytext; return REMOVE_FAILED_SERVERS; }
1683
+ YY_BREAK
1684
+ case 24:
1685
+ YY_RULE_SETUP
1686
+ #line 110 "libmemcached/options/scanner.l"
1687
+ { yyextra->begin= yytext; return RETRY_TIMEOUT; }
1688
+ YY_BREAK
1689
+ case 25:
1690
+ YY_RULE_SETUP
1691
+ #line 111 "libmemcached/options/scanner.l"
1692
+ { yyextra->begin= yytext; return SND_TIMEOUT; }
1693
+ YY_BREAK
1694
+ case 26:
1695
+ YY_RULE_SETUP
1696
+ #line 112 "libmemcached/options/scanner.l"
1697
+ { yyextra->begin= yytext; return SOCKET_RECV_SIZE; }
1698
+ YY_BREAK
1699
+ case 27:
1700
+ YY_RULE_SETUP
1701
+ #line 113 "libmemcached/options/scanner.l"
1702
+ { yyextra->begin= yytext; return SOCKET_SEND_SIZE; }
1703
+ YY_BREAK
1704
+ case 28:
1705
+ YY_RULE_SETUP
1706
+ #line 114 "libmemcached/options/scanner.l"
1707
+ { yyextra->begin= yytext; return SORT_HOSTS; }
1708
+ YY_BREAK
1709
+ case 29:
1710
+ YY_RULE_SETUP
1711
+ #line 115 "libmemcached/options/scanner.l"
1712
+ { yyextra->begin= yytext; return SUPPORT_CAS; }
1713
+ YY_BREAK
1714
+ case 30:
1715
+ YY_RULE_SETUP
1716
+ #line 116 "libmemcached/options/scanner.l"
1717
+ { yyextra->begin= yytext; return _TCP_KEEPALIVE; }
1718
+ YY_BREAK
1719
+ case 31:
1720
+ YY_RULE_SETUP
1721
+ #line 117 "libmemcached/options/scanner.l"
1722
+ { yyextra->begin= yytext; return _TCP_KEEPIDLE; }
1723
+ YY_BREAK
1724
+ case 32:
1725
+ YY_RULE_SETUP
1726
+ #line 118 "libmemcached/options/scanner.l"
1727
+ { yyextra->begin= yytext; return _TCP_NODELAY; }
1728
+ YY_BREAK
1729
+ case 33:
1730
+ YY_RULE_SETUP
1731
+ #line 119 "libmemcached/options/scanner.l"
1732
+ { yyextra->begin= yytext; return USE_UDP; }
1733
+ YY_BREAK
1734
+ case 34:
1735
+ YY_RULE_SETUP
1736
+ #line 120 "libmemcached/options/scanner.l"
1737
+ { yyextra->begin= yytext; return USER_DATA; }
1738
+ YY_BREAK
1739
+ case 35:
1740
+ YY_RULE_SETUP
1741
+ #line 121 "libmemcached/options/scanner.l"
1742
+ { yyextra->begin= yytext; return VERIFY_KEY; }
1743
+ YY_BREAK
1744
+ case 36:
1745
+ YY_RULE_SETUP
1746
+ #line 123 "libmemcached/options/scanner.l"
1747
+ { yyextra->begin= yytext; return POOL_MIN; }
1748
+ YY_BREAK
1749
+ case 37:
1750
+ YY_RULE_SETUP
1751
+ #line 124 "libmemcached/options/scanner.l"
1752
+ { yyextra->begin= yytext; return POOL_MAX; }
1753
+ YY_BREAK
1754
+ case 38:
1755
+ YY_RULE_SETUP
1756
+ #line 126 "libmemcached/options/scanner.l"
1757
+ { yyextra->begin= yytext; return NAMESPACE; }
1758
+ YY_BREAK
1759
+ case 39:
1760
+ YY_RULE_SETUP
1761
+ #line 128 "libmemcached/options/scanner.l"
1762
+ { yyextra->begin= yytext; return INCLUDE; }
1763
+ YY_BREAK
1764
+ case 40:
1765
+ YY_RULE_SETUP
1766
+ #line 129 "libmemcached/options/scanner.l"
1767
+ { yyextra->begin= yytext; return RESET; }
1768
+ YY_BREAK
1769
+ case 41:
1770
+ YY_RULE_SETUP
1771
+ #line 130 "libmemcached/options/scanner.l"
1772
+ { yyextra->begin= yytext; return PARSER_DEBUG; }
1773
+ YY_BREAK
1774
+ case 42:
1775
+ YY_RULE_SETUP
1776
+ #line 131 "libmemcached/options/scanner.l"
1777
+ { yyextra->begin= yytext; return SERVERS; }
1778
+ YY_BREAK
1779
+ case 43:
1780
+ YY_RULE_SETUP
1781
+ #line 132 "libmemcached/options/scanner.l"
1782
+ { yyextra->begin= yytext; return END; }
1783
+ YY_BREAK
1784
+ case 44:
1785
+ YY_RULE_SETUP
1786
+ #line 133 "libmemcached/options/scanner.l"
1787
+ { yyextra->begin= yytext; return ERROR; }
1788
+ YY_BREAK
1789
+ case 45:
1790
+ YY_RULE_SETUP
1791
+ #line 135 "libmemcached/options/scanner.l"
1792
+ { return TRUE; }
1793
+ YY_BREAK
1794
+ case 46:
1795
+ YY_RULE_SETUP
1796
+ #line 136 "libmemcached/options/scanner.l"
1797
+ { return FALSE; }
1798
+ YY_BREAK
1799
+ case 47:
1800
+ YY_RULE_SETUP
1801
+ #line 139 "libmemcached/options/scanner.l"
1802
+ {
1803
+ yyextra->begin= yytext;
1804
+ return UNKNOWN_OPTION;
1805
+ }
1806
+ YY_BREAK
1807
+ case 48:
1808
+ YY_RULE_SETUP
1809
+ #line 144 "libmemcached/options/scanner.l"
1810
+ { return CONSISTENT; }
1811
+ YY_BREAK
1812
+ case 49:
1813
+ YY_RULE_SETUP
1814
+ #line 145 "libmemcached/options/scanner.l"
1815
+ { return MODULA; }
1816
+ YY_BREAK
1817
+ case 50:
1818
+ YY_RULE_SETUP
1819
+ #line 146 "libmemcached/options/scanner.l"
1820
+ { return RANDOM; }
1821
+ YY_BREAK
1822
+ case 51:
1823
+ YY_RULE_SETUP
1824
+ #line 148 "libmemcached/options/scanner.l"
1825
+ { return MD5; }
1826
+ YY_BREAK
1827
+ case 52:
1828
+ YY_RULE_SETUP
1829
+ #line 149 "libmemcached/options/scanner.l"
1830
+ { return CRC; }
1831
+ YY_BREAK
1832
+ case 53:
1833
+ YY_RULE_SETUP
1834
+ #line 150 "libmemcached/options/scanner.l"
1835
+ { return FNV1_64; }
1836
+ YY_BREAK
1837
+ case 54:
1838
+ YY_RULE_SETUP
1839
+ #line 151 "libmemcached/options/scanner.l"
1840
+ { return FNV1A_64; }
1841
+ YY_BREAK
1842
+ case 55:
1843
+ YY_RULE_SETUP
1844
+ #line 152 "libmemcached/options/scanner.l"
1845
+ { return FNV1_32; }
1846
+ YY_BREAK
1847
+ case 56:
1848
+ YY_RULE_SETUP
1849
+ #line 153 "libmemcached/options/scanner.l"
1850
+ { return FNV1A_32; }
1851
+ YY_BREAK
1852
+ case 57:
1853
+ YY_RULE_SETUP
1854
+ #line 154 "libmemcached/options/scanner.l"
1855
+ { return HSIEH; }
1856
+ YY_BREAK
1857
+ case 58:
1858
+ YY_RULE_SETUP
1859
+ #line 155 "libmemcached/options/scanner.l"
1860
+ { return MURMUR; }
1861
+ YY_BREAK
1862
+ case 59:
1863
+ YY_RULE_SETUP
1864
+ #line 156 "libmemcached/options/scanner.l"
1865
+ { return JENKINS; }
1866
+ YY_BREAK
1867
+ case 60:
1868
+ YY_RULE_SETUP
1869
+ #line 158 "libmemcached/options/scanner.l"
1870
+ {
1871
+ yylval->server.port= MEMCACHED_DEFAULT_PORT;
1872
+ yylval->server.weight= 1;
1873
+ yylval->server.c_str= yyextra->set_hostname(yytext, yyleng);
1874
+ if (yylval->server.c_str)
1875
+ yylval->server.size= yyleng;
1876
+ return IPADDRESS;
1877
+ }
1878
+ YY_BREAK
1879
+ case 61:
1880
+ YY_RULE_SETUP
1881
+ #line 167 "libmemcached/options/scanner.l"
1882
+ {
1883
+ if (yyextra->is_server())
1884
+ {
1885
+ yylval->server.port= MEMCACHED_DEFAULT_PORT;
1886
+ yylval->server.weight= 1;
1887
+ yylval->server.c_str= yyextra->set_hostname(yytext, yyleng);
1888
+ if (yylval->server.c_str)
1889
+ yylval->server.size= yyleng;
1890
+
1891
+ return HOSTNAME;
1892
+ }
1893
+
1894
+ yylval->string.c_str = yytext;
1895
+ yylval->string.size = yyleng;
1896
+
1897
+ return STRING;
1898
+ }
1899
+ YY_BREAK
1900
+ case 62:
1901
+ YY_RULE_SETUP
1902
+ #line 185 "libmemcached/options/scanner.l"
1903
+ {
1904
+ yylval->string.c_str = yytext;
1905
+ yylval->string.size = yyleng;
1906
+ return QUOTED_STRING;
1907
+ }
1908
+ YY_BREAK
1909
+ case 63:
1910
+ YY_RULE_SETUP
1911
+ #line 191 "libmemcached/options/scanner.l"
1912
+ {
1913
+ yyextra->begin= yytext;
1914
+ return UNKNOWN;
1915
+ }
1916
+ YY_BREAK
1917
+ case 64:
1918
+ YY_RULE_SETUP
1919
+ #line 196 "libmemcached/options/scanner.l"
1920
+ ECHO;
1921
+ YY_BREAK
1922
+ #line 1923 "libmemcached/options/scanner.cc"
1923
+ case YY_STATE_EOF(INITIAL):
1924
+ yyterminate();
1925
+
1926
+ case YY_END_OF_BUFFER:
1927
+ {
1928
+ /* Amount of text matched not including the EOB char. */
1929
+ int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
1930
+
1931
+ /* Undo the effects of YY_DO_BEFORE_ACTION. */
1932
+ *yy_cp = yyg->yy_hold_char;
1933
+ YY_RESTORE_YY_MORE_OFFSET
1934
+
1935
+ if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
1936
+ {
1937
+ /* We're scanning a new file or input source. It's
1938
+ * possible that this happened because the user
1939
+ * just pointed yyin at a new source and called
1940
+ * config_lex(). If so, then we have to assure
1941
+ * consistency between YY_CURRENT_BUFFER and our
1942
+ * globals. Here is the right place to do so, because
1943
+ * this is the first action (other than possibly a
1944
+ * back-up) that will match for the new input source.
1945
+ */
1946
+ yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1947
+ YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
1948
+ YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
1949
+ }
1950
+
1951
+ /* Note that here we test for yy_c_buf_p "<=" to the position
1952
+ * of the first EOB in the buffer, since yy_c_buf_p will
1953
+ * already have been incremented past the NUL character
1954
+ * (since all states make transitions on EOB to the
1955
+ * end-of-buffer state). Contrast this with the test
1956
+ * in input().
1957
+ */
1958
+ if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
1959
+ { /* This was really a NUL. */
1960
+ yy_state_type yy_next_state;
1961
+
1962
+ yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
1963
+
1964
+ yy_current_state = yy_get_previous_state( yyscanner );
1965
+
1966
+ /* Okay, we're now positioned to make the NUL
1967
+ * transition. We couldn't have
1968
+ * yy_get_previous_state() go ahead and do it
1969
+ * for us because it doesn't know how to deal
1970
+ * with the possibility of jamming (and we don't
1971
+ * want to build jamming into it because then it
1972
+ * will run more slowly).
1973
+ */
1974
+
1975
+ yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
1976
+
1977
+ yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
1978
+
1979
+ if ( yy_next_state )
1980
+ {
1981
+ /* Consume the NUL. */
1982
+ yy_cp = ++yyg->yy_c_buf_p;
1983
+ yy_current_state = yy_next_state;
1984
+ goto yy_match;
1985
+ }
1986
+
1987
+ else
1988
+ {
1989
+ /* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */
1990
+ yy_cp = yyg->yy_c_buf_p;
1991
+ goto yy_find_action;
1992
+ }
1993
+ }
1994
+
1995
+ else switch ( yy_get_next_buffer( yyscanner ) )
1996
+ {
1997
+ case EOB_ACT_END_OF_FILE:
1998
+ {
1999
+ yyg->yy_did_buffer_switch_on_eof = 0;
2000
+
2001
+ if ( config_wrap(yyscanner ) )
2002
+ {
2003
+ /* Note: because we've taken care in
2004
+ * yy_get_next_buffer() to have set up
2005
+ * yytext, we can now set up
2006
+ * yy_c_buf_p so that if some total
2007
+ * hoser (like flex itself) wants to
2008
+ * call the scanner after we return the
2009
+ * YY_NULL, it'll still work - another
2010
+ * YY_NULL will get returned.
2011
+ */
2012
+ yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
2013
+
2014
+ yy_act = YY_STATE_EOF(YY_START);
2015
+ goto do_action;
2016
+ }
2017
+
2018
+ else
2019
+ {
2020
+ if ( ! yyg->yy_did_buffer_switch_on_eof )
2021
+ YY_NEW_FILE;
2022
+ }
2023
+ break;
2024
+ }
2025
+
2026
+ case EOB_ACT_CONTINUE_SCAN:
2027
+ yyg->yy_c_buf_p =
2028
+ yyg->yytext_ptr + yy_amount_of_matched_text;
2029
+
2030
+ yy_current_state = yy_get_previous_state( yyscanner );
2031
+
2032
+ yy_cp = yyg->yy_c_buf_p;
2033
+ yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
2034
+ goto yy_match;
2035
+
2036
+ case EOB_ACT_LAST_MATCH:
2037
+ yyg->yy_c_buf_p =
2038
+ &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
2039
+
2040
+ yy_current_state = yy_get_previous_state( yyscanner );
2041
+
2042
+ yy_cp = yyg->yy_c_buf_p;
2043
+ yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
2044
+ goto yy_find_action;
2045
+ }
2046
+ break;
2047
+ }
2048
+
2049
+ default:
2050
+ YY_FATAL_ERROR(
2051
+ "fatal flex scanner internal error--no action found" );
2052
+ } /* end of action switch */
2053
+ } /* end of scanning one token */
2054
+ } /* end of config_lex */
2055
+ /* %ok-for-header */
2056
+
2057
+ /* %if-c++-only */
2058
+ /* %not-for-header */
2059
+
2060
+ /* %ok-for-header */
2061
+
2062
+ /* %endif */
2063
+
2064
+ /* yy_get_next_buffer - try to read in a new buffer
2065
+ *
2066
+ * Returns a code representing an action:
2067
+ * EOB_ACT_LAST_MATCH -
2068
+ * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2069
+ * EOB_ACT_END_OF_FILE - end of file
2070
+ */
2071
+ /* %if-c-only */
2072
+ static int yy_get_next_buffer (yyscan_t yyscanner)
2073
+ /* %endif */
2074
+ /* %if-c++-only */
2075
+ /* %endif */
2076
+ {
2077
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2078
+ register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
2079
+ register char *source = yyg->yytext_ptr;
2080
+ register int number_to_move, i;
2081
+ int ret_val;
2082
+
2083
+ if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
2084
+ YY_FATAL_ERROR(
2085
+ "fatal flex scanner internal error--end of buffer missed" );
2086
+
2087
+ if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
2088
+ { /* Don't try to fill the buffer, so this is an EOF. */
2089
+ if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
2090
+ {
2091
+ /* We matched a single character, the EOB, so
2092
+ * treat this as a final EOF.
2093
+ */
2094
+ return EOB_ACT_END_OF_FILE;
2095
+ }
2096
+
2097
+ else
2098
+ {
2099
+ /* We matched some text prior to the EOB, first
2100
+ * process it.
2101
+ */
2102
+ return EOB_ACT_LAST_MATCH;
2103
+ }
2104
+ }
2105
+
2106
+ /* Try to read more data. */
2107
+
2108
+ /* First move last chars to start of buffer. */
2109
+ number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
2110
+
2111
+ for ( i = 0; i < number_to_move; ++i )
2112
+ *(dest++) = *(source++);
2113
+
2114
+ if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2115
+ /* don't do the read, it's not guaranteed to return an EOF,
2116
+ * just force an EOF
2117
+ */
2118
+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
2119
+
2120
+ else
2121
+ {
2122
+ int num_to_read =
2123
+ YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
2124
+
2125
+ while ( num_to_read <= 0 )
2126
+ { /* Not enough room in the buffer - grow it. */
2127
+
2128
+ /* just a shorter name for the current buffer */
2129
+ YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
2130
+
2131
+ int yy_c_buf_p_offset =
2132
+ (int) (yyg->yy_c_buf_p - b->yy_ch_buf);
2133
+
2134
+ if ( b->yy_is_our_buffer )
2135
+ {
2136
+ int new_size = b->yy_buf_size * 2;
2137
+
2138
+ if ( new_size <= 0 )
2139
+ b->yy_buf_size += b->yy_buf_size / 8;
2140
+ else
2141
+ b->yy_buf_size *= 2;
2142
+
2143
+ b->yy_ch_buf = (char *)
2144
+ /* Include room in for 2 EOB chars. */
2145
+ config_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner );
2146
+ }
2147
+ else
2148
+ /* Can't grow it, we don't own it. */
2149
+ b->yy_ch_buf = 0;
2150
+
2151
+ if ( ! b->yy_ch_buf )
2152
+ YY_FATAL_ERROR(
2153
+ "fatal error - scanner input buffer overflow" );
2154
+
2155
+ yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
2156
+
2157
+ num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
2158
+ number_to_move - 1;
2159
+
2160
+ }
2161
+
2162
+ if ( num_to_read > YY_READ_BUF_SIZE )
2163
+ num_to_read = YY_READ_BUF_SIZE;
2164
+
2165
+ /* Read in more data. */
2166
+ YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
2167
+ yyg->yy_n_chars, (size_t) num_to_read );
2168
+
2169
+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2170
+ }
2171
+
2172
+ if ( yyg->yy_n_chars == 0 )
2173
+ {
2174
+ if ( number_to_move == YY_MORE_ADJ )
2175
+ {
2176
+ ret_val = EOB_ACT_END_OF_FILE;
2177
+ config_restart(yyin ,yyscanner);
2178
+ }
2179
+
2180
+ else
2181
+ {
2182
+ ret_val = EOB_ACT_LAST_MATCH;
2183
+ YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
2184
+ YY_BUFFER_EOF_PENDING;
2185
+ }
2186
+ }
2187
+
2188
+ else
2189
+ ret_val = EOB_ACT_CONTINUE_SCAN;
2190
+
2191
+ if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
2192
+ /* Extend the array by 50%, plus the number we really need. */
2193
+ yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
2194
+ YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) config_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner );
2195
+ if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2196
+ YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
2197
+ }
2198
+
2199
+ yyg->yy_n_chars += number_to_move;
2200
+ YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
2201
+ YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
2202
+
2203
+ yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
2204
+
2205
+ return ret_val;
2206
+ }
2207
+
2208
+ /* yy_get_previous_state - get the state just before the EOB char was reached */
2209
+
2210
+ /* %if-c-only */
2211
+ /* %not-for-header */
2212
+
2213
+ static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
2214
+ /* %endif */
2215
+ /* %if-c++-only */
2216
+ /* %endif */
2217
+ {
2218
+ register yy_state_type yy_current_state;
2219
+ register char *yy_cp;
2220
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2221
+
2222
+ /* %% [15.0] code to get the start state into yy_current_state goes here */
2223
+ yy_current_state = yyg->yy_start;
2224
+ yy_current_state += YY_AT_BOL();
2225
+
2226
+ for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
2227
+ {
2228
+ /* %% [16.0] code to find the next state goes here */
2229
+ register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2230
+ if ( yy_accept[yy_current_state] )
2231
+ {
2232
+ yyg->yy_last_accepting_state = yy_current_state;
2233
+ yyg->yy_last_accepting_cpos = yy_cp;
2234
+ }
2235
+ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2236
+ {
2237
+ yy_current_state = (int) yy_def[yy_current_state];
2238
+ if ( yy_current_state >= 514 )
2239
+ yy_c = yy_meta[(unsigned int) yy_c];
2240
+ }
2241
+ yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2242
+ }
2243
+
2244
+ return yy_current_state;
2245
+ }
2246
+
2247
+ /* yy_try_NUL_trans - try to make a transition on the NUL character
2248
+ *
2249
+ * synopsis
2250
+ * next_state = yy_try_NUL_trans( current_state );
2251
+ */
2252
+ /* %if-c-only */
2253
+ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner)
2254
+ /* %endif */
2255
+ /* %if-c++-only */
2256
+ /* %endif */
2257
+ {
2258
+ register int yy_is_jam;
2259
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
2260
+ /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */
2261
+ register char *yy_cp = yyg->yy_c_buf_p;
2262
+
2263
+ register YY_CHAR yy_c = 1;
2264
+ if ( yy_accept[yy_current_state] )
2265
+ {
2266
+ yyg->yy_last_accepting_state = yy_current_state;
2267
+ yyg->yy_last_accepting_cpos = yy_cp;
2268
+ }
2269
+ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2270
+ {
2271
+ yy_current_state = (int) yy_def[yy_current_state];
2272
+ if ( yy_current_state >= 514 )
2273
+ yy_c = yy_meta[(unsigned int) yy_c];
2274
+ }
2275
+ yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2276
+ yy_is_jam = (yy_current_state == 513);
2277
+
2278
+ return yy_is_jam ? 0 : yy_current_state;
2279
+ }
2280
+
2281
+ /* %if-c-only */
2282
+
2283
+ /* %endif */
2284
+
2285
+ /* %if-c-only */
2286
+ #ifndef YY_NO_INPUT
2287
+ #ifdef __cplusplus
2288
+ static int yyinput (yyscan_t yyscanner)
2289
+ #else
2290
+ static int input (yyscan_t yyscanner)
2291
+ #endif
2292
+
2293
+ /* %endif */
2294
+ /* %if-c++-only */
2295
+ /* %endif */
2296
+ {
2297
+ int c;
2298
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2299
+
2300
+ *yyg->yy_c_buf_p = yyg->yy_hold_char;
2301
+
2302
+ if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
2303
+ {
2304
+ /* yy_c_buf_p now points to the character we want to return.
2305
+ * If this occurs *before* the EOB characters, then it's a
2306
+ * valid NUL; if not, then we've hit the end of the buffer.
2307
+ */
2308
+ if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
2309
+ /* This was really a NUL. */
2310
+ *yyg->yy_c_buf_p = '\0';
2311
+
2312
+ else
2313
+ { /* need more input */
2314
+ int offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
2315
+ ++yyg->yy_c_buf_p;
2316
+
2317
+ switch ( yy_get_next_buffer( yyscanner ) )
2318
+ {
2319
+ case EOB_ACT_LAST_MATCH:
2320
+ /* This happens because yy_g_n_b()
2321
+ * sees that we've accumulated a
2322
+ * token and flags that we need to
2323
+ * try matching the token before
2324
+ * proceeding. But for input(),
2325
+ * there's no matching to consider.
2326
+ * So convert the EOB_ACT_LAST_MATCH
2327
+ * to EOB_ACT_END_OF_FILE.
2328
+ */
2329
+
2330
+ /* Reset buffer status. */
2331
+ config_restart(yyin ,yyscanner);
2332
+
2333
+ /*FALLTHROUGH*/
2334
+
2335
+ case EOB_ACT_END_OF_FILE:
2336
+ {
2337
+ if ( config_wrap(yyscanner ) )
2338
+ return EOF;
2339
+
2340
+ if ( ! yyg->yy_did_buffer_switch_on_eof )
2341
+ YY_NEW_FILE;
2342
+ #ifdef __cplusplus
2343
+ return yyinput(yyscanner);
2344
+ #else
2345
+ return input(yyscanner);
2346
+ #endif
2347
+ }
2348
+
2349
+ case EOB_ACT_CONTINUE_SCAN:
2350
+ yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
2351
+ break;
2352
+ }
2353
+ }
2354
+ }
2355
+
2356
+ c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */
2357
+ *yyg->yy_c_buf_p = '\0'; /* preserve yytext */
2358
+ yyg->yy_hold_char = *++yyg->yy_c_buf_p;
2359
+
2360
+ /* %% [19.0] update BOL and yylineno */
2361
+ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
2362
+
2363
+ return c;
2364
+ }
2365
+ /* %if-c-only */
2366
+ #endif /* ifndef YY_NO_INPUT */
2367
+ /* %endif */
2368
+
2369
+ /** Immediately switch to a different input stream.
2370
+ * @param input_file A readable stream.
2371
+ * @param yyscanner The scanner object.
2372
+ * @note This function does not reset the start condition to @c INITIAL .
2373
+ */
2374
+ /* %if-c-only */
2375
+ void config_restart (FILE * input_file , yyscan_t yyscanner)
2376
+ /* %endif */
2377
+ /* %if-c++-only */
2378
+ /* %endif */
2379
+ {
2380
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2381
+
2382
+ if ( ! YY_CURRENT_BUFFER ){
2383
+ config_ensure_buffer_stack (yyscanner);
2384
+ YY_CURRENT_BUFFER_LVALUE =
2385
+ config__create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
2386
+ }
2387
+
2388
+ config__init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
2389
+ config__load_buffer_state(yyscanner );
2390
+ }
2391
+
2392
+ /** Switch to a different input buffer.
2393
+ * @param new_buffer The new input buffer.
2394
+ * @param yyscanner The scanner object.
2395
+ */
2396
+ /* %if-c-only */
2397
+ void config__switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
2398
+ /* %endif */
2399
+ /* %if-c++-only */
2400
+ /* %endif */
2401
+ {
2402
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2403
+
2404
+ /* TODO. We should be able to replace this entire function body
2405
+ * with
2406
+ * config_pop_buffer_state();
2407
+ * config_push_buffer_state(new_buffer);
2408
+ */
2409
+ config_ensure_buffer_stack (yyscanner);
2410
+ if ( YY_CURRENT_BUFFER == new_buffer )
2411
+ return;
2412
+
2413
+ if ( YY_CURRENT_BUFFER )
2414
+ {
2415
+ /* Flush out information for old buffer. */
2416
+ *yyg->yy_c_buf_p = yyg->yy_hold_char;
2417
+ YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
2418
+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2419
+ }
2420
+
2421
+ YY_CURRENT_BUFFER_LVALUE = new_buffer;
2422
+ config__load_buffer_state(yyscanner );
2423
+
2424
+ /* We don't actually know whether we did this switch during
2425
+ * EOF (config_wrap()) processing, but the only time this flag
2426
+ * is looked at is after config_wrap() is called, so it's safe
2427
+ * to go ahead and always set it.
2428
+ */
2429
+ yyg->yy_did_buffer_switch_on_eof = 1;
2430
+ }
2431
+
2432
+ /* %if-c-only */
2433
+ static void config__load_buffer_state (yyscan_t yyscanner)
2434
+ /* %endif */
2435
+ /* %if-c++-only */
2436
+ /* %endif */
2437
+ {
2438
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2439
+ yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2440
+ yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
2441
+ yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
2442
+ yyg->yy_hold_char = *yyg->yy_c_buf_p;
2443
+ }
2444
+
2445
+ /** Allocate and initialize an input buffer state.
2446
+ * @param file A readable stream.
2447
+ * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
2448
+ * @param yyscanner The scanner object.
2449
+ * @return the allocated buffer state.
2450
+ */
2451
+ /* %if-c-only */
2452
+ YY_BUFFER_STATE config__create_buffer (FILE * file, int size , yyscan_t yyscanner)
2453
+ /* %endif */
2454
+ /* %if-c++-only */
2455
+ /* %endif */
2456
+ {
2457
+ YY_BUFFER_STATE b;
2458
+
2459
+ b = (YY_BUFFER_STATE) config_alloc(sizeof( struct yy_buffer_state ) ,yyscanner );
2460
+ if ( ! b )
2461
+ YY_FATAL_ERROR( "out of dynamic memory in config__create_buffer()" );
2462
+
2463
+ b->yy_buf_size = size;
2464
+
2465
+ /* yy_ch_buf has to be 2 characters longer than the size given because
2466
+ * we need to put in 2 end-of-buffer characters.
2467
+ */
2468
+ b->yy_ch_buf = (char *) config_alloc(b->yy_buf_size + 2 ,yyscanner );
2469
+ if ( ! b->yy_ch_buf )
2470
+ YY_FATAL_ERROR( "out of dynamic memory in config__create_buffer()" );
2471
+
2472
+ b->yy_is_our_buffer = 1;
2473
+
2474
+ config__init_buffer(b,file ,yyscanner);
2475
+
2476
+ return b;
2477
+ }
2478
+
2479
+ /** Destroy the buffer.
2480
+ * @param b a buffer created with config__create_buffer()
2481
+ * @param yyscanner The scanner object.
2482
+ */
2483
+ /* %if-c-only */
2484
+ void config__delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
2485
+ /* %endif */
2486
+ /* %if-c++-only */
2487
+ /* %endif */
2488
+ {
2489
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2490
+
2491
+ if ( ! b )
2492
+ return;
2493
+
2494
+ if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
2495
+ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
2496
+
2497
+ if ( b->yy_is_our_buffer )
2498
+ config_free((void *) b->yy_ch_buf ,yyscanner );
2499
+
2500
+ config_free((void *) b ,yyscanner );
2501
+ }
2502
+
2503
+ /* %if-c-only */
2504
+
2505
+ #ifndef __cplusplus
2506
+ extern int isatty (int );
2507
+ #endif /* __cplusplus */
2508
+
2509
+ /* %endif */
2510
+
2511
+ /* %if-c++-only */
2512
+ /* %endif */
2513
+
2514
+ /* Initializes or reinitializes a buffer.
2515
+ * This function is sometimes called more than once on the same buffer,
2516
+ * such as during a config_restart() or at EOF.
2517
+ */
2518
+ /* %if-c-only */
2519
+ static void config__init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner)
2520
+ /* %endif */
2521
+ /* %if-c++-only */
2522
+ /* %endif */
2523
+
2524
+ {
2525
+ int oerrno = errno;
2526
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2527
+
2528
+ config__flush_buffer(b ,yyscanner);
2529
+
2530
+ b->yy_input_file = file;
2531
+ b->yy_fill_buffer = 1;
2532
+
2533
+ /* If b is the current buffer, then config__init_buffer was _probably_
2534
+ * called from config_restart() or through yy_get_next_buffer.
2535
+ * In that case, we don't want to reset the lineno or column.
2536
+ */
2537
+ if (b != YY_CURRENT_BUFFER){
2538
+ b->yy_bs_lineno = 1;
2539
+ b->yy_bs_column = 0;
2540
+ }
2541
+
2542
+ /* %if-c-only */
2543
+
2544
+ b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2545
+
2546
+ /* %endif */
2547
+ /* %if-c++-only */
2548
+ /* %endif */
2549
+ errno = oerrno;
2550
+ }
2551
+
2552
+ /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
2553
+ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
2554
+ * @param yyscanner The scanner object.
2555
+ */
2556
+ /* %if-c-only */
2557
+ void config__flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
2558
+ /* %endif */
2559
+ /* %if-c++-only */
2560
+ /* %endif */
2561
+ {
2562
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2563
+ if ( ! b )
2564
+ return;
2565
+
2566
+ b->yy_n_chars = 0;
2567
+
2568
+ /* We always need two end-of-buffer characters. The first causes
2569
+ * a transition to the end-of-buffer state. The second causes
2570
+ * a jam in that state.
2571
+ */
2572
+ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2573
+ b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2574
+
2575
+ b->yy_buf_pos = &b->yy_ch_buf[0];
2576
+
2577
+ b->yy_at_bol = 1;
2578
+ b->yy_buffer_status = YY_BUFFER_NEW;
2579
+
2580
+ if ( b == YY_CURRENT_BUFFER )
2581
+ config__load_buffer_state(yyscanner );
2582
+ }
2583
+
2584
+ /* %if-c-or-c++ */
2585
+ /** Pushes the new state onto the stack. The new state becomes
2586
+ * the current state. This function will allocate the stack
2587
+ * if necessary.
2588
+ * @param new_buffer The new state.
2589
+ * @param yyscanner The scanner object.
2590
+ */
2591
+ /* %if-c-only */
2592
+ void config_push_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
2593
+ /* %endif */
2594
+ /* %if-c++-only */
2595
+ /* %endif */
2596
+ {
2597
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2598
+ if (new_buffer == NULL)
2599
+ return;
2600
+
2601
+ config_ensure_buffer_stack(yyscanner);
2602
+
2603
+ /* This block is copied from config__switch_to_buffer. */
2604
+ if ( YY_CURRENT_BUFFER )
2605
+ {
2606
+ /* Flush out information for old buffer. */
2607
+ *yyg->yy_c_buf_p = yyg->yy_hold_char;
2608
+ YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
2609
+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2610
+ }
2611
+
2612
+ /* Only push if top exists. Otherwise, replace top. */
2613
+ if (YY_CURRENT_BUFFER)
2614
+ yyg->yy_buffer_stack_top++;
2615
+ YY_CURRENT_BUFFER_LVALUE = new_buffer;
2616
+
2617
+ /* copied from config__switch_to_buffer. */
2618
+ config__load_buffer_state(yyscanner );
2619
+ yyg->yy_did_buffer_switch_on_eof = 1;
2620
+ }
2621
+ /* %endif */
2622
+
2623
+ /* %if-c-or-c++ */
2624
+ /** Removes and deletes the top of the stack, if present.
2625
+ * The next element becomes the new top.
2626
+ * @param yyscanner The scanner object.
2627
+ */
2628
+ /* %if-c-only */
2629
+ void config_pop_buffer_state (yyscan_t yyscanner)
2630
+ /* %endif */
2631
+ /* %if-c++-only */
2632
+ /* %endif */
2633
+ {
2634
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2635
+ if (!YY_CURRENT_BUFFER)
2636
+ return;
2637
+
2638
+ config__delete_buffer(YY_CURRENT_BUFFER ,yyscanner);
2639
+ YY_CURRENT_BUFFER_LVALUE = NULL;
2640
+ if (yyg->yy_buffer_stack_top > 0)
2641
+ --yyg->yy_buffer_stack_top;
2642
+
2643
+ if (YY_CURRENT_BUFFER) {
2644
+ config__load_buffer_state(yyscanner );
2645
+ yyg->yy_did_buffer_switch_on_eof = 1;
2646
+ }
2647
+ }
2648
+ /* %endif */
2649
+
2650
+ /* %if-c-or-c++ */
2651
+ /* Allocates the stack if it does not exist.
2652
+ * Guarantees space for at least one push.
2653
+ */
2654
+ /* %if-c-only */
2655
+ static void config_ensure_buffer_stack (yyscan_t yyscanner)
2656
+ /* %endif */
2657
+ /* %if-c++-only */
2658
+ /* %endif */
2659
+ {
2660
+ int num_to_alloc;
2661
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2662
+
2663
+ if (!yyg->yy_buffer_stack) {
2664
+
2665
+ /* First allocation is just for 2 elements, since we don't know if this
2666
+ * scanner will even need a stack. We use 2 instead of 1 to avoid an
2667
+ * immediate realloc on the next call.
2668
+ */
2669
+ num_to_alloc = 1;
2670
+ yyg->yy_buffer_stack = (struct yy_buffer_state**)config_alloc
2671
+ (num_to_alloc * sizeof(struct yy_buffer_state*)
2672
+ , yyscanner);
2673
+ if ( ! yyg->yy_buffer_stack )
2674
+ YY_FATAL_ERROR( "out of dynamic memory in config_ensure_buffer_stack()" );
2675
+
2676
+ memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
2677
+
2678
+ yyg->yy_buffer_stack_max = num_to_alloc;
2679
+ yyg->yy_buffer_stack_top = 0;
2680
+ return;
2681
+ }
2682
+
2683
+ if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
2684
+
2685
+ /* Increase the buffer to prepare for a possible push. */
2686
+ int grow_size = 8 /* arbitrary grow size */;
2687
+
2688
+ num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
2689
+ yyg->yy_buffer_stack = (struct yy_buffer_state**)config_realloc
2690
+ (yyg->yy_buffer_stack,
2691
+ num_to_alloc * sizeof(struct yy_buffer_state*)
2692
+ , yyscanner);
2693
+ if ( ! yyg->yy_buffer_stack )
2694
+ YY_FATAL_ERROR( "out of dynamic memory in config_ensure_buffer_stack()" );
2695
+
2696
+ /* zero only the new slots.*/
2697
+ memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
2698
+ yyg->yy_buffer_stack_max = num_to_alloc;
2699
+ }
2700
+ }
2701
+ /* %endif */
2702
+
2703
+ /* %if-c-only */
2704
+ /** Setup the input buffer state to scan directly from a user-specified character buffer.
2705
+ * @param base the character buffer
2706
+ * @param size the size in bytes of the character buffer
2707
+ * @param yyscanner The scanner object.
2708
+ * @return the newly allocated buffer state object.
2709
+ */
2710
+ YY_BUFFER_STATE config__scan_buffer (char * base, yy_size_t size , yyscan_t yyscanner)
2711
+ {
2712
+ YY_BUFFER_STATE b;
2713
+
2714
+ if ( size < 2 ||
2715
+ base[size-2] != YY_END_OF_BUFFER_CHAR ||
2716
+ base[size-1] != YY_END_OF_BUFFER_CHAR )
2717
+ /* They forgot to leave room for the EOB's. */
2718
+ return 0;
2719
+
2720
+ b = (YY_BUFFER_STATE) config_alloc(sizeof( struct yy_buffer_state ) ,yyscanner );
2721
+ if ( ! b )
2722
+ YY_FATAL_ERROR( "out of dynamic memory in config__scan_buffer()" );
2723
+
2724
+ b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
2725
+ b->yy_buf_pos = b->yy_ch_buf = base;
2726
+ b->yy_is_our_buffer = 0;
2727
+ b->yy_input_file = 0;
2728
+ b->yy_n_chars = b->yy_buf_size;
2729
+ b->yy_is_interactive = 0;
2730
+ b->yy_at_bol = 1;
2731
+ b->yy_fill_buffer = 0;
2732
+ b->yy_buffer_status = YY_BUFFER_NEW;
2733
+
2734
+ config__switch_to_buffer(b ,yyscanner );
2735
+
2736
+ return b;
2737
+ }
2738
+ /* %endif */
2739
+
2740
+ /* %if-c-only */
2741
+ /** Setup the input buffer state to scan a string. The next call to config_lex() will
2742
+ * scan from a @e copy of @a str.
2743
+ * @param yystr a NUL-terminated string to scan
2744
+ * @param yyscanner The scanner object.
2745
+ * @return the newly allocated buffer state object.
2746
+ * @note If you want to scan bytes that may contain NUL values, then use
2747
+ * config__scan_bytes() instead.
2748
+ */
2749
+ YY_BUFFER_STATE config__scan_string (yyconst char * yystr , yyscan_t yyscanner)
2750
+ {
2751
+
2752
+ return config__scan_bytes(yystr,strlen(yystr) ,yyscanner);
2753
+ }
2754
+ /* %endif */
2755
+
2756
+ /* %if-c-only */
2757
+ /** Setup the input buffer state to scan the given bytes. The next call to config_lex() will
2758
+ * scan from a @e copy of @a bytes.
2759
+ * @param bytes the byte buffer to scan
2760
+ * @param len the number of bytes in the buffer pointed to by @a bytes.
2761
+ * @param yyscanner The scanner object.
2762
+ * @return the newly allocated buffer state object.
2763
+ */
2764
+ YY_BUFFER_STATE config__scan_bytes (yyconst char * yybytes, int _yybytes_len , yyscan_t yyscanner)
2765
+ {
2766
+ YY_BUFFER_STATE b;
2767
+ char *buf;
2768
+ yy_size_t n;
2769
+ int i;
2770
+
2771
+ /* Get memory for full buffer, including space for trailing EOB's. */
2772
+ n = _yybytes_len + 2;
2773
+ buf = (char *) config_alloc(n ,yyscanner );
2774
+ if ( ! buf )
2775
+ YY_FATAL_ERROR( "out of dynamic memory in config__scan_bytes()" );
2776
+
2777
+ for ( i = 0; i < _yybytes_len; ++i )
2778
+ buf[i] = yybytes[i];
2779
+
2780
+ buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
2781
+
2782
+ b = config__scan_buffer(buf,n ,yyscanner);
2783
+ if ( ! b )
2784
+ YY_FATAL_ERROR( "bad buffer in config__scan_bytes()" );
2785
+
2786
+ /* It's okay to grow etc. this buffer, and we should throw it
2787
+ * away when we're done.
2788
+ */
2789
+ b->yy_is_our_buffer = 1;
2790
+
2791
+ return b;
2792
+ }
2793
+ /* %endif */
2794
+
2795
+ #ifndef YY_EXIT_FAILURE
2796
+ #define YY_EXIT_FAILURE 2
2797
+ #endif
2798
+
2799
+ /* %if-c-only */
2800
+ static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
2801
+ {
2802
+ (void) fprintf( stderr, "%s\n", msg );
2803
+ exit( YY_EXIT_FAILURE );
2804
+ }
2805
+ /* %endif */
2806
+ /* %if-c++-only */
2807
+ /* %endif */
2808
+
2809
+ /* Redefine yyless() so it works in section 3 code. */
2810
+
2811
+ #undef yyless
2812
+ #define yyless(n) \
2813
+ do \
2814
+ { \
2815
+ /* Undo effects of setting up yytext. */ \
2816
+ int yyless_macro_arg = (n); \
2817
+ YY_LESS_LINENO(yyless_macro_arg);\
2818
+ yytext[yyleng] = yyg->yy_hold_char; \
2819
+ yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
2820
+ yyg->yy_hold_char = *yyg->yy_c_buf_p; \
2821
+ *yyg->yy_c_buf_p = '\0'; \
2822
+ yyleng = yyless_macro_arg; \
2823
+ } \
2824
+ while ( 0 )
2825
+
2826
+ /* Accessor methods (get/set functions) to struct members. */
2827
+
2828
+ /* %if-c-only */
2829
+ /* %if-reentrant */
2830
+
2831
+ /** Get the user-defined data for this scanner.
2832
+ * @param yyscanner The scanner object.
2833
+ */
2834
+ YY_EXTRA_TYPE config_get_extra (yyscan_t yyscanner)
2835
+ {
2836
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2837
+ return yyextra;
2838
+ }
2839
+
2840
+ /* %endif */
2841
+
2842
+ /** Get the current line number.
2843
+ * @param yyscanner The scanner object.
2844
+ */
2845
+ int config_get_lineno (yyscan_t yyscanner)
2846
+ {
2847
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2848
+
2849
+ if (! YY_CURRENT_BUFFER)
2850
+ return 0;
2851
+
2852
+ return yylineno;
2853
+ }
2854
+
2855
+ /** Get the current column number.
2856
+ * @param yyscanner The scanner object.
2857
+ */
2858
+ int config_get_column (yyscan_t yyscanner)
2859
+ {
2860
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2861
+
2862
+ if (! YY_CURRENT_BUFFER)
2863
+ return 0;
2864
+
2865
+ return yycolumn;
2866
+ }
2867
+
2868
+ /** Get the input stream.
2869
+ * @param yyscanner The scanner object.
2870
+ */
2871
+ FILE *config_get_in (yyscan_t yyscanner)
2872
+ {
2873
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2874
+ return yyin;
2875
+ }
2876
+
2877
+ /** Get the output stream.
2878
+ * @param yyscanner The scanner object.
2879
+ */
2880
+ FILE *config_get_out (yyscan_t yyscanner)
2881
+ {
2882
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2883
+ return yyout;
2884
+ }
2885
+
2886
+ /** Get the length of the current token.
2887
+ * @param yyscanner The scanner object.
2888
+ */
2889
+ int config_get_leng (yyscan_t yyscanner)
2890
+ {
2891
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2892
+ return yyleng;
2893
+ }
2894
+
2895
+ /** Get the current token.
2896
+ * @param yyscanner The scanner object.
2897
+ */
2898
+
2899
+ char *config_get_text (yyscan_t yyscanner)
2900
+ {
2901
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2902
+ return yytext;
2903
+ }
2904
+
2905
+ /* %if-reentrant */
2906
+
2907
+ /** Set the user-defined data. This data is never touched by the scanner.
2908
+ * @param user_defined The data to be associated with this scanner.
2909
+ * @param yyscanner The scanner object.
2910
+ */
2911
+ void config_set_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner)
2912
+ {
2913
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2914
+ yyextra = user_defined ;
2915
+ }
2916
+
2917
+ /* %endif */
2918
+
2919
+ /** Set the current line number.
2920
+ * @param line_number
2921
+ * @param yyscanner The scanner object.
2922
+ */
2923
+ void config_set_lineno (int line_number , yyscan_t yyscanner)
2924
+ {
2925
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2926
+
2927
+ /* lineno is only valid if an input buffer exists. */
2928
+ if (! YY_CURRENT_BUFFER )
2929
+ yy_fatal_error( "config_set_lineno called with no buffer" , yyscanner);
2930
+
2931
+ yylineno = line_number;
2932
+ }
2933
+
2934
+ /** Set the current column.
2935
+ * @param line_number
2936
+ * @param yyscanner The scanner object.
2937
+ */
2938
+ void config_set_column (int column_no , yyscan_t yyscanner)
2939
+ {
2940
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2941
+
2942
+ /* column is only valid if an input buffer exists. */
2943
+ if (! YY_CURRENT_BUFFER )
2944
+ yy_fatal_error( "config_set_column called with no buffer" , yyscanner);
2945
+
2946
+ yycolumn = column_no;
2947
+ }
2948
+
2949
+ /** Set the input stream. This does not discard the current
2950
+ * input buffer.
2951
+ * @param in_str A readable stream.
2952
+ * @param yyscanner The scanner object.
2953
+ * @see config__switch_to_buffer
2954
+ */
2955
+ void config_set_in (FILE * in_str , yyscan_t yyscanner)
2956
+ {
2957
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2958
+ yyin = in_str ;
2959
+ }
2960
+
2961
+ void config_set_out (FILE * out_str , yyscan_t yyscanner)
2962
+ {
2963
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2964
+ yyout = out_str ;
2965
+ }
2966
+
2967
+ int config_get_debug (yyscan_t yyscanner)
2968
+ {
2969
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2970
+ return yy_flex_debug;
2971
+ }
2972
+
2973
+ void config_set_debug (int bdebug , yyscan_t yyscanner)
2974
+ {
2975
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2976
+ yy_flex_debug = bdebug ;
2977
+ }
2978
+
2979
+ /* %endif */
2980
+
2981
+ /* %if-reentrant */
2982
+ /* Accessor methods for yylval and yylloc */
2983
+
2984
+ /* %if-bison-bridge */
2985
+
2986
+ YYSTYPE * config_get_lval (yyscan_t yyscanner)
2987
+ {
2988
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2989
+ return yylval;
2990
+ }
2991
+
2992
+ void config_set_lval (YYSTYPE * yylval_param , yyscan_t yyscanner)
2993
+ {
2994
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2995
+ yylval = yylval_param;
2996
+ }
2997
+
2998
+ /* %endif */
2999
+
3000
+ /* User-visible API */
3001
+
3002
+ /* config_lex_init is special because it creates the scanner itself, so it is
3003
+ * the ONLY reentrant function that doesn't take the scanner as the last argument.
3004
+ * That's why we explicitly handle the declaration, instead of using our macros.
3005
+ */
3006
+
3007
+ int config_lex_init(yyscan_t* ptr_yy_globals)
3008
+
3009
+ {
3010
+ if (ptr_yy_globals == NULL){
3011
+ errno = EINVAL;
3012
+ return 1;
3013
+ }
3014
+
3015
+ *ptr_yy_globals = (yyscan_t) config_alloc ( sizeof( struct yyguts_t ), NULL );
3016
+
3017
+ if (*ptr_yy_globals == NULL){
3018
+ errno = ENOMEM;
3019
+ return 1;
3020
+ }
3021
+
3022
+ /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
3023
+ memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
3024
+
3025
+ return yy_init_globals ( *ptr_yy_globals );
3026
+ }
3027
+
3028
+ /* config_lex_init_extra has the same functionality as config_lex_init, but follows the
3029
+ * convention of taking the scanner as the last argument. Note however, that
3030
+ * this is a *pointer* to a scanner, as it will be allocated by this call (and
3031
+ * is the reason, too, why this function also must handle its own declaration).
3032
+ * The user defined value in the first argument will be available to config_alloc in
3033
+ * the yyextra field.
3034
+ */
3035
+
3036
+ int config_lex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_globals )
3037
+
3038
+ {
3039
+ struct yyguts_t dummy_yyguts;
3040
+
3041
+ config_set_extra (yy_user_defined, &dummy_yyguts);
3042
+
3043
+ if (ptr_yy_globals == NULL){
3044
+ errno = EINVAL;
3045
+ return 1;
3046
+ }
3047
+
3048
+ *ptr_yy_globals = (yyscan_t) config_alloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
3049
+
3050
+ if (*ptr_yy_globals == NULL){
3051
+ errno = ENOMEM;
3052
+ return 1;
3053
+ }
3054
+
3055
+ /* By setting to 0xAA, we expose bugs in
3056
+ yy_init_globals. Leave at 0x00 for releases. */
3057
+ memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
3058
+
3059
+ config_set_extra (yy_user_defined, *ptr_yy_globals);
3060
+
3061
+ return yy_init_globals ( *ptr_yy_globals );
3062
+ }
3063
+
3064
+ /* %endif if-c-only */
3065
+
3066
+ /* %if-c-only */
3067
+ static int yy_init_globals (yyscan_t yyscanner)
3068
+ {
3069
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3070
+ /* Initialization is the same as for the non-reentrant scanner.
3071
+ * This function is called from config_lex_destroy(), so don't allocate here.
3072
+ */
3073
+
3074
+ yyg->yy_buffer_stack = 0;
3075
+ yyg->yy_buffer_stack_top = 0;
3076
+ yyg->yy_buffer_stack_max = 0;
3077
+ yyg->yy_c_buf_p = (char *) 0;
3078
+ yyg->yy_init = 0;
3079
+ yyg->yy_start = 0;
3080
+
3081
+ yyg->yy_start_stack_ptr = 0;
3082
+ yyg->yy_start_stack_depth = 0;
3083
+ yyg->yy_start_stack = NULL;
3084
+
3085
+ /* Defined in main.c */
3086
+ #ifdef YY_STDINIT
3087
+ yyin = stdin;
3088
+ yyout = stdout;
3089
+ #else
3090
+ yyin = (FILE *) 0;
3091
+ yyout = (FILE *) 0;
3092
+ #endif
3093
+
3094
+ /* For future reference: Set errno on error, since we are called by
3095
+ * config_lex_init()
3096
+ */
3097
+ return 0;
3098
+ }
3099
+ /* %endif */
3100
+
3101
+ /* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */
3102
+ /* config_lex_destroy is for both reentrant and non-reentrant scanners. */
3103
+ int config_lex_destroy (yyscan_t yyscanner)
3104
+ {
3105
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3106
+
3107
+ /* Pop the buffer stack, destroying each element. */
3108
+ while(YY_CURRENT_BUFFER){
3109
+ config__delete_buffer(YY_CURRENT_BUFFER ,yyscanner );
3110
+ YY_CURRENT_BUFFER_LVALUE = NULL;
3111
+ config_pop_buffer_state(yyscanner);
3112
+ }
3113
+
3114
+ /* Destroy the stack itself. */
3115
+ config_free(yyg->yy_buffer_stack ,yyscanner);
3116
+ yyg->yy_buffer_stack = NULL;
3117
+
3118
+ /* Destroy the start condition stack. */
3119
+ config_free(yyg->yy_start_stack ,yyscanner );
3120
+ yyg->yy_start_stack = NULL;
3121
+
3122
+ /* Reset the globals. This is important in a non-reentrant scanner so the next time
3123
+ * config_lex() is called, initialization will occur. */
3124
+ yy_init_globals( yyscanner);
3125
+
3126
+ /* %if-reentrant */
3127
+ /* Destroy the main struct (reentrant only). */
3128
+ config_free ( yyscanner , yyscanner );
3129
+ yyscanner = NULL;
3130
+ /* %endif */
3131
+ return 0;
3132
+ }
3133
+ /* %endif */
3134
+
3135
+ /*
3136
+ * Internal utility routines.
3137
+ */
3138
+
3139
+ #ifndef yytext_ptr
3140
+ static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner)
3141
+ {
3142
+ register int i;
3143
+ for ( i = 0; i < n; ++i )
3144
+ s1[i] = s2[i];
3145
+ }
3146
+ #endif
3147
+
3148
+ #ifdef YY_NEED_STRLEN
3149
+ static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
3150
+ {
3151
+ register int n;
3152
+ for ( n = 0; s[n]; ++n )
3153
+ ;
3154
+
3155
+ return n;
3156
+ }
3157
+ #endif
3158
+
3159
+ void *config_alloc (yy_size_t size , yyscan_t yyscanner)
3160
+ {
3161
+ return (void *) malloc( size );
3162
+ }
3163
+
3164
+ void *config_realloc (void * ptr, yy_size_t size , yyscan_t yyscanner)
3165
+ {
3166
+ /* The cast to (char *) in the following accommodates both
3167
+ * implementations that use char* generic pointers, and those
3168
+ * that use void* generic pointers. It works with the latter
3169
+ * because both ANSI C and C++ allow castless assignment from
3170
+ * any pointer type to void*, and deal with argument conversions
3171
+ * as though doing an assignment.
3172
+ */
3173
+ return (void *) realloc( (char *) ptr, size );
3174
+ }
3175
+
3176
+ void config_free (void * ptr , yyscan_t yyscanner)
3177
+ {
3178
+ free( (char *) ptr ); /* see config_realloc() for (char *) cast */
3179
+ }
3180
+
3181
+ /* %if-tables-serialization definitions */
3182
+ /* %define-yytables The name for this specific scanner's tables. */
3183
+ #define YYTABLES_NAME "yytables"
3184
+ /* %endif */
3185
+
3186
+ /* %ok-for-header */
3187
+
3188
+ #line 196 "libmemcached/options/scanner.l"
3189
+
3190
+
3191
+
3192
+ void Context::init_scanner()
3193
+ {
3194
+ config_lex_init(&scanner);
3195
+ config_set_extra(this,scanner);
3196
+ }
3197
+
3198
+ void Context::destroy_scanner()
3199
+ {
3200
+ config_lex_destroy(scanner);
3201
+ }
3202
+
3203
+