auser-poolparty 1.3.1 → 1.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (424) hide show
  1. data/VERSION.yml +1 -1
  2. data/bin/cloud-compile +6 -1
  3. data/config/jeweler.rb +1 -3
  4. data/lib/cloud_providers/cloud_provider_instance.rb +11 -1
  5. data/lib/dependency_resolvers/chef/resources/chef_recipe.rb +51 -0
  6. data/lib/dependency_resolvers/chef.rb +12 -3
  7. data/lib/mixins/callbacks.rb +6 -2
  8. data/lib/poolparty/plugins/apache2/passenger_site.rb +2 -2
  9. data/test/fixtures/chef/recipes/sudo/attributes/sudoers.rb +30 -0
  10. data/test/fixtures/chef/recipes/sudo/recipes/default.rb +33 -0
  11. data/test/fixtures/chef/recipes/sudo/templates/default/sudoers.erb +22 -0
  12. data/test/lib/dependency_resolvers/chef/resources/chef_recipe_test.rb +21 -0
  13. data/test/lib/dependency_resolvers/chef_test.rb +8 -1
  14. data/vendor/gems/thrift/CHANGELOG +1 -0
  15. data/vendor/gems/thrift/Makefile.am +25 -6
  16. data/vendor/gems/thrift/Manifest +81 -0
  17. data/vendor/gems/thrift/README +17 -111
  18. data/vendor/gems/thrift/Rakefile +104 -0
  19. data/vendor/gems/thrift/{lib/hs/Setup.lhs → benchmark/Benchmark.thrift} +5 -4
  20. data/vendor/gems/thrift/benchmark/benchmark.rb +271 -0
  21. data/vendor/gems/thrift/benchmark/client.rb +74 -0
  22. data/vendor/gems/thrift/benchmark/server.rb +82 -0
  23. data/vendor/gems/thrift/benchmark/thin_server.rb +44 -0
  24. data/vendor/gems/thrift/ext/binary_protocol_accelerated.c +474 -0
  25. data/vendor/gems/thrift/{lib/cocoa/src/protocol/TProtocolException.m → ext/binary_protocol_accelerated.h} +1 -4
  26. data/vendor/gems/thrift/ext/compact_protocol.c +665 -0
  27. data/vendor/gems/thrift/{lib/cocoa/src/protocol/TProtocolException.h → ext/compact_protocol.h} +1 -6
  28. data/vendor/gems/thrift/ext/constants.h +95 -0
  29. data/vendor/gems/thrift/{contrib/fb303/Makefile.am → ext/extconf.rb} +8 -13
  30. data/vendor/gems/thrift/{compiler/cpp/src/platform.h → ext/macros.h} +18 -13
  31. data/vendor/gems/thrift/ext/memory_buffer.c +76 -0
  32. data/vendor/gems/thrift/{lib/csharp/src/Protocol/TMessageType.cs → ext/memory_buffer.h} +2 -13
  33. data/vendor/gems/thrift/ext/protocol.c +185 -0
  34. data/vendor/gems/thrift/{lib/csharp/src/TProcessor.cs → ext/protocol.h} +2 -11
  35. data/vendor/gems/thrift/ext/struct.c +606 -0
  36. data/vendor/gems/thrift/ext/struct.h +67 -0
  37. data/vendor/gems/thrift/ext/thrift_native.c +194 -0
  38. data/vendor/gems/thrift/lib/thrift/client.rb +62 -0
  39. data/vendor/gems/thrift/{contrib/fb303/py/fb303_scripts/__init__.py → lib/thrift/core_ext/fixnum.rb} +13 -4
  40. data/vendor/gems/thrift/{contrib/fb303/global_footer.mk → lib/thrift/core_ext.rb} +4 -2
  41. data/vendor/gems/thrift/lib/thrift/exceptions.rb +82 -0
  42. data/vendor/gems/thrift/lib/thrift/processor.rb +57 -0
  43. data/vendor/gems/thrift/lib/thrift/protocol/base_protocol.rb +290 -0
  44. data/vendor/gems/thrift/lib/thrift/protocol/binary_protocol.rb +225 -0
  45. data/vendor/gems/thrift/{cleanup.sh → lib/thrift/protocol/binary_protocol_accelerated.rb} +19 -42
  46. data/vendor/gems/thrift/lib/thrift/protocol/compact_protocol.rb +422 -0
  47. data/vendor/gems/thrift/lib/thrift/serializer/deserializer.rb +33 -0
  48. data/vendor/gems/thrift/{bootstrap.sh → lib/thrift/serializer/serializer.rb} +17 -18
  49. data/vendor/gems/thrift/lib/thrift/server/base_server.rb +31 -0
  50. data/vendor/gems/thrift/lib/thrift/server/mongrel_http_server.rb +58 -0
  51. data/vendor/gems/thrift/lib/thrift/server/nonblocking_server.rb +296 -0
  52. data/vendor/gems/thrift/lib/thrift/server/simple_server.rb +43 -0
  53. data/vendor/gems/thrift/lib/thrift/server/thread_pool_server.rb +75 -0
  54. data/vendor/gems/thrift/lib/thrift/server/threaded_server.rb +47 -0
  55. data/vendor/gems/thrift/lib/thrift/struct.rb +298 -0
  56. data/vendor/gems/thrift/{contrib/fb303/bootstrap.sh → lib/thrift/thrift_native.rb} +5 -7
  57. data/vendor/gems/thrift/lib/{erl/Makefile → thrift/transport/base_server_transport.rb} +20 -20
  58. data/vendor/gems/thrift/lib/thrift/transport/base_transport.rb +70 -0
  59. data/vendor/gems/thrift/lib/thrift/transport/buffered_transport.rb +77 -0
  60. data/vendor/gems/thrift/lib/thrift/transport/framed_transport.rb +90 -0
  61. data/vendor/gems/thrift/lib/thrift/transport/http_client_transport.rb +45 -0
  62. data/vendor/gems/thrift/lib/thrift/transport/io_stream_transport.rb +39 -0
  63. data/vendor/gems/thrift/lib/thrift/transport/memory_buffer_transport.rb +96 -0
  64. data/vendor/gems/thrift/lib/thrift/transport/server_socket.rb +63 -0
  65. data/vendor/gems/thrift/lib/thrift/transport/socket.rb +136 -0
  66. data/vendor/gems/thrift/lib/{java/Makefile.am → thrift/transport/unix_server_socket.rb} +39 -17
  67. data/vendor/gems/thrift/{contrib/fb303/global_header.mk → lib/thrift/transport/unix_socket.rb} +23 -21
  68. data/vendor/gems/thrift/lib/thrift/types.rb +101 -0
  69. data/vendor/gems/thrift/lib/thrift.rb +59 -0
  70. data/vendor/gems/thrift/script/proto_benchmark.rb +121 -0
  71. data/vendor/gems/thrift/{lib/Makefile.am → script/read_struct.rb} +24 -36
  72. data/vendor/gems/thrift/{contrib/fb303/py/setup.py → script/write_struct.rb} +8 -5
  73. data/vendor/gems/thrift/setup.rb +1585 -0
  74. data/vendor/gems/thrift/spec/ThriftSpec.thrift +84 -0
  75. data/vendor/gems/thrift/spec/base_protocol_spec.rb +160 -0
  76. data/vendor/gems/thrift/spec/base_transport_spec.rb +351 -0
  77. data/vendor/gems/thrift/{contrib/fb303/py/Makefile.am → spec/binary_protocol_accelerated_spec.rb} +22 -25
  78. data/vendor/gems/thrift/spec/binary_protocol_spec.rb +63 -0
  79. data/vendor/gems/thrift/spec/binary_protocol_spec_shared.rb +375 -0
  80. data/vendor/gems/thrift/spec/client_spec.rb +100 -0
  81. data/vendor/gems/thrift/spec/compact_protocol_spec.rb +117 -0
  82. data/vendor/gems/thrift/spec/exception_spec.rb +142 -0
  83. data/vendor/gems/thrift/spec/http_client_spec.rb +49 -0
  84. data/vendor/gems/thrift/spec/mongrel_http_server_spec.rb +117 -0
  85. data/vendor/gems/thrift/spec/nonblocking_server_spec.rb +265 -0
  86. data/vendor/gems/thrift/spec/processor_spec.rb +83 -0
  87. data/vendor/gems/thrift/spec/serializer_spec.rb +69 -0
  88. data/vendor/gems/thrift/spec/server_socket_spec.rb +80 -0
  89. data/vendor/gems/thrift/spec/server_spec.rb +160 -0
  90. data/vendor/gems/thrift/spec/socket_spec.rb +61 -0
  91. data/vendor/gems/thrift/spec/socket_spec_shared.rb +104 -0
  92. data/vendor/gems/thrift/spec/spec_helper.rb +60 -0
  93. data/vendor/gems/thrift/spec/struct_spec.rb +252 -0
  94. data/vendor/gems/thrift/spec/types_spec.rb +116 -0
  95. data/vendor/gems/thrift/spec/unix_socket_spec.rb +108 -0
  96. data/vendor/gems/trollop/FAQ.txt +84 -0
  97. data/vendor/gems/trollop/History.txt +101 -0
  98. data/vendor/gems/trollop/Manifest.txt +7 -0
  99. data/vendor/gems/trollop/README.txt +40 -0
  100. data/vendor/gems/trollop/Rakefile +36 -0
  101. data/vendor/gems/trollop/lib/trollop.rb +739 -0
  102. data/vendor/gems/trollop/release-script.txt +13 -0
  103. data/vendor/gems/trollop/test/test_trollop.rb +1048 -0
  104. data/vendor/gems/trollop/www/index.html +172 -0
  105. metadata +123 -347
  106. data/vendor/gems/thrift/CHANGES +0 -35
  107. data/vendor/gems/thrift/CONTRIBUTORS +0 -77
  108. data/vendor/gems/thrift/DISCLAIMER +0 -6
  109. data/vendor/gems/thrift/LICENSE +0 -202
  110. data/vendor/gems/thrift/NEWS +0 -79
  111. data/vendor/gems/thrift/NOTICE +0 -26
  112. data/vendor/gems/thrift/aclocal/ax_boost_base.m4 +0 -198
  113. data/vendor/gems/thrift/aclocal/ax_javac_and_java.m4 +0 -107
  114. data/vendor/gems/thrift/aclocal/ax_lib_event.m4 +0 -194
  115. data/vendor/gems/thrift/aclocal/ax_lib_zlib.m4 +0 -173
  116. data/vendor/gems/thrift/aclocal/ax_signed_right_shift.m4 +0 -127
  117. data/vendor/gems/thrift/aclocal/ax_thrift_internal.m4 +0 -39
  118. data/vendor/gems/thrift/compiler/cpp/Makefile.am +0 -136
  119. data/vendor/gems/thrift/compiler/cpp/README +0 -39
  120. data/vendor/gems/thrift/compiler/cpp/src/generate/t_cocoa_generator.cc +0 -2331
  121. data/vendor/gems/thrift/compiler/cpp/src/generate/t_cpp_generator.cc +0 -3003
  122. data/vendor/gems/thrift/compiler/cpp/src/generate/t_csharp_generator.cc +0 -1700
  123. data/vendor/gems/thrift/compiler/cpp/src/generate/t_erl_generator.cc +0 -932
  124. data/vendor/gems/thrift/compiler/cpp/src/generate/t_generator.cc +0 -173
  125. data/vendor/gems/thrift/compiler/cpp/src/generate/t_generator.h +0 -321
  126. data/vendor/gems/thrift/compiler/cpp/src/generate/t_hs_generator.cc +0 -1445
  127. data/vendor/gems/thrift/compiler/cpp/src/generate/t_html_generator.cc +0 -637
  128. data/vendor/gems/thrift/compiler/cpp/src/generate/t_java_generator.cc +0 -3069
  129. data/vendor/gems/thrift/compiler/cpp/src/generate/t_ocaml_generator.cc +0 -1673
  130. data/vendor/gems/thrift/compiler/cpp/src/generate/t_oop_generator.h +0 -77
  131. data/vendor/gems/thrift/compiler/cpp/src/generate/t_perl_generator.cc +0 -1812
  132. data/vendor/gems/thrift/compiler/cpp/src/generate/t_php_generator.cc +0 -2281
  133. data/vendor/gems/thrift/compiler/cpp/src/generate/t_py_generator.cc +0 -2310
  134. data/vendor/gems/thrift/compiler/cpp/src/generate/t_rb_generator.cc +0 -1114
  135. data/vendor/gems/thrift/compiler/cpp/src/generate/t_st_generator.cc +0 -1071
  136. data/vendor/gems/thrift/compiler/cpp/src/generate/t_xsd_generator.cc +0 -354
  137. data/vendor/gems/thrift/compiler/cpp/src/globals.h +0 -117
  138. data/vendor/gems/thrift/compiler/cpp/src/main.cc +0 -1207
  139. data/vendor/gems/thrift/compiler/cpp/src/main.h +0 -103
  140. data/vendor/gems/thrift/compiler/cpp/src/md5.c +0 -381
  141. data/vendor/gems/thrift/compiler/cpp/src/md5.h +0 -91
  142. data/vendor/gems/thrift/compiler/cpp/src/parse/t_base_type.h +0 -137
  143. data/vendor/gems/thrift/compiler/cpp/src/parse/t_const.h +0 -59
  144. data/vendor/gems/thrift/compiler/cpp/src/parse/t_const_value.h +0 -121
  145. data/vendor/gems/thrift/compiler/cpp/src/parse/t_container.h +0 -56
  146. data/vendor/gems/thrift/compiler/cpp/src/parse/t_doc.h +0 -51
  147. data/vendor/gems/thrift/compiler/cpp/src/parse/t_enum.h +0 -59
  148. data/vendor/gems/thrift/compiler/cpp/src/parse/t_enum_value.h +0 -64
  149. data/vendor/gems/thrift/compiler/cpp/src/parse/t_field.h +0 -150
  150. data/vendor/gems/thrift/compiler/cpp/src/parse/t_function.h +0 -93
  151. data/vendor/gems/thrift/compiler/cpp/src/parse/t_list.h +0 -56
  152. data/vendor/gems/thrift/compiler/cpp/src/parse/t_map.h +0 -64
  153. data/vendor/gems/thrift/compiler/cpp/src/parse/t_program.h +0 -223
  154. data/vendor/gems/thrift/compiler/cpp/src/parse/t_scope.h +0 -86
  155. data/vendor/gems/thrift/compiler/cpp/src/parse/t_service.h +0 -68
  156. data/vendor/gems/thrift/compiler/cpp/src/parse/t_set.h +0 -55
  157. data/vendor/gems/thrift/compiler/cpp/src/parse/t_struct.h +0 -127
  158. data/vendor/gems/thrift/compiler/cpp/src/parse/t_type.h +0 -176
  159. data/vendor/gems/thrift/compiler/cpp/src/parse/t_typedef.h +0 -70
  160. data/vendor/gems/thrift/compiler/cpp/src/thriftl.ll +0 -303
  161. data/vendor/gems/thrift/compiler/cpp/src/thrifty.yy +0 -1140
  162. data/vendor/gems/thrift/configure.ac +0 -255
  163. data/vendor/gems/thrift/contrib/fb303/LICENSE +0 -16
  164. data/vendor/gems/thrift/contrib/fb303/README +0 -37
  165. data/vendor/gems/thrift/contrib/fb303/acinclude.m4 +0 -258
  166. data/vendor/gems/thrift/contrib/fb303/aclocal/ax_boost_base.m4 +0 -198
  167. data/vendor/gems/thrift/contrib/fb303/configure.ac +0 -115
  168. data/vendor/gems/thrift/contrib/fb303/cpp/FacebookBase.cpp +0 -124
  169. data/vendor/gems/thrift/contrib/fb303/cpp/FacebookBase.h +0 -103
  170. data/vendor/gems/thrift/contrib/fb303/cpp/Makefile.am +0 -84
  171. data/vendor/gems/thrift/contrib/fb303/cpp/ServiceTracker.cpp +0 -481
  172. data/vendor/gems/thrift/contrib/fb303/cpp/ServiceTracker.h +0 -215
  173. data/vendor/gems/thrift/contrib/fb303/if/fb303.thrift +0 -112
  174. data/vendor/gems/thrift/contrib/fb303/java/FacebookBase.java +0 -103
  175. data/vendor/gems/thrift/contrib/fb303/java/build.xml +0 -84
  176. data/vendor/gems/thrift/contrib/fb303/php/FacebookBase.php +0 -89
  177. data/vendor/gems/thrift/contrib/fb303/py/fb303/FacebookBase.py +0 -82
  178. data/vendor/gems/thrift/contrib/fb303/py/fb303_scripts/fb303_simple_mgmt.py +0 -195
  179. data/vendor/gems/thrift/contrib/thrift.el +0 -126
  180. data/vendor/gems/thrift/contrib/thrift.spec +0 -206
  181. data/vendor/gems/thrift/contrib/thrift.vim +0 -91
  182. data/vendor/gems/thrift/contrib/thrift_dump.cpp +0 -91
  183. data/vendor/gems/thrift/doc/lgpl-2.1.txt +0 -504
  184. data/vendor/gems/thrift/doc/otp-base-license.txt +0 -20
  185. data/vendor/gems/thrift/doc/thrift.bnf +0 -96
  186. data/vendor/gems/thrift/doc/thrift.tex +0 -1057
  187. data/vendor/gems/thrift/lib/cocoa/README +0 -21
  188. data/vendor/gems/thrift/lib/cocoa/src/TApplicationException.h +0 -44
  189. data/vendor/gems/thrift/lib/cocoa/src/TApplicationException.m +0 -130
  190. data/vendor/gems/thrift/lib/cocoa/src/TException.h +0 -34
  191. data/vendor/gems/thrift/lib/cocoa/src/TException.m +0 -64
  192. data/vendor/gems/thrift/lib/cocoa/src/TProcessor.h +0 -29
  193. data/vendor/gems/thrift/lib/cocoa/src/TProcessorFactory.h +0 -27
  194. data/vendor/gems/thrift/lib/cocoa/src/TSharedProcessorFactory.h +0 -27
  195. data/vendor/gems/thrift/lib/cocoa/src/TSharedProcessorFactory.m +0 -51
  196. data/vendor/gems/thrift/lib/cocoa/src/protocol/TBinaryProtocol.h +0 -51
  197. data/vendor/gems/thrift/lib/cocoa/src/protocol/TBinaryProtocol.m +0 -477
  198. data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocol.h +0 -148
  199. data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolFactory.h +0 -29
  200. data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolUtil.h +0 -29
  201. data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolUtil.m +0 -104
  202. data/vendor/gems/thrift/lib/cocoa/src/server/TSocketServer.h +0 -50
  203. data/vendor/gems/thrift/lib/cocoa/src/server/TSocketServer.m +0 -153
  204. data/vendor/gems/thrift/lib/cocoa/src/transport/THTTPClient.h +0 -42
  205. data/vendor/gems/thrift/lib/cocoa/src/transport/THTTPClient.m +0 -159
  206. data/vendor/gems/thrift/lib/cocoa/src/transport/TNSFileHandleTransport.h +0 -35
  207. data/vendor/gems/thrift/lib/cocoa/src/transport/TNSFileHandleTransport.m +0 -91
  208. data/vendor/gems/thrift/lib/cocoa/src/transport/TNSStreamTransport.h +0 -38
  209. data/vendor/gems/thrift/lib/cocoa/src/transport/TNSStreamTransport.m +0 -89
  210. data/vendor/gems/thrift/lib/cocoa/src/transport/TSocketClient.h +0 -32
  211. data/vendor/gems/thrift/lib/cocoa/src/transport/TSocketClient.m +0 -58
  212. data/vendor/gems/thrift/lib/cocoa/src/transport/TTransport.h +0 -36
  213. data/vendor/gems/thrift/lib/cocoa/src/transport/TTransportException.h +0 -30
  214. data/vendor/gems/thrift/lib/cocoa/src/transport/TTransportException.m +0 -43
  215. data/vendor/gems/thrift/lib/cpp/Makefile.am +0 -158
  216. data/vendor/gems/thrift/lib/cpp/README +0 -67
  217. data/vendor/gems/thrift/lib/cpp/src/TLogging.h +0 -163
  218. data/vendor/gems/thrift/lib/cpp/src/TProcessor.h +0 -53
  219. data/vendor/gems/thrift/lib/cpp/src/TReflectionLocal.h +0 -96
  220. data/vendor/gems/thrift/lib/cpp/src/Thrift.cpp +0 -148
  221. data/vendor/gems/thrift/lib/cpp/src/Thrift.h +0 -191
  222. data/vendor/gems/thrift/lib/cpp/src/concurrency/Exception.h +0 -60
  223. data/vendor/gems/thrift/lib/cpp/src/concurrency/FunctionRunner.h +0 -77
  224. data/vendor/gems/thrift/lib/cpp/src/concurrency/Monitor.cpp +0 -137
  225. data/vendor/gems/thrift/lib/cpp/src/concurrency/Monitor.h +0 -84
  226. data/vendor/gems/thrift/lib/cpp/src/concurrency/Mutex.cpp +0 -160
  227. data/vendor/gems/thrift/lib/cpp/src/concurrency/Mutex.h +0 -114
  228. data/vendor/gems/thrift/lib/cpp/src/concurrency/PosixThreadFactory.cpp +0 -314
  229. data/vendor/gems/thrift/lib/cpp/src/concurrency/PosixThreadFactory.h +0 -130
  230. data/vendor/gems/thrift/lib/cpp/src/concurrency/Thread.h +0 -125
  231. data/vendor/gems/thrift/lib/cpp/src/concurrency/ThreadManager.cpp +0 -493
  232. data/vendor/gems/thrift/lib/cpp/src/concurrency/ThreadManager.h +0 -169
  233. data/vendor/gems/thrift/lib/cpp/src/concurrency/TimerManager.cpp +0 -284
  234. data/vendor/gems/thrift/lib/cpp/src/concurrency/TimerManager.h +0 -122
  235. data/vendor/gems/thrift/lib/cpp/src/concurrency/Util.cpp +0 -55
  236. data/vendor/gems/thrift/lib/cpp/src/concurrency/Util.h +0 -100
  237. data/vendor/gems/thrift/lib/cpp/src/concurrency/test/Tests.cpp +0 -155
  238. data/vendor/gems/thrift/lib/cpp/src/concurrency/test/ThreadFactoryTests.h +0 -354
  239. data/vendor/gems/thrift/lib/cpp/src/concurrency/test/ThreadManagerTests.h +0 -379
  240. data/vendor/gems/thrift/lib/cpp/src/concurrency/test/TimerManagerTests.h +0 -155
  241. data/vendor/gems/thrift/lib/cpp/src/processor/PeekProcessor.cpp +0 -122
  242. data/vendor/gems/thrift/lib/cpp/src/processor/PeekProcessor.h +0 -77
  243. data/vendor/gems/thrift/lib/cpp/src/processor/StatsProcessor.h +0 -264
  244. data/vendor/gems/thrift/lib/cpp/src/protocol/TBase64Utils.cpp +0 -79
  245. data/vendor/gems/thrift/lib/cpp/src/protocol/TBase64Utils.h +0 -42
  246. data/vendor/gems/thrift/lib/cpp/src/protocol/TBinaryProtocol.cpp +0 -394
  247. data/vendor/gems/thrift/lib/cpp/src/protocol/TBinaryProtocol.h +0 -254
  248. data/vendor/gems/thrift/lib/cpp/src/protocol/TCompactProtocol.cpp +0 -736
  249. data/vendor/gems/thrift/lib/cpp/src/protocol/TCompactProtocol.h +0 -279
  250. data/vendor/gems/thrift/lib/cpp/src/protocol/TDebugProtocol.cpp +0 -346
  251. data/vendor/gems/thrift/lib/cpp/src/protocol/TDebugProtocol.h +0 -225
  252. data/vendor/gems/thrift/lib/cpp/src/protocol/TDenseProtocol.cpp +0 -762
  253. data/vendor/gems/thrift/lib/cpp/src/protocol/TDenseProtocol.h +0 -253
  254. data/vendor/gems/thrift/lib/cpp/src/protocol/TJSONProtocol.cpp +0 -998
  255. data/vendor/gems/thrift/lib/cpp/src/protocol/TJSONProtocol.h +0 -340
  256. data/vendor/gems/thrift/lib/cpp/src/protocol/TOneWayProtocol.h +0 -304
  257. data/vendor/gems/thrift/lib/cpp/src/protocol/TProtocol.h +0 -438
  258. data/vendor/gems/thrift/lib/cpp/src/protocol/TProtocolException.h +0 -104
  259. data/vendor/gems/thrift/lib/cpp/src/protocol/TProtocolTap.h +0 -187
  260. data/vendor/gems/thrift/lib/cpp/src/server/TNonblockingServer.cpp +0 -750
  261. data/vendor/gems/thrift/lib/cpp/src/server/TNonblockingServer.h +0 -435
  262. data/vendor/gems/thrift/lib/cpp/src/server/TServer.cpp +0 -38
  263. data/vendor/gems/thrift/lib/cpp/src/server/TServer.h +0 -213
  264. data/vendor/gems/thrift/lib/cpp/src/server/TSimpleServer.cpp +0 -118
  265. data/vendor/gems/thrift/lib/cpp/src/server/TSimpleServer.h +0 -70
  266. data/vendor/gems/thrift/lib/cpp/src/server/TThreadPoolServer.cpp +0 -217
  267. data/vendor/gems/thrift/lib/cpp/src/server/TThreadPoolServer.h +0 -79
  268. data/vendor/gems/thrift/lib/cpp/src/server/TThreadedServer.cpp +0 -243
  269. data/vendor/gems/thrift/lib/cpp/src/server/TThreadedServer.h +0 -74
  270. data/vendor/gems/thrift/lib/cpp/src/transport/TBufferTransports.cpp +0 -370
  271. data/vendor/gems/thrift/lib/cpp/src/transport/TBufferTransports.h +0 -667
  272. data/vendor/gems/thrift/lib/cpp/src/transport/TFDTransport.cpp +0 -77
  273. data/vendor/gems/thrift/lib/cpp/src/transport/TFDTransport.h +0 -73
  274. data/vendor/gems/thrift/lib/cpp/src/transport/TFileTransport.cpp +0 -953
  275. data/vendor/gems/thrift/lib/cpp/src/transport/TFileTransport.h +0 -442
  276. data/vendor/gems/thrift/lib/cpp/src/transport/THttpClient.cpp +0 -348
  277. data/vendor/gems/thrift/lib/cpp/src/transport/THttpClient.h +0 -111
  278. data/vendor/gems/thrift/lib/cpp/src/transport/TServerSocket.cpp +0 -368
  279. data/vendor/gems/thrift/lib/cpp/src/transport/TServerSocket.h +0 -76
  280. data/vendor/gems/thrift/lib/cpp/src/transport/TServerTransport.h +0 -92
  281. data/vendor/gems/thrift/lib/cpp/src/transport/TShortReadTransport.h +0 -96
  282. data/vendor/gems/thrift/lib/cpp/src/transport/TSimpleFileTransport.cpp +0 -54
  283. data/vendor/gems/thrift/lib/cpp/src/transport/TSimpleFileTransport.h +0 -41
  284. data/vendor/gems/thrift/lib/cpp/src/transport/TSocket.cpp +0 -591
  285. data/vendor/gems/thrift/lib/cpp/src/transport/TSocket.h +0 -242
  286. data/vendor/gems/thrift/lib/cpp/src/transport/TSocketPool.cpp +0 -235
  287. data/vendor/gems/thrift/lib/cpp/src/transport/TSocketPool.h +0 -191
  288. data/vendor/gems/thrift/lib/cpp/src/transport/TTransport.h +0 -224
  289. data/vendor/gems/thrift/lib/cpp/src/transport/TTransportException.cpp +0 -31
  290. data/vendor/gems/thrift/lib/cpp/src/transport/TTransportException.h +0 -117
  291. data/vendor/gems/thrift/lib/cpp/src/transport/TTransportUtils.cpp +0 -178
  292. data/vendor/gems/thrift/lib/cpp/src/transport/TTransportUtils.h +0 -287
  293. data/vendor/gems/thrift/lib/cpp/src/transport/TZlibTransport.cpp +0 -299
  294. data/vendor/gems/thrift/lib/cpp/src/transport/TZlibTransport.h +0 -219
  295. data/vendor/gems/thrift/lib/cpp/thrift-nb.pc.in +0 -30
  296. data/vendor/gems/thrift/lib/cpp/thrift-z.pc.in +0 -30
  297. data/vendor/gems/thrift/lib/cpp/thrift.pc.in +0 -29
  298. data/vendor/gems/thrift/lib/csharp/Makefile.am +0 -70
  299. data/vendor/gems/thrift/lib/csharp/README +0 -26
  300. data/vendor/gems/thrift/lib/csharp/ThriftMSBuildTask/Properties/AssemblyInfo.cs +0 -55
  301. data/vendor/gems/thrift/lib/csharp/ThriftMSBuildTask/ThriftBuild.cs +0 -242
  302. data/vendor/gems/thrift/lib/csharp/ThriftMSBuildTask/ThriftMSBuildTask.csproj +0 -62
  303. data/vendor/gems/thrift/lib/csharp/src/Collections/THashSet.cs +0 -142
  304. data/vendor/gems/thrift/lib/csharp/src/Protocol/TBase.cs +0 -34
  305. data/vendor/gems/thrift/lib/csharp/src/Protocol/TBinaryProtocol.cs +0 -392
  306. data/vendor/gems/thrift/lib/csharp/src/Protocol/TField.cs +0 -58
  307. data/vendor/gems/thrift/lib/csharp/src/Protocol/TList.cs +0 -50
  308. data/vendor/gems/thrift/lib/csharp/src/Protocol/TMap.cs +0 -58
  309. data/vendor/gems/thrift/lib/csharp/src/Protocol/TMessage.cs +0 -58
  310. data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocol.cs +0 -87
  311. data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocolException.cs +0 -61
  312. data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocolFactory.cs +0 -29
  313. data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocolUtil.cs +0 -94
  314. data/vendor/gems/thrift/lib/csharp/src/Protocol/TSet.cs +0 -50
  315. data/vendor/gems/thrift/lib/csharp/src/Protocol/TStruct.cs +0 -42
  316. data/vendor/gems/thrift/lib/csharp/src/Protocol/TType.cs +0 -40
  317. data/vendor/gems/thrift/lib/csharp/src/Server/TServer.cs +0 -135
  318. data/vendor/gems/thrift/lib/csharp/src/Server/TSimpleServer.cs +0 -148
  319. data/vendor/gems/thrift/lib/csharp/src/Server/TThreadPoolServer.cs +0 -186
  320. data/vendor/gems/thrift/lib/csharp/src/Server/TThreadedServer.cs +0 -234
  321. data/vendor/gems/thrift/lib/csharp/src/TApplicationException.cs +0 -131
  322. data/vendor/gems/thrift/lib/csharp/src/Thrift.csproj +0 -73
  323. data/vendor/gems/thrift/lib/csharp/src/Thrift.sln +0 -35
  324. data/vendor/gems/thrift/lib/csharp/src/Transport/TBufferedTransport.cs +0 -100
  325. data/vendor/gems/thrift/lib/csharp/src/Transport/TServerSocket.cs +0 -157
  326. data/vendor/gems/thrift/lib/csharp/src/Transport/TServerTransport.cs +0 -39
  327. data/vendor/gems/thrift/lib/csharp/src/Transport/TSocket.cs +0 -144
  328. data/vendor/gems/thrift/lib/csharp/src/Transport/TStreamTransport.cs +0 -103
  329. data/vendor/gems/thrift/lib/csharp/src/Transport/TTransport.cs +0 -66
  330. data/vendor/gems/thrift/lib/csharp/src/Transport/TTransportException.cs +0 -64
  331. data/vendor/gems/thrift/lib/csharp/src/Transport/TTransportFactory.cs +0 -38
  332. data/vendor/gems/thrift/lib/erl/README +0 -56
  333. data/vendor/gems/thrift/lib/erl/build/beamver +0 -59
  334. data/vendor/gems/thrift/lib/erl/build/buildtargets.mk +0 -15
  335. data/vendor/gems/thrift/lib/erl/build/colors.mk +0 -24
  336. data/vendor/gems/thrift/lib/erl/build/docs.mk +0 -12
  337. data/vendor/gems/thrift/lib/erl/build/mime.types +0 -98
  338. data/vendor/gems/thrift/lib/erl/build/otp.mk +0 -146
  339. data/vendor/gems/thrift/lib/erl/build/otp_subdir.mk +0 -85
  340. data/vendor/gems/thrift/lib/erl/build/raw_test.mk +0 -29
  341. data/vendor/gems/thrift/lib/erl/include/thrift_constants.hrl +0 -54
  342. data/vendor/gems/thrift/lib/erl/include/thrift_protocol.hrl +0 -31
  343. data/vendor/gems/thrift/lib/erl/src/Makefile +0 -116
  344. data/vendor/gems/thrift/lib/erl/src/test_handler.erl +0 -26
  345. data/vendor/gems/thrift/lib/erl/src/test_service.erl +0 -29
  346. data/vendor/gems/thrift/lib/erl/src/thrift.app.src +0 -44
  347. data/vendor/gems/thrift/lib/erl/src/thrift.appup.src +0 -1
  348. data/vendor/gems/thrift/lib/erl/src/thrift_base64_transport.erl +0 -64
  349. data/vendor/gems/thrift/lib/erl/src/thrift_binary_protocol.erl +0 -325
  350. data/vendor/gems/thrift/lib/erl/src/thrift_buffered_transport.erl +0 -180
  351. data/vendor/gems/thrift/lib/erl/src/thrift_client.erl +0 -384
  352. data/vendor/gems/thrift/lib/erl/src/thrift_disk_log_transport.erl +0 -118
  353. data/vendor/gems/thrift/lib/erl/src/thrift_file_transport.erl +0 -87
  354. data/vendor/gems/thrift/lib/erl/src/thrift_framed_transport.erl +0 -208
  355. data/vendor/gems/thrift/lib/erl/src/thrift_http_transport.erl +0 -199
  356. data/vendor/gems/thrift/lib/erl/src/thrift_memory_buffer.erl +0 -164
  357. data/vendor/gems/thrift/lib/erl/src/thrift_processor.erl +0 -188
  358. data/vendor/gems/thrift/lib/erl/src/thrift_protocol.erl +0 -356
  359. data/vendor/gems/thrift/lib/erl/src/thrift_server.erl +0 -183
  360. data/vendor/gems/thrift/lib/erl/src/thrift_service.erl +0 -25
  361. data/vendor/gems/thrift/lib/erl/src/thrift_socket_server.erl +0 -249
  362. data/vendor/gems/thrift/lib/erl/src/thrift_socket_transport.erl +0 -119
  363. data/vendor/gems/thrift/lib/erl/src/thrift_transport.erl +0 -57
  364. data/vendor/gems/thrift/lib/erl/vsn.mk +0 -1
  365. data/vendor/gems/thrift/lib/hs/README +0 -82
  366. data/vendor/gems/thrift/lib/hs/TODO +0 -2
  367. data/vendor/gems/thrift/lib/hs/Thrift.cabal +0 -20
  368. data/vendor/gems/thrift/lib/hs/src/Thrift/Protocol/Binary.hs +0 -147
  369. data/vendor/gems/thrift/lib/hs/src/Thrift/Protocol.hs +0 -191
  370. data/vendor/gems/thrift/lib/hs/src/Thrift/Server.hs +0 -65
  371. data/vendor/gems/thrift/lib/hs/src/Thrift/Transport/Handle.hs +0 -58
  372. data/vendor/gems/thrift/lib/hs/src/Thrift/Transport.hs +0 -60
  373. data/vendor/gems/thrift/lib/hs/src/Thrift.hs +0 -111
  374. data/vendor/gems/thrift/lib/java/README +0 -43
  375. data/vendor/gems/thrift/lib/java/build.xml +0 -195
  376. data/vendor/gems/thrift/lib/java/ivy.xml +0 -8
  377. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/IntRangeSet.java +0 -171
  378. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TApplicationException.java +0 -123
  379. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TBase.java +0 -66
  380. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TBaseHelper.java +0 -102
  381. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TByteArrayOutputStream.java +0 -46
  382. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TDeserializer.java +0 -94
  383. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TException.java +0 -45
  384. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TFieldRequirementType.java +0 -30
  385. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TProcessor.java +0 -32
  386. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TProcessorFactory.java +0 -39
  387. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TSerializer.java +0 -110
  388. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/FieldMetaData.java +0 -69
  389. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/FieldValueMetaData.java +0 -42
  390. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/ListMetaData.java +0 -29
  391. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/MapMetaData.java +0 -31
  392. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/SetMetaData.java +0 -29
  393. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/StructMetaData.java +0 -31
  394. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TBase64Utils.java +0 -128
  395. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TBinaryProtocol.java +0 -331
  396. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TCompactProtocol.java +0 -741
  397. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TField.java +0 -48
  398. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TJSONProtocol.java +0 -927
  399. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TList.java +0 -38
  400. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TMap.java +0 -40
  401. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TMessage.java +0 -48
  402. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TMessageType.java +0 -31
  403. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocol.java +0 -146
  404. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocolException.java +0 -81
  405. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocolFactory.java +0 -30
  406. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocolUtil.java +0 -158
  407. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TSet.java +0 -42
  408. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TSimpleJSONProtocol.java +0 -384
  409. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TStruct.java +0 -36
  410. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TType.java +0 -40
  411. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/THsHaServer.java +0 -304
  412. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TNonblockingServer.java +0 -772
  413. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TServer.java +0 -126
  414. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TSimpleServer.java +0 -145
  415. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TThreadPoolServer.java +0 -271
  416. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TFramedTransport.java +0 -126
  417. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/THttpClient.java +0 -157
  418. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TIOStreamTransport.java +0 -159
  419. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TMemoryBuffer.java +0 -98
  420. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingServerSocket.java +0 -160
  421. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingServerTransport.java +0 -31
  422. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingSocket.java +0 -213
  423. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingTransport.java +0 -31
  424. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TServerSocket.java +0 -145
