zeroc-ice 3.7.11 → 3.8.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 (895) hide show
  1. checksums.yaml +4 -4
  2. data/dist/IceRuby/Communicator.cpp +159 -376
  3. data/dist/IceRuby/Communicator.h +8 -9
  4. data/dist/IceRuby/Config.h +23 -89
  5. data/dist/IceRuby/Connection.cpp +111 -219
  6. data/dist/IceRuby/Connection.h +8 -12
  7. data/dist/IceRuby/DefaultSliceLoader.cpp +45 -0
  8. data/dist/IceRuby/DefaultSliceLoader.h +25 -0
  9. data/dist/IceRuby/Endpoint.cpp +63 -65
  10. data/dist/IceRuby/Endpoint.h +7 -11
  11. data/dist/IceRuby/ImplicitContext.cpp +26 -31
  12. data/dist/IceRuby/ImplicitContext.h +6 -10
  13. data/dist/IceRuby/Init.cpp +27 -40
  14. data/dist/IceRuby/Logger.cpp +23 -28
  15. data/dist/IceRuby/Logger.h +8 -12
  16. data/dist/IceRuby/Operation.cpp +177 -219
  17. data/dist/IceRuby/Operation.h +15 -18
  18. data/dist/IceRuby/Properties.cpp +133 -89
  19. data/dist/IceRuby/Properties.h +6 -10
  20. data/dist/IceRuby/Proxy.cpp +179 -649
  21. data/dist/IceRuby/Proxy.h +11 -12
  22. data/dist/IceRuby/RubySliceLoader.cpp +39 -0
  23. data/dist/IceRuby/RubySliceLoader.h +27 -0
  24. data/dist/IceRuby/Slice.cpp +88 -94
  25. data/dist/IceRuby/Slice.h +3 -7
  26. data/dist/IceRuby/Types.cpp +987 -1190
  27. data/dist/IceRuby/Types.h +390 -461
  28. data/dist/IceRuby/Util.cpp +214 -473
  29. data/dist/IceRuby/Util.h +378 -479
  30. data/dist/ice/cpp/include/Ice/AsyncResponseHandler.h +85 -0
  31. data/dist/ice/cpp/include/Ice/BatchRequest.h +39 -0
  32. data/dist/ice/cpp/include/Ice/BatchRequestQueueF.h +4 -10
  33. data/dist/ice/cpp/include/Ice/Buffer.h +116 -111
  34. data/dist/ice/cpp/include/Ice/Communicator.h +411 -0
  35. data/dist/ice/cpp/include/Ice/CommunicatorF.h +16 -0
  36. data/dist/ice/cpp/include/Ice/Config.h +46 -62
  37. data/dist/ice/cpp/include/Ice/Connection.h +410 -0
  38. data/dist/ice/cpp/include/Ice/ConnectionF.h +36 -0
  39. data/dist/ice/cpp/include/Ice/ConnectionIF.h +6 -28
  40. data/dist/ice/cpp/include/Ice/CtrlCHandler.h +56 -0
  41. data/dist/ice/cpp/include/Ice/Current.h +60 -0
  42. data/dist/ice/cpp/include/Ice/DefaultSliceLoader.h +160 -0
  43. data/dist/ice/cpp/include/Ice/Demangle.h +17 -0
  44. data/dist/ice/cpp/include/Ice/Endpoint.h +298 -0
  45. data/dist/ice/cpp/include/Ice/EndpointF.h +44 -0
  46. data/dist/ice/cpp/include/Ice/EndpointSelectionType.h +21 -0
  47. data/dist/ice/cpp/include/Ice/Exception.h +46 -151
  48. data/dist/ice/cpp/include/Ice/FacetMap.h +16 -0
  49. data/dist/ice/cpp/include/Ice/Format.h +11 -27
  50. data/dist/ice/cpp/include/Ice/Ice.h +53 -48
  51. data/dist/ice/cpp/include/Ice/IconvStringConverter.h +165 -326
  52. data/dist/ice/cpp/include/Ice/ImplicitContext.h +76 -0
  53. data/dist/ice/cpp/include/Ice/IncomingRequest.h +75 -0
  54. data/dist/ice/cpp/include/Ice/Initialize.h +113 -927
  55. data/dist/ice/cpp/include/Ice/InputStream.h +748 -1320
  56. data/dist/ice/cpp/include/Ice/InstanceF.h +4 -10
  57. data/dist/ice/cpp/include/Ice/Instrumentation.h +319 -0
  58. data/dist/ice/cpp/include/Ice/LocalException.h +58 -0
  59. data/dist/ice/cpp/include/Ice/LocalExceptions.h +870 -0
  60. data/dist/ice/cpp/include/Ice/Logger.h +62 -0
  61. data/dist/ice/cpp/include/Ice/LoggerUtil.h +124 -147
  62. data/dist/ice/cpp/include/Ice/MarshaledResult.h +50 -0
  63. data/dist/ice/cpp/include/Ice/NativePropertiesAdmin.h +41 -71
  64. data/dist/ice/cpp/include/Ice/Object.h +151 -490
  65. data/dist/ice/cpp/include/Ice/ObjectAdapter.h +324 -0
  66. data/dist/ice/cpp/include/Ice/ObjectAdapterF.h +16 -0
  67. data/dist/ice/cpp/include/Ice/ObjectF.h +5 -19
  68. data/dist/ice/cpp/include/Ice/ObserverHelper.h +115 -132
  69. data/dist/ice/cpp/include/Ice/OutgoingAsync.h +392 -748
  70. data/dist/ice/cpp/include/Ice/OutgoingResponse.h +129 -0
  71. data/dist/ice/cpp/include/Ice/OutputStream.h +756 -956
  72. data/dist/ice/cpp/include/Ice/Plugin.h +73 -0
  73. data/dist/ice/cpp/include/Ice/PluginFactory.h +77 -0
  74. data/dist/ice/cpp/include/{IceUtil → Ice}/PopDisableWarnings.h +8 -6
  75. data/dist/ice/cpp/include/Ice/Properties.h +307 -0
  76. data/dist/ice/cpp/include/Ice/PropertiesF.h +19 -0
  77. data/dist/ice/cpp/include/Ice/Proxy.h +665 -5094
  78. data/dist/ice/cpp/include/Ice/ProxyF.h +2 -44
  79. data/dist/ice/cpp/include/Ice/ProxyFunctions.h +209 -0
  80. data/dist/ice/cpp/include/Ice/PushDisableWarnings.h +29 -0
  81. data/dist/ice/cpp/include/Ice/ReferenceF.h +4 -19
  82. data/dist/ice/cpp/include/Ice/RequestHandlerF.h +8 -18
  83. data/dist/ice/cpp/include/Ice/SSL/ClientAuthenticationOptions.h +276 -0
  84. data/dist/ice/cpp/include/Ice/SSL/Config.h +54 -0
  85. data/dist/ice/cpp/include/Ice/SSL/ConnectionInfo.h +107 -0
  86. data/dist/ice/cpp/include/Ice/SSL/ConnectionInfoF.h +39 -0
  87. data/dist/ice/cpp/include/Ice/SSL/EndpointInfo.h +40 -0
  88. data/dist/ice/cpp/include/Ice/SSL/SSLException.h +32 -0
  89. data/dist/ice/cpp/include/Ice/SSL/ServerAuthenticationOptions.h +286 -0
  90. data/dist/ice/cpp/include/Ice/ServantLocator.h +51 -0
  91. data/dist/ice/cpp/include/Ice/Service.h +182 -342
  92. data/dist/ice/cpp/include/Ice/SliceLoader.h +67 -0
  93. data/dist/ice/cpp/include/Ice/SlicedData.h +113 -160
  94. data/dist/ice/cpp/include/Ice/SlicedDataF.h +17 -27
  95. data/dist/ice/cpp/include/Ice/StreamHelpers.h +532 -1070
  96. data/dist/ice/cpp/include/Ice/StreamableTraits.h +291 -0
  97. data/dist/ice/cpp/include/Ice/StringConverter.h +152 -63
  98. data/dist/ice/cpp/include/Ice/StringUtil.h +114 -0
  99. data/dist/ice/cpp/include/Ice/TimerTask.h +24 -0
  100. data/dist/ice/cpp/include/Ice/TupleCompare.h +103 -0
  101. data/dist/ice/cpp/include/Ice/UUID.h +6 -9
  102. data/dist/ice/cpp/include/Ice/UserException.h +46 -0
  103. data/dist/ice/cpp/include/Ice/UserExceptionFactory.h +4 -79
  104. data/dist/ice/cpp/include/Ice/Value.h +103 -115
  105. data/dist/ice/cpp/include/Ice/ValueF.h +6 -11
  106. data/dist/ice/cpp/include/IceDiscovery/IceDiscovery.h +16 -1877
  107. data/dist/ice/cpp/include/IceLocatorDiscovery/IceLocatorDiscovery.h +16 -1185
  108. data/dist/ice/cpp/include/generated/Ice/BuiltinSequences.h +46 -146
  109. data/dist/ice/cpp/include/generated/Ice/Context.h +40 -0
  110. data/dist/ice/cpp/include/generated/Ice/EndpointTypes.h +49 -93
  111. data/dist/ice/cpp/include/generated/Ice/Identity.h +70 -226
  112. data/dist/ice/cpp/include/generated/Ice/Locator.h +494 -3850
  113. data/dist/ice/cpp/include/generated/Ice/LocatorRegistry.h +443 -0
  114. data/dist/ice/cpp/include/generated/Ice/Metrics.h +937 -4603
  115. data/dist/ice/cpp/include/generated/Ice/OperationMode.h +73 -0
  116. data/dist/ice/cpp/include/generated/Ice/Process.h +197 -929
  117. data/dist/ice/cpp/include/generated/Ice/PropertiesAdmin.h +249 -1301
  118. data/dist/ice/cpp/include/generated/Ice/PropertyDict.h +39 -0
  119. data/dist/ice/cpp/include/generated/Ice/RemoteLogger.h +637 -2620
  120. data/dist/ice/cpp/include/generated/Ice/ReplyStatus.h +94 -0
  121. data/dist/ice/cpp/include/generated/Ice/Router.h +429 -1783
  122. data/dist/ice/cpp/include/generated/Ice/SliceChecksumDict.h +18 -65
  123. data/dist/ice/cpp/include/generated/Ice/Version.h +73 -318
  124. data/dist/ice/cpp/include/generated/IceDiscovery/Lookup.h +498 -0
  125. data/dist/ice/cpp/include/generated/IceLocatorDiscovery/Lookup.h +387 -0
  126. data/dist/ice/cpp/src/Ice/Acceptor.h +28 -24
  127. data/dist/ice/cpp/src/Ice/AcceptorF.h +6 -14
  128. data/dist/ice/cpp/src/Ice/AddDefaultPluginFactories.h +16 -0
  129. data/dist/ice/cpp/src/Ice/AddDefaultPluginFactories_all.cpp +43 -0
  130. data/dist/ice/cpp/src/Ice/AddDefaultPluginFactories_min.cpp +17 -0
  131. data/dist/ice/cpp/src/Ice/ArgVector.cpp +17 -18
  132. data/dist/ice/cpp/src/Ice/ArgVector.h +19 -25
  133. data/dist/ice/cpp/src/Ice/Base64.cpp +66 -66
  134. data/dist/ice/cpp/src/Ice/Base64.h +14 -19
  135. data/dist/ice/cpp/src/Ice/BatchRequestQueue.cpp +70 -121
  136. data/dist/ice/cpp/src/Ice/BatchRequestQueue.h +37 -47
  137. data/dist/ice/cpp/src/Ice/Buffer.cpp +73 -41
  138. data/dist/ice/cpp/src/Ice/CheckIdentity.h +21 -0
  139. data/dist/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +215 -249
  140. data/dist/ice/cpp/src/Ice/CollocatedRequestHandler.h +38 -60
  141. data/dist/ice/cpp/src/Ice/Communicator.cpp +399 -0
  142. data/dist/ice/cpp/src/Ice/CommunicatorFlushBatchAsync.cpp +140 -0
  143. data/dist/ice/cpp/src/Ice/CommunicatorFlushBatchAsync.h +39 -0
  144. data/dist/ice/cpp/src/Ice/ConnectRequestHandler.cpp +63 -184
  145. data/dist/ice/cpp/src/Ice/ConnectRequestHandler.h +30 -51
  146. data/dist/ice/cpp/src/Ice/ConnectRequestHandlerF.h +4 -14
  147. data/dist/ice/cpp/src/Ice/Connection.cpp +44 -0
  148. data/dist/ice/cpp/src/Ice/ConnectionFactory.cpp +578 -792
  149. data/dist/ice/cpp/src/Ice/ConnectionFactory.h +200 -200
  150. data/dist/ice/cpp/src/Ice/ConnectionFactoryF.h +6 -19
  151. data/dist/ice/cpp/src/Ice/ConnectionI.cpp +1674 -1782
  152. data/dist/ice/cpp/src/Ice/ConnectionI.h +333 -293
  153. data/dist/ice/cpp/src/Ice/ConnectionOptions.h +22 -0
  154. data/dist/ice/cpp/src/Ice/Connector.h +25 -19
  155. data/dist/ice/cpp/src/Ice/ConnectorF.h +4 -11
  156. data/dist/ice/cpp/src/{IceUtil → Ice}/ConsoleUtil.cpp +32 -53
  157. data/dist/ice/cpp/src/Ice/ConsoleUtil.h +79 -0
  158. data/dist/ice/cpp/src/Ice/CtrlCHandler.cpp +189 -0
  159. data/dist/ice/cpp/src/Ice/Current.cpp +29 -0
  160. data/dist/ice/cpp/src/Ice/DLLMain.cpp +25 -35
  161. data/dist/ice/cpp/src/Ice/DefaultSliceLoader.cpp +39 -0
  162. data/dist/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +41 -119
  163. data/dist/ice/cpp/src/Ice/DefaultsAndOverrides.h +27 -41
  164. data/dist/ice/cpp/src/Ice/DefaultsAndOverridesF.h +4 -11
  165. data/dist/ice/cpp/src/Ice/Demangle.cpp +26 -0
  166. data/dist/ice/cpp/src/Ice/DisableWarnings.h +31 -0
  167. data/dist/ice/cpp/src/Ice/DynamicLibrary.cpp +44 -112
  168. data/dist/ice/cpp/src/Ice/DynamicLibrary.h +91 -0
  169. data/dist/ice/cpp/src/Ice/Endian.h +40 -0
  170. data/dist/ice/cpp/src/Ice/EndpointFactory.cpp +35 -59
  171. data/dist/ice/cpp/src/Ice/EndpointFactory.h +82 -103
  172. data/dist/ice/cpp/src/Ice/EndpointFactoryF.h +4 -11
  173. data/dist/ice/cpp/src/Ice/EndpointFactoryManager.cpp +54 -87
  174. data/dist/ice/cpp/src/Ice/EndpointFactoryManager.h +28 -33
  175. data/dist/ice/cpp/src/Ice/EndpointFactoryManagerF.h +4 -11
  176. data/dist/ice/cpp/src/Ice/EndpointI.cpp +53 -23
  177. data/dist/ice/cpp/src/Ice/EndpointI.h +132 -200
  178. data/dist/ice/cpp/src/Ice/EndpointIF.h +11 -39
  179. data/dist/ice/cpp/src/Ice/EventHandler.cpp +3 -26
  180. data/dist/ice/cpp/src/Ice/EventHandler.h +46 -56
  181. data/dist/ice/cpp/src/Ice/EventHandlerF.h +4 -14
  182. data/dist/ice/cpp/src/Ice/Exception.cpp +3 -816
  183. data/dist/ice/cpp/src/Ice/FileUtil.cpp +476 -0
  184. data/dist/ice/cpp/src/Ice/FileUtil.h +152 -0
  185. data/dist/ice/cpp/src/Ice/FixedRequestHandler.cpp +34 -0
  186. data/dist/ice/cpp/src/Ice/FixedRequestHandler.h +29 -0
  187. data/dist/ice/cpp/src/Ice/HashUtil.h +46 -32
  188. data/dist/ice/cpp/src/Ice/HttpParser.cpp +431 -431
  189. data/dist/ice/cpp/src/Ice/HttpParser.h +95 -100
  190. data/dist/ice/cpp/src/Ice/IPEndpointI.cpp +207 -324
  191. data/dist/ice/cpp/src/Ice/IPEndpointI.h +80 -126
  192. data/dist/ice/cpp/src/Ice/IPEndpointIF.h +6 -17
  193. data/dist/ice/cpp/src/Ice/IdleTimeoutTransceiverDecorator.cpp +172 -0
  194. data/dist/ice/cpp/src/Ice/IdleTimeoutTransceiverDecorator.h +89 -0
  195. data/dist/ice/cpp/src/Ice/ImplicitContext.cpp +109 -0
  196. data/dist/ice/cpp/src/Ice/IncomingRequest.cpp +66 -0
  197. data/dist/ice/cpp/src/Ice/Initialize.cpp +48 -542
  198. data/dist/ice/cpp/src/Ice/InputStream.cpp +848 -1385
  199. data/dist/ice/cpp/src/Ice/Instance.cpp +816 -827
  200. data/dist/ice/cpp/src/Ice/Instance.h +202 -212
  201. data/dist/ice/cpp/src/Ice/InstrumentationI.cpp +526 -661
  202. data/dist/ice/cpp/src/Ice/InstrumentationI.h +171 -192
  203. data/dist/ice/cpp/src/Ice/LocalException.cpp +518 -0
  204. data/dist/ice/cpp/src/Ice/LocalExceptions.cpp +577 -0
  205. data/dist/ice/cpp/src/Ice/LocatorInfo.cpp +291 -329
  206. data/dist/ice/cpp/src/Ice/LocatorInfo.h +144 -157
  207. data/dist/ice/cpp/src/Ice/LocatorInfoF.h +8 -17
  208. data/dist/ice/cpp/src/Ice/LoggerAdminI.cpp +561 -743
  209. data/dist/ice/cpp/src/Ice/LoggerAdminI.h +18 -28
  210. data/dist/ice/cpp/src/Ice/LoggerI.cpp +66 -91
  211. data/dist/ice/cpp/src/Ice/LoggerI.h +36 -41
  212. data/dist/ice/cpp/src/Ice/LoggerMiddleware.cpp +176 -0
  213. data/dist/ice/cpp/src/Ice/LoggerMiddleware.h +42 -0
  214. data/dist/ice/cpp/src/Ice/LoggerUtil.cpp +14 -38
  215. data/dist/ice/cpp/src/Ice/MarshaledResult.cpp +20 -0
  216. data/dist/ice/cpp/src/Ice/MetricsAdminI.cpp +194 -280
  217. data/dist/ice/cpp/src/Ice/MetricsAdminI.h +600 -0
  218. data/dist/ice/cpp/src/Ice/MetricsFunctional.h +92 -0
  219. data/dist/ice/cpp/src/Ice/MetricsObserverI.h +587 -0
  220. data/dist/ice/cpp/src/Ice/NativePropertiesAdmin.cpp +185 -0
  221. data/dist/ice/cpp/src/Ice/Network.cpp +595 -917
  222. data/dist/ice/cpp/src/Ice/Network.h +189 -213
  223. data/dist/ice/cpp/src/Ice/NetworkF.h +2 -10
  224. data/dist/ice/cpp/src/Ice/NetworkProxy.cpp +99 -104
  225. data/dist/ice/cpp/src/Ice/NetworkProxy.h +49 -54
  226. data/dist/ice/cpp/src/Ice/NetworkProxyF.h +4 -11
  227. data/dist/ice/cpp/src/Ice/OSLogLoggerI.cpp +16 -18
  228. data/dist/ice/cpp/src/Ice/OSLogLoggerI.h +22 -27
  229. data/dist/ice/cpp/src/Ice/Object.cpp +152 -338
  230. data/dist/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +170 -113
  231. data/dist/ice/cpp/src/Ice/ObjectAdapterFactory.h +41 -41
  232. data/dist/ice/cpp/src/Ice/ObjectAdapterFactoryF.h +4 -15
  233. data/dist/ice/cpp/src/Ice/ObjectAdapterI.cpp +580 -727
  234. data/dist/ice/cpp/src/Ice/ObjectAdapterI.h +149 -145
  235. data/dist/ice/cpp/src/Ice/ObserverHelper.cpp +36 -17
  236. data/dist/ice/cpp/src/Ice/ObserverMiddleware.cpp +96 -0
  237. data/dist/ice/cpp/src/Ice/ObserverMiddleware.h +25 -0
  238. data/dist/ice/cpp/src/Ice/OpaqueEndpointI.cpp +147 -187
  239. data/dist/ice/cpp/src/Ice/OpaqueEndpointI.h +56 -64
  240. data/dist/ice/cpp/src/{IceUtil → Ice}/Options.cpp +187 -258
  241. data/dist/ice/cpp/src/Ice/Options.h +119 -0
  242. data/dist/ice/cpp/src/Ice/OutgoingAsync.cpp +516 -732
  243. data/dist/ice/cpp/src/Ice/OutgoingResponse.cpp +276 -0
  244. data/dist/ice/cpp/src/Ice/OutputStream.cpp +610 -543
  245. data/dist/ice/cpp/src/Ice/OutputUtil.cpp +344 -0
  246. data/dist/ice/cpp/src/Ice/OutputUtil.h +173 -0
  247. data/dist/ice/cpp/src/Ice/PluginManagerI.cpp +118 -277
  248. data/dist/ice/cpp/src/Ice/PluginManagerI.h +41 -48
  249. data/dist/ice/cpp/src/Ice/Properties.cpp +931 -0
  250. data/dist/ice/cpp/src/Ice/PropertyNames.cpp +519 -1341
  251. data/dist/ice/cpp/src/Ice/PropertyNames.h +49 -64
  252. data/dist/ice/cpp/src/Ice/PropertyUtil.cpp +103 -0
  253. data/dist/ice/cpp/src/Ice/PropertyUtil.h +31 -0
  254. data/dist/ice/cpp/src/Ice/Protocol.cpp +129 -94
  255. data/dist/ice/cpp/src/Ice/Protocol.h +116 -0
  256. data/dist/ice/cpp/src/Ice/ProtocolInstance.cpp +117 -62
  257. data/dist/ice/cpp/src/Ice/ProtocolInstance.h +63 -82
  258. data/dist/ice/cpp/src/Ice/ProtocolInstanceF.h +4 -11
  259. data/dist/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +10 -32
  260. data/dist/ice/cpp/src/Ice/ProtocolPluginFacade.h +25 -54
  261. data/dist/ice/cpp/src/Ice/Proxy.cpp +294 -1357
  262. data/dist/ice/cpp/src/Ice/ProxyAsync.cpp +684 -0
  263. data/dist/ice/cpp/src/Ice/ProxyFunctions.cpp +90 -0
  264. data/dist/ice/cpp/src/Ice/PushDisableDeprecatedWarnings.h +15 -0
  265. data/dist/ice/cpp/src/Ice/Random.cpp +29 -0
  266. data/dist/ice/cpp/src/Ice/Random.h +23 -0
  267. data/dist/ice/cpp/src/Ice/Reference.cpp +635 -1097
  268. data/dist/ice/cpp/src/Ice/Reference.h +314 -298
  269. data/dist/ice/cpp/src/Ice/ReferenceFactory.cpp +320 -378
  270. data/dist/ice/cpp/src/Ice/ReferenceFactory.h +48 -66
  271. data/dist/ice/cpp/src/Ice/ReferenceFactoryF.h +4 -9
  272. data/dist/ice/cpp/src/Ice/RequestHandler.cpp +15 -24
  273. data/dist/ice/cpp/src/Ice/RequestHandler.h +43 -68
  274. data/dist/ice/cpp/src/Ice/RequestHandlerCache.cpp +76 -0
  275. data/dist/ice/cpp/src/Ice/RequestHandlerCache.h +33 -0
  276. data/dist/ice/cpp/src/Ice/ResourceConfig.h +27 -0
  277. data/dist/ice/cpp/src/Ice/RetryQueue.cpp +51 -57
  278. data/dist/ice/cpp/src/Ice/RetryQueue.h +39 -46
  279. data/dist/ice/cpp/src/Ice/RetryQueueF.h +4 -9
  280. data/dist/ice/cpp/src/Ice/RouterInfo.cpp +97 -201
  281. data/dist/ice/cpp/src/Ice/RouterInfo.h +61 -118
  282. data/dist/ice/cpp/src/Ice/RouterInfoF.h +6 -14
  283. data/dist/ice/cpp/src/Ice/SHA1.cpp +86 -60
  284. data/dist/ice/cpp/src/Ice/SHA1.h +35 -0
  285. data/dist/ice/cpp/src/Ice/SSL/DistinguishedName.cpp +89 -0
  286. data/dist/ice/cpp/src/Ice/SSL/DistinguishedName.h +87 -0
  287. data/dist/ice/cpp/src/Ice/SSL/OpenSSLEngine.cpp +521 -0
  288. data/dist/ice/cpp/src/Ice/SSL/OpenSSLEngine.h +40 -0
  289. data/dist/ice/cpp/src/Ice/SSL/OpenSSLEngineF.h +13 -0
  290. data/dist/ice/cpp/src/Ice/SSL/OpenSSLTransceiverI.cpp +646 -0
  291. data/dist/ice/cpp/src/Ice/SSL/OpenSSLTransceiverI.h +80 -0
  292. data/dist/ice/cpp/src/{IceSSL → Ice/SSL}/RFC2253.cpp +85 -88
  293. data/dist/ice/cpp/src/Ice/SSL/RFC2253.h +58 -0
  294. data/dist/ice/cpp/src/Ice/SSL/SSLAcceptorI.cpp +124 -0
  295. data/dist/ice/cpp/src/Ice/SSL/SSLAcceptorI.h +52 -0
  296. data/dist/ice/cpp/src/Ice/SSL/SSLConnectorI.cpp +92 -0
  297. data/dist/ice/cpp/src/Ice/SSL/SSLConnectorI.h +38 -0
  298. data/dist/ice/cpp/src/Ice/SSL/SSLEndpointI.cpp +377 -0
  299. data/dist/ice/cpp/src/Ice/SSL/SSLEndpointI.h +84 -0
  300. data/dist/ice/cpp/src/Ice/SSL/SSLEngine.cpp +115 -0
  301. data/dist/ice/cpp/src/Ice/SSL/SSLEngine.h +69 -0
  302. data/dist/ice/cpp/src/Ice/SSL/SSLEngineF.h +14 -0
  303. data/dist/ice/cpp/src/Ice/SSL/SSLException.cpp +18 -0
  304. data/dist/ice/cpp/src/Ice/SSL/SSLInstance.cpp +27 -0
  305. data/dist/ice/cpp/src/Ice/SSL/SSLInstance.h +26 -0
  306. data/dist/ice/cpp/src/Ice/SSL/SSLInstanceF.h +19 -0
  307. data/dist/ice/cpp/src/Ice/SSL/SSLUtil.cpp +673 -0
  308. data/dist/ice/cpp/src/Ice/SSL/SSLUtil.h +118 -0
  309. data/dist/ice/cpp/src/Ice/SSL/SchannelEngine.cpp +1449 -0
  310. data/dist/ice/cpp/src/Ice/SSL/SchannelEngine.h +58 -0
  311. data/dist/ice/cpp/src/Ice/SSL/SchannelEngineF.h +18 -0
  312. data/dist/ice/cpp/src/Ice/SSL/SchannelTransceiverI.cpp +1088 -0
  313. data/dist/ice/cpp/src/Ice/SSL/SchannelTransceiverI.h +118 -0
  314. data/dist/ice/cpp/src/Ice/SSL/SecureTransportEngine.cpp +825 -0
  315. data/dist/ice/cpp/src/Ice/SSL/SecureTransportEngine.h +44 -0
  316. data/dist/ice/cpp/src/Ice/SSL/SecureTransportEngineF.h +18 -0
  317. data/dist/ice/cpp/src/Ice/SSL/SecureTransportTransceiverI.cpp +621 -0
  318. data/dist/ice/cpp/src/Ice/SSL/SecureTransportTransceiverI.h +91 -0
  319. data/dist/ice/cpp/src/Ice/SSL/SecureTransportUtil.cpp +1048 -0
  320. data/dist/ice/cpp/src/Ice/SSL/SecureTransportUtil.h +40 -0
  321. data/dist/ice/cpp/src/Ice/SSL/TrustManager.cpp +233 -0
  322. data/dist/ice/cpp/src/Ice/SSL/TrustManager.h +42 -0
  323. data/dist/ice/cpp/src/Ice/SSL/TrustManagerF.h +14 -0
  324. data/dist/ice/cpp/src/Ice/ScannerConfig.h +35 -0
  325. data/dist/ice/cpp/src/Ice/Selector.cpp +341 -606
  326. data/dist/ice/cpp/src/Ice/Selector.h +167 -224
  327. data/dist/ice/cpp/src/Ice/ServantManager.cpp +195 -128
  328. data/dist/ice/cpp/src/Ice/ServantManager.h +52 -55
  329. data/dist/ice/cpp/src/Ice/ServantManagerF.h +14 -0
  330. data/dist/ice/cpp/src/Ice/Service.cpp +548 -641
  331. data/dist/ice/cpp/src/Ice/SharedContext.h +13 -26
  332. data/dist/ice/cpp/src/Ice/SliceLoader.cpp +53 -0
  333. data/dist/ice/cpp/src/Ice/SlicedData.cpp +17 -96
  334. data/dist/ice/cpp/src/Ice/StreamSocket.cpp +104 -151
  335. data/dist/ice/cpp/src/Ice/StreamSocket.h +48 -60
  336. data/dist/ice/cpp/src/Ice/StringConverter.cpp +586 -0
  337. data/dist/ice/cpp/src/Ice/StringUtil.cpp +1137 -0
  338. data/dist/ice/cpp/src/Ice/SysLoggerI.cpp +41 -47
  339. data/dist/ice/cpp/src/Ice/SysLoggerI.h +24 -27
  340. data/dist/ice/cpp/src/Ice/SystemdJournalI.cpp +16 -17
  341. data/dist/ice/cpp/src/Ice/SystemdJournalI.h +19 -25
  342. data/dist/ice/cpp/src/Ice/TargetCompare.h +96 -0
  343. data/dist/ice/cpp/src/Ice/TcpAcceptor.cpp +67 -88
  344. data/dist/ice/cpp/src/Ice/TcpAcceptor.h +34 -40
  345. data/dist/ice/cpp/src/Ice/TcpConnector.cpp +42 -41
  346. data/dist/ice/cpp/src/Ice/TcpConnector.h +26 -35
  347. data/dist/ice/cpp/src/Ice/TcpEndpointI.cpp +172 -146
  348. data/dist/ice/cpp/src/Ice/TcpEndpointI.h +76 -80
  349. data/dist/ice/cpp/src/Ice/TcpTransceiver.cpp +38 -26
  350. data/dist/ice/cpp/src/Ice/TcpTransceiver.h +40 -45
  351. data/dist/ice/cpp/src/Ice/ThreadPool.cpp +333 -515
  352. data/dist/ice/cpp/src/Ice/ThreadPool.h +202 -290
  353. data/dist/ice/cpp/src/Ice/ThreadPoolF.h +14 -0
  354. data/dist/ice/cpp/src/Ice/TimeUtil.cpp +47 -0
  355. data/dist/ice/cpp/src/Ice/TimeUtil.h +21 -0
  356. data/dist/ice/cpp/src/Ice/Timer.cpp +73 -167
  357. data/dist/ice/cpp/src/Ice/Timer.h +212 -0
  358. data/dist/ice/cpp/src/Ice/TraceLevels.cpp +11 -29
  359. data/dist/ice/cpp/src/Ice/TraceLevels.h +22 -28
  360. data/dist/ice/cpp/src/Ice/TraceLevelsF.h +4 -11
  361. data/dist/ice/cpp/src/Ice/TraceUtil.cpp +136 -215
  362. data/dist/ice/cpp/src/Ice/TraceUtil.h +27 -16
  363. data/dist/ice/cpp/src/Ice/Transceiver.cpp +3 -7
  364. data/dist/ice/cpp/src/Ice/Transceiver.h +35 -32
  365. data/dist/ice/cpp/src/Ice/TransceiverF.h +10 -20
  366. data/dist/ice/cpp/src/Ice/UUID.cpp +79 -0
  367. data/dist/ice/cpp/src/Ice/UdpConnector.cpp +39 -39
  368. data/dist/ice/cpp/src/Ice/UdpConnector.h +27 -36
  369. data/dist/ice/cpp/src/Ice/UdpEndpointI.cpp +178 -213
  370. data/dist/ice/cpp/src/Ice/UdpEndpointI.h +82 -85
  371. data/dist/ice/cpp/src/Ice/UdpTransceiver.cpp +201 -221
  372. data/dist/ice/cpp/src/Ice/UdpTransceiver.h +68 -74
  373. data/dist/ice/cpp/{include/IceUtil → src/Ice}/UndefSysMacros.h +12 -12
  374. data/dist/ice/cpp/src/Ice/UniqueRef.h +77 -0
  375. data/dist/ice/cpp/src/Ice/UserException.cpp +58 -0
  376. data/dist/ice/cpp/src/Ice/Value.cpp +107 -38
  377. data/dist/ice/cpp/src/Ice/WSAcceptor.cpp +10 -15
  378. data/dist/ice/cpp/src/Ice/WSAcceptor.h +31 -37
  379. data/dist/ice/cpp/src/Ice/WSConnector.cpp +25 -40
  380. data/dist/ice/cpp/src/Ice/WSConnector.h +26 -33
  381. data/dist/ice/cpp/src/Ice/WSEndpoint.cpp +164 -217
  382. data/dist/ice/cpp/src/Ice/WSEndpoint.h +72 -83
  383. data/dist/ice/cpp/src/Ice/WSTransceiver.cpp +469 -458
  384. data/dist/ice/cpp/src/Ice/WSTransceiver.h +117 -123
  385. data/dist/ice/cpp/src/Ice/generated/BuiltinSequences.cpp +20 -29
  386. data/dist/ice/cpp/src/Ice/generated/Context.cpp +40 -0
  387. data/dist/ice/cpp/src/Ice/generated/EndpointTypes.cpp +20 -31
  388. data/dist/ice/cpp/src/Ice/generated/Identity.cpp +24 -34
  389. data/dist/ice/cpp/src/Ice/generated/Locator.cpp +454 -1744
  390. data/dist/ice/cpp/src/Ice/generated/LocatorRegistry.cpp +577 -0
  391. data/dist/ice/cpp/src/Ice/generated/Metrics.cpp +824 -1971
  392. data/dist/ice/cpp/src/Ice/generated/OperationMode.cpp +56 -0
  393. data/dist/ice/cpp/src/Ice/generated/Process.cpp +190 -331
  394. data/dist/ice/cpp/src/Ice/generated/PropertiesAdmin.cpp +289 -449
  395. data/dist/ice/cpp/src/Ice/generated/PropertyDict.cpp +40 -0
  396. data/dist/ice/cpp/src/Ice/generated/RemoteLogger.cpp +547 -867
  397. data/dist/ice/cpp/src/Ice/generated/ReplyStatus.cpp +70 -0
  398. data/dist/ice/cpp/src/Ice/generated/Router.cpp +406 -723
  399. data/dist/ice/cpp/src/Ice/generated/SliceChecksumDict.cpp +19 -29
  400. data/dist/ice/cpp/src/Ice/generated/Version.cpp +28 -31
  401. data/dist/ice/cpp/src/IceDiscovery/LocatorI.cpp +76 -139
  402. data/dist/ice/cpp/src/IceDiscovery/LocatorI.h +55 -96
  403. data/dist/ice/cpp/src/IceDiscovery/LookupI.cpp +190 -303
  404. data/dist/ice/cpp/src/IceDiscovery/LookupI.h +126 -185
  405. data/dist/ice/cpp/src/IceDiscovery/PluginI.cpp +56 -77
  406. data/dist/ice/cpp/src/IceDiscovery/PluginI.h +20 -25
  407. data/dist/ice/cpp/src/IceDiscovery/generated/Lookup.cpp +638 -0
  408. data/dist/ice/cpp/src/IceLocatorDiscovery/Plugin.h +14 -37
  409. data/dist/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +411 -649
  410. data/dist/ice/cpp/src/IceLocatorDiscovery/generated/Lookup.cpp +468 -0
  411. data/dist/ice/cpp/src/Slice/DeprecationReporter.cpp +172 -0
  412. data/dist/ice/cpp/src/Slice/DeprecationReporter.h +14 -0
  413. data/dist/ice/cpp/src/Slice/DocCommentParser.cpp +736 -0
  414. data/dist/ice/cpp/src/Slice/DocCommentParser.h +61 -0
  415. data/dist/ice/cpp/src/Slice/FileTracker.cpp +25 -75
  416. data/dist/ice/cpp/src/Slice/FileTracker.h +35 -56
  417. data/dist/ice/cpp/src/Slice/Grammar.cpp +2711 -3382
  418. data/dist/ice/cpp/src/Slice/Grammar.h +95 -75
  419. data/dist/ice/cpp/src/Slice/GrammarUtil.h +117 -217
  420. data/dist/ice/cpp/src/Slice/MetadataValidation.cpp +486 -0
  421. data/dist/ice/cpp/src/Slice/MetadataValidation.h +106 -0
  422. data/dist/ice/cpp/src/Slice/Parser.cpp +3068 -5223
  423. data/dist/ice/cpp/src/Slice/Parser.h +1086 -1065
  424. data/dist/ice/cpp/src/Slice/Preprocessor.cpp +97 -599
  425. data/dist/ice/cpp/src/Slice/Preprocessor.h +26 -42
  426. data/dist/ice/cpp/src/Slice/Scanner.cpp +1562 -924
  427. data/dist/ice/cpp/src/Slice/SliceUtil.cpp +517 -113
  428. data/dist/ice/cpp/src/Slice/StringLiteralUtil.cpp +254 -269
  429. data/dist/ice/cpp/src/Slice/Util.h +126 -35
  430. data/dist/ice/cpp/src/slice2rb/Main.cpp +13 -15
  431. data/dist/ice/cpp/src/slice2rb/Ruby.cpp +250 -0
  432. data/dist/ice/cpp/src/slice2rb/RubyUtil.cpp +1197 -0
  433. data/dist/ice/cpp/src/slice2rb/RubyUtil.h +56 -0
  434. data/dist/ice/slice/Glacier2/Metrics.ice +34 -75
  435. data/dist/ice/slice/Glacier2/PermissionsVerifier.ice +42 -98
  436. data/dist/ice/slice/Glacier2/Router.ice +80 -173
  437. data/dist/ice/slice/Glacier2/SSLInfo.ice +23 -40
  438. data/dist/ice/slice/Glacier2/Session.ice +120 -261
  439. data/dist/ice/slice/Ice/BuiltinSequences.ice +33 -38
  440. data/dist/ice/slice/Ice/Context.ice +24 -0
  441. data/dist/ice/slice/Ice/EndpointTypes.ice +35 -33
  442. data/dist/ice/slice/Ice/Identity.ice +24 -63
  443. data/dist/ice/slice/Ice/Locator.ice +61 -226
  444. data/dist/ice/slice/Ice/LocatorRegistry.ice +77 -0
  445. data/dist/ice/slice/Ice/Metrics.ice +189 -424
  446. data/dist/ice/slice/Ice/OperationMode.ice +38 -0
  447. data/dist/ice/slice/Ice/Process.ice +16 -52
  448. data/dist/ice/slice/Ice/PropertiesAdmin.ice +25 -75
  449. data/dist/ice/slice/Ice/PropertyDict.ice +23 -0
  450. data/dist/ice/slice/Ice/RemoteLogger.ice +113 -213
  451. data/dist/ice/slice/Ice/ReplyStatus.ice +65 -0
  452. data/dist/ice/slice/Ice/Router.ice +42 -91
  453. data/dist/ice/slice/Ice/SliceChecksumDict.ice +7 -25
  454. data/dist/ice/slice/Ice/Version.ice +31 -39
  455. data/dist/ice/slice/IceBox/ServiceManager.ice +79 -0
  456. data/dist/ice/slice/IceGrid/Admin.ice +942 -1918
  457. data/dist/ice/slice/IceGrid/Descriptor.ice +476 -1051
  458. data/dist/ice/slice/IceGrid/Exception.ice +86 -384
  459. data/dist/ice/slice/IceGrid/FileParser.ice +23 -59
  460. data/dist/ice/slice/IceGrid/Registry.ice +117 -256
  461. data/dist/ice/slice/IceGrid/Session.ice +46 -110
  462. data/dist/ice/slice/IceGrid/UserAccountMapper.ice +22 -57
  463. data/dist/ice/slice/IceStorm/IceStorm.ice +173 -401
  464. data/dist/ice/slice/IceStorm/Metrics.ice +28 -70
  465. data/dist/lib/Glacier2/Metrics.rb +16 -31
  466. data/dist/lib/Glacier2/PermissionsVerifier.rb +18 -50
  467. data/dist/lib/Glacier2/Router.rb +20 -42
  468. data/dist/lib/Glacier2/SSLInfo.rb +14 -22
  469. data/dist/lib/Glacier2/Session.rb +53 -113
  470. data/dist/lib/Glacier2.rb +6 -6
  471. data/dist/lib/Ice/BuiltinSequences.rb +14 -26
  472. data/dist/lib/Ice/CompressBatch.rb +50 -0
  473. data/dist/lib/Ice/Context.rb +12 -0
  474. data/dist/lib/Ice/EndpointSelectionType.rb +49 -0
  475. data/dist/lib/Ice/EndpointTypes.rb +14 -55
  476. data/dist/lib/Ice/Exception.rb +20 -0
  477. data/dist/lib/Ice/Identity.rb +10 -26
  478. data/dist/lib/Ice/IdentitySpaceship.rb +16 -0
  479. data/dist/lib/Ice/InitializationData.rb +12 -0
  480. data/dist/lib/Ice/LocalExceptions.rb +168 -0
  481. data/dist/lib/Ice/Locator.rb +21 -134
  482. data/dist/lib/Ice/LocatorRegistry.rb +73 -0
  483. data/dist/lib/Ice/Metrics.rb +85 -132
  484. data/dist/lib/Ice/OperationMode.rb +58 -0
  485. data/dist/lib/Ice/Process.rb +12 -31
  486. data/dist/lib/Ice/PropertiesAdmin.rb +12 -36
  487. data/dist/lib/Ice/PropertyDict.rb +12 -0
  488. data/dist/lib/Ice/Proxy.rb +85 -0
  489. data/dist/lib/Ice/ProxyFunctions.rb +69 -0
  490. data/dist/lib/Ice/RemoteLogger.rb +29 -60
  491. data/dist/lib/Ice/ReplyStatus.rb +65 -0
  492. data/dist/lib/Ice/Router.rb +19 -47
  493. data/dist/lib/Ice/SliceChecksumDict.rb +5 -17
  494. data/dist/lib/Ice/SliceUtil.rb +41 -0
  495. data/dist/lib/Ice/Struct.rb +11 -0
  496. data/dist/lib/Ice/ToStringMode.rb +50 -0
  497. data/dist/lib/Ice/Value.rb +93 -0
  498. data/dist/lib/Ice/Version.rb +12 -24
  499. data/dist/lib/Ice.rb +29 -665
  500. data/dist/lib/IceBox/ServiceManager.rb +104 -0
  501. data/dist/lib/IceBox.rb +2 -4
  502. data/dist/lib/IceGrid/Admin.rb +303 -291
  503. data/dist/lib/IceGrid/Descriptor.rb +147 -192
  504. data/dist/lib/IceGrid/Exception.rb +26 -257
  505. data/dist/lib/IceGrid/FileParser.rb +12 -36
  506. data/dist/lib/IceGrid/Registry.rb +35 -76
  507. data/dist/lib/IceGrid/Session.rb +19 -34
  508. data/dist/lib/IceGrid/UserAccountMapper.rb +11 -34
  509. data/dist/lib/IceGrid.rb +3 -3
  510. data/dist/lib/IceStorm/IceStorm.rb +51 -132
  511. data/dist/lib/IceStorm/Metrics.rb +19 -37
  512. data/dist/lib/IceStorm.rb +3 -5
  513. data/extconf.rb +6 -8
  514. data/ice.gemspec +3 -3
  515. data/scripts/slice2rb +1 -3
  516. metadata +206 -386
  517. data/dist/IceRuby/ValueFactoryManager.cpp +0 -445
  518. data/dist/IceRuby/ValueFactoryManager.h +0 -95
  519. data/dist/ice/cpp/include/Ice/Application.h +0 -326
  520. data/dist/ice/cpp/include/Ice/AsyncResult.h +0 -155
  521. data/dist/ice/cpp/include/Ice/AsyncResultF.h +0 -23
  522. data/dist/ice/cpp/include/Ice/BatchRequestInterceptor.h +0 -75
  523. data/dist/ice/cpp/include/Ice/CommunicatorAsync.h +0 -154
  524. data/dist/ice/cpp/include/Ice/Comparable.h +0 -205
  525. data/dist/ice/cpp/include/Ice/ConnectionAsync.h +0 -302
  526. data/dist/ice/cpp/include/Ice/ConsoleUtil.h +0 -23
  527. data/dist/ice/cpp/include/Ice/DefaultValueFactory.h +0 -57
  528. data/dist/ice/cpp/include/Ice/DispatchInterceptor.h +0 -41
  529. data/dist/ice/cpp/include/Ice/Dispatcher.h +0 -67
  530. data/dist/ice/cpp/include/Ice/DynamicLibrary.h +0 -102
  531. data/dist/ice/cpp/include/Ice/DynamicLibraryF.h +0 -24
  532. data/dist/ice/cpp/include/Ice/ExceptionHelpers.h +0 -74
  533. data/dist/ice/cpp/include/Ice/FactoryTable.h +0 -73
  534. data/dist/ice/cpp/include/Ice/FactoryTableInit.h +0 -84
  535. data/dist/ice/cpp/include/Ice/Functional.h +0 -140
  536. data/dist/ice/cpp/include/Ice/GCObject.h +0 -76
  537. data/dist/ice/cpp/include/Ice/Handle.h +0 -182
  538. data/dist/ice/cpp/include/Ice/Incoming.h +0 -225
  539. data/dist/ice/cpp/include/Ice/IncomingAsync.h +0 -186
  540. data/dist/ice/cpp/include/Ice/IncomingAsyncF.h +0 -36
  541. data/dist/ice/cpp/include/Ice/InterfaceByValue.h +0 -57
  542. data/dist/ice/cpp/include/Ice/LocalObject.h +0 -35
  543. data/dist/ice/cpp/include/Ice/LocalObjectF.h +0 -21
  544. data/dist/ice/cpp/include/Ice/MetricsAdminI.h +0 -715
  545. data/dist/ice/cpp/include/Ice/MetricsFunctional.h +0 -159
  546. data/dist/ice/cpp/include/Ice/MetricsObserverI.h +0 -669
  547. data/dist/ice/cpp/include/Ice/Optional.h +0 -1114
  548. data/dist/ice/cpp/include/Ice/OutgoingAsyncF.h +0 -39
  549. data/dist/ice/cpp/include/Ice/Protocol.h +0 -274
  550. data/dist/ice/cpp/include/Ice/ProxyFactoryF.h +0 -21
  551. data/dist/ice/cpp/include/Ice/ProxyHandle.h +0 -318
  552. data/dist/ice/cpp/include/Ice/RegisterPlugins.h +0 -127
  553. data/dist/ice/cpp/include/Ice/ResponseHandlerF.h +0 -25
  554. data/dist/ice/cpp/include/Ice/SHA1.h +0 -40
  555. data/dist/ice/cpp/include/Ice/ServantManagerF.h +0 -21
  556. data/dist/ice/cpp/include/Ice/SliceChecksums.h +0 -33
  557. data/dist/ice/cpp/include/Ice/ThreadPoolF.h +0 -23
  558. data/dist/ice/cpp/include/Ice/UniquePtr.h +0 -95
  559. data/dist/ice/cpp/include/Ice/UniqueRef.h +0 -97
  560. data/dist/ice/cpp/include/IceSSL/Config.h +0 -21
  561. data/dist/ice/cpp/include/IceSSL/IceSSL.h +0 -24
  562. data/dist/ice/cpp/include/IceSSL/OpenSSL.h +0 -147
  563. data/dist/ice/cpp/include/IceSSL/Plugin.h +0 -712
  564. data/dist/ice/cpp/include/IceSSL/SChannel.h +0 -72
  565. data/dist/ice/cpp/include/IceSSL/SecureTransport.h +0 -72
  566. data/dist/ice/cpp/include/IceUtil/Atomic.h +0 -179
  567. data/dist/ice/cpp/include/IceUtil/Cond.h +0 -317
  568. data/dist/ice/cpp/include/IceUtil/Config.h +0 -392
  569. data/dist/ice/cpp/include/IceUtil/ConsoleUtil.h +0 -92
  570. data/dist/ice/cpp/include/IceUtil/CountDownLatch.h +0 -45
  571. data/dist/ice/cpp/include/IceUtil/CtrlCHandler.h +0 -96
  572. data/dist/ice/cpp/include/IceUtil/DisableWarnings.h +0 -44
  573. data/dist/ice/cpp/include/IceUtil/Exception.h +0 -394
  574. data/dist/ice/cpp/include/IceUtil/FileUtil.h +0 -140
  575. data/dist/ice/cpp/include/IceUtil/Functional.h +0 -389
  576. data/dist/ice/cpp/include/IceUtil/Handle.h +0 -261
  577. data/dist/ice/cpp/include/IceUtil/IceUtil.h +0 -40
  578. data/dist/ice/cpp/include/IceUtil/InputUtil.h +0 -42
  579. data/dist/ice/cpp/include/IceUtil/Iterator.h +0 -31
  580. data/dist/ice/cpp/include/IceUtil/Lock.h +0 -128
  581. data/dist/ice/cpp/include/IceUtil/Monitor.h +0 -243
  582. data/dist/ice/cpp/include/IceUtil/Mutex.h +0 -349
  583. data/dist/ice/cpp/include/IceUtil/MutexProtocol.h +0 -23
  584. data/dist/ice/cpp/include/IceUtil/MutexPtrLock.h +0 -78
  585. data/dist/ice/cpp/include/IceUtil/MutexPtrTryLock.h +0 -77
  586. data/dist/ice/cpp/include/IceUtil/Optional.h +0 -433
  587. data/dist/ice/cpp/include/IceUtil/Options.h +0 -135
  588. data/dist/ice/cpp/include/IceUtil/OutputUtil.h +0 -383
  589. data/dist/ice/cpp/include/IceUtil/PushDisableWarnings.h +0 -33
  590. data/dist/ice/cpp/include/IceUtil/Random.h +0 -55
  591. data/dist/ice/cpp/include/IceUtil/RecMutex.h +0 -107
  592. data/dist/ice/cpp/include/IceUtil/ResourceConfig.h +0 -37
  593. data/dist/ice/cpp/include/IceUtil/ScannerConfig.h +0 -40
  594. data/dist/ice/cpp/include/IceUtil/ScopedArray.h +0 -98
  595. data/dist/ice/cpp/include/IceUtil/Shared.h +0 -127
  596. data/dist/ice/cpp/include/IceUtil/StopWatch.h +0 -49
  597. data/dist/ice/cpp/include/IceUtil/StringConverter.h +0 -195
  598. data/dist/ice/cpp/include/IceUtil/StringUtil.h +0 -97
  599. data/dist/ice/cpp/include/IceUtil/Thread.h +0 -160
  600. data/dist/ice/cpp/include/IceUtil/ThreadException.h +0 -94
  601. data/dist/ice/cpp/include/IceUtil/Time.h +0 -205
  602. data/dist/ice/cpp/include/IceUtil/Timer.h +0 -153
  603. data/dist/ice/cpp/include/IceUtil/UUID.h +0 -21
  604. data/dist/ice/cpp/include/generated/Glacier2/Metrics.h +0 -475
  605. data/dist/ice/cpp/include/generated/Glacier2/PermissionsVerifier.h +0 -1430
  606. data/dist/ice/cpp/include/generated/Glacier2/PermissionsVerifierF.h +0 -147
  607. data/dist/ice/cpp/include/generated/Glacier2/Router.h +0 -3260
  608. data/dist/ice/cpp/include/generated/Glacier2/RouterF.h +0 -125
  609. data/dist/ice/cpp/include/generated/Glacier2/SSLInfo.h +0 -223
  610. data/dist/ice/cpp/include/generated/Glacier2/Session.h +0 -5894
  611. data/dist/ice/cpp/include/generated/Ice/Communicator.h +0 -1162
  612. data/dist/ice/cpp/include/generated/Ice/CommunicatorF.h +0 -101
  613. data/dist/ice/cpp/include/generated/Ice/Connection.h +0 -1703
  614. data/dist/ice/cpp/include/generated/Ice/ConnectionF.h +0 -119
  615. data/dist/ice/cpp/include/generated/Ice/Current.h +0 -322
  616. data/dist/ice/cpp/include/generated/Ice/Endpoint.h +0 -979
  617. data/dist/ice/cpp/include/generated/Ice/EndpointF.h +0 -166
  618. data/dist/ice/cpp/include/generated/Ice/FacetMap.h +0 -80
  619. data/dist/ice/cpp/include/generated/Ice/ImplicitContext.h +0 -284
  620. data/dist/ice/cpp/include/generated/Ice/ImplicitContextF.h +0 -101
  621. data/dist/ice/cpp/include/generated/Ice/Instrumentation.h +0 -1203
  622. data/dist/ice/cpp/include/generated/Ice/InstrumentationF.h +0 -128
  623. data/dist/ice/cpp/include/generated/Ice/LocalException.h +0 -7437
  624. data/dist/ice/cpp/include/generated/Ice/LocatorF.h +0 -147
  625. data/dist/ice/cpp/include/generated/Ice/Logger.h +0 -237
  626. data/dist/ice/cpp/include/generated/Ice/LoggerF.h +0 -101
  627. data/dist/ice/cpp/include/generated/Ice/ObjectAdapter.h +0 -1181
  628. data/dist/ice/cpp/include/generated/Ice/ObjectAdapterF.h +0 -101
  629. data/dist/ice/cpp/include/generated/Ice/ObjectFactory.h +0 -203
  630. data/dist/ice/cpp/include/generated/Ice/Plugin.h +0 -318
  631. data/dist/ice/cpp/include/generated/Ice/PluginF.h +0 -110
  632. data/dist/ice/cpp/include/generated/Ice/ProcessF.h +0 -125
  633. data/dist/ice/cpp/include/generated/Ice/Properties.h +0 -452
  634. data/dist/ice/cpp/include/generated/Ice/PropertiesF.h +0 -134
  635. data/dist/ice/cpp/include/generated/Ice/RouterF.h +0 -125
  636. data/dist/ice/cpp/include/generated/Ice/ServantLocator.h +0 -305
  637. data/dist/ice/cpp/include/generated/Ice/ServantLocatorF.h +0 -101
  638. data/dist/ice/cpp/include/generated/Ice/ValueFactory.h +0 -330
  639. data/dist/ice/cpp/include/generated/IceBox/IceBox.h +0 -3269
  640. data/dist/ice/cpp/include/generated/IceGrid/Admin.h +0 -33773
  641. data/dist/ice/cpp/include/generated/IceGrid/Descriptor.h +0 -5254
  642. data/dist/ice/cpp/include/generated/IceGrid/Exception.h +0 -2834
  643. data/dist/ice/cpp/include/generated/IceGrid/FileParser.h +0 -824
  644. data/dist/ice/cpp/include/generated/IceGrid/PluginFacade.h +0 -635
  645. data/dist/ice/cpp/include/generated/IceGrid/Registry.h +0 -5089
  646. data/dist/ice/cpp/include/generated/IceGrid/Session.h +0 -2240
  647. data/dist/ice/cpp/include/generated/IceGrid/UserAccountMapper.h +0 -800
  648. data/dist/ice/cpp/include/generated/IcePatch2/FileInfo.h +0 -325
  649. data/dist/ice/cpp/include/generated/IcePatch2/FileServer.h +0 -2891
  650. data/dist/ice/cpp/include/generated/IceSSL/ConnectionInfo.h +0 -228
  651. data/dist/ice/cpp/include/generated/IceSSL/ConnectionInfoF.h +0 -101
  652. data/dist/ice/cpp/include/generated/IceSSL/EndpointInfo.h +0 -186
  653. data/dist/ice/cpp/include/generated/IceStorm/IceStorm.h +0 -6627
  654. data/dist/ice/cpp/include/generated/IceStorm/Metrics.h +0 -665
  655. data/dist/ice/cpp/src/Ice/ACM.cpp +0 -380
  656. data/dist/ice/cpp/src/Ice/ACM.h +0 -119
  657. data/dist/ice/cpp/src/Ice/ACMF.h +0 -30
  658. data/dist/ice/cpp/src/Ice/Acceptor.cpp +0 -16
  659. data/dist/ice/cpp/src/Ice/Application.cpp +0 -661
  660. data/dist/ice/cpp/src/Ice/AsyncResult.cpp +0 -70
  661. data/dist/ice/cpp/src/Ice/CommunicatorI.cpp +0 -586
  662. data/dist/ice/cpp/src/Ice/CommunicatorI.h +0 -167
  663. data/dist/ice/cpp/src/Ice/Cond.cpp +0 -381
  664. data/dist/ice/cpp/src/Ice/ConnectionRequestHandler.cpp +0 -73
  665. data/dist/ice/cpp/src/Ice/ConnectionRequestHandler.h +0 -41
  666. data/dist/ice/cpp/src/Ice/Connector.cpp +0 -16
  667. data/dist/ice/cpp/src/Ice/CountDownLatch.cpp +0 -171
  668. data/dist/ice/cpp/src/Ice/DispatchInterceptor.cpp +0 -37
  669. data/dist/ice/cpp/src/Ice/FactoryTable.cpp +0 -162
  670. data/dist/ice/cpp/src/Ice/FactoryTableInit.cpp +0 -88
  671. data/dist/ice/cpp/src/Ice/GCObject.cpp +0 -442
  672. data/dist/ice/cpp/src/Ice/IconvStringConverter.cpp +0 -51
  673. data/dist/ice/cpp/src/Ice/ImplicitContextI.cpp +0 -655
  674. data/dist/ice/cpp/src/Ice/ImplicitContextI.h +0 -48
  675. data/dist/ice/cpp/src/Ice/Incoming.cpp +0 -795
  676. data/dist/ice/cpp/src/Ice/IncomingAsync.cpp +0 -230
  677. data/dist/ice/cpp/src/Ice/IncomingRequest.h +0 -33
  678. data/dist/ice/cpp/src/Ice/LocalObject.cpp +0 -23
  679. data/dist/ice/cpp/src/Ice/MetricsObserverI.cpp +0 -8
  680. data/dist/ice/cpp/src/Ice/PropertiesAdminI.cpp +0 -265
  681. data/dist/ice/cpp/src/Ice/PropertiesAdminI.h +0 -64
  682. data/dist/ice/cpp/src/Ice/PropertiesI.cpp +0 -739
  683. data/dist/ice/cpp/src/Ice/PropertiesI.h +0 -70
  684. data/dist/ice/cpp/src/Ice/ProtocolPluginFacadeF.h +0 -21
  685. data/dist/ice/cpp/src/Ice/ProxyFactory.cpp +0 -300
  686. data/dist/ice/cpp/src/Ice/ProxyFactory.h +0 -57
  687. data/dist/ice/cpp/src/Ice/RegisterPluginsInit.cpp +0 -38
  688. data/dist/ice/cpp/src/Ice/RegisterPluginsInit.h +0 -20
  689. data/dist/ice/cpp/src/Ice/ReplyStatus.h +0 -24
  690. data/dist/ice/cpp/src/Ice/RequestHandlerFactory.cpp +0 -77
  691. data/dist/ice/cpp/src/Ice/RequestHandlerFactory.h +0 -37
  692. data/dist/ice/cpp/src/Ice/ResponseHandler.cpp +0 -12
  693. data/dist/ice/cpp/src/Ice/ResponseHandler.h +0 -43
  694. data/dist/ice/cpp/src/Ice/SliceChecksums.cpp +0 -75
  695. data/dist/ice/cpp/src/Ice/StringConverterPlugin.cpp +0 -192
  696. data/dist/ice/cpp/src/Ice/StringUtil.h +0 -30
  697. data/dist/ice/cpp/src/Ice/Thread.cpp +0 -569
  698. data/dist/ice/cpp/src/Ice/ValueFactoryManagerI.cpp +0 -61
  699. data/dist/ice/cpp/src/Ice/ValueFactoryManagerI.h +0 -37
  700. data/dist/ice/cpp/src/Ice/VirtualShared.h +0 -38
  701. data/dist/ice/cpp/src/Ice/generated/Communicator.cpp +0 -79
  702. data/dist/ice/cpp/src/Ice/generated/CommunicatorF.cpp +0 -61
  703. data/dist/ice/cpp/src/Ice/generated/Connection.cpp +0 -155
  704. data/dist/ice/cpp/src/Ice/generated/ConnectionF.cpp +0 -61
  705. data/dist/ice/cpp/src/Ice/generated/Current.cpp +0 -62
  706. data/dist/ice/cpp/src/Ice/generated/Endpoint.cpp +0 -147
  707. data/dist/ice/cpp/src/Ice/generated/EndpointF.cpp +0 -61
  708. data/dist/ice/cpp/src/Ice/generated/FacetMap.cpp +0 -49
  709. data/dist/ice/cpp/src/Ice/generated/ImplicitContext.cpp +0 -75
  710. data/dist/ice/cpp/src/Ice/generated/ImplicitContextF.cpp +0 -61
  711. data/dist/ice/cpp/src/Ice/generated/Instrumentation.cpp +0 -188
  712. data/dist/ice/cpp/src/Ice/generated/InstrumentationF.cpp +0 -66
  713. data/dist/ice/cpp/src/Ice/generated/LocalException.cpp +0 -3262
  714. data/dist/ice/cpp/src/Ice/generated/LocatorF.cpp +0 -63
  715. data/dist/ice/cpp/src/Ice/generated/Logger.cpp +0 -73
  716. data/dist/ice/cpp/src/Ice/generated/LoggerF.cpp +0 -61
  717. data/dist/ice/cpp/src/Ice/generated/ObjectAdapter.cpp +0 -79
  718. data/dist/ice/cpp/src/Ice/generated/ObjectAdapterF.cpp +0 -61
  719. data/dist/ice/cpp/src/Ice/generated/ObjectFactory.cpp +0 -75
  720. data/dist/ice/cpp/src/Ice/generated/Plugin.cpp +0 -87
  721. data/dist/ice/cpp/src/Ice/generated/PluginF.cpp +0 -61
  722. data/dist/ice/cpp/src/Ice/generated/ProcessF.cpp +0 -63
  723. data/dist/ice/cpp/src/Ice/generated/Properties.cpp +0 -78
  724. data/dist/ice/cpp/src/Ice/generated/PropertiesF.cpp +0 -63
  725. data/dist/ice/cpp/src/Ice/generated/RouterF.cpp +0 -63
  726. data/dist/ice/cpp/src/Ice/generated/ServantLocator.cpp +0 -75
  727. data/dist/ice/cpp/src/Ice/generated/ServantLocatorF.cpp +0 -61
  728. data/dist/ice/cpp/src/Ice/generated/ValueFactory.cpp +0 -83
  729. data/dist/ice/cpp/src/Ice/ios/StreamAcceptor.cpp +0 -154
  730. data/dist/ice/cpp/src/Ice/ios/StreamAcceptor.h +0 -49
  731. data/dist/ice/cpp/src/Ice/ios/StreamConnector.cpp +0 -146
  732. data/dist/ice/cpp/src/Ice/ios/StreamConnector.h +0 -52
  733. data/dist/ice/cpp/src/Ice/ios/StreamEndpointI.cpp +0 -477
  734. data/dist/ice/cpp/src/Ice/ios/StreamEndpointI.h +0 -156
  735. data/dist/ice/cpp/src/Ice/ios/StreamTransceiver.cpp +0 -570
  736. data/dist/ice/cpp/src/Ice/ios/StreamTransceiver.h +0 -93
  737. data/dist/ice/cpp/src/IceDiscovery/generated/IceDiscovery/IceDiscovery.h +0 -1889
  738. data/dist/ice/cpp/src/IceDiscovery/generated/IceDiscovery.cpp +0 -915
  739. data/dist/ice/cpp/src/IceLocatorDiscovery/generated/IceLocatorDiscovery/IceLocatorDiscovery.h +0 -1197
  740. data/dist/ice/cpp/src/IceLocatorDiscovery/generated/IceLocatorDiscovery.cpp +0 -730
  741. data/dist/ice/cpp/src/IceSSL/AcceptorI.cpp +0 -105
  742. data/dist/ice/cpp/src/IceSSL/AcceptorI.h +0 -52
  743. data/dist/ice/cpp/src/IceSSL/CertificateI.cpp +0 -301
  744. data/dist/ice/cpp/src/IceSSL/CertificateI.h +0 -64
  745. data/dist/ice/cpp/src/IceSSL/ConnectorI.cpp +0 -102
  746. data/dist/ice/cpp/src/IceSSL/ConnectorI.h +0 -44
  747. data/dist/ice/cpp/src/IceSSL/EndpointI.cpp +0 -372
  748. data/dist/ice/cpp/src/IceSSL/EndpointI.h +0 -100
  749. data/dist/ice/cpp/src/IceSSL/Instance.cpp +0 -28
  750. data/dist/ice/cpp/src/IceSSL/Instance.h +0 -37
  751. data/dist/ice/cpp/src/IceSSL/InstanceF.h +0 -33
  752. data/dist/ice/cpp/src/IceSSL/OpenSSLCertificateI.cpp +0 -688
  753. data/dist/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +0 -1147
  754. data/dist/ice/cpp/src/IceSSL/OpenSSLEngine.h +0 -59
  755. data/dist/ice/cpp/src/IceSSL/OpenSSLEngineF.h +0 -27
  756. data/dist/ice/cpp/src/IceSSL/OpenSSLPluginI.cpp +0 -127
  757. data/dist/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +0 -1092
  758. data/dist/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +0 -90
  759. data/dist/ice/cpp/src/IceSSL/OpenSSLUtil.cpp +0 -288
  760. data/dist/ice/cpp/src/IceSSL/OpenSSLUtil.h +0 -58
  761. data/dist/ice/cpp/src/IceSSL/PluginI.cpp +0 -246
  762. data/dist/ice/cpp/src/IceSSL/PluginI.h +0 -67
  763. data/dist/ice/cpp/src/IceSSL/RFC2253.h +0 -62
  764. data/dist/ice/cpp/src/IceSSL/SChannelCertificateI.cpp +0 -721
  765. data/dist/ice/cpp/src/IceSSL/SChannelEngine.cpp +0 -1283
  766. data/dist/ice/cpp/src/IceSSL/SChannelEngine.h +0 -123
  767. data/dist/ice/cpp/src/IceSSL/SChannelEngineF.h +0 -31
  768. data/dist/ice/cpp/src/IceSSL/SChannelPluginI.cpp +0 -73
  769. data/dist/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +0 -1174
  770. data/dist/ice/cpp/src/IceSSL/SChannelTransceiverI.h +0 -133
  771. data/dist/ice/cpp/src/IceSSL/SSLEngine.cpp +0 -313
  772. data/dist/ice/cpp/src/IceSSL/SSLEngine.h +0 -100
  773. data/dist/ice/cpp/src/IceSSL/SSLEngineF.h +0 -21
  774. data/dist/ice/cpp/src/IceSSL/SecureTransportCertificateI.cpp +0 -999
  775. data/dist/ice/cpp/src/IceSSL/SecureTransportEngine.cpp +0 -1308
  776. data/dist/ice/cpp/src/IceSSL/SecureTransportEngine.h +0 -59
  777. data/dist/ice/cpp/src/IceSSL/SecureTransportEngineF.h +0 -29
  778. data/dist/ice/cpp/src/IceSSL/SecureTransportPluginI.cpp +0 -75
  779. data/dist/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +0 -719
  780. data/dist/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +0 -92
  781. data/dist/ice/cpp/src/IceSSL/SecureTransportUtil.cpp +0 -868
  782. data/dist/ice/cpp/src/IceSSL/SecureTransportUtil.h +0 -45
  783. data/dist/ice/cpp/src/IceSSL/TrustManager.cpp +0 -236
  784. data/dist/ice/cpp/src/IceSSL/TrustManager.h +0 -46
  785. data/dist/ice/cpp/src/IceSSL/TrustManagerF.h +0 -21
  786. data/dist/ice/cpp/src/IceSSL/Util.cpp +0 -192
  787. data/dist/ice/cpp/src/IceSSL/Util.h +0 -99
  788. data/dist/ice/cpp/src/IceSSL/generated/ConnectionInfo.cpp +0 -75
  789. data/dist/ice/cpp/src/IceSSL/generated/ConnectionInfoF.cpp +0 -61
  790. data/dist/ice/cpp/src/IceSSL/generated/EndpointInfo.cpp +0 -75
  791. data/dist/ice/cpp/src/IceUtil/ConvertUTF.cpp +0 -472
  792. data/dist/ice/cpp/src/IceUtil/ConvertUTF.h +0 -147
  793. data/dist/ice/cpp/src/IceUtil/CtrlCHandler.cpp +0 -259
  794. data/dist/ice/cpp/src/IceUtil/FileUtil.cpp +0 -471
  795. data/dist/ice/cpp/src/IceUtil/InputUtil.cpp +0 -36
  796. data/dist/ice/cpp/src/IceUtil/MutexProtocol.cpp +0 -19
  797. data/dist/ice/cpp/src/IceUtil/OutputUtil.cpp +0 -609
  798. data/dist/ice/cpp/src/IceUtil/Random.cpp +0 -180
  799. data/dist/ice/cpp/src/IceUtil/RecMutex.cpp +0 -238
  800. data/dist/ice/cpp/src/IceUtil/Shared.cpp +0 -71
  801. data/dist/ice/cpp/src/IceUtil/StringConverter.cpp +0 -690
  802. data/dist/ice/cpp/src/IceUtil/StringUtil.cpp +0 -1135
  803. data/dist/ice/cpp/src/IceUtil/ThreadException.cpp +0 -130
  804. data/dist/ice/cpp/src/IceUtil/Time.cpp +0 -307
  805. data/dist/ice/cpp/src/IceUtil/UUID.cpp +0 -165
  806. data/dist/ice/cpp/src/IceUtil/Unicode.cpp +0 -183
  807. data/dist/ice/cpp/src/IceUtil/Unicode.h +0 -43
  808. data/dist/ice/cpp/src/IceUtil/UtilException.cpp +0 -839
  809. data/dist/ice/cpp/src/Slice/CPlusPlusUtil.cpp +0 -1810
  810. data/dist/ice/cpp/src/Slice/CPlusPlusUtil.h +0 -72
  811. data/dist/ice/cpp/src/Slice/Checksum.cpp +0 -447
  812. data/dist/ice/cpp/src/Slice/Checksum.h +0 -21
  813. data/dist/ice/cpp/src/Slice/JavaUtil.cpp +0 -5183
  814. data/dist/ice/cpp/src/Slice/JavaUtil.h +0 -407
  815. data/dist/ice/cpp/src/Slice/MD5.cpp +0 -52
  816. data/dist/ice/cpp/src/Slice/MD5.h +0 -39
  817. data/dist/ice/cpp/src/Slice/MD5I.cpp +0 -393
  818. data/dist/ice/cpp/src/Slice/MD5I.h +0 -91
  819. data/dist/ice/cpp/src/Slice/PHPUtil.cpp +0 -157
  820. data/dist/ice/cpp/src/Slice/PHPUtil.h +0 -36
  821. data/dist/ice/cpp/src/Slice/Python.cpp +0 -830
  822. data/dist/ice/cpp/src/Slice/PythonUtil.cpp +0 -3439
  823. data/dist/ice/cpp/src/Slice/PythonUtil.h +0 -70
  824. data/dist/ice/cpp/src/Slice/Ruby.cpp +0 -350
  825. data/dist/ice/cpp/src/Slice/RubyUtil.cpp +0 -1571
  826. data/dist/ice/cpp/src/Slice/RubyUtil.h +0 -49
  827. data/dist/ice/slice/Glacier2/PermissionsVerifierF.ice +0 -30
  828. data/dist/ice/slice/Glacier2/RouterF.ice +0 -29
  829. data/dist/ice/slice/Ice/Communicator.ice +0 -676
  830. data/dist/ice/slice/Ice/CommunicatorF.ice +0 -31
  831. data/dist/ice/slice/Ice/Connection.ice +0 -516
  832. data/dist/ice/slice/Ice/ConnectionF.ice +0 -33
  833. data/dist/ice/slice/Ice/Current.ice +0 -170
  834. data/dist/ice/slice/Ice/Endpoint.ice +0 -291
  835. data/dist/ice/slice/Ice/EndpointF.ice +0 -43
  836. data/dist/ice/slice/Ice/FacetMap.ice +0 -36
  837. data/dist/ice/slice/Ice/ImplicitContext.ice +0 -119
  838. data/dist/ice/slice/Ice/ImplicitContextF.ice +0 -30
  839. data/dist/ice/slice/Ice/Instrumentation.ice +0 -509
  840. data/dist/ice/slice/Ice/InstrumentationF.ice +0 -38
  841. data/dist/ice/slice/Ice/LocalException.ice +0 -1040
  842. data/dist/ice/slice/Ice/LocatorF.ice +0 -32
  843. data/dist/ice/slice/Ice/Logger.ice +0 -99
  844. data/dist/ice/slice/Ice/LoggerF.ice +0 -31
  845. data/dist/ice/slice/Ice/ObjectAdapter.ice +0 -710
  846. data/dist/ice/slice/Ice/ObjectAdapterF.ice +0 -31
  847. data/dist/ice/slice/Ice/ObjectFactory.ice +0 -71
  848. data/dist/ice/slice/Ice/Plugin.ice +0 -131
  849. data/dist/ice/slice/Ice/PluginF.ice +0 -36
  850. data/dist/ice/slice/Ice/ProcessF.ice +0 -31
  851. data/dist/ice/slice/Ice/Properties.ice +0 -244
  852. data/dist/ice/slice/Ice/PropertiesF.ice +0 -32
  853. data/dist/ice/slice/Ice/RouterF.ice +0 -31
  854. data/dist/ice/slice/Ice/ServantLocator.ice +0 -136
  855. data/dist/ice/slice/Ice/ServantLocatorF.ice +0 -31
  856. data/dist/ice/slice/Ice/ValueFactory.ice +0 -133
  857. data/dist/ice/slice/IceBox/IceBox.ice +0 -216
  858. data/dist/ice/slice/IceGrid/PluginFacade.ice +0 -329
  859. data/dist/ice/slice/IcePatch2/FileInfo.ice +0 -85
  860. data/dist/ice/slice/IcePatch2/FileServer.ice +0 -191
  861. data/dist/lib/Glacier2/PermissionsVerifierF.rb +0 -30
  862. data/dist/lib/Glacier2/RouterF.rb +0 -25
  863. data/dist/lib/Ice/Communicator.rb +0 -87
  864. data/dist/lib/Ice/CommunicatorF.rb +0 -24
  865. data/dist/lib/Ice/Connection.rb +0 -413
  866. data/dist/lib/Ice/ConnectionF.rb +0 -32
  867. data/dist/lib/Ice/Current.rb +0 -141
  868. data/dist/lib/Ice/Endpoint.rb +0 -187
  869. data/dist/lib/Ice/EndpointF.rb +0 -48
  870. data/dist/lib/Ice/FacetMap.rb +0 -24
  871. data/dist/lib/Ice/ImplicitContext.rb +0 -26
  872. data/dist/lib/Ice/ImplicitContextF.rb +0 -24
  873. data/dist/lib/Ice/Instrumentation.rb +0 -169
  874. data/dist/lib/Ice/InstrumentationF.rb +0 -31
  875. data/dist/lib/Ice/LocalException.rb +0 -1031
  876. data/dist/lib/Ice/LocatorF.rb +0 -30
  877. data/dist/lib/Ice/Logger.rb +0 -24
  878. data/dist/lib/Ice/LoggerF.rb +0 -24
  879. data/dist/lib/Ice/ObjectAdapter.rb +0 -29
  880. data/dist/lib/Ice/ObjectAdapterF.rb +0 -24
  881. data/dist/lib/Ice/ObjectFactory.rb +0 -24
  882. data/dist/lib/Ice/Plugin.rb +0 -30
  883. data/dist/lib/Ice/PluginF.rb +0 -28
  884. data/dist/lib/Ice/ProcessF.rb +0 -25
  885. data/dist/lib/Ice/Properties.rb +0 -25
  886. data/dist/lib/Ice/PropertiesF.rb +0 -29
  887. data/dist/lib/Ice/RouterF.rb +0 -25
  888. data/dist/lib/Ice/ServantLocator.rb +0 -26
  889. data/dist/lib/Ice/ServantLocatorF.rb +0 -24
  890. data/dist/lib/Ice/ValueFactory.rb +0 -28
  891. data/dist/lib/IceBox/IceBox.rb +0 -164
  892. data/dist/lib/IceGrid/PluginFacade.rb +0 -35
  893. data/dist/lib/IcePatch2/FileInfo.rb +0 -115
  894. data/dist/lib/IcePatch2/FileServer.rb +0 -123
  895. data/dist/lib/IcePatch2.rb +0 -5
