zeroc-ice 3.8.2 → 3.8.3

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 (256) hide show
  1. checksums.yaml +4 -4
  2. data/dist/IceRuby/Communicator.cpp +26 -9
  3. data/dist/IceRuby/Config.h +0 -12
  4. data/dist/IceRuby/Connection.cpp +18 -9
  5. data/dist/IceRuby/DefaultSliceLoader.h +1 -1
  6. data/dist/IceRuby/Endpoint.cpp +21 -8
  7. data/dist/IceRuby/Operation.cpp +7 -5
  8. data/dist/IceRuby/Properties.cpp +3 -4
  9. data/dist/IceRuby/Proxy.cpp +11 -19
  10. data/dist/IceRuby/RubySliceLoader.cpp +1 -1
  11. data/dist/IceRuby/RubySliceLoader.h +6 -0
  12. data/dist/IceRuby/Types.cpp +162 -138
  13. data/dist/IceRuby/Types.h +68 -28
  14. data/dist/IceRuby/Util.cpp +14 -78
  15. data/dist/IceRuby/Util.h +7 -17
  16. data/dist/ice/cpp/include/Ice/Communicator.h +31 -8
  17. data/dist/ice/cpp/include/Ice/Config.h +2 -2
  18. data/dist/ice/cpp/include/Ice/Connection.h +24 -8
  19. data/dist/ice/cpp/include/Ice/CtrlCHandler.h +1 -1
  20. data/dist/ice/cpp/include/Ice/Demangle.h +1 -1
  21. data/dist/ice/cpp/include/Ice/Endpoint.h +4 -4
  22. data/dist/ice/cpp/include/Ice/Initialize.h +4 -4
  23. data/dist/ice/cpp/include/Ice/InputStream.h +5 -5
  24. data/dist/ice/cpp/include/Ice/Instrumentation.h +13 -7
  25. data/dist/ice/cpp/include/Ice/LocalExceptions.h +5 -5
  26. data/dist/ice/cpp/include/Ice/Logger.h +7 -0
  27. data/dist/ice/cpp/include/Ice/LoggerUtil.h +1 -1
  28. data/dist/ice/cpp/include/Ice/Object.h +10 -8
  29. data/dist/ice/cpp/include/Ice/ObjectAdapter.h +1 -1
  30. data/dist/ice/cpp/include/Ice/OutgoingAsync.h +5 -2
  31. data/dist/ice/cpp/include/Ice/OutgoingResponse.h +2 -1
  32. data/dist/ice/cpp/include/Ice/OutputStream.h +7 -6
  33. data/dist/ice/cpp/include/Ice/PluginFactory.h +1 -1
  34. data/dist/ice/cpp/include/Ice/Properties.h +3 -3
  35. data/dist/ice/cpp/include/Ice/Proxy.h +192 -50
  36. data/dist/ice/cpp/include/Ice/SSL/ClientAuthenticationOptions.h +3 -3
  37. data/dist/ice/cpp/include/Ice/SSL/EndpointInfo.h +1 -1
  38. data/dist/ice/cpp/include/Ice/SSL/ServerAuthenticationOptions.h +5 -5
  39. data/dist/ice/cpp/include/Ice/ServantLocator.h +1 -1
  40. data/dist/ice/cpp/include/Ice/Service.h +2 -5
  41. data/dist/ice/cpp/include/Ice/SliceLoader.h +1 -1
  42. data/dist/ice/cpp/include/Ice/SlicedData.h +5 -3
  43. data/dist/ice/cpp/include/Ice/StreamHelpers.h +1 -1
  44. data/dist/ice/cpp/include/Ice/StreamableTraits.h +2 -2
  45. data/dist/ice/cpp/include/Ice/StringConverter.h +2 -3
  46. data/dist/ice/cpp/include/Ice/StringUtil.h +2 -7
  47. data/dist/ice/cpp/include/Ice/UUID.h +1 -0
  48. data/dist/ice/cpp/include/Ice/Value.h +2 -2
  49. data/dist/ice/cpp/include/generated/Ice/BuiltinSequences.h +2 -2
  50. data/dist/ice/cpp/include/generated/Ice/Context.h +2 -2
  51. data/dist/ice/cpp/include/generated/Ice/EndpointTypes.h +2 -2
  52. data/dist/ice/cpp/include/generated/Ice/Identity.h +2 -2
  53. data/dist/ice/cpp/include/generated/Ice/Locator.h +50 -14
  54. data/dist/ice/cpp/include/generated/Ice/LocatorRegistry.h +38 -11
  55. data/dist/ice/cpp/include/generated/Ice/Metrics.h +94 -39
  56. data/dist/ice/cpp/include/generated/Ice/OperationMode.h +2 -2
  57. data/dist/ice/cpp/include/generated/Ice/Process.h +34 -8
  58. data/dist/ice/cpp/include/generated/Ice/PropertiesAdmin.h +42 -11
  59. data/dist/ice/cpp/include/generated/Ice/PropertyDict.h +2 -2
  60. data/dist/ice/cpp/include/generated/Ice/RemoteLogger.h +93 -40
  61. data/dist/ice/cpp/include/generated/Ice/ReplyStatus.h +2 -2
  62. data/dist/ice/cpp/include/generated/Ice/Router.h +50 -14
  63. data/dist/ice/cpp/include/generated/Ice/SliceChecksumDict.h +2 -2
  64. data/dist/ice/cpp/include/generated/Ice/Version.h +2 -2
  65. data/dist/ice/cpp/include/generated/IceDiscovery/Lookup.h +66 -14
  66. data/dist/ice/cpp/include/generated/IceLocatorDiscovery/Lookup.h +34 -8
  67. data/dist/ice/cpp/src/Ice/AddDefaultPluginFactories_all.cpp +1 -1
  68. data/dist/ice/cpp/src/Ice/Base64.cpp +47 -137
  69. data/dist/ice/cpp/src/Ice/Base64.h +2 -2
  70. data/dist/ice/cpp/src/Ice/BatchRequestQueue.cpp +28 -13
  71. data/dist/ice/cpp/src/Ice/BatchRequestQueue.h +5 -1
  72. data/dist/ice/cpp/src/Ice/Buffer.cpp +1 -1
  73. data/dist/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +1 -1
  74. data/dist/ice/cpp/src/Ice/CollocatedRequestHandler.h +1 -1
  75. data/dist/ice/cpp/src/Ice/Communicator.cpp +4 -3
  76. data/dist/ice/cpp/src/Ice/CommunicatorFlushBatchAsync.cpp +8 -0
  77. data/dist/ice/cpp/src/Ice/ConnectRequestHandler.cpp +5 -15
  78. data/dist/ice/cpp/src/Ice/ConnectRequestHandler.h +1 -1
  79. data/dist/ice/cpp/src/Ice/ConnectionFactory.cpp +6 -8
  80. data/dist/ice/cpp/src/Ice/ConnectionFactory.h +0 -3
  81. data/dist/ice/cpp/src/Ice/ConnectionI.cpp +94 -99
  82. data/dist/ice/cpp/src/Ice/ConnectionI.h +11 -8
  83. data/dist/ice/cpp/src/Ice/ConsoleUtil.cpp +1 -1
  84. data/dist/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +10 -14
  85. data/dist/ice/cpp/src/Ice/EndpointI.h +1 -1
  86. data/dist/ice/cpp/src/Ice/FileUtil.cpp +12 -12
  87. data/dist/ice/cpp/src/Ice/FixedRequestHandler.cpp +1 -1
  88. data/dist/ice/cpp/src/Ice/FixedRequestHandler.h +1 -1
  89. data/dist/ice/cpp/src/Ice/HttpParser.h +0 -2
  90. data/dist/ice/cpp/src/Ice/IdleTimeoutTransceiverDecorator.cpp +6 -3
  91. data/dist/ice/cpp/src/Ice/IncomingRequest.cpp +1 -3
  92. data/dist/ice/cpp/src/Ice/InputStream.cpp +23 -19
  93. data/dist/ice/cpp/src/Ice/Instance.cpp +73 -50
  94. data/dist/ice/cpp/src/Ice/Instance.h +1 -6
  95. data/dist/ice/cpp/src/Ice/LocalExceptions.cpp +1 -1
  96. data/dist/ice/cpp/src/Ice/LocatorInfo.cpp +2 -2
  97. data/dist/ice/cpp/src/Ice/LoggerAdminI.cpp +13 -18
  98. data/dist/ice/cpp/src/Ice/LoggerI.cpp +1 -1
  99. data/dist/ice/cpp/src/Ice/LoggerI.h +2 -2
  100. data/dist/ice/cpp/src/Ice/MetricsAdminI.h +6 -1
  101. data/dist/ice/cpp/src/Ice/MetricsObserverI.h +22 -18
  102. data/dist/ice/cpp/src/Ice/NativePropertiesAdmin.cpp +5 -2
  103. data/dist/ice/cpp/src/Ice/Network.cpp +168 -103
  104. data/dist/ice/cpp/src/Ice/Network.h +12 -7
  105. data/dist/ice/cpp/src/Ice/NetworkProxy.cpp +17 -6
  106. data/dist/ice/cpp/src/Ice/NetworkProxy.h +2 -1
  107. data/dist/ice/cpp/src/Ice/Object.cpp +1 -1
  108. data/dist/ice/cpp/src/Ice/ObjectAdapterI.cpp +56 -19
  109. data/dist/ice/cpp/src/Ice/OpaqueEndpointI.cpp +10 -10
  110. data/dist/ice/cpp/src/Ice/Options.cpp +7 -2
  111. data/dist/ice/cpp/src/Ice/OutgoingAsync.cpp +1 -1
  112. data/dist/ice/cpp/src/Ice/OutputStream.cpp +4 -4
  113. data/dist/ice/cpp/src/Ice/PluginManagerI.cpp +7 -1
  114. data/dist/ice/cpp/src/Ice/Properties.cpp +26 -16
  115. data/dist/ice/cpp/src/Ice/PropertyUtil.cpp +1 -1
  116. data/dist/ice/cpp/src/Ice/ProtocolInstance.cpp +0 -11
  117. data/dist/ice/cpp/src/Ice/ProtocolInstance.h +1 -2
  118. data/dist/ice/cpp/src/Ice/Proxy.cpp +9 -1
  119. data/dist/ice/cpp/src/Ice/ProxyAsync.cpp +110 -13
  120. data/dist/ice/cpp/src/Ice/Random.cpp +68 -7
  121. data/dist/ice/cpp/src/Ice/Random.h +6 -2
  122. data/dist/ice/cpp/src/Ice/Reference.cpp +22 -11
  123. data/dist/ice/cpp/src/Ice/Reference.h +3 -0
  124. data/dist/ice/cpp/src/Ice/ReferenceFactory.cpp +10 -0
  125. data/dist/ice/cpp/src/Ice/RequestHandler.h +3 -1
  126. data/dist/ice/cpp/src/Ice/RequestHandlerCache.cpp +1 -1
  127. data/dist/ice/cpp/src/Ice/RequestHandlerCache.h +1 -1
  128. data/dist/ice/cpp/src/Ice/ResourceConfig.h +3 -3
  129. data/dist/ice/cpp/src/Ice/RetryQueue.cpp +8 -12
  130. data/dist/ice/cpp/src/Ice/SHA1.cpp +11 -11
  131. data/dist/ice/cpp/src/Ice/SSL/DistinguishedName.cpp +0 -6
  132. data/dist/ice/cpp/src/Ice/SSL/DistinguishedName.h +0 -6
  133. data/dist/ice/cpp/src/Ice/SSL/OpenSSLEngine.cpp +15 -1
  134. data/dist/ice/cpp/src/Ice/SSL/OpenSSLTransceiverI.cpp +77 -27
  135. data/dist/ice/cpp/src/Ice/SSL/OpenSSLTransceiverI.h +2 -1
  136. data/dist/ice/cpp/src/Ice/SSL/RFC2253.cpp +2 -2
  137. data/dist/ice/cpp/src/Ice/SSL/SSLUtil.cpp +39 -34
  138. data/dist/ice/cpp/src/Ice/SSL/SchannelEngine.cpp +130 -52
  139. data/dist/ice/cpp/src/Ice/SSL/SchannelTransceiverI.cpp +64 -33
  140. data/dist/ice/cpp/src/Ice/SSL/SchannelTransceiverI.h +0 -1
  141. data/dist/ice/cpp/src/Ice/SSL/SecureTransportEngine.cpp +3 -3
  142. data/dist/ice/cpp/src/Ice/SSL/SecureTransportTransceiverI.cpp +9 -3
  143. data/dist/ice/cpp/src/Ice/SSL/SecureTransportUtil.cpp +73 -51
  144. data/dist/ice/cpp/src/Ice/SSL/SecureTransportUtil.h +0 -8
  145. data/dist/ice/cpp/src/Ice/Selector.cpp +13 -11
  146. data/dist/ice/cpp/src/Ice/ServantManager.cpp +3 -3
  147. data/dist/ice/cpp/src/Ice/Service.cpp +33 -115
  148. data/dist/ice/cpp/src/Ice/StreamSocket.cpp +33 -40
  149. data/dist/ice/cpp/src/Ice/StreamSocket.h +4 -4
  150. data/dist/ice/cpp/src/Ice/StringConverter.cpp +1 -1
  151. data/dist/ice/cpp/src/Ice/StringUtil.cpp +12 -21
  152. data/dist/ice/cpp/src/Ice/SysLoggerI.cpp +136 -100
  153. data/dist/ice/cpp/src/Ice/SysLoggerI.h +7 -3
  154. data/dist/ice/cpp/src/Ice/SystemdJournalI.cpp +1 -1
  155. data/dist/ice/cpp/src/Ice/TcpAcceptor.cpp +7 -7
  156. data/dist/ice/cpp/src/Ice/TcpAcceptor.h +2 -1
  157. data/dist/ice/cpp/src/Ice/TcpBufSize.h +40 -0
  158. data/dist/ice/cpp/src/Ice/TcpConnector.cpp +5 -2
  159. data/dist/ice/cpp/src/Ice/TcpConnector.h +2 -0
  160. data/dist/ice/cpp/src/Ice/TcpTransceiver.cpp +6 -2
  161. data/dist/ice/cpp/src/Ice/ThreadPool.cpp +2 -8
  162. data/dist/ice/cpp/src/Ice/ThreadPool.h +0 -2
  163. data/dist/ice/cpp/src/Ice/Timer.cpp +7 -3
  164. data/dist/ice/cpp/src/Ice/UUID.cpp +1 -2
  165. data/dist/ice/cpp/src/Ice/UdpEndpointI.cpp +4 -1
  166. data/dist/ice/cpp/src/Ice/UdpTransceiver.cpp +136 -123
  167. data/dist/ice/cpp/src/Ice/UdpTransceiver.h +3 -4
  168. data/dist/ice/cpp/src/Ice/WSTransceiver.cpp +96 -27
  169. data/dist/ice/cpp/src/Ice/WSTransceiver.h +1 -1
  170. data/dist/ice/cpp/src/Ice/generated/BuiltinSequences.cpp +2 -2
  171. data/dist/ice/cpp/src/Ice/generated/Context.cpp +2 -2
  172. data/dist/ice/cpp/src/Ice/generated/EndpointTypes.cpp +2 -2
  173. data/dist/ice/cpp/src/Ice/generated/Identity.cpp +2 -2
  174. data/dist/ice/cpp/src/Ice/generated/Locator.cpp +2 -2
  175. data/dist/ice/cpp/src/Ice/generated/LocatorRegistry.cpp +2 -2
  176. data/dist/ice/cpp/src/Ice/generated/Metrics.cpp +2 -2
  177. data/dist/ice/cpp/src/Ice/generated/OperationMode.cpp +2 -2
  178. data/dist/ice/cpp/src/Ice/generated/Process.cpp +2 -2
  179. data/dist/ice/cpp/src/Ice/generated/PropertiesAdmin.cpp +2 -2
  180. data/dist/ice/cpp/src/Ice/generated/PropertyDict.cpp +2 -2
  181. data/dist/ice/cpp/src/Ice/generated/RemoteLogger.cpp +2 -2
  182. data/dist/ice/cpp/src/Ice/generated/ReplyStatus.cpp +2 -2
  183. data/dist/ice/cpp/src/Ice/generated/Router.cpp +2 -2
  184. data/dist/ice/cpp/src/Ice/generated/SliceChecksumDict.cpp +2 -2
  185. data/dist/ice/cpp/src/Ice/generated/Version.cpp +2 -2
  186. data/dist/ice/cpp/src/IceDiscovery/LookupI.cpp +47 -9
  187. data/dist/ice/cpp/src/IceDiscovery/LookupI.h +8 -3
  188. data/dist/ice/cpp/src/IceDiscovery/generated/Lookup.cpp +2 -2
  189. data/dist/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +43 -14
  190. data/dist/ice/cpp/src/IceLocatorDiscovery/generated/Lookup.cpp +2 -2
  191. data/dist/ice/cpp/src/Slice/DocCommentParser.cpp +26 -20
  192. data/dist/ice/cpp/src/Slice/DocCommentParser.h +2 -2
  193. data/dist/ice/cpp/src/Slice/FileTracker.cpp +3 -11
  194. data/dist/ice/cpp/src/Slice/FileTracker.h +0 -2
  195. data/dist/ice/cpp/src/Slice/Grammar.cpp +211 -210
  196. data/dist/ice/cpp/src/Slice/MetadataValidation.cpp +10 -9
  197. data/dist/ice/cpp/src/Slice/Parser.cpp +28 -20
  198. data/dist/ice/cpp/src/Slice/Parser.h +3 -4
  199. data/dist/ice/cpp/src/Slice/Preprocessor.cpp +3 -11
  200. data/dist/ice/cpp/src/Slice/Preprocessor.h +0 -2
  201. data/dist/ice/cpp/src/Slice/Scanner.cpp +3 -3
  202. data/dist/ice/cpp/src/Slice/SliceUtil.cpp +197 -114
  203. data/dist/ice/cpp/src/Slice/StringLiteralUtil.cpp +0 -2
  204. data/dist/ice/cpp/src/Slice/Util.h +21 -9
  205. data/dist/ice/cpp/src/slice2rb/Ruby.cpp +7 -3
  206. data/dist/ice/cpp/src/slice2rb/RubyUtil.cpp +16 -12
  207. data/dist/ice/cpp/src/slice2rb/RubyUtil.h +3 -3
  208. data/dist/ice/slice/Glacier2/Router.ice +3 -3
  209. data/dist/ice/slice/Ice/Metrics.ice +6 -5
  210. data/dist/ice/slice/Ice/RemoteLogger.ice +5 -5
  211. data/dist/ice/slice/IceGrid/Admin.ice +9 -9
  212. data/dist/ice/slice/IceGrid/Descriptor.ice +5 -5
  213. data/dist/ice/slice/IceStorm/Metrics.ice +1 -1
  214. data/dist/lib/Glacier2/Metrics.rb +1 -1
  215. data/dist/lib/Glacier2/PermissionsVerifier.rb +1 -1
  216. data/dist/lib/Glacier2/Router.rb +2 -2
  217. data/dist/lib/Glacier2/SSLInfo.rb +1 -1
  218. data/dist/lib/Glacier2/Session.rb +1 -1
  219. data/dist/lib/Ice/BuiltinSequences.rb +1 -1
  220. data/dist/lib/Ice/CompressBatch.rb +1 -2
  221. data/dist/lib/Ice/Context.rb +1 -1
  222. data/dist/lib/Ice/EndpointSelectionType.rb +1 -2
  223. data/dist/lib/Ice/EndpointTypes.rb +1 -1
  224. data/dist/lib/Ice/Identity.rb +1 -1
  225. data/dist/lib/Ice/IdentitySpaceship.rb +1 -0
  226. data/dist/lib/Ice/Locator.rb +1 -1
  227. data/dist/lib/Ice/LocatorRegistry.rb +1 -1
  228. data/dist/lib/Ice/Metrics.rb +1 -1
  229. data/dist/lib/Ice/OperationMode.rb +2 -3
  230. data/dist/lib/Ice/Process.rb +1 -1
  231. data/dist/lib/Ice/PropertiesAdmin.rb +1 -1
  232. data/dist/lib/Ice/PropertyDict.rb +1 -1
  233. data/dist/lib/Ice/RemoteLogger.rb +2 -3
  234. data/dist/lib/Ice/ReplyStatus.rb +2 -3
  235. data/dist/lib/Ice/Router.rb +1 -1
  236. data/dist/lib/Ice/SliceChecksumDict.rb +1 -1
  237. data/dist/lib/Ice/SliceUtil.rb +2 -2
  238. data/dist/lib/Ice/Struct.rb +1 -0
  239. data/dist/lib/Ice/ToStringMode.rb +1 -2
  240. data/dist/lib/Ice/Value.rb +2 -2
  241. data/dist/lib/Ice/Version.rb +1 -1
  242. data/dist/lib/IceBox/ServiceManager.rb +1 -1
  243. data/dist/lib/IceGrid/Admin.rb +3 -4
  244. data/dist/lib/IceGrid/Descriptor.rb +1 -1
  245. data/dist/lib/IceGrid/Exception.rb +1 -1
  246. data/dist/lib/IceGrid/FileParser.rb +1 -1
  247. data/dist/lib/IceGrid/Registry.rb +2 -3
  248. data/dist/lib/IceGrid/Session.rb +2 -2
  249. data/dist/lib/IceGrid/UserAccountMapper.rb +1 -1
  250. data/dist/lib/IceStorm/IceStorm.rb +1 -1
  251. data/dist/lib/IceStorm/Metrics.rb +1 -1
  252. data/extconf.rb +1 -1
  253. data/ice.gemspec +3 -3
  254. metadata +4 -5
  255. data/dist/ice/cpp/src/Ice/DLLMain.cpp +0 -40
  256. data/dist/ice/cpp/src/Ice/UndefSysMacros.h +0 -37