@@ -1,1140 +0,0 @@
1
- %{
2
- /*
3
- * Licensed to the Apache Software Foundation (ASF) under one
4
- * or more contributor license agreements. See the NOTICE file
5
- * distributed with this work for additional information
6
- * regarding copyright ownership. The ASF licenses this file
7
- * to you under the Apache License, Version 2.0 (the
8
- * "License"); you may not use this file except in compliance
9
- * with the License. You may obtain a copy of the License at
10
- *
11
- * http://www.apache.org/licenses/LICENSE-2.0
12
- *
13
- * Unless required by applicable law or agreed to in writing,
14
- * software distributed under the License is distributed on an
15
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16
- * KIND, either express or implied. See the License for the
17
- * specific language governing permissions and limitations
18
- * under the License.
19
- */
20
-
21
- /**
22
- * Thrift parser.
23
- *
24
- * This parser is used on a thrift definition file.
25
- *
26
- */
27
-
28
- #define __STDC_LIMIT_MACROS
29
- #define __STDC_FORMAT_MACROS
30
- #include <stdio.h>
31
- #include <inttypes.h>
32
- #include <limits.h>
33
- #include "main.h"
34
- #include "globals.h"
35
- #include "parse/t_program.h"
36
- #include "parse/t_scope.h"
37
-
38
- /**
39
- * This global variable is used for automatic numbering of field indices etc.
40
- * when parsing the members of a struct. Field values are automatically
41
- * assigned starting from -1 and working their way down.
42
- */
43
- int y_field_val = -1;
44
- int g_arglist = 0;
45
-
46
- %}
47
-
48
- /**
49
- * This structure is used by the parser to hold the data types associated with
50
- * various parse nodes.
51
- */
52
- %union {
53
- char* id;
54
- int64_t iconst;
55
- double dconst;
56
- bool tbool;
57
- t_doc* tdoc;
58
- t_type* ttype;
59
- t_base_type* tbase;
60
- t_typedef* ttypedef;
61
- t_enum* tenum;
62
- t_enum_value* tenumv;
63
- t_const* tconst;
64
- t_const_value* tconstv;
65
- t_struct* tstruct;
66
- t_service* tservice;
67
- t_function* tfunction;
68
- t_field* tfield;
69
- char* dtext;
70
- t_field::e_req ereq;
71
- t_annotation* tannot;
72
- }
73
-
74
- /**
75
- * Strings identifier
76
- */
77
- %token<id> tok_identifier
78
- %token<id> tok_literal
79
- %token<dtext> tok_doctext
80
- %token<id> tok_st_identifier
81
-
82
- /**
83
- * Constant values
84
- */
85
- %token<iconst> tok_int_constant
86
- %token<dconst> tok_dub_constant
87
-
88
- /**
89
- * Header keywords
90
- */
91
- %token tok_include
92
- %token tok_namespace
93
- %token tok_cpp_namespace
94
- %token tok_cpp_include
95
- %token tok_cpp_type
96
- %token tok_php_namespace
97
- %token tok_py_module
98
- %token tok_perl_package
99
- %token tok_java_package
100
- %token tok_xsd_all
101
- %token tok_xsd_optional
102
- %token tok_xsd_nillable
103
- %token tok_xsd_namespace
104
- %token tok_xsd_attrs
105
- %token tok_ruby_namespace
106
- %token tok_smalltalk_category
107
- %token tok_smalltalk_prefix
108
- %token tok_cocoa_prefix
109
- %token tok_csharp_namespace
110
-
111
- /**
112
- * Base datatype keywords
113
- */
114
- %token tok_void
115
- %token tok_bool
116
- %token tok_byte
117
- %token tok_string
118
- %token tok_binary
119
- %token tok_slist
120
- %token tok_senum
121
- %token tok_i16
122
- %token tok_i32
123
- %token tok_i64
124
- %token tok_double
125
-
126
- /**
127
- * Complex type keywords
128
- */
129
- %token tok_map
130
- %token tok_list
131
- %token tok_set
132
-
133
- /**
134
- * Function modifiers
135
- */
136
- %token tok_oneway
137
-
138
- /**
139
- * Thrift language keywords
140
- */
141
- %token tok_typedef
142
- %token tok_struct
143
- %token tok_xception
144
- %token tok_throws
145
- %token tok_extends
146
- %token tok_service
147
- %token tok_enum
148
- %token tok_const
149
- %token tok_required
150
- %token tok_optional
151
-
152
- /**
153
- * Grammar nodes
154
- */
155
-
156
- %type<ttype> BaseType
157
- %type<ttype> SimpleBaseType
158
- %type<ttype> ContainerType
159
- %type<ttype> SimpleContainerType
160
- %type<ttype> MapType
161
- %type<ttype> SetType
162
- %type<ttype> ListType
163
-
164
- %type<tdoc> Definition
165
- %type<ttype> TypeDefinition
166
-
167
- %type<ttypedef> Typedef
168
- %type<ttype> DefinitionType
169
-
170
- %type<ttype> TypeAnnotations
171
- %type<ttype> TypeAnnotationList
172
- %type<tannot> TypeAnnotation
173
-
174
- %type<tfield> Field
175
- %type<iconst> FieldIdentifier
176
- %type<ereq> FieldRequiredness
177
- %type<ttype> FieldType
178
- %type<tconstv> FieldValue
179
- %type<tstruct> FieldList
180
-
181
- %type<tenum> Enum
182
- %type<tenum> EnumDefList
183
- %type<tenumv> EnumDef
184
-
185
- %type<ttypedef> Senum
186
- %type<tbase> SenumDefList
187
- %type<id> SenumDef
188
-
189
- %type<tconst> Const
190
- %type<tconstv> ConstValue
191
- %type<tconstv> ConstList
192
- %type<tconstv> ConstListContents
193
- %type<tconstv> ConstMap
194
- %type<tconstv> ConstMapContents
195
-
196
- %type<tstruct> Struct
197
- %type<tstruct> Xception
198
- %type<tservice> Service
199
-
200
- %type<tfunction> Function
201
- %type<ttype> FunctionType
202
- %type<tservice> FunctionList
203
-
204
- %type<tstruct> Throws
205
- %type<tservice> Extends
206
- %type<tbool> Oneway
207
- %type<tbool> XsdAll
208
- %type<tbool> XsdOptional
209
- %type<tbool> XsdNillable
210
- %type<tstruct> XsdAttributes
211
- %type<id> CppType
212
-
213
- %type<dtext> CaptureDocText
214
-
215
- %%
216
-
217
- /**
218
- * Thrift Grammar Implementation.
219
- *
220
- * For the most part this source file works its way top down from what you
221
- * might expect to find in a typical .thrift file, i.e. type definitions and
222
- * namespaces up top followed by service definitions using those types.
223
- */
224
-
225
- Program:
226
- HeaderList DefinitionList
227
- {
228
- pdebug("Program -> Headers DefinitionList");
229
- /*
230
- TODO(dreiss): Decide whether full-program doctext is worth the trouble.
231
- if ($1 != NULL) {
232
- g_program->set_doc($1);
233
- }
234
- */
235
- clear_doctext();
236
- }
237
-
238
- CaptureDocText:
239
- {
240
- if (g_parse_mode == PROGRAM) {
241
- $$ = g_doctext;
242
- g_doctext = NULL;
243
- } else {
244
- $$ = NULL;
245
- }
246
- }
247
-
248
- /* TODO(dreiss): Try to DestroyDocText in all sorts or random places. */
249
- DestroyDocText:
250
- {
251
- if (g_parse_mode == PROGRAM) {
252
- clear_doctext();
253
- }
254
- }
255
-
256
- /* We have to DestroyDocText here, otherwise it catches the doctext
257
- on the first real element. */
258
- HeaderList:
259
- HeaderList DestroyDocText Header
260
- {
261
- pdebug("HeaderList -> HeaderList Header");
262
- }
263
- |
264
- {
265
- pdebug("HeaderList -> ");
266
- }
267
-
268
- Header:
269
- Include
270
- {
271
- pdebug("Header -> Include");
272
- }
273
- | tok_namespace tok_identifier tok_identifier
274
- {
275
- pdebug("Header -> tok_namespace tok_identifier tok_identifier");
276
- if (g_parse_mode == PROGRAM) {
277
- g_program->set_namespace($2, $3);
278
- }
279
- }
280
- /* TODO(dreiss): Get rid of this once everyone is using the new hotness. */
281
- | tok_cpp_namespace tok_identifier
282
- {
283
- pwarning(1, "'cpp_namespace' is deprecated. Use 'namespace cpp' instead");
284
- pdebug("Header -> tok_cpp_namespace tok_identifier");
285
- if (g_parse_mode == PROGRAM) {
286
- g_program->set_namespace("cpp", $2);
287
- }
288
- }
289
- | tok_cpp_include tok_literal
290
- {
291
- pdebug("Header -> tok_cpp_include tok_literal");
292
- if (g_parse_mode == PROGRAM) {
293
- g_program->add_cpp_include($2);
294
- }
295
- }
296
- | tok_php_namespace tok_identifier
297
- {
298
- pwarning(1, "'php_namespace' is deprecated. Use 'namespace php' instead");
299
- pdebug("Header -> tok_php_namespace tok_identifier");
300
- if (g_parse_mode == PROGRAM) {
301
- g_program->set_namespace("php", $2);
302
- }
303
- }
304
- /* TODO(dreiss): Get rid of this once everyone is using the new hotness. */
305
- | tok_py_module tok_identifier
306
- {
307
- pwarning(1, "'py_module' is deprecated. Use 'namespace py' instead");
308
- pdebug("Header -> tok_py_module tok_identifier");
309
- if (g_parse_mode == PROGRAM) {
310
- g_program->set_namespace("py", $2);
311
- }
312
- }
313
- /* TODO(dreiss): Get rid of this once everyone is using the new hotness. */
314
- | tok_perl_package tok_identifier
315
- {
316
- pwarning(1, "'perl_package' is deprecated. Use 'namespace perl' instead");
317
- pdebug("Header -> tok_perl_namespace tok_identifier");
318
- if (g_parse_mode == PROGRAM) {
319
- g_program->set_namespace("perl", $2);
320
- }
321
- }
322
- /* TODO(dreiss): Get rid of this once everyone is using the new hotness. */
323
- | tok_ruby_namespace tok_identifier
324
- {
325
- pwarning(1, "'ruby_namespace' is deprecated. Use 'namespace rb' instead");
326
- pdebug("Header -> tok_ruby_namespace tok_identifier");
327
- if (g_parse_mode == PROGRAM) {
328
- g_program->set_namespace("rb", $2);
329
- }
330
- }
331
- /* TODO(dreiss): Get rid of this once everyone is using the new hotness. */
332
- | tok_smalltalk_category tok_st_identifier
333
- {
334
- pwarning(1, "'smalltalk_category' is deprecated. Use 'namespace smalltalk.category' instead");
335
- pdebug("Header -> tok_smalltalk_category tok_st_identifier");
336
- if (g_parse_mode == PROGRAM) {
337
- g_program->set_namespace("smalltalk.category", $2);
338
- }
339
- }
340
- /* TODO(dreiss): Get rid of this once everyone is using the new hotness. */
341
- | tok_smalltalk_prefix tok_identifier
342
- {
343
- pwarning(1, "'smalltalk_prefix' is deprecated. Use 'namespace smalltalk.prefix' instead");
344
- pdebug("Header -> tok_smalltalk_prefix tok_identifier");
345
- if (g_parse_mode == PROGRAM) {
346
- g_program->set_namespace("smalltalk.prefix", $2);
347
- }
348
- }
349
- /* TODO(dreiss): Get rid of this once everyone is using the new hotness. */
350
- | tok_java_package tok_identifier
351
- {
352
- pwarning(1, "'java_package' is deprecated. Use 'namespace java' instead");
353
- pdebug("Header -> tok_java_package tok_identifier");
354
- if (g_parse_mode == PROGRAM) {
355
- g_program->set_namespace("java", $2);
356
- }
357
- }
358
- /* TODO(dreiss): Get rid of this once everyone is using the new hotness. */
359
- | tok_cocoa_prefix tok_identifier
360
- {
361
- pwarning(1, "'cocoa_prefix' is deprecated. Use 'namespace cocoa' instead");
362
- pdebug("Header -> tok_cocoa_prefix tok_identifier");
363
- if (g_parse_mode == PROGRAM) {
364
- g_program->set_namespace("cocoa", $2);
365
- }
366
- }
367
- /* TODO(dreiss): Get rid of this once everyone is using the new hotness. */
368
- | tok_xsd_namespace tok_literal
369
- {
370
- pwarning(1, "'xsd_namespace' is deprecated. Use 'namespace xsd' instead");
371
- pdebug("Header -> tok_xsd_namespace tok_literal");
372
- if (g_parse_mode == PROGRAM) {
373
- g_program->set_namespace("cocoa", $2);
374
- }
375
- }
376
- /* TODO(dreiss): Get rid of this once everyone is using the new hotness. */
377
- | tok_csharp_namespace tok_identifier
378
- {
379
- pwarning(1, "'csharp_namespace' is deprecated. Use 'namespace csharp' instead");
380
- pdebug("Header -> tok_csharp_namespace tok_identifier");
381
- if (g_parse_mode == PROGRAM) {
382
- g_program->set_namespace("csharp", $2);
383
- }
384
- }
385
-
386
- Include:
387
- tok_include tok_literal
388
- {
389
- pdebug("Include -> tok_include tok_literal");
390
- if (g_parse_mode == INCLUDES) {
391
- std::string path = include_file(std::string($2));
392
- if (!path.empty()) {
393
- g_program->add_include(path, std::string($2));
394
- }
395
- }
396
- }
397
-
398
- DefinitionList:
399
- DefinitionList CaptureDocText Definition
400
- {
401
- pdebug("DefinitionList -> DefinitionList Definition");
402
- if ($2 != NULL && $3 != NULL) {
403
- $3->set_doc($2);
404
- }
405
- }
406
- |
407
- {
408
- pdebug("DefinitionList -> ");
409
- }
410
-
411
- Definition:
412
- Const
413
- {
414
- pdebug("Definition -> Const");
415
- if (g_parse_mode == PROGRAM) {
416
- g_program->add_const($1);
417
- }
418
- $$ = $1;
419
- }
420
- | TypeDefinition
421
- {
422
- pdebug("Definition -> TypeDefinition");
423
- if (g_parse_mode == PROGRAM) {
424
- g_scope->add_type($1->get_name(), $1);
425
- if (g_parent_scope != NULL) {
426
- g_parent_scope->add_type(g_parent_prefix + $1->get_name(), $1);
427
- }
428
- }
429
- $$ = $1;
430
- }
431
- | Service
432
- {
433
- pdebug("Definition -> Service");
434
- if (g_parse_mode == PROGRAM) {
435
- g_scope->add_service($1->get_name(), $1);
436
- if (g_parent_scope != NULL) {
437
- g_parent_scope->add_service(g_parent_prefix + $1->get_name(), $1);
438
- }
439
- g_program->add_service($1);
440
- }
441
- $$ = $1;
442
- }
443
-
444
- TypeDefinition:
445
- Typedef
446
- {
447
- pdebug("TypeDefinition -> Typedef");
448
- if (g_parse_mode == PROGRAM) {
449
- g_program->add_typedef($1);
450
- }
451
- }
452
- | Enum
453
- {
454
- pdebug("TypeDefinition -> Enum");
455
- if (g_parse_mode == PROGRAM) {
456
- g_program->add_enum($1);
457
- }
458
- }
459
- | Senum
460
- {
461
- pdebug("TypeDefinition -> Senum");
462
- if (g_parse_mode == PROGRAM) {
463
- g_program->add_typedef($1);
464
- }
465
- }
466
- | Struct
467
- {
468
- pdebug("TypeDefinition -> Struct");
469
- if (g_parse_mode == PROGRAM) {
470
- g_program->add_struct($1);
471
- }
472
- }
473
- | Xception
474
- {
475
- pdebug("TypeDefinition -> Xception");
476
- if (g_parse_mode == PROGRAM) {
477
- g_program->add_xception($1);
478
- }
479
- }
480
-
481
- Typedef:
482
- tok_typedef DefinitionType tok_identifier
483
- {
484
- pdebug("TypeDef -> tok_typedef DefinitionType tok_identifier");
485
- t_typedef *td = new t_typedef(g_program, $2, $3);
486
- $$ = td;
487
- }
488
-
489
- CommaOrSemicolonOptional:
490
- ','
491
- {}
492
- | ';'
493
- {}
494
- |
495
- {}
496
-
497
- Enum:
498
- tok_enum tok_identifier '{' EnumDefList '}'
499
- {
500
- pdebug("Enum -> tok_enum tok_identifier { EnumDefList }");
501
- $$ = $4;
502
- $$->set_name($2);
503
- }
504
-
505
- EnumDefList:
506
- EnumDefList EnumDef
507
- {
508
- pdebug("EnumDefList -> EnumDefList EnumDef");
509
- $$ = $1;
510
- $$->append($2);
511
- }
512
- |
513
- {
514
- pdebug("EnumDefList -> ");
515
- $$ = new t_enum(g_program);
516
- }
517
-
518
- EnumDef:
519
- CaptureDocText tok_identifier '=' tok_int_constant CommaOrSemicolonOptional
520
- {
521
- pdebug("EnumDef -> tok_identifier = tok_int_constant");
522
- if ($4 < 0) {
523
- pwarning(1, "Negative value supplied for enum %s.\n", $2);
524
- }
525
- if ($4 > INT_MAX) {
526
- pwarning(1, "64-bit value supplied for enum %s.\n", $2);
527
- }
528
- $$ = new t_enum_value($2, $4);
529
- if ($1 != NULL) {
530
- $$->set_doc($1);
531
- }
532
- if (g_parse_mode == PROGRAM) {
533
- g_scope->add_constant($2, new t_const(g_type_i32, $2, new t_const_value($4)));
534
- if (g_parent_scope != NULL) {
535
- g_parent_scope->add_constant(g_parent_prefix + $2, new t_const(g_type_i32, $2, new t_const_value($4)));
536
- }
537
- }
538
- }
539
- |
540
- CaptureDocText tok_identifier CommaOrSemicolonOptional
541
- {
542
- pdebug("EnumDef -> tok_identifier");
543
- $$ = new t_enum_value($2);
544
- if ($1 != NULL) {
545
- $$->set_doc($1);
546
- }
547
- }
548
-
549
- Senum:
550
- tok_senum tok_identifier '{' SenumDefList '}'
551
- {
552
- pdebug("Senum -> tok_senum tok_identifier { SenumDefList }");
553
- $$ = new t_typedef(g_program, $4, $2);
554
- }
555
-
556
- SenumDefList:
557
- SenumDefList SenumDef
558
- {
559
- pdebug("SenumDefList -> SenumDefList SenumDef");
560
- $$ = $1;
561
- $$->add_string_enum_val($2);
562
- }
563
- |
564
- {
565
- pdebug("SenumDefList -> ");
566
- $$ = new t_base_type("string", t_base_type::TYPE_STRING);
567
- $$->set_string_enum(true);
568
- }
569
-
570
- SenumDef:
571
- tok_literal CommaOrSemicolonOptional
572
- {
573
- pdebug("SenumDef -> tok_literal");
574
- $$ = $1;
575
- }
576
-
577
- Const:
578
- tok_const FieldType tok_identifier '=' ConstValue CommaOrSemicolonOptional
579
- {
580
- pdebug("Const -> tok_const FieldType tok_identifier = ConstValue");
581
- if (g_parse_mode == PROGRAM) {
582
- $$ = new t_const($2, $3, $5);
583
- validate_const_type($$);
584
-
585
- g_scope->add_constant($3, $$);
586
- if (g_parent_scope != NULL) {
587
- g_parent_scope->add_constant(g_parent_prefix + $3, $$);
588
- }
589
-
590
- } else {
591
- $$ = NULL;
592
- }
593
- }
594
-
595
- ConstValue:
596
- tok_int_constant
597
- {
598
- pdebug("ConstValue => tok_int_constant");
599
- $$ = new t_const_value();
600
- $$->set_integer($1);
601
- if ($1 < INT32_MIN || $1 > INT32_MAX) {
602
- pwarning(1, "64-bit constant \"%"PRIi64"\" may not work in all languages.\n", $1);
603
- }
604
- }
605
- | tok_dub_constant
606
- {
607
- pdebug("ConstValue => tok_dub_constant");
608
- $$ = new t_const_value();
609
- $$->set_double($1);
610
- }
611
- | tok_literal
612
- {
613
- pdebug("ConstValue => tok_literal");
614
- $$ = new t_const_value($1);
615
- }
616
- | tok_identifier
617
- {
618
- pdebug("ConstValue => tok_identifier");
619
- t_const* constant = g_scope->get_constant($1);
620
- if (constant != NULL) {
621
- $$ = constant->get_value();
622
- } else {
623
- if (g_parse_mode == PROGRAM) {
624
- pwarning(1, "Constant strings should be quoted: %s\n", $1);
625
- }
626
- $$ = new t_const_value($1);
627
- }
628
- }
629
- | ConstList
630
- {
631
- pdebug("ConstValue => ConstList");
632
- $$ = $1;
633
- }
634
- | ConstMap
635
- {
636
- pdebug("ConstValue => ConstMap");
637
- $$ = $1;
638
- }
639
-
640
- ConstList:
641
- '[' ConstListContents ']'
642
- {
643
- pdebug("ConstList => [ ConstListContents ]");
644
- $$ = $2;
645
- }
646
-
647
- ConstListContents:
648
- ConstListContents ConstValue CommaOrSemicolonOptional
649
- {
650
- pdebug("ConstListContents => ConstListContents ConstValue CommaOrSemicolonOptional");
651
- $$ = $1;
652
- $$->add_list($2);
653
- }
654
- |
655
- {
656
- pdebug("ConstListContents =>");
657
- $$ = new t_const_value();
658
- $$->set_list();
659
- }
660
-
661
- ConstMap:
662
- '{' ConstMapContents '}'
663
- {
664
- pdebug("ConstMap => { ConstMapContents }");
665
- $$ = $2;
666
- }
667
-
668
- ConstMapContents:
669
- ConstMapContents ConstValue ':' ConstValue CommaOrSemicolonOptional
670
- {
671
- pdebug("ConstMapContents => ConstMapContents ConstValue CommaOrSemicolonOptional");
672
- $$ = $1;
673
- $$->add_map($2, $4);
674
- }
675
- |
676
- {
677
- pdebug("ConstMapContents =>");
678
- $$ = new t_const_value();
679
- $$->set_map();
680
- }
681
-
682
- Struct:
683
- tok_struct tok_identifier XsdAll '{' FieldList '}' TypeAnnotations
684
- {
685
- pdebug("Struct -> tok_struct tok_identifier { FieldList }");
686
- $5->set_xsd_all($3);
687
- $$ = $5;
688
- $$->set_name($2);
689
- if ($7 != NULL) {
690
- $$->annotations_ = $7->annotations_;
691
- delete $7;
692
- }
693
- }
694
-
695
- XsdAll:
696
- tok_xsd_all
697
- {
698
- $$ = true;
699
- }
700
- |
701
- {
702
- $$ = false;
703
- }
704
-
705
- XsdOptional:
706
- tok_xsd_optional
707
- {
708
- $$ = true;
709
- }
710
- |
711
- {
712
- $$ = false;
713
- }
714
-
715
- XsdNillable:
716
- tok_xsd_nillable
717
- {
718
- $$ = true;
719
- }
720
- |
721
- {
722
- $$ = false;
723
- }
724
-
725
- XsdAttributes:
726
- tok_xsd_attrs '{' FieldList '}'
727
- {
728
- $$ = $3;
729
- }
730
- |
731
- {
732
- $$ = NULL;
733
- }
734
-
735
- Xception:
736
- tok_xception tok_identifier '{' FieldList '}'
737
- {
738
- pdebug("Xception -> tok_xception tok_identifier { FieldList }");
739
- $4->set_name($2);
740
- $4->set_xception(true);
741
- $$ = $4;
742
- }
743
-
744
- Service:
745
- tok_service tok_identifier Extends '{' FlagArgs FunctionList UnflagArgs '}'
746
- {
747
- pdebug("Service -> tok_service tok_identifier { FunctionList }");
748
- $$ = $6;
749
- $$->set_name($2);
750
- $$->set_extends($3);
751
- }
752
-
753
- FlagArgs:
754
- {
755
- g_arglist = 1;
756
- }
757
-
758
- UnflagArgs:
759
- {
760
- g_arglist = 0;
761
- }
762
-
763
- Extends:
764
- tok_extends tok_identifier
765
- {
766
- pdebug("Extends -> tok_extends tok_identifier");
767
- $$ = NULL;
768
- if (g_parse_mode == PROGRAM) {
769
- $$ = g_scope->get_service($2);
770
- if ($$ == NULL) {
771
- yyerror("Service \"%s\" has not been defined.", $2);
772
- exit(1);
773
- }
774
- }
775
- }
776
- |
777
- {
778
- $$ = NULL;
779
- }
780
-
781
- FunctionList:
782
- FunctionList Function
783
- {
784
- pdebug("FunctionList -> FunctionList Function");
785
- $$ = $1;
786
- $1->add_function($2);
787
- }
788
- |
789
- {
790
- pdebug("FunctionList -> ");
791
- $$ = new t_service(g_program);
792
- }
793
-
794
- Function:
795
- CaptureDocText Oneway FunctionType tok_identifier '(' FieldList ')' Throws CommaOrSemicolonOptional
796
- {
797
- $6->set_name(std::string($4) + "_args");
798
- $$ = new t_function($3, $4, $6, $8, $2);
799
- if ($1 != NULL) {
800
- $$->set_doc($1);
801
- }
802
- }
803
-
804
- Oneway:
805
- tok_oneway
806
- {
807
- $$ = true;
808
- }
809
- |
810
- {
811
- $$ = false;
812
- }
813
-
814
- Throws:
815
- tok_throws '(' FieldList ')'
816
- {
817
- pdebug("Throws -> tok_throws ( FieldList )");
818
- $$ = $3;
819
- if (g_parse_mode == PROGRAM && !validate_throws($$)) {
820
- yyerror("Throws clause may not contain non-exception types");
821
- exit(1);
822
- }
823
- }
824
- |
825
- {
826
- $$ = new t_struct(g_program);
827
- }
828
-
829
- FieldList:
830
- FieldList Field
831
- {
832
- pdebug("FieldList -> FieldList , Field");
833
- $$ = $1;
834
- if (!($$->append($2))) {
835
- yyerror("Field identifier %d for \"%s\" has already been used", $2->get_key(), $2->get_name().c_str());
836
- exit(1);
837
- }
838
- }
839
- |
840
- {
841
- pdebug("FieldList -> ");
842
- y_field_val = -1;
843
- $$ = new t_struct(g_program);
844
- }
845
-
846
- Field:
847
- CaptureDocText FieldIdentifier FieldRequiredness FieldType tok_identifier FieldValue XsdOptional XsdNillable XsdAttributes CommaOrSemicolonOptional
848
- {
849
- pdebug("tok_int_constant : Field -> FieldType tok_identifier");
850
- if ($2 < 0) {
851
- pwarning(1, "No field key specified for %s, resulting protocol may have conflicts or not be backwards compatible!\n", $5);
852
- if (g_strict >= 192) {
853
- yyerror("Implicit field keys are deprecated and not allowed with -strict");
854
- exit(1);
855
- }
856
- }
857
- $$ = new t_field($4, $5, $2);
858
- $$->set_req($3);
859
- if ($6 != NULL) {
860
- validate_field_value($$, $6);
861
- $$->set_value($6);
862
- }
863
- $$->set_xsd_optional($7);
864
- $$->set_xsd_nillable($8);
865
- if ($1 != NULL) {
866
- $$->set_doc($1);
867
- }
868
- if ($9 != NULL) {
869
- $$->set_xsd_attrs($9);
870
- }
871
- }
872
-
873
- FieldIdentifier:
874
- tok_int_constant ':'
875
- {
876
- if ($1 <= 0) {
877
- pwarning(1, "Nonpositive value (%d) not allowed as a field key.\n", $1);
878
- $1 = y_field_val--;
879
- }
880
- $$ = $1;
881
- }
882
- |
883
- {
884
- $$ = y_field_val--;
885
- }
886
-
887
- FieldRequiredness:
888
- tok_required
889
- {
890
- if (g_arglist) {
891
- if (g_parse_mode == PROGRAM) {
892
- pwarning(1, "required keyword is ignored in argument lists.\n");
893
- }
894
- $$ = t_field::T_OPT_IN_REQ_OUT;
895
- } else {
896
- $$ = t_field::T_REQUIRED;
897
- }
898
- }
899
- | tok_optional
900
- {
901
- if (g_arglist) {
902
- if (g_parse_mode == PROGRAM) {
903
- pwarning(1, "optional keyword is ignored in argument lists.\n");
904
- }
905
- $$ = t_field::T_OPT_IN_REQ_OUT;
906
- } else {
907
- $$ = t_field::T_OPTIONAL;
908
- }
909
- }
910
- |
911
- {
912
- $$ = t_field::T_OPT_IN_REQ_OUT;
913
- }
914
-
915
- FieldValue:
916
- '=' ConstValue
917
- {
918
- if (g_parse_mode == PROGRAM) {
919
- $$ = $2;
920
- } else {
921
- $$ = NULL;
922
- }
923
- }
924
- |
925
- {
926
- $$ = NULL;
927
- }
928
-
929
- DefinitionType:
930
- BaseType
931
- {
932
- pdebug("DefinitionType -> BaseType");
933
- $$ = $1;
934
- }
935
- | ContainerType
936
- {
937
- pdebug("DefinitionType -> ContainerType");
938
- $$ = $1;
939
- }
940
-
941
- FunctionType:
942
- FieldType
943
- {
944
- pdebug("FunctionType -> FieldType");
945
- $$ = $1;
946
- }
947
- | tok_void
948
- {
949
- pdebug("FunctionType -> tok_void");
950
- $$ = g_type_void;
951
- }
952
-
953
- FieldType:
954
- tok_identifier
955
- {
956
- pdebug("FieldType -> tok_identifier");
957
- if (g_parse_mode == INCLUDES) {
958
- // Ignore identifiers in include mode
959
- $$ = NULL;
960
- } else {
961
- // Lookup the identifier in the current scope
962
- $$ = g_scope->get_type($1);
963
- if ($$ == NULL) {
964
- yyerror("Type \"%s\" has not been defined.", $1);
965
- exit(1);
966
- }
967
- }
968
- }
969
- | BaseType
970
- {
971
- pdebug("FieldType -> BaseType");
972
- $$ = $1;
973
- }
974
- | ContainerType
975
- {
976
- pdebug("FieldType -> ContainerType");
977
- $$ = $1;
978
- }
979
-
980
- BaseType: SimpleBaseType TypeAnnotations
981
- {
982
- pdebug("BaseType -> SimpleBaseType TypeAnnotations");
983
- if ($2 != NULL) {
984
- $$ = new t_base_type(*static_cast<t_base_type*>($1));
985
- $$->annotations_ = $2->annotations_;
986
- delete $2;
987
- } else {
988
- $$ = $1;
989
- }
990
- }
991
-
992
- SimpleBaseType:
993
- tok_string
994
- {
995
- pdebug("BaseType -> tok_string");
996
- $$ = g_type_string;
997
- }
998
- | tok_binary
999
- {
1000
- pdebug("BaseType -> tok_binary");
1001
- $$ = g_type_binary;
1002
- }
1003
- | tok_slist
1004
- {
1005
- pdebug("BaseType -> tok_slist");
1006
- $$ = g_type_slist;
1007
- }
1008
- | tok_bool
1009
- {
1010
- pdebug("BaseType -> tok_bool");
1011
- $$ = g_type_bool;
1012
- }
1013
- | tok_byte
1014
- {
1015
- pdebug("BaseType -> tok_byte");
1016
- $$ = g_type_byte;
1017
- }
1018
- | tok_i16
1019
- {
1020
- pdebug("BaseType -> tok_i16");
1021
- $$ = g_type_i16;
1022
- }
1023
- | tok_i32
1024
- {
1025
- pdebug("BaseType -> tok_i32");
1026
- $$ = g_type_i32;
1027
- }
1028
- | tok_i64
1029
- {
1030
- pdebug("BaseType -> tok_i64");
1031
- $$ = g_type_i64;
1032
- }
1033
- | tok_double
1034
- {
1035
- pdebug("BaseType -> tok_double");
1036
- $$ = g_type_double;
1037
- }
1038
-
1039
- ContainerType: SimpleContainerType TypeAnnotations
1040
- {
1041
- pdebug("ContainerType -> SimpleContainerType TypeAnnotations");
1042
- $$ = $1;
1043
- if ($2 != NULL) {
1044
- $$->annotations_ = $2->annotations_;
1045
- delete $2;
1046
- }
1047
- }
1048
-
1049
- SimpleContainerType:
1050
- MapType
1051
- {
1052
- pdebug("SimpleContainerType -> MapType");
1053
- $$ = $1;
1054
- }
1055
- | SetType
1056
- {
1057
- pdebug("SimpleContainerType -> SetType");
1058
- $$ = $1;
1059
- }
1060
- | ListType
1061
- {
1062
- pdebug("SimpleContainerType -> ListType");
1063
- $$ = $1;
1064
- }
1065
-
1066
- MapType:
1067
- tok_map CppType '<' FieldType ',' FieldType '>'
1068
- {
1069
- pdebug("MapType -> tok_map <FieldType, FieldType>");
1070
- $$ = new t_map($4, $6);
1071
- if ($2 != NULL) {
1072
- ((t_container*)$$)->set_cpp_name(std::string($2));
1073
- }
1074
- }
1075
-
1076
- SetType:
1077
- tok_set CppType '<' FieldType '>'
1078
- {
1079
- pdebug("SetType -> tok_set<FieldType>");
1080
- $$ = new t_set($4);
1081
- if ($2 != NULL) {
1082
- ((t_container*)$$)->set_cpp_name(std::string($2));
1083
- }
1084
- }
1085
-
1086
- ListType:
1087
- tok_list '<' FieldType '>' CppType
1088
- {
1089
- pdebug("ListType -> tok_list<FieldType>");
1090
- $$ = new t_list($3);
1091
- if ($5 != NULL) {
1092
- ((t_container*)$$)->set_cpp_name(std::string($5));
1093
- }
1094
- }
1095
-
1096
- CppType:
1097
- tok_cpp_type tok_literal
1098
- {
1099
- $$ = $2;
1100
- }
1101
- |
1102
- {
1103
- $$ = NULL;
1104
- }
1105
-
1106
- TypeAnnotations:
1107
- '(' TypeAnnotationList ')'
1108
- {
1109
- pdebug("TypeAnnotations -> ( TypeAnnotationList )");
1110
- $$ = $2;
1111
- }
1112
- |
1113
- {
1114
- $$ = NULL;
1115
- }
1116
-
1117
- TypeAnnotationList:
1118
- TypeAnnotationList TypeAnnotation
1119
- {
1120
- pdebug("TypeAnnotationList -> TypeAnnotationList , TypeAnnotation");
1121
- $$ = $1;
1122
- $$->annotations_[$2->key] = $2->val;
1123
- delete $2;
1124
- }
1125
- |
1126
- {
1127
- /* Just use a dummy structure to hold the annotations. */
1128
- $$ = new t_struct(g_program);
1129
- }
1130
-
1131
- TypeAnnotation:
1132
- tok_identifier '=' tok_literal CommaOrSemicolonOptional
1133
- {
1134
- pdebug("TypeAnnotation -> tok_identifier = tok_literal");
1135
- $$ = new t_annotation;
1136
- $$->key = $1;
1137
- $$->val = $3;
1138
- }
1139
-
1140
- %%