@@ -1,12 +1,25 @@
1
- #include <IceUtil/ScannerConfig.h>
2
1
  #line 1 "src/Slice/Scanner.cpp"
2
+ // Copyright (c) ZeroC, Inc.
3
3
 
4
- #line 3 "src/Slice/Scanner.cpp"
4
+ #include "../Ice/ScannerConfig.h"
5
+ #include <cstdint>
5
6
 
6
- #define YY_INT_ALIGNED short int
7
+ // Clang detects unreachable code in the generated scanner, so we disable the warning.
8
+ #if defined(__clang__)
9
+ # pragma clang diagnostic ignored "-Wunreachable-code"
10
+ #endif
11
+
12
+ // NOLINTBEGIN
13
+
14
+ #line 14 "src/Slice/Scanner.cpp"
15
+
16
+ #define YY_INT_ALIGNED long int
7
17
 
8
18
  /* A lexical scanner generated by flex */
9
19
 
20
+ /* %not-for-header */
21
+ /* %if-c-only */
22
+ /* %if-not-reentrant */
10
23
  #define yy_create_buffer slice__create_buffer
11
24
  #define yy_delete_buffer slice__delete_buffer
12
25
  #define yy_scan_buffer slice__scan_buffer
@@ -32,6 +45,10 @@
32
45
  #define yyrealloc slice_realloc