@@ -741,17 +741,17 @@ static const yytype_int16 yyrline[] =
741
741
  501, 510, 521, 534, 540, 551, 568, 581, 592, 591,
742
742
  618, 622, 633, 653, 665, 678, 677, 711, 737, 746,
743
743
  749, 757, 766, 769, 773, 781, 809, 843, 858, 864,
744
- 874, 878, 887, 917, 916, 948, 947, 970, 974, 985,
745
- 999, 998, 1032, 1042, 1052, 1057, 1067, 1071, 1080, 1089,
746
- 1092, 1096, 1104, 1114, 1129, 1140, 1157, 1170, 1186, 1185,
747
- 1210, 1211, 1215, 1224, 1236, 1253, 1259, 1275, 1287, 1300,
748
- 1308, 1322, 1323, 1329, 1330, 1336, 1340, 1349, 1352, 1360,
749
- 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1374,
750
- 1378, 1383, 1388, 1398, 1402, 1487, 1493, 1501, 1511, 1526,
751
- 1535, 1544, 1579, 1586, 1593, 1605, 1619, 1624, 1632, 1644,
752
- 1649, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670,
753
- 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680,
754
- 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688
744
+ 874, 878, 887, 917, 916, 948, 947, 971, 975, 986,
745
+ 1000, 999, 1033, 1043, 1053, 1058, 1068, 1072, 1081, 1090,
746
+ 1093, 1097, 1105, 1115, 1130, 1141, 1158, 1171, 1187, 1186,
747
+ 1211, 1212, 1216, 1225, 1237, 1254, 1260, 1276, 1288, 1301,
748
+ 1309, 1323, 1324, 1330, 1331, 1337, 1341, 1350, 1353, 1361,
749
+ 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1375,
750
+ 1379, 1384, 1389, 1399, 1403, 1488, 1494, 1502, 1512, 1527,
751
+ 1536, 1545, 1580, 1587, 1594, 1606, 1620, 1625, 1633, 1645,
752
+ 1650, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671,
753
+ 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681,
754
+ 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689
755
755
  };
