auser-poolparty 1.3.0 → 1.3.1

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 (353) hide show
  1. data/VERSION.yml +1 -1
  2. data/examples/monitored_cloud.rb +1 -1
  3. data/examples/thrift/thrift_example.rb +1 -1
  4. data/lib/proto/command_interface_handler.rb +1 -1
  5. data/vendor/gems/thrift/CHANGES +35 -0
  6. data/vendor/gems/thrift/CONTRIBUTORS +77 -0
  7. data/vendor/gems/thrift/DISCLAIMER +6 -0
  8. data/vendor/gems/thrift/LICENSE +202 -0
  9. data/vendor/gems/thrift/Makefile.am +28 -0
  10. data/vendor/gems/thrift/NEWS +79 -0
  11. data/vendor/gems/thrift/NOTICE +26 -0
  12. data/vendor/gems/thrift/README +137 -0
  13. data/vendor/gems/thrift/aclocal/ax_boost_base.m4 +198 -0
  14. data/vendor/gems/thrift/aclocal/ax_javac_and_java.m4 +107 -0
  15. data/vendor/gems/thrift/aclocal/ax_lib_event.m4 +194 -0
  16. data/vendor/gems/thrift/aclocal/ax_lib_zlib.m4 +173 -0
  17. data/vendor/gems/thrift/aclocal/ax_signed_right_shift.m4 +127 -0
  18. data/vendor/gems/thrift/aclocal/ax_thrift_internal.m4 +39 -0
  19. data/vendor/gems/thrift/bootstrap.sh +35 -0
  20. data/vendor/gems/thrift/cleanup.sh +58 -0
  21. data/vendor/gems/thrift/compiler/cpp/Makefile.am +136 -0
  22. data/vendor/gems/thrift/compiler/cpp/README +39 -0
  23. data/vendor/gems/thrift/compiler/cpp/src/generate/t_cocoa_generator.cc +2331 -0
  24. data/vendor/gems/thrift/compiler/cpp/src/generate/t_cpp_generator.cc +3003 -0
  25. data/vendor/gems/thrift/compiler/cpp/src/generate/t_csharp_generator.cc +1700 -0
  26. data/vendor/gems/thrift/compiler/cpp/src/generate/t_erl_generator.cc +932 -0
  27. data/vendor/gems/thrift/compiler/cpp/src/generate/t_generator.cc +173 -0
  28. data/vendor/gems/thrift/compiler/cpp/src/generate/t_generator.h +321 -0
  29. data/vendor/gems/thrift/compiler/cpp/src/generate/t_hs_generator.cc +1445 -0
  30. data/vendor/gems/thrift/compiler/cpp/src/generate/t_html_generator.cc +637 -0
  31. data/vendor/gems/thrift/compiler/cpp/src/generate/t_java_generator.cc +3069 -0
  32. data/vendor/gems/thrift/compiler/cpp/src/generate/t_ocaml_generator.cc +1673 -0
  33. data/vendor/gems/thrift/compiler/cpp/src/generate/t_oop_generator.h +77 -0
  34. data/vendor/gems/thrift/compiler/cpp/src/generate/t_perl_generator.cc +1812 -0
  35. data/vendor/gems/thrift/compiler/cpp/src/generate/t_php_generator.cc +2281 -0
  36. data/vendor/gems/thrift/compiler/cpp/src/generate/t_py_generator.cc +2310 -0
  37. data/vendor/gems/thrift/compiler/cpp/src/generate/t_rb_generator.cc +1114 -0
  38. data/vendor/gems/thrift/compiler/cpp/src/generate/t_st_generator.cc +1071 -0
  39. data/vendor/gems/thrift/compiler/cpp/src/generate/t_xsd_generator.cc +354 -0
  40. data/vendor/gems/thrift/compiler/cpp/src/globals.h +117 -0
  41. data/vendor/gems/thrift/compiler/cpp/src/main.cc +1207 -0
  42. data/vendor/gems/thrift/compiler/cpp/src/main.h +103 -0
  43. data/vendor/gems/thrift/compiler/cpp/src/md5.c +381 -0
  44. data/vendor/gems/thrift/compiler/cpp/src/md5.h +91 -0
  45. data/vendor/gems/thrift/compiler/cpp/src/parse/t_base_type.h +137 -0
  46. data/vendor/gems/thrift/compiler/cpp/src/parse/t_const.h +59 -0
  47. data/vendor/gems/thrift/compiler/cpp/src/parse/t_const_value.h +121 -0
  48. data/vendor/gems/thrift/compiler/cpp/src/parse/t_container.h +56 -0
  49. data/vendor/gems/thrift/compiler/cpp/src/parse/t_doc.h +51 -0
  50. data/vendor/gems/thrift/compiler/cpp/src/parse/t_enum.h +59 -0
  51. data/vendor/gems/thrift/compiler/cpp/src/parse/t_enum_value.h +64 -0
  52. data/vendor/gems/thrift/compiler/cpp/src/parse/t_field.h +150 -0
  53. data/vendor/gems/thrift/compiler/cpp/src/parse/t_function.h +93 -0
  54. data/vendor/gems/thrift/compiler/cpp/src/parse/t_list.h +56 -0
  55. data/vendor/gems/thrift/compiler/cpp/src/parse/t_map.h +64 -0
  56. data/vendor/gems/thrift/compiler/cpp/src/parse/t_program.h +223 -0
  57. data/vendor/gems/thrift/compiler/cpp/src/parse/t_scope.h +86 -0
  58. data/vendor/gems/thrift/compiler/cpp/src/parse/t_service.h +68 -0
  59. data/vendor/gems/thrift/compiler/cpp/src/parse/t_set.h +55 -0
  60. data/vendor/gems/thrift/compiler/cpp/src/parse/t_struct.h +127 -0
  61. data/vendor/gems/thrift/compiler/cpp/src/parse/t_type.h +176 -0
  62. data/vendor/gems/thrift/compiler/cpp/src/parse/t_typedef.h +70 -0
  63. data/vendor/gems/thrift/compiler/cpp/src/platform.h +36 -0
  64. data/vendor/gems/thrift/compiler/cpp/src/thriftl.ll +303 -0
  65. data/vendor/gems/thrift/compiler/cpp/src/thrifty.yy +1140 -0
  66. data/vendor/gems/thrift/configure.ac +255 -0
  67. data/vendor/gems/thrift/contrib/fb303/LICENSE +16 -0
  68. data/vendor/gems/thrift/contrib/fb303/Makefile.am +31 -0
  69. data/vendor/gems/thrift/contrib/fb303/README +37 -0
  70. data/vendor/gems/thrift/contrib/fb303/acinclude.m4 +258 -0
  71. data/vendor/gems/thrift/contrib/fb303/aclocal/ax_boost_base.m4 +198 -0
  72. data/vendor/gems/thrift/contrib/fb303/bootstrap.sh +26 -0
  73. data/vendor/gems/thrift/contrib/fb303/configure.ac +115 -0
  74. data/vendor/gems/thrift/contrib/fb303/cpp/FacebookBase.cpp +124 -0
  75. data/vendor/gems/thrift/contrib/fb303/cpp/FacebookBase.h +103 -0
  76. data/vendor/gems/thrift/contrib/fb303/cpp/Makefile.am +84 -0
  77. data/vendor/gems/thrift/contrib/fb303/cpp/ServiceTracker.cpp +481 -0
  78. data/vendor/gems/thrift/contrib/fb303/cpp/ServiceTracker.h +215 -0
  79. data/vendor/gems/thrift/contrib/fb303/global_footer.mk +21 -0
  80. data/vendor/gems/thrift/contrib/fb303/global_header.mk +38 -0
  81. data/vendor/gems/thrift/contrib/fb303/if/fb303.thrift +112 -0
  82. data/vendor/gems/thrift/contrib/fb303/java/FacebookBase.java +103 -0
  83. data/vendor/gems/thrift/contrib/fb303/java/build.xml +84 -0
  84. data/vendor/gems/thrift/contrib/fb303/php/FacebookBase.php +89 -0
  85. data/vendor/gems/thrift/contrib/fb303/py/Makefile.am +44 -0
  86. data/vendor/gems/thrift/contrib/fb303/py/fb303/FacebookBase.py +82 -0
  87. data/vendor/gems/thrift/contrib/fb303/py/fb303_scripts/__init__.py +20 -0
  88. data/vendor/gems/thrift/contrib/fb303/py/fb303_scripts/fb303_simple_mgmt.py +195 -0
  89. data/vendor/gems/thrift/contrib/fb303/py/setup.py +27 -0
  90. data/vendor/gems/thrift/contrib/thrift.el +126 -0
  91. data/vendor/gems/thrift/contrib/thrift.spec +206 -0
  92. data/vendor/gems/thrift/contrib/thrift.vim +91 -0
  93. data/vendor/gems/thrift/contrib/thrift_dump.cpp +91 -0
  94. data/vendor/gems/thrift/doc/lgpl-2.1.txt +504 -0
  95. data/vendor/gems/thrift/doc/otp-base-license.txt +20 -0
  96. data/vendor/gems/thrift/doc/thrift.bnf +96 -0
  97. data/vendor/gems/thrift/doc/thrift.tex +1057 -0
  98. data/vendor/gems/thrift/lib/Makefile.am +55 -0
  99. data/vendor/gems/thrift/lib/cocoa/README +21 -0
  100. data/vendor/gems/thrift/lib/cocoa/src/TApplicationException.h +44 -0
  101. data/vendor/gems/thrift/lib/cocoa/src/TApplicationException.m +130 -0
  102. data/vendor/gems/thrift/lib/cocoa/src/TException.h +34 -0
  103. data/vendor/gems/thrift/lib/cocoa/src/TException.m +64 -0
  104. data/vendor/gems/thrift/lib/cocoa/src/TProcessor.h +29 -0
  105. data/vendor/gems/thrift/lib/cocoa/src/TProcessorFactory.h +27 -0
  106. data/vendor/gems/thrift/lib/cocoa/src/TSharedProcessorFactory.h +27 -0
  107. data/vendor/gems/thrift/lib/cocoa/src/TSharedProcessorFactory.m +51 -0
  108. data/vendor/gems/thrift/lib/cocoa/src/protocol/TBinaryProtocol.h +51 -0
  109. data/vendor/gems/thrift/lib/cocoa/src/protocol/TBinaryProtocol.m +477 -0
  110. data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocol.h +148 -0
  111. data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolException.h +25 -0
  112. data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolException.m +23 -0
  113. data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolFactory.h +29 -0
  114. data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolUtil.h +29 -0
  115. data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolUtil.m +104 -0
  116. data/vendor/gems/thrift/lib/cocoa/src/server/TSocketServer.h +50 -0
  117. data/vendor/gems/thrift/lib/cocoa/src/server/TSocketServer.m +153 -0
  118. data/vendor/gems/thrift/lib/cocoa/src/transport/THTTPClient.h +42 -0
  119. data/vendor/gems/thrift/lib/cocoa/src/transport/THTTPClient.m +159 -0
  120. data/vendor/gems/thrift/lib/cocoa/src/transport/TNSFileHandleTransport.h +35 -0
  121. data/vendor/gems/thrift/lib/cocoa/src/transport/TNSFileHandleTransport.m +91 -0
  122. data/vendor/gems/thrift/lib/cocoa/src/transport/TNSStreamTransport.h +38 -0
  123. data/vendor/gems/thrift/lib/cocoa/src/transport/TNSStreamTransport.m +89 -0
  124. data/vendor/gems/thrift/lib/cocoa/src/transport/TSocketClient.h +32 -0
  125. data/vendor/gems/thrift/lib/cocoa/src/transport/TSocketClient.m +58 -0
  126. data/vendor/gems/thrift/lib/cocoa/src/transport/TTransport.h +36 -0
  127. data/vendor/gems/thrift/lib/cocoa/src/transport/TTransportException.h +30 -0
  128. data/vendor/gems/thrift/lib/cocoa/src/transport/TTransportException.m +43 -0
  129. data/vendor/gems/thrift/lib/cpp/Makefile.am +158 -0
  130. data/vendor/gems/thrift/lib/cpp/README +67 -0
  131. data/vendor/gems/thrift/lib/cpp/src/TLogging.h +163 -0
  132. data/vendor/gems/thrift/lib/cpp/src/TProcessor.h +53 -0
  133. data/vendor/gems/thrift/lib/cpp/src/TReflectionLocal.h +96 -0
  134. data/vendor/gems/thrift/lib/cpp/src/Thrift.cpp +148 -0
  135. data/vendor/gems/thrift/lib/cpp/src/Thrift.h +191 -0
  136. data/vendor/gems/thrift/lib/cpp/src/concurrency/Exception.h +60 -0
  137. data/vendor/gems/thrift/lib/cpp/src/concurrency/FunctionRunner.h +77 -0
  138. data/vendor/gems/thrift/lib/cpp/src/concurrency/Monitor.cpp +137 -0
  139. data/vendor/gems/thrift/lib/cpp/src/concurrency/Monitor.h +84 -0
  140. data/vendor/gems/thrift/lib/cpp/src/concurrency/Mutex.cpp +160 -0
  141. data/vendor/gems/thrift/lib/cpp/src/concurrency/Mutex.h +114 -0
  142. data/vendor/gems/thrift/lib/cpp/src/concurrency/PosixThreadFactory.cpp +314 -0
  143. data/vendor/gems/thrift/lib/cpp/src/concurrency/PosixThreadFactory.h +130 -0
  144. data/vendor/gems/thrift/lib/cpp/src/concurrency/Thread.h +125 -0
  145. data/vendor/gems/thrift/lib/cpp/src/concurrency/ThreadManager.cpp +493 -0
  146. data/vendor/gems/thrift/lib/cpp/src/concurrency/ThreadManager.h +169 -0
  147. data/vendor/gems/thrift/lib/cpp/src/concurrency/TimerManager.cpp +284 -0
  148. data/vendor/gems/thrift/lib/cpp/src/concurrency/TimerManager.h +122 -0
  149. data/vendor/gems/thrift/lib/cpp/src/concurrency/Util.cpp +55 -0
  150. data/vendor/gems/thrift/lib/cpp/src/concurrency/Util.h +100 -0
  151. data/vendor/gems/thrift/lib/cpp/src/concurrency/test/Tests.cpp +155 -0
  152. data/vendor/gems/thrift/lib/cpp/src/concurrency/test/ThreadFactoryTests.h +354 -0
  153. data/vendor/gems/thrift/lib/cpp/src/concurrency/test/ThreadManagerTests.h +379 -0
  154. data/vendor/gems/thrift/lib/cpp/src/concurrency/test/TimerManagerTests.h +155 -0
  155. data/vendor/gems/thrift/lib/cpp/src/processor/PeekProcessor.cpp +122 -0
  156. data/vendor/gems/thrift/lib/cpp/src/processor/PeekProcessor.h +77 -0
  157. data/vendor/gems/thrift/lib/cpp/src/processor/StatsProcessor.h +264 -0
  158. data/vendor/gems/thrift/lib/cpp/src/protocol/TBase64Utils.cpp +79 -0
  159. data/vendor/gems/thrift/lib/cpp/src/protocol/TBase64Utils.h +42 -0
  160. data/vendor/gems/thrift/lib/cpp/src/protocol/TBinaryProtocol.cpp +394 -0
  161. data/vendor/gems/thrift/lib/cpp/src/protocol/TBinaryProtocol.h +254 -0
  162. data/vendor/gems/thrift/lib/cpp/src/protocol/TCompactProtocol.cpp +736 -0
  163. data/vendor/gems/thrift/lib/cpp/src/protocol/TCompactProtocol.h +279 -0
  164. data/vendor/gems/thrift/lib/cpp/src/protocol/TDebugProtocol.cpp +346 -0
  165. data/vendor/gems/thrift/lib/cpp/src/protocol/TDebugProtocol.h +225 -0
  166. data/vendor/gems/thrift/lib/cpp/src/protocol/TDenseProtocol.cpp +762 -0
  167. data/vendor/gems/thrift/lib/cpp/src/protocol/TDenseProtocol.h +253 -0
  168. data/vendor/gems/thrift/lib/cpp/src/protocol/TJSONProtocol.cpp +998 -0
  169. data/vendor/gems/thrift/lib/cpp/src/protocol/TJSONProtocol.h +340 -0
  170. data/vendor/gems/thrift/lib/cpp/src/protocol/TOneWayProtocol.h +304 -0
  171. data/vendor/gems/thrift/lib/cpp/src/protocol/TProtocol.h +438 -0
  172. data/vendor/gems/thrift/lib/cpp/src/protocol/TProtocolException.h +104 -0
  173. data/vendor/gems/thrift/lib/cpp/src/protocol/TProtocolTap.h +187 -0
  174. data/vendor/gems/thrift/lib/cpp/src/server/TNonblockingServer.cpp +750 -0
  175. data/vendor/gems/thrift/lib/cpp/src/server/TNonblockingServer.h +435 -0
  176. data/vendor/gems/thrift/lib/cpp/src/server/TServer.cpp +38 -0
  177. data/vendor/gems/thrift/lib/cpp/src/server/TServer.h +213 -0
  178. data/vendor/gems/thrift/lib/cpp/src/server/TSimpleServer.cpp +118 -0
  179. data/vendor/gems/thrift/lib/cpp/src/server/TSimpleServer.h +70 -0
  180. data/vendor/gems/thrift/lib/cpp/src/server/TThreadPoolServer.cpp +217 -0
  181. data/vendor/gems/thrift/lib/cpp/src/server/TThreadPoolServer.h +79 -0
  182. data/vendor/gems/thrift/lib/cpp/src/server/TThreadedServer.cpp +243 -0
  183. data/vendor/gems/thrift/lib/cpp/src/server/TThreadedServer.h +74 -0
  184. data/vendor/gems/thrift/lib/cpp/src/transport/TBufferTransports.cpp +370 -0
  185. data/vendor/gems/thrift/lib/cpp/src/transport/TBufferTransports.h +667 -0
  186. data/vendor/gems/thrift/lib/cpp/src/transport/TFDTransport.cpp +77 -0
  187. data/vendor/gems/thrift/lib/cpp/src/transport/TFDTransport.h +73 -0
  188. data/vendor/gems/thrift/lib/cpp/src/transport/TFileTransport.cpp +953 -0
  189. data/vendor/gems/thrift/lib/cpp/src/transport/TFileTransport.h +442 -0
  190. data/vendor/gems/thrift/lib/cpp/src/transport/THttpClient.cpp +348 -0
  191. data/vendor/gems/thrift/lib/cpp/src/transport/THttpClient.h +111 -0
  192. data/vendor/gems/thrift/lib/cpp/src/transport/TServerSocket.cpp +368 -0
  193. data/vendor/gems/thrift/lib/cpp/src/transport/TServerSocket.h +76 -0
  194. data/vendor/gems/thrift/lib/cpp/src/transport/TServerTransport.h +92 -0
  195. data/vendor/gems/thrift/lib/cpp/src/transport/TShortReadTransport.h +96 -0
  196. data/vendor/gems/thrift/lib/cpp/src/transport/TSimpleFileTransport.cpp +54 -0
  197. data/vendor/gems/thrift/lib/cpp/src/transport/TSimpleFileTransport.h +41 -0
  198. data/vendor/gems/thrift/lib/cpp/src/transport/TSocket.cpp +591 -0
  199. data/vendor/gems/thrift/lib/cpp/src/transport/TSocket.h +242 -0
  200. data/vendor/gems/thrift/lib/cpp/src/transport/TSocketPool.cpp +235 -0
  201. data/vendor/gems/thrift/lib/cpp/src/transport/TSocketPool.h +191 -0
  202. data/vendor/gems/thrift/lib/cpp/src/transport/TTransport.h +224 -0
  203. data/vendor/gems/thrift/lib/cpp/src/transport/TTransportException.cpp +31 -0
  204. data/vendor/gems/thrift/lib/cpp/src/transport/TTransportException.h +117 -0
  205. data/vendor/gems/thrift/lib/cpp/src/transport/TTransportUtils.cpp +178 -0
  206. data/vendor/gems/thrift/lib/cpp/src/transport/TTransportUtils.h +287 -0
  207. data/vendor/gems/thrift/lib/cpp/src/transport/TZlibTransport.cpp +299 -0
  208. data/vendor/gems/thrift/lib/cpp/src/transport/TZlibTransport.h +219 -0
  209. data/vendor/gems/thrift/lib/cpp/thrift-nb.pc.in +30 -0
  210. data/vendor/gems/thrift/lib/cpp/thrift-z.pc.in +30 -0
  211. data/vendor/gems/thrift/lib/cpp/thrift.pc.in +29 -0
  212. data/vendor/gems/thrift/lib/csharp/Makefile.am +70 -0
  213. data/vendor/gems/thrift/lib/csharp/README +26 -0
  214. data/vendor/gems/thrift/lib/csharp/ThriftMSBuildTask/Properties/AssemblyInfo.cs +55 -0
  215. data/vendor/gems/thrift/lib/csharp/ThriftMSBuildTask/ThriftBuild.cs +242 -0
  216. data/vendor/gems/thrift/lib/csharp/ThriftMSBuildTask/ThriftMSBuildTask.csproj +62 -0
  217. data/vendor/gems/thrift/lib/csharp/src/Collections/THashSet.cs +142 -0
  218. data/vendor/gems/thrift/lib/csharp/src/Protocol/TBase.cs +34 -0
  219. data/vendor/gems/thrift/lib/csharp/src/Protocol/TBinaryProtocol.cs +392 -0
  220. data/vendor/gems/thrift/lib/csharp/src/Protocol/TField.cs +58 -0
  221. data/vendor/gems/thrift/lib/csharp/src/Protocol/TList.cs +50 -0
  222. data/vendor/gems/thrift/lib/csharp/src/Protocol/TMap.cs +58 -0
  223. data/vendor/gems/thrift/lib/csharp/src/Protocol/TMessage.cs +58 -0
  224. data/vendor/gems/thrift/lib/csharp/src/Protocol/TMessageType.cs +31 -0
  225. data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocol.cs +87 -0
  226. data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocolException.cs +61 -0
  227. data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocolFactory.cs +29 -0
  228. data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocolUtil.cs +94 -0
  229. data/vendor/gems/thrift/lib/csharp/src/Protocol/TSet.cs +50 -0
  230. data/vendor/gems/thrift/lib/csharp/src/Protocol/TStruct.cs +42 -0
  231. data/vendor/gems/thrift/lib/csharp/src/Protocol/TType.cs +40 -0
  232. data/vendor/gems/thrift/lib/csharp/src/Server/TServer.cs +135 -0
  233. data/vendor/gems/thrift/lib/csharp/src/Server/TSimpleServer.cs +148 -0
  234. data/vendor/gems/thrift/lib/csharp/src/Server/TThreadPoolServer.cs +186 -0
  235. data/vendor/gems/thrift/lib/csharp/src/Server/TThreadedServer.cs +234 -0
  236. data/vendor/gems/thrift/lib/csharp/src/TApplicationException.cs +131 -0
  237. data/vendor/gems/thrift/lib/csharp/src/TProcessor.cs +29 -0
  238. data/vendor/gems/thrift/lib/csharp/src/Thrift.csproj +73 -0
  239. data/vendor/gems/thrift/lib/csharp/src/Thrift.sln +35 -0
  240. data/vendor/gems/thrift/lib/csharp/src/Transport/TBufferedTransport.cs +100 -0
  241. data/vendor/gems/thrift/lib/csharp/src/Transport/TServerSocket.cs +157 -0
  242. data/vendor/gems/thrift/lib/csharp/src/Transport/TServerTransport.cs +39 -0
  243. data/vendor/gems/thrift/lib/csharp/src/Transport/TSocket.cs +144 -0
  244. data/vendor/gems/thrift/lib/csharp/src/Transport/TStreamTransport.cs +103 -0
  245. data/vendor/gems/thrift/lib/csharp/src/Transport/TTransport.cs +66 -0
  246. data/vendor/gems/thrift/lib/csharp/src/Transport/TTransportException.cs +64 -0
  247. data/vendor/gems/thrift/lib/csharp/src/Transport/TTransportFactory.cs +38 -0
  248. data/vendor/gems/thrift/lib/erl/Makefile +37 -0
  249. data/vendor/gems/thrift/lib/erl/README +56 -0
  250. data/vendor/gems/thrift/lib/erl/build/beamver +59 -0
  251. data/vendor/gems/thrift/lib/erl/build/buildtargets.mk +15 -0
  252. data/vendor/gems/thrift/lib/erl/build/colors.mk +24 -0
  253. data/vendor/gems/thrift/lib/erl/build/docs.mk +12 -0
  254. data/vendor/gems/thrift/lib/erl/build/mime.types +98 -0
  255. data/vendor/gems/thrift/lib/erl/build/otp.mk +146 -0
  256. data/vendor/gems/thrift/lib/erl/build/otp_subdir.mk +85 -0
  257. data/vendor/gems/thrift/lib/erl/build/raw_test.mk +29 -0
  258. data/vendor/gems/thrift/lib/erl/include/thrift_constants.hrl +54 -0
  259. data/vendor/gems/thrift/lib/erl/include/thrift_protocol.hrl +31 -0
  260. data/vendor/gems/thrift/lib/erl/src/Makefile +116 -0
  261. data/vendor/gems/thrift/lib/erl/src/test_handler.erl +26 -0
  262. data/vendor/gems/thrift/lib/erl/src/test_service.erl +29 -0
  263. data/vendor/gems/thrift/lib/erl/src/thrift.app.src +44 -0
  264. data/vendor/gems/thrift/lib/erl/src/thrift.appup.src +1 -0
  265. data/vendor/gems/thrift/lib/erl/src/thrift_base64_transport.erl +64 -0
  266. data/vendor/gems/thrift/lib/erl/src/thrift_binary_protocol.erl +325 -0
  267. data/vendor/gems/thrift/lib/erl/src/thrift_buffered_transport.erl +180 -0
  268. data/vendor/gems/thrift/lib/erl/src/thrift_client.erl +384 -0
  269. data/vendor/gems/thrift/lib/erl/src/thrift_disk_log_transport.erl +118 -0
  270. data/vendor/gems/thrift/lib/erl/src/thrift_file_transport.erl +87 -0
  271. data/vendor/gems/thrift/lib/erl/src/thrift_framed_transport.erl +208 -0
  272. data/vendor/gems/thrift/lib/erl/src/thrift_http_transport.erl +199 -0
  273. data/vendor/gems/thrift/lib/erl/src/thrift_memory_buffer.erl +164 -0
  274. data/vendor/gems/thrift/lib/erl/src/thrift_processor.erl +188 -0
  275. data/vendor/gems/thrift/lib/erl/src/thrift_protocol.erl +356 -0
  276. data/vendor/gems/thrift/lib/erl/src/thrift_server.erl +183 -0
  277. data/vendor/gems/thrift/lib/erl/src/thrift_service.erl +25 -0
  278. data/vendor/gems/thrift/lib/erl/src/thrift_socket_server.erl +249 -0
  279. data/vendor/gems/thrift/lib/erl/src/thrift_socket_transport.erl +119 -0
  280. data/vendor/gems/thrift/lib/erl/src/thrift_transport.erl +57 -0
  281. data/vendor/gems/thrift/lib/erl/vsn.mk +1 -0
  282. data/vendor/gems/thrift/lib/hs/README +82 -0
  283. data/vendor/gems/thrift/lib/hs/Setup.lhs +23 -0
  284. data/vendor/gems/thrift/lib/hs/TODO +2 -0
  285. data/vendor/gems/thrift/lib/hs/Thrift.cabal +20 -0
  286. data/vendor/gems/thrift/lib/hs/src/Thrift.hs +111 -0
  287. data/vendor/gems/thrift/lib/hs/src/Thrift/Protocol.hs +191 -0
  288. data/vendor/gems/thrift/lib/hs/src/Thrift/Protocol/Binary.hs +147 -0
  289. data/vendor/gems/thrift/lib/hs/src/Thrift/Server.hs +65 -0
  290. data/vendor/gems/thrift/lib/hs/src/Thrift/Transport.hs +60 -0
  291. data/vendor/gems/thrift/lib/hs/src/Thrift/Transport/Handle.hs +58 -0
  292. data/vendor/gems/thrift/lib/java/Makefile.am +38 -0
  293. data/vendor/gems/thrift/lib/java/README +43 -0
  294. data/vendor/gems/thrift/lib/java/build.xml +195 -0
  295. data/vendor/gems/thrift/lib/java/ivy.xml +8 -0
  296. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/IntRangeSet.java +171 -0
  297. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TApplicationException.java +123 -0
  298. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TBase.java +66 -0
  299. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TBaseHelper.java +102 -0
  300. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TByteArrayOutputStream.java +46 -0
  301. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TDeserializer.java +94 -0
  302. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TException.java +45 -0
  303. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TFieldRequirementType.java +30 -0
  304. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TProcessor.java +32 -0
  305. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TProcessorFactory.java +39 -0
  306. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TSerializer.java +110 -0
  307. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/FieldMetaData.java +69 -0
  308. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/FieldValueMetaData.java +42 -0
  309. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/ListMetaData.java +29 -0
  310. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/MapMetaData.java +31 -0
  311. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/SetMetaData.java +29 -0
  312. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/StructMetaData.java +31 -0
  313. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TBase64Utils.java +128 -0
  314. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TBinaryProtocol.java +331 -0
  315. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TCompactProtocol.java +741 -0
  316. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TField.java +48 -0
  317. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TJSONProtocol.java +927 -0
  318. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TList.java +38 -0
  319. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TMap.java +40 -0
  320. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TMessage.java +48 -0
  321. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TMessageType.java +31 -0
  322. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocol.java +146 -0
  323. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocolException.java +81 -0
  324. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocolFactory.java +30 -0
  325. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocolUtil.java +158 -0
  326. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TSet.java +42 -0
  327. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TSimpleJSONProtocol.java +384 -0
  328. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TStruct.java +36 -0
  329. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TType.java +40 -0
  330. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/THsHaServer.java +304 -0
  331. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TNonblockingServer.java +772 -0
  332. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TServer.java +126 -0
  333. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TSimpleServer.java +145 -0
  334. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TThreadPoolServer.java +271 -0
  335. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TFramedTransport.java +126 -0
  336. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/THttpClient.java +157 -0
  337. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TIOStreamTransport.java +159 -0
  338. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TMemoryBuffer.java +98 -0
  339. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingServerSocket.java +160 -0
  340. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingServerTransport.java +31 -0
  341. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingSocket.java +213 -0
  342. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingTransport.java +31 -0
  343. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TServerSocket.java +145 -0
  344. metadata +348 -37
  345. data/vendor/gems/trollop/FAQ.txt +0 -35
  346. data/vendor/gems/trollop/History.txt +0 -84
  347. data/vendor/gems/trollop/Manifest.txt +0 -7
  348. data/vendor/gems/trollop/README.txt +0 -38
  349. data/vendor/gems/trollop/Rakefile +0 -36
  350. data/vendor/gems/trollop/lib/trollop.rb +0 -695
  351. data/vendor/gems/trollop/release-script.txt +0 -13
  352. data/vendor/gems/trollop/test/test_trollop.rb +0 -957
  353. data/vendor/gems/trollop/www/index.html +0 -167
@@ -0,0 +1,1140 @@
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
+ %%