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.
- data/VERSION.yml +1 -1
- data/examples/monitored_cloud.rb +1 -1
- data/examples/thrift/thrift_example.rb +1 -1
- data/lib/proto/command_interface_handler.rb +1 -1
- data/vendor/gems/thrift/CHANGES +35 -0
- data/vendor/gems/thrift/CONTRIBUTORS +77 -0
- data/vendor/gems/thrift/DISCLAIMER +6 -0
- data/vendor/gems/thrift/LICENSE +202 -0
- data/vendor/gems/thrift/Makefile.am +28 -0
- data/vendor/gems/thrift/NEWS +79 -0
- data/vendor/gems/thrift/NOTICE +26 -0
- data/vendor/gems/thrift/README +137 -0
- data/vendor/gems/thrift/aclocal/ax_boost_base.m4 +198 -0
- data/vendor/gems/thrift/aclocal/ax_javac_and_java.m4 +107 -0
- data/vendor/gems/thrift/aclocal/ax_lib_event.m4 +194 -0
- data/vendor/gems/thrift/aclocal/ax_lib_zlib.m4 +173 -0
- data/vendor/gems/thrift/aclocal/ax_signed_right_shift.m4 +127 -0
- data/vendor/gems/thrift/aclocal/ax_thrift_internal.m4 +39 -0
- data/vendor/gems/thrift/bootstrap.sh +35 -0
- data/vendor/gems/thrift/cleanup.sh +58 -0
- data/vendor/gems/thrift/compiler/cpp/Makefile.am +136 -0
- data/vendor/gems/thrift/compiler/cpp/README +39 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_cocoa_generator.cc +2331 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_cpp_generator.cc +3003 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_csharp_generator.cc +1700 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_erl_generator.cc +932 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_generator.cc +173 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_generator.h +321 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_hs_generator.cc +1445 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_html_generator.cc +637 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_java_generator.cc +3069 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_ocaml_generator.cc +1673 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_oop_generator.h +77 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_perl_generator.cc +1812 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_php_generator.cc +2281 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_py_generator.cc +2310 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_rb_generator.cc +1114 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_st_generator.cc +1071 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_xsd_generator.cc +354 -0
- data/vendor/gems/thrift/compiler/cpp/src/globals.h +117 -0
- data/vendor/gems/thrift/compiler/cpp/src/main.cc +1207 -0
- data/vendor/gems/thrift/compiler/cpp/src/main.h +103 -0
- data/vendor/gems/thrift/compiler/cpp/src/md5.c +381 -0
- data/vendor/gems/thrift/compiler/cpp/src/md5.h +91 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_base_type.h +137 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_const.h +59 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_const_value.h +121 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_container.h +56 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_doc.h +51 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_enum.h +59 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_enum_value.h +64 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_field.h +150 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_function.h +93 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_list.h +56 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_map.h +64 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_program.h +223 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_scope.h +86 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_service.h +68 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_set.h +55 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_struct.h +127 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_type.h +176 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_typedef.h +70 -0
- data/vendor/gems/thrift/compiler/cpp/src/platform.h +36 -0
- data/vendor/gems/thrift/compiler/cpp/src/thriftl.ll +303 -0
- data/vendor/gems/thrift/compiler/cpp/src/thrifty.yy +1140 -0
- data/vendor/gems/thrift/configure.ac +255 -0
- data/vendor/gems/thrift/contrib/fb303/LICENSE +16 -0
- data/vendor/gems/thrift/contrib/fb303/Makefile.am +31 -0
- data/vendor/gems/thrift/contrib/fb303/README +37 -0
- data/vendor/gems/thrift/contrib/fb303/acinclude.m4 +258 -0
- data/vendor/gems/thrift/contrib/fb303/aclocal/ax_boost_base.m4 +198 -0
- data/vendor/gems/thrift/contrib/fb303/bootstrap.sh +26 -0
- data/vendor/gems/thrift/contrib/fb303/configure.ac +115 -0
- data/vendor/gems/thrift/contrib/fb303/cpp/FacebookBase.cpp +124 -0
- data/vendor/gems/thrift/contrib/fb303/cpp/FacebookBase.h +103 -0
- data/vendor/gems/thrift/contrib/fb303/cpp/Makefile.am +84 -0
- data/vendor/gems/thrift/contrib/fb303/cpp/ServiceTracker.cpp +481 -0
- data/vendor/gems/thrift/contrib/fb303/cpp/ServiceTracker.h +215 -0
- data/vendor/gems/thrift/contrib/fb303/global_footer.mk +21 -0
- data/vendor/gems/thrift/contrib/fb303/global_header.mk +38 -0
- data/vendor/gems/thrift/contrib/fb303/if/fb303.thrift +112 -0
- data/vendor/gems/thrift/contrib/fb303/java/FacebookBase.java +103 -0
- data/vendor/gems/thrift/contrib/fb303/java/build.xml +84 -0
- data/vendor/gems/thrift/contrib/fb303/php/FacebookBase.php +89 -0
- data/vendor/gems/thrift/contrib/fb303/py/Makefile.am +44 -0
- data/vendor/gems/thrift/contrib/fb303/py/fb303/FacebookBase.py +82 -0
- data/vendor/gems/thrift/contrib/fb303/py/fb303_scripts/__init__.py +20 -0
- data/vendor/gems/thrift/contrib/fb303/py/fb303_scripts/fb303_simple_mgmt.py +195 -0
- data/vendor/gems/thrift/contrib/fb303/py/setup.py +27 -0
- data/vendor/gems/thrift/contrib/thrift.el +126 -0
- data/vendor/gems/thrift/contrib/thrift.spec +206 -0
- data/vendor/gems/thrift/contrib/thrift.vim +91 -0
- data/vendor/gems/thrift/contrib/thrift_dump.cpp +91 -0
- data/vendor/gems/thrift/doc/lgpl-2.1.txt +504 -0
- data/vendor/gems/thrift/doc/otp-base-license.txt +20 -0
- data/vendor/gems/thrift/doc/thrift.bnf +96 -0
- data/vendor/gems/thrift/doc/thrift.tex +1057 -0
- data/vendor/gems/thrift/lib/Makefile.am +55 -0
- data/vendor/gems/thrift/lib/cocoa/README +21 -0
- data/vendor/gems/thrift/lib/cocoa/src/TApplicationException.h +44 -0
- data/vendor/gems/thrift/lib/cocoa/src/TApplicationException.m +130 -0
- data/vendor/gems/thrift/lib/cocoa/src/TException.h +34 -0
- data/vendor/gems/thrift/lib/cocoa/src/TException.m +64 -0
- data/vendor/gems/thrift/lib/cocoa/src/TProcessor.h +29 -0
- data/vendor/gems/thrift/lib/cocoa/src/TProcessorFactory.h +27 -0
- data/vendor/gems/thrift/lib/cocoa/src/TSharedProcessorFactory.h +27 -0
- data/vendor/gems/thrift/lib/cocoa/src/TSharedProcessorFactory.m +51 -0
- data/vendor/gems/thrift/lib/cocoa/src/protocol/TBinaryProtocol.h +51 -0
- data/vendor/gems/thrift/lib/cocoa/src/protocol/TBinaryProtocol.m +477 -0
- data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocol.h +148 -0
- data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolException.h +25 -0
- data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolException.m +23 -0
- data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolFactory.h +29 -0
- data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolUtil.h +29 -0
- data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolUtil.m +104 -0
- data/vendor/gems/thrift/lib/cocoa/src/server/TSocketServer.h +50 -0
- data/vendor/gems/thrift/lib/cocoa/src/server/TSocketServer.m +153 -0
- data/vendor/gems/thrift/lib/cocoa/src/transport/THTTPClient.h +42 -0
- data/vendor/gems/thrift/lib/cocoa/src/transport/THTTPClient.m +159 -0
- data/vendor/gems/thrift/lib/cocoa/src/transport/TNSFileHandleTransport.h +35 -0
- data/vendor/gems/thrift/lib/cocoa/src/transport/TNSFileHandleTransport.m +91 -0
- data/vendor/gems/thrift/lib/cocoa/src/transport/TNSStreamTransport.h +38 -0
- data/vendor/gems/thrift/lib/cocoa/src/transport/TNSStreamTransport.m +89 -0
- data/vendor/gems/thrift/lib/cocoa/src/transport/TSocketClient.h +32 -0
- data/vendor/gems/thrift/lib/cocoa/src/transport/TSocketClient.m +58 -0
- data/vendor/gems/thrift/lib/cocoa/src/transport/TTransport.h +36 -0
- data/vendor/gems/thrift/lib/cocoa/src/transport/TTransportException.h +30 -0
- data/vendor/gems/thrift/lib/cocoa/src/transport/TTransportException.m +43 -0
- data/vendor/gems/thrift/lib/cpp/Makefile.am +158 -0
- data/vendor/gems/thrift/lib/cpp/README +67 -0
- data/vendor/gems/thrift/lib/cpp/src/TLogging.h +163 -0
- data/vendor/gems/thrift/lib/cpp/src/TProcessor.h +53 -0
- data/vendor/gems/thrift/lib/cpp/src/TReflectionLocal.h +96 -0
- data/vendor/gems/thrift/lib/cpp/src/Thrift.cpp +148 -0
- data/vendor/gems/thrift/lib/cpp/src/Thrift.h +191 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/Exception.h +60 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/FunctionRunner.h +77 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/Monitor.cpp +137 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/Monitor.h +84 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/Mutex.cpp +160 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/Mutex.h +114 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/PosixThreadFactory.cpp +314 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/PosixThreadFactory.h +130 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/Thread.h +125 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/ThreadManager.cpp +493 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/ThreadManager.h +169 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/TimerManager.cpp +284 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/TimerManager.h +122 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/Util.cpp +55 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/Util.h +100 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/test/Tests.cpp +155 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/test/ThreadFactoryTests.h +354 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/test/ThreadManagerTests.h +379 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/test/TimerManagerTests.h +155 -0
- data/vendor/gems/thrift/lib/cpp/src/processor/PeekProcessor.cpp +122 -0
- data/vendor/gems/thrift/lib/cpp/src/processor/PeekProcessor.h +77 -0
- data/vendor/gems/thrift/lib/cpp/src/processor/StatsProcessor.h +264 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TBase64Utils.cpp +79 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TBase64Utils.h +42 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TBinaryProtocol.cpp +394 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TBinaryProtocol.h +254 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TCompactProtocol.cpp +736 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TCompactProtocol.h +279 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TDebugProtocol.cpp +346 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TDebugProtocol.h +225 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TDenseProtocol.cpp +762 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TDenseProtocol.h +253 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TJSONProtocol.cpp +998 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TJSONProtocol.h +340 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TOneWayProtocol.h +304 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TProtocol.h +438 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TProtocolException.h +104 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TProtocolTap.h +187 -0
- data/vendor/gems/thrift/lib/cpp/src/server/TNonblockingServer.cpp +750 -0
- data/vendor/gems/thrift/lib/cpp/src/server/TNonblockingServer.h +435 -0
- data/vendor/gems/thrift/lib/cpp/src/server/TServer.cpp +38 -0
- data/vendor/gems/thrift/lib/cpp/src/server/TServer.h +213 -0
- data/vendor/gems/thrift/lib/cpp/src/server/TSimpleServer.cpp +118 -0
- data/vendor/gems/thrift/lib/cpp/src/server/TSimpleServer.h +70 -0
- data/vendor/gems/thrift/lib/cpp/src/server/TThreadPoolServer.cpp +217 -0
- data/vendor/gems/thrift/lib/cpp/src/server/TThreadPoolServer.h +79 -0
- data/vendor/gems/thrift/lib/cpp/src/server/TThreadedServer.cpp +243 -0
- data/vendor/gems/thrift/lib/cpp/src/server/TThreadedServer.h +74 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TBufferTransports.cpp +370 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TBufferTransports.h +667 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TFDTransport.cpp +77 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TFDTransport.h +73 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TFileTransport.cpp +953 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TFileTransport.h +442 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/THttpClient.cpp +348 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/THttpClient.h +111 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TServerSocket.cpp +368 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TServerSocket.h +76 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TServerTransport.h +92 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TShortReadTransport.h +96 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TSimpleFileTransport.cpp +54 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TSimpleFileTransport.h +41 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TSocket.cpp +591 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TSocket.h +242 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TSocketPool.cpp +235 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TSocketPool.h +191 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TTransport.h +224 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TTransportException.cpp +31 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TTransportException.h +117 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TTransportUtils.cpp +178 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TTransportUtils.h +287 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TZlibTransport.cpp +299 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TZlibTransport.h +219 -0
- data/vendor/gems/thrift/lib/cpp/thrift-nb.pc.in +30 -0
- data/vendor/gems/thrift/lib/cpp/thrift-z.pc.in +30 -0
- data/vendor/gems/thrift/lib/cpp/thrift.pc.in +29 -0
- data/vendor/gems/thrift/lib/csharp/Makefile.am +70 -0
- data/vendor/gems/thrift/lib/csharp/README +26 -0
- data/vendor/gems/thrift/lib/csharp/ThriftMSBuildTask/Properties/AssemblyInfo.cs +55 -0
- data/vendor/gems/thrift/lib/csharp/ThriftMSBuildTask/ThriftBuild.cs +242 -0
- data/vendor/gems/thrift/lib/csharp/ThriftMSBuildTask/ThriftMSBuildTask.csproj +62 -0
- data/vendor/gems/thrift/lib/csharp/src/Collections/THashSet.cs +142 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TBase.cs +34 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TBinaryProtocol.cs +392 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TField.cs +58 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TList.cs +50 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TMap.cs +58 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TMessage.cs +58 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TMessageType.cs +31 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocol.cs +87 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocolException.cs +61 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocolFactory.cs +29 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocolUtil.cs +94 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TSet.cs +50 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TStruct.cs +42 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TType.cs +40 -0
- data/vendor/gems/thrift/lib/csharp/src/Server/TServer.cs +135 -0
- data/vendor/gems/thrift/lib/csharp/src/Server/TSimpleServer.cs +148 -0
- data/vendor/gems/thrift/lib/csharp/src/Server/TThreadPoolServer.cs +186 -0
- data/vendor/gems/thrift/lib/csharp/src/Server/TThreadedServer.cs +234 -0
- data/vendor/gems/thrift/lib/csharp/src/TApplicationException.cs +131 -0
- data/vendor/gems/thrift/lib/csharp/src/TProcessor.cs +29 -0
- data/vendor/gems/thrift/lib/csharp/src/Thrift.csproj +73 -0
- data/vendor/gems/thrift/lib/csharp/src/Thrift.sln +35 -0
- data/vendor/gems/thrift/lib/csharp/src/Transport/TBufferedTransport.cs +100 -0
- data/vendor/gems/thrift/lib/csharp/src/Transport/TServerSocket.cs +157 -0
- data/vendor/gems/thrift/lib/csharp/src/Transport/TServerTransport.cs +39 -0
- data/vendor/gems/thrift/lib/csharp/src/Transport/TSocket.cs +144 -0
- data/vendor/gems/thrift/lib/csharp/src/Transport/TStreamTransport.cs +103 -0
- data/vendor/gems/thrift/lib/csharp/src/Transport/TTransport.cs +66 -0
- data/vendor/gems/thrift/lib/csharp/src/Transport/TTransportException.cs +64 -0
- data/vendor/gems/thrift/lib/csharp/src/Transport/TTransportFactory.cs +38 -0
- data/vendor/gems/thrift/lib/erl/Makefile +37 -0
- data/vendor/gems/thrift/lib/erl/README +56 -0
- data/vendor/gems/thrift/lib/erl/build/beamver +59 -0
- data/vendor/gems/thrift/lib/erl/build/buildtargets.mk +15 -0
- data/vendor/gems/thrift/lib/erl/build/colors.mk +24 -0
- data/vendor/gems/thrift/lib/erl/build/docs.mk +12 -0
- data/vendor/gems/thrift/lib/erl/build/mime.types +98 -0
- data/vendor/gems/thrift/lib/erl/build/otp.mk +146 -0
- data/vendor/gems/thrift/lib/erl/build/otp_subdir.mk +85 -0
- data/vendor/gems/thrift/lib/erl/build/raw_test.mk +29 -0
- data/vendor/gems/thrift/lib/erl/include/thrift_constants.hrl +54 -0
- data/vendor/gems/thrift/lib/erl/include/thrift_protocol.hrl +31 -0
- data/vendor/gems/thrift/lib/erl/src/Makefile +116 -0
- data/vendor/gems/thrift/lib/erl/src/test_handler.erl +26 -0
- data/vendor/gems/thrift/lib/erl/src/test_service.erl +29 -0
- data/vendor/gems/thrift/lib/erl/src/thrift.app.src +44 -0
- data/vendor/gems/thrift/lib/erl/src/thrift.appup.src +1 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_base64_transport.erl +64 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_binary_protocol.erl +325 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_buffered_transport.erl +180 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_client.erl +384 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_disk_log_transport.erl +118 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_file_transport.erl +87 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_framed_transport.erl +208 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_http_transport.erl +199 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_memory_buffer.erl +164 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_processor.erl +188 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_protocol.erl +356 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_server.erl +183 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_service.erl +25 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_socket_server.erl +249 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_socket_transport.erl +119 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_transport.erl +57 -0
- data/vendor/gems/thrift/lib/erl/vsn.mk +1 -0
- data/vendor/gems/thrift/lib/hs/README +82 -0
- data/vendor/gems/thrift/lib/hs/Setup.lhs +23 -0
- data/vendor/gems/thrift/lib/hs/TODO +2 -0
- data/vendor/gems/thrift/lib/hs/Thrift.cabal +20 -0
- data/vendor/gems/thrift/lib/hs/src/Thrift.hs +111 -0
- data/vendor/gems/thrift/lib/hs/src/Thrift/Protocol.hs +191 -0
- data/vendor/gems/thrift/lib/hs/src/Thrift/Protocol/Binary.hs +147 -0
- data/vendor/gems/thrift/lib/hs/src/Thrift/Server.hs +65 -0
- data/vendor/gems/thrift/lib/hs/src/Thrift/Transport.hs +60 -0
- data/vendor/gems/thrift/lib/hs/src/Thrift/Transport/Handle.hs +58 -0
- data/vendor/gems/thrift/lib/java/Makefile.am +38 -0
- data/vendor/gems/thrift/lib/java/README +43 -0
- data/vendor/gems/thrift/lib/java/build.xml +195 -0
- data/vendor/gems/thrift/lib/java/ivy.xml +8 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/IntRangeSet.java +171 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TApplicationException.java +123 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TBase.java +66 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TBaseHelper.java +102 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TByteArrayOutputStream.java +46 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TDeserializer.java +94 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TException.java +45 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TFieldRequirementType.java +30 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TProcessor.java +32 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TProcessorFactory.java +39 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TSerializer.java +110 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/FieldMetaData.java +69 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/FieldValueMetaData.java +42 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/ListMetaData.java +29 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/MapMetaData.java +31 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/SetMetaData.java +29 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/StructMetaData.java +31 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TBase64Utils.java +128 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TBinaryProtocol.java +331 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TCompactProtocol.java +741 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TField.java +48 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TJSONProtocol.java +927 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TList.java +38 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TMap.java +40 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TMessage.java +48 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TMessageType.java +31 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocol.java +146 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocolException.java +81 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocolFactory.java +30 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocolUtil.java +158 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TSet.java +42 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TSimpleJSONProtocol.java +384 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TStruct.java +36 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TType.java +40 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/THsHaServer.java +304 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TNonblockingServer.java +772 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TServer.java +126 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TSimpleServer.java +145 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TThreadPoolServer.java +271 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TFramedTransport.java +126 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/THttpClient.java +157 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TIOStreamTransport.java +159 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TMemoryBuffer.java +98 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingServerSocket.java +160 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingServerTransport.java +31 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingSocket.java +213 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingTransport.java +31 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TServerSocket.java +145 -0
- metadata +348 -37
- data/vendor/gems/trollop/FAQ.txt +0 -35
- data/vendor/gems/trollop/History.txt +0 -84
- data/vendor/gems/trollop/Manifest.txt +0 -7
- data/vendor/gems/trollop/README.txt +0 -38
- data/vendor/gems/trollop/Rakefile +0 -36
- data/vendor/gems/trollop/lib/trollop.rb +0 -695
- data/vendor/gems/trollop/release-script.txt +0 -13
- data/vendor/gems/trollop/test/test_trollop.rb +0 -957
- 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
|
+
%%
|