756
756
  #endif
757
757
 
@@ -2798,13 +2798,14 @@ yyreduce:
2798
2798
  {
2799
2799
  currentUnit->popContainer();
2800
2800
  }
2801
- yyerrok;
2801
+ yyval = yyvsp[-2];
2802
+ yyerrok; // Signal that the error has been recovered from.
2802
2803
  }
2803
- #line 2804 "src/Slice/Grammar.cpp"
2804
+ #line 2805 "src/Slice/Grammar.cpp"
2804
2805
  break;
2805
2806
 
2806
2807
  case 76: /* operation: operation_preamble error ')' @7 throws */
2807
- #line 956 "src/Slice/Grammar.y"
2808
+ #line 957 "src/Slice/Grammar.y"
2808
2809
  {
2809
2810
  auto op = dynamic_pointer_cast<Operation>(yyvsp[-1]);
2810
2811
  auto el = dynamic_pointer_cast<ExceptionListTok>(yyvsp[0]);
@@ -2814,29 +2815,29 @@ yyreduce:
2814
2815
  op->setExceptionList(el->v); // Dummy
2815
2816
  }
2816
2817
  }
2817
- #line 2818 "src/Slice/Grammar.cpp"
2818
+ #line 2819 "src/Slice/Grammar.cpp"
2818
2819
  break;
2819
2820
 
2820
2821
  case 77: /* interface_id: "interface keyword" "identifier" */
2821
- #line 971 "src/Slice/Grammar.y"
2822
+ #line 972 "src/Slice/Grammar.y"
2822
2823
  {
2823
2824
  yyval = yyvsp[0];
2824
2825
  }
2825
- #line 2826 "src/Slice/Grammar.cpp"
2826
+ #line 2827 "src/Slice/Grammar.cpp"
2826
2827
  break;
2827
2828
 
2828
2829
  case 78: /* interface_id: "interface keyword" keyword */
2829
- #line 975 "src/Slice/Grammar.y"
2830
+ #line 976 "src/Slice/Grammar.y"
2830
2831
  {
2831
2832
  auto ident = dynamic_pointer_cast<StringTok>(yyvsp[0]);
2832
2833
  currentUnit->error("keyword '" + ident->v + "' cannot be used as interface name");
2833
2834
  yyval = yyvsp[0]; // Dummy
2834
2835
  }
2835
- #line 2836 "src/Slice/Grammar.cpp"
2836
+ #line 2837 "src/Slice/Grammar.cpp"
2836
2837
  break;
2837
2838
 
2838
2839
  case 79: /* interface_decl: interface_id */
2839
- #line 986 "src/Slice/Grammar.y"
2840
+ #line 987 "src/Slice/Grammar.y"
2840
2841
  {
2841
2842
  auto ident = dynamic_pointer_cast<StringTok>(yyvsp[0]);
2842
2843
  auto cont = currentUnit->currentContainer();
@@ -2844,11 +2845,11 @@ yyreduce:
2844
2845
  cont->checkHasChangedMeaning(ident->v, cl);
2845
2846
  yyval = cl;
2846
2847
  }
2847
- #line 2848 "src/Slice/Grammar.cpp"
2848
+ #line 2849 "src/Slice/Grammar.cpp"
2848
2849
  break;
2849
2850
 
2850
2851
  case 80: /* @8: %empty */
2851
- #line 999 "src/Slice/Grammar.y"
2852
+ #line 1000 "src/Slice/Grammar.y"
2852
2853
  {
2853
2854
  auto ident = dynamic_pointer_cast<StringTok>(yyvsp[-1]);
2854
2855
  ContainerPtr cont = currentUnit->currentContainer();
@@ -2865,11 +2866,11 @@ yyreduce:
2865
2866
  yyval = nullptr;
2866
2867
  }
2867
2868
  }
2868
- #line 2869 "src/Slice/Grammar.cpp"
2869
+ #line 2870 "src/Slice/Grammar.cpp"
2869
2870
  break;
2870
2871
 
2871
2872
  case 81: /* interface_def: interface_id interface_extends @8 '{' operations '}' */
2872
- #line 1016 "src/Slice/Grammar.y"
2873
+ #line 1017 "src/Slice/Grammar.y"
2873
2874
  {
2874
2875
  if (yyvsp[-3])
2875
2876
  {
@@ -2881,11 +2882,11 @@ yyreduce:
2881
2882
  yyval = nullptr;
2882
2883
  }
2883
2884
  }
2884
- #line 2885 "src/Slice/Grammar.cpp"
2885
+ #line 2886 "src/Slice/Grammar.cpp"
2885
2886
  break;
2886
2887
 
2887
2888
  case 82: /* interface_list: interface_list ',' scoped_name */
2888
- #line 1033 "src/Slice/Grammar.y"
2889
+ #line 1034 "src/Slice/Grammar.y"
2889
2890
  {
2890
2891
  auto interfaces = dynamic_pointer_cast<InterfaceListTok>(yyvsp[-2]);
2891
2892
  auto scoped = dynamic_pointer_cast<StringTok>(yyvsp[0]);
@@ -2895,11 +2896,11 @@ yyreduce:
2895
2896
  }
2896
2897
  yyval = interfaces;
2897
2898
  }
2898
- #line 2899 "src/Slice/Grammar.cpp"
2899
+ #line 2900 "src/Slice/Grammar.cpp"
2899
2900
  break;
2900
2901
 
2901
2902
  case 83: /* interface_list: scoped_name */
2902
- #line 1043 "src/Slice/Grammar.y"
2903
+ #line 1044 "src/Slice/Grammar.y"
2903
2904
  {
2904
2905
  auto interfaces = make_shared<InterfaceListTok>();
2905
2906
  auto scoped = dynamic_pointer_cast<StringTok>(yyvsp[0]);
@@ -2909,45 +2910,45 @@ yyreduce:
2909
2910
  }