33
46
  #define yyfree slice_free
34
47
 
48
+ /* %endif */
49
+ /* %endif */
50
+ /* %ok-for-header */
51
+
35
52
  #define FLEX_SCANNER
36
53
  #define YY_FLEX_MAJOR_VERSION 2
37
54
  #define YY_FLEX_MINOR_VERSION 6
@@ -40,6 +57,10 @@
40
57
  #define FLEX_BETA
41
58
  #endif
42
59
 
60
+ /* %if-c++-only */
61
+ /* %endif */
62
+
63
+ /* %if-c-only */
43
64
  #ifdef yy_create_buffer
44
65
  #define slice__create_buffer_ALREADY_DEFINED
45
66
  #else
@@ -220,6 +241,32 @@
220
241
  #define yywrap slice_wrap
221
242
  #endif
222
243
 
244
+ /* %endif */
245
+
246
+ #ifdef yyget_lval
247
+ #define slice_get_lval_ALREADY_DEFINED
248
+ #else
249
+ #define yyget_lval slice_get_lval
250
+ #endif
251
+
252
+ #ifdef yyset_lval
253
+ #define slice_set_lval_ALREADY_DEFINED
254
+ #else
255
+ #define yyset_lval slice_set_lval
256
+ #endif
257
+
258
+ #ifdef yyget_lloc
259
+ #define slice_get_lloc_ALREADY_DEFINED
260
+ #else
261
+ #define yyget_lloc slice_get_lloc
262
+ #endif
263
+
264
+ #ifdef yyset_lloc
265
+ #define slice_set_lloc_ALREADY_DEFINED
266
+ #else
267
+ #define yyset_lloc slice_set_lloc
268
+ #endif
269
+
223
270
  #ifdef yyalloc
224
271
  #define slice_alloc_ALREADY_DEFINED
225
272
  #else
@@ -238,6 +285,8 @@
238
285
  #define yyfree slice_free
239
286
  #endif
240
287
 
288
+ /* %if-c-only */
289
+
241
290
  #ifdef yytext
242
291
  #define slice_text_ALREADY_DEFINED
243
292
  #else
@@ -274,16 +323,23 @@
274
323
  #define yylineno slice_lineno
275
324
  #endif
276
325
 
326
+ /* %endif */
327
+
277
328
  /* First, we deal with platform-specific or compiler-specific issues. */
278
329
 
279
330
  /* begin standard C headers. */
331
+ /* %if-c-only */
280
332
  #include <stdio.h>
281
333
  #include <string.h>
282
334
  #include <errno.h>
283
335
  #include <stdlib.h>
336
+ /* %endif */
284
337
 
338
+ /* %if-tables-serialization */
339
+ /* %endif */
285
340
  /* end standard C headers. */
286
341
 
342
+ /* %if-c-or-c++ */
287
343
  /* flex integer type definitions */
288
344
 
289
345
  #ifndef FLEXINT_H
@@ -352,7 +408,11 @@ typedef unsigned int flex_uint32_t;
352
408
 
353
409
  #endif /* ! FLEXINT_H */
354
410
 
411
+ /* %endif */
412
+
355
413
  /* begin standard C++ headers. */
414
+ /* %if-c++-only */
415
+ /* %endif */
356
416
 
357
417
  /* TODO: this is always defined, so inline it */
358
418
  #define yyconst const
@@ -363,13 +423,24 @@ typedef unsigned int flex_uint32_t;
363
423
  #define yynoreturn
364
424
  #endif
365
425
 
426
+ /* %not-for-header */
366
427
  /* Returned upon end-of-file. */
367
428
  #define YY_NULL 0
429
+ /* %ok-for-header */
368
430
 
431
+ /* %not-for-header */
369
432
  /* Promotes a possibly negative, possibly signed char to an
370
433
  * integer in range [0..255] for use as an array index.
371
434
  */
372
435
  #define YY_SC_TO_UI(c) ((YY_CHAR) (c))
436
+ /* %ok-for-header */
437
+
438
+ /* %if-reentrant */
439
+ /* %endif */
440
+
441
+ /* %if-not-reentrant */
442
+
443
+ /* %endif */
373
444
 
374
445
  /* Enter a start condition. This macro really ought to take a parameter,
375
446
  * but we do it the disgusting crufty way forced on us by the ()-less
@@ -415,9 +486,15 @@ typedef struct yy_buffer_state *YY_BUFFER_STATE;
415
486
  typedef size_t yy_size_t;
416
487
  #endif
417
488
 
489
+ /* %if-not-reentrant */
418
490
  extern int yyleng;
491
+ /* %endif */
419
492
 
493
+ /* %if-c-only */
494
+ /* %if-not-reentrant */
420
495
  extern FILE *yyin, *yyout;
496
+ /* %endif */
497
+ /* %endif */
421
498
 
422
499
  #define EOB_ACT_CONTINUE_SCAN 0
423
500
  #define EOB_ACT_END_OF_FILE 1
@@ -445,7 +522,12 @@ extern FILE *yyin, *yyout;
445
522
  #define YY_STRUCT_YY_BUFFER_STATE
446
523
  struct yy_buffer_state
447
524
  {
525
+ /* %if-c-only */
448
526
  FILE *yy_input_file;
527
+ /* %endif */
528
+
529
+ /* %if-c++-only */
530
+ /* %endif */
449
531
 
450
532
  char *yy_ch_buf; /* input buffer */
451
533
  char *yy_buf_pos; /* current position in input buffer */
@@ -506,10 +588,18 @@ struct yy_buffer_state
506
588
  };
507
589
  #endif /* !YY_STRUCT_YY_BUFFER_STATE */
508
590
 
591
+ /* %if-c-only Standard (non-C++) definition */
592
+ /* %not-for-header */
593
+ /* %if-not-reentrant */
594
+
509
595
  /* Stack of input buffers. */
