auser-poolparty 1.3.1 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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
- %%