2910
2911
  yyval = interfaces;
2911
2912
  }
2912
- #line 2913 "src/Slice/Grammar.cpp"
2913
+ #line 2914 "src/Slice/Grammar.cpp"
2913
2914
  break;
2914
2915
 
2915
2916
  case 84: /* interface_list: "Object keyword" */
2916
- #line 1053 "src/Slice/Grammar.y"
2917
+ #line 1054 "src/Slice/Grammar.y"
2917
2918
  {
2918
2919
  currentUnit->error("illegal inheritance from type Object");
2919
2920
  yyval = make_shared<InterfaceListTok>(); // Dummy
2920
2921
  }
2921
- #line 2922 "src/Slice/Grammar.cpp"
2922
+ #line 2923 "src/Slice/Grammar.cpp"
2922
2923
  break;
2923
2924
 
2924
2925
  case 85: /* interface_list: "Value keyword" */
2925
- #line 1058 "src/Slice/Grammar.y"
2926
+ #line 1059 "src/Slice/Grammar.y"
2926
2927
  {
2927
2928
  currentUnit->error("illegal inheritance from type Value");
2928
2929
  yyval = make_shared<InterfaceListTok>(); // Dummy
2929
2930
  }
2930
- #line 2931 "src/Slice/Grammar.cpp"
2931
+ #line 2932 "src/Slice/Grammar.cpp"
2931
2932
  break;
2932
2933
 
2933
2934
  case 86: /* interface_extends: extends interface_list */
2934
- #line 1068 "src/Slice/Grammar.y"
2935
+ #line 1069 "src/Slice/Grammar.y"
2935
2936
  {
2936
2937
  yyval = yyvsp[0];
2937
2938
  }
2938
- #line 2939 "src/Slice/Grammar.cpp"
2939
+ #line 2940 "src/Slice/Grammar.cpp"
2939
2940
  break;
2940
2941
 
2941
2942
  case 87: /* interface_extends: %empty */
2942
- #line 1072 "src/Slice/Grammar.y"
2943
+ #line 1073 "src/Slice/Grammar.y"
2943
2944
  {
2944
2945
  yyval = make_shared<InterfaceListTok>();
2945
2946
  }
2946
- #line 2947 "src/Slice/Grammar.cpp"
2947
+ #line 2948 "src/Slice/Grammar.cpp"
2947
2948
  break;
2948
2949
 
2949
2950
  case 88: /* operations: metadata operation ';' operations */
2950
- #line 1081 "src/Slice/Grammar.y"
2951
+ #line 1082 "src/Slice/Grammar.y"
2951
2952
  {
2952
2953
  auto metadata = dynamic_pointer_cast<MetadataListTok>(yyvsp[-3]);
2953
2954
  auto contained = dynamic_pointer_cast<Contained>(yyvsp[-2]);
@@ -2956,33 +2957,33 @@ yyreduce:
2956
2957
  contained->appendMetadata(std::move(metadata->v));
2957
2958
  }
2958
2959
  }
2959
- #line 2960 "src/Slice/Grammar.cpp"
2960
+ #line 2961 "src/Slice/Grammar.cpp"
2960
2961
  break;
2961
2962
 
2962
2963
  case 89: /* operations: error ';' operations */
2963
- #line 1090 "src/Slice/Grammar.y"
2964
+ #line 1091 "src/Slice/Grammar.y"
2964
2965
  {
2965
2966
  }
2966
- #line 2967 "src/Slice/Grammar.cpp"
2967
+ #line 2968 "src/Slice/Grammar.cpp"
2967
2968
  break;
2968
2969
 
2969
2970
  case 90: /* operations: metadata operation */
2970
- #line 1093 "src/Slice/Grammar.y"
2971
+ #line 1094 "src/Slice/Grammar.y"
2971
2972
  {
2972
2973
  currentUnit->error("';' missing after definition");
2973
2974
  }
2974
- #line 2975 "src/Slice/Grammar.cpp"
2975
+ #line 2976 "src/Slice/Grammar.cpp"
2975
2976
  break;
2976
2977
 
2977
2978
  case 91: /* operations: %empty */
2978
- #line 1097 "src/Slice/Grammar.y"
2979
+ #line 1098 "src/Slice/Grammar.y"
2979
2980
  {
2980
2981
  }
2981
- #line 2982 "src/Slice/Grammar.cpp"
2982
+ #line 2983 "src/Slice/Grammar.cpp"
2982
2983
  break;
2983
2984
 
2984
2985
  case 92: /* exception_list: exception_list ',' exception */
2985
- #line 1105 "src/Slice/Grammar.y"
2986
+ #line 1106 "src/Slice/Grammar.y"
2986
2987
  {
2987
2988
  auto exceptionList = dynamic_pointer_cast<ExceptionListTok>(yyvsp[-2]);
2988
2989
  auto exception = dynamic_pointer_cast<Exception>(yyvsp[0]);
@@ -2992,11 +2993,11 @@ yyreduce:
2992
2993
  }
2993
2994
  yyval = exceptionList;
2994
2995
  }
2995
- #line 2996 "src/Slice/Grammar.cpp"
2996
+ #line 2997 "src/Slice/Grammar.cpp"
2996
2997
  break;
2997
2998
 
2998
2999
  case 93: /* exception_list: exception */
2999
- #line 1115 "src/Slice/Grammar.y"
3000
+ #line 1116 "src/Slice/Grammar.y"
3000
3001
  {
3001
3002
  auto exceptionList = make_shared<ExceptionListTok>();
3002
3003
  auto exception = dynamic_pointer_cast<Exception>(yyvsp[0]);
@@ -3006,11 +3007,11 @@ yyreduce:
3006
3007
  }
3007
3008
  yyval = exceptionList;
3008
3009
  }
3009
- #line 3010 "src/Slice/Grammar.cpp"
3010
+ #line 3011 "src/Slice/Grammar.cpp"
3010
3011
  break;
3011
3012
 
3012
3013
  case 94: /* exception: scoped_name */
3013
- #line 1130 "src/Slice/Grammar.y"
3014
+ #line 1131 "src/Slice/Grammar.y"
3014
3015
  {
3015
3016
  auto scoped = dynamic_pointer_cast<StringTok>(yyvsp[0]);
3016
3017
  ContainerPtr cont = currentUnit->currentContainer();
@@ -3021,11 +3022,11 @@ yyreduce:
3021
3022
  }
3022
3023
  yyval = exception;
3023
3024
  }
3024
- #line 3025 "src/Slice/Grammar.cpp"
3025
+ #line 3026 "src/Slice/Grammar.cpp"
3025
3026
  break;
3026
3027
 
3027
3028
  case 95: /* exception: keyword */
3028
- #line 1141 "src/Slice/Grammar.y"
3029
+ #line 1142 "src/Slice/Grammar.y"
3029
3030
  {
3030
3031
  auto ident = dynamic_pointer_cast<StringTok>(yyvsp[0]);
3031
3032
  currentUnit->error("keyword '" + ident->v + "' cannot be used as a name");
@@ -3037,11 +3038,11 @@ yyreduce:
3037
3038
  }
3038
3039
  yyval = exception;
3039
3040
  }
3040
- #line 3041 "src/Slice/Grammar.cpp"
3041
+ #line 3042 "src/Slice/Grammar.cpp"
3041
3042
  break;
3042
3043
 
3043
3044
  case 96: /* sequence_def: "sequence keyword" '<' metadata type '>' definition_name */
3044
- #line 1158 "src/Slice/Grammar.y"
3045
+ #line 1159 "src/Slice/Grammar.y"
3045
3046
  {
3046
3047
  auto ident = dynamic_pointer_cast<StringTok>(yyvsp[0]);
3047
3048
  auto metadata = dynamic_pointer_cast<MetadataListTok>(yyvsp[-3]);
@@ -3049,11 +3050,11 @@ yyreduce:
3049
3050
  ContainerPtr cont = currentUnit->currentContainer();
3050
3051
  yyval = cont->createSequence(ident->v, type, std::move(metadata->v));
3051
3052
  }
3052
- #line 3053 "src/Slice/Grammar.cpp"
3053
+ #line 3054 "src/Slice/Grammar.cpp"
3053
3054
  break;
3054
3055
 
3055
3056
  case 97: /* dictionary_def: "dictionary keyword" '<' metadata type ',' metadata type '>' definition_name */
3056
- #line 1171 "src/Slice/Grammar.y"
3057
+ #line 1172 "src/Slice/Grammar.y"
3057
3058
  {
3058
3059
  auto ident = dynamic_pointer_cast<StringTok>(yyvsp[0]);
3059
3060
  auto keyMetadata = dynamic_pointer_cast<MetadataListTok>(yyvsp[-6]);
@@ -3063,11 +3064,11 @@ yyreduce:
3063
3064
  ContainerPtr cont = currentUnit->currentContainer();
3064
3065
  yyval = cont->createDictionary(ident->v, keyType, std::move(keyMetadata->v), valueType, std::move(valueMetadata->v));
3065
3066
  }
3066
- #line 3067 "src/Slice/Grammar.cpp"
3067
+ #line 3068 "src/Slice/Grammar.cpp"
3067
3068
  break;
3068
3069
 
3069
3070
  case 98: /* @9: %empty */
3070
- #line 1186 "src/Slice/Grammar.y"
3071
+ #line 1187 "src/Slice/Grammar.y"
3071
3072
  {
3072
3073
  auto ident = dynamic_pointer_cast<StringTok>(yyvsp[0]);
3073
3074
  ContainerPtr cont = currentUnit->currentContainer();
@@ -3076,11 +3077,11 @@ yyreduce:
3076
3077
  currentUnit->pushContainer(en);
3077
3078
  yyval = en;
3078
3079
  }
3079
- #line 3080 "src/Slice/Grammar.cpp"
3080
+ #line 3081 "src/Slice/Grammar.cpp"
3080
3081
  break;
3081
3082
 