510
596
  static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
511
597
  static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
512
598
  static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
599
+ /* %endif */
600
+ /* %ok-for-header */
601
+
602
+ /* %endif */
513
603
 
514
604
  /* We provide macros for accessing buffer states in case in the
515
605
  * future we want to put the buffer states in a more general
@@ -525,6 +615,10 @@ static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
525
615
  */
526
616
  #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
527
617
 
618
+ /* %if-c-only Standard (non-C++) definition */
619
+
620
+ /* %if-not-reentrant */
621
+ /* %not-for-header */
528
622
  /* yy_hold_char holds the character lost when yytext is formed. */
529
623
  static char yy_hold_char;
530
624
  static int yy_n_chars; /* number of characters read into yy_ch_buf */
@@ -539,6 +633,9 @@ static int yy_start = 0; /* start state number */
539
633
  * instead of setting up a fresh yyin. A bit of a hack ...
540
634
  */
541
635
  static int yy_did_buffer_switch_on_eof;
636
+ /* %ok-for-header */
637
+
638
+ /* %endif */
542
639
 
543
640
  void yyrestart ( FILE *input_file );
544
641
  void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer );
@@ -557,6 +654,8 @@ YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size );
557
654
  YY_BUFFER_STATE yy_scan_string ( const char *yy_str );
558
655
  YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len );
559
656
 
657
+ /* %endif */
658
+
560
659
  void *yyalloc ( yy_size_t );
561
660
  void *yyrealloc ( void *, yy_size_t );
562
661
  void yyfree ( void * );
@@ -582,10 +681,13 @@ void yyfree ( void * );
582
681
  }
583
682
  #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
584
683
 
684
+ /* %% [1.0] yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here */
585
685
  /* Begin user sect3 */
586
686
 
587
687
  #define slice_wrap() (/*CONSTCOND*/1)
588
688
  #define YY_SKIP_YYWRAP
689
+
690
+ #define FLEX_DEBUG
589
691
  typedef flex_uint8_t YY_CHAR;
590
692
 
591
693
  FILE *yyin = NULL, *yyout = NULL;
@@ -601,22 +703,32 @@ extern char *yytext;
601
703
  #endif
602
704
  #define yytext_ptr yytext
603
705
 
706
+ /* %% [1.5] DFA */
707
+
708
+ /* %if-c-only Standard (non-C++) definition */
709
+
604
710
  static yy_state_type yy_get_previous_state ( void );
605
711
  static yy_state_type yy_try_NUL_trans ( yy_state_type current_state );
606
712
  static int yy_get_next_buffer ( void );
607
713
  static void yynoreturn yy_fatal_error ( const char* msg );
608
714
 
715
+ /* %endif */
716
+
609
717
  /* Done after the current pattern has been matched and before the
610
718
  * corresponding action - sets up yytext.
611
719
  */
612
720
  #define YY_DO_BEFORE_ACTION \
613
721
  (yytext_ptr) = yy_bp; \
614
- yyleng = (int) (yy_cp - yy_bp); \
722
+ /* %% [2.0] code to fiddle yytext and yyleng for yymore() goes here \ */\
723
+ (yytext_ptr) -= (yy_more_len); \
724
+ yyleng = (int) (yy_cp - (yytext_ptr)); \
615
725
  (yy_hold_char) = *yy_cp; \
616
726
  *yy_cp = '\0'; \
727
+ /* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\
617
728
  (yy_c_buf_p) = yy_cp;
618
- #define YY_NUM_RULES 19
619
- #define YY_END_OF_BUFFER 20
729
+ /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */
730
+ #define YY_NUM_RULES 51
731
+ #define YY_END_OF_BUFFER 52
620
732
  /* This struct is not used in this scanner,
621
733
  but its presence is necessary. */
622
734
  struct yy_trans_info
@@ -624,16 +736,32 @@ struct yy_trans_info
624
736
  flex_int32_t yy_verify;
625
737
  flex_int32_t yy_nxt;
626
738
  };
627
- static const flex_int16_t yy_accept[76] =
739
+ static const flex_int32_t yy_accept[220] =
628
740
  { 0,
629
- 0, 0, 0, 0, 0, 0, 20, 18, 16, 16,
630
- 13, 18, 18, 18, 14, 14, 18, 12, 7, 18,
631
- 8, 18, 18, 0, 14, 14, 15, 6, 5, 15,
632
- 14, 0, 0, 0, 0, 11, 12, 0, 12, 0,
633
- 9, 12, 10, 0, 0, 0, 0, 0, 15, 0,
634
- 15, 14, 0, 1, 0, 17, 0, 15, 0, 0,
635
- 0, 0, 0, 0, 2, 0, 0, 0, 3, 0,
636
- 0, 0, 0, 4, 0
741
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
742
+ 0, 0, 0, 0, 52, 49, 45, 46, 45, 50,
743
+ 1, 50, 50, 50, 19, 19, 50, 44, 35, 50,
744
+ 49, 45, 45, 29, 26, 26, 27, 25, 26, 26,
745
+ 26, 49, 33, 45, 34, 33, 33, 45, 29, 42,
746
+ 39, 37, 38, 42, 40, 42, 29, 51, 15, 3,
747
+ 3, 18, 3, 17, 3, 3, 45, 46, 0, 19,
748
+ 19, 20, 24, 22, 20, 19, 0, 0, 0, 0,
749
+ 43, 44, 0, 44, 0, 36, 44, 0, 45, 29,
750
+ 29, 31, 0, 26, 26, 27, 28, 22, 26, 26,
751
+
752
+ 26, 26, 26, 0, 33, 24, 22, 33, 31, 33,
753
+ 42, 39, 24, 22, 41, 42, 31, 42, 3, 3,
754
+ 3, 3, 16, 4, 5, 8, 6, 14, 2, 7,
755
+ 13, 10, 3, 3, 3, 3, 3, 0, 20, 0,
756
+ 22, 21, 0, 20, 19, 47, 0, 0, 22, 21,
757
+ 26, 26, 48, 33, 22, 21, 33, 33, 42, 22,
758
+ 21, 42, 42, 3, 3, 3, 8, 14, 14, 0,
759
+ 13, 13, 9, 3, 3, 0, 20, 23, 21, 0,
760
+ 0, 21, 26, 26, 23, 21, 33, 23, 21, 42,
761
+ 3, 3, 8, 14, 2, 13, 9, 3, 0, 32,
762
+
763
+ 30, 26, 26, 26, 30, 30, 14, 13, 3, 0,
764
+ 26, 14, 11, 3, 14, 14, 14, 12, 0
637
765
  } ;
638
766
 
639
767
  static const YY_CHAR yy_ec[256] =
@@ -641,270 +769,568 @@ static const YY_CHAR yy_ec[256] =
641
769
  1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
642
770
  4, 4, 4, 1, 1, 1, 1, 1, 1, 1,
643
771
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
644
- 1, 2, 1, 5, 6, 1, 1, 1, 1, 7,
645
- 1, 8, 9, 1, 10, 11, 12, 13, 14, 14,
646
- 14, 14, 14, 14, 14, 15, 15, 16, 1, 1,
647
- 1, 1, 1, 1, 17, 17, 17, 17, 18, 19,
648
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
649
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
650
- 21, 22, 23, 1, 20, 1, 17, 17, 17, 17,
651
-
652
- 24, 19, 20, 20, 25, 20, 20, 26, 20, 27,
653
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 28,
654
- 20, 20, 1, 1, 1, 1, 1, 1, 1, 1,
655
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
656
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
657
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
658
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
659
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
660
- 1, 1, 1, 1, 1, 1, 29, 1, 1, 1,
661
- 30, 1, 1, 1, 1, 1, 1, 1, 1, 1,
662
-
663
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
664
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
665
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
666
- 1, 1, 1, 1, 1, 1, 1, 1, 31, 1,
667
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
668
- 1, 1, 1, 1, 1
772
+ 1, 5, 6, 7, 8, 6, 6, 6, 9, 10,
773
+ 6, 11, 12, 13, 14, 15, 16, 17, 18, 18,
774
+ 18, 18, 18, 18, 18, 19, 19, 20, 6, 6,
775
+ 6, 6, 21, 6, 22, 22, 22, 22, 23, 24,
776
+ 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
777
+ 25, 25, 25, 25, 26, 25, 25, 25, 25, 25,
778
+ 27, 28, 29, 6, 30, 6, 31, 31, 22, 22,
779
+
780
+ 32, 33, 25, 25, 34, 25, 25, 35, 25, 36,
781
+ 25, 25, 25, 37, 25, 37, 38, 37, 25, 39,
782
+ 25, 25, 6, 6, 6, 6, 40, 41, 41, 41,
783
+ 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
784
+ 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
785
+ 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
786
+ 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
787
+ 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
788
+ 41, 41, 41, 41, 41, 41, 42, 41, 41, 41,
789
+ 43, 41, 41, 41, 41, 41, 41, 41, 41, 41,
790
+
791
+ 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
792
+ 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
793
+ 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
794
+ 41, 41, 41, 41, 41, 41, 41, 41, 44, 41,
795
+ 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
796
+ 41, 41, 41, 41, 41
669
797
  } ;
670
798
 
671
- static const YY_CHAR yy_meta[32] =
799
+ static const YY_CHAR yy_meta[45] =
672
800
  { 0,
673
- 1, 2, 3, 1, 1, 1, 1, 1, 4, 4,
674
- 1, 1, 5, 5, 5, 1, 6, 6, 6, 7,
675
- 1, 1, 1, 6, 7, 8, 7, 7, 1, 1,
676
- 1
801
+ 1, 2, 3, 2, 2, 4, 5, 4, 4, 6,
802
+ 7, 4, 8, 4, 4, 9, 10, 10, 10, 6,
803
+ 4, 11, 11, 11, 12, 12, 4, 13, 8, 14,
804
+ 11, 11, 11, 12, 12, 12, 12, 12, 12, 1,
805
+ 4, 4, 4, 4
677
806
  } ;
678
807
 
679
- static const flex_int16_t yy_base[87] =
808
+ static const flex_int32_t yy_base[252] =
680
809
  { 0,
681
- 0, 140, 0, 26, 0, 139, 137, 197, 197, 197,
682
- 197, 22, 25, 33, 47, 35, 120, 74, 114, 0,
683
- 111, 40, 104, 37, 0, 0, 90, 197, 197, 0,
684
- 104, 34, 0, 97, 52, 197, 0, 99, 0, 0,
685
- 197, 0, 197, 44, 65, 88, 77, 63, 197, 69,
686
- 97, 0, 115, 197, 79, 197, 108, 111, 92, 71,
687
- 81, 82, 72, 66, 197, 125, 77, 126, 197, 59,
688
- 48, 44, 31, 197, 197, 135, 142, 147, 148, 153,
689
- 155, 160, 168, 175, 180, 188
810
+ 0, 43, 50, 65, 75, 90, 501, 55, 80, 123,
811
+ 166, 209, 253, 293, 544, 1343, 45, 536, 54, 1343,
812
+ 1343, 85, 70, 94, 319, 97, 513, 357, 496, 0,
813
+ 480, 128, 133, 140, 0, 60, 518, 500, 97, 142,
814
+ 146, 463, 0, 70, 1343, 106, 462, 172, 183, 0,
815
+ 500, 1343, 1343, 107, 469, 451, 188, 1343, 1343, 150,
816
+ 105, 1343, 187, 379, 222, 417, 182, 480, 143, 0,
817
+ 214, 436, 465, 450, 0, 244, 222, 0, 435, 240,
818
+ 1343, 468, 438, 0, 0, 1343, 0, 414, 266, 247,
819
+ 270, 297, 417, 0, 192, 399, 1343, 167, 275, 305,
820
+
821
+ 330, 301, 364, 347, 0, 361, 323, 321, 351, 320,
822
+ 0, 327, 306, 495, 1343, 269, 361, 270, 339, 117,
823
+ 217, 524, 1343, 1343, 1343, 191, 1343, 548, 250, 1343,
824
+ 571, 0, 379, 609, 643, 409, 348, 425, 1343, 0,
825
+ 0, 0, 267, 375, 0, 1343, 306, 237, 240, 224,
826
+ 324, 184, 1343, 445, 399, 427, 0, 179, 677, 477,
827
+ 505, 0, 168, 706, 473, 513, 230, 730, 0, 171,
828
+ 753, 0, 0, 460, 353, 273, 518, 1343, 0, 185,
829
+ 140, 155, 142, 124, 0, 436, 102, 0, 525, 79,
830
+ 369, 614, 1343, 776, 69, 799, 1343, 487, 83, 1343,
831
+
832
+ 138, 384, 0, 404, 418, 428, 822, 845, 490, 541,
833
+ 615, 868, 1343, 620, 891, 914, 937, 1343, 1343, 976,
834
+ 990, 1004, 1018, 1031, 1035, 1049, 1063, 1077, 1090, 1104,
835
+ 1118, 335, 1132, 1146, 1160, 1174, 414, 1188, 1202, 1216,
836
+ 1230, 1244, 1258, 1272, 1286, 1300, 59, 34, 435, 1314,
837
+ 1328
690
838
  } ;
691
839
 
692
- static const flex_int16_t yy_def[87] =
840
+ static const flex_int32_t yy_def[252] =
693
841
  { 0,
694
- 75, 1, 1, 1, 1, 1, 75, 75, 75, 75,
695
- 75, 75, 75, 75, 75, 15, 75, 75, 75, 76,
696
- 75, 77, 75, 75, 15, 16, 75, 75, 75, 27,
697
- 15, 78, 79, 76, 75, 75, 18, 75, 18, 76,
698
- 75, 18, 75, 77, 80, 75, 75, 81, 75, 75,
699
- 75, 79, 75, 75, 75, 75, 75, 75, 82, 75,
700
- 82, 83, 75, 83, 75, 75, 84, 75, 75, 85,
701
- 85, 86, 86, 75, 0, 75, 75, 75, 75, 75,
702
- 75, 75, 75, 75, 75, 75
842
+ 219, 1, 220, 220, 220, 220, 1, 1, 221, 221,
843
+ 222, 222, 223, 223, 219, 219, 219, 219, 219, 219,
844
+ 219, 219, 219, 219, 219, 219, 219, 224, 219, 225,
845
+ 219, 219, 219, 219, 226, 226, 219, 219, 226, 226,
846
+ 226, 219, 227, 219, 219, 227, 227, 219, 227, 228,
847
+ 219, 219, 219, 228, 219, 228, 228, 219, 219, 229,
848
+ 229, 219, 229, 230, 229, 229, 219, 219, 219, 25,
849
+ 219, 219, 219, 231, 72, 219, 219, 232, 225, 219,
850
+ 219, 224, 219, 82, 225, 219, 82, 219, 219, 219,
851
+ 219, 219, 219, 226, 226, 219, 219, 233, 226, 226,
852
+
853
+ 226, 226, 226, 219, 227, 227, 234, 227, 227, 227,
854
+ 228, 219, 228, 235, 219, 228, 228, 228, 229, 229,
855
+ 229, 236, 219, 219, 219, 219, 219, 219, 219, 219,
856
+ 219, 237, 229, 229, 229, 229, 229, 219, 219, 238,
857
+ 231, 239, 219, 219, 232, 219, 219, 219, 233, 240,
858
+ 226, 226, 219, 241, 234, 242, 227, 227, 243, 235,
859
+ 244, 228, 228, 245, 236, 246, 219, 219, 247, 219,
860
+ 219, 248, 249, 229, 229, 219, 219, 219, 239, 250,
861
+ 219, 240, 251, 226, 227, 242, 227, 228, 244, 228,
862
+ 229, 246, 219, 219, 219, 219, 219, 229, 250, 219,
863
+
864
+ 219, 251, 226, 226, 227, 228, 219, 219, 229, 219,
865
+ 226, 219, 219, 229, 219, 219, 219, 219, 0, 219,
866
+ 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
867
+ 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
868
+ 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
869
+ 219
703
870
  } ;
704
871
 
705
- static const flex_int16_t yy_nxt[229] =
872
+ static const flex_int32_t yy_nxt[1388] =
706
873
  { 0,
707
- 8, 9, 10, 9, 11, 8, 8, 8, 12, 12,
708
- 13, 14, 15, 16, 16, 17, 18, 18, 18, 18,
709
- 19, 20, 21, 18, 18, 18, 18, 18, 8, 8,
710
- 8, 22, 24, 74, 25, 26, 26, 27, 27, 27,
711
- 28, 44, 50, 50, 29, 44, 74, 26, 26, 27,
712
- 27, 27, 72, 35, 35, 35, 23, 30, 36, 31,
713
- 31, 26, 75, 72, 32, 46, 53, 54, 65, 46,
714
- 32, 57, 57, 66, 33, 35, 35, 35, 68, 69,
715
- 36, 51, 51, 51, 65, 62, 37, 37, 37, 38,
716
- 39, 39, 39, 39, 63, 40, 62, 39, 39, 39,
717
-
718
- 39, 39, 27, 27, 27, 60, 56, 48, 49, 51,
719
- 51, 51, 55, 48, 34, 49, 53, 54, 40, 59,
720
- 58, 58, 58, 58, 58, 58, 66, 68, 69, 49,
721
- 70, 75, 47, 43, 41, 34, 75, 67, 67, 67,
722
- 42, 42, 42, 45, 22, 22, 45, 75, 75, 45,
723
- 51, 51, 52, 52, 45, 45, 75, 45, 58, 58,
724
- 61, 61, 61, 61, 61, 61, 61, 61, 64, 64,
725
- 64, 64, 64, 64, 64, 64, 67, 67, 75, 67,
726
- 71, 71, 71, 71, 71, 71, 71, 71, 73, 73,
727
- 73, 73, 73, 73, 73, 73, 7, 75, 75, 75,
728
-
729
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
730
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
731
- 75, 75, 75, 75, 75, 75, 75, 75
874
+ 16, 17, 18, 17, 19, 20, 21, 20, 20, 20,
875
+ 20, 22, 20, 22, 23, 24, 25, 26, 26, 27,
876
+ 20, 28, 28, 28, 28, 28, 29, 30, 20, 28,
877
+ 28, 28, 28, 28, 28, 28, 28, 28, 28, 20,
878
+ 16, 16, 16, 31, 32, 172, 67, 33, 67, 67,
879
+ 34, 36, 37, 36, 36, 67, 32, 67, 67, 33,
880
+ 38, 95, 34, 95, 95, 39, 40, 37, 36, 40,
881
+ 169, 67, 41, 67, 67, 38, 36, 37, 36, 36,
882
+ 39, 44, 45, 44, 44, 38, 72, 72, 72, 200,
883
+ 39, 40, 37, 36, 40, 46, 170, 41, 42, 69,
884
+
885
+ 38, 70, 71, 71, 73, 39, 219, 73, 219, 74,
886
+ 206, 75, 98, 71, 71, 71, 106, 113, 219, 77,
887
+ 219, 107, 114, 47, 48, 45, 44, 48, 77, 89,
888
+ 49, 67, 89, 205, 89, 90, 67, 89, 46, 210,
889
+ 90, 91, 210, 99, 91, 95, 99, 101, 203, 100,
890
+ 101, 67, 199, 67, 119, 204, 92, 92, 92, 72,
891
+ 72, 72, 102, 102, 102, 179, 47, 44, 51, 44,
892
+ 44, 201, 52, 89, 93, 67, 89, 141, 53, 90,
893
+ 103, 54, 150, 67, 91, 67, 67, 91, 219, 91,
894
+ 219, 200, 91, 95, 55, 95, 95, 121, 195, 109,
895
+
896
+ 109, 109, 122, 190, 117, 117, 117, 167, 167, 56,
897
+ 48, 51, 44, 48, 187, 52, 57, 110, 219, 184,
898
+ 219, 53, 118, 89, 54, 67, 133, 164, 75, 134,
899
+ 71, 71, 71, 143, 179, 143, 77, 55, 144, 144,
900
+ 144, 80, 80, 80, 80, 77, 193, 193, 91, 81,
901
+ 141, 91, 56, 58, 44, 59, 44, 60, 75, 62,
902
+ 76, 76, 71, 92, 92, 92, 77, 89, 63, 67,
903
+ 89, 91, 181, 90, 91, 77, 99, 170, 95, 99,
904
+ 64, 93, 100, 144, 144, 144, 92, 92, 92, 177,
905
+ 177, 177, 58, 58, 48, 59, 44, 65, 147, 62,
906
+
907
+ 66, 147, 151, 163, 93, 151, 101, 147, 63, 101,
908
+ 147, 162, 180, 92, 92, 92, 159, 102, 102, 102,
909
+ 64, 102, 102, 102, 141, 151, 141, 141, 151, 112,
910
+ 183, 101, 58, 75, 101, 76, 76, 71, 156, 103,
911
+ 67, 77, 67, 119, 145, 145, 102, 102, 102, 219,
912
+ 77, 219, 147, 158, 219, 147, 219, 78, 80, 80,
913
+ 80, 80, 147, 157, 103, 147, 81, 109, 109, 109,
914
+ 219, 154, 219, 82, 82, 82, 83, 117, 117, 117,
915
+ 89, 175, 67, 133, 85, 124, 134, 125, 198, 153,
916
+ 203, 144, 144, 144, 199, 126, 126, 152, 139, 127,
917
+
918
+ 141, 96, 141, 141, 128, 211, 129, 139, 211, 130,
919
+ 147, 130, 219, 174, 130, 130, 131, 132, 91, 210,
920
+ 219, 135, 210, 173, 173, 136, 136, 136, 179, 210,
921
+ 179, 179, 210, 136, 136, 136, 176, 179, 176, 179,
922
+ 179, 177, 177, 177, 197, 197, 178, 178, 178, 178,
923
+ 148, 137, 72, 72, 72, 105, 146, 79, 138, 139,
924
+ 105, 147, 85, 219, 174, 142, 180, 138, 139, 80,
925
+ 80, 80, 80, 141, 141, 140, 141, 81, 141, 141,
926
+ 141, 141, 68, 141, 82, 82, 82, 83, 219, 141,
927
+ 219, 210, 116, 219, 214, 85, 141, 115, 141, 141,
928
+
929
+ 141, 141, 112, 108, 104, 141, 179, 141, 179, 179,
930
+ 161, 179, 141, 179, 179, 97, 179, 179, 209, 179,
931
+ 96, 88, 86, 141, 141, 141, 179, 141, 179, 179,
932
+ 141, 179, 79, 179, 177, 177, 177, 179, 68, 166,
933
+ 179, 139, 210, 219, 42, 210, 219, 219, 219, 219,
934
+ 139, 141, 179, 179, 219, 219, 219, 92, 92, 92,
935
+ 219, 219, 219, 141, 168, 168, 168, 219, 219, 168,
936
+ 168, 168, 169, 169, 219, 219, 219, 219, 168, 168,
937
+ 168, 169, 169, 169, 169, 169, 169, 171, 171, 171,
938
+ 219, 219, 171, 171, 171, 172, 172, 219, 219, 219,
939
+
940
+ 219, 171, 171, 171, 172, 172, 172, 172, 172, 172,
941
+ 91, 219, 219, 135, 179, 179, 211, 179, 219, 211,
942
+ 179, 210, 219, 219, 214, 136, 136, 136, 219, 219,
943
+ 219, 102, 102, 102, 219, 219, 136, 136, 136, 219,
944
+ 219, 179, 219, 137, 91, 219, 219, 135, 219, 219,
945
+ 219, 219, 219, 179, 219, 219, 219, 219, 219, 136,
946
+ 136, 136, 219, 219, 219, 219, 219, 219, 219, 219,
947
+ 219, 219, 219, 219, 219, 219, 219, 137, 178, 178,
948
+ 178, 178, 219, 178, 219, 219, 219, 111, 219, 178,
949
+ 219, 219, 111, 219, 219, 219, 219, 219, 219, 219,
950
+
951
+ 219, 219, 219, 219, 219, 178, 178, 178, 178, 178,
952
+ 219, 219, 178, 219, 219, 219, 120, 219, 219, 219,
953
+ 219, 120, 219, 219, 219, 219, 219, 219, 219, 219,
954
+ 219, 219, 219, 178, 219, 219, 219, 219, 219, 219,
955
+ 219, 219, 219, 219, 219, 178, 194, 194, 194, 219,
956
+ 219, 194, 194, 194, 169, 169, 219, 219, 219, 219,
957
+ 194, 194, 194, 169, 169, 169, 169, 169, 169, 196,
958
+ 196, 196, 219, 219, 196, 196, 196, 172, 172, 219,
959
+ 219, 219, 219, 196, 196, 196, 172, 172, 172, 172,
960
+ 172, 172, 207, 207, 207, 219, 219, 207, 207, 207,
961
+
962
+ 169, 169, 219, 219, 219, 219, 207, 207, 207, 169,
963
+ 169, 169, 169, 169, 169, 208, 208, 208, 219, 219,
964
+ 208, 208, 208, 172, 172, 219, 219, 219, 219, 208,
965
+ 208, 208, 172, 172, 172, 172, 172, 172, 212, 212,
966
+ 212, 219, 219, 212, 212, 212, 169, 169, 219, 219,
967
+ 219, 219, 212, 212, 212, 169, 169, 169, 169, 169,
968
+ 169, 213, 213, 213, 219, 219, 213, 213, 213, 172,
969
+ 172, 219, 219, 219, 219, 213, 213, 213, 172, 172,
970
+ 172, 172, 172, 172, 215, 215, 215, 219, 219, 215,
971
+ 215, 215, 169, 169, 219, 219, 219, 219, 215, 215,
972
+
973
+ 215, 169, 169, 169, 169, 169, 169, 216, 216, 216,
974
+ 219, 219, 216, 216, 216, 169, 169, 219, 219, 219,
975
+ 219, 216, 216, 216, 169, 169, 169, 169, 169, 169,
976
+ 217, 217, 217, 219, 219, 217, 217, 217, 169, 169,
977
+ 219, 219, 219, 219, 217, 217, 217, 169, 169, 169,
978
+ 169, 169, 169, 218, 218, 218, 219, 219, 218, 218,
979
+ 218, 169, 169, 219, 219, 219, 219, 218, 218, 218,
980
+ 169, 169, 169, 169, 169, 169, 35, 35, 35, 35,
981
+ 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
982
+ 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
983
+
984
+ 43, 43, 43, 43, 50, 50, 50, 50, 50, 50,
985
+ 50, 50, 50, 50, 50, 50, 50, 50, 61, 61,
986
+ 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
987
+ 61, 61, 84, 84, 219, 219, 84, 219, 219, 219,
988
+ 84, 84, 84, 84, 84, 87, 87, 219, 87, 94,
989
+ 94, 219, 94, 94, 94, 219, 94, 94, 94, 94,
990
+ 94, 94, 94, 105, 219, 219, 105, 105, 105, 105,
991
+ 105, 105, 105, 105, 105, 105, 105, 111, 219, 219,
992
+ 111, 219, 111, 111, 219, 111, 111, 111, 111, 111,
993
+ 111, 120, 219, 120, 219, 120, 120, 120, 120, 120,
994
+
995
+ 120, 120, 219, 120, 123, 123, 219, 123, 123, 123,
996
+ 123, 123, 123, 123, 123, 123, 123, 123, 141, 141,
997
+ 219, 141, 141, 141, 141, 141, 141, 141, 141, 141,
998
+ 141, 141, 149, 149, 219, 149, 149, 149, 149, 149,
999
+ 149, 149, 149, 149, 149, 149, 155, 155, 219, 155,
1000
+ 155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
1001
+ 160, 160, 219, 160, 160, 160, 160, 160, 160, 160,
1002
+ 160, 160, 160, 160, 165, 165, 219, 165, 165, 165,
1003
+ 165, 165, 165, 165, 165, 165, 165, 165, 178, 178,
1004
+ 178, 178, 178, 178, 219, 178, 219, 178, 178, 178,
1005
+
1006
+ 178, 178, 179, 179, 219, 179, 179, 179, 179, 179,
1007
+ 179, 179, 179, 179, 179, 179, 182, 182, 219, 182,
1008
+ 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
1009
+ 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
1010
+ 185, 185, 185, 185, 186, 186, 219, 186, 186, 186,
1011
+ 186, 186, 186, 186, 186, 186, 186, 186, 188, 188,
1012
+ 188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
1013
+ 188, 188, 189, 189, 219, 189, 189, 189, 189, 189,
1014
+ 189, 189, 189, 189, 189, 189, 191, 191, 191, 191,
1015
+ 191, 191, 191, 191, 191, 191, 191, 191, 191, 191,
1016
+
1017
+ 192, 192, 219, 192, 192, 192, 192, 192, 192, 192,
1018
+ 192, 192, 192, 192, 199, 199, 219, 199, 199, 199,
1019
+ 199, 199, 199, 199, 199, 199, 199, 199, 202, 202,
1020
+ 219, 202, 202, 202, 202, 202, 202, 202, 202, 202,
1021
+ 202, 202, 15, 219, 219, 219, 219, 219, 219, 219,
1022
+ 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
1023
+ 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
1024
+ 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
1025
+ 219, 219, 219, 219, 219, 219, 219
732
1026
  } ;