3082
3083
  case 99: /* enum_def: "enum keyword" definition_name @9 '{' enumerators '}' */
3083
- #line 1195 "src/Slice/Grammar.y"
3084
+ #line 1196 "src/Slice/Grammar.y"
3084
3085
  {
3085
3086
  auto en = dynamic_pointer_cast<Enum>(yyvsp[-3]);
3086
3087
  auto enumerators = dynamic_pointer_cast<EnumeratorListTok>(yyvsp[-1]);
@@ -3091,27 +3092,27 @@ yyreduce:
3091
3092
  currentUnit->popContainer();
3092
3093
  yyval = en;
3093
3094
  }
3094
- #line 3095 "src/Slice/Grammar.cpp"
3095
+ #line 3096 "src/Slice/Grammar.cpp"
3095
3096
  break;
3096
3097
 
3097
3098
  case 101: /* enumerators: enumerator_list ',' */
3098
- #line 1212 "src/Slice/Grammar.y"
3099
+ #line 1213 "src/Slice/Grammar.y"
3099
3100
  {
3100
3101
  yyval = yyvsp[-1];
3101
3102
  }
3102
- #line 3103 "src/Slice/Grammar.cpp"
3103
+ #line 3104 "src/Slice/Grammar.cpp"
3103
3104
  break;
3104
3105
 
3105
3106
  case 102: /* enumerators: %empty */
3106
- #line 1216 "src/Slice/Grammar.y"
3107
+ #line 1217 "src/Slice/Grammar.y"
3107
3108
  {
3108
3109
  yyval = make_shared<EnumeratorListTok>(); // Empty list
3109
3110
  }
3110
- #line 3111 "src/Slice/Grammar.cpp"
3111
+ #line 3112 "src/Slice/Grammar.cpp"
3111
3112
  break;
3112
3113
 
3113
3114
  case 103: /* enumerator_list: enumerator_list ',' metadata enumerator */
3114
- #line 1225 "src/Slice/Grammar.y"
3115
+ #line 1226 "src/Slice/Grammar.y"
3115
3116
  {
3116
3117
  auto enumeratorList = dynamic_pointer_cast<EnumeratorListTok>(yyvsp[-3]);
3117
3118
  auto metadata = dynamic_pointer_cast<MetadataListTok>(yyvsp[-1]);
@@ -3123,11 +3124,11 @@ yyreduce:
3123
3124
  enumeratorList->v.push_back(enumerator);
3124
3125
  yyval = enumeratorList;
3125
3126
  }
3126
- #line 3127 "src/Slice/Grammar.cpp"
3127
+ #line 3128 "src/Slice/Grammar.cpp"
3127
3128
  break;
3128
3129
 
3129
3130
  case 104: /* enumerator_list: metadata enumerator */
3130
- #line 1237 "src/Slice/Grammar.y"
3131
+ #line 1238 "src/Slice/Grammar.y"
3131
3132
  {
3132
3133
  auto enumeratorList = make_shared<EnumeratorListTok>();
3133
3134
  auto metadata = dynamic_pointer_cast<MetadataListTok>(yyvsp[-1]);
@@ -3139,21 +3140,21 @@ yyreduce:
3139
3140
  enumeratorList->v.push_back(enumerator);
3140
3141
  yyval = enumeratorList;
3141
3142
  }
3142
- #line 3143 "src/Slice/Grammar.cpp"
3143
+ #line 3144 "src/Slice/Grammar.cpp"
3143
3144
  break;
3144
3145
 
3145
3146
  case 105: /* enumerator: "identifier" */
3146
- #line 1254 "src/Slice/Grammar.y"
3147
+ #line 1255 "src/Slice/Grammar.y"
3147
3148
  {
3148
3149
  auto ident = dynamic_pointer_cast<StringTok>(yyvsp[0]);
3149
3150
  EnumPtr cont = dynamic_pointer_cast<Enum>(currentUnit->currentContainer());
3150
3151
  yyval = cont->createEnumerator(ident->v, nullopt);
3151
3152
  }
3152
- #line 3153 "src/Slice/Grammar.cpp"
3153
+ #line 3154 "src/Slice/Grammar.cpp"
3153
3154
  break;
3154
3155
 
3155
3156
  case 106: /* enumerator: "identifier" '=' integer_constant */
3156
- #line 1260 "src/Slice/Grammar.y"
3157
+ #line 1261 "src/Slice/Grammar.y"
3157
3158
  {
3158
3159
  auto ident = dynamic_pointer_cast<StringTok>(yyvsp[-2]);
3159
3160
  EnumPtr cont = dynamic_pointer_cast<Enum>(currentUnit->currentContainer());
@@ -3169,22 +3170,22 @@ yyreduce:
3169
3170
  yyval = cont->createEnumerator(ident->v, nullopt); // Dummy
3170
3171
  }
3171
3172
  }
3172
- #line 3173 "src/Slice/Grammar.cpp"
3173
+ #line 3174 "src/Slice/Grammar.cpp"
3173
3174
  break;
3174
3175
 
3175
3176
  case 107: /* enumerator: keyword */
3176
- #line 1276 "src/Slice/Grammar.y"
3177
+ #line 1277 "src/Slice/Grammar.y"
3177
3178
  {
3178
3179
  auto ident = dynamic_pointer_cast<StringTok>(yyvsp[0]);
3179
3180
  EnumPtr cont = dynamic_pointer_cast<Enum>(currentUnit->currentContainer());
3180
3181
  currentUnit->error("keyword '" + ident->v + "' cannot be used as enumerator");
3181
3182
  yyval = cont->createEnumerator(ident->v, nullopt); // Dummy
3182
3183
  }
3183
- #line 3184 "src/Slice/Grammar.cpp"
3184
+ #line 3185 "src/Slice/Grammar.cpp"
3184
3185
  break;
3185
3186
 
3186
3187
  case 108: /* parameter: optional_type_id */
3187
- #line 1288 "src/Slice/Grammar.y"
3188
+ #line 1289 "src/Slice/Grammar.y"
3188
3189
  {
3189
3190
  auto tsp = dynamic_pointer_cast<OptionalDefTok>(yyvsp[0]);
3190
3191
  ParameterPtr param;
@@ -3197,11 +3198,11 @@ yyreduce:
3197
3198
  }
3198
3199
  yyval = param;
3199
3200
  }
3200
- #line 3201 "src/Slice/Grammar.cpp"
3201
+ #line 3202 "src/Slice/Grammar.cpp"
3201
3202
  break;
3202
3203
 
3203
3204
  case 109: /* parameter: "out keyword" parameter */
3204
- #line 1301 "src/Slice/Grammar.y"
3205
+ #line 1302 "src/Slice/Grammar.y"
3205
3206
  {
3206
3207
  if (auto param = dynamic_pointer_cast<Parameter>(yyvsp[0]))
3207
3208
  {
@@ -3209,11 +3210,11 @@ yyreduce:
3209
3210
  }
3210
3211
  yyval = yyvsp[0];
3211
3212
  }
3212
- #line 3213 "src/Slice/Grammar.cpp"
3213
+ #line 3214 "src/Slice/Grammar.cpp"
3213
3214
  break;
3214
3215
 
3215
3216
  case 110: /* parameter: local_metadata parameter */
3216
- #line 1309 "src/Slice/Grammar.y"
3217
+ #line 1310 "src/Slice/Grammar.y"
3217
3218
  {
3218
3219
  if (auto param = dynamic_pointer_cast<Parameter>(yyvsp[0]))
3219
3220
  {
@@ -3222,144 +3223,144 @@ yyreduce:
3222
3223
  }
3223
3224
  yyval = yyvsp[0];
3224
3225
  }
3225
- #line 3226 "src/Slice/Grammar.cpp"
3226
+ #line 3227 "src/Slice/Grammar.cpp"
3226
3227
  break;
3227
3228
 
3228
3229
  case 115: /* throws: "throws keyword" exception_list */
3229
- #line 1337 "src/Slice/Grammar.y"
3230
+ #line 1338 "src/Slice/Grammar.y"
3230
3231
  {
3231
3232
  yyval = yyvsp[0];
3232
3233
  }
3233
- #line 3234 "src/Slice/Grammar.cpp"
3234
+ #line 3235 "src/Slice/Grammar.cpp"
3234
3235
  break;
3235
3236
 
3236
3237
  case 116: /* throws: %empty */
3237
- #line 1341 "src/Slice/Grammar.y"
3238
+ #line 1342 "src/Slice/Grammar.y"
3238
3239
  {
3239
3240
  yyval = make_shared<ExceptionListTok>();
3240
3241
  }
3241
- #line 3242 "src/Slice/Grammar.cpp"
3242
+ #line 3243 "src/Slice/Grammar.cpp"
3242
3243
  break;
3243
3244
 
3244
3245
  case 117: /* scoped_name: "identifier" */
3245
- #line 1350 "src/Slice/Grammar.y"
3246
+ #line 1351 "src/Slice/Grammar.y"
3246
3247
  {
3247
3248
  }
3248
- #line 3249 "src/Slice/Grammar.cpp"
3249
+ #line 3250 "src/Slice/Grammar.cpp"
3249
3250
  break;
3250
3251
 
3251
3252
  case 118: /* scoped_name: "scoped identifier" */
3252
- #line 1353 "src/Slice/Grammar.y"
3253
+ #line 1354 "src/Slice/Grammar.y"
3253
3254
  {
3254
3255
  }
3255
- #line 3256 "src/Slice/Grammar.cpp"
3256
+ #line 3257 "src/Slice/Grammar.cpp"
3256
3257
  break;
3257
3258
 
3258
3259
  case 119: /* builtin: "bool keyword" */
3259
- #line 1360 "src/Slice/Grammar.y"
3260
+ #line 1361 "src/Slice/Grammar.y"
3260
3261
  {}
3261
- #line 3262 "src/Slice/Grammar.cpp"
3262
+ #line 3263 "src/Slice/Grammar.cpp"
3262
3263
  break;
3263
3264
 
3264
3265
  case 120: /* builtin: "byte keyword" */
3265
- #line 1361 "src/Slice/Grammar.y"
3266
+ #line 1362 "src/Slice/Grammar.y"
3266
3267
  {}
3267
- #line 3268 "src/Slice/Grammar.cpp"
3268
+ #line 3269 "src/Slice/Grammar.cpp"
3268
3269
  break;
3269
3270
 
3270
3271
  case 121: /* builtin: "short keyword" */
3271
- #line 1362 "src/Slice/Grammar.y"
3272
+ #line 1363 "src/Slice/Grammar.y"
3272
3273
  {}
3273
- #line 3274 "src/Slice/Grammar.cpp"
3274
+ #line 3275 "src/Slice/Grammar.cpp"
3274
3275
  break;
3275
3276
 
3276
3277
  case 122: /* builtin: "int keyword" */
3277
- #line 1363 "src/Slice/Grammar.y"
3278
+ #line 1364 "src/Slice/Grammar.y"
3278
3279
  {}
3279
- #line 3280 "src/Slice/Grammar.cpp"
3280
+ #line 3281 "src/Slice/Grammar.cpp"
3280
3281
  break;
3281
3282
 
3282
3283
  case 123: /* builtin: "long keyword" */
3283
- #line 1364 "src/Slice/Grammar.y"
3284
+ #line 1365 "src/Slice/Grammar.y"
3284
3285
  {}
3285
- #line 3286 "src/Slice/Grammar.cpp"
3286
+ #line 3287 "src/Slice/Grammar.cpp"
3286
3287
  break;
3287
3288
 
3288
3289
  case 124: /* builtin: "float keyword" */
3289
- #line 1365 "src/Slice/Grammar.y"
3290
+ #line 1366 "src/Slice/Grammar.y"
3290
3291
  {}
3291
- #line 3292 "src/Slice/Grammar.cpp"
3292
+ #line 3293 "src/Slice/Grammar.cpp"
3292
3293
  break;
3293
3294
 
3294
3295
  case 125: /* builtin: "double keyword" */
3295
- #line 1366 "src/Slice/Grammar.y"
3296
+ #line 1367 "src/Slice/Grammar.y"
3296
3297
  {}
3297
- #line 3298 "src/Slice/Grammar.cpp"
3298
+ #line 3299 "src/Slice/Grammar.cpp"
3298
3299
  break;
3299
3300
 
3300
3301
  case 126: /* builtin: "string keyword" */
3301
- #line 1367 "src/Slice/Grammar.y"
3302
+ #line 1368 "src/Slice/Grammar.y"
3302
3303
  {}
3303
- #line 3304 "src/Slice/Grammar.cpp"
3304
+ #line 3305 "src/Slice/Grammar.cpp"
3304
3305
  break;
3305
3306
 
3306
3307
  case 127: /* builtin: "Object keyword" */
3307
- #line 1368 "src/Slice/Grammar.y"
3308
+ #line 1369 "src/Slice/Grammar.y"
3308
3309
  {}
3309
- #line 3310 "src/Slice/Grammar.cpp"
3310
+ #line 3311 "src/Slice/Grammar.cpp"
3310
3311
  break;
3311
3312
 
3312
3313
  case 128: /* builtin: "Value keyword" */
3313
- #line 1369 "src/Slice/Grammar.y"
3314
+ #line 1370 "src/Slice/Grammar.y"
3314
3315
  {}
3315
- #line 3316 "src/Slice/Grammar.cpp"
3316
+ #line 3317 "src/Slice/Grammar.cpp"
3316
3317
  break;
3317
3318
 
3318
3319
  case 129: /* type: "Object keyword" '*' */
3319
- #line 1375 "src/Slice/Grammar.y"
3320
+ #line 1376 "src/Slice/Grammar.y"
3320
3321
  {
3321
3322
  yyval = currentUnit->createBuiltin(Builtin::KindObjectProxy);
3322
3323
  }
3323
- #line 3324 "src/Slice/Grammar.cpp"
3324
+ #line 3325 "src/Slice/Grammar.cpp"
3324
3325
  break;
3325
3326
 
3326
3327
  case 130: /* type: builtin */
3327
- #line 1379 "src/Slice/Grammar.y"
3328
+ #line 1380 "src/Slice/Grammar.y"
3328
3329
  {
3329
3330
  auto typeName = dynamic_pointer_cast<StringTok>(yyvsp[0]);
3330
3331
  yyval = currentUnit->createBuiltin(Builtin::kindFromString(typeName->v).value());
3331
3332
  }
3332
- #line 3333 "src/Slice/Grammar.cpp"
3333
+ #line 3334 "src/Slice/Grammar.cpp"
3333
3334
  break;
3334
3335
 
3335
3336
  case 131: /* type: scoped_name */
3336
- #line 1384 "src/Slice/Grammar.y"
3337
+ #line 1385 "src/Slice/Grammar.y"
3337
3338
  {
3338
3339
  auto scoped = dynamic_pointer_cast<StringTok>(yyvsp[0]);
3339
3340
  yyval = lookupTypeByName(scoped->v, false);
3340
3341
  }
3341
- #line 3342 "src/Slice/Grammar.cpp"
3342
+ #line 3343 "src/Slice/Grammar.cpp"
3342
3343
  break;
3343
3344
 
3344
3345
  case 132: /* type: scoped_name '*' */
3345
- #line 1389 "src/Slice/Grammar.y"
3346
+ #line 1390 "src/Slice/Grammar.y"
3346
3347
  {
3347
3348
  auto scoped = dynamic_pointer_cast<StringTok>(yyvsp[-1]);
3348
3349
  yyval = lookupTypeByName(scoped->v, true);
3349
3350
  }
3350
- #line 3351 "src/Slice/Grammar.cpp"
3351
+ #line 3352 "src/Slice/Grammar.cpp"
3351
3352
  break;
3352
3353
 
3353
3354
  case 133: /* integer_constant: "integer literal" */
3354
- #line 1399 "src/Slice/Grammar.y"
3355
+ #line 1400 "src/Slice/Grammar.y"
3355
3356
  {
3356
3357
  yyval = yyvsp[0];
3357
3358
  }
3358
- #line 3359 "src/Slice/Grammar.cpp"
3359
+ #line 3360 "src/Slice/Grammar.cpp"
3359
3360
  break;
3360
3361
 
3361
3362
  case 134: /* integer_constant: scoped_name */
3362
- #line 1403 "src/Slice/Grammar.y"
3363
+ #line 1404 "src/Slice/Grammar.y"
3363
3364
  {
3364
3365
  auto scoped = dynamic_pointer_cast<StringTok>(yyvsp[0]);
3365
3366
  ContainerPtr cont = currentUnit->currentContainer();
@@ -3370,7 +3371,7 @@ yyreduce:
3370
3371
  EnumeratorList enumerators = cont->enumerators(scoped->v);
3371
3372
  if (enumerators.size() == 1)
3372
3373
  {
3373
- // We found the enumerator the user must of been referencing.
3374
+ // We found the enumerator the user must have been referencing.
3374
3375
  cl.push_back(enumerators.front());
3375
3376
  scoped->v = enumerators.front()->scoped();
3376
3377
  }
@@ -3439,28 +3440,28 @@ yyreduce:
3439
3440
  yyval = nullptr;
3440
3441
  }
3441
3442
  }
3442
- #line 3443 "src/Slice/Grammar.cpp"
3443
+ #line 3444 "src/Slice/Grammar.cpp"
3443
3444
  break;
3444
3445
 
3445
3446
  case 135: /* string_literal: "string literal" string_literal */
3446
- #line 1488 "src/Slice/Grammar.y"
3447
+ #line 1489 "src/Slice/Grammar.y"
3447
3448
  {
3448
3449
  auto str1 = dynamic_pointer_cast<StringTok>(yyvsp[-1]);
3449
3450
  auto str2 = dynamic_pointer_cast<StringTok>(yyvsp[0]);
3450
3451
  str1->v += str2->v;
3451
3452
  }
3452
- #line 3453 "src/Slice/Grammar.cpp"
3453
+ #line 3454 "src/Slice/Grammar.cpp"
3453
3454
  break;
3454
3455
 
3455
3456
  case 136: /* string_literal: "string literal" */
3456
- #line 1494 "src/Slice/Grammar.y"
3457
+ #line 1495 "src/Slice/Grammar.y"
3457
3458
  {
3458
3459
  }
3459
- #line 3460 "src/Slice/Grammar.cpp"
3460
+ #line 3461 "src/Slice/Grammar.cpp"
3460
3461
  break;
3461
3462
 
3462
3463
  case 137: /* metadata_list: metadata_list ',' string_literal */
3463
- #line 1502 "src/Slice/Grammar.y"
3464
+ #line 1503 "src/Slice/Grammar.y"
3464
3465
  {
3465
3466
  auto str = dynamic_pointer_cast<StringTok>(yyvsp[0]);
3466
3467
  auto metadataList = dynamic_pointer_cast<MetadataListTok>(yyvsp[-2]);
@@ -3470,11 +3471,11 @@ yyreduce:
3470
3471
 
3471
3472
  yyval = metadataList;
3472
3473
  }
3473
- #line 3474 "src/Slice/Grammar.cpp"
3474
+ #line 3475 "src/Slice/Grammar.cpp"
3474
3475
  break;
3475
3476
 
3476
3477
  case 138: /* metadata_list: string_literal */
3477
- #line 1512 "src/Slice/Grammar.y"
3478
+ #line 1513 "src/Slice/Grammar.y"
3478
3479
  {
3479
3480
  auto str = dynamic_pointer_cast<StringTok>(yyvsp[0]);
3480
3481
  auto metadataList = make_shared<MetadataListTok>();
@@ -3484,11 +3485,11 @@ yyreduce:
3484
3485
 
3485
3486
  yyval = metadataList;
3486
3487
  }
3487
- #line 3488 "src/Slice/Grammar.cpp"
3488
+ #line 3489 "src/Slice/Grammar.cpp"
3488
3489
  break;