733
1027
 
734
- static const flex_int16_t yy_chk[229] =
1028
+ static const flex_int32_t yy_chk[1388] =
735
1029
  { 0,
736
1030
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
737
1031
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
738
1032
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
739
- 1, 4, 12, 73, 12, 12, 12, 13, 13, 13,
740
- 14, 22, 32, 32, 14, 44, 72, 16, 16, 24,
741
- 24, 24, 71, 35, 35, 35, 4, 15, 35, 15,
742
- 15, 15, 16, 70, 15, 22, 45, 45, 64, 44,
743
- 15, 48, 48, 63, 15, 18, 18, 18, 67, 67,
744
- 18, 50, 50, 50, 62, 61, 18, 18, 18, 18,
745
- 18, 18, 18, 18, 60, 18, 59, 18, 18, 18,
746
-
747
- 18, 18, 27, 27, 27, 55, 47, 27, 27, 51,
748
- 51, 51, 46, 27, 38, 51, 53, 53, 34, 53,
749
- 57, 57, 57, 58, 58, 58, 66, 68, 68, 58,
750
- 68, 31, 23, 21, 19, 17, 7, 66, 66, 66,
751
- 76, 76, 76, 77, 6, 2, 77, 0, 0, 77,
752
- 78, 78, 79, 79, 80, 80, 0, 80, 81, 81,
753
- 82, 82, 82, 82, 82, 82, 82, 82, 83, 83,
754
- 83, 83, 83, 83, 83, 83, 84, 84, 0, 84,
755
- 85, 85, 85, 85, 85, 85, 85, 85, 86, 86,
756
- 86, 86, 86, 86, 86, 86, 75, 75, 75, 75,
757
-
758
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
759
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
760
- 75, 75, 75, 75, 75, 75, 75, 75
1033
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1034
+ 1, 1, 1, 1, 2, 248, 17, 2, 17, 17,
1035
+ 2, 3, 3, 3, 3, 19, 8, 19, 19, 8,
1036
+ 3, 36, 8, 36, 36, 3, 4, 4, 4, 4,
1037
+ 247, 44, 4, 44, 44, 4, 5, 5, 5, 5,
1038
+ 4, 9, 9, 9, 9, 5, 23, 23, 23, 199,
1039
+ 5, 6, 6, 6, 6, 9, 195, 6, 8, 22,
1040
+
1041
+ 6, 22, 22, 22, 24, 6, 61, 39, 61, 24,
1042
+ 190, 26, 39, 26, 26, 26, 46, 54, 120, 26,
1043
+ 120, 46, 54, 9, 10, 10, 10, 10, 26, 32,
1044
+ 10, 32, 32, 187, 33, 32, 33, 33, 10, 201,
1045
+ 33, 34, 201, 40, 34, 40, 40, 41, 183, 40,
1046
+ 41, 60, 183, 60, 60, 184, 34, 34, 34, 69,
1047
+ 69, 69, 41, 41, 41, 182, 10, 11, 11, 11,
1048
+ 11, 181, 11, 48, 34, 48, 48, 98, 11, 48,
1049
+ 41, 11, 98, 67, 49, 67, 67, 49, 63, 57,
1050
+ 63, 180, 57, 95, 11, 95, 95, 63, 170, 49,
1051
+
1052
+ 49, 49, 63, 163, 57, 57, 57, 126, 126, 11,
1053
+ 12, 12, 12, 12, 158, 12, 12, 49, 121, 152,
1054
+ 121, 12, 57, 65, 12, 65, 65, 121, 71, 65,
1055
+ 71, 71, 71, 77, 150, 77, 71, 12, 77, 77,
1056
+ 77, 80, 80, 80, 80, 71, 167, 167, 90, 80,
1057
+ 149, 90, 12, 13, 13, 13, 13, 13, 76, 13,
1058
+ 76, 76, 76, 90, 90, 90, 76, 89, 13, 89,
1059
+ 89, 91, 148, 89, 91, 76, 99, 129, 99, 99,
1060
+ 13, 90, 99, 143, 143, 143, 91, 91, 91, 176,
1061
+ 176, 176, 13, 14, 14, 14, 14, 14, 92, 14,
1062
+
1063
+ 14, 92, 102, 118, 91, 102, 100, 147, 14, 100,
1064
+ 147, 116, 147, 92, 92, 92, 113, 102, 102, 102,
1065
+ 14, 100, 100, 100, 107, 151, 107, 107, 151, 112,
1066
+ 151, 101, 14, 25, 101, 25, 25, 25, 107, 100,
1067
+ 119, 25, 119, 119, 232, 232, 101, 101, 101, 137,
1068
+ 25, 137, 109, 110, 175, 109, 175, 25, 28, 28,
1069
+ 28, 28, 117, 108, 101, 117, 28, 109, 109, 109,
1070
+ 191, 106, 191, 28, 28, 28, 28, 117, 117, 117,
1071
+ 133, 137, 133, 133, 28, 64, 133, 64, 175, 104,
1072
+ 202, 144, 144, 144, 202, 64, 64, 103, 144, 64,
1073
+
1074
+ 155, 96, 155, 155, 64, 204, 64, 144, 204, 64,
1075
+ 136, 64, 136, 136, 64, 64, 64, 64, 66, 205,
1076
+ 66, 66, 205, 237, 237, 136, 136, 136, 156, 206,
1077
+ 156, 156, 206, 66, 66, 66, 138, 186, 138, 186,
1078
+ 186, 138, 138, 138, 249, 249, 154, 154, 154, 154,
1079
+ 93, 66, 72, 72, 72, 154, 88, 83, 72, 72,
1080
+ 154, 174, 79, 174, 174, 74, 174, 72, 72, 82,
1081
+ 82, 82, 82, 165, 165, 73, 165, 82, 160, 165,
1082
+ 160, 160, 68, 160, 82, 82, 82, 82, 198, 160,
1083
+ 198, 209, 56, 209, 209, 82, 114, 55, 114, 114,
1084
+
1085
+ 165, 114, 51, 47, 42, 160, 161, 114, 161, 161,
1086
+ 114, 161, 165, 166, 166, 38, 166, 161, 198, 166,
1087
+ 37, 31, 29, 114, 122, 122, 189, 122, 189, 189,
1088
+ 122, 189, 27, 161, 177, 177, 177, 189, 18, 122,
1089
+ 166, 177, 210, 15, 7, 210, 0, 0, 0, 0,
1090
+ 177, 122, 166, 189, 0, 0, 0, 210, 210, 210,
1091
+ 0, 0, 0, 122, 128, 128, 128, 0, 0, 128,
1092
+ 128, 128, 128, 128, 0, 0, 0, 0, 128, 128,
1093
+ 128, 128, 128, 128, 128, 128, 128, 131, 131, 131,
1094
+ 0, 0, 131, 131, 131, 131, 131, 0, 0, 0,
1095
+
1096
+ 0, 131, 131, 131, 131, 131, 131, 131, 131, 131,
1097
+ 134, 0, 134, 134, 192, 192, 211, 192, 0, 211,
1098
+ 192, 214, 0, 214, 214, 134, 134, 134, 0, 0,
1099
+ 0, 211, 211, 211, 0, 0, 214, 214, 214, 0,
1100
+ 0, 192, 0, 134, 135, 0, 135, 135, 0, 0,
1101
+ 0, 0, 0, 192, 0, 0, 0, 0, 0, 135,
1102
+ 135, 135, 0, 0, 0, 0, 0, 0, 0, 0,
1103
+ 0, 0, 0, 0, 0, 0, 0, 135, 159, 159,
1104
+ 159, 159, 0, 159, 0, 0, 0, 159, 0, 159,
1105
+ 0, 0, 159, 0, 0, 0, 0, 0, 0, 0,
1106
+
1107
+ 0, 0, 0, 0, 0, 159, 164, 164, 164, 164,
1108
+ 0, 0, 164, 0, 0, 0, 164, 0, 0, 0,
1109
+ 0, 164, 0, 0, 0, 0, 0, 0, 0, 0,
1110
+ 0, 0, 0, 164, 0, 0, 0, 0, 0, 0,
1111
+ 0, 0, 0, 0, 0, 164, 168, 168, 168, 0,
1112
+ 0, 168, 168, 168, 168, 168, 0, 0, 0, 0,
1113
+ 168, 168, 168, 168, 168, 168, 168, 168, 168, 171,
1114
+ 171, 171, 0, 0, 171, 171, 171, 171, 171, 0,
1115
+ 0, 0, 0, 171, 171, 171, 171, 171, 171, 171,
1116
+ 171, 171, 194, 194, 194, 0, 0, 194, 194, 194,
1117
+
1118
+ 194, 194, 0, 0, 0, 0, 194, 194, 194, 194,
1119
+ 194, 194, 194, 194, 194, 196, 196, 196, 0, 0,
1120
+ 196, 196, 196, 196, 196, 0, 0, 0, 0, 196,
1121
+ 196, 196, 196, 196, 196, 196, 196, 196, 207, 207,
1122
+ 207, 0, 0, 207, 207, 207, 207, 207, 0, 0,
1123
+ 0, 0, 207, 207, 207, 207, 207, 207, 207, 207,
1124
+ 207, 208, 208, 208, 0, 0, 208, 208, 208, 208,
1125
+ 208, 0, 0, 0, 0, 208, 208, 208, 208, 208,
1126
+ 208, 208, 208, 208, 212, 212, 212, 0, 0, 212,
1127
+ 212, 212, 212, 212, 0, 0, 0, 0, 212, 212,
1128
+
1129
+ 212, 212, 212, 212, 212, 212, 212, 215, 215, 215,
1130
+ 0, 0, 215, 215, 215, 215, 215, 0, 0, 0,
1131
+ 0, 215, 215, 215, 215, 215, 215, 215, 215, 215,
1132
+ 216, 216, 216, 0, 0, 216, 216, 216, 216, 216,
1133
+ 0, 0, 0, 0, 216, 216, 216, 216, 216, 216,
1134
+ 216, 216, 216, 217, 217, 217, 0, 0, 217, 217,
1135
+ 217, 217, 217, 0, 0, 0, 0, 217, 217, 217,
1136
+ 217, 217, 217, 217, 217, 217, 220, 220, 220, 220,
1137
+ 220, 220, 220, 220, 220, 220, 220, 220, 220, 220,
1138
+ 221, 221, 221, 221, 221, 221, 221, 221, 221, 221,
1139
+
1140
+ 221, 221, 221, 221, 222, 222, 222, 222, 222, 222,
1141
+ 222, 222, 222, 222, 222, 222, 222, 222, 223, 223,
1142
+ 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
1143
+ 223, 223, 224, 224, 0, 0, 224, 0, 0, 0,
1144
+ 224, 224, 224, 224, 224, 225, 225, 0, 225, 226,
1145
+ 226, 0, 226, 226, 226, 0, 226, 226, 226, 226,
1146
+ 226, 226, 226, 227, 0, 0, 227, 227, 227, 227,
1147
+ 227, 227, 227, 227, 227, 227, 227, 228, 0, 0,
1148
+ 228, 0, 228, 228, 0, 228, 228, 228, 228, 228,
1149
+ 228, 229, 0, 229, 0, 229, 229, 229, 229, 229,
1150
+
1151
+ 229, 229, 0, 229, 230, 230, 0, 230, 230, 230,
1152
+ 230, 230, 230, 230, 230, 230, 230, 230, 231, 231,
1153
+ 0, 231, 231, 231, 231, 231, 231, 231, 231, 231,
1154
+ 231, 231, 233, 233, 0, 233, 233, 233, 233, 233,
1155
+ 233, 233, 233, 233, 233, 233, 234, 234, 0, 234,
1156
+ 234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
1157
+ 235, 235, 0, 235, 235, 235, 235, 235, 235, 235,
1158
+ 235, 235, 235, 235, 236, 236, 0, 236, 236, 236,
1159
+ 236, 236, 236, 236, 236, 236, 236, 236, 238, 238,
1160
+ 238, 238, 238, 238, 0, 238, 0, 238, 238, 238,
1161
+
1162
+ 238, 238, 239, 239, 0, 239, 239, 239, 239, 239,
1163
+ 239, 239, 239, 239, 239, 239, 240, 240, 0, 240,
1164
+ 240, 240, 240, 240, 240, 240, 240, 240, 240, 240,
1165
+ 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
1166
+ 241, 241, 241, 241, 242, 242, 0, 242, 242, 242,
1167
+ 242, 242, 242, 242, 242, 242, 242, 242, 243, 243,
1168
+ 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
1169
+ 243, 243, 244, 244, 0, 244, 244, 244, 244, 244,
1170
+ 244, 244, 244, 244, 244, 244, 245, 245, 245, 245,
1171
+ 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
1172
+
1173
+ 246, 246, 0, 246, 246, 246, 246, 246, 246, 246,
1174
+ 246, 246, 246, 246, 250, 250, 0, 250, 250, 250,
1175
+ 250, 250, 250, 250, 250, 250, 250, 250, 251, 251,
1176
+ 0, 251, 251, 251, 251, 251, 251, 251, 251, 251,
1177
+ 251, 251, 219, 219, 219, 219, 219, 219, 219, 219,
1178
+ 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
1179
+ 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
1180
+ 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
1181
+ 219, 219, 219, 219, 219, 219, 219
761
1182
  } ;
762
1183
 
763
1184
  static yy_state_type yy_last_accepting_state;
764
1185
  static char *yy_last_accepting_cpos;
765
1186
 
766
1187
  extern int yy_flex_debug;
767
- int yy_flex_debug = 0;
1188
+ int yy_flex_debug = 1;
1189
+
1190
+ static const flex_int32_t yy_rule_linenum[51] =
1191
+ { 0,
1192
+ 130, 144, 145, 152, 153, 154, 161, 180, 193, 203,
1193
+ 210, 211, 223, 224, 232, 243, 253, 261, 279, 302,
1194
+ 330, 335, 339, 344, 350, 351, 356, 362, 387, 392,
1195
+ 398, 399, 414, 419, 427, 432, 438, 448, 453, 457,
1196
+ 462, 468, 481, 514, 524, 527, 541, 542, 548, 562
1197
+ } ;
768
1198
 
769
1199
  /* The intent behind this definition is that it'll catch
770
1200
  * any uses of REJECT which flex missed.
771
1201
  */
772
1202
  #define REJECT reject_used_but_not_detected
773
- #define yymore() yymore_used_but_not_detected
774
- #define YY_MORE_ADJ 0
1203
+ static int yy_more_flag = 0;
1204
+ static int yy_more_len = 0;
1205
+ #define yymore() ((yy_more_flag) = 1)
1206
+ #define YY_MORE_ADJ (yy_more_len)
775
1207
  #define YY_RESTORE_YY_MORE_OFFSET
776
1208
  char *yytext;
777
1209
  #line 1 "src/Slice/Scanner.l"
778
- #line 2 "src/Slice/Scanner.l"
779
-
780
- //
781
- // Copyright (c) ZeroC, Inc. All rights reserved.
782
- //
783
-
784
- #include <Slice/GrammarUtil.h> // Before Grammer.h, so that YYSTYPE is defined
785
- #include <Slice/Grammar.h>
786
- #include <IceUtil/InputUtil.h>
787
-
788
- #include <iomanip>
789
-
790
- #include <stdlib.h>
791
- #include <math.h>
792
-
793
- #if defined(_MSC_VER)
794
- // '<' : signed/unsigned mismatch
795
- # pragma warning(disable:4018)
796
- // 'initializing' : conversion from '__int64' to 'int', possible loss of data
797
- # pragma warning(disable:4244)
798
1210
 
799
- # if defined(ICE_64)
800
- //
801
- // '=' : conversion from 'size_t' to 'int', possible loss of data
802
- // The result of fread() is a size_t and gets inserted into an int
803
- //
804
- # pragma warning(disable:4267)
805
- # endif
806
- #endif
807
-
808
- #if defined(__GNUC__)
809
- # pragma GCC diagnostic ignored "-Wsign-compare"
810
- #endif
811
-
812
- //
813
- // Avoid clang conversion warnings
814
- //
815
- #if defined(__clang__)
816
- # pragma clang diagnostic ignored "-Wconversion"
817
- # pragma clang diagnostic ignored "-Wsign-conversion"
818
- #endif
1211
+ #line 17 "src/Slice/Scanner.l"
819
1212
 
820
- #ifdef _MSC_VER
821
- # ifdef slice_wrap
822
- # undef slice_wrap
823
- # define slice_wrap() 1
824
- # endif
825
- # define YY_NO_UNISTD_H
826
- #endif
1213
+ #include "GrammarUtil.h"
1214
+ #include "Grammar.h"
827
1215
 
828
- #ifdef __SUNPRO_CC
829
- # ifdef slice_wrap
830
- # undef slice_wrap
831
- # define slice_wrap() 1
832
- # endif
833
- # ifdef ICE_64
834
- # pragma error_messages(off,truncwarn)
835
- # endif
836
- #endif
1216
+ #include <iostream>
1217
+ #include <cstdlib>
1218
+ #include <cmath>
837
1219
 
838
1220
  using namespace std;
839
1221
  using namespace Slice;
840
1222
 
841
1223
  namespace Slice
842
1224
  {
1225
+ // Definitions for the case-insensitive keyword-token map.
1226
+ using StringTokenMap = map<string, int>;
1227
+ StringTokenMap keywordMap;
843
1228
 
844
- //
845
- // Definitions for the case-insensitive keyword-token map.
846
- //
847
- typedef std::map<std::string, int> StringTokenMap;
848
- static StringTokenMap keywordMap;
1229
+ int checkKeyword(string& identifier);
1230
+ int checkIsScoped(const string& identifier);
1231
+ }
849
1232
 
850
- void initScanner();
851
- int checkKeyword(string&);
852
- int checkIdentifier(string&);
1233
+ // Stores the scanner's current column position. Flex also automatically
1234
+ // generates 'yylineno', which stores the scanner's current line number.
1235
+ int yycolno = 0;
1236
+ // Stores a copy of the filename that the scanner is currently scanning.
1237
+ string yyfilename;
853
1238
 
1239
+ namespace
1240
+ {
1241
+ void nextLine(int count = 1);
1242
+ int scanPosition(const char* s);
1243
+ void setLocation(TokenContext* location);
1244
+ void startLocation(TokenContext* location);
1245
+ void endLocation(TokenContext* location);
1246
+
1247
+ void initScanner();
1248
+ void preAction();
1249
+ void pushState(int newState);
1250
+ void popState();
1251
+
1252
+ void yynoreturn fatalError(const char* msg);
854
1253
  }
855
1254
 
1255
+ // Override some of the functions flex auto-generates with our own implementations.
856
1256
  #define YY_USER_INIT initScanner();
1257
+ #define YY_USER_ACTION preAction();
1258
+ #define YY_FATAL_ERROR(msg) fatalError(msg);
1259
+
1260
+ #line 1260 "src/Slice/Scanner.cpp"
1261
+ #line 68 "src/Slice/Scanner.l"
1262
+ /* Changes the default prefix of 'yy' to 'slice_' for functions and variables in the generated code. */
1263
+ /* Instructs flex to not suppress any warnings when generating the scanner. */
1264
+ /* Instructs flex to generate a scanner that supports verbose outputting (debug mode). */
1265
+ /* By default flex will 'default match' any text it encounters that doesn't match any specified rules. This
1266
+ * option disables default-matching (it throws 'scanner jammed' instead) to make grammar holes more obvious. */
1267
+ /* Directs flex to generate a scanner tailored for use by bison, and that supports bison's token location mechanism.
1268
+ * These options change the signature of the main lexing function, which must match the one declared in Grammar.y */
1269
+ /* Enables the use of flex's built in start-condition state stack. */
1270
+ /* Ensures flex generates a scanner that supports reading 8-bit characters. */
1271
+ /* Directs flex to generate lookup tables that are better aligned in memory to
1272
+ * improve access speeds, even if this means allocating larger tables. */
1273
+ /* Enables batching for improved performance. */
1274
+ /* Directs flex to store matched text as 'char *' instead of char arrays, for improved performance. */
1275
+ /* Disables the scanner's interactive modes for improved performance. */
1276
+ /* Disables the generation of functions we don't use to reduce clutter, and possibly improve performance. */
1277
+ #define YY_NO_INPUT 1
1278
+ /* List of start-condition states the scanner can be in. This lets the scanning be context dependent. */
1279
+
857
1280
 
858
- #line 857 "src/Slice/Scanner.cpp"
859
1281
 
860
- #line 859 "src/Slice/Scanner.cpp"
1282
+
1283
+
1284
+
1285
+ /* The scanner also has a built in 'INITIAL' start-condition state, which is the state the scanner is initialized in.
1286
+ * We use it solely to check for and consume any BOMs at the start of files. See Bug 3140. */
1287
+ #line 1287 "src/Slice/Scanner.cpp"
861
1288
 
862
1289
  #define INITIAL 0
863
- #define BOMSCAN 1
864
- #define MAINSCAN 2
1290
+ #define C_COMMENT 1
1291
+ #define C_DOC_COMMENT 2
1292
+ #define SLICE 3
1293
+ #define PREPROCESS 4
1294
+ #define METADATA 5
1295
+ #define STRING_LITERAL 6
865
1296
 
866
1297
  #ifndef YY_NO_UNISTD_H
867
1298
  /* Special case for "unistd.h", since it is non-ANSI. We include it way
868
1299
  * down here because we want the user's section 1 to have been scanned first.
869
1300
  * The user has a chance to override it with an option.
870
1301
  */
1302
+ /* %if-c-only */
871
1303
  #include <unistd.h>
1304
+ /* %endif */
1305
+ /* %if-c++-only */
1306
+ /* %endif */
872
1307
  #endif
873
1308
 
874
1309
  #ifndef YY_EXTRA_TYPE
875
1310
  #define YY_EXTRA_TYPE void *
876
1311
  #endif
877
1312
 
1313
+ /* %if-c-only Reentrant structure and macros (non-C++). */
1314
+ /* %if-reentrant */
1315
+ /* %if-c-only */
1316
+
878
1317
  static int yy_init_globals ( void );
879
1318
 
1319
+ /* %endif */
1320
+ /* %if-reentrant */
1321
+ /* %endif */
1322
+ /* %endif End reentrant structures and macros. */
1323
+
880
1324
  /* Accessor methods to globals.
881
1325
  These are made visible to non-reentrant scanners for convenience. */
882
1326
 
883
1327
  int yylex_destroy ( void );
884
1328
 
885
- int yyget_debug ( void );
886
-
887
- void yyset_debug ( int debug_flag );
888
-
889
- YY_EXTRA_TYPE yyget_extra ( void );
890
-
891
- void yyset_extra ( YY_EXTRA_TYPE user_defined );
892
-
893
- FILE *yyget_in ( void );
894
-
895
- void yyset_in ( FILE * _in_str );
896
-
897
- FILE *yyget_out ( void );
898
-
899
- void yyset_out ( FILE * _out_str );
1329
+ /* %if-bison-bridge */
900
1330
 
901
- int yyget_leng ( void );
1331
+ void yyset_lval ( YYSTYPE * yylval_param );
902
1332
 
903
- char *yyget_text ( void );
904
-
905
- int yyget_lineno ( void );
906
-
907
- void yyset_lineno ( int _line_number );
1333
+ /* %endif */
908
1334
 
909
1335
  /* Macros after this point can all be overridden by user definitions in
910
1336
  * section 1.
@@ -918,11 +1344,13 @@ extern int yywrap ( void );
918
1344
  #endif
919
1345
  #endif
920
1346
 
1347
+ /* %not-for-header */
921
1348
  #ifndef YY_NO_UNPUT
922
1349
 
923
- static void yyunput ( int c, char *buf_ptr );
924
-
925
1350
  #endif
1351
+ /* %ok-for-header */
1352
+
1353
+ /* %endif */
926
1354
 
927
1355
  #ifndef yytext_ptr
928
1356
  static void yy_flex_strncpy ( char *, const char *, int );
@@ -933,14 +1361,32 @@ static int yy_flex_strlen ( const char * );
933
1361
  #endif
934
1362
 
935
1363
  #ifndef YY_NO_INPUT
1364
+ /* %if-c-only Standard (non-C++) definition */
1365
+ /* %not-for-header */
936
1366
  #ifdef __cplusplus
937
1367
  static int yyinput ( void );
938
1368
  #else
939
1369
  static int input ( void );
940
1370
  #endif
1371
+ /* %ok-for-header */
941
1372
 
1373
+ /* %endif */
942
1374
  #endif
943
1375
 
1376
+ /* %if-c-only */
1377
+
1378
+ static int yy_start_stack_ptr = 0;
1379
+ static int yy_start_stack_depth = 0;
1380
+ static int *yy_start_stack = NULL;
1381
+
1382
+ static void yy_push_state ( int _new_state );
1383
+
1384
+ static void yy_pop_state ( void );
1385
+
1386
+ static int yy_top_state ( void );
1387
+
1388
+ /* %endif */
1389
+
944
1390
  /* Amount of stuff to slurp up with each read. */
945
1391
  #ifndef YY_READ_BUF_SIZE
946
1392
  #ifdef __ia64__
@@ -953,10 +1399,14 @@ static int input ( void );
953
1399
 
954
1400
  /* Copy whatever the last rule matched to the standard output. */
955
1401
  #ifndef ECHO
1402
+ /* %if-c-only Standard (non-C++) definition */
956
1403
  /* This used to be an fputs(), but since the string might contain NUL's,
957
1404
  * we now use fwrite().
958
1405
  */
959
1406
  #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
1407
+ /* %endif */
1408
+ /* %if-c++-only C++ definition */
1409
+ /* %endif */
960
1410
  #endif
961
1411
 
962
1412
  /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
@@ -964,6 +1414,7 @@ static int input ( void );
964
1414
  */
965
1415
  #ifndef YY_INPUT
966
1416
  #define YY_INPUT(buf,result,max_size) \
1417
+ /* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\
967
1418
  if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
968
1419
  { \
969
1420
  int c = '*'; \
@@ -992,6 +1443,8 @@ static int input ( void );
992
1443
  } \
993
1444
  }\
994
1445
  \
1446
+ /* %if-c++-only C++ definition \ */\
1447
+ /* %endif */
995
1448
 
996
1449
  #endif
997
1450
 
@@ -1010,20 +1463,39 @@ static int input ( void );
1010
1463
 
1011
1464
  /* Report a fatal error. */
1012
1465
  #ifndef YY_FATAL_ERROR
1466
+ /* %if-c-only */
1013
1467
  #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1468
+ /* %endif */
1469
+ /* %if-c++-only */
1470
+ /* %endif */
1014
1471
  #endif
1015
1472
 
1473
+ /* %if-tables-serialization structures and prototypes */
1474
+ /* %not-for-header */
1475
+ /* %ok-for-header */
1476
+
1477
+ /* %not-for-header */
1478
+ /* %tables-yydmap generated elements */
1479
+ /* %endif */
1016
1480
  /* end tables serialization structures and prototypes */
1017
1481
 
1482
+ /* %ok-for-header */
1483
+
1018
1484
  /* Default declaration of generated scanner - a define so the user can
1019
1485
  * easily add parameters.
1020
1486
  */
1021
1487
  #ifndef YY_DECL
1022
1488
  #define YY_DECL_IS_OURS 1
1489
+ /* %if-c-only Standard (non-C++) definition */
1023
1490
 