3489
3490
 
3490
3491
  case 139: /* const_initializer: "integer literal" */
3491
- #line 1527 "src/Slice/Grammar.y"
3492
+ #line 1528 "src/Slice/Grammar.y"
3492
3493
  {
3493
3494
  BuiltinPtr type = currentUnit->createBuiltin(Builtin::KindLong);
3494
3495
  auto intVal = dynamic_pointer_cast<IntegerTok>(yyvsp[0]);
@@ -3497,11 +3498,11 @@ yyreduce:
3497
3498
  auto def = make_shared<ConstDefTok>(type, sstr.str());
3498
3499
  yyval = def;
3499
3500
  }
3500
- #line 3501 "src/Slice/Grammar.cpp"
3501
+ #line 3502 "src/Slice/Grammar.cpp"
3501
3502
  break;
3502
3503
 
3503
3504
  case 140: /* const_initializer: "floating-point literal" */
3504
- #line 1536 "src/Slice/Grammar.y"
3505
+ #line 1537 "src/Slice/Grammar.y"
3505
3506
  {
3506
3507
  BuiltinPtr type = currentUnit->createBuiltin(Builtin::KindDouble);
3507
3508
  auto floatVal = dynamic_pointer_cast<FloatingTok>(yyvsp[0]);
@@ -3510,11 +3511,11 @@ yyreduce:
3510
3511
  auto def = make_shared<ConstDefTok>(type, sstr.str());
3511
3512
  yyval = def;
3512
3513
  }
3513
- #line 3514 "src/Slice/Grammar.cpp"
3514
+ #line 3515 "src/Slice/Grammar.cpp"
3514
3515
  break;
3515
3516
 
3516
3517
  case 141: /* const_initializer: scoped_name */
3517
- #line 1545 "src/Slice/Grammar.y"
3518
+ #line 1546 "src/Slice/Grammar.y"
3518
3519
  {
3519
3520
  auto scoped = dynamic_pointer_cast<StringTok>(yyvsp[0]);
3520
3521
  ConstDefTokPtr def;
@@ -3549,44 +3550,44 @@ yyreduce:
3549
3550
  }
3550
3551
  yyval = def;
3551
3552
  }
3552
- #line 3553 "src/Slice/Grammar.cpp"
3553
+ #line 3554 "src/Slice/Grammar.cpp"
3553
3554
  break;
3554
3555
 
3555
3556
  case 142: /* const_initializer: "string literal" */
3556
- #line 1580 "src/Slice/Grammar.y"
3557
+ #line 1581 "src/Slice/Grammar.y"
3557
3558
  {
3558
3559
  BuiltinPtr type = currentUnit->createBuiltin(Builtin::KindString);
3559
3560
  auto literal = dynamic_pointer_cast<StringTok>(yyvsp[0]);
3560
3561
  auto def = make_shared<ConstDefTok>(type, literal->v);
3561
3562
  yyval = def;
3562
3563
  }
3563
- #line 3564 "src/Slice/Grammar.cpp"
3564
+ #line 3565 "src/Slice/Grammar.cpp"
3564
3565
  break;
3565
3566
 
3566
3567
  case 143: /* const_initializer: "false keyword" */
3567
- #line 1587 "src/Slice/Grammar.y"
3568
+ #line 1588 "src/Slice/Grammar.y"
3568
3569
  {
3569
3570
  BuiltinPtr type = currentUnit->createBuiltin(Builtin::KindBool);
3570
3571
  auto literal = dynamic_pointer_cast<StringTok>(yyvsp[0]);
3571
3572
  auto def = make_shared<ConstDefTok>(type, "false");
3572
3573
  yyval = def;
3573
3574
  }
3574
- #line 3575 "src/Slice/Grammar.cpp"
3575
+ #line 3576 "src/Slice/Grammar.cpp"
3575
3576
  break;
3576
3577
 
3577
3578
  case 144: /* const_initializer: "true keyword" */
3578
- #line 1594 "src/Slice/Grammar.y"
3579
+ #line 1595 "src/Slice/Grammar.y"
3579
3580
  {
3580
3581
  BuiltinPtr type = currentUnit->createBuiltin(Builtin::KindBool);
3581
3582
  auto literal = dynamic_pointer_cast<StringTok>(yyvsp[0]);
3582
3583
  auto def = make_shared<ConstDefTok>(type, "true");
3583
3584
  yyval = def;
3584
3585
  }
3585
- #line 3586 "src/Slice/Grammar.cpp"
3586
+ #line 3587 "src/Slice/Grammar.cpp"
3586
3587
  break;
3587
3588
 
3588
3589
  case 145: /* const_def: "const keyword" metadata type definition_name '=' const_initializer */
3589
- #line 1606 "src/Slice/Grammar.y"
3590
+ #line 1607 "src/Slice/Grammar.y"
3590
3591
  {
3591
3592
  auto metadata = dynamic_pointer_cast<MetadataListTok>(yyvsp[-4]);
3592
3593
  auto const_type = dynamic_pointer_cast<Type>(yyvsp[-3]);
@@ -3595,20 +3596,20 @@ yyreduce:
3595
3596
  yyval = currentUnit->currentContainer()->createConst(ident->v, const_type, std::move(metadata->v), value->v,
3596
3597
  value->valueAsString);
3597
3598
  }
3598
- #line 3599 "src/Slice/Grammar.cpp"
3599
+ #line 3600 "src/Slice/Grammar.cpp"
3599
3600
  break;
3600
3601
 
3601
3602
  case 146: /* definition_name: "identifier" */
3602
- #line 1620 "src/Slice/Grammar.y"
3603
+ #line 1621 "src/Slice/Grammar.y"
3603
3604
  {
3604
3605
  // All good, this is a valid identifier.
3605
3606
  yyval = yyvsp[0];
3606
3607
  }
3607
- #line 3608 "src/Slice/Grammar.cpp"
3608
+ #line 3609 "src/Slice/Grammar.cpp"
3608
3609
  break;
3609
3610
 
3610
3611
  case 147: /* definition_name: keyword */
3611
- #line 1625 "src/Slice/Grammar.y"
3612
+ #line 1626 "src/Slice/Grammar.y"
3612
3613
  {
3613
3614
  // If an un-escaped keyword was used as an identifier, we emit an error,
3614
3615
  // but continue along, pretending like the user escaped the keyword.
@@ -3616,31 +3617,31 @@ yyreduce:
3616
3617
  currentUnit->error("keyword '" + ident->v + "' cannot be used as a name");
3617
3618
  yyval = ident;
3618
3619
  }
3619
- #line 3620 "src/Slice/Grammar.cpp"
3620
+ #line 3621 "src/Slice/Grammar.cpp"
3620
3621
  break;
3621
3622
 
3622
3623
  case 148: /* definition_name: %empty */
3623
- #line 1633 "src/Slice/Grammar.y"
3624
+ #line 1634 "src/Slice/Grammar.y"
3624
3625
  {
3625
3626
  // If the user forgot to give a name to a Slice definition, we emit an error,
3626
3627
  // but continue along, returning an empty string instead of an identifier.
3627
3628
  currentUnit->error("missing name");
3628
3629
  yyval = make_shared<StringTok>();
3629
3630
  }
3630
- #line 3631 "src/Slice/Grammar.cpp"
3631
+ #line 3632 "src/Slice/Grammar.cpp"
3631
3632
  break;
3632
3633
 
3633
3634
  case 149: /* definition_name_open: "identifier(" */
3634
- #line 1645 "src/Slice/Grammar.y"
3635
+ #line 1646 "src/Slice/Grammar.y"
3635
3636
  {
3636
3637
  // All good, this is a valid identifier.
3637
3638
  yyval = yyvsp[0];
3638
3639
  }
3639
- #line 3640 "src/Slice/Grammar.cpp"
3640
+ #line 3641 "src/Slice/Grammar.cpp"
3640
3641
  break;
3641
3642
 
3642
3643
  case 150: /* definition_name_open: "keyword(" */
3643
- #line 1650 "src/Slice/Grammar.y"
3644
+ #line 1651 "src/Slice/Grammar.y"
3644
3645
  {
3645
3646
  // If an un-escaped keyword was used as an identifier, we emit an error,
3646
3647
  // but continue along, pretending like the user escaped the keyword.
@@ -3648,173 +3649,173 @@ yyreduce:
3648
3649
  currentUnit->error("keyword '" + ident->v + "' cannot be used as a name");
3649
3650
  yyval = ident;
3650
3651
  }
3651
- #line 3652 "src/Slice/Grammar.cpp"
3652
+ #line 3653 "src/Slice/Grammar.cpp"
3652
3653
  break;
3653
3654
 
3654
3655
  case 151: /* keyword: "module keyword" */
3655
- #line 1662 "src/Slice/Grammar.y"
3656
+ #line 1663 "src/Slice/Grammar.y"
3656
3657
  {}
3657
- #line 3658 "src/Slice/Grammar.cpp"
3658
+ #line 3659 "src/Slice/Grammar.cpp"
3658
3659
  break;
3659
3660
 
3660
3661
  case 152: /* keyword: "class keyword" */
3661
- #line 1663 "src/Slice/Grammar.y"
3662
+ #line 1664 "src/Slice/Grammar.y"
3662
3663
  {}
3663
- #line 3664 "src/Slice/Grammar.cpp"
3664
+ #line 3665 "src/Slice/Grammar.cpp"
3664
3665
  break;
3665
3666
 
3666
3667
  case 153: /* keyword: "interface keyword" */
3667
- #line 1664 "src/Slice/Grammar.y"
3668
+ #line 1665 "src/Slice/Grammar.y"
3668
3669
  {}
3669
- #line 3670 "src/Slice/Grammar.cpp"
3670
+ #line 3671 "src/Slice/Grammar.cpp"
3670
3671
  break;
3671
3672
 
3672
3673
  case 154: /* keyword: "exception keyword" */