1024
- extern int yylex (void);
1491
+ extern int yylex \
1492
+ (YYSTYPE * yylval_param, YYLTYPE * yylloc_param );
1025
1493
 
1026
- #define YY_DECL int yylex (void)
1494
+ #define YY_DECL int yylex \
1495
+ (YYSTYPE * yylval_param, YYLTYPE * yylloc_param )
1496
+ /* %endif */
1497
+ /* %if-c++-only C++ definition */
1498
+ /* %endif */
1027
1499
  #endif /* !YY_DECL */
1028
1500
 
1029
1501
  /* Code executed at the beginning of each rule, after yytext and yyleng
@@ -1038,12 +1510,14 @@ extern int yylex (void);
1038
1510
  #define YY_BREAK /*LINTED*/break;
1039
1511
  #endif
1040
1512
 
1513
+ /* %% [6.0] YY_RULE_SETUP definition goes here */
1041
1514
  #define YY_RULE_SETUP \
1042
1515
  if ( yyleng > 0 ) \
1043
1516
  YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
1044
1517
  (yytext[yyleng - 1] == '\n'); \
1045
1518
  YY_USER_ACTION
1046
1519
 
1520
+ /* %not-for-header */
1047
1521
  /** The main scanner function which does all the work.
1048
1522
  */
1049
1523
  YY_DECL
@@ -1052,6 +1526,14 @@ YY_DECL
1052
1526
  char *yy_cp, *yy_bp;
1053
1527
  int yy_act;
1054
1528
 
1529
+ YYSTYPE * yylval;
1530
+
1531
+ YYLTYPE * yylloc;
1532
+
1533
+ yylval = yylval_param;
1534
+
1535
+ yylloc = yylloc_param;
1536
+
1055
1537
  if ( !(yy_init) )
1056
1538
  {
1057
1539
  (yy_init) = 1;
@@ -1064,10 +1546,18 @@ YY_DECL
1064
1546
  (yy_start) = 1; /* first start state */
1065
1547
 
1066
1548
  if ( ! yyin )
1549
+ /* %if-c-only */
1067
1550
  yyin = stdin;
1551
+ /* %endif */
1552
+ /* %if-c++-only */
1553
+ /* %endif */
1068
1554
 
1069
1555
  if ( ! yyout )
1556
+ /* %if-c-only */
1070
1557
  yyout = stdout;
1558
+ /* %endif */
1559
+ /* %if-c++-only */
1560
+ /* %endif */
1071
1561
 
1072
1562
  if ( ! YY_CURRENT_BUFFER ) {
1073
1563
  yyensure_buffer_stack ();
@@ -1079,13 +1569,23 @@ YY_DECL
1079
1569
  }
1080
1570
 
1081
1571
  {
1082
- #line 96 "src/Slice/Scanner.l"
1572
+ /* %% [7.0] user's declarations go here */
1573
+ #line 126 "src/Slice/Scanner.l"
1083
1574
 
1084
1575
 
1085
- #line 1084 "src/Slice/Scanner.cpp"
1576
+ /* ========== Literals ========== */
1577
+ /* Matches the start of a double-quoted string literal. */
1578
+ #line 1578 "src/Slice/Scanner.cpp"
1086
1579
 
1087
1580
  while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
1088
1581
  {
1582
+ /* %% [8.0] yymore()-related code goes here */
1583
+ (yy_more_len) = 0;
1584
+ if ( (yy_more_flag) )
1585
+ {
1586
+ (yy_more_len) = (int) ((yy_c_buf_p) - (yytext_ptr));
1587
+ (yy_more_flag) = 0;
1588
+ }
1089
1589
  yy_cp = (yy_c_buf_p);
1090
1590
 
1091
1591
  /* Support of yytext. */
@@ -1096,6 +1596,7 @@ YY_DECL
1096
1596
  */
1097
1597
  yy_bp = yy_cp;
1098
1598
 
1599
+ /* %% [9.0] code to set up and find next match goes here */
1099
1600
  yy_current_state = (yy_start);
1100
1601
  yy_current_state += YY_AT_BOL();
1101
1602
  yy_match:
@@ -1110,25 +1611,46 @@ yy_match:
1110
1611
  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1111
1612
  {
1112
1613
  yy_current_state = (int) yy_def[yy_current_state];
1113
- if ( yy_current_state >= 76 )
1614
+ if ( yy_current_state >= 220 )
1114
1615
  yy_c = yy_meta[yy_c];
1115
1616
  }
1116
1617
  yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
1117
1618
  ++yy_cp;
1118
1619
  }
1119
- while ( yy_current_state != 75 );
1620
+ while ( yy_current_state != 219 );
1120
1621
  yy_cp = (yy_last_accepting_cpos);
1121
1622
  yy_current_state = (yy_last_accepting_state);
1122
1623
 
1123
1624
  yy_find_action:
1625
+ /* %% [10.0] code to find the action number goes here */
1124
1626
  yy_act = yy_accept[yy_current_state];
1125
1627
 
1126
1628
  YY_DO_BEFORE_ACTION;
1127
1629
 
1630
+ /* %% [11.0] code for yylineno update goes here */
1631
+
1128
1632
  do_action: /* This label is used only to access EOF actions. */
1129
1633
 
1634
+ /* %% [12.0] debug code goes here */
1635
+ if ( yy_flex_debug )
1636
+ {
1637
+ if ( yy_act == 0 )
1638
+ fprintf( stderr, "--scanner backing up\n" );
1639
+ else if ( yy_act < 51 )
1640
+ fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
1641
+ (long)yy_rule_linenum[yy_act], yytext );
1642
+ else if ( yy_act == 51 )
1643
+ fprintf( stderr, "--accepting default rule (\"%s\")\n",
1644
+ yytext );
1645
+ else if ( yy_act == 52 )
1646
+ fprintf( stderr, "--(end of buffer or a NUL)\n" );
1647
+ else
1648
+ fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
1649
+ }
1650
+
1130
1651
  switch ( yy_act )
1131
1652
  { /* beginning of action switch */
1653
+ /* %% [13.0] actions go here */
1132
1654
  case 0: /* must back up */
1133
1655
  /* undo the effects of YY_DO_BEFORE_ACTION */
1134
1656
  *yy_cp = (yy_hold_char);
@@ -1137,518 +1659,599 @@ do_action: /* This label is used only to access EOF actions. */
1137
1659
  goto yy_find_action;
1138
1660
 
1139
1661
  case 1:
1140
- *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
1141
- (yy_c_buf_p) = yy_cp -= 1;
1142
- YY_DO_BEFORE_ACTION; /* set up yytext again */
1143
1662
  YY_RULE_SETUP
1144
- #line 98 "src/Slice/Scanner.l"
1663
+ #line 130 "src/Slice/Scanner.l"
1145
1664
  {
1146
- if(unit->scanPosition(yytext))
1147
- {
1148
- BEGIN(BOMSCAN);
1149
- }
1665
+ pushState(STRING_LITERAL);
1666
+ startLocation(yylloc);
1667
+
1668
+ StringTokPtr str = make_shared<StringTok>();
1669
+ str->literal = "\"";
1670
+ *yylval = str;
1150
1671
  }
1151
1672
  YY_BREAK
1673
+ /* Matches a single escaped backslash, or as many characters as it can,
1674
+ * except backslashes, new-lines, double quotes, and non-printable ASCII characters. */
1675
+ /* Matches Escaped backslashes and any other valid string characters. Invalid characters are
1676
+ * new-lines, non-printable ASCII characters, and double-quotes. */
1152
1677
  case 2:
1153
- /* rule 2 can match eol */
1154
- *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
1155
- YY_LINENO_REWIND_TO(yy_cp - 1);
1156
- (yy_c_buf_p) = yy_cp -= 1;
1157
- YY_DO_BEFORE_ACTION; /* set up yytext again */
1678
+ #line 145 "src/Slice/Scanner.l"
1679
+ case 3:
1158
1680
  YY_RULE_SETUP
1159
- #line 105 "src/Slice/Scanner.l"
1681
+ #line 145 "src/Slice/Scanner.l"
1160
1682
  {
1161
- if(unit->scanPosition(yytext))
1162
- {
1163
- BEGIN(BOMSCAN);
1164
- }
1683
+ StringTokPtr str = dynamic_pointer_cast<StringTok>(*yylval);
1684
+ str->literal += yytext;
1685
+ str->v += yytext;
1165
1686
  }
1166
1687
  YY_BREAK
1167
- case 3:
1168
- *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
1169
- (yy_c_buf_p) = yy_cp -= 1;
1170
- YY_DO_BEFORE_ACTION; /* set up yytext again */
1688
+ /* Matches an escaped double-quote, single-quote, or question mark. */
1689
+ case 4:
1690
+ #line 153 "src/Slice/Scanner.l"
1691
+ case 5:
1692
+ #line 154 "src/Slice/Scanner.l"
1693
+ case 6:
1171
1694
  YY_RULE_SETUP
1172
- #line 112 "src/Slice/Scanner.l"
1695
+ #line 154 "src/Slice/Scanner.l"
1173
1696
  {
1174
- if(unit->scanPosition(yytext))
1175
- {
1176
- BEGIN(BOMSCAN);
1177
- }
1697
+ StringTokPtr str = dynamic_pointer_cast<StringTok>(*yylval);
1698
+ str->literal += yytext;
1699
+ str->v += yytext[1];
1178
1700
  }
1179
1701
  YY_BREAK
1180
- case 4:
1181
- /* rule 4 can match eol */
1182
- *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
1183
- YY_LINENO_REWIND_TO(yy_cp - 1);
1184
- (yy_c_buf_p) = yy_cp -= 1;
1185
- YY_DO_BEFORE_ACTION; /* set up yytext again */
1702
+ /* Matches an ANSI-C escape code pattern. */
1703
+ case 7:
1186
1704
  YY_RULE_SETUP
1187
- #line 119 "src/Slice/Scanner.l"
1705
+ #line 161 "src/Slice/Scanner.l"
1188
1706
  {
1189
- if(unit->scanPosition(yytext))
1707
+ StringTokPtr str = dynamic_pointer_cast<StringTok>(*yylval);
1708
+ char ansiCode;
1709
+ switch(yytext[1])
1190
1710
  {
1191
- BEGIN(BOMSCAN);
1711
+ case 'a': ansiCode = '\a'; break;
1712
+ case 'b': ansiCode = '\b'; break;
1713
+ case 'f': ansiCode = '\f'; break;
1714
+ case 'n': ansiCode = '\n'; break;
1715
+ case 'r': ansiCode = '\r'; break;
1716
+ case 't': ansiCode = '\t'; break;
1717
+ case 'v': ansiCode = '\v'; break;
1718
+ default: ansiCode = '\0'; assert(false);
1192
1719
  }
1720
+ str->literal += yytext;
1721
+ str->v += ansiCode;
1193
1722
  }
1194
1723
  YY_BREAK
1195
- case 5:
1724
+ /* Matches an escaped octal value. Octal literals are limited to a max of 3 digits. */
1725
+ case 8:
1196
1726
  YY_RULE_SETUP
1197
- #line 126 "src/Slice/Scanner.l"
1727
+ #line 180 "src/Slice/Scanner.l"
1198
1728
  {
1199
- // C++-style comment
1200
- BEGIN(MAINSCAN);
1201
- int c;
1202
- do
1729
+ int64_t value = std::stoll((yytext + 1), nullptr, 8);
1730
+ if (value > 255)
1203
1731
  {
1204
- c = yyinput();
1205
- if(c == '\n')
1206
- {
1207
- unit->nextLine();
1208
- }
1732
+ currentUnit->error("octal escape sequence out of range: '\\" + string(yytext + 1) + "'");
1209
1733
  }
1210
- while(c != '\n' && c != EOF);
1734
+
1735
+ StringTokPtr str = dynamic_pointer_cast<StringTok>(*yylval);
1736
+ str->literal += yytext;
1737
+ str->v += static_cast<char>(value);
1211
1738
  }
1212
1739
  YY_BREAK
1213
- case 6:
1740
+ /* Matches an escaped hexadecimal value. Hexadecimal literals are limited to a max of 2 digits. */
1741
+ case 9:
1214
1742
  YY_RULE_SETUP
1215
- #line 141 "src/Slice/Scanner.l"
1743
+ #line 193 "src/Slice/Scanner.l"
1216
1744
  {
1217
- // C-style comment
1218
- BEGIN(MAINSCAN);
1219
- string comment = yytext + 2;
1220
- while(true)
1221
- {
1222
- int c = yyinput();
1223
- if(c == '\n')
1224
- {
1225
- comment += static_cast<char>(c);
1226
- unit->nextLine();
1227
- }
1228
- else if(c == '*')
1229
- {
1230
- int next = yyinput();
1231
- if(next == '/')
1232
- {
1233
- break;
1234
- }
1235
- else
1236
- {
1237
- comment += static_cast<char>(c);
1238
- unput(next);
1239
- }
1240
- }
1241
- else if(c == EOF)
1242
- {
1243
- unit->warning(All, "EOF in comment");
1244
- break;
1245
- }
1246
- else
1247
- {
1248
- comment += static_cast<char>(c);
1249
- }
1250
- }
1251
- if(!comment.empty() && comment[0] == '*')
1252
- {
1253
- unit->setComment(comment);
1254
- }
1745
+ int64_t value = std::stoll((yytext + 2), nullptr, 16);
1746
+ assert(value <= 255);
1747
+
1748
+ StringTokPtr str = dynamic_pointer_cast<StringTok>(*yylval);
1749
+ str->literal += yytext;
1750
+ str->v += static_cast<char>(value);
1255
1751
  }
1256
1752
  YY_BREAK
1257
- case 7:
1753
+ /* Matches an empty hexadecimal escape value. */
1754
+ case 10:
1258
1755
  YY_RULE_SETUP
1259
- #line 182 "src/Slice/Scanner.l"
1756
+ #line 203 "src/Slice/Scanner.l"
1260
1757
  {
1261
- BEGIN(MAINSCAN);
1262
- return ICE_METADATA_OPEN;
1758
+ currentUnit->error("no hex digit in hex escape sequence");
1759
+ StringTokPtr str = dynamic_pointer_cast<StringTok>(*yylval);
1760
+ str->literal += yytext;
1263
1761
  }
1264
1762
  YY_BREAK
1265
- case 8:
1763
+ /* Matches a 4-char or 8-char size universal character code. */
1764
+ case 11:
1765
+ #line 211 "src/Slice/Scanner.l"
1766
+ case 12:
1266
1767
  YY_RULE_SETUP
1267
- #line 187 "src/Slice/Scanner.l"
1768
+ #line 211 "src/Slice/Scanner.l"
1268
1769
  {
1269
- BEGIN(MAINSCAN);
1270
- return ICE_METADATA_CLOSE;
1770
+ int64_t codePoint = std::stoll((yytext + 2), nullptr, 16);
1771
+ if (codePoint <= 0xdfff && codePoint >= 0xd800)
1772
+ {
1773
+ currentUnit->error("a universal character name cannot designate a surrogate: '" + string(yytext) + "'");
1774
+ }
1775
+ StringTokPtr str = dynamic_pointer_cast<StringTok>(*yylval);
1776
+ str->literal += yytext;
1777
+ str->v += yytext;
1271
1778
  }
1272
1779
  YY_BREAK
1273
- case 9:
1780
+ /* Matches a universal character code that isn't the correct size, or uses incorrect characters. */
1781
+ case 13:
1782
+ #line 224 "src/Slice/Scanner.l"
1783
+ case 14:
1274
1784
  YY_RULE_SETUP
1275
- #line 192 "src/Slice/Scanner.l"
1785
+ #line 224 "src/Slice/Scanner.l"
1276
1786
  {
1277
- BEGIN(MAINSCAN);
1278
- return ICE_GLOBAL_METADATA_OPEN;
1787
+ currentUnit->error("unknown escape sequence in string literal: '" + string(yytext) + "'");
1788
+ StringTokPtr str = dynamic_pointer_cast<StringTok>(*yylval);
1789
+ str->literal += yytext;
1790
+ str->v += yytext;
1279
1791
  }
1280
1792
  YY_BREAK
1281
- case 10:
1793
+ /* Matches an unescaped newline in a string literal, and issues an error. */
1794
+ case 15:
1795
+ /* rule 15 can match eol */
1282
1796
  YY_RULE_SETUP
1283
- #line 197 "src/Slice/Scanner.l"
1797
+ #line 232 "src/Slice/Scanner.l"
1284
1798
  {
1285
- BEGIN(MAINSCAN);
1286
- return ICE_GLOBAL_METADATA_CLOSE;
1799
+ popState();
1800
+ endLocation(yylloc);
1801
+ nextLine();
1802
+
1803
+ currentUnit->error("encountered un-escaped EOL while scanning a string literal.");
1804
+ return ICE_STRING_LITERAL;
1287
1805
  }
1288
1806
  YY_BREAK
1289
- case 11:
1290
- /* rule 11 can match eol */
1807
+ /* Matches an unknown escape value. This rule has a lower priority than all the other escape rules because
1808
+ * it only matches 2 characters (the lowest any match), and it's beneath the others. */
1809
+ case 16:
1291
1810
  YY_RULE_SETUP
1292
- #line 202 "src/Slice/Scanner.l"
1811
+ #line 243 "src/Slice/Scanner.l"
1293
1812
  {
1294
- BEGIN(MAINSCAN);
1295
- StringTokPtr ident = new StringTok;
1296
- ident->v = *yytext == '\\' ? yytext + 1 : yytext;
1297
- ident->v.erase(ident->v.find_first_of(" \t\v\n\r\f("));
1298
- *yylvalp = ident;
1299
- if(*yytext == '\\')
1300
- {
1301
- if(checkIdentifier(ident->v) == ICE_SCOPED_IDENTIFIER)
1302
- {
1303
- unit->error("Operation identifiers cannot be scoped: `" + (ident->v) + "'");
1304
- }
1305
- return ICE_IDENT_OP;
1306
- }
1307
- int st = checkKeyword(ident->v);
1308
- if(st == ICE_IDENTIFIER)
1309
- {
1310
- return ICE_IDENT_OP;
1311
- }
1312
- else if(st == ICE_SCOPED_IDENTIFIER)
1313
- {
1314
- unit->error("Operation identifiers cannot be scoped: `" + (ident->v) + "'");
1315
- return ICE_IDENT_OP;
1316
- }
1317
- else if(st == ICE_OPTIONAL)
1318
- {
1319
- return ICE_OPTIONAL_OP;
1320
- }
1321
- else
1322
- {
1323
- return ICE_KEYWORD_OP;
1324
- }
1813
+ currentUnit->warning(All, "unknown escape sequence in string literal: '" + string{yytext} + "'");
1814
+
1815
+ StringTokPtr str = dynamic_pointer_cast<StringTok>(*yylval);
1816
+ // Escape the entire sequence.
1817
+ str->literal += yytext;
1818
+ str->v += "\\" + string(yytext);
1325
1819
  }
1326
1820
  YY_BREAK
1327
- case 12:
1821
+ /* Matches a dangling backslash, with nothing to escape. This rule is mostly included for grammar completeness. */
1822
+ case 17:
1328
1823
  YY_RULE_SETUP
1329
- #line 236 "src/Slice/Scanner.l"
1824
+ #line 253 "src/Slice/Scanner.l"
1330
1825
  {
1331
- BEGIN(MAINSCAN);
1332
- StringTokPtr ident = new StringTok;
1333
- ident->v = *yytext == '\\' ? yytext + 1 : yytext;
1334
- *yylvalp = ident;
1335
- return *yytext == '\\' ? checkIdentifier(ident->v) : checkKeyword(ident->v);
1826
+ currentUnit->warning(All, "dangling backslash in string literal");
1827
+ StringTokPtr str = dynamic_pointer_cast<StringTok>(*yylval);
1828
+ str->literal += yytext;
1336
1829
  }
1337
1830
  YY_BREAK
1338
- case 13:
1831
+ /* Matches the end of a double-quoted string literal, but only while scanning a string literal. Flex always prefers
1832
+ * to match the longest string it can, so quotes preceeded with a literal '\' will match the rules above this one. */
1833
+ case 18:
1339
1834
  YY_RULE_SETUP
1340
- #line 244 "src/Slice/Scanner.l"
1835
+ #line 261 "src/Slice/Scanner.l"
1341
1836
  {
1342
- BEGIN(MAINSCAN);
1343
- StringTokPtr str = new StringTok;
1344
- str->literal = "\"";
1345
- while(true)
1346
- {
1347
- int c = yyinput();
1348
- str->literal += static_cast<char>(c);
1349
- if(c == '"')
1350
- {
1351
- break;
1352
- }
1353
- else if(c == EOF)
1354
- {
1355
- unit->error("EOF in string");
1356
- break;
1357
- }
1358
- else if(c < 32 || c == 127)
1359
- {
1360
- unit->error("a string literal can only contain printable ASCII characters and non-ASCII characters");
1361
- break;
1362
- }
1363
- else if(c == '\\')
1364
- {
1365
- int next = yyinput();
1366
- str->literal += static_cast<char>(next);
1367
- switch(next)
1368
- {
1369
- case '\\':
1370
- {
1371
- //
1372
- // add extra escape to our internal string
1373
- //
1374
- str->v += '\\';
1375
- str->v += '\\';
1376
- break;
1377
- }
1378
- case '"':
1379
- case '\'':
1380
- case '?':
1381
- {
1382
- str->v += static_cast<char>(next);
1383
- break;
1384
- }
1385
- case 'a':
1386
- {
1387
- str->v += '\a';
1388
- break;
1389
- }
1390
- case 'b':
1391
- {
1392
- str->v += '\b';
1393
- break;
1394
- }
1395
- case 'f':
1396
- {
1397
- str->v += '\f';
1398
- break;
1399
- }
1400
- case 'n':
1401
- {
1402
- str->v += '\n';
1403
- break;
1404
- }
1405
- case 'r':
1406
- {
1407
- str->v += '\r';
1408
- break;
1409
- }
1410
- case 't':
1411
- {
1412
- str->v += '\t';
1413
- break;
1414
- }
1415
- case 'v':
1416
- {
1417
- str->v += '\v';
1418
- break;
1419
- }
1420
-
1421
- //
1422
- // Octal value \nnn limited to three octal digits but terminate at the first character
1423
- // that is not a valid octal digit if encountered sooner.
1424
- //
1425
- case '0':
1426
- case '1':
1427
- case '2':
1428
- case '3':
1429
- case '4':
1430
- case '5':
1431
- case '6':
1432
- case '7':
1433
- {
1434
- static string octalDigits = "01234567";
1435
- string escape;
1436
- escape += static_cast<char>(next);
1437
- for(int i = 0; i < 2; ++i)
1438
- {
1439
- next = yyinput();
1440
- if(octalDigits.find_first_of(static_cast<char>(next)) == string::npos)
1441
- {
1442
- unput(next);
1443
- break;
1444
- }
1445
- escape += static_cast<char>(next);
1446
- }
1447
- str->literal += escape;
1448
- IceUtil::Int64 value = IceUtilInternal::strToInt64(escape.c_str(), 0, 8);
1449
- if(value > 255)
1450
- {
1451
- unit->error(string("octal escape sequence out of range: `\\") + escape + "'");
1452
- }
1453
- str->v += static_cast<char>(value);
1454
- break;
1455
- }
1456
-
1457
- case 'x':
1458
- {
1459
- string escape = "";
1460
- next = yyinput();
1461
-
1462
- //
1463
- // Unlike C++, we limit hex escape sequences to 2 hex digits
1464
- //
1465
- while(isxdigit(static_cast<char>(next)) && escape.length() < 2)
1466
- {
1467
- escape += static_cast<char>(next);
1468
- next = yyinput();
1469
- }
1470
- unput(next);
1471
-
1472
- if(escape.length() == 0)
1473
- {
1474
- unit->error("no hex digit in hex escape sequence");
1475
- }
1476
-
1477
- str->literal += escape;
1478
- IceUtil::Int64 value = IceUtilInternal::strToInt64(escape.c_str(), 0, 16);
1479
-
1480
- assert(value >= 0 && value <= 255);
1481
- str->v += static_cast<char>(value);
1482
- break;
1483
- }
1837
+ popState();
1838
+ endLocation(yylloc);
1484
1839
 
1485
- //
1486
- // Universal character name
1487
- //
1488
- case 'u':
1489
- case 'U':
1490
- {
1491
- string escape = "";
1492
- c = next;
1493
- int size = (c == 'u') ? 4 : 8;
1494
- while(size > 0)
1495
- {
1496
- next = yyinput();
1497
- if(!isxdigit(next))
1498
- {
1499
- unit->error(string("unknown escape sequence in string literal: `\\") +
1500
- static_cast<char>(c) + escape + static_cast<char>(next) + "'");
1501
- unput(next);
1502
- break;
1503
- }
1504
- escape += static_cast<char>(next);
1505
- --size;
1506
- }
1507
-
1508
- if(size == 0)
1509
- {
1510
- // All digits read, check value
1511
- IceUtil::Int64 codePoint = IceUtilInternal::strToInt64(escape.c_str(), 0, 16);
1512
- if(codePoint >= 0xd800 && codePoint <= 0xdfff)
1513
- {
1514
- unit->error(string("a universal character name cannot designate a surrogate: `\\") +
1515
- static_cast<char>(c) + escape + "'");
1516
- }
1517
- }
1518
-
1519
- str->literal += escape;
1520
- str->v += string("\\") + static_cast<char>(c) + escape;
1521
- break;
1522
- }
1840
+ StringTokPtr str = dynamic_pointer_cast<StringTok>(*yylval);
1841
+ str->literal += yytext;
1842
+ return ICE_STRING_LITERAL;
1843
+ }
1844
+ YY_BREAK
1845
+ /* Matches EOF, but only while scanning a string literal. */
1846
+ case YY_STATE_EOF(STRING_LITERAL):
1847
+ #line 271 "src/Slice/Scanner.l"
1848
+ {
1849
+ popState();
1850
+ endLocation(yylloc);
1523
1851
 
1524
- default:
1525
- {
1526
- ostringstream os;
1527
- os << "unknown escape sequence `\\" << static_cast<char>(next) << "'";
1528
- unit->warning(All, os.str());
1529
-
1530
- // Escape the \ in this unknown escape sequence
1531
- str->v += '\\';
1532
- str->v += '\\';
1533
- unput(next);
1534
- }
1535
- }
1536
- }
1537
- else
1538
- {
1539
- str->v += static_cast<char>(c);
1540
- }
1541
- }
1542
- *yylvalp = str;
1852
+ currentUnit->error("encountered EOF while scanning a string literal");
1543
1853
  return ICE_STRING_LITERAL;
1544
1854
  }
1545
1855
  YY_BREAK
1546
- case 14:
1856
+ case 19:
1547
1857
  YY_RULE_SETUP
1548
- #line 449 "src/Slice/Scanner.l"
1858
+ #line 279 "src/Slice/Scanner.l"
1549
1859
  {
1550
- BEGIN(MAINSCAN);
1551
- IntegerTokPtr itp = new IntegerTok;
1860
+ setLocation(yylloc);
1861
+
1862
+ IntegerTokPtr itp = make_shared<IntegerTok>();
1552
1863
  itp->literal = string(yytext);
1553
- *yylvalp = itp;
1554
- if(!IceUtilInternal::stringToInt64(string(yytext), itp->v))
1864
+ *yylval = itp;
1865
+ try
1866
+ {
1867
+ itp->v = std::stoll(string(yytext), nullptr, 0);
1868
+ }
1869
+ catch (const std::out_of_range&)
1555
1870
  {
1556
- assert(itp->v != 0);
1557
- string msg = "integer constant `";
1558
- msg += yytext;
1559
- msg += "' out of range";
1560
- unit->error(msg);
1871
+ currentUnit->error("integer constant '" + string(yytext) + "' out of range");
1872
+ itp->v = INT64_MAX;
1873
+ }
1874
+ catch (const std::invalid_argument&)
1875
+ {
1876
+ currentUnit->error("invalid integer constant '" + string(yytext) + "'");
1877
+ itp->v = INT64_MAX;
1561
1878
  }
1562
1879
  return ICE_INTEGER_LITERAL;
1563
1880
  }
1564
1881
  YY_BREAK
1565
- case 15:
1882
+ case 20:
1566
1883
  YY_RULE_SETUP
1567
- #line 465 "src/Slice/Scanner.l"
1884
+ #line 302 "src/Slice/Scanner.l"
1568
1885
  {
1569
- BEGIN(MAINSCAN);
1886
+ setLocation(yylloc);
1887
+
1570
1888
  errno = 0;
1571
- FloatingTokPtr ftp = new FloatingTok;
1572
- *yylvalp = ftp;
1889
+ FloatingTokPtr ftp = make_shared<FloatingTok>();
1890
+ *yylval = ftp;
1573
1891
  string literal(yytext);
1574
1892
  ftp->literal = literal;
1575
1893
  char lastChar = literal[literal.size() - 1];
1576
- if(lastChar == 'f' || lastChar == 'F')
1894
+ if (lastChar == 'f' || lastChar == 'F')
1577
1895
  {
1578
1896
  literal = literal.substr(0, literal.size() - 1); // Clobber trailing 'f' or 'F' suffix
1579
1897
  }
1580
- ftp->v = strtod(literal.c_str(), 0);
1581
- if((ftp->v == HUGE_VAL || ftp->v == -HUGE_VAL) && errno == ERANGE)
1898
+ ftp->v = strtod(literal.c_str(), nullptr);
1899
+ if ((ftp->v == HUGE_VAL || ftp->v == -HUGE_VAL) && errno == ERANGE)
1582
1900
  {
1583
- string msg = "floating-point constant `";
1584
- msg += yytext;
1585
- msg += "' too large (overflow)";
1586
- unit->error(msg);
1901
+ currentUnit->error("floating-point constant '" + string{yytext} + "' too large (overflow)");
1587
1902
  }
1588
- else if(ftp->v == 0 && errno == ERANGE)
1903
+ else if (ftp->v == 0 && errno == ERANGE)
1589
1904
  {
1590
- string msg = "floating-point constant `";
1591
- msg += yytext;
1592
- msg += "' too small (underflow)";
1593
- unit->error(msg);
1905
+ currentUnit->error("floating-point constant '" + string{yytext} + "' too small (underflow)");
1594
1906
  }
1595
1907
  return ICE_FLOATING_POINT_LITERAL;
1596
1908
  }
1597
1909
  YY_BREAK
1598
- case 16:
1599
- /* rule 16 can match eol */
1910
+ /* ========== Comments ========== */
1911
+ /* Matches and records a triple-slash style doc-comment. */
1912
+ case 21:
1600
1913
  YY_RULE_SETUP
1601
- #line 495 "src/Slice/Scanner.l"
1914
+ #line 330 "src/Slice/Scanner.l"
1602
1915
  {
1603
- // Ignore white-space
1604
-
1605
- if(unit->currentLine() != 0)
1606
- {
1607
- BEGIN(MAINSCAN);
1608
- }
1609
- if(yytext[0] == '\n')
1610
- {
1611
- unit->nextLine();
1612
- }
1916
+ currentUnit->appendToDocComment(yytext + 3);
1613
1917
  }
1614
1918
  YY_BREAK
1615
- case 17:
1919
+ /* Matches and consumes a C++ style comment. */
1920
+ case 22:
1616
1921
  YY_RULE_SETUP
1617
- #line 508 "src/Slice/Scanner.l"
1618
- {
1619
- // Ignore UTF-8 BOM, rule only active when parsing start of file.
1922
+ #line 335 "src/Slice/Scanner.l"
1923
+ {}
1924
+ YY_BREAK
1925
+ /* Matches the start of a C style doc-comment, and switches the scanner to the C_DOC_COMMENT state.
1926
+ * Specifically we match a forward slash and 2 stars when they are _not_ followed by either a '/' or '*' character. */
1927
+ case 23:
1928
+ /* rule 23 can match eol */
1929
+ *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
1930
+ YY_LINENO_REWIND_TO(yy_bp + 3);
1931
+ (yy_c_buf_p) = yy_cp = yy_bp + 3;
1932
+ YY_DO_BEFORE_ACTION; /* set up yytext again */
1933
+ YY_RULE_SETUP
1934
+ #line 339 "src/Slice/Scanner.l"
1935
+ {
1936
+ pushState(C_DOC_COMMENT);
1937
+ }
1938
+ YY_BREAK
1939
+ /* Matches the start of a C style comment, and switches the scanner to the C_COMMENT state. */
1940
+ case 24:
1941
+ YY_RULE_SETUP
1942
+ #line 344 "src/Slice/Scanner.l"
1943
+ {
1944
+ pushState(C_COMMENT);
1945
+ }
1946
+ YY_BREAK
1947
+ /* Matches any character except for newlines and adds them to the comments. '*' are matched one at a time to ensure
1948
+ * Flex scans '* /' correctly. Flex prioritizes longer matches over shorter ones, so '* /' will match before '*'. */
1949
+ case 25:
1950
+ #line 351 "src/Slice/Scanner.l"
1951
+ case 26:
1952
+ YY_RULE_SETUP
1953
+ #line 351 "src/Slice/Scanner.l"
1954
+ {
1955
+ yymore();
1956
+ }
1957
+ YY_BREAK
1958
+ /* Matches as many newlines as are available and adds them to the comment, after incrementing the line count. */
1959
+ case 27:
1960
+ /* rule 27 can match eol */
1961
+ YY_RULE_SETUP
1962
+ #line 356 "src/Slice/Scanner.l"
1963
+ {
1964
+ nextLine(yyleng);
1965
+ yymore();
1966
+ }
1967
+ YY_BREAK
1968
+ /* Matches the end of a C style comment, and reverts the scanner state to what it previously was. */
1969
+ case 28:
1970
+ YY_RULE_SETUP
1971
+ #line 362 "src/Slice/Scanner.l"
1972
+ {
1973
+ string comment(yytext);
1974
+ // The last 2 characters are the '*/' matched by this rule.
1975
+ if (YY_START == C_DOC_COMMENT)
1976
+ {
1977
+ currentUnit->setDocComment(comment.substr(0, yyleng - 2));
1978
+ }
1620
1979
 
1621
- BEGIN(MAINSCAN);
1980
+ popState();
1622
1981
  }
1623
1982
  YY_BREAK
1624
- case 18:
1983
+ /* Handles reaching EOF while scanning a C style comment by issuing a warning but continuing normally. */
1984
+ case YY_STATE_EOF(C_COMMENT):
1985
+ case YY_STATE_EOF(C_DOC_COMMENT):
1986
+ #line 374 "src/Slice/Scanner.l"
1987
+ {
1988
+ currentUnit->error("encountered EOF while scanning a comment");
1989
+ if (YY_START == C_DOC_COMMENT)
1990
+ {
1991
+ currentUnit->setDocComment(yytext);
1992
+ }
1993
+
1994
+ popState();
1995
+ }
1996
+ YY_BREAK
1997
+ /* ========== Preprocessor Statements ========== */
1998
+ /* Matches the empty preprocessor directive. */
1999
+ case 29:
1625
2000
  YY_RULE_SETUP
1626
- #line 514 "src/Slice/Scanner.l"
2001
+ #line 387 "src/Slice/Scanner.l"
2002
+ {
2003
+ pushState(PREPROCESS);
2004
+ }
2005
+ YY_BREAK
2006
+ /* Matches a line preprocessor directive, but missing a line number. */
2007
+ case 30:
2008
+ YY_RULE_SETUP
2009
+ #line 392 "src/Slice/Scanner.l"
2010
+ {
2011
+ pushState(PREPROCESS);
2012
+ currentUnit->error("missing line number in line preprocessor directive");
2013
+ }
2014
+ YY_BREAK
2015
+ /* Matches a line preprocessor directive (optionally with a file specified afterwards). */
2016
+ case 31:
2017
+ #line 399 "src/Slice/Scanner.l"
2018
+ case 32:
2019
+ YY_RULE_SETUP
2020
+ #line 399 "src/Slice/Scanner.l"
2021
+ {
2022
+ int includeAction = scanPosition(yytext);
2023
+ if (yylineno == 0 || includeAction == 1) // Push: Indicated the scanner has started scanning a new file.
2024
+ {
2025
+ pushState(INITIAL);
2026
+ }
2027
+ else if (includeAction == 2) // Pop: Indicates the scanner has completed scanning a file.
2028
+ {
2029
+ popState();
2030
+ }
2031
+ pushState(PREPROCESS);
2032
+ }
2033
+ YY_BREAK
2034
+ /* Matches any non white-space character. This is a catch-all to report any invalid characters
2035
+ * found while scanning a preprocessor directive. */
2036
+ case 33:
2037
+ YY_RULE_SETUP
2038
+ #line 414 "src/Slice/Scanner.l"
2039
+ {
2040
+ currentUnit->error("encountered unexpected token while scanning preprocessor directive: '" + string(yytext) + "'");
2041
+ }
2042
+ YY_BREAK
2043
+ /* Matches a new-line character or EOF. This signals the end of the preprocessor statement. */
2044
+ case 34:
2045
+ /* rule 34 can match eol */
2046
+ #line 420 "src/Slice/Scanner.l"
2047
+ YY_RULE_SETUP
2048
+ case YY_STATE_EOF(PREPROCESS):
2049
+ #line 420 "src/Slice/Scanner.l"
2050
+ {
2051
+ popState();
2052
+ nextLine();
2053
+ }
2054
+ YY_BREAK
2055
+ /* ========== Metadata ========== */
2056
+ case 35:
2057
+ YY_RULE_SETUP
2058
+ #line 427 "src/Slice/Scanner.l"
2059
+ {
2060
+ pushState(METADATA);
2061
+ return ICE_METADATA_OPEN;
2062
+ }
2063
+ YY_BREAK
2064
+ case 36:
2065
+ YY_RULE_SETUP
2066
+ #line 432 "src/Slice/Scanner.l"
2067
+ {
2068
+ pushState(METADATA);
2069
+ return ICE_FILE_METADATA_OPEN;
2070
+ }
2071
+ YY_BREAK
2072
+ /* Matches the start of a metadata string, then switches the scanner into STRING_LITERAL mode. */
2073
+ case 37:
2074
+ YY_RULE_SETUP
2075
+ #line 438 "src/Slice/Scanner.l"
2076
+ {
2077
+ pushState(STRING_LITERAL);
2078
+ startLocation(yylloc);
2079
+
2080
+ StringTokPtr str = make_shared<StringTok>();
2081
+ str->literal = "\"";
2082
+ *yylval = str;
2083
+ }
2084
+ YY_BREAK
2085
+ /* Matches commas between string literals in quoted metadata and forwards them to the parser. */
2086
+ case 38:
2087
+ YY_RULE_SETUP
2088
+ #line 448 "src/Slice/Scanner.l"
2089
+ {
2090
+ return yytext[0];
2091
+ }
2092
+ YY_BREAK
2093
+ /* Matches and consumes newlines in between metadata after incrementing the line count. */
2094
+ case 39:
2095
+ /* rule 39 can match eol */
2096
+ YY_RULE_SETUP
2097
+ #line 453 "src/Slice/Scanner.l"
2098
+ {
2099
+ nextLine(yyleng);
2100
+ }
2101
+ YY_BREAK
2102
+ case 40:
2103
+ YY_RULE_SETUP
2104
+ #line 457 "src/Slice/Scanner.l"
2105
+ {
2106
+ popState();
2107
+ return ICE_METADATA_CLOSE;
2108
+ }
2109
+ YY_BREAK
2110
+ case 41:
2111
+ YY_RULE_SETUP
2112
+ #line 462 "src/Slice/Scanner.l"
2113
+ {
2114
+ popState();
2115
+ return ICE_FILE_METADATA_CLOSE;
2116
+ }
2117
+ YY_BREAK
2118
+ /* Matches any characters not matched by another metadata rule (except whitespace), and reports an error. */
2119
+ case 42:
2120
+ YY_RULE_SETUP
2121
+ #line 468 "src/Slice/Scanner.l"
2122
+ {
2123
+ ostringstream msg;
2124
+ msg << "invalid tokens in metadata: '" << yytext << "' (maybe you forgot to wrap it in quotes?)";
2125
+ currentUnit->error(msg.str());
2126
+
2127
+ StringTokPtr str = make_shared<StringTok>();
2128
+ str->literal = yytext;
2129
+ *yylval = str;
2130
+ return ICE_STRING_LITERAL;
2131
+ }
2132
+ YY_BREAK
2133
+ /* ========== Identifiers and Keywords ========== */
2134
+ case 43:
2135
+ /* rule 43 can match eol */
2136
+ YY_RULE_SETUP
2137
+ #line 481 "src/Slice/Scanner.l"
1627
2138
  {
1628
- BEGIN(MAINSCAN);
1629
- if(yytext[0] < 32 || yytext[0] > 126)
2139
+ StringTokPtr ident = make_shared<StringTok>();
2140
+ ident->v = *yytext == '\\' ? yytext + 1 : yytext;
2141
+ ident->v.erase(ident->v.find_first_of(" \t\v\n\r\f("));
2142
+ *yylval = ident;
2143
+ if (*yytext == '\\')
2144
+ {
2145
+ if (checkIsScoped(ident->v) == ICE_SCOPED_IDENTIFIER)
2146
+ {
2147
+ currentUnit->error("Operation identifiers cannot be scoped: '" + (ident->v) + "'");
2148
+ }
2149
+ return ICE_IDENT_OPEN;
2150
+ }
2151
+ int st = checkKeyword(ident->v);
2152
+ if (st == ICE_IDENTIFIER)
2153
+ {
2154
+ return ICE_IDENT_OPEN;
2155
+ }
2156
+ else if (st == ICE_SCOPED_IDENTIFIER)
2157
+ {
2158
+ currentUnit->error("Operation identifiers cannot be scoped: '" + (ident->v) + "'");
2159
+ return ICE_IDENT_OPEN;
2160
+ }
2161
+ else if (st == ICE_OPTIONAL)
1630
2162
  {
1631
- stringstream s;
1632
- s << "illegal input character: '\\";
1633
- s.width(3);
1634
- s.fill('0');
1635
- s << oct << static_cast<int>(static_cast<unsigned char>(yytext[0]));
1636
- s << "'";
1637
- unit->error(s.str());
1638
- return BAD_CHAR;
2163
+ return ICE_OPTIONAL_OPEN;
1639
2164
  }
2165
+ else
2166
+ {
2167
+ return ICE_KEYWORD_OPEN;
2168
+ }
2169
+ }
2170
+ YY_BREAK
2171
+ case 44:
2172
+ YY_RULE_SETUP
2173
+ #line 514 "src/Slice/Scanner.l"
2174
+ {
2175
+ StringTokPtr ident = make_shared<StringTok>();
2176
+ ident->v = *yytext == '\\' ? yytext + 1 : yytext;
2177
+ *yylval = ident;
2178
+ return *yytext == '\\' ? checkIsScoped(ident->v) : checkKeyword(ident->v);
2179
+ }
2180
+ YY_BREAK
2181
+ /* ========== Whitespace ========== */
2182
+ /* Matches and consumes any whitespace, except for newlines. */
2183
+ case 45:
2184
+ YY_RULE_SETUP
2185
+ #line 524 "src/Slice/Scanner.l"
2186
+ {}
2187
+ YY_BREAK
2188
+ /* Matches and consumes newlines, but only when the scanner isn't in a sub-scanner. */
2189
+ case 46:
2190
+ /* rule 46 can match eol */
2191
+ YY_RULE_SETUP
2192
+ #line 527 "src/Slice/Scanner.l"
2193
+ {
2194
+ nextLine(yyleng);
2195
+ }
2196
+ YY_BREAK
2197
+ /* ========== Others ========== */
2198
+ /* Handles UTF-8 BOMs.
2199
+ * The scanner has a special 'INITIAL' state, which it enters whenever it hits the start of a file.
2200
+ * This occurs when parsing initially begins, but also when we see the start of an '#include'd file.
2201
+ * As soon as the scanner sees a token, it will transition into a more specific state: SLICE, METADATA, etc.
2202
+ * depending on what token it sees.
2203
+ *
2204
+ * Since BOMs are only allowed at the beginning of files, we only allow them in this 'INITIAL' state.
2205
+ * If we see a BOM in any other state, we emit an error and throw it away. */
2206
+ case 47:
2207
+ YY_RULE_SETUP
2208
+ #line 541 "src/Slice/Scanner.l"
2209
+ { /* do nothing */ }
2210
+ YY_BREAK
2211
+ case 48:
2212
+ YY_RULE_SETUP
2213
+ #line 542 "src/Slice/Scanner.l"
2214
+ {
2215
+ currentUnit->error("encountered unexpected UTF-8 BOM in input; BOMs can only appear at the beginning of files");
2216
+ }
2217
+ YY_BREAK
2218
+ /* Matches invalid characters, one at a time to make this the 2nd lowest priority rule. All printable ASCII
2219
+ * characters are valid (those between 32 and 127 inclusively), anything outside this range is invalid. */
2220
+ case 49:
2221
+ /* rule 49 can match eol */
2222
+ YY_RULE_SETUP
2223
+ #line 548 "src/Slice/Scanner.l"
2224
+ {
2225
+ stringstream s;
2226
+ s << "illegal input character: '\\";
2227
+ s.width(3);
2228
+ s.fill('0');
2229
+ s << oct << static_cast<int>(static_cast<unsigned char>(yytext[0]));
2230
+ s << "'";
2231
+
2232
+ currentUnit->error(s.str());
2233
+ return BAD_TOKEN;
2234
+ }
2235
+ YY_BREAK
2236
+ /* Matches any valid character (except newlines) not matched by another rule and fowards it to the parser.
2237
+ * This is the lowest priority rule in the scanner, and is only active while not in a sub-scanner. */
2238
+ case 50:
2239
+ YY_RULE_SETUP
2240
+ #line 562 "src/Slice/Scanner.l"
2241
+ {
2242
+ setLocation(yylloc);
1640
2243
  return yytext[0];
1641
2244
  }
1642
2245
  YY_BREAK
1643
- case 19:
2246
+ case 51:
1644
2247
  YY_RULE_SETUP
1645
- #line 530 "src/Slice/Scanner.l"
1646
- ECHO;
2248
+ #line 567 "src/Slice/Scanner.l"
2249
+ YY_FATAL_ERROR( "flex scanner jammed" );
1647
2250
  YY_BREAK
1648
- #line 1647 "src/Slice/Scanner.cpp"
2251
+ #line 2251 "src/Slice/Scanner.cpp"
1649
2252
  case YY_STATE_EOF(INITIAL):
1650
- case YY_STATE_EOF(BOMSCAN):
1651
- case YY_STATE_EOF(MAINSCAN):
2253
+ case YY_STATE_EOF(SLICE):
2254
+ case YY_STATE_EOF(METADATA):
1652
2255
  yyterminate();
1653
2256
 
1654
2257
  case YY_END_OF_BUFFER:
@@ -1672,7 +2275,11 @@ case YY_STATE_EOF(MAINSCAN):
1672
2275
  * back-up) that will match for the new input source.
1673
2276
  */
1674
2277
  (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2278
+ /* %if-c-only */
1675
2279
  YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
2280
+ /* %endif */
2281
+ /* %if-c++-only */
2282
+ /* %endif */
1676
2283
  YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
1677
2284
  }
1678
2285
 
@@ -1714,6 +2321,7 @@ case YY_STATE_EOF(MAINSCAN):
1714
2321
 
1715
2322
  else
1716
2323
  {
2324
+ /* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */
1717
2325
  yy_cp = (yy_last_accepting_cpos);
1718
2326
  yy_current_state = (yy_last_accepting_state);
1719
2327
  goto yy_find_action;
@@ -1781,6 +2389,13 @@ case YY_STATE_EOF(MAINSCAN):
1781
2389
  } /* end of scanning one token */
1782
2390
  } /* end of user's declarations */
1783
2391
  } /* end of yylex */