3673
- #line 1665 "src/Slice/Grammar.y"
3674
+ #line 1666 "src/Slice/Grammar.y"
3674
3675
  {}
3675
- #line 3676 "src/Slice/Grammar.cpp"
3676
+ #line 3677 "src/Slice/Grammar.cpp"
3676
3677
  break;
3677
3678
 
3678
3679
  case 155: /* keyword: "struct keyword" */
3679
- #line 1666 "src/Slice/Grammar.y"
3680
+ #line 1667 "src/Slice/Grammar.y"
3680
3681
  {}
3681
- #line 3682 "src/Slice/Grammar.cpp"
3682
+ #line 3683 "src/Slice/Grammar.cpp"
3682
3683
  break;
3683
3684
 
3684
3685
  case 156: /* keyword: "sequence keyword" */
3685
- #line 1667 "src/Slice/Grammar.y"
3686
+ #line 1668 "src/Slice/Grammar.y"
3686
3687
  {}
3687
- #line 3688 "src/Slice/Grammar.cpp"
3688
+ #line 3689 "src/Slice/Grammar.cpp"
3688
3689
  break;
3689
3690
 
3690
3691
  case 157: /* keyword: "dictionary keyword" */
3691
- #line 1668 "src/Slice/Grammar.y"
3692
+ #line 1669 "src/Slice/Grammar.y"
3692
3693
  {}
3693
- #line 3694 "src/Slice/Grammar.cpp"
3694
+ #line 3695 "src/Slice/Grammar.cpp"
3694
3695
  break;
3695
3696
 
3696
3697
  case 158: /* keyword: "enum keyword" */
3697
- #line 1669 "src/Slice/Grammar.y"
3698
+ #line 1670 "src/Slice/Grammar.y"
3698
3699
  {}
3699
- #line 3700 "src/Slice/Grammar.cpp"
3700
+ #line 3701 "src/Slice/Grammar.cpp"
3700
3701
  break;
3701
3702
 
3702
3703
  case 159: /* keyword: "out keyword" */
3703
- #line 1670 "src/Slice/Grammar.y"
3704
+ #line 1671 "src/Slice/Grammar.y"
3704
3705
  {}
3705
- #line 3706 "src/Slice/Grammar.cpp"
3706
+ #line 3707 "src/Slice/Grammar.cpp"
3706
3707
  break;
3707
3708
 
3708
3709
  case 160: /* keyword: "extends keyword" */
3709
- #line 1671 "src/Slice/Grammar.y"
3710
+ #line 1672 "src/Slice/Grammar.y"
3710
3711
  {}
3711
- #line 3712 "src/Slice/Grammar.cpp"
3712
+ #line 3713 "src/Slice/Grammar.cpp"
3712
3713
  break;
3713
3714
 
3714
3715
  case 161: /* keyword: "throws keyword" */
3715
- #line 1672 "src/Slice/Grammar.y"
3716
+ #line 1673 "src/Slice/Grammar.y"
3716
3717
  {}
3717
- #line 3718 "src/Slice/Grammar.cpp"
3718
+ #line 3719 "src/Slice/Grammar.cpp"
3718
3719
  break;
3719
3720
 
3720
3721
  case 162: /* keyword: "void keyword" */
3721
- #line 1673 "src/Slice/Grammar.y"
3722
+ #line 1674 "src/Slice/Grammar.y"
3722
3723
  {}
3723
- #line 3724 "src/Slice/Grammar.cpp"
3724
+ #line 3725 "src/Slice/Grammar.cpp"
3724
3725
  break;
3725
3726
 
3726
3727
  case 163: /* keyword: "bool keyword" */
3727
- #line 1674 "src/Slice/Grammar.y"
3728
+ #line 1675 "src/Slice/Grammar.y"
3728
3729
  {}
3729
- #line 3730 "src/Slice/Grammar.cpp"
3730
+ #line 3731 "src/Slice/Grammar.cpp"
3730
3731
  break;
3731
3732
 
3732
3733
  case 164: /* keyword: "byte keyword" */
3733
- #line 1675 "src/Slice/Grammar.y"
3734
+ #line 1676 "src/Slice/Grammar.y"
3734
3735
  {}
3735
- #line 3736 "src/Slice/Grammar.cpp"
3736
+ #line 3737 "src/Slice/Grammar.cpp"
3736
3737
  break;
3737
3738
 
3738
3739
  case 165: /* keyword: "short keyword" */
3739
- #line 1676 "src/Slice/Grammar.y"
3740
+ #line 1677 "src/Slice/Grammar.y"
3740
3741
  {}
3741
- #line 3742 "src/Slice/Grammar.cpp"
3742
+ #line 3743 "src/Slice/Grammar.cpp"
3742
3743
  break;
3743
3744
 
3744
3745
  case 166: /* keyword: "int keyword" */
3745
- #line 1677 "src/Slice/Grammar.y"
3746
+ #line 1678 "src/Slice/Grammar.y"
3746
3747
  {}
3747
- #line 3748 "src/Slice/Grammar.cpp"
3748
+ #line 3749 "src/Slice/Grammar.cpp"
3748
3749
  break;
3749
3750
 
3750
3751
  case 167: /* keyword: "long keyword" */
3751
- #line 1678 "src/Slice/Grammar.y"
3752
+ #line 1679 "src/Slice/Grammar.y"
3752
3753
  {}
3753
- #line 3754 "src/Slice/Grammar.cpp"
3754
+ #line 3755 "src/Slice/Grammar.cpp"
3754
3755
  break;
3755
3756
 
3756
3757
  case 168: /* keyword: "float keyword" */
3757
- #line 1679 "src/Slice/Grammar.y"
3758
+ #line 1680 "src/Slice/Grammar.y"
3758
3759
  {}
3759
- #line 3760 "src/Slice/Grammar.cpp"
3760
+ #line 3761 "src/Slice/Grammar.cpp"
3760
3761
  break;
3761
3762
 
3762
3763
  case 169: /* keyword: "double keyword" */
3763
- #line 1680 "src/Slice/Grammar.y"
3764
+ #line 1681 "src/Slice/Grammar.y"
3764
3765
  {}
3765
- #line 3766 "src/Slice/Grammar.cpp"
3766
+ #line 3767 "src/Slice/Grammar.cpp"
3766
3767
  break;
3767
3768
 
3768
3769
  case 170: /* keyword: "string keyword" */
3769
- #line 1681 "src/Slice/Grammar.y"
3770
+ #line 1682 "src/Slice/Grammar.y"
3770
3771
  {}
3771
- #line 3772 "src/Slice/Grammar.cpp"
3772
+ #line 3773 "src/Slice/Grammar.cpp"
3772
3773
  break;
3773
3774
 
3774
3775
  case 171: /* keyword: "Object keyword" */
3775
- #line 1682 "src/Slice/Grammar.y"
3776
+ #line 1683 "src/Slice/Grammar.y"
3776
3777
  {}
3777
- #line 3778 "src/Slice/Grammar.cpp"
3778
+ #line 3779 "src/Slice/Grammar.cpp"
3778
3779
  break;
3779
3780
 
3780
3781
  case 172: /* keyword: "const keyword" */
3781
- #line 1683 "src/Slice/Grammar.y"
3782
+ #line 1684 "src/Slice/Grammar.y"
3782
3783
  {}
3783
- #line 3784 "src/Slice/Grammar.cpp"
3784
+ #line 3785 "src/Slice/Grammar.cpp"
3784
3785
  break;
3785
3786
 
3786
3787
  case 173: /* keyword: "false keyword" */
3787
- #line 1684 "src/Slice/Grammar.y"
3788
+ #line 1685 "src/Slice/Grammar.y"
3788
3789
  {}
3789
- #line 3790 "src/Slice/Grammar.cpp"
3790
+ #line 3791 "src/Slice/Grammar.cpp"
3790
3791
  break;
3791
3792
 
3792
3793
  case 174: /* keyword: "true keyword" */
3793
- #line 1685 "src/Slice/Grammar.y"
3794
+ #line 1686 "src/Slice/Grammar.y"
3794
3795
  {}
3795
- #line 3796 "src/Slice/Grammar.cpp"
3796
+ #line 3797 "src/Slice/Grammar.cpp"
3796
3797
  break;
3797
3798
 
3798
3799
  case 175: /* keyword: "idempotent keyword" */
3799
- #line 1686 "src/Slice/Grammar.y"
3800
+ #line 1687 "src/Slice/Grammar.y"
3800
3801
  {}
3801
- #line 3802 "src/Slice/Grammar.cpp"
3802
+ #line 3803 "src/Slice/Grammar.cpp"
3802
3803
  break;
3803
3804
 
3804
3805
  case 176: /* keyword: "optional keyword" */
3805
- #line 1687 "src/Slice/Grammar.y"
3806
+ #line 1688 "src/Slice/Grammar.y"
3806
3807
  {}
3807
- #line 3808 "src/Slice/Grammar.cpp"
3808
+ #line 3809 "src/Slice/Grammar.cpp"
3808
3809
  break;
3809
3810
 
3810
3811
  case 177: /* keyword: "Value keyword" */
3811
- #line 1688 "src/Slice/Grammar.y"
3812
+ #line 1689 "src/Slice/Grammar.y"
3812
3813
  {}
3813
- #line 3814 "src/Slice/Grammar.cpp"
3814
+ #line 3815 "src/Slice/Grammar.cpp"
3814
3815
  break;
3815
3816
 
3816
3817
 
3817
- #line 3818 "src/Slice/Grammar.cpp"
3818
+ #line 3819 "src/Slice/Grammar.cpp"
3818
3819
 
3819
3820
  default: break;
3820
3821
  }
@@ -4043,7 +4044,7 @@ yyreturnlab:
4043
4044
  return yyresult;
4044
4045
  }
4045
4046
 
4046
- #line 1691 "src/Slice/Grammar.y"
4047
+ #line 1692 "src/Slice/Grammar.y"
4047
4048
 
4048
4049
 
4049
4050
  // NOLINTEND