2392
+ /* %ok-for-header */
2393
+
2394
+ /* %if-c++-only */
2395
+ /* %not-for-header */
2396
+ /* %ok-for-header */
2397
+
2398
+ /* %endif */
1784
2399
 
1785
2400
  /* yy_get_next_buffer - try to read in a new buffer
1786
2401
  *
@@ -1789,7 +2404,11 @@ case YY_STATE_EOF(MAINSCAN):
1789
2404
  * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1790
2405
  * EOB_ACT_END_OF_FILE - end of file
1791
2406
  */
2407
+ /* %if-c-only */
1792
2408
  static int yy_get_next_buffer (void)
2409
+ /* %endif */
2410
+ /* %if-c++-only */
2411
+ /* %endif */
1793
2412
  {
1794
2413
  char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
1795
2414
  char *source = (yytext_ptr);
@@ -1927,16 +2546,23 @@ static int yy_get_next_buffer (void)
1927
2546
 
1928
2547
  /* yy_get_previous_state - get the state just before the EOB char was reached */
1929
2548
 
2549
+ /* %if-c-only */
2550
+ /* %not-for-header */
1930
2551
  static yy_state_type yy_get_previous_state (void)
2552
+ /* %endif */
2553
+ /* %if-c++-only */
2554
+ /* %endif */
1931
2555
  {
1932
2556
  yy_state_type yy_current_state;
1933
2557
  char *yy_cp;
1934
2558
 
2559
+ /* %% [15.0] code to get the start state into yy_current_state goes here */
1935
2560
  yy_current_state = (yy_start);
1936
2561
  yy_current_state += YY_AT_BOL();
1937
2562
 
1938
2563
  for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
1939
2564
  {
2565
+ /* %% [16.0] code to find the next state goes here */
1940
2566
  YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
1941
2567
  if ( yy_accept[yy_current_state] )
1942
2568
  {
@@ -1946,7 +2572,7 @@ static int yy_get_next_buffer (void)
1946
2572
  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1947
2573
  {
1948
2574
  yy_current_state = (int) yy_def[yy_current_state];
1949
- if ( yy_current_state >= 76 )
2575
+ if ( yy_current_state >= 220 )
1950
2576
  yy_c = yy_meta[yy_c];
1951
2577
  }
1952
2578
  yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
@@ -1960,10 +2586,15 @@ static int yy_get_next_buffer (void)
1960
2586
  * synopsis
1961
2587
  * next_state = yy_try_NUL_trans( current_state );
1962
2588
  */
2589
+ /* %if-c-only */
1963
2590
  static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
2591
+ /* %endif */
2592
+ /* %if-c++-only */
2593
+ /* %endif */
1964
2594
  {
1965
2595
  int yy_is_jam;
1966
- char *yy_cp = (yy_c_buf_p);
2596
+ /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */
2597
+ char *yy_cp = (yy_c_buf_p);
1967
2598
 
1968
2599
  YY_CHAR yy_c = 1;
1969
2600
  if ( yy_accept[yy_current_state] )
@@ -1974,56 +2605,22 @@ static int yy_get_next_buffer (void)
1974
2605
  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1975
2606
  {
1976
2607
  yy_current_state = (int) yy_def[yy_current_state];
1977
- if ( yy_current_state >= 76 )
2608
+ if ( yy_current_state >= 220 )
1978
2609
  yy_c = yy_meta[yy_c];
1979
2610
  }
1980
2611
  yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
1981
- yy_is_jam = (yy_current_state == 75);
2612
+ yy_is_jam = (yy_current_state == 219);
1982
2613
 
1983
2614
  return yy_is_jam ? 0 : yy_current_state;
1984
2615
  }
1985
2616
 
1986
2617
  #ifndef YY_NO_UNPUT
2618
+ /* %if-c-only */
1987
2619
 
1988
- static void yyunput (int c, char * yy_bp )
1989
- {
1990
- char *yy_cp;
1991
-
1992
- yy_cp = (yy_c_buf_p);
1993
-
1994
- /* undo effects of setting up yytext */
1995
- *yy_cp = (yy_hold_char);
1996
-
1997
- if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
1998
- { /* need to shift things up to make room */
1999
- /* +2 for EOB chars. */
2000
- int number_to_move = (yy_n_chars) + 2;
2001
- char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
2002
- YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
2003
- char *source =
2004
- &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
2005
-
2006
- while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2007
- *--dest = *--source;
2008
-
2009
- yy_cp += (int) (dest - source);
2010
- yy_bp += (int) (dest - source);
2011
- YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
2012
- (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
2013
-
2014
- if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
2015
- YY_FATAL_ERROR( "flex scanner push-back overflow" );
2016
- }
2017
-
2018
- *--yy_cp = (char) c;
2019
-
2020
- (yytext_ptr) = yy_bp;
2021
- (yy_hold_char) = *yy_cp;
2022
- (yy_c_buf_p) = yy_cp;
2023
- }
2024
-
2620
+ /* %endif */
2025
2621
  #endif
2026
2622
 
2623
+ /* %if-c-only */
2027
2624
  #ifndef YY_NO_INPUT
2028
2625
  #ifdef __cplusplus
2029
2626
  static int yyinput (void)
@@ -2031,6 +2628,9 @@ static int yy_get_next_buffer (void)
2031
2628
  static int input (void)
2032
2629
  #endif
2033
2630
 
2631
+ /* %endif */
2632
+ /* %if-c++-only */
2633
+ /* %endif */
2034
2634
  {
2035
2635
  int c;
2036
2636
 
@@ -2094,18 +2694,25 @@ static int yy_get_next_buffer (void)
2094
2694
  *(yy_c_buf_p) = '\0'; /* preserve yytext */
2095
2695
  (yy_hold_char) = *++(yy_c_buf_p);
2096
2696
 
2697
+ /* %% [19.0] update BOL and yylineno */
2097
2698
  YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
2098
2699
 
2099
2700
  return c;
2100
2701
  }
2702
+ /* %if-c-only */
2101
2703
  #endif /* ifndef YY_NO_INPUT */
2704
+ /* %endif */
2102
2705
 
2103
2706
  /** Immediately switch to a different input stream.
2104
2707
  * @param input_file A readable stream.
2105
2708
  *
2106
2709
  * @note This function does not reset the start condition to @c INITIAL .
2107
2710
  */
2711
+ /* %if-c-only */
2108
2712
  void yyrestart (FILE * input_file )
2713
+ /* %endif */
2714
+ /* %if-c++-only */
2715
+ /* %endif */
2109
2716
  {
2110
2717
 
2111
2718
  if ( ! YY_CURRENT_BUFFER ){
@@ -2118,11 +2725,18 @@ static int yy_get_next_buffer (void)
2118
2725
  yy_load_buffer_state( );
2119
2726
  }
2120
2727
 
2728
+ /* %if-c++-only */
2729
+ /* %endif */
2730
+
2121
2731
  /** Switch to a different input buffer.
2122
2732
  * @param new_buffer The new input buffer.
2123
2733
  *
2124
2734
  */
2735
+ /* %if-c-only */
2125
2736
  void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer )
2737
+ /* %endif */
2738
+ /* %if-c++-only */
2739
+ /* %endif */
2126
2740
  {
2127
2741
 
2128
2742
  /* TODO. We should be able to replace this entire function body
@@ -2153,11 +2767,19 @@ static int yy_get_next_buffer (void)
2153
2767
  (yy_did_buffer_switch_on_eof) = 1;
2154
2768
  }
2155
2769
 
2770
+ /* %if-c-only */
2156
2771
  static void yy_load_buffer_state (void)
2772
+ /* %endif */
2773
+ /* %if-c++-only */
2774
+ /* %endif */
2157
2775
  {
2158
2776
  (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2159
2777
  (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
2778
+ /* %if-c-only */
2160
2779
  yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
2780
+ /* %endif */
2781
+ /* %if-c++-only */
2782
+ /* %endif */
2161
2783
  (yy_hold_char) = *(yy_c_buf_p);
2162
2784
  }
2163
2785
 
@@ -2167,7 +2789,11 @@ static void yy_load_buffer_state (void)
2167
2789
  *
2168
2790
  * @return the allocated buffer state.
2169
2791
  */
2792
+ /* %if-c-only */
2170
2793
  YY_BUFFER_STATE yy_create_buffer (FILE * file, int size )
2794
+ /* %endif */
2795
+ /* %if-c++-only */
2796
+ /* %endif */
2171
2797
  {
2172
2798
  YY_BUFFER_STATE b;
2173
2799
 
@@ -2191,11 +2817,18 @@ static void yy_load_buffer_state (void)
2191
2817
  return b;
2192
2818
  }
2193
2819
 
2820
+ /* %if-c++-only */
2821
+ /* %endif */
2822
+
2194
2823
  /** Destroy the buffer.
2195
2824
  * @param b a buffer created with yy_create_buffer()
2196
2825
  *
2197
2826
  */
2827
+ /* %if-c-only */
2198
2828
  void yy_delete_buffer (YY_BUFFER_STATE b )
2829
+ /* %endif */
2830
+ /* %if-c++-only */
2831
+ /* %endif */
2199
2832
  {
2200
2833
 
2201
2834
  if ( ! b )
@@ -2214,14 +2847,22 @@ static void yy_load_buffer_state (void)
2214
2847
  * This function is sometimes called more than once on the same buffer,
2215
2848
  * such as during a yyrestart() or at EOF.
2216
2849
  */
2850
+ /* %if-c-only */
2217
2851
  static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
2852
+ /* %endif */
2853
+ /* %if-c++-only */
2854
+ /* %endif */
2218
2855
 
2219
2856
  {
2220
2857
  int oerrno = errno;
2221
2858
 
2222
2859
  yy_flush_buffer( b );
2223
2860
 
2861
+ /* %if-c-only */
2224
2862
  b->yy_input_file = file;
2863
+ /* %endif */
2864
+ /* %if-c++-only */
2865
+ /* %endif */
2225
2866
  b->yy_fill_buffer = 1;
2226
2867
 
2227
2868
  /* If b is the current buffer, then yy_init_buffer was _probably_
@@ -2233,8 +2874,13 @@ static void yy_load_buffer_state (void)
2233
2874
  b->yy_bs_column = 0;
2234
2875
  }
2235
2876
 
2877
+ /* %if-c-only */
2878
+
2236
2879
  b->yy_is_interactive = 0;
2237
2880
 
2881
+ /* %endif */
2882
+ /* %if-c++-only */
2883
+ /* %endif */
2238
2884
  errno = oerrno;
2239
2885
  }
2240
2886
 
@@ -2242,7 +2888,11 @@ static void yy_load_buffer_state (void)
2242
2888
  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
2243
2889
  *
2244
2890
  */
2891
+ /* %if-c-only */
2245
2892
  void yy_flush_buffer (YY_BUFFER_STATE b )
2893
+ /* %endif */
2894
+ /* %if-c++-only */
2895
+ /* %endif */
2246
2896
  {
2247
2897
  if ( ! b )
2248
2898
  return;
@@ -2265,13 +2915,18 @@ static void yy_load_buffer_state (void)
2265
2915
  yy_load_buffer_state( );
2266
2916
  }
2267
2917
 
2918
+ /* %if-c-or-c++ */
2268
2919
  /** Pushes the new state onto the stack. The new state becomes
2269
2920
  * the current state. This function will allocate the stack
2270
2921
  * if necessary.
2271
2922
  * @param new_buffer The new state.
2272
2923
  *
2273
2924
  */
2925
+ /* %if-c-only */
2274
2926
  void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
2927
+ /* %endif */
2928
+ /* %if-c++-only */
2929
+ /* %endif */
2275
2930
  {
2276
2931
  if (new_buffer == NULL)
2277
2932
  return;
@@ -2296,12 +2951,18 @@ void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
2296
2951
  yy_load_buffer_state( );
2297
2952
  (yy_did_buffer_switch_on_eof) = 1;
2298
2953
  }
2954
+ /* %endif */
2299
2955
 
2956
+ /* %if-c-or-c++ */
2300
2957
  /** Removes and deletes the top of the stack, if present.
2301
2958
  * The next element becomes the new top.
2302
2959
  *
2303
2960
  */
2961
+ /* %if-c-only */
2304
2962
  void yypop_buffer_state (void)
2963
+ /* %endif */
2964
+ /* %if-c++-only */
2965
+ /* %endif */
2305
2966
  {
2306
2967
  if (!YY_CURRENT_BUFFER)
2307
2968
  return;
@@ -2316,11 +2977,17 @@ void yypop_buffer_state (void)
2316
2977
  (yy_did_buffer_switch_on_eof) = 1;
2317
2978
  }
2318
2979
  }
2980
+ /* %endif */
2319
2981
 
2982
+ /* %if-c-or-c++ */
2320
2983
  /* Allocates the stack if it does not exist.
2321
2984
  * Guarantees space for at least one push.
2322
2985
  */
2986
+ /* %if-c-only */
2323
2987
  static void yyensure_buffer_stack (void)
2988
+ /* %endif */
2989
+ /* %if-c++-only */
2990
+ /* %endif */
2324
2991
  {
2325
2992
  yy_size_t num_to_alloc;
2326
2993
 
@@ -2362,102 +3029,71 @@ static void yyensure_buffer_stack (void)
2362
3029
  (yy_buffer_stack_max) = num_to_alloc;
2363
3030
  }
2364
3031
  }
3032
+ /* %endif */
2365
3033
 
2366
- /** Setup the input buffer state to scan directly from a user-specified character buffer.
2367
- * @param base the character buffer
2368
- * @param size the size in bytes of the character buffer
2369
- *
2370
- * @return the newly allocated buffer state object.
2371
- */
2372
- YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size )
3034
+ /* %if-c-only */
3035
+ static void yy_push_state (int _new_state )
3036
+ /* %endif */
3037
+ /* %if-c++-only */
3038
+ /* %endif */
2373
3039
  {
2374
- YY_BUFFER_STATE b;
2375
-
2376
- if ( size < 2 ||
2377
- base[size-2] != YY_END_OF_BUFFER_CHAR ||
2378
- base[size-1] != YY_END_OF_BUFFER_CHAR )
2379
- /* They forgot to leave room for the EOB's. */
2380
- return NULL;
2381
-
2382
- b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
2383
- if ( ! b )
2384
- YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
2385
-
2386
- b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */
2387
- b->yy_buf_pos = b->yy_ch_buf = base;
2388
- b->yy_is_our_buffer = 0;
2389
- b->yy_input_file = NULL;
2390
- b->yy_n_chars = b->yy_buf_size;
2391
- b->yy_is_interactive = 0;
2392
- b->yy_at_bol = 1;
2393
- b->yy_fill_buffer = 0;
2394
- b->yy_buffer_status = YY_BUFFER_NEW;
3040
+ if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
3041
+ {
3042
+ yy_size_t new_size;
2395
3043
 
2396
- yy_switch_to_buffer( b );
3044
+ (yy_start_stack_depth) += YY_START_STACK_INCR;
3045
+ new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int );
2397
3046
 
2398
- return b;
2399
- }
3047
+ if ( ! (yy_start_stack) )
3048
+ (yy_start_stack) = (int *) yyalloc( new_size );
2400
3049
 
2401
- /** Setup the input buffer state to scan a string. The next call to yylex() will
2402
- * scan from a @e copy of @a str.
2403
- * @param yystr a NUL-terminated string to scan
2404
- *
2405
- * @return the newly allocated buffer state object.
2406
- * @note If you want to scan bytes that may contain NUL values, then use
2407
- * yy_scan_bytes() instead.
2408
- */
2409
- YY_BUFFER_STATE yy_scan_string (const char * yystr )
2410
- {
2411
-
2412
- return yy_scan_bytes( yystr, (int) strlen(yystr) );
2413
- }
3050
+ else
3051
+ (yy_start_stack) = (int *) yyrealloc(
3052
+ (void *) (yy_start_stack), new_size );
2414
3053
 
2415
- /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
2416
- * scan from a @e copy of @a bytes.
2417
- * @param yybytes the byte buffer to scan
2418
- * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
2419
- *
2420
- * @return the newly allocated buffer state object.
2421
- */
2422
- YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len )
2423
- {
2424
- YY_BUFFER_STATE b;
2425
- char *buf;
2426
- yy_size_t n;
2427
- int i;
2428
-
2429
- /* Get memory for full buffer, including space for trailing EOB's. */
2430
- n = (yy_size_t) (_yybytes_len + 2);
2431
- buf = (char *) yyalloc( n );
2432
- if ( ! buf )
2433
- YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
3054
+ if ( ! (yy_start_stack) )
3055
+ YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
3056
+ }
2434
3057
 
2435
- for ( i = 0; i < _yybytes_len; ++i )
2436
- buf[i] = yybytes[i];
3058
+ (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
2437
3059
 
2438
- buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
3060
+ BEGIN(_new_state);
3061
+ }
2439
3062
 
2440
- b = yy_scan_buffer( buf, n );
2441
- if ( ! b )
2442
- YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
3063
+ /* %if-c-only */
3064
+ static void yy_pop_state (void)
3065
+ /* %endif */
3066
+ /* %if-c++-only */
3067
+ /* %endif */
3068
+ {
3069
+ if ( --(yy_start_stack_ptr) < 0 )
3070
+ YY_FATAL_ERROR( "start-condition stack underflow" );
2443
3071
 
2444
- /* It's okay to grow etc. this buffer, and we should throw it
2445
- * away when we're done.
2446
- */
2447
- b->yy_is_our_buffer = 1;
3072
+ BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
3073
+ }
2448
3074
 
2449
- return b;
3075
+ /* %if-c-only */
3076
+ static int yy_top_state (void)
3077
+ /* %endif */
3078
+ /* %if-c++-only */
3079
+ /* %endif */
3080
+ {
3081
+ return (yy_start_stack)[(yy_start_stack_ptr) - 1];
2450
3082
  }
2451
3083
 
2452
3084
  #ifndef YY_EXIT_FAILURE
2453
3085
  #define YY_EXIT_FAILURE 2
2454
3086
  #endif
2455
3087
 
3088
+ /* %if-c-only */
2456
3089
  static void yynoreturn yy_fatal_error (const char* msg )
2457
3090
  {
2458
3091
  fprintf( stderr, "%s\n", msg );
2459
3092
  exit( YY_EXIT_FAILURE );
2460
3093
  }
3094
+ /* %endif */
3095
+ /* %if-c++-only */
3096
+ /* %endif */
2461
3097
 
2462
3098
  /* Redefine yyless() so it works in section 3 code. */
2463
3099
 
@@ -2478,84 +3114,25 @@ static void yynoreturn yy_fatal_error (const char* msg )
2478
3114
 
2479
3115
  /* Accessor methods (get/set functions) to struct members. */
2480
3116
 
2481
- /** Get the current line number.
2482
- *
2483
- */
2484
- int yyget_lineno (void)
2485
- {
2486
-
2487
- return yylineno;
2488
- }
2489
-
2490
- /** Get the input stream.
2491
- *
2492
- */
2493
- FILE *yyget_in (void)
2494
- {
2495
- return yyin;
2496
- }
2497
-
2498
- /** Get the output stream.
2499
- *
2500
- */
2501
- FILE *yyget_out (void)
2502
- {
2503
- return yyout;
2504
- }
2505
-
2506
- /** Get the length of the current token.
2507
- *
2508
- */
2509
- int yyget_leng (void)
2510
- {
2511
- return yyleng;
2512
- }
3117
+ /* %if-c-only */
3118
+ /* %if-reentrant */
3119
+ /* %endif */
2513
3120
 
2514
3121
  /** Get the current token.
2515
3122
  *
2516
3123
  */
2517
3124
 
2518
- char *yyget_text (void)
2519
- {
2520
- return yytext;
2521
- }
3125
+ /* %if-reentrant */
3126
+ /* %endif */
2522
3127
 
2523
- /** Set the current line number.
2524
- * @param _line_number line number
2525
- *
2526
- */
2527
- void yyset_lineno (int _line_number )
2528
- {
2529
-
2530
- yylineno = _line_number;
2531
- }
3128
+ /* %endif */
2532
3129
 
2533
- /** Set the input stream. This does not discard the current
2534
- * input buffer.
2535
- * @param _in_str A readable stream.
2536
- *
2537
- * @see yy_switch_to_buffer
2538
- */
2539
- void yyset_in (FILE * _in_str )
2540
- {
2541
- yyin = _in_str ;
2542
- }
2543
-
2544
- void yyset_out (FILE * _out_str )
2545
- {
2546
- yyout = _out_str ;
2547
- }
2548
-
2549
- int yyget_debug (void)
2550
- {
2551
- return yy_flex_debug;
2552
- }
2553
-
2554
- void yyset_debug (int _bdebug )
2555
- {
2556
- yy_flex_debug = _bdebug ;
2557
- }
3130
+ /* %if-reentrant */
3131
+ /* %if-bison-bridge */
3132
+ /* %endif */
3133
+ /* %endif if-c-only */
2558
3134
 
3135
+ /* %if-c-only */
2559
3136
  static int yy_init_globals (void)
2560
3137
  {
2561
3138
  /* Initialization is the same as for the non-reentrant scanner.
@@ -2569,6 +3146,10 @@ static int yy_init_globals (void)
2569
3146
  (yy_init) = 0;
2570
3147
  (yy_start) = 0;
2571
3148
 
3149
+ (yy_start_stack_ptr) = 0;
3150
+ (yy_start_stack_depth) = 0;
3151
+ (yy_start_stack) = NULL;
3152
+
2572
3153
  /* Defined in main.c */
2573
3154
  #ifdef YY_STDINIT
2574
3155
  yyin = stdin;
@@ -2583,7 +3164,9 @@ static int yy_init_globals (void)
2583
3164
  */
2584
3165
  return 0;
2585
3166
  }
3167
+ /* %endif */
2586
3168
 
3169
+ /* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */
2587
3170
  /* yylex_destroy is for both reentrant and non-reentrant scanners. */
2588
3171
  int yylex_destroy (void)
2589
3172
  {
@@ -2599,12 +3182,19 @@ int yylex_destroy (void)
2599
3182
  yyfree((yy_buffer_stack) );
2600
3183
  (yy_buffer_stack) = NULL;
2601
3184
 
3185
+ /* Destroy the start condition stack. */
3186
+ yyfree( (yy_start_stack) );
3187
+ (yy_start_stack) = NULL;
3188
+
2602
3189
  /* Reset the globals. This is important in a non-reentrant scanner so the next time
2603
3190
  * yylex() is called, initialization will occur. */
2604
3191
  yy_init_globals( );
2605
3192
 
3193
+ /* %if-reentrant */
3194
+ /* %endif */
2606
3195
  return 0;
2607
3196
  }
3197
+ /* %endif */
2608
3198
 
2609
3199
  /*
2610
3200
  * Internal utility routines.
@@ -2654,154 +3244,202 @@ void yyfree (void * ptr )
2654
3244
  free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
2655
3245
  }
2656
3246
 
3247
+ /* %if-tables-serialization definitions */
3248
+ /* %define-yytables The name for this specific scanner's tables. */
2657
3249
  #define YYTABLES_NAME "yytables"
3250
+ /* %endif */
3251
+
3252
+ /* %ok-for-header */
3253
+
3254
+ #line 567 "src/Slice/Scanner.l"
2658
3255
 
2659
- #line 530 "src/Slice/Scanner.l"
2660
-
2661
-
2662
- namespace Slice {
2663
-
2664
- //
2665
- // initScanner() fills the keyword map with all keyword-token pairs.
2666
- //
2667
-
2668
- void
2669
- initScanner()
2670
- {
2671
- keywordMap["module"] = ICE_MODULE;
2672
- keywordMap["class"] = ICE_CLASS;
2673
- keywordMap["interface"] = ICE_INTERFACE;
2674
- keywordMap["exception"] = ICE_EXCEPTION;
2675
- keywordMap["struct"] = ICE_STRUCT;
2676
- keywordMap["sequence"] = ICE_SEQUENCE;
2677
- keywordMap["dictionary"] = ICE_DICTIONARY;
2678
- keywordMap["enum"] = ICE_ENUM;
2679
- keywordMap["out"] = ICE_OUT;
2680
- keywordMap["extends"] = ICE_EXTENDS;
2681
- keywordMap["implements"] = ICE_IMPLEMENTS;
2682
- keywordMap["throws"] = ICE_THROWS;
2683
- keywordMap["void"] = ICE_VOID;
2684
- keywordMap["byte"] = ICE_BYTE;
2685
- keywordMap["bool"] = ICE_BOOL;
2686
- keywordMap["short"] = ICE_SHORT;
2687
- keywordMap["int"] = ICE_INT;
2688
- keywordMap["long"] = ICE_LONG;
2689
- keywordMap["float"] = ICE_FLOAT;
2690
- keywordMap["double"] = ICE_DOUBLE;
2691
- keywordMap["string"] = ICE_STRING;
2692
- keywordMap["Object"] = ICE_OBJECT;
2693
- keywordMap["LocalObject"] = ICE_LOCAL_OBJECT;
2694
- keywordMap["local"] = ICE_LOCAL;
2695
- keywordMap["const"] = ICE_CONST;
2696
- keywordMap["false"] = ICE_FALSE;
2697
- keywordMap["true"] = ICE_TRUE;
2698
- keywordMap["idempotent"] = ICE_IDEMPOTENT;
2699
- keywordMap["optional"] = ICE_OPTIONAL;
2700
- keywordMap["Value"] = ICE_VALUE;
2701
- }
2702
-
2703
- //
2704
- // Check if an identifier looks like a keyword.
2705
- // If the identifier is a keyword, return the
2706
- // corresponding keyword token; otherwise, return
2707
- // an identifier token.
2708
- //
2709
-
2710
- int
2711
- checkKeyword(string& id)
2712
- {
2713
- StringTokenMap::const_iterator pos = keywordMap.find(id);
2714
- if(pos != keywordMap.end())
3256
+
3257
+ // NOLINTEND
3258
+
3259
+ namespace Slice
3260
+ {
3261
+ // Check if an identifier looks like a keyword.
3262
+ // If the identifier is a keyword, return the
3263
+ // corresponding keyword token; otherwise, return
3264
+ // an identifier token.
3265
+ int checkKeyword(string& identifier)
2715
3266
  {
2716
- if(pos->first != id)
3267
+ const auto pos = keywordMap.find(identifier);
3268
+ if (pos != keywordMap.end())
2717
3269
  {
2718
- string msg;
2719
- msg = "illegal identifier: `" + id + "' differs from keyword `";
2720
- msg += pos->first + "' only in capitalization";
2721
- unit->error(msg);
2722
- id = pos->first;
3270
+ if (pos->first != identifier)
3271
+ {
3272
+ currentUnit->error(
3273
+ "illegal identifier: '" + identifier + "' differs from keyword '" + pos->first +
3274
+ "' only in capitalization");
3275
+ identifier = pos->first;
3276
+ }
3277
+ return pos->second;
2723
3278
  }
2724
- return pos->second;
3279
+ return checkIsScoped(identifier);
2725
3280
  }
2726
- return checkIdentifier(id);
2727
- }
2728
-
2729
- //
2730
- // Checks an identifier for any illegal syntax and
2731
- // determines whether it's scoped. If it is, this
2732
- // returns a scoped identifier token; otherwise this
2733
- // returns a normal identifier token.
2734
- //
2735
3281
 
2736
- int checkIdentifier(string& id)
2737
- {
2738
- // check whether the identifier is scoped
2739
- size_t scopeIndex = id.rfind("::");
2740
- bool isScoped = scopeIndex != string::npos;
2741
- string name;
2742
- if(isScoped)
3282
+ // Checks if an identifier is scoped or not, and returns the corresponding token.
3283
+ int checkIsScoped(const string& identifier)
2743
3284
  {
2744
- name = id.substr(scopeIndex + 2); // Only check the unscoped identifier for syntax
3285
+ return identifier.find("::") == string::npos ? ICE_IDENTIFIER : ICE_SCOPED_IDENTIFIER;
2745
3286
  }
2746
- else
3287
+ }
3288
+
3289
+ namespace
3290
+ {
3291
+ void nextLine(int count)
2747
3292
  {
2748
- name = id;
3293
+ yylineno += count;
3294
+ yycolno = 0;
2749
3295
  }
2750
3296
 
2751
- // check the identifier for reserved suffixes
2752
- static const string suffixBlacklist[] = { "Helper", "Holder", "Prx", "Ptr" };
2753
- for(size_t i = 0; i < sizeof(suffixBlacklist) / sizeof(*suffixBlacklist); ++i)
3297
+ int scanPosition(const char* s)
2754
3298
  {
2755
- if(name.find(suffixBlacklist[i], name.size() - suffixBlacklist[i].size()) != string::npos)
3299
+ string line(s);
3300
+ // Skip the leading '#', optional 'line', and any whitespace before the line number.
3301
+ string::size_type idx = line.find_first_not_of(" \t\r", (line.find('#') + 1));
3302
+ if (line.find("line", idx) == idx)
2756
3303
  {
2757
- unit->error("illegal identifier `" + name + "': `" + suffixBlacklist[i] + "' suffix is reserved");
3304
+ idx = line.find_first_not_of(" \t\r", (idx + 4));
2758
3305
  }
3306
+ line.erase(0, idx);
3307
+
3308
+ // Read the line number
3309
+ int newLineNumber = stoi(line.c_str(), &idx) - 1;
3310
+
3311
+ // Scan the remainder of the line for a filename.
3312
+ idx = line.find_first_not_of(" \t\r", idx);
3313
+ line.erase(0, idx);
3314
+
3315
+ int lineTypeCode = 0;
3316
+ if (!line.empty())
3317
+ {
3318
+ if (line[0] == '"')
3319
+ {
3320
+ string::size_type edx = line.rfind('"');
3321
+ if (edx != string::npos)
3322
+ {
3323
+ line = line.substr(1, edx - 1);
3324
+ }
3325
+ else
3326
+ {
3327
+ currentUnit->error("mismatched quotations in line directive");
3328
+ line = line.substr(1);
3329
+ }
3330
+ }
3331
+ lineTypeCode = currentUnit->setCurrentFile(line, newLineNumber);
3332
+ yyfilename = string(line);
3333
+ }
3334
+ yylineno = newLineNumber;
3335
+ return lineTypeCode;
2759
3336
  }
2760
3337
 
2761
- // check the identifier for illegal underscores
2762
- size_t index = name.find('_');
2763
- if(index == 0)
3338
+ void setLocation(TokenContext* location)
2764
3339
  {
2765
- unit->error("illegal leading underscore in identifier `" + name + "'");
3340
+ startLocation(location);
3341
+ endLocation(location);
2766
3342
  }
2767
- else if(name.rfind('_') == (name.size() - 1))
3343
+
3344
+ void startLocation(TokenContext* location)
2768
3345
  {
2769
- unit->error("illegal trailing underscore in identifier `" + name + "'");
3346
+ location->firstLine = yylineno;
3347
+ // The string has already been scanned, so the scanner is positioned at the end of it.
3348
+ location->firstColumn = yycolno - yyleng;
3349
+ location->filename = yyfilename;
2770
3350
  }
2771
- else if(name.find("__") != string::npos)
3351
+
3352
+ void endLocation(TokenContext* location)
2772
3353
  {
2773
- unit->error("illegal double underscore in identifier `" + name + "'");
3354
+ location->lastLine = yylineno;
3355
+ location->lastColumn = yycolno;
2774
3356
  }
2775
- else if(index != string::npos && unit->currentIncludeLevel() == 0 && !unit->allowUnderscore())
3357
+
3358
+ // This function is always called once, right before scanning begins.
3359
+ void initScanner()
2776
3360
  {
2777
- DefinitionContextPtr dc = unit->currentDefinitionContext();
2778
- assert(dc);
2779
- if(dc->findMetaData("underscore") != "underscore") // no 'underscore' file metadata
3361
+ // Ensure the scanner starts at line number 1, column position 0.
3362
+ yylineno = 1;
3363
+
3364
+ keywordMap["module"] = ICE_MODULE;
3365
+ keywordMap["class"] = ICE_CLASS;
3366
+ keywordMap["interface"] = ICE_INTERFACE;
3367
+ keywordMap["exception"] = ICE_EXCEPTION;
3368
+ keywordMap["struct"] = ICE_STRUCT;
3369
+ keywordMap["sequence"] = ICE_SEQUENCE;
3370
+ keywordMap["dictionary"] = ICE_DICTIONARY;
3371
+ keywordMap["enum"] = ICE_ENUM;
3372
+ keywordMap["out"] = ICE_OUT;
3373
+ keywordMap["extends"] = ICE_EXTENDS;
3374
+ keywordMap["throws"] = ICE_THROWS;
3375
+ keywordMap["void"] = ICE_VOID;
3376
+ keywordMap["byte"] = ICE_BYTE;
3377
+ keywordMap["bool"] = ICE_BOOL;
3378
+ keywordMap["short"] = ICE_SHORT;
3379
+ keywordMap["int"] = ICE_INT;
3380
+ keywordMap["long"] = ICE_LONG;
3381
+ keywordMap["float"] = ICE_FLOAT;
3382
+ keywordMap["double"] = ICE_DOUBLE;
3383
+ keywordMap["string"] = ICE_STRING;
3384
+ keywordMap["Object"] = ICE_OBJECT;
3385
+ keywordMap["const"] = ICE_CONST;
3386
+ keywordMap["false"] = ICE_FALSE;
3387
+ keywordMap["true"] = ICE_TRUE;
3388
+ keywordMap["idempotent"] = ICE_IDEMPOTENT;
3389
+ keywordMap["optional"] = ICE_OPTIONAL;
3390
+ keywordMap["Value"] = ICE_VALUE;
3391
+ }
3392
+
3393
+ // This function is always called directly after a match has been made, but directly before it's action block is run.
3394
+ void preAction()
3395
+ {
3396
+ yycolno += yyleng;
3397
+
3398
+ // We only use the 'INITIAL' state to consume BOMs, which can only validly be the first match in a file. This
3399
+ // function being called means a match has already been made, so we switch states since BOMs are no longer valid.
3400
+ if (YY_START == INITIAL)
2780
3401
  {
2781
- unit->error("illegal underscore in identifier `" + name + "'");
3402
+ BEGIN(SLICE);
2782
3403
  }
2783
3404
  }
2784
3405
 
2785
- // Check the identifier for illegal ice prefixes
2786
- if(unit->currentIncludeLevel() == 0 && !unit->allowIcePrefix() && name.size() > 2)
3406
+ void printStateStack()
2787
3407
  {
2788
- DefinitionContextPtr dc = unit->currentDefinitionContext();
2789
- assert(dc);
2790
- if(dc->findMetaData("ice-prefix") != "ice-prefix") // no 'ice-prefix' metadata
3408
+ (void)fprintf(stderr, "current state stack [ " );
3409
+ for (int i = 0; i < yy_start_stack_ptr; i++)
2791
3410
  {
2792
- string prefix3;
2793
- prefix3 += ::tolower(static_cast<unsigned char>(name[0]));
2794
- prefix3 += ::tolower(static_cast<unsigned char>(name[1]));
2795
- prefix3 += ::tolower(static_cast<unsigned char>(name[2]));
2796
- if(prefix3 == "ice")
2797
- {
2798
- unit->error("illegal identifier `" + name + "': `" + name.substr(0, 3) + "' prefix is reserved");
2799
- }
3411
+ (void)fprintf(stderr, "%d ", yy_start_stack[i]);
2800
3412
  }
3413
+ (void)fprintf(stderr, "(%d) ]\n", YY_START);
2801
3414
  }
2802
3415
 
2803
- return isScoped ? ICE_SCOPED_IDENTIFIER : ICE_IDENTIFIER;
2804
- }
3416
+ void pushState(int newState)
3417
+ {
3418
+ yy_push_state(newState);
3419
+ if (yy_flex_debug)
3420
+ {
3421
+ (void)fprintf(stderr, "--pushed: ");
3422
+ printStateStack();
3423
+ }
3424
+ }
3425
+
3426
+ void popState()
3427
+ {
3428
+ yy_pop_state();
3429
+ if (yy_flex_debug)
3430
+ {
3431
+ (void)fprintf(stderr, "--popped: ");
3432
+ printStateStack();
3433
+ }
3434
+ }
2805
3435
 
3436
+ // This function is called whenever the scanner encounters an unrecoverable error.
3437
+ void yynoreturn fatalError(const char* msg)
3438
+ {
3439
+ cerr << yyfilename << ":" << yylineno << ":" << yycolno << ": fatal error: " << msg << endl
3440
+ << "\tlast matched text: '" << yytext << "'" << endl
3441
+ << "\tlast scanner state: '" << YY_START << "'" << endl;
3442
+ exit(YY_EXIT_FAILURE);
3443
+ }
2806
3444
  }
2807
3445